1. UDP: User Datagram Protocol
아주 간단한 구조의 인터넷 전송 프로토콜
UDP는 약간의 손실이 허용되거나, 속도가 중요한 경우에 주로 사용
신뢰성이 필요하다면, Application Layer(응용 계층) 에서 직접 신뢰성 추가
(신뢰성과 혼잡 제어는 응용 계층이 알아서 처리)
2. UDP의 데이터 전송 동작

1) Application Layer에서 메시지를 전달받음
2) UDP Segment 생성
UDP Header를 붙임 (source port, destination port 등)
3) 만들어진 세그먼트를 IP Layer(Network)로 전달
IP Layer는 이 세그먼트를 목적지 IP 주소로 전송
1) IP Layer로부터 세그먼트를 받음
2) UDP Header를 검사
Checksum 확인 (에러 검출)
3) UDP Header를 제거하고, Application Layer 메시지 추출
4) 포트 번호를 이용해 해당하는 소켓에 데이터 전달
3. UDP Segment format

Application Layer에서 넘어온 실제 데이터를 담음
4. UDP Check-sum

전송 도중 비트 오류(flipped bits) 발생 여부를 탐지
(데이터가 손상 없이 정확히 도착했는지 확인하기 위한 방법)
1) UDP 세그먼트 전체(헤더+데이터)를 16비트(2바이트) 단위로 나누기
2) 16비트 조각들을 1의 보수 덧셈(one’s complement sum)으로 모두 덧셈
3) checksum 필드에 기록해서 함께 전송
1) 받은 UDP 세그먼트에 대해 똑같이 16비트 단위로 덧셈
2) 수신자가 새로 계산한 checksum과, 패킷에 들어있던 checksum을 비교

1) 16비트 단위로 데이터를 나눔.
2) 두 개씩 이진수 덧셈을 함.
3) 최종 합계의 1의 보수(bitwise complement)를 취해서 checksum 생성.
아래와 같은 경우, 특정 비트 오류는 감지 못할 수도 있음
