IP 플래그멘테이션

IP fragmentation
특정 계층에서 프로토콜 데이터 유닛을 더 작은 조각으로 분할하는 예제입니다.

IP 플래그멘테이션은 패킷을 작은 조각(프래그먼트)으로 분할하는 Internet Protocol(IP) 프로세스입니다.로 인해, 원래의 패킷사이즈보다 작은 Maximum Transmission Unit(MTU; 최대 전송 유닛)의 링크를 통과할 수 있습니다.fragment는, 수신측 호스트에 의해서 재구성됩니다.

플래그멘테이션메커니즘의 상세 및 플래그멘테이션에 대한 전체적인 아키텍처 접근법은, IPv4 와 IPv6의해서 다릅니다.

과정

RFC791 에서는, IP [1]패킷의 플래그멘테이션, 및 송신과 재구성의 순서에 대해 설명하고 있습니다.RFC 815에서는 간단한 재구성 [2]알고리즘을 설명하고 있습니다.IP 헤더Identification 필드 및 외부로컬인터넷주소 및 프로토콜 ID, Fragment 오프셋필드 및 Don't Fragment 및 More Fragments 플래그와 함께 IP [1]: 24 [2]: 9 패킷의 플래그멘테이션 및 재구성에 사용됩니다.

수신 호스트는 단편화된 IP 패킷을 수신하면 패킷을 재구성하여 상위 프로토콜 계층에 전달해야 합니다.재조립은 수신측 호스트에서 이루어지는 것을 의도하고 있지만 실제로는 중간 라우터에 의해 이루어지는 경우가 있습니다.예를 들어 Network Address Translation(NAT; 네트워크주소 변환)은 데이터 [3]스트림을 변환하기 위해 fragment를 재구성해야 합니다.

IPv4와 IPv6의 차이점

IPv4 의 플래그멘테이션알고리즘
IPv4 멀티 플래그멘테이션의 예.플래그멘테이션은 2개의 레벨로 이루어집니다.첫 번째 레벨에서는 최대 전송 단위가 4000바이트, 두 번째 레벨에서는 2500바이트입니다.

IPv4에서 넥스트홉의 MTU보다 큰 네트워크 패킷을 수신하는 라우터에는 2가지 옵션이 있습니다.Don't Fragment(DF) 플래그 비트가 패킷 헤더에 설정되어 있는 경우 패킷을 드롭하고 Internet Control Message Protocol(ICMP) 메시지를 전송하여 패킷이 필요한 상태(타입 3, 코드 4)를 나타냅니다.발신자가 fragment화된 패킷을 생성하는 경우도 있습니다만, IPv6 라우터에는, 그 이상의 fragment화를 실시하는 옵션이 없습니다.대신에, 1280 바이트 이하의 IPv6 패킷 또는 패킷의 fragment를 송신하려면 , 네트워크 기기가 필요합니다.또, IPv6 호스트는, 패킷을 송신하기 전에 패스 MTU 검출을 개입시켜 최적의 MTU 를 판별할 필요가 있습니다.

IPv4 와 IPv6 의 헤더 형식은 다르지만, 플래그멘테이션에는 같은 필드가 사용되기 때문에, IPv4 와 IPv6 의 플래그멘테이션 및 재구성에 같은 알고리즘을 재사용할 수 있습니다.

IPv4 에서는, 호스트는 fragment화된IP 패킷의 재구축에 best effort를 실행할 필요가 있습니다.이것에 의해, 합계 재구축 사이즈는 최대 576 바이트가 됩니다.또, 576 바이트보다 큰 fragment화된IP 패킷을 재구축하려고 하는 경우도 있습니다만, 그러한 큰 패킷을 사일런트하게 폐기하는 것도 허가됩니다.애플리케이션은 리모트호스트가 [1]: 12 576 바이트보다 큰 패킷을 받아들이거나 재구성할 수 있는 것을 사전에 알고 있지 않는 한, 576 바이트보다 큰 패킷의 송신을 삼가는 것을 추천합니다.

IPv6 에서는, 호스트는, IPv6 의 최소 MTU(1280 [4]바이트)보다 큰 합계 재구축 사이즈가 1500 바이트인 fragment화된 패킷의 재구축에 베스트 에포트를 실시할 필요가 있습니다.재구축된 합계 사이즈가 1500 바이트보다 큰 fragment화된 패킷은 옵션으로 사일런트 폐기할 수 있습니다.패스 MTU 제한을 극복하기 위해서 IPv6 플래그멘테이션을 사용하는 애플리케이션은, 발신기지 포인트에서 패킷을 명시적으로 fragment화할 필요가 있습니다.다만, 리모트호스트의 재구축이 가능한 것을 사전에 알고 있지 않는 한, 합계 사이즈가 1500 바이트를 넘는 fragment화 패킷을 송신하려고 하지 말아 주세요.

네트워크 전송에 미치는 영향

네트워크에 여러 패럴렐패스가 있는 경우 LAG나 CEF 의 테크놀로지는 해시 알고리즘에 따라 트래픽을 패스 간에 분할합니다.알고리즘의 목적 중 하나는 같은 흐름의 모든 패킷이 같은 경로로 전송되도록 하는 것입니다.이것에 의해, 불필요한 패킷의 순서를 최소한으로 억제할 수 있습니다.

IP 플래그멘테이션은, fragment가 패킷의 손실을 보고, TCP 와 같은 신뢰할 수 있는 프로토콜이 단일 [5]fragment의 손실로부터 회복하기 위해서 모든 fragment를 재발송신할 필요가 있는 경우에, 과도한 재발송신을 일으킬 가능성이 있습니다.따라서, 송신자는, 통상, 2개의 어프로치를 사용해 네트워크를 개입시켜 송신하는 IP 패킷의 사이즈를 결정합니다.첫 번째는 송신원-행선지 쌍의 첫 번째 홉의 MTU와 같은 크기의 IP 패킷을 송신하는 것입니다.다음으로 패스 MTU 디스커버리[6] 알고리즘을 실행하여 IP 플래그멘테이션을 회피할 수 있도록2개의 IP 호스트간의 패스 MTU를 판별합니다.

2020년 현재 IP 플래그멘테이션은 보안에 [7]영향을 미치기 때문에 취약한 것으로 간주되며 바람직하지 않은 경우가 많습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b c Internet Protocol, Information Sciences Institute, September 1981, RFC 791
  2. ^ a b David D. Clark (July 1982), IP Datagram Reassembly Algorithms, RFC 815
  3. ^ Architectural Implications of NAT, November 2000, RFC 2993
  4. ^ S. Deering; R. Hinden (December 1998), Internet Protocol, Version 6 (IPv6) Specification, RFC 2460
  5. ^ Christopher A. Kent, Jeffrey C. Mogul. "Fragmentation Considered Harmful" (PDF).
  6. ^ Path MTU Discovery, November 1990, RFC 1191
  7. ^ "IP Fragmentation Considered Fragile". IETF. 2019. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)

외부 링크