Смекни!
smekni.com

Технологии создания сетей (стр. 41 из 62)

рассматриваются функции, решаемые протоколом TCP.

[5]Порт источника (Source Port)

[5]С помощью 16-ти битового поля Порт источника осуществляется идентификация

ULP-источника. Чаще всего порты назначаются протоколом TCP динамически.

Однако существует список номеров "известных" портов, назначенных

общедоступным высокоуровневым протоколам: TELNET, FTP и SWTP. Номера

"известных" портов приводятся в специальном документе "Assigned Numbers" RFC.

[КС 23-11]

[5]Порт назначения (Destination Port)

[5]Поле Порт назначения аналогично по организации полю Порт источника,

содержимое этого поля представляет собой ссылку на высокоуровневый

протокол узла назначения.

[5]Номер последовательности (Sequence Number)

[5]Тридцатидвухбитовое поле Номер последовательности обычно содержит номер

первого байта данных текущего сообщения. Однако в случае, когда установлен

бит SYN (этот бит описан ниже), поле определяет начальный номер

последовательности (ISN - initial sequence number), который необходимо

использовать при приеме. В случае, когда сообщение разделяется на несколько

частей, TCP использует Поле последовательности для корректной сборки

сообщения и гарантированной его доставки высокоуровневому протоколу (ULP).

[5]Подтверждаемый номер (Acknowlegment Number)

[5]В случае, когда установлен бит ACK (определен ниже), в 32-х битовом

поле Подтверждаемый номер содержится номер следующего байта данных,

прием которого ожидается на стороне передатчика данного сообщения.

Начальное значение Номера последовательности не может быть нулевым, но в

нашем примере мы будем использовать для простоты именно это значение.

Так, например, если входящий неповрежденный пакет имеет область данных

размером 40 байтов и значение номера последовательности равно 0, то в

возвращаемом пакете в качестве значения подтверждаемого номера будет

передано 40.

Механизм подтверждения TCP разработан с целью наиболее эффективного

использования полосы пропускания сети. Вместо того, чтобы подтверждать

прием каждой порции данных, в TCP подтверждение задерживается до тех пор,

пока не будет отработана целая серия актов передач, которые затем совокупно

и подтверждаются. Рассмотрим пример. Пусть выполняется четыре передачи из

узла А в узел В, каждая переносит 20 байтов информации. Пусть пакеты имеют

номера последовательности 30, 50, 70 и 90 соответственно. В конце четвертого

акта передачи узел В может сформировать один пакет, подтверждающий корректный

прием всех четырех пакетов узла А. Для этого в поле формируемого узлом В

пакета Подтверждаемый номер помещается значение 110 (90+20). При этом

считается, что подтверждается успешная передача всех байтов вплоть до 109-го.

[5]Смещение данных (Data Offset)

[5]В четырех-битовом поле Смещение данных указывается длина заголовка TCP

в 32-х битовых словах. Длина заголовка является переменной, поскольку размер

поля "Опции" (определено ниже) переменный.

[5]Резервное (Reserved)

[5]Поле (6 бит) является резервным. Все конкретные реализации протокола TCP

должны обеспечить нулевое значение этого поля.

[КС 23-12]

[5]Флаги

[5]Биты флагов используются для передачи управляющей информации. Флаги

применяются, в частности, для установления соединения, завершения соединения

и т.п. Ниже приведена семантика флагов.

Флаг URG (URGent - срочный) указывает, что поле Указатель срочных данных

(Urgent pointer) является значащим.

Флаг ACK (ACKnowledge - подтверждение) указывает, что поле Подтверждаемый

номер является значащим.

Флаг PSH (PuSH, срочные данные). Если флаг установлен, то он указывает

передающему TCP на необходимость выдачи данных в канал, организованный

нижележащими уровнями. Он также указывает принимающему TCP на необходимость

немедленной доставки всех данных, поступающих через этот канал, своему ULP.

Обычно TCP накапливает данные со смежных уровней, а транспортировку их

осуществляет сообразно обстоятельствам. Флаг PSH нарушает этот порядок.

Флаг RST (ReSeT - сброс). Флаг RST используется для перевода транспортного

соединения в исходное состояние, как следствие фиксации одной из сторон

ненормального состояния.

Флаг SYN (SYNchronize - Синхронизация). Данный флаг устанавливается в первых

кадрах, передаваемых обеими сторонами друг другу. Взведенный флаг SYN

указывает на намерение сторон установить и синхронизировать виртуальное

