본문 바로가기

My Study/Network

IP Fragmentation

그냥 이것저것 읽다가 심심해서 정리..
===========================================================
 http://penguin.dcs.bbk.ac.uk/academic/networks/network-layer/fragmentation/index.php

Encapsulation
호스트나 라우터가 데이터그램을 처리할 때 IP software는 데이터그램이 전송 되어야할 다음 홉을 결정한다.그러므로 데이터그램은 많으 물리 네트워크들을 지나가야하고 각각의 프레임이라는 형태로 되어 있다.
IP 데이터그램은 프레임의 데이터 영역에 캡슐화 되어 있고 Figure 1에 설명되어있다.

Figure 1: 하드웨어 프레임에서 캡슐화된 IP 데이터그램

이 예제에서 몇몇 하드웨어 기술들은 프레임 트레일러 뿐만 아니라 프레임 헤더도 포함하고 있다.
Encapsulation은 시간에 하나의 전송을 한다. 다음 홉에 프레임이 도착할 때 그 IP 데이터그램은 제거되고 프레임은 버려진다.각각의 네트워크는 다른 하드웨어 기술에서 사용할 수 있다. 그래서 그 프레임의 포맷은 다를 수 있다.
Figure 2에 데이터그램이 출발지에서 목적지까지 어떻게 캡슐화되거 un캡슐화가 되는지 나타낸다.

Figure 2: 다른 네트워크로의 여행

원할한 네트워크를 위해 캡슐화된 프레임을 전송할 때 호스트와 라우터는 메모리에 데이터그램을 저장한다.각각의 하드웨어 기술은 최대 옮길 수 있는 프레임의 크기를 지정한다.
그것은 Maximum Trasmission Unit(MTU)로 불리운다. Figure 3은 두개의 다른 MTU를 가진 네트웍이 연결된 상태를 설명한다.


Figure 3: 다른 MTU

호스트 H2는 오직 1,000 옥텟 또는 그 이하의 데이터그램을 라우터 R을 통해 network 1에 전송할 수 있다.
하지만 호스트 H1은 1,500 옥텟 데이터그램을 전송하기 때무넹 라우터 R을 통해 network 2에 데이터그램을 전송할 수 없다.

Fragmentation
IP는 fragmentation이라고 불리우는 기술을 두 다른 MTU들을 해결하는데 사용한다.
보내려는 네트웍의 데이터그램 MTU가 받는 쪽 네트웍 MTU보다 크면 각각의 보내려는 데이터그램을 작은 fragment들로 나눈다. 이 과정을 Figure 4 에서 나타내고 있다.

Figure 4: Fragmentation

데이터그램이 분리됬을 때 호스트 또는 라우터는 얼마나 많은 fragment들이 필요한지 헤더사이즈에서 계산하게 된다.
그 때 오리지널 헤더는 각각의 fragment들의 헤더들에 복사되게 된다. 아래의 필드들이 바뀐다.

●TOTAL LENGTH
●MORE 플래그
●FRAGMENT OFFSET
●HEADER CHECKSUM

각각의 fragment는 하나의 데이터그램이 되고 다른 데이터그램들으 독립적으로 라우팅한다.
이것은 원래의 데이터그램의 fragment들이 최종 목적지에 순서대로 도착할 수 있도록 만들어준다.

최종 목적지에서 원래의 데이터그램으로 재조립하는 과정을 거친다.

FRAGMENT OFFSET 필드는 송신자가 어떻게 fragment들을 순서대로 조립할 지 알려준다.
MORE 플래그 부호의 상태는 마지막 fragment를 나타낸다. 예를들어 Figure 5에서 설명해주고 있다.

Figure 5: internet 여행

만약 호스트 H1이 1,500 옥텟 데이터그램(헤더 - 20옥텟, 데이터 - 1480 옥텟)을 호스트 H2에게 보낼 때 라우터 R은
데이터그램을 두개의 fragment로 분리할 것이다.

첫번째 fragment는 20옥텟의 헤더(FRAGMENT OFFSET은 0 그리고 MORE 플래그는 셋팅)와
976옥텟의 데이터를 포함할 것이다.
두번째 fragment는 20옥텟의 헤더와(FRAGMENT OFFSET은 976/8 = 122 그리고 MORE은 클리어)
남은 504옥텟의 데이터를 포함할 것이다.