Doctor Pepper

UDP 개념 및 원리 본문

자격증/CCNA

UDP 개념 및 원리

Doctor Pepper 2024. 10. 18. 15:05

 

1. UDP(User Datagram Protocol)

 UDP비연결형 프로토콜로, 데이터 전송 전에 연결을 설정할 필요가 없으며 각 데이터그램을 독립적으로 처리한다. 이러한 특징 덕분에 UDP는 데이터 전송 속도가 빠르고, 구조가 간단하다. 반면 TCP는 통신의 신뢰성을 중요시하는 연결형 프로토콜로, 3-way 핸드셰이크를 통해 연결을 설정한 후 통신을 시작한다.

 

 TCP는 전달되지 않은 패킷에 대해 재전송 제어를 수행하고, 흐름 제어혼잡 제어와 같은 복잡한 과정을 통해 통신의 신뢰성과 효율성을 보장한다. 이러한 과정은 신뢰성을 높이는 데 기여하지만, 데이터 전송 속도에는 부정적인 영향을 미칠 수 있다.

 

 반면 UDP는 신뢰성보다는 빠른 데이터 전송에 중점을 두고 있다. 이로 인해 실시간성이 요구되는 상황에서 주로 사용된다. 예를 들어, 비디오 스트리밍, 온라인 게임, DNS 질의 등과 같은 분야에서 UDP는 그 특성을 잘 활용할 수 있다. 이러한 이유로 UDP는 복잡한 제어 과정을 생략하고, 단순한 처리로 빠르게 동작하는 전송 계층 프로토콜로 자리 잡고 있다.

비연결형 데이터 전송 전에 상대방과 연결을 설정하지 않으며, 데이터 전송 후에도 연결을 종료하지 않음.
신뢰성 없음 데이터그램의 전송 성공 여부를 보장하지 않음.
따라서 손실된 패킷에 대한 재전송이나 순서 보장은 이루어지지 않음.
속도 TCP보다 빠른 전송 속도를 제공함.
이는 데이터 전송 과정에서 추가적인 처리 과정이 없기 때문임.
헤더 크기 UDP의 헤더는 8바이트로 작고, TCP 헤더(20바이트 이상)보다 간결함.

 

2. UDP 헤더

 전송 계층에서 다루는 PDU(Protocol Data Unit)세그먼트(예: TCP) 또는 데이터그램(예: UDP)으로 구분된다. UDP는 응용 계층에서 내려온 데이터에 UDP 헤더를 추가하여 데이터그램을 형성한다. 전송 속도를 높이기 위해 UDP는 불필요한 요소들을 생략하여 간결한 구조를 유지한다.

 

 UDP 헤더출발지 포트 번호, 목적지 포트 번호, UDP 데이터그램 길이, 체크섬으로 구성된다. 이러한 구성 요소 덕분에 UDP 헤더는 TCP 헤더와 비교했을 때 매우 단순한 구조임을 알 수 있다. 이는 UDP가 빠른 데이터 전송을 목표로 설계되었음을 나타낸다.

 

- 발신자 포트 번호/수신자 포트 번호

포트 번호는 기본적으로 TCP와 같다. 발신자 포트 번호는 데이터그램을 전송하는 응용 프로그램의 포트 번호로, 수신자가 데이터그램을 올바르게 처리할 수 있도록 한다. 반면, 수신자 포트 번호는 데이터그램을 수신할 응용 프로그램의 포트 번호로, 발신자와 마찬가지로 수신자가 응용 프로그램과 통신하기 위해 필요하다.

 

- UDP 데이터그램 길이

 UDP 데이터그램의 총 길이(헤더와 페이로드를 합친 길이)를 나타내는 2바이트 필드이다. 이 필드는 데이터그램의 유효성을 확인하는 데 중요한 역할을 한다.

 

- 체크섬

 수신된 UDP 데이터그램의 무결성을 확인하기 위한 2바이트 필드이다. 체크섬은 UDP 헤더와 페이로드를 기반으로 계산되며, TCP 헤더의 체크섬과 유사하게 데이터 전송 중 오류를 감지하는 데 사용된다.

 

3. UDP 원리

UDP의 동작 원리는 데이터그램 생성부터 수신까지의 과정을 포함한다.

 

- 데이터그램 생성

  • 응용 프로그램의 데이터 준비 : UDP를 사용하는 응용 프로그램은 전송할 데이터를 준비한다. 이 데이터는 사용자의 요청이나 특정 이벤트에 의해 생성될 수 있다.
  • UDP 헤더 추가 : 응용 프로그램은 데이터를 UDP 데이터그램으로 변환한다. 이 과정에서 UDP헤더가 추가된다. UDP 헤더에는 발신자 포트 번호, 수신자 포트번호, 데이터그램의 총 길이, 그리고 체크섬과 같은 정보가 포함된다. 이 헤더는 수신자가 데이터그램을 올바르게 처리할 수 있도록 필요한 정보를 제공한다.

