Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


ПРОТОКОЛ УПРАВЛЕНИЯ ПЕРЕДАЧЕЙ TCP



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

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

Поля порта источника (source port) и порта назначения (destination port) содержат номера портов взаимодействующих программ.

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

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

Номер подтверждения (acknowledgement number) следует за порядковым номером и идентифицирует следующий ожидаемый порядковый номер.

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

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

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

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

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

МЕЖСЕТЕВОЙ ПРОТОКОЛ IP

Как уже подчеркивалось ранее протокол IP вовсе не обязателен для TCP. Протокол TCP может использовать для доставки данных почти любой протокол сетевого уровня, если тот способен обеспечить услуги маршрутизации и поддерживает интерфейс между двумя уровнями. Тем не менее, информация маршрутизации для данных от TCP, которые должны транспортироваться через сети, в подавляющем большинстве приложений обеспечивается протоколом IP. И это притом, что сам протокол не исправляет ошибки, а только сообщает об ошибках в исходящие хост-компьютеры с помощью рассмотренного в предыдущем параграфе протокола ICMP, размещаемого на том же уровне 3 в хост-компьютере.

Структура IP-заголовка и его поля представлены на рис. 5. Поле «версия» (version, 4 бита) в заголовке IP предназначено для идентификации версии IP, использованной для создания заголовка. Если заголовок IP был создан в сети, использующей более новую версию IP, он может содержать информацию, которая не распознается более старой версией IP. В этом случае принимающая сеть, работающая со старой версией IP, уведомляется о необходимости пропустить нераспознаваемые поля.

Рис. 5. Заголовок IP

Поле «длина заголовка» (IHL — Internet Header Length, 4 бита) содержит длину заголовка IP-пакета в 32-разрядных словах. Значение этого поля не может быть меньше 5.

В поле «тип обслуживания» (TOS — Type of Service, 8 битов) указывается требуемое качество обслуживания данных. В других протоколах это поле часто называют качеством обслуживания (QoS). Данное поле включает четыре параметра, содержащих информацию о приоритете дейтаграммы, о возможности поступления последовательности таких дейтаграмм с регулярными интервалами, о критичности ошибок, о важности скорости доставки дейтаграммы и, наконец, об относительной важности скорости по сравнению с надежностью на случай конфликта между двумя этими критериями. Введены следующие обозначения: РРР — приоритет, D — атрибуты задержки, Т — атрибуты пропускной способности, R — атрибуты надежности. Трехбитовый код РРР указывает уровень приоритета блока данных, применяемый для управления перегрузкой (блоки данных с меньшим приоритетом могут быть отброшены, в то время как блокам данных с более высоким приоритетом разрешается прохождение) и для управления потоком. Поле задержки D указывает, какова допустимая задержка при передаче пакета. Данное поле может принимать два значения: нормальная задержка и малая задержка. Значение 1 соответствует малой задержке. Поле пропускной способности Т указывает, какова должна быть пропускная способность средств доставки данного блока данных. Например, если блок данных сгенерирован приложением реального времени (интерактивный режим), приложение может запросить ускоренную доставку блоков данных, что требует высокой пропускной способности средств доставки. Допустимые значения — нормальная или высокая пропускная способность. Поле надежности R используется аналогичным образом, указывая, требует ли этот блок данных высокой или обычной надежности обслуживания.

Поле «общая длина» (Total length, 16 битов), аналогичное полю длины TCP-заголовка, содержит измеряемую в байтах суммарную длину дейтаграммы, включая длину IP-заголовка и данных. Этот параметр позволяет узлам определять длину поля данных путем вычитания из его значения длины заголовка. Максимально допустимая длина всей дейтаграммы целиком, считая байты, входящие в заголовок дейтаграммы, и данные, составляет 65535 байтов, т. е. длина дейтаграммы может достигать 216— 1 байтов. Однако длинные дейтаграммы не используются при работе IP-протокола. Все хост-компьютеры и шлюзы сети, как правило, работают с длинами до 576 байтов. Число 576 выбрано из тех соображений, что этой длины пакета вполне достаточно для того, чтобы передать заголовок (64 байта) и блок данных (длиной 512 байтов).

