User Datagram Protocol
의 약자로 데이터를 데이터그램 단위로 처리하는 프로토콜
이다.비연결형, 비신뢰성
전송 프로토콜이다.전송 계층
이다.Transport layer(전송계층)
에서 사용하는 프로토콜.IP
의 역할은 Host to Host (장치 to 장치)만을 지원
한다. 장치에서 장치로 이동은 IP로 해결되지만, 하나의 장비안에서 수많은 프로그램들이 통신을 할 경우에는 IP만으로는 한계
가 있다.
-> 1번을 해결하기 위하여 포트 번호
가 나오게 됐다.
또한, IP에서 오류가 발생
한다면 ICMP
에서 알려준다. 하지만 ICMP는 알려주기만 할 뿐 대처를 못하기 때문에 IP보다 위에서 처리
를 해줘야 한다.
-> 2번을 해결하기 위해 상위 프로토콜인 TCP와 UDP
가 나오게 되었다.
*ICMP(Internet Control Message Protocol) : 인터넷 제어 메시지 프로토콜
로 네트워크 컴퓨터 위에서 돌아가는 운영체제에서 오류 메시지를 전송
받는데 주로 쓰임
자동으로 보정
해줘서 송수신 데이터의 정확한 전달
을 할 수 있도록 해준다.에러
가 날 수도 있고, 재전송이나 순서가 뒤바뀔 수도 있어서
이 경우, 어플리케이션에서 처리하는 번거로움
이 존재한다.데이터의 신속성
이다. 데이터의 처리가 TCP보다 빠르다.
실시간 방송(아프리카티비, 트위치 등)과 온라인 게임
에서 사용된다. 네트워크 환경이 안 좋을때, 끊기는 현상
을 생각하면 된다.Request의 양이 작음 -> UDP Request에 담길 수 있다.
Application Layer에서 제어
가 가능하다.크기가 512(UDP 제한)이 넘을 때, TCP를 사용
해야한다.중복 검사
의 한 형태로, 오류 정정
을 통해 공간이나 시간 속에서 송신된 자료의 무결성을 보호
하는 단순한 방법이다.용량이 가볍고 송신 속도가 빠르게 작동
됨.확인 응답을 못하므로, TCP보다 신뢰도가 떨어짐.
=> UDP는 비연결성, TCP는 연결성
DNS는 데이터를 교환하는 경우임
이때, TCP를 사용하게 되면, 데이터를 송신할 때까지 세션 확립을 위한 처리를 하고, 송신한 데이터가 수신되었는지 점검하는 과정이 필요하므로, Protocol overhead가 UDP에 비해서 큼.
DNS는 Application layer protocol(실행계층)임.
모든 Application layer protocol은 TCP, UDP 중 하나의 Transport layer protocol을 사용해야 함.
(TCP는 reliable, UDP는 not reliable)
UDP는 connection 을 유지할 필요가 없음.
DNS request
는 UDP segment에 꼭 들어갈 정도로 작음.
DNS query
는 single UDP request와 server로부터의 single UDP reply로 구성
되어 있음.UDP는 not reliable
이나, reliability는 application layer에 추가
될 수 있음. (Timeout 추가나, resend 작업을 통해)53번 port에서 사용
함.Zone transfer
을 사용해야하는 경우에는 TCP를 사용해야 함.DNS 서버 간의 요청을 주고 받을 떄 사용
하는 transfer)데이터가 512 bytes를 넘거나
, 응답을 못받은 경우
TCP로 함.[출처]