2020-2-18 TCP, UDP등장배경
TCP와 UDP의 등장배경
-
IP의 역할은 Host to Host(장치대장치)만 지원한다. 장치에서 장치로 이동은 IP로 해결되지만, 하나의 장비안에서 수많은 프로그램들이 통신할 경우 IP만으로는 한계가 있다.
-
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