Flag |
Description |
6 bits |
Зарезервированы для будущего использования. Должны быть нулями. |
URG (1-bit) |
Помечает пакет, содержащий срочные данные (urgent data) |
ACK (1-bit) |
Подтверждение получения (Acknowledge) |
PUSH (1-bit) |
Указывает, что данные надо немедленно передать (push) приложению |
RESET (1-bit) |
Установка TCP-соединения в исходное состояние (Reset) |
SYN (1-bit) |
Указывает, что этот пакет синхронизирует сессию (start-of session) |
FIN (1-bit) |
Указывает, что сессия завершается с помощью FIN-пакетов |
Для учреждения сессии, слежения за ее статусом и завершения используется специальный протокол рукопожатия (handshaking protocol). Вот его фазы:
¨ Открывающее рукопожатие (opening handshake),
¨ Session communication,
¨ Закрывающее рукопожатие (closing handshake).
Каждая фаза требует установить флаги в определенном порядке. Открывающее рукопожатие часто называется трехсторонним, так как для установки соединения требует выполнения 3 шагов.
¨ Хост, инициирующий соединение, посылает SYN-флаг для того. чтобы обозначить начало сессии.
¨ Хост-получатель посылает два флага SYN, ACK, означающие, что он принял сигнал начала сессии.
¨ Хост-отправитель посылает ACK-флаг. Это означает, что сессия открыта и готова работать с пакетами.
После открытия сессии флаги ACK в пакетах означают, что устройство подтверждает их получение и порядок не нарушен. Закрытие сессии осуществляется по протоколу закрывающего рукопожатия с помощью FIN-пакетов:
1. Хост, инициирующий закрытие, посылает FIN-флаг.
2. Хост-получатель посылает в одном пакете FIN и ACK-флаги.
3. Хост-отправитель посылает ACK-флаг. Это означает, что сессия закрыта.
Следующая временная диаграмма иллюстрирует описанные процедуры обмена флагами.
Трем фазам сессии соответствуют определенные состояния. Статус сессии указывает ее позицию в последовательности событий (процедур рукопожатия). Они одинаково применимы как к клиенту, так и к серверу.
State |
Description |
CLOSED |
Сессия не активна |
LISTEN |
Устройство ожидает прихода данных в определенный порт |
SYN-SENT |
Устройство послало SYN-флаг и ожидает подтверждения начала сессии. |
SYN-RECEIVED |
Устройство послало SYN-ACK флаги и ждет подтверждения (ACK flag). |
ESTABLISHED |
Оба устройства завершили рукопожатие и могут обмениваться пакетами. |
FIN-WAIT-1 |
Устройство послало FIN-флаг, инициирующий закрытие сессии. |
FIN-WAIT-2 |
Устройство получило FIN-флаг и возвратило FIN-ACK флаги. |
LAST-ACK |
Устройство послало FIN-ACK флаги и ждет подтверждения закрытия сессии |
TIME-WAIT |
После LAST-ACK устройство ждет установленный квант времени, затем закрывает порт и сессию |
Утилита Windows netstat.exe позволяет увидеть список текущих статусов всех TCP- и UDP-портов рабочей станции или сервера. Запустите ее из командной строки вашей системы и вы увидите список с заголовком Active Connections и колонками: Proto, Local Address, Foreign Address и State. В нем, как нетрудно догадаться, отражено состояние (State) всех активных соединений от порта Local Address к порту Foreign Address.
Другим протоколом высокого уровня, часто используемым в IP-соединениях, является UDP (User Datagram Protocol). В отличие от TCP, UDP обеспечивает обеспечивает прохождение одного пакета информации между сетевыми устройствами в одну сторону. При этом не надо устанавливать соединение (connectionless path), поддерживать флаги и состояния. Поля UDP-заголовка довольно просты.
¨ Порт отправителя (Source Port),
¨ Порт получателя (Destination Port),
¨ Длина сообщения (Message Length),
¨ Контрольная сумма,
¨ Протокол следующего уровня.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.