* UDP *
- 프로세스로부터 데이터를 받아 전달하는 역할
- connectionless, unreliable
- 프로세스간 통신 제공
- 매우 작은 error checking 제공
- 최소한의 오버헤드를 사용하는 매우 간단한 프로토콜
- 멀티캐스트 및 브로드캐스트에 적합한 전송 프로토콜
- Port Numbers : 프로세스를 정의하기 위해 사용됨
well-known ports, registered ports, dynamic ports
- Socket Address : IP 주소와 port number의 조합
* User datagram *
- Source port number : server는 well-known 포트, client는 일시적인 포트주소
- Checksum : 유저 데이터그램 전체에 대한 에러 탐색
- Pseudoheader : IP 계층의 일부 정보를 가져와 UDP 체크섬 계산 시 일시적으로 사용
- Application data가 Data 영역에 포함됨
* UDP Operation *
- 각각의 독립된 데이터그램은 다른 경로를 이동
- Flow control, error control 없음
- outgoing 큐가 overflow되면 클라이언트에게 기다리라고 요청
- incoming 큐가 비어있으면 데이터그램을 버리고 ICMP에게 메세지 요청
- sender는 mutiplexing, receiver는 demultiplexing
* UDP design *
- Input Queues : 각 프로세스당 하나
- Cotrol-block Module : 프로세스 시작시 OS에 포트넘버 요청, 일치하는 목적지 정보가 없으면 해당 데이터그램 폐기
- Output Module : 유저 데이터그램을 생성해 전송