데이터 통신 - 통신 프로토콜

통신 프로토콜의 개요
OSI 7 layer
통신 프로토콜의 기능과 구성요소

꼭 이해해야 하는 것.
OSI 7 layer
프로토콜 계층 구조의 개념과 도입 배경, 구성요쇼


1. 통신 프로토콜의 개요

통신 프로토콜의 개념

프로토콜이란 약속이다. 상대방과 함께 작업을 할 때,
내가 임의로 약속을 할 수 없다.
무엇을, 어떻게, 언제 통신할 것인지 서로 약속을 해놓은 것(규정).
통신규약.
프로토콜 = 절차(Procedure) + 데이터(Protocol data unit)

통신 프로토콜의 예

(절차) 송신자 -> 수신자 : 데이터를 송신하려고 하는데 수신 준비가 됐는가?
(절차) 송신자 <- 수신자 : 수신 준비가 됐다.
(데이터)송신자 -> 수신자 : 파일을 첨부한 전자우편을 보냈다.
(절차) 송신자 <- 수신자 : 올바르게 수신했다.

통신 프로토콜의 발전과 표준화 배경

IBM:컴퓨터가 만들어지고 보급함.
메인프레임 구조.메인프레임 1대에 터미널 여러개.
실제 컴퓨터도 90%이상 IBM이였다.
다른 메임프레임컴퓨터와 연결이 필요해 만든 것이 프로토콜.
서버 간 연결하기 위한 네트워크로 SNA(System Network Architecture)
를 만들고, BSC, SDLC를 만듦.
그런데 IBM 말고도 다른 통신 회사들이 자기 기준에 맞춰 표준을 맞췄기때문에
다른 회사들과 연동이 되지 않음. 호환이 안되어서 통신 불가.
1970년대 이후부터 본격적으로 표준화.
국제 표준화기구에서 OSI 참조 모델을 제정하여 발표.
현재는 TCP/IP를 많이 사용.

OSI 7 계층 프로토콜

계층화

각 서비스 데이터 유닛 계층마다 서비스가 있음.
프로토콜 데이터 유닛은 서로 같은 계층에서 데이터를 주고받는 것에 초점.
서비스 데이터 유닛은 계층간 데이터를 주고받는 것.

OSI 7 Layer 의 계층 구성

  • 1 계층 : Physical Layer(최하위 계층)
    실제 회선에 연결될 때 어떻게 연결하고 신호를 변환해줄지에 대한 기능.
  • 2 계층 : Data Link Layer
    동기화
  • 3 계층 : Network Layer
    경로를 만들어주고 기능
  • 4 계층 : Transport Layer
    데이터를 네트워크를 통해서 전송할 떄 일정한 품질을 제공해줄 수 있는 기능.
  • 5 계층 : Session Layer
    문서의 전송 방향과 절차 확인
  • 6 계층 : Presentation Layer
    사용자의 컴퓨터 시스템마다 운영체제, 데이터 표현 방식, 컴퓨터 하드웨어가 달라서
    주고받는 데이터가 다를수 있기 때문에 이것을 맞춰주는게 기능
  • 7 계층 : Application Layer(최상위 계층)
    파일을 보내거나 이메일을 보내는 기능.

OSI 7 Layer 계층 상호 간의 데이터 전달 원리

보고서나 편지를 보낸다고 할 때, 편지의 내용은 data에 해당.
표지, 주소는 데이터에 해당하지 않음.누가 썼는지에 대한 정보이다.즉, 데이터에 대한 정보.
이것을 헤더라고 부른다.
송신측 최상위 계층(응용 계층)에서 발생한 데이터를 하위 계층으로 차례로 전달.
처음의 데이터에 각 계층에 전달받은 헤더정보를 추가하여 전달
최하위 계층(물리 계층)에 도달.
수신측은 각 계층의 헤더에 해당되는 부분을 벗긴 후 최상위 계층으로 전달.
송신 측에서 각 계층마다 자기 기능에 대한 헤더를 붙인다.
상대방은 헤더를 분석해서 해당 데이터의 내용을 판단한다.
서버 프로그램을 만들 때 헤더를 분석해서 상대방과 나의 내용을 일치시켜줘야함.
- 캡슐화
데이터에 헤더를 씌우는 과정
- 캡슐해제
수신 측에서 각 계층의 헤더를 벗기는 과정

