소개
우리는 모두 IP의 분류 및 비분류 원칙과 네트워크 통신에서의 적용에 대해 알고 있습니다. IP 분할 및 재조립은 패킷 전송 과정에서 핵심적인 메커니즘입니다. 패킷 크기가 네트워크 링크의 최대 전송 단위(MTU) 제한을 초과하면 IP 분할 메커니즘을 통해 패킷이 여러 개의 작은 조각으로 분할되어 전송됩니다. 이러한 조각들은 네트워크에서 독립적으로 전송되고, 목적지에 도착하면 IP 재조립 메커니즘을 통해 다시 완전한 패킷으로 재조립됩니다. 이러한 분할 및 재조립 과정을 통해 데이터의 무결성과 신뢰성을 보장하면서 대용량 패킷을 네트워크에서 전송할 수 있습니다. 이 섹션에서는 IP 분할 및 재조립 메커니즘이 어떻게 작동하는지 자세히 살펴보겠습니다.
IP 분할 및 재조립
데이터 링크마다 최대 전송 단위(MTU)가 다릅니다. 예를 들어, FDDI 데이터 링크의 MTU는 4352바이트이고 이더넷의 MTU는 1500바이트입니다. MTU는 Maximum Transmission Unit의 약자로, 네트워크를 통해 전송할 수 있는 최대 패킷 크기를 나타냅니다.
FDDI(Fiber Distributed Data Interface)는 광섬유를 전송 매체로 사용하는 고속 근거리 통신망(LAN) 표준입니다. MTU(Maximum Transmission Unit)는 데이터 링크 계층 프로토콜이 전송할 수 있는 최대 패킷 크기입니다. FDDI 네트워크에서 MTU는 4352바이트입니다. 즉, FDDI 네트워크에서 데이터 링크 계층 프로토콜이 전송할 수 있는 최대 패킷 크기는 4352바이트입니다. 전송할 패킷이 이 크기를 초과하면, 전송 및 수신 시 재조립을 위해 MTU 크기에 적합한 여러 조각으로 분할해야 합니다.
이더넷에서 MTU(멀티파일 터미네이션)는 일반적으로 1500바이트입니다. 즉, 이더넷은 최대 1500바이트 크기의 패킷을 전송할 수 있습니다. 패킷 크기가 MTU 제한을 초과하면 패킷은 전송을 위해 더 작은 조각으로 분할된 후 목적지에서 다시 조립됩니다. 분할된 IP 데이터그램의 재조립은 목적지 호스트에서만 수행할 수 있으며, 라우터는 재조립 작업을 수행하지 않습니다.
앞서 TCP 세그먼트에 대해 이야기했지만, MSS는 최대 세그먼트 크기(Maximum Segment Size)의 약자로 TCP 프로토콜에서 중요한 역할을 합니다. MSS는 TCP 연결에서 전송할 수 있는 최대 데이터 세그먼트의 크기를 나타냅니다. MTU와 마찬가지로 MSS는 패킷 크기를 제한하는 데 사용되지만, 전송 계층인 TCP 프로토콜 계층에서 작동합니다. TCP 프로토콜은 응용 계층의 데이터를 여러 데이터 세그먼트로 나누어 전송하며, 각 데이터 세그먼트의 크기는 MSS에 의해 제한됩니다.
각 데이터 링크의 MTU는 서로 다른 데이터 링크 유형이 서로 다른 용도로 사용되기 때문에 다릅니다. 사용 목적에 따라 서로 다른 MTU를 사용할 수 있습니다.
송신자가 이더넷 링크를 통해 4000바이트 크기의 대용량 데이터그램을 전송하려고 한다고 가정해 보겠습니다. 이 경우, 각 소형 데이터그램의 크기가 MTU 제한인 1500바이트를 초과할 수 없기 때문에, 해당 데이터그램을 세 개의 작은 데이터그램으로 분할하여 전송해야 합니다. 수신자는 세 개의 소형 데이터그램을 수신한 후, 각 데이터그램의 순서 번호와 오프셋을 기준으로 이들을 다시 조립하여 원래의 4000바이트 대형 데이터그램을 복원합니다.
단편화된 전송에서 단편 하나가 손실되면 전체 IP 데이터그램이 무효화됩니다. 이를 방지하기 위해 TCP는 MSS(Multiple Substitution Segment)를 도입했는데, MSS에서는 단편화가 IP 계층이 아닌 TCP 계층에서 수행됩니다. 이 방식의 장점은 TCP가 각 세그먼트의 크기를 더욱 정밀하게 제어할 수 있어 IP 계층에서의 단편화와 관련된 문제를 방지할 수 있다는 것입니다.
UDP의 경우, MTU(메시지 전송 단위)보다 큰 데이터 패킷을 전송하지 않도록 주의해야 합니다. UDP는 TCP처럼 신뢰성과 재전송 메커니즘을 제공하지 않는 비연결형 전송 프로토콜이기 때문입니다. MTU보다 큰 UDP 데이터 패킷을 전송하면 IP 계층에서 패킷이 조각화되어 전송됩니다. 이 조각 중 하나라도 손실되면 UDP 프로토콜은 재전송할 수 없으므로 데이터 손실이 발생합니다. 따라서 안정적인 데이터 전송을 위해서는 UDP 데이터 패킷의 크기를 MTU 범위 내로 제어하고 조각화를 방지해야 합니다.
Mylinking™ 네트워크 패킷 브로커VxLAN/NVGRE/IPoverIP/MPLS/GRE 등 다양한 터널 프로토콜을 자동으로 식별할 수 있으며, 터널 흐름 출력의 내부 또는 외부 특성에 따라 사용자 프로필에 맞게 결정할 수 있습니다.
○ VLAN, QinQ 및 MPLS 레이블 패킷을 인식할 수 있습니다.
○ 내부 및 외부 VLAN을 식별할 수 있습니다.
○ IPv4/IPv6 패킷을 식별할 수 있습니다.
○ VxLAN, NVGRE, GRE, IPoverIP, GENEVE, MPLS 터널 패킷을 식별할 수 있습니다.
○ IP 단편화 패킷 식별 가능 (IP 단편화 식별을 지원하고, 모든 IP 단편화 패킷에 대해 L4 기능 필터링을 구현하기 위해 IP 단편화 패킷을 재조립할 수 있습니다. 트래픽 출력 정책을 구현합니다.)
IP와 TCP는 왜 분할되는가?
네트워크 전송에서 IP 계층은 데이터 패킷을 자동으로 분할하기 때문에 TCP 계층에서 데이터를 분할하지 않더라도 IP 계층에 의해 자동으로 분할되어 정상적으로 전송됩니다. 그렇다면 TCP는 왜 패킷 분할이 필요한 걸까요? 과도한 조치가 아닐까요?
TCP 계층에서 분할되지 않은 큰 패킷이 전송 중에 손실되었다고 가정해 보겠습니다. TCP는 해당 패킷을 재전송하지만, IP 계층에서는 데이터를 MTU 길이를 가진 더 작은 패킷으로 분할하는 것과 달리 전체 패킷 그대로 재전송합니다. 이는 IP 계층이 데이터의 안정적인 전송을 고려하지 않기 때문입니다.
즉, 기기에서 네트워크로 연결되는 전송 계층에서 데이터가 분할되면 IP 계층에서는 분할되지 않습니다. 전송 계층에서 분할이 수행되지 않으면 IP 계층에서 분할이 발생할 수 있습니다.
간단히 말해, TCP는 데이터를 분할하여 IP 계층에서 데이터가 단편화되지 않도록 하고, 재전송이 발생할 때 단편화된 데이터의 작은 부분만 재전송합니다. 이러한 방식으로 전송 효율성과 신뢰성을 향상시킬 수 있습니다.
TCP 계층이 단편화된다면, IP 계층은 단편화되지 않는 것일까요?
앞서 설명했듯이 송신측에서 TCP 단편화가 이루어진 후에는 IP 계층에서는 더 이상 단편화가 발생하지 않습니다. 그러나 전송 링크를 따라 이동하는 동안 송신측의 MTU보다 작은 MTU를 가진 다른 네트워크 계층 장치들이 존재할 수 있습니다. 따라서 패킷이 송신측에서 이미 단편화되었더라도, 이러한 장치들의 IP 계층을 통과하면서 다시 단편화될 수 있습니다. 최종적으로 모든 단편들은 수신측에서 다시 합쳐집니다.
전체 링크에 대한 최소 MTU를 결정하고 해당 길이로 데이터를 전송하면 데이터가 어느 노드로 전송되든 패킷 조각화가 발생하지 않습니다. 이 전체 링크에 대한 최소 MTU를 경로 MTU(PMTU)라고 합니다. IP 패킷이 라우터에 도착했을 때, 라우터의 MTU가 패킷 길이보다 작고 DF(Do not Fragment) 플래그가 1로 설정되어 있으면 라우터는 패킷을 조각화할 수 없으므로 패킷을 폐기합니다. 이 경우 라우터는 "Fragmentation Needed But DF Set"이라는 ICMP(Internet Control Message Protocol) 오류 메시지를 생성합니다. 이 ICMP 오류 메시지는 라우터의 MTU 값과 함께 발신 주소로 전송됩니다. 발신자는 ICMP 오류 메시지를 수신하면 MTU 값을 기반으로 패킷 크기를 조정하여 금지된 조각화 상황을 다시 발생하지 않도록 할 수 있습니다.
IP 패킷 분할은 필수적이지만, 특히 링크의 중간 장치에서는 IP 계층에서 피해야 합니다. 따라서 IPv6에서는 중간 장치에 의한 IP 패킷 분할이 금지되었으며, 링크의 시작과 끝에서만 분할이 허용됩니다.
IPv6에 대한 기본 이해
IPv6는 인터넷 프로토콜의 6번째 버전으로, IPv4의 후속 버전입니다. IPv6는 128비트 주소 공간을 사용하여 IPv4의 32비트 주소 공간보다 더 많은 IP 주소를 제공할 수 있습니다. 이는 IPv4 주소 공간이 점차 고갈되어 가고 있는 반면, IPv6 주소 공간은 매우 커서 미래 인터넷의 수요를 충족할 수 있기 때문입니다.
IPv6에 대해 이야기하자면, 더 많은 주소 공간 외에도 향상된 보안과 확장성을 제공하기 때문에 IPv4보다 더 나은 네트워크 경험을 제공할 수 있습니다.
IPv6는 오래전부터 존재해 왔지만, 전 세계적인 보급은 여전히 상대적으로 더디게 진행되고 있습니다. 이는 IPv6가 기존 IPv4 네트워크와의 호환성을 유지해야 하므로 전환 및 마이그레이션이 필요하기 때문입니다. 그러나 IPv4 주소의 고갈과 IPv6에 대한 수요 증가로 인해 점점 더 많은 인터넷 서비스 제공업체와 기관들이 IPv6를 도입하고 있으며, IPv6와 IPv4를 동시에 사용하는 이중 스택 운영을 점차 실현하고 있습니다.
요약
이 장에서는 IP 단편화 및 재조립 작동 방식에 대해 자세히 살펴보았습니다. 각 데이터 링크는 최대 전송 단위(MTU)가 다릅니다. 패킷 크기가 MTU 제한을 초과하면 IP 단편화는 패킷을 여러 개의 작은 조각으로 분할하여 전송하고, 목적지에 도착한 후 IP 재조립 메커니즘을 통해 완전한 패킷으로 재조립합니다. TCP 단편화의 목적은 IP 계층에서 더 이상 단편화를 수행하지 않고, 재전송 시 단편화된 작은 데이터만 재전송하여 전송 효율과 신뢰성을 향상시키는 것입니다. 그러나 전송 링크에는 송신 장치보다 MTU가 작은 다른 네트워크 계층 장치가 있을 수 있으므로, 이러한 장치의 IP 계층에서 패킷이 다시 단편화될 수 있습니다. 따라서 IP 계층에서의 단편화는, 특히 링크의 중간 장치에서는 최대한 피해야 합니다.
게시 시간: 2025년 8월 7일
