4.3. Опции
Опции размещаются в конце заголовка TCP и учитываются при вычислении контрольной суммы. Опция может начинаться на любой границе байта. Заголовок TCP должен дополняться нулями для выравнивания по 32-битовой границе.
Необязательные поля заголовка идентифицируются полем типа опции. Опции типа 0 и 1 занимают один октет. Все остальные опции имеют 1-октетное поле типа, за которым следует октет размера (length) и поле данных, размером length-2 октета.
4.3.1. Обзор опций
Агентство IANA поддерживает официальный список определенных опций TCP. На рисунке 12 показан список опций, определенных на момент публикации документа. Любая опция имеет идентификатор типа, выделенный IANA. Список опций доступен на сайте [20]. В тех случаях, когда это применимо, список опций содержит ссылки на RFC.
Тип | Размер в октетах | Значение | RFC | Применение |
0 | - | End of Option List | RFC 793 | * |
1 | - | No-Operation | RFC 793 | * |
2 | 4 | Maximum Segment Size | RFC 793 | * |
3 | 3 | WSopt — Window Scale | RFC 1323 | * |
4 | 2 | SACK Permitted | RFC 2018 | * |
5 | N | SACK | RFC 2018 | * |
6 | 6 | Echo (отменено опцией 8) | RFC 1072 | |
7 | 6 | Echo Reply (отменено опцией 8) | RFC 1072 | |
8 | 10 | TSopt — Time Stamp Option | RFC 1323 | * |
9 | 2 | Partial Order Connection Permitted | RFC 1693 | * |
10 | 3 | Partial Order Service Profile | RFC 1693 | |
11 | 6 | CC | RFC 1644 | |
12 | 6 | CC.NEW RFC | 1644 | |
13 | 6 | CC.ECHO RFC | 1644 | |
14 | 3 | Alternate Checksum Request | RFC 1146 | |
15 | N | Alternate Checksum Data | RFC 1146 | |
16 | Skeeter | |||
17 | Bubba | |||
18 | 3 | Trailer Checksum Option | ||
19 | 18 | MD5 Signature Option | RFC 2385 | |
20 | SCPS Capabilities | |||
21 | Selective Negative Acks | |||
22 | Record Boundaries | |||
23 | Corruption experienced | |||
24 | SNAP | |||
25 | Unassigned (с 18.12.2000) | |||
26 | TCP Compression Filter | |||
Рисунок 12: Опции TCP общего назначения |
Знак * в колонке «Применение» отмечает опции, которые чаще встречаются в потоках TCP. Отметим также, что RFC 1072 [4] был заменен RFC 1323 [7], хотя исходное использование битов определено в 1072.