UDP란?

전송 계층 통신 프로토콜인 UDP는 음성 및 비디오 트래픽을 위한 아주 일반적인 프로토콜입니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • UDP/IP의 정의
  • UDP의 몇 가지 사용 사례 설명

관련 콘텐츠


계속 알아보시겠어요?

인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!

Cloudflare가 개인 데이터를 수집하고 처리하는 방법은 Cloudflare의 개인정보 취급방침을 참조하세요.

글 링크 복사

사용자 데이터그램 프로토콜(UDP/IP)이란?

사용자 데이터그램 프로토콜(UDP)은 통신 프로토콜로, 특히 비디오 재생 또는 DNS 조회와 같이 시간에 민감한 전송을 위해 인터넷을 통해 사용됩니다. 이 프로토콜의 경우 데이터가 전송되기 전에는 공식적으로 연결이 설정되지 않으므로 통신 속도가 빨라집니다. 따라서 데이터를 아주 빠르게 전송할 수 있지만, 전송 중에 패킷이 손실되어 DDoS 공격의 형태로 악용될 수 있습니다.

UDP는 어떻게 작동할까요?

모든 네트워킹 프로토콜과 마찬가지로 UDP는 네트워크의 두 컴퓨터 간에 데이터를 전송하기 위한 표준화된 방법입니다. 다른 프로토콜과 비교하여 UDP는 먼저 연결을 설정하거나, 해당 패킷의 순서를 표시하거나, 의도한 대로 도착했는지 여부를 확인하지 않고 패킷(데이터 전송 단위)을 대상 컴퓨터로 직접 보내는 간단한 방식으로 이 프로세스를 수행합니다. (UDP 패킷을 '데이터그램'이라고 합니다.)

TCP와 UDP

UDP는 또 하나의 일반적인 전송 프로토콜인 TCP보다 빠르지만, 안정성이 떨어집니다. TCP 통신에서 두 컴퓨터는 '핸드셰이크'라는 자동화된 프로세스를 통해 연결을 설정하는 것으로 시작합니다. 이 핸드셰이크가 완료된 후에만 실제로 데이터 패킷이 한 컴퓨터에서 다른 컴퓨터로 전송됩니다.

UDP 통신은 이 프로세스를 거치지 않습니다. 대신 한 컴퓨터에서 단순히 다른 컴퓨터로 데이터를 보내기 시작할 수 있습니다.

TCP 통신과 UDP 통신의 비교

또한 TCP 통신은 데이터 패킷이 수신되어야 하는 순서를 나타내고 패킷이 의도한 대로 도착하는지 확인합니다. 패킷이 도착하지 않는 경우(예: 중간 네트워크의 혼잡으로 인해) TCP를 다시 보내야 합니다. UDP 통신에는 이 기능이 포함되어 있지 않습니다.

이러한 차이 때문에 몇 가지 이점이 생깁니다. UDP는 '핸드셰이크'가 필요하지 않거나 데이터가 제대로 도착하는지 확인하지 않기 때문에 TCP보다 훨씬 빠르게 데이터를 전송할 수 있습니다.

그러나 이 속도 때문에 성능 저하가 생깁니다. UDP 데이터그램이 전송 중에 손실되면 다시 전송되지 않습니다. 따라서 UDP를 사용하는 애플리케이션은 오류, 손실, 중복을 허용할 수 있어야 합니다.

(기술적으로 보면, 이러한 패킷 손실은 UDP의 결함이라기보다는 인터넷 구축 방식의 결과입니다. 대부분의 네트워크 라우터는 패킷 순서 지정 및 도착 확인을 의도적으로 수행하지 않습니다. 그렇게 할 경우 수행할 수 없는 양의 추가 메모리가 필요하기 때문입니다. TCP는 애플리케이션에서 이를 필요로 할 때 이 격차를 메우는 방법입니다.)

UDP는 어떤 용도로 사용되나요?

UDP는 때때로 패킷을 삭제하는 것이 기다리는 것보다 나은 시간에 민감한 통신에 일반적으로 사용됩니다. 음성 및 비디오 트래픽은 시간에 민감하고 일정 수준의 손실을 처리하도록 설계되었으므로 이 프로토콜을 사용하여 전송되는 경우가 많습니다. 예를 들어, 많은 인터넷 기반 전화 서비스에서 사용되는 Voice over IP(VoIP)는 일반적으로 UDP를 통해 작동합니다. 이는 정적인 전화상의 대화가 뚜렷하게 들리지만 심하게 지연되는 대화보다 선호되기 때문입니다.

따라서 UDP는 온라인 게임에도 이상적인 프로토콜입니다. 마찬가지로 DNS 서버는 빠르고 효율적이기도 해야 하므로 UDP를 통해서도 작동합니다.

UDP는 DDoS 공격에 어떻게 사용될까요?

패킷 손실과 같은 UDP '위험'은 대부분의 사용 사례에서 심각한 문제가 아닙니다. 그러나 UDP는 악의적인 목적으로 사용될 수 있습니다. UDP에는 핸드셰이크가 필요하지 않으므로 공격자는 먼저 해당 서버의 통신 시작 권한을 얻지 않고도 대상 서버에 UDP 트래픽을 '폭주시킬' 수 있습니다.

정의되지 않음

일반적인 UDP 폭주 공격은 많은 개수의 UDP 데이터그램을 대상 컴퓨터의 임의 포트로 보냅니다. 그에 따라 대상이 똑같이 많은 개수의 ICMP 패킷으로 응답하게 되며, 이는 해당 포트에 연결할 수 없음을 나타냅니다. 각 사기성 데이터그램에 응답하는 데 필요한 컴퓨팅 리소스 때문에 대상이 소진되어 합법적인 트래픽에 대한 서비스 거부가 발생할 수 있습니다. (자세한 내용은 UDP 폭주 공격에 대한 글을 참조하세요.)

조직에서는 다양한 방법으로 UDP 폭주 공격을 방어할 수 있습니다.하나는 ICMP 패킷의 응답 속도를 제한하는 것이지만, 이 접근 방식으로는 합법적인 패킷이 필터링될 수도 있습니다.또 하나의 방법은 분산된 여러 데이터 센터의 중간 네트워크를 통해 UDP 트래픽을 수신하고 응답하여 단일 원본 서버가 사기성 요청으로 압도되는 것을 방지하는 것입니다.Cloudflare에서 이 전략을 사용하여 조직이 DDoS 공격을 완화하는 방법을 자세히 알아보세요.