соединение. При этом используется процедура "тройного рукопожатия" ("three

way handshake"). В соответствии с процедурой инициатор установления

соединения передает пакет с установленным флагом SYN, указывая также

некоторое начальное значение (Х) поля Номер последовательности. Приемная

сторона отвечает пакетом с установленными флагами SYN и ACK. При этом в поле

Подтверждаемый номер помещается величина Х+1, а в поле Номер

последовательности - некоторое начальное значение (Y). Инициатор

установления соединения в свою очередь формирует и передает пакет с

установленным флагом ACK и со значением Y+1 в поле Подтверждаемый номер.

В результате соединение считается установленным.

Флаг FIN (FINish - завершение). С помощью флага FIN передатчик указывает на

отсутствие данных для передачи и на намерение завершить транспортное

соединение.

[5]Окно (Window)

[5]16-ти битное поле Окно определяет число байтов данных, начиная с номера,

указанного в поле "Подтверждаемый номер", которые хотел бы принять

передатчик. Данное поле, совместно с полями Номер последовательности и

Подтверждаемый номер, используется при реализации

механизма управления потоком данных, основанного на понятии окна и

заключающегося в следующем.

Предположим, что станция А посылает файл станции В. Станция В, как правило,

имеет окно размером 80 байтов. Станция В только что приняла четыре пакета

от станции А по 20 байтов каждый.

[КС 23-13]

[5]На станции В принятые 80 байтов были быстро обработаны так, что в своем

ответе станция В подтверждает прием 80 байтов, указывая окно 80. Тогда

станция А передает очередные 4 пакета по 20 байтов каждый. Однако на

станции В началась работа с другой задачей, что привело к формированию

ответа, подтверждающего прием 80 байтов с уменьшенным до 40 значением окна.

В условиях отсутствия ресурсов для приема входного потока данных значение

поля Окно может стать даже нулевым.

Следует отметить, что механизм оконной нарезки для управления потоком данных

в TCP обеспечивает полнодуплексную работу. Обе взаимодействующие стороны

могут передавать данные одновременно.

[5]Контрольная сумма (Checksum)

[5]Данное 16-ти битовое поле используется для контроля правильности

передачи заголовка пакета. Если вычисленная контрольная сумма не совпадает

с содержимым данного поля, то пакет уничтожается.

[5]Указатель срочных данных (Urgent pointer)

[5]Данное 16-ти битовое поле содержит смещение относительно значения поля

Номер последовательности, указывающее положение срочных данных. В

действительности значение этого поля указывает на первый байт данных, который

непосредственно следует за последним байтом срочных данных.

Срочные данные (urgent data) представляют собой данные, которые с точки

зрения ULP считаются очень важными. Зачастую, это управляющая информация,

например, сигналы прерывания с клавиатуры. В рамках TCP не предпринимается

никаких действий в отношении этих данных.

[5]Опции (Options)

[5]Поле Опции имеет переменный размер и, если присутствует, то следует за

полем Указатель срочных данных. Поле должно быть выровнено по байтовой

границе. Наиболее распространенная опция - это "максимальный размер сегмента", она

используется в ходе фазы установления соединения для того, чтобы определить

наибольший по размеру сегмент данных, который TCP может принять (от

протокола более высокого уровня - ULP).

[КС 23-14]

[1]Другие важные межсетевые протоколы

[5]Протокол маршрутизации (Routing information protocol - RIP)

[5]Протокол RIP подобно протоколу ICMP обеспечивает работоспособность

протокола IP. С его помощью формируется согласованная информация о сетевых

маршрутах и связности интерсетей, которая используется протокольными

IP-объектами, резидированными в сетевых ЭВМ. В соответствии с протоколом RIP

периодически выполняется передача текущей маршрутной информации. Маршрутная

информация представляет собой список сетей назначения с указанием удаления,

на котором от них находится источник данной информации. Удаление задается

числом переходов (hops) по транзитным сетям до целевой сети (точнее числом

промежуточных маршрутизаторов).

Протокол RIP находит широкое применение, поскольку некоторые его реализации

включены в операционную систему UNIX 4.2 BSD и во многие ее более поздние

диалекты. Несмотря на свою популярность протокол RIP имеет ряд недостатков,

которые могут привести к ограничению его использования в будущем. В частности,

он не приспособлен к работе в больших, сложных интерсетях.

[5]Межсетевой протокол управления (ICMP - Internet Control Message Protocol)

[5]Протокол ICMP сопровождает и обеспечивает работоспособность протокола IP

в части контроля за ошибками сети и ее диагностики. Это связано с тем, что

протокол IP является дейтаграммным и не обеспечивает исполнение указанных

функций. Протокол ICMP в этом смысле дополняет протокол IP, предоставляя

протоколу TCP или другим высокоуровневым протоколам, т.е. ULP, диагностическую

информацию. Некоторые из наиболее общих ICMP-сообщений перечислены ниже.

Истечение таймера (Time Exceeded). Данное сообщение указывает, что счетчик

Ввремя жизни (TTL) пакета принял значение 0, поэтому этот пакет удален.

Цель недоступна (Destination Unreachable). Данное сообщение указывает на то,

что пакет не может быть направлен в узел назначения из-за отсутствия связности