Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Протокол управления передачей TCP

ПРОЦЕДУРЫ ПРОТОКОЛА ТфОП | НАЦИОНАЛЬНЫЕ СПЕЦИФИКАЦИИ ПРОТОКОЛА ТфОП | ПРОТОКОЛ НАЗНАЧЕНИЯ НЕСУЩИХ КАНАЛОВ | ПРОТОКОЛ УПРАВЛЕНИЯ ТРАКТАМИ ИНТЕРФЕЙСА V5.2 | ПРОТОКОЛ ЗАЩИТЫ V5.2 | ПРОТОКОЛ УПРАВЛЕНИЯ | МОДЕЛЬ ВЗАИМОДЕЙСТВИЯ ОТКРЫТЫХ СИСТЕМ | СЕТИ С КОММУТАЦИЕЙ ПАКЕТОВ Х.25 | АРХИТЕКТУРА ПРОТОКОЛА Х.25 | ПРИМЕНЕНИЯ ПРОТОКОЛА Х.25 |


Читайте также:
  1. CONGESTION_CONTROL. Это сообщение используется для управления потоком сообщенийUSER_INFORMATION.
  2. III. Электронный блок управления
  3. Quot;Звезда Смерти", капитанский мостик, центр управления
  4. Quot;Звезда Смерти", капитанский мостик, центр управления
  5. Quot;Звезда Смерти", капитанский мостик, центр управления
  6. Quot;Звезда Смерти", капитанский мостик, центр управления
  7. Quot;Звезда Смерти", сектор "тета", пост управления суперлазером

Протокол управления передачей (TCP — Transmission Control Protocol) приблизительно соответствует транспортному уровню модели OSI, но содержит и некоторые функции сеансового уров­ня. С его помощью реализуется организация сеанса связи между двумя пользователями в сети. Кроме того, в его функции включа­ется исправление ошибок и, что очень важно, преобразование ин­формации к виду дейтаграмм, передача дейтаграмм и отслежива­ние их прохождения по сети. TCP служит также для организации повторной передачи потерянных дейтаграмм и обеспечения их надежности. Наконец, в компьютере-адресате TCP извлекает со­общение из дейтаграммы и направляет его прикладной програм­ме-адресату. Протокол TCP, как и протокол дейтаграммы пользо­вателя UDP, считаются протоколами поставщика услуг, причем TCP является протоколом, ориентированным на соединение, в то время как UDP — не ориентированный на соединение протокол.

Оба они опираются на услуги протокола IP, но могут транспортиро­ваться через сетевые уровни Х.25, ISDN или Frame Relay.

Рассматриваемые в параграфе 10.7 прикладные протоколы FTP, TELNET, NNTP и дp. помещают данные в протокольные бло­ки данных PDU, уже упоминавшиеся в этом и в первом томах. В зависимости от контекста, на разных уровнях для этих PDU ис­пользуются различные термины. Иногда блок данных PDU, пере­даваемый от транспортного уровня TCP к сетевому уровню IP, на­зывается «сегментом». Термин «дейтаграмма» используется при­менительно к PDU, передаваемым из сетевого уровня IP в Ether­net. В протоколах, не ориентированных на соединение, например, в UDP, дейтаграммы зачастую называются «блоками данных», пе­редаваемыми из IP на уровень звена данных. Если блок данных прошел через разные уровни и передается на физический уровень, он считается «кадром». Если блок данных прошел через сеть, он называется «пакетом». Эти термины и определения следует рас­сматривать не как охватывающий все и вся стандарт, а как попыт­ку согласования различных терминологий, а более откровенно — как расплату за ранее принятое автором опрометчивое решение со­брать в одной монографии разнообразные телекоммуникационные протоколы, терминология для каждого из которых имеет свою ис­торически обусловленную специфику.

Функционально, впрочем, все выглядит весьма просто. Для создания дейтаграммы протокол TCP добавляет к поступающим от прикладного уровня данным заголовок, содержащий управляю­щую информацию. Протокол IP добавляет к дейтаграмме свой за­головок, содержащий дополнительные инструкции. Локальная сеть вводит в дейтаграмму свою управляющую информацию в виде еще одного заголовка. Таким образом, дейтаграмма включает в себя три отдельных заголовка, каждый из которых содержит управляющую информацию различного назначения: Ethernet-заголовок, IP-за­головок и TCP-заголовок. Структура TCP-заголовка изображена на рис.10.2.

Поля порта источника (source port) и порта назначения (des­tination port) содержат номера портов взаимодействующих про­грамм. Это связано с тем, что адресация на уровне протокола TCP предназначена, скорее, для передачи дейтаграмм между логиче­скими объектами внутри компьютера, чем для фактического со­единения пользователя с сетью. Более того, и рассматриваемый в следующем параграфе адрес IP тоже не является физическим адресом, а характеризует соединение с сетью и идентифицирует поль­зователя. Поэтому номера портов назначения и источника пред­ставляют собой числа длиной 16 битов, идентифицирующие при­ложения, которые используют услуги TCP (например, FTP, TEL­NET, протоколы электронной почты SMTP, POP3 и т.п.). Номера порта от 0 до 255 определены заранее и не могут задаваться опера­торами, а номера после 255 могут произвольно определяться для каждой конкретной сети. Примеры фиксированных номеров пор­тов, определяемые протоколом TCP: данные FTP — 20; управле­ние FTP - 21; TELNET - 23; протокол SMTP - 25; сервер имен главного компьютера — 42; сервер имен домена — 53; почтовый про­токол РОР2 - 109.

