| 
   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).
Ссылка на скачивание - внизу страницы.