프로토콜의 개념과 주요 기능
1. 프로토콜의 정의
- 다수의 송신자와 수신자 사이에서
정보통신을 원활하게 하기 위한 상호 간의 규칙 혹은 약속
- 어떠한 정보를 전송할 것인지,
정보를 전송하기 위해 어떠한 일을 할 것인지,
정보를 어떻게 전송할 것인지 등을 결정하고
이를 준수하기로 약속한다.
서로 다른 나라에서 온 생김새도 다른 두 사람이 동일한 언어를 쓴다면 소통할 수 있는 것처럼,
동일한 프로토콜을 사용하면 서로 다른 종류나 제조사여도 소통할 수 있다.
예를 들어, 동일한 표준 메일 프로토콜을 사용한다면,
애플사의 아이폰에서 안드로이드 디바이스로 메일을 보낼 수 있다.
주요 인터넷 프로토콜
- OSI : 표준 프로토콜 모델
- TCP/IP
( Transmission Control Protocol / Internet Protocol ) : 인터넷 프로토콜
프로토콜의 3요소
- 구문(Syntax)
- 데이터의 구조나 형식 ( 아날로그, 디지털 )
- 신호의 크기 ( 전압의 세기, 표현의 방법 )
- 부호화( 아스키코드, 유니코드 )
인지에 대한 표현을 정의한다.
- 의미(Semantics)
- 해당 신호에 대한 해석 및 전송제어(동기화, 전송 정지, 전송 재개, 전송 완료, 재전송 등의 신호)
- 오류관리( 데이터 무결성 검사, 패리티 비트 검사, CRC 등)를 위한 제어 정보
- 타이밍(Timing)
- 송신자와 수신자 사이의 신호 지속 시간, 신호 순서 등을 조정하여 데이터 유실을 방지
프로토콜의 기능
1. 주소 지정(Addressing)
- 네트워크와 노드(컴퓨터, 장치)마다 서로 식별할 수 있는 고유의 번호를 부여한다.
- 하나의 디바이스가 다른 디바이스에 데이터를 전송하는 경우, 상대방의 주소와 이름을 알아야한다.
- 적어도 송신자의 주소(IP)와 이름(MAC), 수신자의 주소(IP)와 이름(MAC), 총 4개의 정보가 있어야 통신이 가능하다.
2. 단편화(Fragmentation)와 재조립(Reassembly)
- 대용량의 데이터를 교환하는 프로토콜의 경우,
같은 크기의 데이터 블록(패킷)으로 분할 -
(단편화, Fragmentation)하여 전송하고,
전송된 데이터를 원래의 모양대로 하나로 붙이는
(재조립, Reassembly) 작업이다.
- 라우터/스위치 간 이동 시 필요하다.
- 회선별로 대역 폭이 다르므로, 데이터를 더 분할하는 경우도 발생한다.
3. 순서 지정(Sequencing)
- 데이터가 단위(패킷)별로 분할하여 전송될 때,
각 패킷에 시퀀스 번호를 부여하여 순서대로 도착할 수 있도록 제어한다.
- 연결지향형(Connection Oriented)에서만 사용한다.
4. 데이터 흐름 제어(Data Flow Control)
- 수신자 측에서 데이터 전송량이나 전송 속도 등을 조절한다.
- 디바이스 간의 데이터 처리 능력이 다르므로
천천히 보내라, 다시 보내라, 전송을 중지해라 등을 명령한다.
- 슬라이딩 윈도우( Sliding Window ) 등은 대표적인 흐름 제어 기법이다.
5. 연결 제어(Connection Control)
- 연결 지향형 데이터 전송의 경우
연결 설정, 데이터 전송, 연결 해제의 3단계로 구성된다.
- 하나의 세션이 만들어진 다음, 지속적인 데이터 교환이 발생하므로 순서가 발생하고, 이를 제어해야 원활한 통신이 이루어진다.
- ex) TCP Protocol : 3-way handshake, 4-way handshake
6. 캡슐화( Encapsulation )
- 네트워크의 각 계층별로 사용할 정보를 관리하기 편하도록 구분해두는 것
- 송신자와 수신자의 주소, 오류 검출 코드, 프로토콜 제어 정보가 포함되어 있는 PCI( 보내려는 원 데이터 )에 단계별로 헤더(제어정보)를 덧붙여 캡슐처럼 감싸는 것을 의미한다.
7. 오류 제어( Error Control )
- 오류 발생을 검출하여 재전송을 요구하거나, 직접 오류를 복구한다.
- 재전송 요구(Discard & Recall) : 기존에 받은 오류 데이터를 버리고 재전송을 요구한다.
- 오류 복구(Fix & Use) : 기존에 받은 오류 데이터를 복구하여 사용한다.
- 패리티 비트 오류검출방식, 순환중복검사 등을 통해 오류를 검출한다.
8. 동기화( Synchronization )
- 송신자와 수신자 사이 데이터를 전송할 떄,
타이밍이나 윈도우 크기 등을 합의하는 것
9. 멀티플렉싱( Multiplexing )
- 한 번에 여러 정보를 통신할 수 있도록 가상의 회선을 설정하는 것
10. 전송 서비스
- 우선순위( 우선순위가 높은 데이터가 먼저 도착하도록 설정 ), 서비스 등급( 데이터에 따라 서비스 등급을 부여 ), 보안의 정도( 엑세스 제한 등 보안시스템 설정 )등에 차등을 둔다.
프로토콜의 전송 방식
1. 비트(bit) 방식
- 특별한 의미를 갖는 플래그 비트(Flag Bit)를 데이터의 앞 혹은 뒤에 덧붙여 전송한다.
- 비트 전송 방식을 사용하는 대표적 프로토콜 : HDLC, SDLC, LAPB
2. 바이트(byte) 방식
- 데이터의 헤더(Header)에 전송 데이터의 문자 개수, 메시지 수신 상태 등 각종 제어 정보를 덧붙여 전송한다.
- 바이트 전송 방식을 사용하는 대표적 프로토콜 : DDCM
3. 문자 방식
- 전송 제어 문자(SOH, ETX, ETB, STX, DLE, ENQ)등을 사용하여 데이터의 시작과 끝을 나타낸다.
- 문자 전송 방식을 사용하는 대표적 프로토콜 : BSC
프로토콜의 특성
1. 직접과 간접
- 직접적 프로토콜 : 두 개의 통신 시스템이 점 대 점 형태로 직접 연결되어 통신하는 형태
- 간접적 프로토콜 : 여러 개의 통신 시스템이 하나의 커다란 시스템을 통해 간접적으로 연결된 형태
2. 단일체와 구조
- 단일체적 프로토콜 : 톷신과 관련한 모든 기능을 하나의 프로토콜이 전부 수행하는 형태
- 구조적 프로토콜 : 여러 개의 계층이 나누어진 프로토콜이 하위 계층에서 상위 계층 방향으로 서비스를 제공하는 형태
모놀리식 vs MSA
3. 대칭과 비대칭
- 대칭적 프로토콜 : 서로 통신을 주고받는 대등한 형태로 이루어지는 프로토콜
- 비대칭적 프로토콜 : 서버 - 클라이언트 등 비대칭적인 관계에서 이루어지는 프로토콜
4. 표준과 비표준
- 표준 프로토콜 : 어느 시스템에서나 작동하는 일반적인 프로토콜
- 비표준 프로토콜 : 정해진 환경이나 시스템상에서만 사용 가능한 프로토콜
프로토콜 표준화의 필요성
- 표준화된 프로토콜은 같은 프로토콜을 사용하는 디바이스를 통해서는 누가 만든 프로토콜이라도 서로 통신이 가능하다.
- 이를 위해 아래와 같은 국내외 주요 표준화기구에서는 표준 프로토콜을 정의하고 배포하여 원활한 통신환경을 만들고자 노력하고 있다.
국제표준화기구(ISO; International Organization for Standardization)
국제전기통신연합(ITU; International Telecommunication Union)
미국표준협회(ANSI; American National Standards Institute)
한국정보통신기술협회(TTA; Telecommunications Technology Association)
한국전자통신연구원(ETRI; Electronics Telecommunication Research Institute)