□ Перед фактической передачей данных необходимо установление связи, т.е. запрос на начало сеанса передачи данных источником и подтверждение получателем. После обмена данными сеанс передачи должен быть явно завершен.
□ Доставка информации является надежной, не допускающей дублирования или нарушения очередности получения данных.
□ Возможность управления потоком данных для избежания переполнения и затора.
□ Доставка экстренных данных.
Эти возможности протокола позволяют протоколам верхнего уровня и, соответственно, приложениям, их реализующим, не заботиться о надежности, последовательности доставки и т.д. Таким образом, протоколы приложений, использующие TCP, могут быть значительно упрощены. С другой стороны, это ведет к сложности самого транспортного протокола и, как следствие, к значительным накладным расходам при передаче данных.
TCP-канал представляет собой двунаправленный поток данных между соответствующими объектами обмена — источником и получателем. Данные могут передаваться в виде пакетов различной длины, называемых
Рис. 6.11. Формат TCP-сегмента
Положение каждого сегмента в потоке фиксируется порядковым номером (Sequence Number
), представленным соответствующим полем заголовка и обозначающим номер первого октета сегмента в потоке TCP. Порядковые номера также используются для подтверждения получения: каждый TCP-сегмент содержит номер подтверждения (Acknowledgement Number
), сообщающий отправителю количество полученных от него последовательных данных. Номер подтверждения определяется как номер первого неподтвержденного октета в потоке.
И порядковый номер, и номер подтверждения занимают по 32 бита в заголовке TCP-сегмента, таким образом, их максимальное значение составляет (2³² - 1), за которым следует 0. При установлении связи стороны договариваются о начальных значениях порядковых номеров (Initial Sequence Number, ISN) в каждом из направлений. Впоследствии первый октет переданных данных будет иметь номер (ISN+1).
Управление потоком данных осуществляется с помощью Window
, которое указывает на количество данных, которое адресат готов принять, начиная с октета, указанного в поле Acknowledgement Number
.
Заголовок TCP-сегмента занимает как минимум 20 октетов. Помимо рассмотренных нами порядковых номеров и анонсируемого окна, он содержит ряд других важных полей. Заголовок начинается с двух номеров портов, адресующих логические процессы на обоих концах виртуального канала. Далее следуют порядковый номер и номер подтверждения.
Поле смещения (Offset
) указывает начало данных сегмента. Это поле необходимо, поскольку размер TCP-заголовка имеет переменную величину.
Значение этого поля измеряется в 32-битных словах. Таким образом, при минимальном размере заголовка поле Offset
будет равно 5.
Далее заголовок содержит шесть управляющих флагов Flags
, каждый из которых занимает отведенный ему бит:
URG | Указывает, что сегмент содержит экстренные данные, и поле Urgent pointer заголовка определяет их положение в сегменте. |
ACK | Указывает, что заголовок содержит подтверждение полученных данных В поле Acknowledgement Number. |
PSH | Указывает, что данные должны быть переданы немедленно, не ожидая заполнения сегмента максимального размера. |
RST | Указывает на необходимость уничтожения канала. |
SYN | Указывает, что сегмент представляет собой управляющее сообщение, являющееся частью "тройного рукопожатия" для синхронизации порядковых номеров при создании канала. |
FIN | Указывает, что сторона прекращает передачу данных и желает закрыть виртуальный канал. |
Поле контрольной суммы Checksum
используется для защиты от ошибок. Контрольная сумма вычисляется на основании 12-октетного псевдозаголовка, содержащего, в частности IP-адреса источника и получателя, а также номер протокола. Цель включения в контрольную сумму части заголовка IP та же, что и для протокола UDP — дополнительно защитить данные от получения не тем адресатом.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии