[ACSA 교육#9] UDP 헤더

지난 포스팅에서 TCP에 대해서 알아보았습니다. Layer 4 전송계층에서 사용되는 프로토콜은 TCP와 UDP가 대표적이죠. 그럼 오늘은 UDP에 대해서 한 번 알아보겠습니다.

Source Port 
Length 
Disadvantages 
Connectionless 
• No reliability 
No flow control 
• 
10.1.1.1 
Host A 
Indicates app: DNS, TFTP, etc. 
Destination Port 
Optional Checksum 
Advantages 
Small header size 
• 
• Low overhead 
Low delay 
10.2.2.2 
Host B

그림을 보시면 UDP 헤더가 TCP 헤더와 비교하면 얼마나 간단한지 알 수 있을 것입니다.
TCP와 동일하게 사용되는 출발지와 목적지 포트가 있고, 길이와 체크섬 필드만 있습니다.

애플리케이션 입장에서 바라보면, TCP는 굉장히 열정적이고 헌신적인 직원입니다. 상대방과 연결을 맺고 손실된 패킷은 없는지, 있다면 다시 전송하고 수신측에서 데이터 처리에 부하가 일어나지 않도록 조절도 합니다.

반대로 UDP는 연결도, 신뢰성도, 흐름에 대한 제어도 없는 게으른 직원으로 볼 수도 있습니다. 패킷이 목적지에 도달했는지 상대쪽에 부하는 없는지 관심이 아예 없습니다. 하지만, 게을러 보여도 굉장히 저렴합니다. 헤더 크기가 작다는 것은 오버헤드가 낮다는 것을 의미합니다. UDP는 더 낮은 지연시간(Latency)로 데이터를 전송할 수 있다는 것을 의미합니다.

신뢰성은 떨어지지만 속도가 빠릅니다. 때문에 VoIP(Voice over IP)나 비디오 스트리밍과 같은 애플리케이션에 적합합니다. 이러한 애플리케이션에는 TCP의 모든 안정성이 필요하지 않을 뿐더러 비용을 지불하고 싶어하지도 않습니다. 애플리케이션을 제작하는 개발자는 필요한 안정성만 간단하게 프로그램 내에 자체적으로 구현할 수 있기 때문입니다.

UDP 역시 최대 65,536개의 포트를 사용할 수 있지만, TCP와 마찬가지로 처음 1,024개는 잘 알려진 애플리케이션을 위해 예약되어 사용됩니다. 나머지 1025~65525까지의 포트는 TCP와 동일하게 사용 후 삭제되는 임시 포트(Ephemeral Port)로 알려져 있습니다.

이렇게 지난 4~5개 포스팅을 통해서 Layer 1부터 Layer 4까지 사용되는 표현과 함께 헤더의 정보까지 알아보았습니다. TCP/IP Stack에서 사용되는 Ethernet, IP, TCP/UDP까지 어떻게 사용되고 왜 필요한지 잘 이해하셨으면 좋겠습니다.

이론적인 얘기는 여기서 마무리하고 다음 포스팅에서는 네트워크 장치에 대해서 알아보도록 하겠습니다.