0206

학교

[컴퓨터 네트워크] Chapter 4. Networks Layer Data Plane (Part 2) - (1)

일자 : 24-2 12주차 2차시 (2)

3. IP: the Internet Protocol

  • datagram format

  • addressing

  • network address translation

  • IPv6

[1] Network Layer: Internet

: 네트워크 레이어에서의 호스트와 라우터의 기능

: 이 구조는 네트워크에서 데이터가 어떻게 라우팅되고 처리되는지를 보여주며, 특히 네트워크 레이어에서 일어나는 주요 기능들을 상세히 설명하고 있다.

1) 주요 구성 요소

  1. Path-selection algorithms (경로 선택 알고리즘):

    • routing protocols (OSPF, BGP)를 통해 구현

    • SDN controller를 통해 구현

    • 이 알고리즘은 forwarding table로 정보를 전달

  2. Forwarding table (포워딩 테이블):

    • 경로 선택 알고리즘으로부터 정보를 받아 패킷 전달을 위한 테이블 유지

  3. IP protocol (IP 프로토콜):

    • datagram format (데이터그램 형식)

    • addressing (주소 지정)

    • packet handling conventions (패킷 처리 규약)

  4. ICMP protocol (ICMP 프로토콜):

    • error reporting (오류 보고)

    • router "signaling" (라우터 시그널링)

2) 계층 구조:

  • 상단: Transport layer (TCP, UDP)

  • 중간: Network layer (위에서 설명한 구성요소들)

  • 하단: Link layer

  • 최하단: Physical layer

[2] IP Datagram format

: Maximum length : 64K bytes (Typically 1500 bytes or less)

1) ver

: IP 프로토콜 버전 번호. IPv4의 경우 4, IPv6의 경우 6이 설정된다.

2) head len

: IP 헤더의 길이 (바이트 단위). IP 헤더의 크기를 지정하며, 최소 20바이트이다.

3) type of service

: 서비스 유형을 정의한다.

  • diffserv (0:5): 서비스 품질을 정의하는 필드.

  • ECN (6:7): 혼잡 제어 관련 정보.

    4) length

    : 전체 데이터그램 길이 (바이트 단위). 헤더와 페이로드를 모두 포함한 전체 길이를 나타낸다.

    5) 16-bit identifier

    : 데이터그램 식별자. 데이터그램을 분할한 경우 재조합할 때 사용된다.

    6) flags

    : 데이터그램이 분할되었는지 여부와 관련된 플래그. 재조합을 위한 정보이다.

    7) fragment offset

    : 데이터그램이 분할된 경우, 각 조각의 위치를 나타내는 오프셋이다.

    8) time to live (TTL)

    : 데이터그램이 네트워크를 통해 얼마나 많은 라우터를 통과할 수 있는지를 나타낸다. 라우터를 통과할 때마다 1씩 감소한다.

    9) upper layer

    : 상위 프로토콜을 나타낸다. 예를 들어 TCP나 UDP와 같은 프로토콜이다.

    10) header checksum

    : IP 헤더의 무결성을 확인하기 위한 체크섬 값이다.

    11) source IP address

    : 출발지 IP 주소 (32비트).

    12) destination IP address

    : 목적지 IP 주소 (32비트).

    13) options (if any)

    : 선택적 필드로, 예를 들어 타임스탬프나 경로 기록 등의 정보가 포함될 수 있다.

    14) payload data (variable length)

    : 실제 데이터가 포함되는 부분입니다. 길이는 가변적이다.

[3-1] IP 분할/재조합

  • 분할 (Fragmentation)

    • 입력: 하나의 큰 데이터그램

    • 출력: 3개의 더 작은 데이터그램

  • 재조합 (Reassembly)

1) 특징

  • 네트워크 링크에는 MTU(최대 전송 단위)가 있다. - 가장 큰 링크 수준 프레임

    • 링크 유형에 따라 MTU가 다를 수 있다.

  • 큰 IP 데이터그램은 네트워크 내에서"분할"(fragmented)된다.

    • 하나의 데이터그램이 여러 개의 데이터그램으로 나뉜다.

    • "재조합"은 오직 목적지에서만 이루어진다.

    • IP 헤더 비트관련된 조각들을 식별하고, 순서를 지정하는 데 사용된다.

