На рис. 10.4 показаны поля TCP-сегмента, которые определяются следующим образом:
§ Порт источника — номер вызывающего порта.
§ Порт назначения — номер вызываемого порта.
§ Порядковый номер — номер, используемый для расположения поступающих данных в правильной последовательности.
§ Номер подтверждения — следующий ожидаемый ТСР-октет.
§ HLEN — количество 32-разрядных слов в заголовке.
§ Зарезервированое (поле) — все биты установлены в значение 0.
§ Биты кода — служебные функции (например, установка и завершение сеанса).
§ Окно — количество октетов, с которым отправитель готов согласиться.
§ Контрольная сумма — расчетная контрольная сумма заголовка и полей данных.
§ Указатель срочных данных — указывает конец срочных данных.
§ Опция — в настоящее время определена одна: максимальный размер ТСР-сегмента.
§ Данные — данные протокола более высокого уровня.
Номера портов
Для передачи информации на более высокие уровни как протокол TCP, так и протокол UDP используют номер порта, или так называемого сокета (рис. 10.5). Номера портов используются для отслеживания различных разговоров, одновременно ведущихся в сети.
Разработчики прикладного программного обеспечения договорились пользоваться широко известными номерами портов, определенными в документе RFC 1700. Например, любой обмен, связанный с пересылкой файлов по протоколу FTP, использует стандартный номер порта 21 (см. рис. 10.5).
Переговорам, не связанным с приложениями, имеющими общеизвестный номер порта, эти номера присваиваются произвольным образом, но при этом они выбираются из конкретного диапазона значений. Как показано в табл. 10.1, эти номера портов используются в TCP-сегменте в качестве адресов источника и пункта назначения.
Таблица 10.1. Зарезервированные номера портов в протоколах TCP и UDP
Десятичный номер | Ключевое слово | Описание |
— | Зарезервирован | |
1-4 | — | He назначен |
rje | Удаленный ввод заданий | |
echo | Эхо | |
discard | Отбросить | |
users | Активные пользователи | |
daytime | Днем | |
netstat | Кто активен, или сетевая статистика | |
quote | Кавычки дня | |
chargen | Генератор символов | |
ftp-data | Протокол FTP (данные) | |
ftp | Протокол FTP | |
telnet | Терминальное соединение | |
smtp | Простой протокол передачи почтовых сообщений (SMTP) | |
time | Время суток | |
rip | Протокол указания местонахождения ресурсов (RLP) | |
nameserver | Сервер имен хост-машин | |
nickname | Кто? | |
domain | Сервер имен домена (DNS) | |
bootps | Сервер задачи начальной загрузки | |
bootpc | Клиент задачи начальной загрузки | |
tftp | Протокол TFTP | |
— | Любая частная служба подключения к внешним сервисам по телефонной линии | |
— | Любая частная служба удаленного ввода задания | |
finger | Служба определения активных клиентов в сети | |
ntp | Протокол сетевого времени (NTP) | |
133-159 | — | Не назначены |
160-223 | — | Зарезервированы |
224-241 | — | Не назначены |
242-255 | — | Не назначены |
В протоколах TCP и UDP некоторые номера портов зарезервированы, но приложения могут быть написаны так, что не поддерживают их. Номера портов имеют следующие выделенные диапазоны значений.
§ Номера меньше 255 предназначаются для приложений общего пользования.
§ Номера от 255 до 1023 отданы компаниям для продаваемых приложений.
§ Использование номеров свыше 1023 не регламентируется.
Конечная система использует номер порта для выбора соответствующего приложения.
Как показано на рис. 10.6, номер порта источника происхождения — обычно это какой-нибудь номер больше 1023 — присваивается динамически хост-машиной отправителя.