OSI(Open System Interconnection) 모델에서 전송 계층(Transport Layer)은 7개 계층 중 하나로, 인터넷을 통해 송신자와 수신자 간의 종단 간(end-to-end) 통신을 담당합니다. 전송 계층은 양쪽 호스트 사이에 논리적 통신 경로를 제공하며, 패킷이 목적지까지 정확하게 전달되도록 보장하는 핵심적인 역할을 수행합니다.
전송 계층의 주요 프로토콜
- TCP(Transmission Control Protocol)
- UDP(User Datagram Protocol)
- SCTP(Stream Control Transmission Protocol)
- RDP(Reliable Data Protocol)
- RUDP(Reliable User Datagram Protocol)
이 가운데 TCP는 신뢰성 있는 연결 지향 통신을, UDP는 빠르고 가벼운 비연결형 통신을 담당하며, 나머지 프로토콜들은 특수한 환경에서 신뢰성과 효율성을 보완하기 위해 사용됩니다.
전송 계층의 역할
- 송신자에서 수신자까지 전체 메시지를 프로세스 대 프로세스(process-to-process), 즉 종단 간으로 전달합니다.
- 데이터 전송 과정에서 발생하는 오류를 검사하고 복구합니다.
- 흐름 제어(flow control) 메커니즘을 통해 송신자와 수신자 간의 처리 속도 차이로 인한 데이터 손실을 방지합니다.
- 상위 계층에서 받은 바이트 스트림을 송신 측에서 세그먼트(segment) 단위로 분할하고, 수신 측에서 이를 다시 원래의 데이터로 재조립합니다.
전송 계층 프로토콜 설계 시 직면하는 문제점
1. 동적 토폴로지(Dynamic Topology)
네트워크 기술은 날마다 발전하고 있으며, 특히 이동통신 환경에서는 노드가 자유롭게 이동하면서 네트워크 구조가 수시로 변경됩니다. 이러한 동적 토폴로지 변화는 전송 계층의 연결 상태와 성능에 직접적인 영향을 미치므로, 이에 유연하게 대응할 수 있는 설계가 필요합니다.
2. 전력 및 대역폭 제약(Power and Bandwidth Constraints)
무선 네트워크 환경에서는 전력 소모와 대역폭 부족이라는 두 가지 근본적인 제약에 직면합니다. 배터리로 동작하는 모바일 기기는 에너지가 한정되어 있고, 무선 채널은 유선에 비해 가용 대역폭이 작습니다. 따라서 전송 계층 프로토콜은 적은 자원으로도 효율적으로 동작하도록 최적화되어야 합니다.
3. 혼잡 제어·신뢰성·흐름 제어의 개별 처리 문제
혼잡 제어(congestion control), 신뢰성(reliability), 흐름 제어(flow control)를 서로 분리하여 독립적으로 처리하면 전송 계층의 전반적인 성능을 높일 수 있습니다. 그러나 각 기능을 개별 모듈로 운영하려면 그만큼 추가적인 제어 오버헤드(control overhead)가 발생합니다. 결국 성능 향상과 오버헤드 최소화 사이에서 적절한 균형점을 찾는 것이 전송 계층 설계의 큰 과제입니다.
마무리
전송 계층은 종단 간 신뢰성 있는 데이터 전달을 책임지는 OSI 모델의 핵심 계층입니다. 하지만 끊임없이 변화하는 네트워크 환경, 무선 환경의 자원 제약, 그리고 여러 제어 기능 간의 트레이드오프 때문에 프로토콜 설계에는 여러 도전 과제가 존재합니다. 이러한 문제들을 이해하면 TCP, UDP 등 실제 프로토콜이 왜 특정 방식으로 동작하는지 더 명확하게 파악할 수 있습니다.