최대 세그먼트 크기
최대 세그먼트 크기(Maximum segment size, MSS)는 TCP 헤더의 옵션 필드에 있는 매개변수로, 컴퓨터 또는 통신 장치가 단일 TCP 세그먼트에서 수신할 수 있는 최대 데이터 양(바이트 단위)을 지정한다. TCP 헤더나 IP 헤더는 여기에 포함되지 않는다(IP 데이터그램의 MTU와는 다르다).[1](§3.7.1) TCP 세그먼트를 포함하는 IP 데이터그램은 단일 패킷에 자체적으로 포함될 수도 있고, 여러 조각으로 분할되어 재구성될 수도 있다. 어느 경우든 MSS 제한은 최종적으로 재구성된 TCP 세그먼트에 포함된 총 데이터 양에 적용된다.
IP 계층에서 조각화를 방지하려면 호스트는 최대 세그먼트 크기를 호스트가 처리할 수 있는 가장 큰 IP 데이터그램에서 IP 및 TCP 헤더 크기를 뺀 값으로 지정해야 한다. IETF RFC에는 최소 필수 MSS가 정의되어 있지 않지만 최소 MTU가 있으므로 기본 MSS는 MTU에서 최소 IP 및 TCP 헤더 크기를 빼서 계산된다. 예를 들어, IPv4 호스트는 일반적으로 기본적으로 536옥텟(= 576 - 20 - 20)의 MSS를 사용하고, IPv6 호스트는 일반적으로 1220옥텟(= 1280 - 40 - 20)의 MSS를 처리할 수 있다.[1](§3.7.1)
MSS 값이 작으면 IP 단편화가 줄어들거나 없어지지만 오버헤드가 증가한다.[2]
데이터 흐름의 각 방향은 서로 다른 MSS를 사용할 수 있다.
대부분의 컴퓨터 사용자에게 MSS 옵션은 운영체제에 의해 설정된다.
TCP 옵션이 활성화된 경우, TCP 옵션 크기(변수 0~320비트, 32비트 단위)를 MSS 크기에서 빼야 한다. 예를 들어, TCP 타임스탬프는 리눅스 플랫폼에서 기본적으로 활성화된다.
기본값
[편집]IPv4의 기본 TCP 최대 세그먼트 크기는 536이다. IPv6의 경우 1220이다.[1](§3.7.1) 호스트가 최대 세그먼트 크기를 기본값 이외의 값으로 설정하려는 경우, 최대 세그먼트 크기는 TCP 옵션으로 지정되며, TCP 핸드셰이크 중 TCP SYN 패킷에 처음 포함된다. 연결이 설정된 후에는 값을 변경할 수 없다.
관련 문헌
[편집]- Comer, Douglas E. (2006). 《Internetworking with TCP/IP》 1 5/E판. Upper Saddle River, NJ, USA: Prentice Hall.
- Kozierok, Charles M. (2005년 9월 20일). 《The TCP/IP Guide》 3.0판. 2011년 9월 8일에 확인함.
같이 보기
[편집]각주
[편집]- ↑ 가 나 다 W. Eddy, ed. (August 2022). Transmission Control Protocol (TCP). Internet Engineering Task Force. ISSN 2070-1721. STD 7. RFC 9293. https://tools.ietf.org/html/rfc9293. Internet Standard 7. Obsoletes RFC 793, 879, 2873, 6093, 6429, 6528 and 6691. Updates RFC 1011, 1122 and 5961.
- ↑ The TCP/IP Guide, TCP Maximum Segment Size (MSS) and Relationship to IP Datagram Size