Поле «идентификатор» (Identification, 16 битов) представляет собой уникальный номер, характеризующий конкретную дейтаграмму, и используется для связи фрагментов блока данных. Значение этого поля устанавливается отправителем и служит идентификатором дейтаграммы, например, в случае ее фрагментации.

Наличие поля флагов (flags) и поля смещения (fragmentation) связано с тем, что, учитывая ограничения на длину кадра в конкретной реализации сети, протокол IP разбивает большой исходный блок данных на фрагменты и упаковывает их в пакеты. Для определения принадлежности пакетов — фрагментов одному блоку данных и обеспечения его правильной сборки, в поле флагов устанавливается специальный признак, а величины смещения помещаются в поле смещения. Поле флага содержит 3 бита: первый бит этого поля всегда имеет значение ноль, второй бит определяет, разрешена или нет фрагментация для блока данных. Величина поля смещения задает смещение в 64-битовых блоках. Первый фрагмент имеет нулевое смещение.

Поле «период жизни» (TTL - Time to live) содержит сведения о том, в течение какого времени дейтаграмме разрешено находиться в сети, и фактически представляет собой счетчик транзитов. Указанное в поле значение уменьшается на 1 на каждом этапе обработки дейтаграммы в процессе ее следования по сети, а при достижении нуля дейтаграмма уничтожается в целях экономии ресурсов сети. Таким же образом предотвращаются зацикленные маршруты в сети, когда группа маршрутизаторов может «гонять» блок данных по кругу из-за какой-то неисправности сети. Когда маршрутизатор обнаруживает, что значение параметра «период жизни» достигло нуля, он немедленно удаляет блок данных и передает сообщение источнику об ошибке с помощью рассмотренного выше протокола ICMP.

Поле «протокол» (protocol, 8 битов) содержит указание, какой протокол следует за IP.

Поле контрольной суммы (Header checksum, 16 битов) служит для проверки правильности информации заголовка дейтаграммы. Контрольная сумма заголовка проверяет только данные заголовка, которые включают в себя адреса IP источника и пункта назначения. При проверке заголовка IP контрольная сумма анализирует правильность номера версии IP и подтверждает отличие поля «времени жизни» от нуля. Она также позволяет проверить отсутствие искажения заголовка IP и допустимость длины сообщения.

Поле опций содержит информацию о различных задачах, например, спецификации маршрутизации, и обычно используется сетевым управлением или для целей отладки. Данные, которые обеспечивают опции IP, варьируются и зависят от конкретного приложения, использующего их. Когда требуется услуга «записать маршрут», поле опции указывает и это.

Как это имело место в других протоколах, заголовок IP содержит поле выравнивания (padding), состоящее из нулей и выравнивающее 32-битовую границу

Поля адресов IP-источника и IP-назначения используются маршрутизаторами и шлюзами в рамках сети для маршрутизации блока данных. Эти адреса остаются неизменными все время жизни блока данных и не преобразуются промежуточными сетями. Несмотря на то, что одной из основных функций межсетевого протокола IP является межсетевая и глобальная адресация, из соображений разумного объема книги целесообразно ограничиться только несколькими замечаниями о форматах адресов IP.

IP-маршрутизация

