IP(Internet Protocol)
- IP는 지정한 IP 주소에 데이터를 패킷(Packet)이라는 통신 단위로 데이터를 전달합니다.
- 데이터를 전달할 때 다음과 같은 한계가 있습니다.
- 비연결성: 패킷을 받을 대상이 없거나, 서비스 불능상태여도 패킷을 전송합니다.
- 비신뢰성: 패킷의 누락에 대응하거나 순서를 보장받을 수 없습니다.
TCP(Transmission Control Protocol)
TCP는 IP의 한계를 보완합니다.
- TCP 데이터 안에 전송 제어, 순서, 정보들이 있습니다.
- 도착한 패킷을 점검하여 순서를 맞추고, 누락된 패킷을 다시 요청합니다.

- 연결지향 프로토콜입니다.
- 3 way handshake으로 송신측과 연결을 확인합니다.
TCP 3 way handshake
- 송신측과 연결 전에 가상 연결을 패킷으로 보내서 확인하는 동작입니다.
- 단계
- 1. 송신측 → 수신측 : SYN패킷 전송
- 2. 수신측 → 송신측 : SYN + ACK패킷 전송
- 3. 송신측 → 수신측: ACK + 데이터 패킷 전송
*SYN: 접속요청 / ACK: 요청 수락
UDP(User Datagram Protocol)
- 비 연결지향적 프로토콜입니다.
- 데이터 전달과 순서를 보장하지 않습니다.
- 단순히 빠르게 패킷을 보내는 것이 목적입니다.
- IP에서 PORT 와 체크섬(메시지 검증해주는 데이터) 정도만 추가된 형태입니다.
- 별다른 기능이 없어 최적화 및 커스터마이징이 용이합니다.
TCP vs UDP 비교

| TCP | UDP |
| 연결지향형 프로토콜 | 비 연결지향형 프로토콜 |
| 바이트 스트림을 통한 연결 | 메세지 스트림을 통한 연결 |
| 혼잡제어, 흐름제어 | 혼잡제어와 흐름제어 지원 X |
| 순서 보장, 상대적으로 느림 | 순서 보장되지 않음, 상대적으로 빠름 |
| 신뢰성 있는 데이터 전송 - 안정적 | 데이터 전송 보장 X |
| 세그먼트 TCP 패킷 | 데이터그램 UDP 패킷 |
| HTTP, Email, File transfer 에서 사용 | 도메인, 실시간 동영상 서비스에서 사용 |
[참고자료]
'Network' 카테고리의 다른 글
| TCP / IP 모델 (0) | 2024.04.13 |
|---|---|
| IP / PORT (0) | 2024.04.13 |