1. TCP 옵션
ㅇ TCP 연결 관리 기능을 확장시키는데 주로 사용되는 옵션 필드
ㅇ TCP 헤더 내에 포함됨
- 그 크키는 가변 (0~40 바이트 즉, 최대 40 바이트까지 옵션을 넣을 수 있음)
- 여러 옵션이 함께 있을 수 있음
- 이 옵션들은 4 바이트 경계를 갖음
2. TCP 옵션 구조
ㅇ 옵션 시작이 옵션 종류를 나타냄 (1 바이트)
ㅇ 0,1 종류는 1 바이트, 그 외 종류들은 크기(length) 필드 있음
3. 주요 옵션의 종류
ㅇ type 0 (EOL, End of Option) : 1 바이트
- 옵션 필드의 끝
. 더이상의 옵션 처리 목록이 없음 (옵션 리스트의 끝)
ㅇ type 1 (NOP, No Operatin) : 1 바이트
- 동작 없음
. 4 바이트 배수로 패딩 (채우기) 위함 (옵션 사이를 채움)
ㅇ type 2 (MSS, Maximum Segment Size) : 4 바이트 ☞ TCP MSS 옵션 참조
- TCP 최대 세그먼트 크기 옵션
. 송신측 네트워크에 대한 TCP 데이터 세그먼트의 최대 길이
.. 例) 이더넷은 약 1500 바이트
. MSS 값은, 16 비트로 그 크기를 지정함
.. 미 지정시 기본값 536 바이트가 사용됨
※ 위 3개 옵션은 원래의 TCP 스펙에 포함되었고,
- 이후 개정본에서 아래의 옵션들이 포함됨
ㅇ type 3 (WSCALE,Window Scale factor 또는 WSOPT) : 3 바이트
- 윈도우 스케일 옵션 (윈도우 스케일링 인자)
. 윈도우 크기의 표현범위 확장 (16 비트 => 32 비트)
.. 즉, (16 비트, 216, 64 KB) => (32 비트, 232, 1 GB)
. TCP 헤더 내 윈도우 크기 필드 값을 윈도우 스케일 옵션 값(비트) 만큼,
.. 왼쪽으로 시프트하여 크기 스케일을 변환시킴
ㅇ type 4 (SACK Permitted,Selective Acknowledgment Permitted) : 2 바이트
- 선택 확인응답(SACK) 옵션 허용
. 여러 패킷 중 손실된 패킷 만 선택적으로 재전송하기 위한
TCP 연결 설정 시의 협상 옵션
ㅇ type 5 (Selective Acknowledgment, SACK) : 가변
- 선택 확인응답 (SACK) 옵션 데이터
. 수신측에서 손실되어 재전송을 원하는,
. 불연속적인(순서 어긋난) 세그먼트 블록을 명시하기 위함
ㅇ type 8 (Timestamp) : 10 바이트
- 타임스탬프 옵션
ㅇ type 28 (UTO, User Timeout) : 4 바이트
- 사용자 타임아웃
ㅇ type 29 (TCP-AO) : 가변
- 인증 옵션
※ [참고] ☞ IANA (TCP Parameters)