IP-Маршрутизация - процесс выбора пути для передачи пакета из одной сети в другую. Под путем (маршрутом) понимается последовательность маршрутизаторов, через которые проходит пакет по пути к узлу-назначению. IP-маршрутизатор - это специальное устройство, предназначенное для передачи пакетовиз одной сети в другую и обеспечивающее определение пути прохождения пакетов в составной сети. Маршрутизатор должен иметь несколько IP-адресов с номерами сетей, соответствующими номерам объединяемых сетей.
Маршрутизация осуществляется на узле-отправителе в момент отправки IP-пакета, а затем на IP-маршрутизаторах.
Принцип маршрутизации на узле отправителе выглядит достаточно просто. Когда требуется отправить пакет узлу с определенным IP-адресом, то узел-отправитель выделяет с помощью маски подсети из собственного IP-адреса и IP-адреса получателя номера сетей. Далее номера сетей сравниваются и если они совпадают, то пакет направляется непосредственно получателю, в противном случае - маршрутизатору, чей адрес указан в настройках протокола IP. Выбор пути на маршрутизаторе осуществляется на основе информации, представленной в таблице маршрутизации. Таблица маршрутизации - это специальная таблица, сопоставляющая IP-адресам сетей адреса следующих маршрутизаторов, на которые следует отправлять пакеты с целью их доставки в эти сети. Обязательной записью в таблице маршрутизации является так называемый маршрут по умолчанию, содержащий информацию о том, как направлять пакеты в сети, адреса которых отсутствуют в таблице, поэтому нет необходимости описывать в таблице маршруты для всех сетей. Таблицы маршрутизации могут строиться " вручную" администратором или динамически, на основе обмена информацией, который осуществляют маршрутизаторы с помощью специальных протоколов - протоколов динамической маршрутизации.

Если IP-дейтаграмма подверглась фрагментации, она не будет собрана, пока не достигнет конечного пункта назначения. (Этим сборка фрагментов в IP-сетях прин­ципиально отличается от принятой в некоторых других сетях поэтапной схемы, ког­да фрагменты собираются на ближайшем пункте пересылки.) Фрагментация, по идее, не касается транспортного уровня и происходит прозрачным для него образом, так что если не пытаться предотвратить сниже? гае производительности, сопровожда­ющее фрагментацию, то ее можно и вовсе не учитывать на уровне TCP и UDP. Фраг­мент дейтаграммы, в свою очередь, может быть фрагментирован при перемещении по трассе. Информация, содержащаяся в IP-заголовке, позволяет осуществлять мно­гократную фрагментацию.

Вспомним формат IP-заголовка и посмотрим, какие его поля отвечают за фрагментацию. Поле идентификатор (identification) содержит уникальный номер для каждой посылаемой IP-дейтаграммы. Это значение копируется в каждый фраг­мент, идентифицируя его принадлежность данной дейтаграмме (теперь становится понятным назначение этого поля — оно используется при сборке фрагментов). Один бит в поле флаги (flags) используется как индикатор продолжение следует (тоге fragments) и говорит о наличии следующих фрагментов. Этот флаг устанавливается в каждом фрагменте, на которые разбивается дейтаграмма, за исключением послед­него. Поле смещение фрагмента (fragment offset)содержит величину смещения фрагмента от начала исходной дейтаграммы. Кроме того, после фрагментации дей­таграммы поле общая длина (total length) в заголовке каждого фрагмента будет содер­жать размер данного фрагмента.

