UDP(User Datagram Protocol)
UDP는 전송 계층(transport layer)에서 사용하는 프로토콜의 일종입니다.
주로 TCP 와 비교가 많이 되는데, TCP과 완벽주의자 같은 느낌이라면,
UDP는 대충 일처리만 , 하지만 매우 신속하게 처리하는 타입 느낌입니다.
당연히 각기 장단점이 있겠죠?
UDP가 하지 않는 것 = TCP는 하는 것.
- 연결 셋업 / 종료 (Connection setup/teardown)
- 수신 완료했다고 알리기 (Acknoledgement)
- 재전송 (Retransmission)
- Fragmentation
- 혼잡 제어 (Congestion Control)
- 순서대로 보내기 (In-order delivery)
- PMTU discovery
UDP는 이 많은 것들을 하지 않습니다.
이들은 TCP는 다 중요시하게 다루는 것들이죠...
그럼 UDP는 대체 무엇을 하느냐??
UDP의 주요 기능.
- Multiplexing / Demultiplexing
- Checksum(선택적)
네 이 두가지를 주로 합니다.
물리, 데이터링크에서는 MAC 주소로 대상 기기를 찾아내고
네트워크 계층에서는 IP 주소를 이용해 대상 인터페이스(호스트) 를 찾아냅니다.
그러면 이제 대상 기기에도 어떤 프로세스에 데이터를 전할 것인가가 필요한데,
이때 전송 계층에 해당하는 UDP 가 프로세스의 포트 번호를 가지고 있습니다.
포트번호를 이용해 프로세스의 통로를 식별해줍니다.
UDP의 특징/사용처
UDP의 주요 특징은 세 가지로 분류할 수 있습니다.
1. 실시간(Real-time)
제약 조건이 거의 없고 TCP에 비해 매우 빨라, 실시간 전송이 필요한 부분에 대해서 많이 사용됩니다.
* 사용처 : 인터넷 전화, 스트리밍 등등
2. 간단한 트랜잭션(Simple transactions)
같은 전송 계층인 프로토콜 TCP와 비교하자면, TCP 는 Setup과 종료, ACK 가 필수불가결하기 때문에
복잡한 transaction이 요구됩니다. 하지만, UDP는 그딴거 다 필요없다!! 😎
* 사용처 : DNS(반드시 UDP이용), DHCP, SNMP 등등
3. 멀티캐스트 / 브로드캐스트 가능
TCP는 전송측과 수신측이 서로 검증이 완료가 돼야 보냅니다.
Point-to-point 방식으로 작동하는 TCP는 멀티캐스트, 브로드캐스트 전송이 모두 불가능합니다.
UDP 만이 가능하죠.
* 사용처 : IPTV
UPD 패킷의 생김새
패킷 길이는 데이터 길이 + UDP 헤더 길이 를 뜻합니다. (IP 헤더 길이는 제외!)
저 위에는 IP 헤더와 IP 체크섬이 따로 있습니다.
checksum과 패킷 길이에 대한 정보도 IP 헤더에 다 포함이 되어 있습니다.
따라서 사실상 패킷 길이, 체크섬 또한 굳이 없어도 통신에는 문제가 없습니다.
UDP에는 특수한 헤더 pseudo-header 가 있습니다.
UDP의 checksum 계산과 pseudo-header에 관해서는
2부 : UDP checksum / UDP pseudo-header 에서 이어집니다. 😄
https://programming119.tistory.com/149
'컴퓨터 지식 > 네트워크&프로토콜' 카테고리의 다른 글
[네트워크📶] DHCP 패킷 분석/ DHCP 특징 (0) | 2020.06.01 |
---|---|
[네트워크📶] DHCP 역사 / RARP 프로토콜/ BOOTP 프로토콜 (3) | 2020.06.01 |
[네트워크📶] UDP pseudo-header(수도헤더) (2) | 2020.05.30 |
[네트워크📶/TCP] Silly Window Syndrome 과 Nagle 알고리즘 (0) | 2020.05.28 |
[프로토콜] ARP spoofing 이란? / ARP poisoning / (0) | 2020.03.23 |
댓글