물리적으로 분리된 컴퓨터나 장치들이 데이터를 주고받기 위해서는 서로의 통신 규칙을 따라야 합니다. 이러한 규칙과 규약들의 집합을 ‘프로토콜(Protocol)’이라고 합니다. 프로토콜은 데이터를 어떻게 구성하고, 전송하고, 수신하는지, 그리고 오류를 어떻게 처리해야 하는지 등을 정의합니다.

프로토콜은 주로 네트워크 통신에서 사용되지만, 다른 컴퓨터 시스템 간에 상호작용을 위해서도 사용될 수 있습니다. 프로토콜은 통신 계층에 따라 다양한 기능을 가질 수 있으며, 통신하는 두 개체 사이에서 상호작용을 가능하게 합니다. 네트워크 프로토콜은 계층적인 구조로 이루어져 있습니다. 대표적으로 OSI 7계층 모델과 TCP/IP 4계층 모델이 있습니다. 각 계층은 특정 기능을 담당하고 있으며, 상위 계층은 하위 계층을 기반으로 작동합니다.

  1. 구성요소
  2. 기능


구성요소

프로토콜은 구문(Syntax), 의미(Semantics), 타이밍(Timing)으로 구성됩니다.

  • 구문(Syntax) : 데이터의 형식과 구조를 정의합니다. 이는 데이터를 어떤 방식으로 나타내고 어떻게 표현하는지에 대한 규칙을 제공합니다. 예를 들어, 데이터가 텍스트인지 바이너리 형태인지, 데이터 필드의 크기는 얼마나 되는지 등을 정의합니다.

  • 의미(Semantics) : 데이터의 의미를 해석하는 방법을 정의합니다. 이는 데이터가 어떤 정보를 가지고 있는지를 설명하며, 데이터 필드가 어떤 용도로 사용되어야 하는지를 나타냅니다.

  • 타이밍(Timing) : 데이터의 전송 시기나 전송 간격 등을 관리합니다. 이는 데이터 전송의 순서, 시간적인 조정, 지연 등을 처리하는 방법을 정의합니다.


기능

네트워크의 효율성과 신뢰성을 보장하고, 데이터의 정확한 전송과 해석을 가능하게 합니다. 각 기능은 주로 프로토콜의 다양한 계층에서 구현됩니다. 주요 기능들은 다음과 같습니다.

  • 주소 지정(Addressing) : 데이터를 주고받는 네트워크 장치들은 각각 고유한 주소를 가지고 있습니다. 이 주소를 사용하여 데이터가 어떤 장치로 전송되어야 하는지를 정의합니다. 주소 지정은 일반적으로 IP 주소나 MAC 주소를 사용하여 이루어집니다.

  • 멀티플렉싱(Multiplexing) : 여러 개의 데이터 스트림이 동시에 전송되는 경우, 프로토콜은 이러한 스트림들을 하나의 물리적인 링크나 채널을 통해 효율적으로 전송할 수 있도록 합니다. 멀티플렉싱은 데이터를 세분화하고 조합하는 작업을 담당합니다.

  • 오류 제어(Error Control) : 데이터 전송 도중에 발생하는 오류를 탐지하고 복구하는 기능입니다. 프로토콜은 데이터에 오류 검사 코드를 추가하거나 재전송을 요청하여 데이터의 신뢰성을 확보합니다. 방법으로는 패리트 비트 검사, 블록 합 검사, 순환 중복 검사 등이 있습니다. 종류로는 기본형, 연속형, 선택형, 적응형이 있습니다.

  • 연결 제어(Connection Control) : 네트워크 통신에서 데이터를 주고받는 장치들 간의 연결을 수립, 유지, 종료하는 기능을 의미합니다. 이 기능은 데이터를 전송하기 전에 송신 측과 수신 측 간에 논리적인 연결을 설정하고, 데이터 전송이 완료되면 연결을 해제하는 과정을 관리합니다. 대표적으로 전송 계층 TCP 프로토콜에서는 “3-way handshake” 절차를 통해 연결합니다.

  • 흐름 제어(Flow Control) : 송신 측과 수신 측의 데이터 처리 속도가 다른 경우, 프로토콜은 데이터의 흐름을 조절하여 데이터 손실이나 혼잡을 방지합니다.스탑 앤 웨이트, 슬라이딩 윈도우 방법 등이 있습니다.

  • 혼잡 제어(Congestion Control) : 네트워크 혼잡 상태를 감지하고 혼잡을 완화하기 위해 송신 측은 데이터 전송 속도를 조절합니다. 혼잡 제어는 네트워크의 효율성을 높이고 데이터 전송의 공정성을 보장합니다. 대표적으로 TCP 프로토콜에서 혼잡 제어로 슬로우 스타트 기법을 이용합니다.

  • 라우팅(Routing) : 데이터가 여러 경로를 통해 목적지로 전송될 때, 프로토콜은 가장 적절한 경로를 선택하고 패킷을 목적지까지 안전하게 전달합니다.

  • 세션 관리(Session Management) : 세션을 생성하고 종료하는 절차를 관리합니다. 세션은 송수신 장치 간에 데이터 통신이 시작되고 종료되는 시점을 나타냅니다.

  • 인증과 보안(Authentication and Security) : 프로토콜은 데이터가 안전하게 전송되도록 암호화와 인증 등의 보안 기능을 제공합니다. 이를 통해 민감한 정보의 노출을 방지하고 데이터의 무결성을 보장합니다.