RFC 793 http://www.cis.ohio-state.edu/htbin/rfc/rfc793.html (перевод на русский язык - PDF) RFC 1072 http://www.cis.ohio-state.edu/htbin/rfc/rfc1072.html RFC 1693 http://www.cis.ohio-state.edu/htbin/rfc/rfc1693.html RFC 1146 http://www.cis.ohio-state.edu/htbin/rfc/rfc1146.html RFC 1323 http://www.cis.ohio-state.edu/htbin/rfc/rfc1323.html Протокол
TCP обеспечивает надежную доставку потоков и сервис поддержки
виртуальных соединений за счет использования подтверждений и повторной
передачи пакетов при возникновении необходимости. Структура заголовка TCP показана на рисунке. 4 | 10 | 16 | 32 | Порт отправителя | Порт получателя | Порядковый номер | Номер подтверждения | Смещ. | Резерв | U | A | P | R | S | F | Окно | Контрольная сумма | Указатель важности | Опции и заполнение | Данные | Структура заголовка TCP Порт отправителя Номер порта-отправителя. Порт получателя Номер порта-получателя. Порядковый номер Порядковый
номер первого октета в данном сегменте (за исключением присутствия
SYN). При наличии SYN поле порядкового номера содержит изначальный
порядковый номер (Initial Sequence Number - ISN) и первый октет имеет
номер ISN+1. Номер подтверждения Если
бит управления ACK установлен (1), это поле содержит значение
следующего порядкового номера, который отправитель сегмента ожидает
получить. После организации соединения значение этого поля
устанавливается во всех случаях. Смещение данных 4-битовое
поле, указывающее число 32-битовых слов в заголовке TCP. После
заголовка размещаются данные, поэтому поле указывает на начало данных в
пакете. Заголовок пакетов TCP всегда имеет размер, кратный 32 битам. Резерв Зарезервированное поле размером 6 битов. Биты управления 6 битовое поле, содержащее флаги управления: U (URG) - значимое поле указателя важности; A (ACK) - значимое поле подтверждения; P (PSH) - функция push; R (RST) - сброс соединения; S (SYN) - синхронизация порядковых номеров; F (FIN) - нет данных от отправителя. Окно 16-битовое
поле, содержащее число октетов данных, которые отправитель данного
сегмента будет воспринимать, начиная с октета, указанного в поле
подтверждения. Контрольная сумма 16-битовое
значение контрольной суммы, вычисляемой для 16-битовых слов заголовка и
текста. Если сегмент содержит нечетное число октетов в заголовке /или
тексте, последние октеты дополняются справа 8 нулями для выравнивания
по 16-битовой границе. Биты заполнения (0) не передаются в сегменте и
служат только для расчета контрольной суммы. При расчете контрольной
суммы значение самого поля контрольной суммы принимается равным 0. Указатель важности 16-битовое
значение положительного смещения от порядкового номера в данном
сегменте. Это поле указывает порядковый номер октета, с которого
начинаются важные (urgent) данные. Поле принимается во внимание только
для пакетов с установленным флагом U. Опции Опции
передаются в конце заголовка TCP и всегда имеют размер, кратный 8
битам. При расчете контрольной суммы пакета значения опций принимаются
во внимание. Опции могут начинаться на любой границе октета. Существуют два формата опций: -
Однооктетные опции -
Многооктетные опции, содержащие поля типа опции (1 октет), ее размера (1 октет) и собственно опций. Поле длины опций учитывает все субполя опций - тип, размер и сами опции. Список
опций может закончиться раньше, нежели указывает поле смещения данный,
поэтому значения битов после поля End-of-Option должны быть заполнены
нулями. Протокол TCP Должен реализовать все опции. Данные Поле данных TCP или протоколов вышележащих уровней.
|