UDP 란?
OSI 7Layer 4계층인 Transport Layer 에서 동작하는 프로토콜이다. TCP 와 달리, 연결 및 해제 과정을 거치지 않아 Connectionless 비연결지향형 프로토콜이다. 또한, Error-Control 및 Flow-Control 기능을 제공하지 않으므로 비신뢰성 프로토콜이라고도 한다. (단, 일부 선택적 Error-Control 이 가능한 경우도 있다.)
UDP 세그먼트의 구조
전송계층의 데이터 단위는 Segment 라고 불리우며, 8Bytes 의 Header 와 가변적인 길이의 Data 필드로 구성되어 있다.
1. Source port address & Destination port address
전송 계층에서는 Socket Address 를 사용하므로 Source & Destination 포트 주소가 필요하다.
2. Total Length
UDP Length = IP Packet Length - IP Header Length
-> UDP 세그먼트는 IP 패킷으로 캡슐화 되기 때문이다.
(같은 Process를 서비스하는 Server 가 여러 개인 경우, IP 주소를 통해 식별한다.)
3. Checksum
UDP는 기본적으로 Error-Control 을 수행하지 않지만, Optional Checksum 을 통해 일부 선택적 에러 제어가 가능하다.
UDP 사용 사례
1. DNS (Domain Name Service)
- Client 는 Server 로부터 짧은 요청을 보내고 빠른 응답을 받아야 하므로 UDP 를 사용한다.
- 1개의 짧은 메시지를 보내기 위해, 연결 과정을 거치게 되면 오버헤드가 많이 발생하므로 연결 과정을 거치지 않는다.
- 또한, 메시지 도착 순서가 중요하지 않으므로 연결 과정을 거치지 않는다.
2. Stream Service
실시간성을 요구하는 서비스들은 재전송과 같은 Delay 가 없어야 하므로 UDP 를 사용한다.
데이터가 유실되거나 깨져도 무시하고 다음 데이터를 전송한다. (화질 저하 및 로딩)
UDP Control-Block Table
PID (Process ID) 에 해당하는 포트 번호가 존재하지 않는다면, OS 에 포트 번호를 요청하여 할당받는다.
- Queue Number 는 해당 서비스의 UDP Segement 를 수신한 적이 있음을 나타낸다.
- Queue Number 가 비어있다면, 프로세스는 실행 중이나 아직 UDP Segement 를 수신한 적이 없다는 의미이다. 해당 프로세스와 관련된 UDP Segment 를 수신한다면 값이 설정된다.
- Table 에 존재하지 않는 정보를 가진 UDP Segement 가 수신되면 폐기한다.
공부하면서 정리한 내용을 글로 작성하였습니다.
혹시나 잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다 :)
'Network > Network Theory' 카테고리의 다른 글
[Network / 네트워크] Cloud Computing Service Model (0) | 2024.12.24 |
---|---|
[Network/ 네트워크] OSI 7Layer - Transport Layer (전송 계층) (0) | 2024.12.22 |
[Network / 네트워크] ARQ (Automatic Repeat Request) (0) | 2024.12.20 |
[Network / 네트워크] TCP (Transmission Control Protocol) 이란? (0) | 2024.12.19 |
[Network / 네트워크] ICMP (Internet Control Message Protocol) 프로토콜이란? (0) | 2024.12.18 |