Connectionless transport: UDP

이태곤·2023년 10월 21일
1

컴퓨터망

목록 보기
11/32
post-thumbnail

1. Connectionless transport : UDP

  • UDP는 Best-effort(최선형) 서비스로, 흐름 제어, 혼잡 제어, 패킷 손실, 지연 등을 보장하지 않는다.

  • 장점

    • 헤더가 간결하고 네트워크 부하가 적으며, 연결 설정과 관련된 과정이 없어 데이터 송수신이 빠르다.
      → 비디오 스트리밍 서비스, DNS, HTTP/3 등에 이용
    • 연결을 수립하지 않기 때문에 Round-Trip Time (RTT)를 줄일 수 있으며, 이로 인해 전송 성능이 향상 될 수 있다.

2. UDP Segment structure

  1. source port #: 송신자의 포트 번호로 생략 또는 운영체제에 위임할 수 있다.
  2. dest port #: 수신자의 포트 번호
  3. length: 세그먼트의 길이 (바이트 단위)
  4. checksum: 에러를 검증하기 위한 숫자
  5. payload: 응용 계층에서 전달 또는 응용 계층으로 전달 할 데이터가 위치

3. UDP checksum

  • 네트워크 상에서 송수신되는 데이터의 오류 검출을 위한 값

    • Error detection시에 해당 패킷은 버린지만, Linux에서 설정 변경을 할 수 있다.
    • Software로 구현되어 weak protection의 특징을 가지고 있다.
    • 하드웨어를 활용한 CRC (Cyclic Redundancy Check) 검사 방법을 사용하면 더 높은 수준의 데이터 보호를 제공할 수 있다.
  • Sender: checksum 생성 과정

    1. 모든 데이터 더하기
      → 16-bit word 단위로 모두 더하기
    2. 덧셈 과정에서 carry가 있다면 warpping
    3. 1의 보수(checksum value)
      • 예시: 11100110011001101101010101010101를 보내야 한다.
  • receiver : checksum 값 확인을 통해 오류검출 과정

    1. 체크섬을 포함한 모든 데이터 더하기
    2. 덧셈 과정에서 carry가 있다면 warpping
    3. 1의 보수
      → 결과가 0: 오류(X) , 0이 아니면: 오류(O)

0개의 댓글