- 전송

  • IP 패킷으로 포장 : 생성된 UDP 데이터그램은 IP 패킷의 형태로 캡슐화된다. 이 과정에서 UDP 데이터그램은 네트워크 계층에서 IP 프로토콜에 의해 처리된다. IP 헤더가 추가되어 데이터가 목적지 IP 주소로 전송된다.
  • 비연결형 전송 : UDP는 비연결형 프로토콜이므로, 데이터그램 전송 전에 연결을 설정할 필요가 없다. 즉, UDP는 데이터그램을 생성한 후, 단순히 목적지로 전송한다. 이 과정에서 오류 확인이나 재전송과 같은 신뢰성 있는 기능은 제공되지 않기 때문에, 전송 속도가 빠르고 경량화된 구조를 갖는다.

- 수신 

  • 수신 측 데이터그램 수신 : 수신 측에서는 네트워크를 통해 도착한 IP 패킷을 수신한다. 이 패킷은 UDP 데이터그램을 포함하고 있다.
  • UDP 프로토콜에 의한 처리 : 수신 측의 UDP 프로토콜은 수신된 IP 패킷에서 UDP 헤더를 분석하여, 데이터그램의 발신지와 수신자의 포트 번호, 데이터그램의 길이, 체크섬 등을 확인한다. 이를 통해 적절한 응용 프로그램(포트)으로 데이터를 전달한다.
  • 응용 프로그램으로 전달 : 수신된 데이터는 UDP 헤더에 명시된 수신자 포트 번호에 따라 해당 응용 프로그램으로 전달된다. 이 과정은 UDP의 특성상 신뢰성 있는 데이터 전송을 보장하지 않지만, 빠르고 효율적인 데이터 전달이 가능하다.

4. TCP와 UDP 차이

  TCP UDP
연결 방식 연결 지향(3-Way handshake) 비연결형
신뢰성 신뢰성 보장(ACK, 재전송) 신뢰성 없음(손실, 중복, 순서 변경 감지하지 않음)
전송 속도 상대적으로 느림(연결 설정 및 확인 과정) 상대적으로 빠름(즉시 데이터 전송)
헤더 크기 20바이트 이상 8바이트
전송 방식 스트림 기반(연속적인 바이트 스트림) 데이터그램 기반(독립적으로 처리)
사용 사례 이메일, 웹 페이지 전송, 파일 전송 실시간 비디오 스트리밍, 온라인 게임, DNS 요청

 

- 연결 방식

  • TCP : 연결 지향 프로토콜이다. 데이터 전송 전에 송신자와 수신자 간에 연결을 설정하는 "3-Way handshake"과정을 통해 신뢰할 수 있는 연결을 확보한다.
  • UDP : 비연결형 프로토콜이다. 데이터그램을 전송하기 전에 연결을 설정할 필요가 없으며, 데이터그램을 즉시 송신한다.

- 신뢰성

  • TCP : 데이터 전송의 신뢰성을 보장한다. 송신자는 수신자로부터 데이터 수신 확인(ACK)을 받아야만 다음 데이터를 전송할 수 있으며, 패킷 손실 시 재전송을 수행한다.
  • UDP : 신뢰성을 제공하지 않는다. 패킷 손실, 중복, 순서 변경 등을 감지하거나 수정하지 않으며, 데이터가 도착했는지 확인하지 않는다.

- 데이터 전송 속도

  • TCP : 연결 설정과 신뢰성 보장 기능으로 인해 전송 속도가 느릴 수 있다. 데이터가 안전하게 전달되도록 여러 과정을 거쳐야 하기 때문이다.
  • UDP : 데이터그램이 즉시 전송되므로 전송 속도가 빠르다. 추가적인 처리 과정이 없기 때문에 지연이 적다.

- 헤더 크기

  • TCP : 헤더는 20바이트 이상으로, 다양한 제어 정보를 포함한다. 예를 들어, 시퀀스 번호, 확인 번호, 플래그 등이 포함되어 데이터 전송을 제어한다.
  • UDP : 헤더는 8바이트로, 간단하게 발신자 및 수신자 포트 번호, 데이터그램 길이, 체크섬 정보를 포함한다.

- 전송 방식

  • TCP : 스트림 기반 전송을 지원한다. 데이터는 연속적인 바이트 스트림으로 처리되며, 데이터의 순서를 유지한다.
  • UDP : 데이터그램 기반 전송을 지원한다. 각 데이터그램은 독립적으로 처리되며, 순서 보장이 없다.

- 사용 사례

  • TCP : 이메일, 웹 페이지 전송(HTTP/HTTPS), 파일 전송(FTP) 등 신뢰성과 순서가 중요한 응용 프로그램에서 사용된다.
  • UDP : 실시간 비디오 스트리밍, 온라인 게임, DNS 요청 등 빠른 전송이 중요한 응용 프로그램에서 사용된다.

'자격증 > CCNA' 카테고리의 다른 글

SMTP(Simple Mail Transfer Protocol), POP & IMAP  (2) 2024.10.18
DNS(Domian Name System)  (1) 2024.10.18
TCP 개념 및 원리  (2) 2024.10.18
라우팅(Routing)  (3) 2024.10.17
서브넷 마스크(Subnet mask)  (1) 2024.10.17