요약
- RFC 791은 DF를 강한 제약으로 만들었습니다. 라우터는 표시된 데이터그램을 조각낼 수 없지만, 폐기할 수는 있습니다.
- RFC 1191은 이 실패가 정보가 되도록, 제한하는 다음 홉 MTU를 담은 ICMP Type 3 Code 4 응답을 요구했습니다.
- RFC 2923은 이 설계가 강제할 수 없는 의존성을 보여주었습니다. ICMP 응답이 차단되면 작은 교환은 되지만 큰 전송은 PMTUD 블랙홀 속으로 사라질 수 있습니다.
온전한 상태로 실패하도록 설계된 패킷
원래 IPv4 플래그 필드에는 세 비트가 있습니다. 예약 비트, Don't Fragment(DF), More Fragments입니다. RFC 791은 DF에 명확한 이진 의미를 부여했습니다. 0이면 조각내기가 허용되고, 1이면 금지됩니다. DF가 설정되면 라우터는 데이터그램을 분할할 수 없지만, 데이터그램을 폐기할 수는 있습니다.
마지막 절이 중요합니다. DF는 온전한 패킷이 도착할 것이라는 보장이 아니었습니다. 하류 링크가 너무 좁을 때 라우터가 해서는 안 되는 일에 대한 지시였습니다. RFC 791은 재조립 자원이 부족한 수신자를 조각내기 금지의 한 이유로 제시했습니다. 이 플래그는 원치 않는 조각들 대신 손실이라는 다른 결과를 수용함으로써 단말의 제약을 보호했습니다.
이 첫 계약에서 DF는 '아니오'라고 말합니다. 그 자체로는 어느 크기라면 성공했을지를 발신자에게 알려주지 않습니다.
거절을 측정으로 바꾸다
RFC 1191은 금지된 동작을 경로 MTU 탐색(PMTUD)의 트리거로 만들었습니다. 발신지는 첫 홉의 MTU에 기반한 추정치로 시작하고 DF를 설정한 채 데이터그램을 보냅니다. 모든 링크가 데이터그램을 운반할 수 있으면 온전히 통과합니다. 어떤 라우터가 데이터그램보다 MTU가 작은 링크에 도달하면, 그 라우터는 패킷의 크기와 DF 지시를 동시에 따를 수 없습니다.
규정된 응답은 데이터그램을 폐기하고 발신지에 ICMP Destination Unreachable 메시지, 즉 Type 3 Code 4 '조각내기가 필요하며 DF 설정됨'을 보내는 것입니다. 버려진 패킷은 프로브가 되고, 오류는 경로에 대한 증거가 됩니다.
RFC 1191은 이 증거를 더 정밀하게 만들었습니다. ICMP 헤더에서 기존에 '사용 안 함'으로 표시되던 필드의 하위 16비트를 Next-Hop MTU에 할당했습니다. 이 값은 해당 라우터가 조각내지 않고 관련 다음 홉에서 전달할 수 있었던 가장 큰 IP 데이터그램입니다. IP 헤더와 데이터를 포함하되 하위 계층 오버헤드는 포함하지 않습니다.
이 숫자는 피드백의 질을 바꿉니다. 없으면 발신지는 현재 데이터그램이 너무 컸다는 것만 압니다. 있으면 제한하는 라우터가 실패 지점에서 구체적인 상한선을 제공합니다.
수렴은 발신지의 몫
메시지를 받는 것이 탐색의 끝이 아닙니다. RFC 1191은 호스트가 관련 경로의 PMTU 추정치를 낮추어야 하며, 근시일 내에 반복 오류를 유발하지 않도록 전송량을 줄이거나 DF 설정을 멈추는 등의 조치를 해야 한다고 요구합니다. 명세는 서로 다른 구현 및 응용 전략의 여지를 의도적으로 남기지만, 절차가 수렴할 것을 요구합니다.
이 역할 분담이 중요합니다. 라우터는 로컬 전달 제약을 보고할 뿐, 원래 패킷을 조각으로 재작성하지 않고 발신지의 장기 패킷화 정책을 결정하지도 않습니다. 발신지가 관찰을 받아들여 무엇을 내보낼지 바꿉니다.
추정된 PMTU는 커질 수도 있지만, 위쪽으로 프로브하는 것은 또 다른 손실을 감수하는 일입니다. 따라서 RFC 1191은 이런 시험을 드물게 하도록 합니다. 해당 목적지에 대한 Datagram Too Big 메시지 이후 최소 5분, 그리고 이전 성공적인 증가 시도 이후 최소 1분이 지나야 하며, 권장 간격은 이 최소치의 두 배입니다. 탐색은 최대한 큰 패킷에 대한 끊임없는 요구가 아니라, 바뀌지 않았을 수도 있는 경로를 시험하는 비용과 효율 사이의 통제된 균형입니다.
숫자가 없을 때의 호환성
새 Next-Hop MTU 필드는 모든 라우터가 동시에 업그레이드될 것이라 가정할 수 없었습니다. 구형 라우터는 자기 명세에서 여전히 '사용 안 함'으로 간주하는 필드에 0을 넣어 적절한 ICMP 오류를 보낼 것입니다. RFC 1191은 호스트가 이 구식 메시지를 처리하도록 요구합니다.
이때 발신지는 덜 정밀한 증거로부터 회복해야 합니다. 알려진 MTU 플래토(platgaus)나 다른 유한 전략으로 추정치를 낮출 수 있습니다. 메커니즘은 여전히 실패에서 배우지만, 보고된 한계를 따르는 대신 탐색합니다. 이 호환성 경로는 모호성과 추가 폐기 프로브라는 대가를 치르면서 혼합 세대 환경에서의 배포를 지켰습니다.
반환 신호가 사라질 때
RFC 2923은 PMTUD를 악명 높게 만든 실패 모드를 문서화했습니다. 일부 라우터는 요구된 ICMP 메시지를 보내지 않았고, 방화벽은 종종 모든 ICMP를 차단하도록 설정되어 있었습니다. 오류가 발신지에 도달하지 않으면, 발신지는 어떤 링크에는 너무 크면서 조각내기도 금지된 패킷을 계속 보냅니다. 크기를 줄이는 데 필요한 사실을 영원히 받지 못하기 때문에 패킷은 반복해서 사라집니다.
그 결과가 PMTUD 블랙홀입니다. 패킷 크기가 성패를 가르기 때문에 증상은 오해를 부릅니다. 짧은 TCP 핸드셰이크는 경로를 건널 수 있습니다. 작은 응용 쓰기는 성공할 수 있습니다. 평범한 핑은 돌아올 수 있습니다. 실패는 대량 전송이 큰 패킷을 내보내기 시작할 때 나타나고, 진행이 멈추고 연결은 결국 타임아웃됩니다.
이는 모든 의미에서 목적지에 도달할 수 없다는 증거가 아닙니다. 하나의 '크기+제어' 조합이 경로를 통과할 수 없고 피드백 루프가 깨졌다는 증거입니다.
RFC 2923은 연결에 대해 패킷 크기를 줄이거나 PMTUD를 비활성화하는 등 단말의 탐지 및 폴백 동작을 기술합니다. 그러나 폴백이 결함 있는 네트워크를 가리고 숨은 지연을 추가할 수 있다고도 경고합니다. 바람직한 해법은 모든 단말이 영구히 보상하도록 만드는 것이 아니라 ICMP 블랙홀을 고치는 것입니다.
이 역사가 확립한 것
DF는 마법으로 조각내기를 없앤 것이 아닙니다. 제어를 재배치했습니다. 발신자는 라우터가 패킷을 조각내는 것을 금지할 수 있고, 제한하는 라우터는 정량화된 제약을 돌려보내 발신자가 새 크기를 선택하도록 할 수 있습니다. 오류 메시지는 단순한 종결적 불평이 아니라 정상적인 적응의 일부가 되었습니다.
이 설계는 어떤 헤더 비트도 지켜줄 수 없는 의존성도 드러냈습니다. 발신지, 제한 라우터, ICMP 반환 경로, 필터, 상위 계층 발신자가 모두 하나의 루프에서 각자의 몫을 지켜야 했습니다. 피드백 없는 DF는 반복 손실을 낳고, 반응하는 발신지 없는 피드백은 반복 오류를 낳습니다. 캐시된 PMTU는 어느 시점의 경로에 대한 관찰이지 목적지의 영구 속성이 아닙니다.
출처
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





