UDP: User Datagram Protocol
간소화된(no frills), 최소한의(bare bones) 기능만 제공하는 internet transport protocol
best-effort 방식을 사용하기에, 손실 또는 순서가 바뀌는 상황이 발생할 수 있다.
connectionless:
- UDP sender/receiver 간의 handshaking이 없다.
- 각각의 UDP 세그먼트는 다른 세그먼트와 독립적이다.
UDP를 왜 사용할까
- 연결 설정이 없음(RTT 지연이 추가되지 않음)
- 송신자 및 수신자에 연결 상태가 없어서 간단함
- 헤더 크기가 작음
- 혼잡 제어(congestion control)이 없음
- * 빠르게 전송 가능하고, 혼잡이 발생해도 동작할 수 있다.
신뢰성이 필요한 경우, 애플리케이션 계층에서 신뢰성과 혼잡제어를 직접 구현해야 한다.
UDP segment header
UDP sender
1) 애플리케이션 계층 메시지를 전달 받는다.
2) UDP 세그먼트 헤더 필드 값을 결정하고 UDP 세그먼트를 생성한다.
3) 세그먼트를 IP 계층으로 전달한다.
UDP receiver
1) IP 계층에서 세그먼트 수신
2) UDP checksum 헤더 값 확인
3) 애플리케이션 계층 메시지 추출
4) demultiplexes하여 소켓을 통해 애플리케이션에게 메시지 전달
UDP checksum
전송된 세그먼트에서 오류를 감지한다.
sender
UDP 세그먼트의 내용 (UDP 헤더 필드 및 IP 주소 포함)을 16비트 정수의 시퀀스로 처리
checksum : 세그먼트 내용의 합에 1의 보수를 취함, 합했을 때 오버플로우 나면 오버플로우 난 비트를 앞으로 옮김
checksum value를 UDP checksum 필드에 삽입
receiver
Receive된 세그먼트의 checksum을 계산
계산된 checksum이 checksum 필드 값과 일치하는지 확인
일치하지 않으면 오류 감지
'학교강의필기장 > 컴퓨터네트워크' 카테고리의 다른 글
컴퓨터네트워크[13]: Connection-oriented transport: TCP (0) | 2023.04.20 |
---|---|
컴퓨터네트워크[12]: Principles of reliable data transfer (0) | 2023.04.20 |
컴퓨터네트워크[10]: Multiplexing and demultiplexing (0) | 2023.04.19 |
컴퓨터네트워크[9]: Transport-layer services (0) | 2023.04.19 |
컴퓨터네트워크[8]: Video streaming and content distribution networks (0) | 2023.04.19 |