[Network] 트랜스포트 계층 : UDP
2022. 2. 13. 17:10ㆍMajor`/컴퓨터 네트워크
UDP
1. Network-Layer :: IP에 최소한의 기능만 추가한다
- 다중화/역다중화
- 오류 검사 (체크섬)
2. "best effort" 서비스를 제공
- Network-Layer가 주는 메시지 그대로 Application-Layer로 전달해준다
- 원본 Data와 뭐가 다르고, 어떠한 문제가 생겼는지 파악할 수 없다
- ex) Data 손실 / Data의 순서가 어긋난채로 전달
- UDP는 Data의 Boundary를 명확히 지킨다
- 각각의 Data를 독립적으로 전달한다 (Boundary가 명확)
3. 비연결형 서비스
- 핸드셰이킹을 통한 연결을 확립하지 않는다 :: 일방적으로 전달
- UDP 세그먼트(메시지)들은 서로 독립적으로 전달된다
- 각 메시지들은 자신의 목적지로만 전달된다 :: 서로 상관 X
- 스트리밍 서비스 / DNS / SNMP에 UDP를 사용한다
- Data의 손실을 감내 / 속도(전송률)에 민감한 서비스
UDP 사용 이유
1. 핸드셰이킹을 하지 않으므로, 지연을 유발하지 않는다
- 또한, 연결 상태도 존재하지 않는다
2. UDP 세그먼트 헤더가 간단하기 때문에 트래픽 오버헤드가 작다
- 네트워크 부하가 적다
3. 혼잡/흐름제어를 하지 않기 때문에, 원하는 만큼 빨리 전달이 가능하다
UDP 세그먼트 구조
- 고정 헤더 (Source/Destination Port + Length + Checksum) = 4byte × 2 = 8byte
- Length : Header + Data의 총 길이 ≥ 8byte