CS 지식/○ Network

(4) UDP & DNS

코르시카 2021. 7. 25. 15:58

> 내글 참조

https://korshika.tistory.com/134?category=974498 

 

(2) 인터넷 통신 - IP / TCP,UDP / PORT

1. 인터넷 통신 복잡한 인터넷 망을 통해 두대의 컴퓨터가 연결됨 이러한 통신을 하기 위한 규약이 있고 이가 IP(Internet Protocol) 임 1-1) IP (internet protocol) 통신하기 위한 규약의 총칭 통신규약을 따

korshika.tistory.com

https://korshika.tistory.com/136?category=974498 

 

(3) 인터넷 통신 - PORT, DNS

1. Port 란? 1-1) 정의 한 IP에 여러 연결이 필요한 경우 사용하게 되는 것, 패킷이 Port로 구분 됨 받을 때와 전송할 때 마찬가지 > 한 IP 내에서 다음과 같이 포트 번호로 Application / 응용프로그램 별로

korshika.tistory.com

 

1. UDP 통신

1-1) UDP 통신 정의

  • User Datagram Protocol의 약자
  • 데이터를 데이터그램 단위로 처리하는 프로토콜
  • 비연결형, 신뢰성 없는 전송 프로토콜
  • Transfer layer, 전송 계층
  • IP와 거의 동일하며, checksum + port 가 추가됨
  • 빠른 대신, 비연결성 지향

 

1-2) TCP / UDP 등장 이유

  1. IP
    - Host to Host (장치 to 장치)만을 지원
    - 장치에서 장치로 이동은 IP로 해결되지만, 하나의 장비안에서 수많은 프로그램들이 통신을 할 경우
       IP만으로는 한계 → TCP / UDP에 Port 포함
  2. 오류
    - IP에서 오류가 발생한다면 ICMP에서 알려주지만 ICMP는 알려주기만 할 뿐 대처를 못함
    - IP보다 위에서 처리를 해줘야 함 → 상위 프로토콜인 TCP와 UDP 오류 처리 포함
    ( 전송 계층의 세그먼트가 패킷에 포함되지만,  TCP/UDP를 더 상위로 쳐주는 듯? )

ICMP : 인터넷 제어 메시지 프로토콜로 네트워크 컴퓨터 위에서 돌아가는 운영체제에서
오류 메시지를 전송받는데 주로 쓰임

 

1-3) TCP / UDP 오류 해결법

TCP / UDP 공통 : checksum + port 구분

  • TCP : 데이터 분식, 중복, 순서 바뀜, 서버 on 여부, 데이터 전달 여부 등을 판단하여
    송수신 데이터의 정확한 전달을 확인할 수 있도록 해줌

  • UDP : IP가 제공하는 수준 정도의 간단한 IP 상위 계층의 프롴토콜
    어플리케이션에서 데이터 순서, missing 여부등을 체크하여 사용하는 번거로움 있음
    - DNS가 UDP를 사용하는 이유

    ※ 이유

    > DNS : Domain Name Server,  Application layer영역

     

    [DNS 추가 설명]

    ■ 정의 : DNS는 데이터를 교환하는 작업(장치가 송수신 한번씩 해야 함)
    - 이때, TCP를 사용하게 되면 
    1) 데이터 송신할 때 까지, 세션 확립을 위한 처리
    2) 송신한 데이터가 수신되었는지 점검과정이 필요하므로 overhead가 큼


    - Request 양이 작음 ->  UDP Request에 담길 수 있음
    - TCP는 connection 유지를 check하는데
      현재 시점에서 HTTP 지속 연결(Persisten Connections)를 기본으로 동작함(계속 연결)
       참조 : https://korshika.tistory.com/143?category=974498

    - 3 way handshaking으로 연결 유지 필요성 없음 + 모든 데이터 송수신 과정에서 연결 확인
      (이는 오버헤드 발생) → 이 과정이 없으므로 더 빠른 데이터 전송 가능
    - Request missing / 순서 등은 Application layer에서 따로 제어하면 UDP도 사용 가능
    - DNS : port 35 번
    - TCP를 그래도 사용하는 경우 :
       - 512(UDP 크기 제한) 이 넘을 때, TCP를 사용해야 함
       - Zone Transter 사용 경우 (DNS 서버간 요청을 주고 받을 때 사용하는 Transfer)
       - UDP로 송신 수행하고,  응답이 돌아오지 않는 경우 TCP로 fallback

 

 

2. UDP 상세

2-1) UPD 헤더

  • Source port : 시작 포트
  • Destination port : 도착지 포트
  • Length : 길이
  • Checksum : 오류 검출
    • 중복 검사의 한 형태로, 오류 정정을 통해 공간이나 시간 속에서 송신된 자료의 무결성을 보호하는 단순한 방법이다.

 

2-2) UDP 특징

- 간단하여 TCP 보다 용량이 가볍고, 송신 속도가 매우 빠름

- 확인 응답과정, 데이터 정합성(순서, missing 체크), 서버 On 여부 등을 체크하지 않으므로 TCP보다 신뢰성이 낮음

- UDP : 비연결성, TCP : 연결성 으로 요약될 수 있음

 

 


참조

https://gyoogle.dev/blog/computer-science/network/UDP.html

 

UDP | 👨🏻‍💻 Tech Interview

UDP 들어가기 전 UDP 통신이란? User Datagram Protocol의 약자로 데이터를 데이터그램 단위로 처리하는 프로토콜이다. 비연결형, 신뢰성 없는 전송 프로토콜이다. 데이터그램 단위로 쪼개면서 전송을

gyoogle.dev

 

반응형