MCP로 연결 →

계산 입력

공식

광고

결과

최대 세그먼트 크기 (MSS)
1,460
세그먼트당 TCP 페이로드 바이트
MTU 1,500 bytes
IP 헤더 20 bytes
TCP 헤더 20 bytes
전체 오버헤드 40 bytes

MTU & MSS 계산기란?

이 도구는 네트워크의 최대 전송 단위(MTU, Maximum Transmission Unit)를 TCP가 사용하는 최대 세그먼트 크기(MSS, Maximum Segment Size)로 변환해 줍니다. MTU는 하나의 링크가 운반할 수 있는 가장 큰 패킷 크기(바이트 단위)를 뜻하고, MSS는 그 패킷에서 IP 헤더와 TCP 헤더를 뺀 뒤 실제로 담을 수 있는 TCP 페이로드의 크기를 말합니다. MSS를 정확히 맞추면 패킷 분할(fragmentation)과 재전송을 줄이고, 연결을 멈추게 만드는 악명 높은 "PMTUD 블랙홀" 현상도 피할 수 있습니다.

사용 방법

링크의 MTU 값을 입력하세요(이더넷 기본값은 1500입니다). 그다음 IPv4(기본 헤더 20바이트) 또는 IPv6(기본 헤더 40바이트)를 선택하고, 필요하다면 IP 옵션이나 타임스탬프·SACK 같은 TCP 옵션(보통 12바이트)에 해당하는 바이트 수를 추가로 넣어 주면 됩니다. 계산기가 전체 헤더 오버헤드를 빼고 MSS를 바이트 단위로 알려 줍니다.

공식 풀이

관계식은 아주 간단합니다. MSS = MTU − IP 헤더 − TCP 헤더입니다. 표준 TCP 헤더는 20바이트이고, 표준 IPv4 헤더도 20바이트이므로 흔히 쓰이는 간편식은 MSS = MTU − 40이 됩니다. IPv6는 고정 헤더가 40바이트라서 MSS = MTU − 60이 됩니다. 협상 과정에서 추가된 옵션은 해당 헤더 크기를 늘려 페이로드를 그만큼 더 줄입니다.

$$\text{MSS} = \text{MTU} - \left(20 + \text{IP Options}\right) - \left(20 + \text{TCP Options}\right)$$
광고
MTU 내의 IP 헤더, TCP 헤더, MSS 페이로드를 보여주는 IP 패킷 다이어그램
MTU는 전체 패킷이고, MSS는 IP 및 TCP 헤더를 뺀 나머지 데이터입니다.

실제 계산 예시

표준 이더넷의 MTU는 1500바이트입니다. IPv4를 쓰면 IP 헤더 20바이트, TCP 헤더 20바이트로 총 오버헤드가 40바이트입니다. 따라서 \(\text{MSS} = 1500 - 40 = 1460\)바이트가 됩니다. 만약 TCP 타임스탬프가 옵션으로 12바이트를 추가하면 TCP 헤더가 32바이트로 늘어나고, MSS는 \(1500 - 20 - 32 = 1448\)바이트로 줄어듭니다.

자주 묻는 질문

왜 제 MSS는 자주 1460으로 나오나요? 대부분의 링크가 1500바이트 MTU를 사용하고, 여기서 표준 IPv4+TCP 헤더 40바이트를 빼면 데이터용으로 1460바이트가 남기 때문입니다.

MSS에 헤더도 포함되나요? 아닙니다. MSS는 순수하게 TCP 페이로드 크기만 가리킵니다. IP 헤더와 TCP 헤더는 그 위에 덧붙어 전체 패킷을 이룹니다.

PPPoE나 터널은 어떻게 하나요? 캡슐화는 실효 MTU를 낮춥니다(PPPoE는 8바이트를 더해 MTU가 1492가 되고, VPN은 그보다 더 많이 줄어듭니다). 이런 경우 줄어든 MTU 값을 여기에 입력하면 올바른 MSS를 얻을 수 있습니다.

최종 업데이트: