[CS-네트워크] UDP

지영·2023년 6월 30일
0

CS

목록 보기
35/77
post-thumbnail

UDP통신이란,

  • User Datagram Protocol의 약자. 데이터를 데이터그램 단위로 처리하는 프로토콜
  • 비연결형, 신뢰성 없는 전송 프로토콜
  • 데이터그램 단위로 쪼개면서 전송을 해야하기 때문에 전송 계층이다.
  • Transport layer에서 사용하는 프로토콜

TCP, UDP는 왜 나오게 되었는가?

IP의 한계

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

IP의 오류 잡기의 한계

IP에서 오류가 발생하면 ICMP에서 알려준다. 하지만 ICMP는 알려주기만 할 뿐, 대처를 못하기 때문에 IP보다 위에서 처리를 해줘야 한다.

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

그렇다면 TCP, UDP는 오류를 어떻게 해결하는가?

TCPUDP
데이터의 분실, 중복, 순서가 뒤바뀜 등을 자동으로 보정하여 송수신 데이터의 정확한 전달을 할 수 있도록 함IP가 제공하는 정도의 수준만을 제공하는 간단한 IP 상위 계층 프로토콜. TCP와는 다르게 에러가 날 수 있고, 재전송이나 순서가 뒤바뀔 수도 있어서 번거로움이 존재할 수도 있음.

왜 신뢰성있는 TCP를 두고 UDP를 사용할까

  • 데이터의 신속성
    : 데이터의 처리가 TCP보다 빠르다. 비연결을 지향하기 때문에 데이터를 재전송할 필요도 없고 흐름제어, 에러 체크도 항상 필요로 하지 않습니다.

  • 인터넷 전화, 온라인 게임, 멀티미디어 스트리밍의 용도
    : 성능과 연속성이 중요한 환경에서 유용하다. 별로 중요하지 않은 데이터 손실은 감안하는 서비스에 사용된다.

DNS에서 UDP를 사용하는 이유

⛳ DNS
: TCP/IP 네트워크 상에서 사람이 기억하기 쉽게 문자로 만들어진 도메인을 숫자로 된 IP주소로 바꾸는 서버.

빠른 속도

TCP의 경우 데이터의 전송 시작 전에 3-way handshaking이 있는 반면, UDP는 연결 설정에 드는 비용이 없다. DNS는 신뢰성보다 속도가 더 중요한 서비스이기 때문에 UDP가 더 적합하다. 또한 UDP는 512 bytes를 넘어가지 않는 패킷만 전송이 가능하고 오버헤드가 없어서 속도가 빠른데, DNS가 전송하는 데이터 패킷 사이즈가 매우 작으므로 UDP가 유리하다. (전달하는 패킷의 크기가 작기 때문에 신뢰성이 보장되지 않아도 되기 때문이다.)

연결 상태를 유지할 필요가 없다.

TCP는 호스트 간의 연결 상태를 유지한다. 반면 UDP는 어떤 정보도 기록하지 않고, 유지하지 않는다. 따라서 DNS서버는 많은 클라이언트는 수용한 상태에서, 연결 상태를 유지하지 않고 정보 기록도 최소화하는 UDP를 채택하였다.

+) 💥TCP를 사용하는 경우 : DNS 서버 간에 요청을 주고 받을 때나, 데이터가 512 bytes를 넘기거나, 응답을 못받은 경우

UDP 구조

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

0개의 댓글