2020-2-18 TCP, UDP등장배경

TCP와 UDP의 등장배경

  1. IP의 역할은 Host to Host(장치대장치)만 지원한다. 장치에서 장치로 이동은 IP로 해결되지만, 하나의 장비안에서 수많은 프로그램들이 통신할 경우 IP만으로는 한계가 있다.

  2. IP에서 오류가 발생하면 ICMP에서 알려주지만 대처를 못한다. IP위에서 처리해야한다.

    • 1번을 해결하기 위해 PORT번호가 나오게 되었고, 2번을 해결하기 위해 상위프로토콜인 TCP와 UDP가 나오게 되었다.
    • ICMP : 인터넷제어메세지 프로토콜로 네으쿼으 컴퓨터 위에서 돌아가는 운영체제에서 오류메세지를 주고받는데 주로 쓰임

TCP와 UDP는 어떻게 오류를 해결하는가

  • TCP: 데이터의 분실, 중복, 순서 뒤바뀜 등을 자동으로 보정해줘서 송수신 데이터의 정확한 전달을 할 수 있도록 해준다.
  • UDP: IP상위 프로토콜이다. TCP와 다르게 에러가 날 수도 있고, 재전송이나 순서뒤바뀔수도 있어서 애플리케이션에서 처리하는 번거로움이 있다.

UDP는 왜사용할까

  • UDP는 안정적이지 않은 프로토콜이지만 TCP에 비해 속도가 빠르기 때문에 데이터 유실이 일어나도 크게 상관없는 스트리밍이나 화면전송에 사용

DNS(Domain Name Server)에서 UDP를 사용하는 이유

  • DNSRequest는 UDP segment에 들어갈 정도로 작다.
  • 3-way-handshaking으로 연결을 유지할 필요가 없다(오버헤드 발생)
  • Request에 대한 손실은 Application Layer에서 제어가 가능
  • DNS: PORT53
  • 크기가 512(UDP 제한)이 넘을때, TCP를 사용해야한다. TCP를 사용하면 데이터 송신할때까지 세션 확립을 위한 처리를 하고, 송신한 데이터가 수신되었는지 점검하는 과정이 필요하다. Protocol overhaed가 UDP보다 크다.
  • DNS는 Application Layer로 모든 Application Layer protocol은 UDP, TCP중 하나의 Transport layer protocol을 산용한다.
  • zone transfer(dns 서버간의 요청을 주고 받을 때 사용)를 사용할때는 tcp를 사용
Written on February 18, 2020