-1

Несколько дней назад я наткнулся на таблицу общих опций заголовка TCP (десятки из них), в которой перечислены добрый номер и соответствующая опция, теперь я не могу найти его через google .

лайк

kind                 option
0 (8 bits) –       End of options list
1 (8 bits) –       No operation (NOP, Padding) 
2,4,SS (32 bits) – Maximum segment size (see maximum segment size) [SYN]
3,3,S (24 bits) –  Window scale (see window scaling for details) [SYN][7]
4,2 (16 bits) –    Selective Acknowledgement permitted
....
....

Может кто-нибудь предоставить ссылку, где я могу найти такую таблицу?

1 ответ1

2

Единственные 3 "Официальных" варианта, которые должен поддерживать сетевой стек, определены в Разделе 3.1 RFC 793.

  Kind     Length    Meaning
  ----     ------    -------
   0         -       End of option list.
   1         -       No-Operation.
   2         4       Maximum Segment Size.

Все остальное, кроме этих трех, является "расширением" и не требует обработки.

Из RFC 1122 Раздел 4.2.2.5:

TCP ДОЛЖЕН быть в состоянии получить опцию TCP в любом сегменте. TCP ДОЛЖЕН безошибочно игнорировать любую опцию TCP, которую он не реализует, предполагая, что у опции есть поле длины (у всех опций TCP, определенных в будущем, будут поля длины). TCP ДОЛЖЕН быть готов обработать недопустимую длину параметра (например, ноль) без сбоя; Предлагаемая процедура - сбросить соединение и записать причину.

Были RFC, которые добавляют больше опций (например, RFC 2581 и RFC 5681 для контроля перегрузки), но они все еще считаются необязательными, и не все сетевое оборудование требуется для их соблюдения.


Если вы действительно хотите, чтобы список опций, которые были стандартизированы, вот список из Википедии

Некоторые параметры могут быть отправлены, только если установлен SYN; они обозначены ниже как [SYN]. Опция-вид и стандартная длина, указанная как (опция-вид, опция-длина).

  • 0 (8 бит) - конец списка опций
  • 1 (8 бит) - без операции (NOP, заполнение). Это можно использовать для выравнивания полей опций на 32-битных границах для повышения производительности.
  • 2,4, SS (32 бита) - максимальный размер сегмента (см. Максимальный размер сегмента) [SYN]
  • 3,3, S (24 бита) - Масштаб окна (подробности см. В окне масштаба) [SYN]
  • 4,2 (16 бит) - выборочное подтверждение разрешено. [SYN] (см. Выборочные подтверждения для деталей)
  • 5, N, BBBB, EEEE, ... (переменные биты, N равно 10, 18, 26 или 34) - Выборочное подтверждение (SACK) За этими первыми двумя байтами следует список из 1–4 блоков, которые выборочно подтверждаются , указанный как 32-битные указатели начала / конца.
  • 8,10, TTTT, EEEE (80 бит) - временная метка и эхо предыдущей временной метки (подробнее см. Временные метки TCP)
  • 14,3, S (24 бита) - запрос альтернативной контрольной суммы TCP. [SYN]
  • 15, N, ... (переменные биты) - данные альтернативной контрольной суммы TCP.

(Остальные параметры являются устаревшими, экспериментальными, еще не стандартизированными или не назначенными)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .