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 работает без подтверждения соединения. Такие протоколы требуют небольших накладных расходов и работают быстрее, но их рассматривают как упрощенные и ненадежные. TCP и другие протоколы, ориентированные на соединение, работают более медленно, но следят за состоянием соединения между отравителем и получателем и позволяют восстановить утерянные данные путем запроса на повторение доставки или уведомления о постоянной ошибке.
Так протокол TCP наблюдает за процессом доставки, и требует проверки данных, то он увеличивает накладные расходы. Поля же UDP-заголовка довольно просты.
¨ Порт отправителя (Source Port),
¨ Порт получателя (Destination Port),
¨ Длина сообщения (Message Length),
¨ Контрольная сумма,
¨ Протокол следующего уровня.
Так же, как и в TCP, в UDP индивидуальные соединения различаются номерами портов. Номера портов от 0 до 1023 отведены для зарезервированных приложений. Номера портов от 1024 до 65536 доступны для ваших приложений. Следущая таблица показывает номера портов, используемых наиболее известными приложениями.
Port |
Description |
53 |
Domain Name System |
69 |
Trivial File Transfer Protocol |
111 |
Remote Procedure Call |
137 |
NetBIOS name service |
138 |
NetBIOS datagram |
161 |
Simple Network Management Protocol |
Многие приложения резервируют как TCP-, так и UDP-порты, хотя на практике используется либо тот, либо другой тип соединений.
Особенностью разработки приложений на основе протокола TCP является необходимость поддерживать буферы данных. Так как TCP обещает сохранить целостность данных, он вынужден хранить данные в буфере (на стороне отправителя) до тех пор, пока не будет получено подтверждение о их получении. Получатель также вынужден использовать временный буфер, чтобы убедиться, что последовательность полученных пакетов не нарушена.
Подсистема Windows, управляющая TCP, отвечает за обмен данными между вашим приложением и сетевым устройством. Перед тем, как отправить данные получателю, система накапливает их в буфере. Затем она пытается отправить все содержимое буфера в рамках одного пакета (Data1 и Data 2 на рисунке ниже).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.