물리 계층 Physical Layer

OSI 참조 모델 중 최하위 계층에 해당.
전송회선.물리적 매체.
데이터가 전송되는 동안 연결을 유지하거나 해제하는 기계적, 전기적, 기능적, 절차적 특성 정의
비트 단위 데이터열을 전송하기 위해 신호와 부호화, 전송 방식 등을 결정
송신 측: 비트열의 데이터를 받아서 전기신호로 변환.
수신 측: 비트열로 복원하여 상위 계층에 전달.
전송 방식으로 반이중 또는 전이중, 전송 모드로 동기 또는 비동기 선택.
물리 계층 표준화한 대표적 예는 RS-232C(의료기기에서 이용).
표준은 ISO, CCITT에서 결정.
CCITT 표준에는 V시리즈, X시리즈가 있음.
V시리즈: 기존 전화망을 이용해서 아날로그 데이터를 전송하는 방법.
X시리즈: 디지털 데이터망을 이용하여 디지털 데이터를 전송하는 방법.

특성 내용
기계적 특성 핀 연결의 규격 등 시스템과 주변 장치를 연결하기 위해 정의한 규정
전기적 특성 전기적 규격을 정의. DTE,DCE 사이 커넥터에 흐르는 신호의 전압 레벨, 전압 변동, 잡음 등 규정. 예를 들어 RS-232D는 공통 접지를 기준으로 -3V 이하면 1, +3V이상이면 0으로 해석
기능적 특성 각 핀마다 의미를 부여 -> 데이터, 제어, 타이밍, 접지 등을 수행하는 기능 규정
절차적 특성 전송하는 사건의 흐름 순서 규정

이러한 특성들은 전송 매체가 무엇이냐에 따라서,
동축 케이블,꼬임선,전자기파 모두 특성이 다름.

(이전 챕터에서 다뤘었던 내용. 표준화 관점에서 다시 살펴봄.)
하위 2계층에 해당.
데이터를 받아서 여러가지 기능을 하는데
주소 지정, 전송 제어, 흐름 제어, 오류 제어, 동기화 등이 있음.

주소 지정

데이터를 주고 받기 위해 이웃 노드 간
데이터 링크를 설정. 발신지 주소, 목적지 주소 데이터에 붙여서 전송.
발신지 주소와 목적지 주소 등 정보가 들어 있음.
편지는 주소를 써서 우체통에 넣어서 우체부가 상대에게 전달함.
주소+정보 전송만 필요. 실시간 접속이 필요하지 않음.
회선 접속 절단이 필요하지 않음.

전송 제어

데이터를 올바르게 전송하는 일련의 절차.
(전용회선과 교환회선에서 서로 다름. 전용회선은 통신에서 잘 다루지 않음.)
교환회선에서는 아래 5단계를 거치는 전송 제어가 있음.

  • 1.회선 접속 :
    송신자의 응답 요청.정보 전송 전 단게.
    전송이 가능한 단계까지 만듦.
  • 2.데이터 링크 확립 :
    수신자의 응답 확인
    송수신이 가능하도록 경로 구성하는 단계
    데이터 링크를 확인하는 방법에는 폴링과 선택이 있음
    폴링,선택이 있음.
  • 3.정보 전송 :
    실제 데이터 전송
    데이터 링크가 확립이 되면 그때 정보를 전송한다.
    전송로에서 발생한 오류를 검출한 뒤 그것을 정정하도록 제어.
  • 4.데이터 링크 해제 :
    전화기를 놓음
    전송이 종료되면 수신 측에 통보.
  • 5.회선 절단 :
    회선이 끊어짐

흐름 제어

