размер
10.8.3 Использование полей заголовка в ответе на запрос соединения
В разрешающем ответе на запрос соединения оба флага (SYN и ACK) равны 1. Отвечающая система указывает начальный порядковый номер в соответствующем поле, а размер приемного окна — в поле
Запрос на соединение может быть отклонен посредством указания в ответе флага сброса (RST) со значением 1.
10.8.4 Выбор начального порядкового номера
Спецификация TCP предполагает, что во время установки соединения каждая из сторон выбирает
Представим, что произойдет при крахе системы. Предположим, что пользователь открыл соединение как раз перед крахом и отправил небольшое количество данных. После восстановления система уже не помнит ничего из того, что делалось перед крахом, включая уже запущенные соединения и присвоенные номера портов. Пользователь повторно устанавливает соединение. Номера портов не совпадают с первоначальными присваиваниями, и некоторые из них, возможно, уже используются другими соединениями, установленными за несколько секунд до краха.
Поэтому другая сторона в самом конце соединения может не знать о том, что ее партнер прошел через крах и его работа затем была восстановлена. Все это приведет к серьезным сбоям в работе, особенно когда проходит долгое время, пока старые данные не пройдут по сети и не смешаются с данными от вновь созданного соединения. Выбор по таймеру старта с обновлением (fresh start) позволяет исключить подобные проблемы. Старые данные будут иметь иную нумерацию, чем диапазон порядковых номеров нового соединения. Хакеры при фальсификации IP-адреса источника для доверительного хоста пытаются получить доступ к компьютерам с помощью указания в сообщении предсказуемого начального порядкового номера. Криптографическая функция хеширования на основе внутренних ключей служит лучшим способом для выбора защищенных начальных номеров.
10.8.5 Общепринятое использование полей
При подготовке заголовка TCP к пересылке порядковый номер первого октета передаваемых данных указывается в поле
Номер следующего октета, ожидаемого от партнера по соединению, заносится в поле
Если приложение указывает на операцию выталкивания в TCP, то флаг PUSH устанавливается в 1. Принимающая TCP должна отреагировать на этот флаг быстрой доставкой данных в приложение, как только отправитель захочет их переслать.
Флаг URGENT (срочность) при значении 1 предполагает срочную пересылку данных, а соответствующий указатель должен ссылаться на последний октет срочных данных. Типичным использованием срочных данных является пересылка из терминала сигналов на отмену или прерывание.
Срочные данные часто называют
Флаг RESET (сброс) имеет значение 1, когда следует аварийно завершить соединение. Этот же флаг устанавливается в ответе при поступлении сегмента, не связанного ни с одним из текущих соединений TCP.
Флаг FIN устанавливается в 1 для сообщений о закрытии соединения.
10.8.6 Контрольная сумма
Контрольная сумма IP предназначена только для заголовка IP, а контрольная сумма TCP вычисляется для всего сегмента, а также для псевдозаголовка, созданного из заголовка IP. Во время вычисления контрольной суммы TCP соответствующее поле имеет значение 0. На рис. 10.15 показан псевдозаголовок, очень напоминающий тот, что используется в контрольной сумме UDP.
Рис. 10.15. Поле псевдозаголовка включается в контрольную сумму TCP
Длина TCP вычисляется сложением длины заголовка TCP с длиной данных. Контрольная сумма TCP является
10.9 Пример сегмента TCP
Рис. 10.16, протокол работы анализатора
Рис. 10.16. Отображение заголовка TCP анализатором Sniffer
Анализатор