앞서 UDP가 mul/demul 제외하고는 별 기능을 제공하지 않는다고 했다..
- "connectionless": connection setup 기능 제공하지 않기 때문
* UDP sender-receiver 간 hand-shaking 없음
* UDP datagram은 독립적으로 처리됨
- 사용 사례
* streaming multimedia(loss 중요x, rate 중요o)에서 많이 사용
* DNS : 간단한 response 딱 한 번 필요하므로 굳이 TCP 사용할 필요 없음(단계가 너무 많음!!)
* SNMP : 주기적으로 업데이트되기 때문
* HTTP/3 : application 계층에서 다 해주기 때문(reliability, congestion control, error recovery)
- source port# & destination port# : mul/demul을 위해 사용
- length : application data 의 길이를 담음
- checksum : UDP segment의 오류가 있는지 없는지 체크 but 처리하지 않고 알려주기만 함
=> 이렇게 아무 일도 안 하지만 사용하는 이유는 ?
1. 단순하다. (connectionless)
2. 빠르다.(connection setup delay 없음, congestion control 하지 않고 무작정 밀어넣음)
3. protocol 가벼움
4. header size 작음 => overhead 확률 적음
UDP: Transport Layer Actions
UDP checksum
오류 검출 필드다.
요약해 먼저 말하자면 sender가 checksum field에 checksum값을 추가하고,
receiver가 checksum값을 계산하고 받은 checksum값과 비교하여 오류가 있는지 알아낸다.
(checksum value = checksum -> 오류없음 / checksum value = checksum -> 오류 발생)
checksum 구하는 방법(더하고 1의보수 취해주기)
1. 16-bit alignment
1110011001100110
1101010101010101
110111 01110111 011
앞의 overflow 1을 wrap around 해서 뒤에 더한다.
=> 1011101110111100
2. one's complement operation
1의 보수를 취해준다. (0은 1로, 1은 0으로)
=> 0100010001000011(checksum)
'네트워크 > 컴퓨터 네트워크 수업' 카테고리의 다른 글
3-4-2. TCP : Connection-oriented transport(1) (0) | 2024.10.21 |
---|---|
3-4-1. TCP: Principles of reliable data transfer (0) | 2024.10.21 |
3-2. Multiplexing/Demultiplexing (0) | 2024.10.21 |
3-1. Transport-Layer Services (0) | 2024.10.16 |
2-2. Application-layer protocols(Web & HTTP)(2) (3) | 2024.10.14 |