(TIL) 2024-12-23
(TIL) 2024-12-23
전송 계층 (Transport Layer)
전송 계층은 OSI 7계층 모델의 4번째 계층으로, 네트워크 상에서 데이터를 신뢰성 있고 효율적으로 전달하는 역할을 한다. 애플리케이션 계층의 데이터가 네트워크를 통해 목적지에 정확히 도달하도록 보장하며, 데이터의 세분화, 전송, 오류 검출, 흐름 제어 등을 관리한다.
주요 역할과 기능
데이터 세그먼트 관리
- 애플리케이션 계층에서 받은 데이터를 세그먼트(Segment)라는 작은 단위로 나눈다.
- 데이터가 클 경우 이를 분할하고, 수신 측에서 다시 조합할 수 있도록 정보(헤더)를 포함시킨다.
신뢰성 있는 데이터 전송
- 신뢰성을 보장하기 위해 데이터 전송 중 발생할 수 있는 오류를 검출하고 복구하는 기능을 제공한다.
- 대표적으로 TCP(Transmission Control Protocol)가 이 기능을 수행한다.
흐름 제어 (Flow Control)
- 송신자와 수신자의 데이터 처리 속도를 조율하여 네트워크 혼잡을 방지한다.
- 송신자가 너무 빠르게 데이터를 보내지 않도록 제어한다.
오류 제어 (Error Control)
- 데이터 전송 중 손실되거나 손상된 패킷을 감지하고, 이를 재전송 요청하여 복구한다.
다중화 (Multiplexing)
- 여러 애플리케이션의 데이터 흐름을 구분하고 관리한다.
- 각 애플리케이션에 대해 고유한 포트 번호를 사용하여 데이터를 식별한다.
세션 관리
- 연결을 설정, 유지, 종료하며, 데이터를 순차적으로 전달한다.
- TCP는 3-way handshake를 통해 연결을 설정하고, 연결 해제 시 4-way handshake를 사용한다.
주요 프로토콜
TCP (Transmission Control Protocol)
- 연결 지향적 프로토콜
- 신뢰성 높은 데이터 전송 보장
- 데이터 흐름 제어, 오류 제어 지원
UDP (User Datagram Protocol)
- 비연결형 프로토콜
- 속도가 중요하지만 신뢰성이 덜 요구되는 상황에서 사용
- 오류 제어나 흐름 제어 기능 없음
| 특성 | TCP | UDP |
|---|---|---|
| 연결 방식 | 연결 지향적 (Connection-oriented) | 비연결형 (Connectionless) |
| 데이터 신뢰성 보장 | 보장 (재전송, 오류 제어) | 보장하지 않음 |
| 속도 | 상대적으로 느림 | 빠름 |
| 사용 예시 | HTTP, FTP, 이메일 | 스트리밍, VoIP |
TCP: 친구에게 소포를 보내는 과정처럼, 송신자는 소포가 잘 도착했는지 확인하고 손상되었으면 다시 보낸다. UDP: 라디오 방송처럼, 데이터를 빠르게 보내지만 누가 받았는지 확인하지 않는다.
전송 계층의 동작 과정 (TCP 예시)
연결 설정 (3-Way Handshake)
- 송신자와 수신자가 데이터 전송 전에 연결을 설정한다.
- SYN → SYN-ACK → ACK
데이터 전송
- 데이터를 세그먼트로 나누고 송신, 수신자는 이를 조립.
- 오류 발생 시 손상된 세그먼트 재전송.
연결 해제 (4-Way Handshake)
- 데이터 전송이 끝나면 연결을 종료한다.
- FIN → ACK → FIN → ACK
결론
전송 계층은 애플리케이션 계층과 네트워크 계층 간의 가교 역할을 하며, 데이터가 네트워크를 통해 안정적으로 도달하도록 보장한다. 이를 통해 웹 브라우징, 이메일, 비디오 스트리밍 등 다양한 네트워크 서비스가 원활히 작동할 수 있다.
This post is licensed under CC BY 4.0 by the author.