UDP 특징
- 비연결형 서비스
- 신뢰성 없는 전송 프로토콜
- 단순한 요청 - 응답을 필요로 하는 프로세스
UDP 동작
- 비연결형 서비스
- 흐름 제어, 오류 제어 없음
- 캡슐화, 역캡슐화
UDP 사용 Application 프로토콜
- DNS
- DHCP
- streaming multimedia app (youtube, netflix ..)
process - process 통신
호스트 안의 각 프로세스 까지 전달하기 위한 프로토콜입니다.
보통 OS는 다중 사용자와 다중 프로그래밍 환경을 수행 가능하도록 설계되어있습니다.
통신을 위해서는 다음과 같은 사항이 정의되어야 합니다.
- local host - IP address
- local process - port number
- remote host - IP address
- remote process - port number
port number
- ephemeral port number 임시 포트 번호
- well-known port number 잘 알려진 포트 번호
프로세스들을 정의하기 위한 식별자 입니다.
UDP 소프트워어가 임의로 선택한 포트 번호로 자신을 정의합니다.
만일 서버 측의 컴퓨터가 임의의 포트 번호를 지정하면
해당 서버와의 통신을 원하는 클라이언트는 이 포트 번호를 알 방법이 없습니다.
물론 특정 서버에게 특정 packet을 보내어 포트 번호를 요청할 순 있지만
그만큼 더 많은 packet을 보내야 합니다.
이를 위해 범용 포트 번호를 사용합니다.
IANA port number 범위
- well - known - 배정, 제어
- registered - 중복 피하기 위해서 배정, 제어 X
- dynamic and private - 배정(등록)X, 제어 X
IANA에 의해 포트 번호가 구간별로 배정되고 제어됩니다.
특히 이 dynamic은 NAT에서 부여하는 임시 포트 번호와 일치합니다.
예를 들어
HTTP는 well-known 포트 번호로 80번 입니다.
DNS는 well-known 포트 번호로 53번 입니다.
socket address
UDP는 IP 주소와 포트 번호 둘 다 필요하기 때문에
이를 하나로 묶은 socket 주소로 표현합니다.
UDP Header 구조
- Source port number
- Destination port number
- Total length
- Checksum
8byte의 고정 크기를 가진 헤더입니다.
user datagram이라 불립니다.
Source, Destination port number
발신자, 목적지의 포트 번호가 기록되어 있습니다.
IP 주소는 하위 계층인 IP에서 가져올 수 있으므로 여기서는 저장하지 않습니다.
Total length
헤더와 data를 합친 패킷 길이를 나타냅니다.
Total length - Header(8Bytes) 를 계산하면 Data영역의 크기가 나옵니다.
Checksum
datagram의 오류 검사 단계입니다.
UDP 동작
비연결형 서비스
- unreliable 신뢰성이 없는 = no connection 연결과정이 없는
으로 이해하면 됩니다.
transport layer 자체가 신뢰성 있는 전송인데
UDP는 신뢰성이 없는 프로토콜입니다. 뭔가 모순적입니다.
영어단어를 한글로 번역하다보니 이렇게 받아들일 수 있을 것 같습니다.
위와 같이 no connection으로 받아들이면 됩니다.
즉, 연결과정이 있느냐 없느냐를 판단하면 됩니다.
흐름 제어와 오류 제어
UDP는 흐름 제어 자체가 없습니다.
또한 오류제어도 checksum 이외에 없습니다.
checksum에서 오류가 있음을 발견하면 조용히 폐기합니다.
메세지가 없어지거나 중복되었을 시에 목적지 host는 전혀 알 수 없습니다.
캡슐화와 역캡슐화
다른 계층들과 같이 UDP에서도 캡슐화를 통해 보내고 역캡슐화를 통하여 헤더를 꺼내 해석합니다.
다만, 프로세스에서 다른 프로세스로 메세지를 보내는 것에 차이가 있습니다.
참조
대학교 네트워크프로토콜 강의
'CS > Network' 카테고리의 다른 글
[Network] TCP (0) | 2022.12.08 |
---|---|
[Network] RDT protocol와 Pipelined Protocol(Go-Back-N, Selective Repeat) (0) | 2022.11.24 |
[Network] Transport Layer (0) | 2022.10.25 |
[Network] ICMP (0) | 2022.10.21 |
[Network] 단위 정리 (0) | 2022.10.18 |