이전 글에서 IP와 TCP/UDP 등의 통신 프로토콜에 대해 알아봤다.
그렇다면 과연 프로토콜이란 무엇일까
1. 정의
- 통신 프로토콜(=통신 규약)은 컴퓨터나 원거리 통신 장비 사이에서 메세지를 주고 받는 양식과 규칙의 체계를 말한다. 쉽게 말해 우리가 외국인들과 대화할 때 같은 언어를 써서 통해야 하는 것처럼, 컴퓨터와 컴퓨터, 장비와 장비 간에 서로 통일된 메세지 규칙을 말한다.
- 신호 체계, 인증, 그리고 오류 감지 및 수정 기능을 포함할 수있다.
- 통신의 동기 과정 등을 정의하기는 하지만 프로토콜 별로 구현되는 방법은 독립적이다. 이 때문에 프로토콜은 하드웨어 또는 소프트웨어, 때로는 그 둘 모두를 사용하여 구현되기도 함
- 연결을 설정할 때는 항상 발신자의 요청에 의해 시작하며, 수신자는 연결 대기 상태여야 한다. 이러한 상호 간 합의 하에 연결이 이루어져도 종료는 한 쪽의 종결 선언만으로 가능
2. 프로토콜의 구성
프로토콜은 두 가지로 이루어져 있으며 물리적 측면과 논리적 측면으로 나뉜다.
물리적 측면: 자료 전송에 쓰이는 전송 매체, 접속용 단자 및 전송 신호, 회선 규격 등.
논리적 측면: 프레임(Frame, 자료의 표현 형식 단위) 구성, 프레임 안에 있는 각 항목의 뜻과 기능, 자료 전송의 절차 등.
폐쇄적인 프로토콜: 자사 장치들끼리 통신하기 위한 독자적인 통신 규약이며, 자세한 규격이 공개되어 있지 않아서 크래킹 위협에 상대적으로 안전하다. (보기: IBM의 SNA, SDLC 프로토콜)
공개된 범용 프로토콜: 여러 장치들에 쓰이는 널리 알려진 규격이며, 규격이 널리 공개되어 있기 때문에 컴퓨터와 네트워크 크래킹에 취약한 편이다. (보기: 인터넷의 TCP/IP)
3. 프로토콜의 기본 요소
- 구문(Syntax) : 전송하고자 하는 데이터의 형식(Format), 부호화(Coding), 신호 레벨(Signal Level)등을 규정
- 의미(Semantics) : 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정
- 시간(Timing) : 두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정
4. 프로토콜의 기능
- 단편화(Fragmentation) : 송신측에서 긴 데이터블록을 손쉽게 전송할 수 있도록 크기가 똑같은 작은 블록을 나누는 것
- 재합성(Assembly) : 단편화로 나누어진 작은 블록을 재합성하여 원래의 메시지로 복원
- 캡슐화(Encapsulation) : 각 프로토콜에 적합한 데이터 블록을 만들기 위해 데이터에 정보를 추가하는 것, 플래그나 주소, 제어정도, 오류 검출 부호 등을 부착(OSI 7계층 동작 원리 참고)
- 연결 제어(Connection Control) : 비연결 데이터 전송(데이터그램)과 연결 위주 데이터 전송(가상회선)을 위한 통신로를 개설, 유지, 종결하는 기능
- 흐름 제어(Flow Control) : 데이터양이나 통신속도 등이 수신 측의 처리 능력을 초과하지 않도록 조정
- 오류 제어(Error COntrol) : 데이터 전송 중 발생할 수 있는 오류나 착오 등을 검출하고 정정하는 기능
- 순서 결정(Sequencing) : 연결 위주의 데이터를 전송할 때 송신 측이 보내는 데이터 단위 순서대로 수신측에 전달
- 주소 설정(Addressing) : 발생지, 목적지 등의 주소를 명기하여 데이터를 정확하게 전달하는 기능
- 동기화(Synchronization) : 두 통신 객체의상태(시작, 종류, 검사 등)를 일치시키는 기능
- 다중화(Multiplexing) : 하나의 통신로를 여러 개로 나누거나 회선 여러 개를 하나의 통신로로 변환시켜 다수의 가입자가 동시에 사용할 수 있도록 하는 기능
- 전송 서비스(Transmission Service) : 통신 객체를 사용하기 쉽도록 별도로 추가 서비스(패리티 검사, 보안도, 서비스 등급, 우선순위 등)를 제공
5. 대표적인 프로토콜의 종류
계층 | 프로토콜 |
응용(Application) | HTTP, SMTP, FTP, Telnet |
표현(Presentation) | ASCII, MPEG, JPEG, MIDI |
세션(Session) | NetBIOS, SAP, SDP, NWLink |
전송(Transport) | TCP, UDP, SPX |
네트워크(Network) | IP, IPX |
데이터 링크(Data Link) | Ethernet, Token Ring, FDDI, Apple Talk |
물리(Physical) | 없음 |
대표적인 프로토콜 정의 기관
- 약속된 규약이다 보니 전세계적으로 통일할 수 있게 정의를 내리는 기관들이 존재
ISO(International Organization for Standardization)
EIA(Electronic Industries Organization)
IEEE(Institute of Electrical and Electronic Engineers)
CCITT(Consultative Committee for International Telegraph and Telephone)
IAB(Internet Activities Board
'Network' 카테고리의 다른 글
[Network] HTTP, HTTPS (0) | 2022.05.13 |
---|---|
공공기관용 IPSEC VPN 소개 (0) | 2022.05.12 |
[NetworkTCP & UDP (0) | 2022.04.29 |
상태 저장 vs 상태 비저장 / 동기 vs 비동기 / 블로킹 vs 논블로킹 (0) | 2022.04.27 |
[Network]IP address와 MAC address (0) | 2022.04.22 |
댓글