시스템이 처리 속도가 다를 때,
수신 측이 처리할 수 있는 능력을 넘어서지 않도록 조정하는 기능.
(교수님 말씀이 너무 빨라여..!)
정지 대기 방식(하나 얘기하고 하나 받아쓰고)
슬라이딩 윈도 방식(한 번에 다 얘기하고, 시간날 때 하나씩 꺼내 씀)
- 정지 대기 방식
흐름 제어 방식 중 가장 간단.
한 번에 한 프레임만 전송
수신 측에서는 다음 프레임을 맞게 전송했는지 결정하여 송신 측에 통보
(현재는 사용하지 않음.)
- 슬라이딩 윈도 방식
송신 측에서 한 번에 윈도 크기 만큼 연속해서 전송.
버퍼 : 수신 측에 프레임을 저장할 공간. 큐 형태로 저장.
큐의 크기가 8이면, 연속해서 8개의 프레임을 전송할 수 있다.

오류 제어

컴퓨터 통신 : 신속, 정확.
정보 통신에서 잘못된 정보는 문제를 발생.
오류가 없어야겠다.
1) 오류 무시
간단한 문자 전송에서는 괜찮으니 오류를 무시.
2) 반향 검사(에코 검사)
전송한 데이터와 수신한 데이터를 서로 비교하여 판단
궤한 전송 방식 :
수신 측이 수신한 데이터를 송신 측에서 다시 받아 원래 데이터와 비교
연속 전송 방식 :
송신 측에서 두 번 이상 연속해서 전송하여 수신 측에서 이 데이터를 상호 비교
3) 검출 후 재전송(ARQ, Auto Repeat reqeust)
반향 검사와 다르게 한 번의 전송으로 오류를 판단.
FCS(Frame Chech Sequence)를 포함해서 데이터를 보내서
잘못된 정보가 들어왔다고 판단되면 검출 후 송신 측에 다시
전송하기를 요청.
FCS를 패리티로 할지, 블록 합으로 할지, 순환 중복 검사(CRC)로 할지 정해야함.
컴퓨터는 CRC 방식 사용 오류가 생겨도 검출해서 다시 사용할 수 있다.
4) 전진 오류 수정(FEC)
해밍 코드를 사용해서 수신 측에서 직접 수정.

오류 제어 방식 : ARQ 방식

ARQ 방식의 종류는 정지 대기 방식과 연속 방식이 있다.

- 정지 대기 방식
송신 측에서 하나의 블록을 전송하면
수신 측에서 오류가 발생했는지 점검 후 ACK나 NAK를 보내올 때까지 대기
초기에 사용하던 방식
- 연속 방식
Go-Back N ARQ 방식과 선택적ARQ(Selective ARQ) 방식이 있음.
전이중 방식에서 사용.
두 방식 모두 공통적으로 프레임을 연속해서 송신, 오류 프레임이 있으면
수신 측에서 NAK와 함께 오류 프레임 번호 통보.

  • Go Back N ARQ 방식
    송신 측에서 수신한 NAK에서 오류가 발생한 프레임 번호를 확인 후,
    송신 측에서 오류를 전달받기 전까지 수신 측에서 받았던 프레임은 지우고,
    해당 프레임 번호부터 나머지 프레임까지 계속 송신
    프레임을 지우고 오류가 발생한 프레임부터 다시 보내는 것은 낭비인데, 이것을 해결한
    방식이 선택적 ARQ 방식이다.
  • 선택적ARQ(Selective ARQ) 방식
    오류가 발생한 프레임만 다시 보낸다.
    수신 측에서는 순서를 맞춰주는 메커니즘이 필요.
    하드웨어를 복잡하게 만들 수 있다.
    (Go back N ARQ와 Selective ARQ는 비교하여 이해할 수 있어야 함.)
    일정한 길이를 전제.
  • 적응적 ARQ 방식
    데이터 블록의 길이를 동적으로 변경시켜 전송.
    수신 측이 수신한 데이터 블록을 감지하고 오류 발생률을 판단하여 송신 측에 통보.
    송신측: 데이터 블록 전송 -> 수신측: 오류 발생률 통보
    -> 송신측: 변경하여 결정된 데이터 길이 통보
    (통신에서 사용하지는 않음.)

오류 정정 방식 : 해밍 부호 검사

해밍 코드 : 코드 중에서 오류가 생겼는지를 검출할 수 있는 코드.
단점은 중복 비트가 많고 계산량이 많이 요구. 전송 효율이 낮음.
(통신에서 사용하지 않는다.)

국제 표준 오류 검출 방식과 오류 제어 방식

