2023. 3. 21. 00:55ㆍNetwork
# fragentation
MTU보다 작은 크기로 분할을 하는 것을 단편화라고 한다.
MTU가 큰 네트워크에서 MTU가 작은 네트워크로 데이터그램이 전송될 경우 나누어 보내져야한다.
단편화한 후 수신지에서는 재조립을 수행해야된다. 추가적으로 이 단편화를 재조립하는 과정에서 수신자가 재조립이 어려운 단편화를 재조립하면서 다운 되는 단편화 공격을 할 수 도 있다.

ipv4헤더를 보면 2번째 라인들이 단편화와 관련된 필드들이다.
이 단편화는 L4에서 할수도 있고 L3에서도 할 수 가있다. 하지만 패킷이 더 많이 붙는 L3보다 L4에서 단편화 하는 것이 오버헤드가 적다. 또한 만약 L4에서 단편화를 못했다 하더라도 L3에서 할 수 있기때문에 L4에서 단편화 하는 것은 필수가 아니다.

3개의 필드를 정리해보면 아래그림처럼 나온다.[A(Identification), 녹색(IP FLAGS), 노란색(Fragment Offset)]
쉽게 풀어 설명하면 A부분의 데이터크기14567을 3개로 단편화를 할 건데 A의 1번째 조각이고 뒤에 또다른 조각이 있다는 표시로 1을 표시한다. 2번째 조각도 A.2[번째].1[뒤에조각있음]으로 나타내고 마지막 3번째 조각에는 뒤에 어떠한 조각이 없으므로 0으로 표시된다.


Fragment Offset값이 저렇게 나오는 이유는 아래와 같다. 만약 4000byte의 데이터를 단편화 한다고 했을때
[ㅁ ㅁ ㅁ ㅁ ㅁ ㅁ ㅁ]
↑ ↑
byte0000 byte3,999
1st
[ㅁ ㅁ ㅁ ㅁ ㅁ ㅁ ㅁ] offset = 0000/8 = 0
↑ ↑
byte0000 byte1,399
2st
[ㅁ ㅁ ㅁ ㅁ ㅁ ㅁ ㅁ] offset = 1,400/8 = 175
↑ ↑
byte0000 byte2,799
3st
[ㅁ ㅁ ㅁ ㅁ ㅁ ㅁ ㅁ] offset = 2,800/8 = 350
↑ ↑
byte0000 byte3,999
단편화를 내면은 비트마다 번지값이 매겨진다. 1번째는 0000~1,399 2번째는 0000~1,400 3번째는 0000~2,800으로 번지값이 매겨진다. 각 시작 번지를 8로 나누면 일정한 배수로 증가하면서 떨어져 나온다.



# mtu[maxium transfer unit]
약어 그대로 네트워크기기가 전송할 수 있는 최대크기를 의미한다.

위 그림처럼 수많은 렌카드가 있지만 현재 국내에서는 이데넷 렌카드를 가장 많이 이용한다. 이 이더넷[Ethernet V2]의 크기는 1500바이트이므로 최대 전송할 수 있는 크기가 1500바이트 의미랑 같다. 그 이상의 크기인 바이트가 바로 렌카드로 들어오면 1500바이트만 남기고 나머지는 폐기하므로 단편화작업이 꼭필요하다.
# mss[maxium segmentation size]
TCP상에서 전송할 수 있는 사용자의 최대 크기를 의미한다.
MSS = MTU - IP Header 크기 (최소 20 Byte) - TCP Header 크기 (최소 20 Byte)

위 그림처럼 MTU는 2계층의 헤더/트레일러 크기를 고려하지 않으며
MSS : 3, 4계층의 헤더/트레일러 크기를 고려하지 않는다.
'Network' 카테고리의 다른 글
about snmp (0) | 2023.05.21 |
---|---|
routing protocal (0) | 2023.05.20 |
Unicast & Broadcast & Multicast (0) | 2022.05.10 |
MAC address (0) | 2022.04.21 |
Subnet mask (0) | 2022.04.20 |