TCP와 UDP

OSI 7계층에서 전송계층(Transport layer)에 속하는 데이터 전송 프로토콜이다. 여기선 중요한 것만 살펴보고 깊게는 들어가지 않는다.

TCP (Transmission Control Protocol)

데이터가 반드시 전달되는 것을 보장하는 프로토콜로 다음 특징들을 갖는다.

3-way handshaking

TCP가 호스트 간에 연결을 설정하는 방법으로 SYN/ACK 패킷을 통해 이루어진다. SYN 패킷은 동기화(SYNchronize)를 의미하는 패킷이며 ACK 패킷은 확인(ACKnowledgement)을 의미하는 패킷이다.

TCP 헤더의 구조

TCP의 세그먼트는 데이터 본체에 TCP 헤더가 붙은 형태로 구성된다.

흐름 제어와 혼잡 제어

UDP (User Datagram Protocol)

TCP와 달리 데이터의 신뢰성을 보장하지 않는 프로토콜이며 다음 특징들을 갖는다.

UDP 헤더 구조

UDP에서는 패킷에 해당하는 것을 데이터그램이라고 부른다.

브로드캐스트 & 멀티캐스트

TCP에는 없는 기능으로 UDP에는 하나의 패킷을 여러 수신지에 전달하는 브로드캐스트(broadcast)멀티캐스트(multicast)라는 기능이 있다.


3. TCP와 UDP의 차이점

|TCP|UDP| |:—:|:—:| | 연결지향형 프로토콜 | 비연결지향형 프로토콜 | | 바이트 스트림을 통한 연결 | 메시지 스트림을 통한 연결 | | 혼잡제어, 흐름제어 | 혼잡제어, 흐름제어 지원하지 않음 | | 순서 보장, 상대적으로 느림 | 순서 보장되지 않음, 상대적으로 빠름 | | 신뢰성 있는 데이터 전송, 안정적 | 데이터 전송을 보장하지 않음 | | TCP 패킷은 세그먼트 | UDP 패킷은 데이터그램 | | HTTP, 전자우편, 파일 전송에서 사용 | DNS, Broadcasting |