- 오류율
전송매체로 인해 발생한 오류의 총합을 전송 정보의 총합으로 나눈 값
비트 오류율, 문자 오류율, 블록 오류율이 잇음.

동기화

송신측에서 보낼 준비, 수신 측에서 받을 준비를 하는 것.
송수신 측 각 비트의 전송류과 전송 시간, 간격 등을 규정하는 약속
비동기식 전송, 동기식 전송이 있다.

데이터 링크 프로토콜의 종류

문자 지향 방식과 비트 지향 방식으로 분류

- 비트 지향 방식
ISO의 HDLC(High level Data Link Control)
CCITT의 X.25 LAPB, LAPD, LAPF

특징 HDLC
활용 공중 패킷 교환망
신뢰성 높음
전송효율 높음
정보전송 단위 프레임
단말장치 가격 고가

- HDLC
IBM의 SDLC 프로토콜 토대.
고속 전송, 신뢰성 높음
ISDN 등에 이용됨.
대표적인 데이터 링크 프로토콜

  • 구성 요소
    국(Station) : 개방 시스템에서 HDLC절차를 실행하는 부분데이터를 제어하는 명령 전송, 응답
    프레임(Frame) : 국 상호간에 주고받는 정보의 기본 단위

플래그 : 프레임의 동기화를 맞추기 위해 사용
주소 : 전송할 목적지 주소를 가리킴
제어 : 프레임의 종류

  • I 프레임(정보전송 형식) : 데이터와 제어 정보
  • S 프레임(감시 형식) : 응답 기능
  • U 프레임(비번호 형식) : 연결 제어 기능
    실제 데이터 : 가변 길이의 전송 데이터
    - HDLC 동작 절차
종류\기능 기능 데이터 링크의 종류
NRM 1차국과 2차국 사이 통신 불균형 구성
ARM 1차국과 2차국 사이 통신 불균형 구성
ABM 복합국과 복합국 사이의 통신 균형 구성

- HDLC 특징

특징 내용
비트 방식 프로토콜의 일종 고속 데이터 전송, 임의의 비트 패턴(문자, 동영상 등 전송 가능)
여러 통신 방식 모두 지원 단방향, 반이중, 전이중 전송 모두 사용
데이터 링크 형식 p2p,muti-point
오류 제어 엄밀함 CRC 필드 방식, ARQ

네트워크 계층 Network Layer

OSI 참조 모델 하위 계층, 3계층
기능 : 다양한 경로 설정, 메시지 라우팅, 망 노드 간 트래픽 제어 수행.
(고속도로 도로공사에 비유)
통신을 할 때, DTE A에서 다른 DTE B로 데이터를 전송.
중간에 패킷 교환기, 회선 교환기가 있음. 어느 교환기를 연결하여 경로를 가야할지 설정하는 역할.
정확하고 빠르게 A에서 B로 정보 전달할 경로를 설정해주는 역할.

기능 내용
경로 배정, 중계(Routing&Relaying) 통신망 내부 경로 배정 및 중계
상호 통신망 연결(Inernetworking) 다양한 통신망이 연결되어 있어도 통신망 계층의 기능을 함(구내 통신망과 외부 통신망 연결)
통신망 접속(Network Connection) 통신망 연결 설정 및 종료
흐름 제어(Flow Control) 네트워크 노드 사이에서 트래픽을 제어(고속도로가 막힐 때 돌아가도록하는 역할)
순서 제어(Sequence Control) 네트워크에 데이터를 보낼 때, 순서대로 가지 않을 때 순서대로 수신측에서 받도록 제어

전송 계층 Transport Layer

OSI 참조 모델에서 하위 계층, 4계층
목적지 주소 지정, 메시지 우선권, 다중화, 보안, 계정, 오류 발생 시 링크 회복,
송수신 시 무결성 보장 등의 기능.
네트워크 서비스의 일정한 품질 보장. QoS(Quality of Service).

세션 계층 Session Layer

OSI 참조 모델에서 하위 계층, 5계층
프레임 : 전송을 효율적으로 하기 위한 물리적 단위.
데이터 링크 계층에서는 물리적으로 오류 제어, 흐름 제어.
세션 계층은 논리적인 데이터 단위에 대해서 오류 제어, 흐름 제어 수행.
소프트웨어와 하드웨어 사이에서 인터페이스 역할.