Другой бит поля флаги называется запрет фрагментации (don't fragment, DF). Если установлен флаг DF, модуль IP не станет фрагментировать дейтаграмму. Вмес­то этого дейтаграмма отбрасывается и по протоколу ICMP генерируется сообщение об ошибкенеобходима фрагментация, но установлен флаг запрета фрагментации, которое посылается отправителю пакета. (В следующем параграфе мы рас­смотрим случай генерации такого сообщения.)

Если IP-дейтаграмма была фрагментирована, то каждый фрагмент становится отдельным пакетом со своим собственным IP-заголовком. Такие пакеты маршрути­зируются независимо, и, как следствие, фрагменты дейтаграммы могут приходить в точку назначения с нарушением их очередности. Однако в IP-заголовках фрагмен­тов содержится вся необходимая информации для их правильной сборки в конечном пункте назначения.

Несмотря на то что IP-фрагментация выполняется " незаметно" для транспортно­го уровня, она может привести к нежелательным последствиям, которые сказывают­ся на уровнях выше IP. Дело в том, что из-за потери одного фрагмента потребуется передать повторно всю дейтаграмму, а поскольку в самом протоколе IP не предус­мотрены таймаут и повторная передача, то эти функции должны быть возложены на более высокие уровни. ПротоколTCP осуществляет повторную передачу по таймауту, a UDP — нет. (Некоторые приложения, использующие UDP, сами реализуют ме­ханизм таймаута и ретрансмиссии.)

Если окажется, что потерян некоторый фрагмент сегмента TCP, то по таймауту будет повторена передача всего сегмента TCP, который содержался в фрагментированной IP-дейтаграмме. Повторная передача отдельного фрагмента IP-дейта­граммы невозможна в принципе. Действительно, если фрагментацию произвел не хост источника дейтаграммы, а один из промежуточных маршрутизаторов, то ис­точник не может знать, каким именно образом было выполнено разбиение на фраг­менты. Уже по одной этой причине желательно принимать меры для предотвра­щения фрагментации (в статье [Kent and Mogul, 1987] приводятся и другие аргументы).

IP-адресация

Каждый узел TCP/IP идентифицируется логическим IP-адресом. Эти адреса уникальны для каждого из узлов, общающихся по протоколу TCP/IP. Каждый 32-битный IP-адрес идентифицирует местонахождение узла в сети точно так же, как обычный адрес обозначает дом на улице города.

Аналогично обычному адресу, состоящему из двух основных частей (названия улицы и номера дома), IP-адрес также имеет две части — идентификатор сети и идентификатор узла.

· Идентификатор сети, также называемый адресом сети, обозначает один сетевой сегмент в более крупной объединенной сети (сети сетей), использующей протокол TCP/IP. IP-адреса всех систем, подключенных к одной сети, имеют один и тот же идентификатор сети. Этот идентификатор также используется для уникального обозначения каждой сети в более крупной объединенной сети.

· Идентификатор узла, также называемый адресом узла, определяет узел TCP/IP (рабочую станцию, сервер, маршрутизатор или другое TCP/IP-устройство) в пределах каждой сети. Идентификатор узла уникальным образом обозначает систему в том сегменте сети, к которой она подключена.

Вот пример 32-битного IP-адреса:

10000011 01101011 00010000 11001000

Для облегчения восприятия человеком IP-адреса записываются в точечно-десятичной нотации. 32-битный IP-адрес делится на четыре 8-битных октета. Октеты представляются в десятичной системе счисления (системе с основанием 10) и разделяются точками. Таким образом, вышеприведенный IP-адрес в точечно-десятичной нотации выглядит так: 131.107.16.200.

Дополнительные сведения о точечно-десятичной нотации и о преобразовании чисел из двоичной системы счисления в десятичную см. в разделе

На следующем рисунке показан пример IP-адреса (131.107.16.200), разделенного на идентификатор сети и идентификатор узла. Часть, соответствующая идентификатору сети (131.107), в данном случае определяется первыми двумя октетами IP-адреса. Часть, задающая идентификатор узла (16.200), обозначается последними двумя октетами IP-адреса.

Примечания

· Поскольку IP-адреса служат для идентификации устройств в сети, каждому устройству в сети должен быть назначен уникальный IP-адрес.

· Многие компьютеры имеют только одну сетевую плату, поэтому им требуется лишь один IP-адрес. Если же в компьютере установлено несколько сетевых плат, то каждой из них должен быть назначен свой IP-адрес.

Классы IP-адресов

Сообщество Интернета определило пять классов IP-адресов. Адреса классов A, B и C могут назначаться узлам TCP/IP.

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

В следующей таблице символы w.x.y.z обозначают четыре октета IP-адреса. Эта таблица показывает:

· как значение первого октета (w) любого IP-адреса задает класс этого адреса;

· как октеты адреса данного класса делятся на идентификатор сети и идентификатор узла;

· число возможных сетей данного класса и число узлов в этих сетях.

Класс Значение w Код сети
A 1-126 w
B 128-191 w.x
C 192-223 w.x.y
D 224-239 Зарезервировано для многоадресной рассылки
E 240-254 Зарезервировано для экспериментальных целей

 

33 Интерфейс V5 поддерживает различные виды абонентского оборудования и определён в опорной точке V, которая находится между станционным окончанием ЕТ и линией цифрового доступа.

Различные варианты доступа в точке V представлены на рисунке


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-07-12; Просмотров: 656; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.038 с.)
Главная | Случайная страница | Обратная связь