Router C의 MTU가 1400 바이트이기 때문에 패킷이 분할되는 모습
경우 | 설명 |
---|---|
MTU 값이 경로상의 모든 링크에서 허용되는 크기일 때 | 경로상의 모든 네트워크 링크가 동일한 MTU 값을 갖고 있거나, 보내는 패킷의 크기가 경로상의 최소 MTU 값 이하일 경우, 패킷은 분할되지 않습니다. 이는 특히 로컬 네트워크에서 동일한 네트워크 장비와 동일한 설정을 사용할 때 자주 발생합니다. |
PMTUD (Path MTU Discovery) 사용 | PMTUD를 통해 경로상의 최소 MTU 값을 발견한 후, 그 값을 기반으로 패킷 크기를 조정하면 패킷이 분할되지 않습니다. 이 경우 송신 측에서 MTU 값을 적절히 조정하여 패킷을 전송하게 됩니다. |
Fragmentation 비트를 설정한 경우 | IPv4 헤더의 Don’t Fragment (DF) 비트를 설정하면, 패킷이 경로상의 MTU보다 클 경우 라우터가 패킷을 분할하지 않고, 대신 패킷을 드롭하고 ICMP Fragmentation Needed 메시지를 송신 측으로 반환합니다. 이를 통해 송신 측에서 패킷 크기를 조정하게 됩니다. |
고정 크기의 패킷 전송 | 애플리케이션이 패킷 크기를 네트워크 경로상의 최소 MTU 값 이하로 설정하여 데이터를 전송하는 경우, 패킷은 분할되지 않습니다. |
TCP 세그먼트에서 전송될 수 있는 데이터의 최대 크기
TCP 계층에서 정의되며 IP 헤더와 TCP 헤더를 제외한 순수 데이터의 크기를 의미
일반적으로 MSS는 MTU에서 IP 헤더(20 바이트)와 TCP 헤더(20 바이트)를 뺀 크기로 설정
그렇기 때문에 MTU가 1500이라도 데이터는 보통 1460 바이트(IP 헤더, TCP 헤더의 크기를 뺀 값)
이하의 크기로 보내야 전달이 됨
이더넷 헤더 14 바이트, FCS(Frame Check Sequence)
4 바이트가 포함된 것을 통틀어 이더넷 프레임이라고 하고 FCS는 데이터의 에러 검출을 돕기 위해 삽입되는 필드
1518바이트
ping -D -s 1472 www.google.com
1472바이트(1500 - 20 - 8)
사용Don't Fragment
비트를 설정하여 전송하고 경로 중간에 MTU가 작은 링크가 있으면 해당 링크에서 ICMP Fragmentation Needed
메시지를 반환하여 송신 측에서 MTU 크기를 조정하게 됨