UDP는 네트워크 계층에서 다중화/역다중화 기능과 간단한 오류 검사 기능만을 추가한 것이다. 애플리케이션이 UDP 프로토콜을 선택한다면 네트워크 계층과 직접 통신하는 셈이다.
UDP는 세그먼트를 송신하기 전 핸드셰이크가 일어나지 않는다. 그래서 UDP를 비연결형 이라 한다.
DNS는 UDP로 동작한다.
UDP가 적합한 애플리케이션이 있는데, 이유는 다음과 같다.
- 데이터를 원하고 싶을 때 보낼 수 있다.
TCP는 혼잡 제어 메커니즘 때문에 세그먼트가 지연될 수 있다. 최소 전송률을 요구하고, 지연되는 세그먼트 전송을 원하지 않으며, 데이터 손실을 허용할 수 있다면 UDP를 사용한다. - 연결 설정이 없다.
위와 마찬가지로 UDP는 데이터 전송에 지연이 없다. - 연결 상태가 없다.
TCP보다 UDP에서 동작할 때 좀 더 많은 클라이언트 수용이 가능하다. - 작은 패킷 헤더 오버헤드.
TCP 헤더는 20바이트, UDP는 8바이트다.
UDP도 신뢰적 데이터 통신이 가능하다. 애플리케이션 계층에서 구현하면 된다. 이것은 오랜 시간 디버깅을 요구하는 어려운 작업이지만, TCP의 혼잡 제어 메커니즘에 의해 전송률 억제를 당하지 않고 신뢰적 통신을 할 수 있다.
UDP 세그먼트 구조
UDP 헤더는 2바이트씩 구성된 4개의 필드를 가진다. (8 byte)
출발지 포트번호, 목적지 포트번호
길이, 체크섬
필드를 가진다.
포트번호는 목적지를 식별하기 위해 사용한다.
체크섬은 세그먼트에 오류가 발생했는지 검사하기 위해 사용한다.
많은 링크 계층이 오류 검사를 제공하는데, UDP도 오류 검사(체크섬)을 제공하는 이유는 무엇인가?
-> 출발지와 목적지 사이의 모든 링크가 오류 검사를 한다는 보장이 없기 때문이다.
UDP는 오류 검사를 제공하지만 오류 회복을 위한 어떤 일도 하지 않는다.
어떤 구현에서는 손상된 세그먼트를 그냥 버리고, 또 다른 구현에서는 경고와 함께 손상된 세그먼트를 애플리케이션에게 넘긴다.
'네트워크 하향식 접근' 카테고리의 다른 글
[컴퓨터 네트워킹 하향식 접근] 3.2 다중화와 역다중화 (0) | 2023.03.22 |
---|---|
[컴퓨터 네트워킹 하향식 접근] 3.1 트랜스포트 계층 서비스 및 개요 (0) | 2023.03.21 |
[컴퓨터 네트워킹 하향식 접근] 2.6 비디오 스트리밍과 컨텐츠 분배 네트워크 (0) | 2023.03.18 |
[컴퓨터 네트워킹 하향식 접근] 2.4 DNS-인터넷의 디렉터리 서비스 (0) | 2023.03.15 |
[컴퓨터 네트워킹 하향식 접근] 2.3 인터넷 전자메일 (0) | 2023.03.15 |