0190

학교

[컴퓨터 네트워크] Chapter 3. Transport Layer (Part1) - (2)

일자 : 24-2 7주차 1차시 (1)

[4] UDP Checksum

  • 목표 : 전송된 세그먼트에서 오류를 감지하는 것. (전송 도중에 데이터의 비트가 변형될 수 있는데, 이를 검출하기 위해 체크섬을 사용한다.)

1) 과정

  1. 전송된 데이터
    : 2개의 정수와 합계를 보낸다.

    • 첫 번째 숫자 : 5

    • 두 번째 숫자 : 6

    • 이 두 숫자의 합 : 11

  2. 수신된 데이터
    : 만약 에러가 없다면 보낸 값을 받아야 한다. (ex. 5, 6, 11)

    • 첫 번째 숫자 : 4

    • 두 번째 숫자 : 6

    • 이 두 숫자의 합 : 11

  3. 체크섬 비교
    : 만약 보낸 값과 다른 값이 왔다면, 오류가 발생한 것이다

    • 수신자는 자신의 방법으로 받은 값들을 더해 체크섬을 계산한다.

    • 송신자가 전송한 값과 비교했을 때 서로 다르므로, 오류가 발생한 것이다.

2) sender

  • UDP 세그먼트의 내용(UDP 헤더 필드 및 IP 주소 포함)을 16비트 정수의 시퀀스로 처리한다.

  • checksum : 세그먼트 콘텐츠의 덧셈(1의 보수의 합)

  • UDP checksum 필드에 입력된 checksum 값

3) receiver

  • 수신된 세그먼트의 체크섬 계산

  • 계산된 체크섬이 체크섬 필드 값과 동일한지 체크한다.

    • 같지 않음 : 오류 감지

    • 같음 : 오류감지 되지 않음.

      • 그럼에도 오류가 발생할 수 있을까?

[5] Internet checksum : an example

  • 참고 : 숫자를 더할 떄에는 가장 중요한 비트의 캐리아웃을 결과에 추가해야 한다.

  • 예시에서는 oevrflow가 발생하였고, 1을 해당 값에서 더하여 sum을 구했다.

1) 체크섬의 목적

: 데이터 전송 중 발생할 수 있는 오류를 감지하기 위한 방법이다.

2) 체크섬 계산 방법:

  1. 16비트 정수들을 더한다.

  2. 덧셈 결과에서 캐리(carry)가 발생하면 결과에 다시 더한다(wraparound).

  3. 최종 합계를 비트 단위로 뒤집어(1의 보수) 체크섬을 얻는다.

3) 체크섬의 한계

  • 체크섬은 약한 보호(weak protection) 기능을 제공한다.

  • 특정 비트 변화는 체크섬 값에 영향을 주지 않을 수 있습니다.

    • 예를 들어, 두 숫자의 마지막 두 비트를 서로 바꿔도(0110 → 0101, 1001 → 1010) 최종 체크섬은 변하지 않는다.

4) 주의사항

: 숫자를 더할 때 가장 중요한 비트(most significant bit)에서 발생하는 캐리를 결과에 더해야 한다.

5) 결론

  • 인터넷 체크섬은 간단한 오류 감지 방법이지만, 모든 종류의 오류를 탐지할 수 있는 완벽한 방법은 아니다.

  • 일부 비트 변화는 체크섬으로 탐지되지 않을 수 있어 "약한 보호" 기능을 제공한다.

  • 이러한 특성 때문에 체크섬은 기본적인 오류 감지에는 유용하지만, 더 강력한 오류 감지나 수정이 필요한 경우에는 다른 방법들이 사용된다.

Summary

3. Connectionless transport : UDP

[1] UDP: User Datagram Protocol

  • 개요: 최소한의 기능을 가진 비연결형 프로토콜. 세그먼트 손실 가능.

  • 존재 이유: 연결 설정 필요 없음, 단순함, 작은 헤더 크기, 혼잡 제어 없음.

  • 사용 예시: 스트리밍, DNS, SNMP, HTTP/3.

  • 안정성 필요 시: 애플리케이션 계층에서 보완.

[2] UDP: Transport Layer Actions

  • UDP 발신자: 메시지 생성 후 IP 계층으로 전달.

  • UDP 수신자: 세그먼트 수신, 체크섬 확인, 애플리케이션에 전달.

[3] UDP Segment Header

  • 헤더 구성: 8바이트로, 소스 포트, 목적지 포트, 길이, 체크섬 필드 포함.

  • 데이터: 애플리케이션 데이터 포함.

[4] UDP Checksum

  • 목적: 데이터 전송 중 오류 감지.

  • 작동 원리: 송수신자가 각각 체크섬 계산 후 비교.

[5] Internet Checksum Example

  • 체크섬 계산: 16비트 정수 더하기, 캐리 발생 시 wraparound, 1의 보수 사용.

  • 한계: 약한 보호, 특정 비트 변화를 탐지하지 못할 수 있음.