MTU(Maximum Transmission Unit)는 OSI 7계층 모델에서 주로 2계층(데이터 링크 계층)과 3계층(네트워크 계층) 사이의 접점에 위치하며, 두 계층 모두와 밀접한 연관이 있습니다.
구체적인 연관성은 다음과 같습니다.
1. 데이터 링크 계층 (2계층, Data Link Layer)
MTU의 물리적인 한계를 결정하는 계층입니다.
- 특정 네트워크 기술(Ethernet, Wi-Fi 등)이 한 번에 전송할 수 있는 최대 프레임 크기를 정의합니다.
- 가장 일반적인 Ethernet MTU는 1,500바이트입니다. 이는 이더넷 프레임의 페이로드(데이터 부분)에 담길 수 있는 최대 크기를 의미합니다.

MTU 는 Ethernet payload 의 사이즈를 정의합니다. 따라서 실제 MTU가 1500의 Ethernet 의 사이즈는 ethernet header 14 bytes, CRC 4 bytes 를 포함하여 1518 bytes 가 됩니다. VLAN 을 포함하는 ethernet 구간이면 VLAN Tag 4bytes 가 포함되어 1522 bytes가 됩니다.
2. 네트워크 계층 (3계층, Network Layer)
MTU를 기반으로 실제 데이터 분할(Fragmentation)이 일어나는 계층입니다.
- IP 패킷이 하위 계층(2계층)으로 내려갈 때, 해당 인터페이스의 MTU보다 패킷이 크면 IP 계층에서 이를 여러 개의 작은 패킷으로 쪼개는 'IP 단편화'를 수행합니다.
- 라우터와 같은 3계층 장비는 경로상의 MTU 값을 확인하여 패킷을 전달하거나, 너무 클 경우 폐기하고 ICMP 메시지(Destination Unreachable)를 보냅니다.
내 컴퓨터의 MTU 사이즈는 ifconfig를 통해서 쉽게 파악할 수 있습니다.
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=6460<TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM>
ether c4:35:d9:8a:36:d7
inet6 fe80::147d:5d39:6a93:e88%en0 prefixlen 64 secured scopeid 0xb
inet 192.168.6.162 netmask 0xfffffc00 broadcast 192.168.7.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active

1. 통신 환경 구성
- 구간 A (출발지 측): 고속 데이터센터 망 (MTU 9,000 설정)
- 중간 장비 (L3 라우터 또는 L3 스위치): 두 네트워크를 연결하는 게이트웨이
- 구간 B (목적지 측): 일반 사용자 망 또는 표준 서버 망 (MTU 1,500 설정)
- 데이터: 출발지 서버가 9,000 바이트 크기의 대용량 백업 데이터를 한 번에 전송 시도
2. 통신 단계별 동작 (End-to-End)
단계 1: 출발지 서버의 패킷 생성
출발지 서버는 자신의 인터페이스가 MTU 9,000으로 설정되어 있으므로, 효율을 높이기 위해 데이터를 가득 채운 9,000 바이트짜리 IP 패킷을 만들어 구간 A로 보냅니다. L2 스위치들은 이를 문제없이 전달합니다.
단계 2: 중간 L3 장비의 병목 지점 도착
9,000 바이트 패킷이 구간 A와 구간 B를 연결하는 라우터에 도착합니다. 라우터는 패킷을 구간 B로 내보내려 하지만, 구간 B의 인터페이스 MTU가 1,500임을 확인합니다.
단계 3: 처리 방식의 결정 (DF 비트 확인)
라우터는 IP 헤더의 DF(Don't Fragment) 비트 설정에 따라 두 가지 행동 중 하나를 취합니다.
- 상황 1: 단편화 허용 (DF=0) 라우터는 9,000 바이트 패킷을 구간 B의 한계치인 1,500 바이트 이하로 6개 이상의 조각으로 쪼갭니다(Fragmentation). 각 조각마다 새로운 IP 헤더가 붙어 전송됩니다.
- 상황 2: 단편화 금지 (DF=1) 라우터는 패킷을 즉시 폐기합니다. 그리고 출발지 서버에게 "ICMP Type 3, Code 4 (Fragmentation Needed)" 메시지를 보냅니다. 이 메시지에는 "여기는 1,500이 한계다"라는 정보가 포함됩니다.
단계 4: 목적지 도달 및 재조립
- 상황 1의 경우: 목적지 서버의 OS가 쪼개진 조각들을 다 받을 때까지 기다렸다가 원래의 9,000 바이트로 합쳐서 애플리케이션에 전달합니다.
- 상황 2의 경우 (PMTUD 작동): 출발지 서버는 ICMP 메시지를 받고, "아, 경로 중에 1,500이 있구나"라고 학습하여 다음부터는 애초에 1,500 바이트 이하로 데이터를 끊어서 보냅니다.

⚠️ 실무에서 발생하는 치명적인 문제
1. CPU 부하 급증
라우터가 소프트웨어적으로 패킷을 쪼개는 작업(Fragmentation)은 CPU 자원을 많이 소모합니다. 트래픽이 몰릴 때 MTU 불일치가 발생하면 장비 전체의 성능이 급격히 떨어질 수 있습니다.
2. MTU Black Hole (블랙홀 현상)
가장 위험한 상황입니다. 보안을 위해 ICMP 메시지를 차단한 경우, 라우터가 "패킷이 너무 크다"고 알려줘도 출발지가 듣지 못합니다.
- 결과: 작은 패킷(Ping 등)은 가는데, 실제 데이터가 담긴 큰 패킷만 보내면 무한 대기에 빠지거나 연결이 끊어집니다.