프로토콜

From IT Wiki
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, 자료의 표현 형식 단위) 구성, 프레임 안에 있는 각 항목의 뜻과 기능, 자료 전송의 절차 등.
    • 폐쇄적인 프로토콜: 자사 장치들끼리 통신하기 위한 독자적인 통신 규약이며, 자세한 규격이 공개되어 있지 않아서 크래킹 위협에 상대적으로 안전하다. (보기: IBM의 SNA, SDLC 프로토콜)
    • 공개된 범용 프로토콜: 여러 장치들에 쓰이는 널리 알려진 규격이며, 규격이 널리 공개되어 있기 때문에 컴퓨터와 네트워크 크래킹에 취약한 편이다. (보기: 인터넷의 TCP/IP)

통신 프로토콜의 기본 요소

  • 구문
    • 데이터의 형식 (아날로그 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)

출처

위키백과