Таблица N 6. Формат заголовка пакета протокола TCP
Поле |
Число бит |
|
2 |
3 |
|
Source Port |
16 |
|
Destination Port |
16 |
|
Sequence Number |
32 |
|
Acknowledgment Number |
32 |
|
Data Offset |
4 |
|
Reserved |
6 |
|
Control Bits |
6 |
|
Window |
16 |
|
Checksum |
16 |
|
Urgent Pointer |
16 |
|
Options |
||
Padding |
Далее следуют октеты пользовательских данных.
3.3. "Source Port" - номер порта отправителя.
3.4. "Destination Port" - номер порта назначения.
3.5. "Sequence Number" - порядковый номер. Порядковый номер первого октета данных в сегменте при отсутствии флага SYN. Если в сегменте присутствует бит SYN, поле номера содержит значение начального порядкового номера (ISN), а первый октет данных имеет номер ISN + 1.
3.6. "Acknowledgment Number" - номер подтверждения. Если бит ACK установлен, это поле содержит значение следующего порядкового номера, который отправитель сегмента ожидает получить. После организации соединения это значение передается всегда.
3.7. "Data Offset" - смещение данных. Число 32-битовых слов в заголовке TCP. Это значение указывает начало данных в сегменте. Заголовок TCP (даже при наличии опций) имеет длину, кратную 32 битам.
3.8. "Reserved" - резервное поле. Зарезервировано для использования в будущем и имеет нулевое значение.
3.9. "Control Bits" - биты управления:
URG - указывает на значимость поля Urgent Pointer;
ACK - указывает на значимость поля Acknowledgment Number;
RST - сброс (Reset) соединения;
SYN - синхронизация порядковых номеров;
FIN - у отправителя больше нет данных.
3.10. "Window" - окно. Число октетов данных, начиная с указанного в поле подтверждения, которые отправитель данного сегмента ожидает принять.
3.11. "Checksum" - контрольная сумма. Контрольная сумма представляет собой число единиц в заголовке и данных, просуммированное по модулю "16" с добавлением "1". Если сегмент содержит в заголовке и данных нечетное число октетов, справа добавляется октет нулей для выравнивания по 16-битовой границе. Биты заполнения не передаются как часть сегмента и используются только для расчета контрольной суммы. При расчете контрольной суммы значение поля "Checksum" принимается нулевым. Контрольная сумма учитывает также 96-битовый псевдозаголовок, предшествующий заголовку TCP. Этот псевдозаголовок содержит адреса отправителя и получателя, тип протокола и длину опций TCP. Перечисленные поля помогают защитить TCP против сегментов с ошибочной маршрутизацией. Эта информация транспортируется протоколом IP и передается через интерфейс TCP-сетевой уровень в качестве аргументов или результатов вызовов из TCP на уровень IP. Поле "Длина опций TCP" содержит размер заголовка TCP и поля данных в октетах (это не явно передаваемое, а расчетное значение), 12-октетный псевдозаголовок при расчете длины не учитывается.
3.12. "Urgent Pointer" - указатель срочности. Это поле содержит указатель на срочные данные - позитивное смещение начала таких данных от порядкового номера данного сегмента. Это поле используется только для сегментов с установленным флагом URG.
Опции размещаются в конце заголовка TCP и могут занимать целое число октетов. Все опции учитываются при расчете контрольной суммы. Опции начинаются на любой границе октета. Существует два варианта форматирования опций:
1) однооктетное поле признака опций;
2) однооктетное поле признака опций, поле размера опций (1 октет) и собственно опции.
Поле размера опций учитывает и 2 октета полей признака опций и самого поля длины, а также размер опций, как таковых. Поле опций может быть короче, чем указывает поле смещения данных. Неиспользуемые биты поля опций заполняются нулями. В протоколе TCP используются следующие опции:
End of Option List (0) - этот код говорит о завершении списка опций. Конец списка опций может не совпадать с концом заголовка TCP, заданным полем Data Offset. Код используется как индикатор завершения всех опций, а не какой-то конкретной, и использование его требуется лишь в тех случаях, когда конец опций не совпадает с концом заголовка TCP.
No-Operation (1) - этот код используется между опциями (например, для их выравнивания по границе слова).
Maximum Segment Size (2) - максимальный размер сегмента. Эта опция имеет длину 16 битов. Если эта опция присутствует, она задает максимальный размер принимаемого сегмента для той стороны TCP, которая передает данный сегмент. Это поле передается только с начальным запросом организации соединения (сегмент с флагом SYN). Если эта опция не задана, допускается использование сегментов любого размера.
3.14. "Padding" - заполнение. Поле имеет переменную длину. Заполнение заголовка TCP используется для выравнивания размера заголовка по 32-битовой границе. Для заполнения неиспользуемых битов служит "0".
3.15. Состояния соединения - LISTEN, SYN-SENT, SYN-RECEIVED, ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK, TIME-WAIT и фиктивное состояние CLOSED.
LISTEN - ожидание запроса на соединение от любого удаленного TCP и порта.
SYN-SENT - ожидание соответствующего запроса на соединение после передачи своего запроса.
SYN-RECEIVED - ожидание подтверждения соединения после передачи и приема запросов на организацию соединения.
ESTABLISHED - соединение действует и принятые данные могут быть доставлены пользователю. Это нормальное состояние для процесса обмена данными через соединение.
FIN-WAIT-1 - ожидание запроса на разрыв соединения от удаленного TCP или подтверждения для ранее переданного запроса на разрыв соединения.
FIN-WAIT-2 - ожидание запроса на разрыв соединения от удаленного TCP.
CLOSE-WAIT - ожидание запроса на разрыв соединения от локального пользователя.
CLOSING - ожидание подтверждения от удаленного TCP для запроса на разрыв соединения.
LAST-ACK - ожидание подтверждения для запроса на разрыв соединения, переданного удаленному TCP (это подтверждение включается в запрос на разрыв соединения от удаленной стороны).
TIME-WAIT - ожидание пока пройдет достаточно времени, чтобы быть уверенным в приеме удаленным TCP подтверждения для его запроса на разрыв соединения.
CLOSED - соединения уже нет (разорвано).
Соединение TCP переходит от одного состояния к другому в ответ на события, к числу которых относятся пользовательские вызовы, входящие сегменты и тайм-ауты.
3.16. Пользовательские команды протокола TCP приведены в таблице N 7.
- Гражданский кодекс (ГК РФ)
- Жилищный кодекс (ЖК РФ)
- Налоговый кодекс (НК РФ)
- Трудовой кодекс (ТК РФ)
- Уголовный кодекс (УК РФ)
- Бюджетный кодекс (БК РФ)
- Арбитражный процессуальный кодекс
- Конституция РФ
- Земельный кодекс (ЗК РФ)
- Лесной кодекс (ЛК РФ)
- Семейный кодекс (СК РФ)
- Уголовно-исполнительный кодекс
- Уголовно-процессуальный кодекс
- Производственный календарь на 2025 год
- МРОТ 2024
- ФЗ «О банкротстве»
- О защите прав потребителей (ЗОЗПП)
- Об исполнительном производстве
- О персональных данных
- О налогах на имущество физических лиц
- О средствах массовой информации
- Производственный календарь на 2024 год
- Федеральный закон "О полиции" N 3-ФЗ
- Расходы организации ПБУ 10/99
- Минимальный размер оплаты труда (МРОТ)
- Календарь бухгалтера на 2024 год
- Частичная мобилизация: обзор новостей