MSS, TCP MSS   Maximum Segment Size   TCP MSS 옵션, TCP 최대 세그먼트 크기

(2022-06-18)

MSS


1. TCP 최대 세그먼트 크기TCP 세그먼트 크기
     - IP 헤더,TCP 헤더는 제외하고, TCP가 실을 수 있는 데이터 만의 크기를 의미

  ㅇ TCP MSS (Maximum Segment Size, 최대 세그먼트 크기)
     - TCPTCP 세그먼트 1개로 보낼 수 있는 최대 데이터 크기를 말함
        . 기본값(디폴트) : IPv4 536 바이트 (RFC 1122에서 규정), IPv6 1220 바이트

     * MSS 및 MTU  크기 비교
        . MTU  : (IP 기반의 정보)  IP 헤더, TCP 헤더, TCP 데이터를 모두 포함하는 길이 
        . MSS  : (TCP 기반의 정보) 단지 TCP 데이터(페이로드) 길이 만을 의미 

  ㅇ TCP MSS 값의 전달 
     - TCP 헤더 옵션에 포함시켜 그 값을 전달함 

  ㅇ TCP MSS 값의 적정성 ☞ TCP 세그먼트 크기 참조


2. [TCP 옵션]  MSS 옵션 값의 통보/협상TCP 연결설정 시에 통보/협상
     - TCP 연결설정을 위한 초기 세그먼트(SYN 세그먼트)를 전송할 때, 
        . 초기 세그먼트에 MSS 옵션에 그 값을 포함시켜 전달함
     - SYN 제어비트(TCP 제어 플래그)가 설정된 상태에서,
        . 처음 왕복하는 2개의 세그먼트 (SYN 세그먼트, SYN+ACK 세그먼트)에서 만 나타남
        . 이것이 추후에 나타나면 이를 무시

  ㅇ TCP는 양방향이므로, 
     - 참여 양단 호스트별로(각 방향으로) 다른 MSS 값이 사용됨
     - 즉, 연결에 참여하는 두 장비가 서로 다른 MSS 값을 갖을 수도 있음


3. [TCP 옵션]  MSS 옵션값의 `미지정(기본)`,`지정(명시)`,기타값

  ㅇ 미지정(기본)하는 경우        (소량 데이터인 경우)
     - 기본 MSS 옵션 값 : 536 바이트 (IPv4)
        . 즉, 미 지정시 기본값 536 바이트가 사용됨

  ㅇ 지정(명시)하며 전달하는 경우 (대량 데이터인 경우)
     - TCP 연결설정 시에, 양끝단 TCP 장치들 간에 자신이 속한 네트워크MTU 값에서
       40 바이트(IP 헤더,TCP 헤더를 합친 개략치)를 뺀 값을 통보
        . 고속 컴퓨터(큰 MSS 요구)와 저속 컴퓨터(작은 MSS 요구) 간의 협상으로 볼 수 있음

  ㅇ 기타
     - (값 65535) : 무한 크기 값 (주로, IPv6의 점보그램에 사용됨)
        . 그 한계는, PMTU에서 60 바이트 (IPv6 헤더 40 + TCP 헤더 20)를 뺀 값 
     - (값 1460)  : 이더넷 경우의 전형적인 값 (이더넷 MTU 1500 - IPv4 헤더 20 - TCP 헤더 20)


4. [TCP 옵션]  MSS 옵션 필드 구성

  

  ㅇ 옵션 길이 : 총 32 비트 (4 바이트)
     - type   (1 바이트) : Maximum Segment Size(MSS) 옵션임을 알림 (= 2)
     - length (1 바이트) : MSS 옵션이 차지하는 총 길이(크기)를 말함 (= 4)
     - value  (2 바이트) : MSS 값

TCP 패킷(세그먼트)
   1. TCP 헤더   2. TCP 제어 비트   3. TCP 옵션   4. TCP MSS 옵션   5. TCP 세그먼트  
TCP 연결관리
   1. TCP 연결   2. TCP 연결설정(3단계)   3. TCP 연결종료   4. TCP 상태   5. TCP 헤더 옵션   6. TCP MSS 옵션   7. path MTU  


"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"