프로토콜
- protocol
컴퓨터와 컴퓨터, 원거리 통신 장비 사이에서 메시지를 주고받는 통신 규약으로, 통신을 원하는 두 개체간에 무엇을, 어떻게, 언제 통신할 것인가에 대해 미리 정의된 상호간의 약속
개요
- 프로토콜은 정보를 주고 받는 양식과 규칙의 체계이다.
- 외교상의 의례나 국가간의 약속을 정한 의정서를 가리키는 말에서 유래하였다.
프로토콜의 예시
- HTTP : Hyper Text Transfer Protocol
- SHTTP : Secure Hyper Text Transfer Protocol
- HTTPS : Hyper Text Transfer Protocol over Secure Socket Layer
- FTP : File Transfer Protocol
- SFTP : Secure File Transfer Protocol
- TFTP : Trivial File Transfer Protocol
- Telnet : TErminaL NETwork
- POP3 : Post Office Protocol version 3
- SMTP : Simple Mail Transfer Protocol
- SSH : Secure Shell
- SSL : Secure Socket Layer
- SOAP : Simple Object Access Protocol
- ARP : Address Resolution Protocol
프로토콜의 구성
프로토콜은 두 가지로 이루어져 있으며 물리적 측면과 논리적 측면으로 나뉜다.
- 물리적 측면: 자료 전송에 쓰이는 전송 매체, 접속용 단자 및 전송 신호, 회선 규격 등.
- 논리적 측면: 프레임(Frame, 자료의 표현 형식 단위) 구성, 프레임 안에 있는 각 항목의 뜻과 기능, 자료 전송의 절차 등.
통신 프로토콜의 기본 요소
- 구문
- 데이터의 형식 (아날로그 or 디지털), 부호화 (Unicode, ASCII), 신호크기 (0과 1의 전압 세기와, 어떻게 표현할지) 를 정하는 구문
- 의미
- 전송제어 (동기화, 전송정지 및 재개, 완료, 재전송, 등등의 신호를 정함), 오류수정(데이터 무결성 검사 방법, 패리티비트, CRC) 등을 정함
- 타이밍
- 신호의 지속시간, 신호의 순서 등을 정하여 타이밍을 이룸
문법 (Syntax): 프로토콜은 데이터의 구조와 형식을 정의하는 문법을 가지고 있습니다. 이는 데이터가 어떻게 표현되는지, 필드의 순서 및 형식, 데이터의 크기 등을 규정합니다. 주로 이진 형식 (binary format) 또는 텍스트 형식으로 표현될 수 있습니다.
의미론 (Semantics): 프로토콜은 데이터의 의미와 해석 방법을 정의합니다. 이는 데이터 필드의 의미, 명령 및 응답의 종류, 오류 처리 방법 등을 포함합니다. 의미론은 통신의 의도를 명확히 하고 상호 작용을 정확하게 처리하는 데 필요합니다.
타이밍 (Timing): 프로토콜은 데이터 전송의 타이밍과 속도를 관리합니다. 이는 데이터가 언제 전송되어야 하는지, 전송 간격, 전송률 등을 정의합니다. 타이밍 요소는 통신의 신뢰성과 성능에 영향을 줄 수 있습니다.
세션 관리 (Session Management): 프로토콜은 통신 세션의 생성, 유지 및 종료를 관리합니다. 이는 세션의 시작과 끝을 식별하고, 세션 동안의 행동 및 상태를 정의합니다. 세션 관리는 다중 사용자 환경에서 상호작용하는 동안 일관된 상태를 유지하기 위해 중요합니다.
에러 제어 (Error Control): 프로토콜은 데이터 전송 중 발생할 수 있는 오류와 장애를 관리합니다. 이는 데이터 손실, 손상, 중복, 순서 오류 등을 처리하는 방법을 정의합니다. 에러 제어 메커니즘은 데이터의 신뢰성과 정확성을 보장하기 위해 사용됩니다.
보안 (Security): 프로토콜은 데이터의 기밀성, 무결성 및 인증을 보호하기 위한 보안 기능을 제공할 수 있습니다. 이는 암호화, 디지털 서명, 인증 절차 등을 포함할 수 있습니다. 보안은 민감한 정보의 안전한 전송을 위해 중요한 요소입니다.
대표적인 프로토콜 정의 기관
- 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)