На рис. 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 — присваивается динамически хост-машиной отправителя.