[3-2] IP 분할/재조합

1) IP 패킷의 분할(fragmentation)과 재조립(reassembly) 과정을 보여주는 예시

1) 예시

  1. 원본 데이터그램:

  • 크기가 4000 바이트인 하나의 큰 데이터그램

  • MTU(Maximum Transmission Unit)가 1500 바이트로 제한

  • 원본 데이터그램의 fragflag = 0, offset = 0

  1. 분할 과정:

  • MTU 제한 때문에 하나의 큰 데이터그램이 여러 개의 작은 데이터그램으로 분할됨

  • 모든 조각은 동일한 ID(=x)를 가짐

  • 데이터 필드에는 1480 바이트씩 들어감 (헤더 공간 제외)

  1. 분할된 조각들:

  • 첫 번째 조각: length=1500, fragflag=1(더 조각이 있음을 표시), offset=0

  • 두 번째 조각: length=1500, fragflag=1, offset=185(1480/8)

  • 마지막 조각: length=1040, fragflag=0(마지막 조각임을 표시), offset=370

  1. 주요 포인트:

  • offset은 8바이트 단위로 계산됨 (1480/8 = 185)

  • fragflag가 1이면 뒤에 더 조각이 있다는 의미

  • fragflag가 0이면 마지막 조각이라는 의미

  • 모든 조각은 동일한 ID를 가져 재조립 시 같은 데이터그램의 조각임을 알 수 있음

이러한 분할과 재조립 과정은 네트워크의 서로 다른 MTU를 가진 구간을 통과할 때 필요한 중요한 메커니즘입니다.

2) 예시 설명

(1) 왜 length가 1500으로 나누어졌는가?

MTU(Maximum Transmission Unit) 때문에 데이터그램이 분할된다. MTU가 1500 바이트로 제한되면, 데이터그램은 1500 바이트 이하로 나누어진다. IP 헤더는 20 바이트이므로 데이터 부분은 1500 - 20 = 1480 바이트가 된다. 따라서 각 조각은 1480 바이트의 데이터와 20 바이트의 헤더로 1500 바이트가 된다.

(2) offset은 어떻게 지정되는가?

offset은 각 조각이 원본 데이터그램에서 어디에 해당하는지를 나타내며, 8바이트 단위로 계산된다.

예시:

  • 첫 번째 조각의 offset0이다.

  • 두 번째 조각의 offset185이다 (1480 바이트 ÷ 8).

  • 세 번째 조각의 offset370이다 (185 × 2).

offset 값은 8바이트 단위로 실제 바이트 위치를 계산하려면 이를 8로 곱하면 된다. 예를 들어, offset = 185이면 실제 위치는 185 * 8 = 1480 바이트이다.

(3) 세 번째 조각의 length가 1040인 이유

: 는앞선 두 조각에서 이미 1480 바이트씩 데이터를 처리했기 때문이다. 원본 데이터그램의 전체 크기가 4000 바이트이고, 앞의 두 조각에서 1480 바이트씩 처리되었으므로, 마지막 조각에서는 남은 데이터를 모두 처리해야 한다.

  • 구체적인 계산:

  1. 원본 데이터그램 크기: 4000 바이트

  2. 헤더 크기: 20 바이트 (각 조각마다)

  3. 데이터 크기:

    • 첫 번째 조각: 1480 바이트 (헤더 제외)

    • 두 번째 조각: 1480 바이트 (헤더 제외)

    • 세 번째 조각에서 남은 데이터는 4000 - (1480 + 1480) = 1040 바이트

따라서, 마지막 세 번째 조각의 데이터 필드는 1040 바이트로, 이 조각의 전체 크기는 1040 + 20 = 1060 바이트가 된다.

3) 결론:

  • length는 MTU에 의해 제한되고, 데이터 필드는 MTU에서 헤더 크기를 뺀 값으로 설정된다.

  • offset은 8바이트 단위로 계산되며, 각 조각의 위치를 나타낸다.