기능 내용
세션 연결의 설정과 종료 세션 연결을 설정-종료-관리하는 절차 규정.논리적인 연결.
반이중 데이터를 한 방향씩 교대로 교환, 데이터를 송신할 권리는 데이터 토큰 소유자에게 있음
동기 세션을 연결하는 동안 동기를 다시 제공. 동기화 기능.
예외 보고 세션 연결하는 동안 예외 보고를 제공

표현 계층 Presentation Layer

OSI 참조 모델에서 상위 계층, 6계층
컴퓨터 시스템마다 자기가 사용하는 코드가 있다.
자기가 사용하는 코드 체계와 상대방의 코드 체계가 맞지 않을 수 있기 때문에
이것을 맞춰주는 기능.
서로 다른 부호 체계 간 변환, 표준화된 데이터 형식 규정.
데이터 형식, 명령 해석, 코드 변환, 암호화, 텍스트 압축 등 기능 포함.

응용 계층 Application Layer

OSI 참조 모델에서 최상위 계층, 7계층
사용자에게 직접 제공하는 서비스. 파일 전송, 이메일 전송.
전자 우편, 파일 전송 접근 및 관리, 데이터 베이스, 네트워크 관리.

3. 통신 프로토콜의 구조

OSI 7계층이 어떤 의미를 갖고 있는가?

계층형 프로토콜의 도입 배경

타사 제품과의 호환이 어렵다.
OSI 표준형 모델에 모두 맞춰서 개발을 하면,
모델에 맞춘 노드는 해당 노드에 들어올 수 있다.
결국 IBM도 OSI통신망과 통신해야하기때문에 OSI 표준에 맞추었다.

계층형 구조의 개념

통신 시스템이 워낙 복잡하기때문에, 이것을 계층으로 나누고
게층마다 기능을 두고, 서비스 관계를 가지면서 서로 협조 작업을 함.

계층형 구조의 구성 요소

데이터 단위와 프로토콜 제어 정보

서비스 데이터 단위 (SDU, Service Data Unit) :
N-SDU 는 (N+1) 객체에서 N 객체로 전달하는 데이터의 단위.
계층 간 전달하는 데이터 단위.
프로토콜 데이터 단위 (PDU, Protocol Data Unit):
N-PDU는 N 객체 사이에서 N 프로토콜로 송수신하는 데이터 단위
N-SDU에 N-PCI를 추가하여 N-PDU를 만듦. (N+1)-PDU는 N-SDU와 같다.

프로토콜의 기능

- 단편화 :
송신 측에서 긴 데이터 블록을 손쉽게 전송할 수 있도록
크기가 똑같은 작은 블록을 나누어 전송.

- 재합성 :
수신 측에서 쪼개진 작은 데이터 블록을 재합성하여
원래의 메시지로 복원하는 기능.

- 캡슐화
데이터에 헤더를 붙이는 것.
데이터에 정보를 추가하는 것.

- 연결 제어 :
데이터 전송을 위한 통신로 개설,유지,종결
- 흐름 제어 :
통신 속도 등이 수신 측의 처리 능력을 초과하지 않도록 조정.
- 오류 제어 :
오류나 착오 검출 및 정정
- 순서 결정 :
데이터 단위 순서대로 수신 측에 전달
- 주소 설정 :
발생지, 목적지 등 주소 명기하여 데이터를 정확하게 전달
- 동기화 :
두 통신 객체 사이 상태(시작,종류,검사 등)를 일치시킴.
- 다중화 :
하나의 통신로를 여러개로 나누거나 회선 여러 개를 하나의 통신로로 변환시켜
다수 가입자가 동시에 사용.

프로토콜의 구성 요소

데이터와 절차로 이루어짐.
데이터에 구문과 의미가 포함. 절차에 타이밍 포함.


시험 예상 문제)
OSI 7 layer 레퍼런스 모델을 그리고 각 계층의 기능을 설명해라
(Go back N ARQ와 Selective ARQ 비교하며 이해)

댓글남기기