Порт источника (16 битов) Порт назначения (16 битов)
Порядковый номер (32 бита)
Номер подтверждения (32 бита)
Смещение данных (4 бита) Резерв (6 битов) U R G А С К Р S Н R S Т S Y N F I N Размер окна (16 битов)
Контрольная сумма (16 битов) Указатель срочности (16 битов)
Опции (перемещенные) Накопление
Данные (перемещенные)
                 

 

Рис. 10.2. Заголовок TCP

Порядковый номер блока данных (sequence number) длиной 32 бита используется для проверки того, что все блоки данных по­лучены. Если принятый порядковый номер не соответствует оче­редности и срабатывает таймер TCP, все неподтвержденные блоки данных должны быть переданы повторно. Следует отметить, что предусматривается только положительное подтверждение, а отри­цательных подтверждений не существует. Номер подтверждения (acknowledgement number) следует за порядковым номером и иден­тифицирует следующий ожидаемый порядковый номер.

Поле смещения данных (4 бита) определяет, где начинаются данные заголовка TCP, т.е. сколько 32-битовых слов находится в заголовке, предшествующем полю данных пользователя.

Несколько однобитовых полей, следующих за полем смеще­ния данных, используются для обработки блока данных TCP. Бит срочности URG обозначает, что указатель срочности сообщения содержит значащую информацию. Указатель срочности представ­ляет собой поле 16 битов, идентифицирующее смещение в поле данных пользователя, которое содержит срочные данные. Бит под­тверждения АСК указывает на присутствие подтверждения в поле номера подтверждения и уведомляет приемное устройство о том, что этот номер подтверждает ранее полученные последовательно­сти. Бит внеочередной обработки PSH аналогичен биту срочно­сти. Он уведомляет принимающий главный компьютер о том, что полученный блок данных должен обрабатываться немедленно. Бит восстановления RST вызывает восстановление сеанса. Обычно это означает, что все очереди„связанные с сеансом, отключаются и все присоединенные счетчики и таймеры устанавливаются в нуль. Бит синхронизации SYN используется, когда устанавливается логиче­ское соединение, и указывает на то, что порядковые номера долж­ны быть синхронизированы. Бит завершения FIN указывает на то, что данных для посылки больше нет и сеанс должен быть закрыт. Затем сеанс должен быть завершен, а ресурсы освобождены для дру­гого сеанса.

Поле окна (16 битов) используется в течение установления сеанса. Стороны должны согласовывать, какое число блоков дан­ных может быть послано до подтверждения. Это число называется размером окна и определяется размером очереди и объемом обра­ботки данных, уже полученных от других сеансов. Размер окна не может быть изменен после того, как сеанс установлен.

Поле контрольной суммы (checksum), длиной 16 битов ис­пользуется для контроля ошибок в заголовке, а также в пользова­тельских данных. В следующем параграфе будет показано, что в IP контрольная сумма не контролирует пользовательские данные IP, а проверяет только заголовок.

Поле опций может содержать самую разную информацию, например, максимальный размер ТСР-дейтаграммы. В конце за­головок дополняется нулями до размера, кратного 32-битовому слову.

В заключение данного параграфа предлагается тезисное опи­сание некоторых процедур протокола TCP.

Соединение устанавливается с помощью команды OPEN с аргументами в виде IP-адреса и номера порта удаленного процес­са. Команда OPEN используется в обоих случаях: когда процесс намерен передавать информацию и когда он ожидает поступления информации. Процедура установления соединения использует специальный флаг синхронизации SYN и состоит из трех тактов квити­рующих сообщений, позволяющих синхронизировать потоки дан­ных. Завершение соединения осуществляется обменом пакетами, содержащими команду FIN.

Для проверки того, что все данные, переданные на уровень TCP, отправлены, существует функция «проталкивания пакета» — PUSH-функция. Назначение этой функции и PUSH-флага состо­ит только в «проталкивании» данных к пользователю, минуя меха­низм кэширования и не производя никаких дополнительных груп­пировок или других действий над данными.

Механизм присвоения порядкового номера каждому переда­ваемому пакету данных и проверки подтверждения доставки ана­логичен уже рассмотренным ранее в этой книге подобным меха­низмам. Этот механизм позволяет протоколу TCP работать с по­врежденными, потерянными, дублированными, или поступивши­ми с изменением порядка следования пакетами.


Дата добавления: 2015-11-04; просмотров: 42 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
ПРОТОКОЛЫ TCP/IP И МОДЕЛЬ OSI| ПРОТОКОЛЫ UDP и ICMP

mybiblioteka.su - 2015-2024 год. (0.006 сек.)