TCP MSS/MTU 불일치로 발생하는 Fragmentation 문제 분석

TCP MSS/MTU 불일치로 발생하는 Fragmentation 문제 분석

TCP 통신에서 성능 저하나 간헐적 연결 문제의 원인으로 자주 간과되는 요소가 MSS(Maximum Segment Size)와 MTU(Maximum Transmission Unit)의 불일치다.
이 불일치는 IP Fragmentation을 유발하거나, 경우에 따라 패킷 드롭과 재전송을 반복시키며 체감 성능을 크게 떨어뜨린다.
이 글에서는 MSS와 MTU의 관계, 불일치가 발생하는 구조적 원인, 그리고 실제 네트워크에서 나타나는 문제를 기술적으로 분석한다.

1. MTU와 MSS의 기본 개념

MTU(Maximum Transmission Unit)

MTU는 네트워크 계층에서 한 번에 전송할 수 있는 최대 IP 패킷 크기를 의미한다.
이더넷 환경에서 기본 MTU는 1500바이트다.

MSS(Maximum Segment Size)

MSS는 TCP 계층에서 한 세그먼트에 실을 수 있는 최대 데이터 크기를 의미한다.
일반적으로 MSS는 다음과 같이 계산된다.

MTU 1500
IP 헤더 20바이트
TCP 헤더 20바이트
→ MSS 1460바이트

즉, MSS는 MTU에서 IP와 TCP 헤더 크기를 제외한 값이다.

2. TCP 통신에서 MSS 협상 과정

TCP 연결은 3-way handshake 과정에서 MSS 값을 서로 교환한다.

  • SYN 패킷에 MSS 옵션 포함
  • 양측이 제시한 MSS 중 더 작은 값을 기준으로 통신
  • 이후 모든 TCP 세그먼트는 해당 MSS 이하로 전송

이 과정이 정상적으로 이루어지면 Fragmentation 없이 효율적인 전송이 가능하다.

3. MTU 불일치가 발생하는 대표적인 환경

MTU 불일치는 주로 다음과 같은 환경에서 발생한다.

  • VPN(IPsec, GRE, WireGuard) 사용
  • PPPoE 환경
  • 터널링(Overlay Network)
  • 클라우드 VPC 간 통신
  • 방화벽 또는 로드밸런서 경유

이러한 환경에서는 논리적 MTU가 실제 물리 MTU보다 작아진다.

예시
이더넷 MTU 1500
IPsec 오버헤드 56바이트
실제 사용 가능한 MTU 약 1444바이트

하지만 MSS가 여전히 1460으로 유지되면 문제가 발생한다.

4. MSS/MTU 불일치로 인한 Fragmentation 발생 과정

불일치 상황에서의 전송 흐름은 다음과 같다.

  1. TCP는 MSS 1460 기준으로 세그먼트 생성
  2. IP 계층에서 패킷 크기가 실제 MTU 초과
  3. Fragmentation 발생 또는 패킷 드롭
  4. 수신 측에서 재조립 필요
  5. 지연 증가 또는 재전송 발생

이 과정은 네트워크 효율을 크게 떨어뜨린다.

5. IP Fragmentation의 문제점

성능 저하

Fragmentation은 패킷을 여러 조각으로 나누기 때문에

  • 전송 횟수 증가
  • 처리 오버헤드 증가
  • 재조립 비용 발생

패킷 손실에 취약

조각 중 하나라도 손실되면 전체 패킷이 무효화된다.
이는 TCP 재전송을 유발해 지연과 대역폭 낭비로 이어진다.

방화벽 및 NAT 문제

일부 방화벽이나 NAT 장비는 Fragmented 패킷을 정상 처리하지 못해

  • 특정 사이트 접속 불가
  • 대용량 데이터 전송 실패
    같은 증상이 나타날 수 있다.

6. Path MTU Discovery(PMTUD)와 실패 시나리오

PMTUD는 경로상의 최소 MTU를 자동으로 탐지하는 메커니즘이다.

동작 원리

  • DF(Don’t Fragment) 비트 설정
  • MTU 초과 시 ICMP Fragmentation Needed 메시지 수신
  • MTU 재조정

문제는 다음 상황에서 발생한다.

  • ICMP 메시지가 방화벽에 의해 차단됨
  • 클라우드 보안 정책으로 ICMP 미허용

이 경우 송신 측은 MTU를 줄이지 못하고, 패킷이 반복적으로 드롭된다.

7. 실제 증상과 장애 패턴

MSS/MTU 불일치로 인해 나타나는 대표적인 증상은 다음과 같다.

  • 웹 페이지 일부 리소스만 로딩 실패
  • SSH 접속은 되지만 대용량 전송 시 멈춤
  • VPN 연결 후 특정 서비스만 접속 불가
  • TCP 세션은 유지되지만 속도가 극도로 느림
  • retransmission 증가, RTT 급증

이러한 문제는 애플리케이션 오류로 오인되기 쉽다.

8. MSS Clamping의 역할과 중요성

MSS Clamping은 방화벽이나 라우터에서
TCP SYN 패킷의 MSS 값을 강제로 낮추는 기법이다.

효과

  • 실제 경로 MTU에 맞는 MSS 사용
  • Fragmentation 사전 차단
  • PMTUD 실패 환경에서도 안정성 확보

특히 VPN, 터널링 환경에서는 MSS Clamping이 사실상 필수다.

9. 운영 환경에서의 대응 전략

실무에서 권장되는 대응 방식은 다음과 같다.

  • 터널 환경에서는 MTU를 명시적으로 축소
  • 방화벽에서 TCP MSS Clamping 적용
  • ICMP Fragmentation Needed 메시지 허용
  • 패킷 캡처로 실제 MTU 확인
  • 클라우드 간 통신 시 MTU 정책 사전 확인

단순히 MTU를 키우는 것이 아니라, 경로 전체의 최소 MTU를 기준으로 설계해야 한다.

10. 정리 및 결론

TCP MSS와 MTU의 불일치는
단순한 설정 문제가 아니라 네트워크 성능과 안정성을 직접적으로 저해하는 구조적 문제다.

핵심 요약

  • MSS는 MTU에 직접적으로 종속
  • 터널링 환경에서 MTU 감소는 매우 흔함
  • 불일치 시 Fragmentation, 재전송, 패킷 드롭 발생
  • PMTUD 실패 환경에서는 문제 지속
  • MSS Clamping은 가장 효과적인 예방책

TCP 성능 문제를 분석할 때
애플리케이션이나 서버 리소스만 보지 말고,
MSS와 MTU의 일관성을 함께 점검하는 것이 안정적인 네트워크 운영의 핵심이다.

댓글 남기기