[컴퓨터 네트워크] UDP(User Datagram Protocol)

신현식·2022년 12월 5일
0

컴퓨터 네트워크

목록 보기
28/34
post-thumbnail

Transport layer

프로세스와 프로세스간의 통신을 담당한다. 여러 프로세스 사이에서 적절하게 메세지를 전달해주는 역할을 한다. transport 서비스는 Reliable connection-oriented transport service인 transmission control protocol(TCP) 와 Unreliable connectionless transport service인 user datagram protocol(UDP)로 나뉜다.

💡transport layer가 필요한 이유

  • unreliable 네트워크 서비스이기에
  • 서브넷에 대한 제어 없어서
  • 기본 네트워크 서비스보다 더 안정적으로 만들기 위해
  • 표준 프리미티브 세트를 제공하기위해

📌 port number

특정 하나의 프로세스를 정의한다. 각 프로세스는 추상적인 포트라는 개념을 통해 전송계층 상의 프로토콜인 TCP, UDP 헤더 내에 포함되어 이를 통해 통신을 하게 된다. 같은 포트번호를 사용하더라도 둘중 무엇을 사용하냐에 따라 다르게 식별한다. 일반적으로, 서버 쪽과는 달리 클라이언트 쪽에서는 포트번호에 신경쓰지 않고 해당 호스트 내에서 유일한가 여부에만 신경쓰며 UDP 소프트웨어에서 랜덤하게 선택하는데 이를 Ephemeral(임시)포트번호라고 표현한다.

🎈 IANA range of portnumber

  • Well Known Port (★): 0 ~ 1023, 이것은 IANA에서 관리한다. ex) 53/Domain Name Service 등
  • Registered Port : 1024 ~ 49151, 이것은 IANA에서 관리하지 않는다.
  • Dynamic or Ephemeral Port : 49152 ~ 65535

🎈 Socket adrress

IP Address 및 Port Number 를 조합한 것이다. 즉, Socket address = IP Address + Port Number 이다.

  • 클라이언트는 IP 패킷에 사용해야 하기 때문에 자신의 pc 안에서 IP주소를 알고있다. port는 접속하면 OS에서 사용중이 아닌 port를 클라이언트에게 할당해준다.
  • 서버의 경우, 클라이언트가 도메인 네임을 알고있기 때문에 서버의 IP주소를 클라이언트가 입력해야한다.(ex: http ->80 이런식으로) port번호 또한 클라이언트가 입력해야한다.
    클라이언트와 서버의 소켓을 알아야 통신이 가능하다.

UDP(User Datagram Protocol)

비연결성이고, 신뢰성이 없으며, 순서화되지 않은 Datagram 서비스를 제공한다. 메세지가 제대로 도착했는지 확인하지 않고, 수신된 메세지의 순서를 맞추지 않는다.(no flow & error control) TCP 헤더와 달리 순서번호 필드 없다.

  • 발신/수신 포트 번호 : TCP 처럼 16 비트의 포트 번호를 사용
  • 길이 : 바이트 단위의 길이
  • 체크섬 : UDP에서 선택 항목(성능을 위해 에러검출 기능도 생략 가능), 체크섬 값이 0 이면, 수신측은 체크섬 계산도 하지 않음, 체크섬을 위한 3개의 section으로 pseudo header, UDP header, data이다.

📌pseudo header for checksum

  • 예시로 나온 값은 캐리값이 나오지 않아 잘못된 값이지만 방식은 같다.

📌 UDP option

  • Connectionless Service: UDP에 의해 보내지는 각각의 user datagram은 독립적인 datagram이다.
  • Flow and Error Control: 모두 존재하지 않는다.
  • Encapsulation and decapsulation

  • Queuing: 들어온 순서대로 처리
  • Multiplexing and demultiplexing: UDP 서비스를 사용하려는 여러 프로세스에 대해 하나의 UDP만 사용

📌 Use of UDP

  • 간단한 요청 응답 통신이 필요하고 흐름 및 오류 제어에 대한 관심이 적은 프로세스에 적합
  • TFTP와 같은 내부 흐름 및 오류 제어 메커니즘이 있는 프로세스에 적합
  • 멀티캐스팅 및 브로드캐스팅에 적합한 전송 프로토콜
  • SNMP와 같은 관리 프로세스에 사용
  • RIP와 같은 일부 경로 업데이트 프로토콜에 사용
profile
전공 소개

0개의 댓글