본문 바로가기
네트워크

[네트워크] 3.3 비연결형 트랜스포트: UDP

by Lizardee 2023. 10. 12.

▶ 인터넷 트랜스포트 계층 프로토콜

: UDP, TCP

 

트랜스포트 계층은 네트워크 계층(다중화; multiplexing)과 해당하는 애플리케이션 레벨 프로세스(역다중화; demultiplexing) 간에 데이터를 넘겨주기 위해 다중화와 역다중화 서비스를 제공해야 한다.

 

UDP는 트랜스포트 계층 프로토콜이 할 수 있는 최소 기능으로 동작한다. UDP는 다중화/역다중화 기능과 간단한 오류 검사 기능을 제외하면 IP에 아무것도 추가하지 않는다.

  1. UDP는 애플리케이션 프로세스로부터 메시지를 가져와서, 다중화/역다중화 서비스에 대한 출발지 포트 번호 필드와 목적지 포트 번호 필드를 첨부하고, 다른 두 필드룰 추가한 후에, 최종 세그먼트를 네트워크 계층으로 넘겨준다.
  2. 네트워크 계층은 트랜스포트 계층 세그먼트를 IP 데이터그램으로 캡슐화하고, 세그먼트를 수신 호스트에게 전달하기 위해 최선을 다한다.
    만약 세그먼트가 수신 호스트에 도착한다면 UDP는 세그먼트의 데이터를 해당하는 애플리케이션 프로세스로 전달하기 위해 목적지 포트 번호를 사용한다.

UDP는 세그먼트를 송신하기 전에 송신 트랜스포트 계층 개체들과 수신 트랜스포트 계층 개체들 사이에 핸드셰이크를 사용하지 않는다는 점에 주의하자. 이런 이유로 UDP를 비연결형이라고 한다.

 

▷ 많은 애플리케이션은 다음과 같은 이유로 UDP에 더 적합하다.

  • 무슨 데이터를 언제 보낼지에 대해 애플리케이션 레벨에서 더 정교한 제어 -- HTTP/3
  • 연결 설정이 없음
  • 연결 상태가 없음
  • 작은 패킷 헤더 오버헤드

 

 

3.3.1 UDP 세그먼트 구조

UDP 세그먼트(트랜스포트 계층) 구조

 

 

3.3.2 UDP 체크섬

UDP 체크섬은 오류 검출을 위한 것이다. 즉, 체크섬은 세그먼트가 출발지로부터 목적지로 이동했을 때, UDP 세그먼트 안의 비트에 대한 변경사항이 있는지 검사하는 것이다.

 

UDP가 체크섬을 제공하는 이유는 출발지와 목적지 사이의 모든 링크가 오류 검사를 제공한다는 보장이 없기 때문이다. 즉, 링크 중에서 하나가 오류 검사를 제공하지 않는 프로토콜을 사용할 수도 있는 것이다.

그러므로 세그먼트들이 정확하게 링크를 통해 전송되었을지라도, 세그먼트가 라우터의 메모리에 저장될 때 비트 오류가 발생할 수 있다.

  • 종단과 종단의 원칙(end-end principle): 주어진 링크 간의 신뢰성과 메모리의 오류 검사가 보장되지도 않고, 종단 간의 데이터 전송 서비스가 오류 검사를 제공해야 한다면, UDP는 종단 기반으로 트랜스포트 계층에서 오류 검사를 제공해야만 한다.

IP는 어떠한 2계층 프로토콜에서도 동작해야 하므로, 트랜스포트 계층은 안전장치로서 오류 검사를 제공하는 것이 유용하다. 

UDP는 오류 검사를 제공하지만, 오류를 회복하기 위한 어떤 일도 하지 않는다.

UDP 체크섬