«Б.С. Гольдштейн ПРОТОКОЛЫ СЕТИ ДОСТУПА Том 2 МОСКВА РАДИО И СВЯЗЬ 1999 УДК 621.395.34 Г63 ББК 32.881 Гольдштейн Б. С. Протоколы сети доступа. Том 2. — М.: Радио и связь, 1999. — Г63 317 с.: ил. ISBN 5-256-01476-5 Книга ...»
На тех же SDL-диаграммах видно, что при каждой подготовке передачи уровнем сообщения SIGNAL_ACK порядковый номер ожидаемого сообщения M(R) должен принимать текущее значение переменной S(R). При каждом приеме уровнем 3 сообщения SIGNAL значение M(S) должно сравниваться со значением S(R). Если M(S) равно S(R), сообщение должно быть принято, а значение S(R) — увеличено на 1. Если M(S) не равно S(R), таймеры Tt и Тr должны прекратить работу и должно быть передано сообщение разъединения.
При каждом приеме сообщения SIGNAL_ACK номер M(R) проверяется. Если M(R) не состоятелен, таймеры Tt и Тr сбрасываются и передается сообщение DISCONNECT. Если M(R) является корректным, счетчик подтвержденных сообщений принимает значение S(A), равное M(R).
Если S(A) равно S(S), таймер Tt сбрасывается. Если S(A) не равно S(S) и если значение M(R) является корректным, таймер Tt перезапускается. Таймер Tt сбрасывается при каждом приеме сообщения SIGNAL_ACK, значение M(R) в котором равно S(S).
7.7. НАЦИОНАЛЬНЫЕ СПЕЦИФИКАЦИИ ПРОТОКОЛА ТфОП
По аналогии с параграфом 4.7, посвященным протоколу DSS-1, представляется полезным отметить некоторые особенности протокола ТфОП интерфейса V5, принятые в России. Российские национальные спецификации V5 базируются на стандартах ETSI. При этом взаимосвязь протокола ТфОП интерфейса V5 с собственно системами сигнализации по абонентским линиям (национальный мэппинг), как и в других странах, специфицируется национальной администрацией связи. Кроме того, определяется перечень сообщений и параметров протокола ТфОП, применяемых в национальной версии протокола.В отличие от большинства европейских и американских сетей связи ситуация в российской ТфОП в этом плане сложилась весьма удачная. Отсутствие экзотических «предISDNовских» интерфейсов, простота и унификация абонентских систем сигнализации, рассмотренных в главе 1, привели к тому, что национальная российская версия протокола ТфОП является фактически подмножеством возможностей, предлагаемых стандартом ETSI. Перечень сигналов, передаваемых по абонентской линии и поддерживаемых протоколом ТфОП интерфейса V5, приведен в таблице 7.18.
Таблица 7.18. Сигналы российского протокола ТфОП оконечного передаваемых по абонентской оборудования линии телефонный шлейфа; сигнал переполюсовки; ГОСТ 7153-85; в В национальной версии протокола ТфОП применяется набор сообщений и параметров, приведенный в таблице 7.19. Для каждого сообщения показаны те необязательные информационные элементы, которые могут входить в его состав. Кроме того, если для каких-либо параметров информационных элементов нормирован диапазон допустимых значений, более узкий, чем предусмотрено ETSI, в таблице указаны возможные значения этих параметров.
Таблица 7.19. Сообщения и параметры протокола ТфОП Содержание таблицы 7.19 требует некоторых примечаний:
1) Данный информационный элемент используется для идентификации номера вызывающего абонента по алгоритму, принятому в ряде зарубежных стран (с использованием посылок кодом DTMF). Практически этот информационный элемент в России не используется, и включение его в национальные спецификации несколько условно. Что же касается рассмотренной в первом томе процедуры идентификации номера вызывающего абонента (АОН), то поскольку запросы АОН осуществляются имитацией сигнала ответа с передачей частоты 500 Гц по разговорному каналу, то для такой процедуры интерфейс V5 является прозрачным.
2) Данный информационный элемент используется, чтобы стимулировать выполнение оборудованием сети доступа некоторой, заранее определенной последовательности действий.
Обычно этот информационный элемент применяется для реализации последовательностей действий, критичных по времени, когда нецелесообразно перегружать АТС посылкой в сторону сети доступа многочисленных, следующих подряд сигналов или когда нужно избавить ресурсы АТС от обработки длительных событий (например, при плохо повешенной трубке). Элемент передается только в сторону сети доступа и содержит указание передать в сторону абонента сигнальную последовательность конкретного типа. Код типа последовательности сигналов определяется 4-битовой комбинацией. Код«0001» соответствует сигналу блокировки абонентской линии.
3) Применяется в качестве ответа на сигнал блокировки абонентской линии.
4) Сигнал используется для переноса в сторону АТС запроса дополнительных услуг, посылается при нажатии абонентом кнопки «R» (калиброванный разрыв шлейфа) или «1» в разговорной фазе соединения ТфОП.
5) Данные сигналы используются для управления кассированием монет в таксофонах.
После ответа вызываемого абонента со стороны станции посылается сигнал, предписывающий произвести переполюсовку напряжения на проводах абонентской линии, благодаря чему начинается кассирование монет. В случае таксофона с централизованным управлением кассирование следующей монеты происходит при восстановлении полярности напряжения и новой переполюсовке, для чего в сторону сети доступа посылаются соответствующие сигналы.
Таксофон с автономным управлением сам вырабатывает сигналы кассирования. По окончании разговора полярность напряжения на проводах абонентской линии восстанавливается.
6) Этот сигнал АТС передает с целью указать, при какой длительности разрыва шлейфа он должен истолковываться оборудованием сети доступа как калиброванный разрыв, используемый для обращения к дополнительным услугам.
Ограниченный объем книги не позволяет привести SDL-диаграммы, отражающие функционирование протокола ТфОП применительно к сети связи России. Имеет смысл упомянуть лишь наиболее характерные национальные особенности алгоритма управления соединениями ТфОП при использовании интерфейса V5.
Так, из нескольких возможных вариантов определены конкретные алгоритмы отбоя. В случае отбоя со стороны АТС абоненту через сеть доступа передается акустический сигнал «Занято». После того как абонент повесит трубку, в сторону АТС передается сообщение AN/SIGNAL/Steady_signal: On_hook. В ответ на это сообщение посылается сообщение LE/DISCONNECT, которое подтверждается сообщением AN/DISCONNECT_COMPLETE.
В случае, если отбой происходит со стороны сети доступа, в сторону АТС сразу передается сообщение AN/SIGNAL/Steady_signal: On_hook, а дальнейший алгоритм отбоя полностью аналогичен описанному выше.
Уникальность применяемой в России процедуры АОН ранее уже неоднократно обсуждалась в этой книге.
СЛУЖЕБНЫЕ ПРОТОКОЛЫ V5. Уметь управлять — значит уметь выбирать Ф. Пананти
8.1. ПРОТОКОЛ НАЗНАЧЕНИЯ НЕСУЩИХ КАНАЛОВ
Выбранная в качестве эпиграфа строчка итальянского поэта Филиппе Пананти полностью отражает суть протокола назначения несущих каналов (ВСС — Bearer Channel Connection protocol). Возможности этого протокола определяют основные концептуальные преимущества интерфейса V5.2 и позволяют революционизировать структуру современного узла коммутации.Именно благодаря протоколу ВСС можно резко уменьшить физические размеры абонентского оборудования АТС за счет его замены несколькими интерфейсами V5.2, что в значительной степени преобразует и всю телекоммуникационную сеть, состоящую из небольшого числа таких узлов.
Следует отметить принципиальное различие между интерфейсами V5.1 и V5.2. Несущие каналы интерфейса V5.1 жестко закреплены за цифровыми каналами пользовательских трактов, то есть между каждым используемым несущим каналом интерфейса и соответствующим каналом пользовательского порта существует постоянное соединение. С интерфейсом V5.2 дело обстоит иначе. Жесткое закрепление несущих каналов этого интерфейса за каналами пользовательских портов отсутствует; более того, количество используемых несущих каналов в интерфейсе всегда значительно меньше количества обслуживаемых им каналов пользовательских портов. Несущий канал интерфейса V5.2 предоставляется только тому каналу пользовательского порта, для которого запрашивается услуга связи, и только на время пользования этой услугой. Таким образом, соединение любого несущего канала интерфейса с каналом пользовательского порта является оперативно коммутируемым.
В дальнейшем, для краткости, такие оперативно коммутируемые соединения мы будем, как правило, называть В-соединениями, поскольку точный перевод на русский язык их английского названия bearer channel connections получается слишком многословным.
Переводя строчку эпиграфа с поэтического на технический язык, следует определить функции сообщений протокола ВСС как управление В-соединениями, то есть соединениями между цифровыми каналами портов пользователей и несущими канальными интервалами в трактах интерфейса V5.2. Эти сообщения назначают несущие канальные интервалы интерфейса для каналов портов пользователей, когда это требуется, и отменяют такие назначения, когда услуга больше не нужна, что дает возможность интерфейсу V5.2 концентрировать нагрузку.
Концентрация обеспечивается специальным механизмом динамического распределения канальных интервалов, которым управляет АТС. Последнее связано с тем, что сеть доступа не всегда осведомлена о том, каким пользовательским портам в данный момент требуются канальные интервалы, поскольку она не интерпретирует сигнализацию управления соединениями пользователей.
В контексте протокола ВСС существует три типа В-соедине-ний:
1) соединения в АТС и в интерфейсе V5.2, создаваемые оперативно для обслуживания каждого вызова ТфОП и ISDN с концентрацией графика на стороне сети доступа;
2) соединения, создаваемые в АТС оперативно для каждого вызова, но использующие постоянные соединения в сети доступа, закрепленные в интерфейсе V5.2 за линиями ТфОП и ISDN с высокой нагрузкой (например, линиями УАТС) и за такими линиями, блокировка которых в сети доступа или в интерфейсе V5.2 недопустима (например, линиями охранной сигнализации);
3) полупостоянные соединения, устанавливаемые в сети доступа и АТС для поддержки услуг полупостоянных арендованных линий.
Для В-соединений первого типа процедура ВСС проводится в начале и в конце обслуживания каждого вызова, а управление соединением пользователя осуществляется со стороны АТС. Для В-соединений второго и третьего типов процедуры протокола ВСС проводятся под контролем системы эксплуатационного управления АТС (через интерфейс QMA), которая не назначает для линий конкретных канальных интервалов и трактов интерфейса V5, но должна иметь об этом информацию.
Интерфейс V5.2 обеспечивает возможность создания и нарушения многоканальных Всоединений «n х 64 Кбит/с», где n может принимать значения от 1 до 30, для поддержки коммутируемых связей Н0, Н11 и будущих высокоскоростных услуг. Такие В-соединения могут быть всех трех типов. Каналы DSS-1 типа Н0 и Н11 не должны быть «видимы» для интерфейса V5.2, но должны поддерживаться в нем прозрачно как п соединений каналов 64 Кбит/с. Соединения мультимедиа также не должны быть «видимы» для интерфейса V5.2, но должны поддерживаться прозрачно как несколько независимых соединений.
Протокол ВСС поддерживает только соединения между пользовательскими портами сети доступа и канальными интервалами интерфейса V5.2. Соединения «пользовательский порт — пользовательский порт» протоколом не поддерживаются, что, однако, не исключает возможности установления таких соединений полностью под управлением сети доступа, например, при отказе интерфейса V5.2.
В дополнение к назначению и отмене назначения несущих канальных интервалов протокол ВСС, в частности, позволяет АТС проверять правильность назначения, а сети доступа — информировать АТС о неисправностях, которые могут повлиять на назначение несущих канальных интервалов. Все это (а в первую очередь — сам механизм динамического назначения несущих каналов) существенно повышает надежность интерфейса V5.2, т.к. позволяет при обслуживании портов пользователей обходить те тракты интерфейса, которые имеют повреждения, и использовать только канальные интервалы исправных трактов интерфейса V5.2.
Напомним, что V5.2 поддерживает до 16 трактов 2048 Кбит/с.
Структура сообщения протокола ВСС приведена на рис.8.1. Все сообщения ВСС содержат в байтах 2 и 3 ссылочный номер процесса ВСС, к которому они относятся. В дополнение к ссылочному номеру там же размещен специальный S-бит, указывающий, был ли процесс инициирован сетью доступа или опорной АТС. В принципе, одно и то же значение ссылочного номера может использоваться процессом, инициированным станцией, и процессом, инициированным сетью доступа, и, хотя такая ситуация маловероятна, S-бит исключает возможность путаницы.
Протокол ВСС трактует каждое назначение и каждую отмену назначения несущего канала V5.2 как отдельный процесс, идентифицируемый собственным ссылочным номером. Каждый такой процесс завершается успешным назначением, успешной отменой назначения или прерыванием. Разные процессы создаются и завершаются параллельно, так что назначение или отмена назначения одного несущего канального интервала не задерживает другие назначения и отмены назначения.
Рис. 8.1. Формат сообщения протокола ВСС Типы сообщений протокола ВСС представлены в таблице 8.1. Что же касается направления передачи сообщений, то для протокола ВСС ведущей, как правило, является сторона АТС, а ведомой — сторона сети доступа, так как сеть доступа не осуществляет управления соединениями пользователей. Исключением из этого правила являются процессы, связанные с сообщениями AN_FAULT и PROTOCOL_ERROR, которые всегда инициируются со стороны сети доступа.
Таблица 8.1. Список сообщений протокола ВСС Кодирование Сообщение протокола ВСС типа сообщения
ALLOCATION_COMPLETE
ALLOCATION_REJECT
DEALLOCATION_COMPLETE
Сторона АТС запрашивает назначение канального интервала V5.2 посылкой в сторону сети доступа сообщения ALLOCATION. Это сообщение содержит ссылочный номер активизированного им процесса ВСС, используемый в дальнейших сообщениях, которые сопутствуют данному назначению. Сообщение также содержит в обязательном информационном элементе «Идентификация порта пользователя» адрес пользовательского порта.Для портов ТфОП этот информационный элемент одновременно идентифицирует и канал порта, так как порт содержит всего один канал.
Для портов ISDN, содержащих каждый более одного В-канала, используется информационный элемент «Идентификация канала порта ISDN». Номер канала пользовательского порта ISDN в этом информационном элементе помещается в поле из 5 битов.
В случае первичного доступа ISDN каналы от В1 до В3 1 будут иметь номера от 1 (00001) до 31(11111).В случае базового доступа канал В1 будет иметь номер 1 (00001), а канал В2 — номер (00010).
Несущий канал интерфейса, назначаемый для канала ТфОП или для В-канала порта ISDN, идентифицируется информационным элементом «Идентификация канального интервала V5», указывающим как тракт интерфейса V5.2, так и канальный интервал в этом тракте. Этот информационный элемент также содержит указания на то, можно ли пренебречь каким-либо существующим В-соединением ради данного В-соединения как имеющего более высокий приоритет.
Структура сообщения ALLOCATION приведена в таблице 8.2. Напомним, что в этой и в следующих таблицах информационный элемент может быть обязательным — М (Mandatory) и необязательным О (Option).
Таблица 8.2. Структура сообщения ALLOCATION пользовательского порта ISDN Информационный элемент «Идентификатор канала пользовательского порта ISDN»
используется, когда необходимо назначить один канальный интервал для одного В-канала порта ISDN, и идентифицирует этот В-канал. Информационный элемент «Идентификатор канального интервала V5» определяет канальный интервал, назначенный в интерфейсе для указанного Вканала.
Информационный элемент «Таблица соответствия» длиной 11 байтов (рис.8.2) используется для идентификации блока канальных интервалов V5.2 тогда, когда необходимо назначить несколько канальных интервалов для поддержки высокоскоростных (n x 64 кбит/с) услуг ISDN (а также когда нужно отметить это назначение). Все назначенные канальные интервалы должны содержаться в одном тракте 2048 Кбит/с.
Рис.8.2. Информационный элемент «Таблица соответствия»
Этот же информационный элемент идентифицирует канальные интервалы в интерфейсе ISDN пользователь/сеть, для которых должны быть назначены канальные интервалы V5.2 (или должно быть отменено их назначение). Соответствие между канальными интервалами V5 и Вканалом пользовательского порта осуществляется по принципу «один к одному» в том же порядке, в котором они отмечаются в таблице соответствия. Когда несколько канальных интервалов назначаются как один блок, процедура отмены назначения, о которой будет сказано дальше в этом параграфе, может быть применена либо ко всему блоку, либо к отдельным канальным интервалам.
Поле «идентификатор тракта» определяет тот тракт в интерфейсе, канальные интервалы которого назначаются таблицей соответствия. Максимальное значение идентификатора 256.
Байты с 4 по 7 идентифицируют канальные интервалы V5.2, которые рассматриваются как один блок. Если канальный интервал используется в процессе назначения (отмены назначения), то соответствующий ему бит в поле байтов с 4 по 7 имеет значение 1, в противном случае — 0.
Байты с 8 по 11 определяют каналы пользовательского порта ISDN (с базовым или первичным доступом), для которых назначаются отмеченные в байтах с 4 по 7 канальные интервалы V5.2.
Если для канала порта назначается канальный интервал, то соответствующий этому каналу бит в поле байтов с 8 по 11 имеет значение 1, в противном случае — 0.
Сообщение о выполнении назначения используется стороной сети доступа для передачи стороне АТС информации о том, что назначение несущих каналов интерфейса V5.2 для каналов пользовательского порта успешно завершено (таблица 8.3).
Таблица 8.3. Структура сообщения ALLOCATION COMPLETE Если сторона сети доступа не может подчиниться сообщению ALLOCATION, посланному стороной АТС, она отвечает сообщением ALLOCATION_REJECT с информационным элементом «Причина отказа». Этот информационный элемент содержит поле, указывающее причину (таблица 8.4), и в некоторых случаях — поле диагностики. Назначение может оказаться невозможным из-за неисправностей или блокировки внутри сети доступа, в порту пользователя или в интерфейсе V5. В назначении также может быть отказано из-за существующих Всоединений или даже без указания определенной причины. Диагностические поля содержат информацию, которая может помочь более точно выяснить причину отказа.
Сообщения, связанные с отменой назначения, имеют форматы и информационные элементы, идентичные тем, которые используются в сообщениях, связанных с назначением, поскольку в обоих случаях требуется равноценная информация. Обычно сообщение DEALLOCATION отменяет назначение, чтобы нарушить В-соединение после завершения той связи, для поддержки которой оно создавалось, но сторона АТС может также послать сообщение DEALLOCATION, чтобы прервать процесс назначения. Структура сообщения DEALLOCATION показана в таблице 8.5. Информационный элемент «Идентификатор канала пользовательского порта ISDN»
используется при отмене назначения несущего канального интервала интерфейса V5.2 для Вканала порта ISDN и определяет номер этого В-канала. Информационный элемент «Таблица соответствия» определяет блок несущих канальных интервалов интерфейса V5.2 и блок Вканалов ISDN, для которых они были назначены, с целью отменить это назначение.
Таблица 8.4. Структура сообщения ALLOCATION_REJECT Таблица 8.5. Структура сообщения DEALLOCATION пользовательского порта ISDN Об успешной отмене назначения сторона сети доступа информирует сторону АТС посылкой сообщения DEALLOCATION_COMPLETE. Это сообщение посылается, даже если Всоединения не существует, поскольку в данном случае отмена назначения позволяет подтвердить нарушение В-соединения, например, при логическом сбое. Запрос отмены назначения может получить отказ в виде сообщения DEALLOCATION_REJECT, содержащего информационный элемент «Причина отказа» длиной от 3 до 14 байтов, который может включать в себя дополнительные параметры, не используемые при отказе в назначении.
Сообщение AUDIT (таблица 8.6) дает возможность стороне АТС запросить от сети доступа недостающую информацию о В-соединении, для идентификации которого сторона АТС использует те данные, которые у нее имеются. Это могут быть либо данные, идентифицирующие канал пользовательского порта, либо данные, идентифицирующие несущий канальный интервал интерфейса V5.2. Таким образом, сторона АТС идентифицирует какой-то один конец Всоединения и ожидает со стороны сети доступа ответ, содержащий идентификацию другого его конца.
Таблица 8.6. Структура сообщения AUDIT пользовательского порта ISDN Сторона сети доступа посылает в ответ сообщение AUDIT_COMPLETE (структура которого идентична структуре сообщения AUDIT), либо содержащее полную информацию о Всоединении, либо указывающее на то, что такого В-соединения не существует. В последнем случае сообщение AUDIT_COMPLETE содержит необязательный информационный элемент «Незавершенное соединение» (расположенный за байтом «Идентификатор канального интервала V5»), в котором имеется поле, указывающее причину неуспеха, что может помочь в устранении логического сбоя.
Процессы обработки неисправностей и ошибок являются единственными процессами ВСС, инициируемыми сетью доступа. Эти процессы используются для передачи в сторону АТС сигналов, оповещающих о неисправности в сети доступа или об ошибках в протоколе ВСС, выявленных сетью доступа.
При нарушении активного В-соединения из-за неисправности, возникшей в сети доступа, сторона сети доступа передает в сторону АТС сообщение AN_FAULT. Формат сообщения AN_FAULT аналогичен формату сообщений ALLOCATION или DEALLOCATION для одиночного несущего канала, за исключением того, что информационные элементы идентификации порта пользователя (и В-каналадля портов ISDN) и несущего канала V5.2 включаются в это сообщение только тогда, когда они известны. Сообщение AN_FAULT подтверждается сообщением AN_FAULT_ACKNOW-LEGE, имеющим тот же ссылочный номер, что и сообщение, которое оно подтверждает.
Если сеть доступа обнаруживает ошибку в протоколе ВСС, она посылает в сторону АТС сообщение PROTOCOL_ERROR (таблица 8.7.). В этом сообщении содержится обязательный информационный элемент «Причина ошибки протокола», определяющий тип ошибки протокола и, где это возможно, тип сообщения, в котором ошибка была выявлена.
Таблица 8.7. Структура сообщения PROTOCOL_ERROR Причинами ошибок протокола могут быть ошибка дискриминатора протокола, неопознанное сообщение, информационный элемент с нарушением порядка следования, повторение необязательного или пропуск обязательного информационного элемента, ошибка в содержании информационного элемента, неопознанный информационный элемент, несовместимость сообщения с состоянием протокола ВСС, повторение обязательного информационного элемента и наличие в сообщении слишком большого числа информационных элементов.
Более детальная информация о протоколе ВСС и его процедурах содержится в приложении Е стандарта ETS 300 347-1.
8.2. ПРОТОКОЛ УПРАВЛЕНИЯ ТРАКТАМИ ИНТЕРФЕЙСА V5. Как уже отмечалось выше, интерфейс V5.2 содержит несколько (до 16) цифровых трактов 2048 Кбит/с. Такое отличие от интерфейса V5.1 требует дополнительных функций управления этими трактами, включая проверку соответствия двух сторон интерфейса, соединенных физическим трактом или трактами. Последнее достигается присвоением каждому тракту на каждой стороне интерфейса отличительного ярлыка, что позволяет, в частности, правильно подсоединить вновь несколько физических трактов, если они были отсоединены из-за неисправности, или при проведении планового техобслуживания. Для этого предусматривается специальный механизм проверки ярлыков трактов.
В дополнение к проверке ярлыков и целостности самих трактов, должна обеспечиваться возможность перевода трактов в состояния «рабочее» и «нерабочее».
Последнее действие аналогично блокировке и разблокировке портов в сети доступа с двумя отличиями: необходимостью защитить сигнализацию интерфейса V5.2 и необходимостью минимизировать нарушения в обслуживании трафика. Эти отличия приводят к тому, что если инициатива блокировки тракта исходит от сети доступа, последняя должна иметь возможность согласовать эти вопросы с АТС, так как именно АТС отвечает за обслуживание и обладает подробной информацией о проходящей нагрузке. Запрашивая разрешение заблокировать тракт, сеть доступа указывает, допустима ли отсрочка в исполнении этого запроса. Блокировка тракта с отсрочкой позволяет дождаться завершения всех уже установленных к моменту запроса соединений пользователей, а блокировка без отсрочки выполняется немедленно.
Структура сообщения протокола управления трактами интерфейса V5 представлена на рис.
8.3. Информационный элемент «Тип сообщения» в заголовке определяет сообщение как управляющее — LINK_CONTROL или как подтверждающее - LINK_CONTROL_ACK. Строго говоря, сообщения второго типа LINK_CONTROL_ACK не являются, по мнению автора, необходимыми (даже при разблокировке тракта, о чем будет сказано в конце этого параграфа), поскольку эту функцию выполняет уровень 2 протокола.
Рис.8.3. Структура сообщения протокола управления трактами В сообщениях протокола управления трактами интерфейса V5.2 имеется единственный специализированный обязательный информационный элемент «Функция управления трактом»
(Link-control-function).
Операцию идентификации тракта может инициировать любая сторона интерфейса с помощью передачи сообщения LINK_ CONTROL: Link-identification-request (запросидентификации-тракта). Если сигнал маркировки принимается стороной, запросившей идентификацию, по тракту с ярлыком, который соответствует ярлыку передающей стороны, маркировка считается верной, тракт идентифицирован, его целостность проверена. Так как запросить идентификацию может любая сторона интерфейса, возможны конфликтные ситуации при передаче одного и того же сигнала более чем по одному тракту одновременно. В идеале, для разных интерфейсов следовало бы применять разные сигналы маркировки во избежание путаницы при одновременном тестировании нескольких интерфейсов, но в интерфейсе V5.2 это не реализовано, поскольку вероятность случайного возвращения сигнала маркировки по исправному тракту другого интерфейса незначительна.
Сторона, которая принимает запрос идентификации, может отказать в удовлетворении запроса. Это может произойти, если, например, продолжается обработка предыдущего запроса идентификации тракта, поскольку спецификации интерфейса V5 не предусматривают идентификацию более одного тракта одновременно. Отказ удовлетворить запрос производится путем передачи сообщения LINK_CONTROL: Link-identification-rejection (отказ-видентификации-тракта). Сценарий идентификации тракта представлен на рис.8.4.
Если запрос принимается приемной стороной для выполнения, то она маркирует указанный тракт и отвечает сообщением LINK_CONTROL: Link-identification-acknowledgement, подтверждающим выполнение запроса. Маркировка тракта производится присвоением значения 0 биту в нулевом канальном интервале этого тракта.
Когда сторона, давшая запрос, получила подтверждение и проверила маркировку, она может запросить удаление маркировки с помощью сообщения LINK_CONTROL: Linkidentification-release. Получив такое сообщение, другая сторона удаляет маркировку. Удаляется маркировка присвоением биту 7 нулевого канального интервала значения 1.
Рис. 8.4. Сценарий обмена сообщениями идентификации тракта Сеть доступа может запросить у станции блокировку тракта путем передачи сообщения LINK_CONTROL: Deferred-link-blocking-request (запрос-блокировки-тракта-с-отсрочкой) или сообщения LINK_CONTROL: Non-deferred-link-blocking-request (запрос-блокировки-тракта-безотсрочки). Сообщение LINK_CONTROL: Deferred-link-blocking-request менее срочное, оно указывает, что сеть доступа готова ждать, пока АТС переключит С-каналы на другой тракт и пока завершатся текущие связи пользователей. Сообщение LINK_CONTROL: Non-deferred-linkblocking-request более срочное, оно указывает, что сеть доступа не может ждать, пока завершатся текущие связи и пока станция переключит С-каналы на другой тракт (рис.8.5). Если в тракте нет С-каналов, вместо сообщения LINK_CONTROL: Non-deferred-link-blocking-request можно использовать сообщение LINK_CONTROL: Link-block, но это не рекомендуется, т.к. безопаснее дать АТС некое предупреждение о намерении, прежде чем указывать, что тракт недоступен.
Рис. 8.5. Сценарий запроса блокировки тракта АТС не должна запрашивать блокировку тракта у сети доступа, поскольку станции известно, происходит ли обслуживание вызовов, и она может управлять использованием канальных интервалов интерфейса V5. Если АТС принимает решение заблокировать тракт, она может использовать рассматриваемый в следующем параграфе протокол защиты для переключения С-каналов на канальные интервалы другого тракта, а также может использовать рассмотренный в предыдущем параграфе протокол назначения несущих каналов ВСС, чтобы гарантировать, что никакие пользовательские порты не используют несущие канальные интервалы тракта, который предполагается заблокировать. После завершения всех текущих связей пользователей АТС может передать сообщение LINK_CONTROL: Link-block, информирующее сеть доступа о том, что тракт заблокирован.
При разблокировке ранее заблокированного тракта применяется процедура координированной разблокировки, поскольку сеть доступа и АТС автономны и могут независимо выполнять функции техобслуживания, а протоколы V5 не дают возможность одной стороне информировать об этом другую. Когда одна из сторон предполагает разблокировать тракт, она передает другой стороне сообщение LINK_CONTROL: Link-unblock. Если другая сторона согласна разблокировать тракт, она отвечает таким же сообщением LINK_CONTROL: Linkunblock.
8.3. ПРОТОКОЛ ЗАЩИТЫ V5. В первый раз в этой книге протокол защиты был упомянут в четвертой строке таблицы 6. главы б как одно из основных отличий интерфейса V5.2 от V5.1. Собственно говоря, суть протокола защиты (как отличительной особенности интерфейса V5.2) сформулирована гораздо раньше в другой Книге: «Двоим лучше, нежели одному; потому что у них есть доброе вознаграждение в труде их: ибо если упадет один, то другой поднимет товарища своего. Но горе одному, когда упадет, а другого нет, который поднял бы его... И если станет преодолевать ктолибо одного, то двое устоят против него: и нитка, втрое скрученная, нескоро порвется» (Екклесиаст, гл.4, ст.9-12). Протокол защиты охраняет логические С-кана-лы от отказа одного тракта в интерфейсе V5.2, обеспечивая возможность другим протоколам продолжать работу, несмотря на появление неисправностей в оборудовании.
Несущие каналы, в отличие от С-каналов, косвенно защищены, т.к они динамически назначаются пользовательским портам, но защита С-каналов более важна, поскольку отказ Сканала воздействует не на один, а на целую группу пользовательских портов. Это особенно очевидно, если неисправен С-канал, который поддерживает протокол назначения несущих каналов, т.к. тогда вся косвенная защита несущих каналов теряется. Поэтому предусмотренный протоколом механизм защиты применяется ко всем С-каналам, но не защищает несущие каналы и не занимается их реконфигурацией при отказе тракта в интерфейсе V5.2. В случае подобных отказов, соединения пользователей, организованные через эти несущие каналы, будут нарушены, что считается приемлемым, поскольку вероятность подобных отказов мала.
Основным событием, вызывающим необходимость защиты, является отказ тракта Кбит/с. Протокол защиты используется также в случае устойчивых отказов в звеньях уровня протокола V5 (т.е. устойчивый отказ одного из звеньев, используемых протоколами ВСС, управления, управления трактами, ТфОП или самим протоколом защиты). Кроме того, необходим постоянный контроль флагов всех активных и резервных С-каналов, чтобы обеспечить защиту от отказов, которые не обнаруживаются механизмами уровня 1. Так, если в физическом С-канале в течение 1 с не принимается комбинация флага, то этот С-канал должен рассматриваться как нерабочий. Если обнаруживается отказ резервного С-канала, то защитное переключение на него не должно производиться.
Рис.8.6. Структура сообщения протокола защиты Механизм защиты применяется также и по отношению к С-пути самого протокола защиты.
В отличие отлюбыхдругих протоколов V5 сообщения протокола защиты передаются дважды, по разу в каждом из двух трактов, которые его обслуживают. Структура этих сообщений приведена на рис.8.6. Заголовок сообщений протокола защиты V5.2 начинается с дискриминатора протокола, общего для всех сообщений V5, а заканчивается информационным элементом типа сообщения, который определяет одно из восьми возможных сообщений протокола защиты (таблица 8.8).
Первые пять сообщений в таблице 8.8 связаны с функциями переключения и управляют соответствием логических С-каналов и физических канальных интервалов. Оставшиеся три сообщения связаны с ошибками протокола и с перезапуском средств нумерации сообщений.
Сообщения переключения и сообщения об ошибках в протоколе последовательно нумеруются, номер сообщения содержится в информационном элементе Sequence-number (порядковый-номер).
Сообщения перезапуска средств нумерации передаются в качестве команды или подтверждения, если обнаруживаются нарушения нумерации других сообщений. Канальный интервал, к которому эти сообщения относятся, идентифицируется информационным элементом Physical-C-channel (физический-С-ка-нал).
Таблица 8.8. Список сообщений протокола защиты
ПЕРЕКЛЮЧЕНИЯ R REQ >
КОМАНДА SWITCH_OVE <
ПЕРЕКЛЮЧЕНИЯ R COM
ПЕРЕКЛЮЧЕНИЯ OVER COM
ПОДТВЕРЖД SWTTCH_OV —
ПЕРЕКЛЮЧЕНИИ R REJECT
ПРОТОКОЛА RROR >
ПОРЯДКОВОГО
ПОРЯДКОВОГО >
Эти информационные элементы должны содержаться во всех сообщениях переключения, а сообщения SWITCH_OVER_REJECT должны содержать также информационный элемент Rejection-cause, который указывает причину, по которой отказано в переключении.Команды, которые переключают логические С-каналы на другие физические канальные интервалы, передаются только со стороны АТС, поскольку только АТС располагает сводной таблицей отображения логических связей на физические. Если переключение было инициировано операционной системой (ОС) АТС, то станция передает сообщение OS_SWITCH_OVER_COM, подавая команду сети доступа переключить указанный логический С-канал на указанный канальный интервал. Станция может также передать сообщение SWITCH_OVER_COM, чтобы выполнить ту же самую функцию в случае, когда не нужно указывать, что переключение было инициировано операционной системой.
По мнению [83], с которым автор солидарен, нет видимой причины информировать сеть доступа о том, кто инициировал переключение.
Примеры сценариев переключения приведены на рис.8.7.
Рис.8.7. Сценарии переключения Сеть доступа передает сообщение SWITCH_OVER_ACK, чтобы информировать АТС о выполнении команды переключения логического С-канала на новый канальный интервал. Если сеть доступа не может выполнить команду, она отвечает сообщением SWITCH_OVER_REJECT.
Сеть доступа может использовать сообщение SWITCH_ OVER_REQ, чтобы запросить АТС переключить указанный логический С-канал на указанный канальный интервал.
SWITCH_OVER_REJECT, которое также идентифицирует причину отказа. Сообщения отказа в переключении — единственные из сообщений переключения, которые может передавать любая сторона интерфейса.
Обе стороны интерфейса V5.2 ожидают получения сообщений с очередным порядковым номером. Если в получаемом одной из сторон интерфейса сообщении происходит «скачок»
нумерации, то регистрируется сбой и к противоположной стороне направляется сообщение RESET_SN_COM, чтобы информировать ее о том, что нумерацию сообщений нужно начать заново. Сторона, которая получает сообщение RESET_SN_COM, отвечает сообщением RESET_SN_ACK, подтверждающим, что соответствующие счетчики установлены в «0».
Напомним, что нумеруются сообщения переключения и ошибок в протоколе, т.е. первые шесть из восьми сообщений протокола защиты.
Сообщения перезапуска средств нумерации не содержат специализированных информационных элементов и не привязаны к отдельным логическим С-каналам. Поэтому обязательный информационный элемент «Идентификатор логического С-канала» (байт 2 и байт рис.8.6) в этих сообщениях имеет значение «0» (т.е. все биты должны быть установлены в «0»).
Таблица 8.9. Кодирование типа ошибки протокола Протокол защиты V5.2 предусматривает один тип сообщения об ошибке в протоколе — сообщение PROTOCOL_ERROR, которое передается от сети доступа к АТС и содержит информационный элемент Protocol-error-cause (Причина-ошибки-в-протоколе), указывающий тип ошибки. Типы ошибок приведены в таблице 8.9. Как и все типы сообщений переключения, сообщения PROTOCOL_ERROR последовательно нумеруются с использованием информационного элемента «Порядковый-номер». Подобно сообщениям отказа в переключении, они должны указывать на происхождение проблемы, но, в отличие от сообщений отказа в переключении, не должны идентифицировать канальный интервал.
8.4. ПРОТОКОЛ УПРАВЛЕНИЯ Напомним, что из четырех рассматриваемых в этой главе протоколов первые три относятся исключительно к интерфейсу V5.2. И только этот параграф посвящен протоколу управления, являющемуся единственным служебным протоколом, который должен всегда присутствовать в обоих интерфейсах V5.1 и V5.2 и который управляет как пользовательскими портами, так и некоторыми общими функциями. Протокол управления позволяет блокировать и разблокировать пользовательские порты, проверять идентификацию и конфигурацию интерфейса V5, а также осуществлять рестарт протокола ТфОП после отказа.
Сообщения протокола управления интерфейса V5 идентифицируются информационным элементом «тип сообщения» в общем заголовке. Предусматривается четыре типа сообщений. Два из них, PORT_CONTROL и COMMON_CONTROL, являются инициирующими сообщениями, которые управляют портами и общими функциями, соответственно. Два других типа сообщений — PORT_ CONTROL_ACK и COMMON_CONTROL_ACK - являются подтверждающими. Для сообщений общего управления адрес сообщения в заголовке берется из общего адресного пространства V5 согласно таблице 6.3 главы 6 этой книги. Для сообщений управления, ориентированных на порт, адрес определяется соответствующим портом ТфОП или ISDN. В заголовке сообщений управления имеет место дублирование информации, поскольку как адрес уровня 3, так и информационный элемент «тип сообщения» указывают, ориентировано ли сообщение на порт или оно является сообщением общего управления.
Непосредственно за общим заголовком сообщения протокола управления следует обязательный информационный элемент, идентифицирующий конкретную функцию, с которой связано инициирующее или подтверждающее сообщение. Этим информационным элементом в сообщениях PORT_CONTROL и PORT_ CONTROL_ACK является «Элемент функции управления» (Control-function-element).
Сообщения PORT_CONTROL поддерживают блокировку и разблокировку всех портов ТфОП, ISDN и арендованных линий, а также ряд функций, специфических для портов ISDN:
активизацию и деактивизацию, индикацию ошибок и рабочих характеристик, управление потоком сигнализации. В связи с этим в сообщения могут вводиться соответствующие необязательные информационные элементы. Например, сообщения PORT_CONTROL: performance-grading содержат информационный элемент «Качество-работы».
Возможна ситуация, когда порт поврежден или находится на техническом обслуживании и, следовательно, должен быть заблокирован. Алгоритм блокировки порта зависит от того, какая сторона интерфейса V5 является ее инициатором.
Сеть доступа не всегда осведомлена о том, занят или нет пользовательский порт, поскольку сигнализация ISDN ею не интерпретируется и поскольку некоторые порты ISDN могут быть активными, даже когда отсутствует сигнализация или нагрузка. Исчерпывающие сведения о состоянии портов имеются только на АТС. Поэтому в том случае, когда инициатором блокировки порта является сеть доступа, она запрашивает об этом АТС, передавая свой запрос в сообщении AN/PORT_CONTROL: block-request. АТС может ответить сообщением LE/PORT_CONTROL:
block, указывающим, что она заблокировала порт, либо немедленно, либо сразу же после освобождения порта. Сеть доступа может затем передать свое сообщение AN/PORT_CONTROL:
block без опасности нарушить обслуживание вызовов портом. Если АТС не отвечает на сообщение AN/PORT_CONTROL: block-request в течение некоторого времени, сеть доступа может передать сообщение AN/ PORT_CONTROL: block с риском нарушить текущие связи пользователей.
АТС не должна передавать запрос блокировки в сеть доступа, поскольку она может блокировать порт без нарушения текущих связей, т.к. она знает об их состоянии. Инициируя блокировку порта, АТС сразу передает сообщение PORT_CONTROL: block.
Чтобы разблокировать ранее заблокированный порт, обе стороны должны передать и принять сообщение PORT_CONTROL: unblock. Разблокировка отменяется, если с любой стороны передается сообщение PORT_CONTROL: block или если сеть доступа передает сообщение AN/PORT-CONTROL: block-request после приема сообщения PORT_CONTROL: unblock.
Автор вынужден отметить, что описанные процедуры блокировки и разблокировки портов протоколов V5 не соответствуют рекомендации ITU-T X.731 относительно управления состояниями, что создает некоторые проблемы при использовании методов сети эксплуатационного управления системами связи TMN. Для согласования Х.731 с интерфейсом V5 разработан специальный «мэппинг», что несколько увеличивает сложность интерфейсов управления.
Сообщения COMMON_CONTROL и COMMON_CONTROL_АСК тоже содержат обязательный информационный элемент «Идентификатор-функции-управления» (control-functionID). Некоторые сообщения общего управления, связанные с изменением конфигурации интерфейса, содержат информационный элемент «Вариант», в котором указывается номер предлагаемого варианта конфигурации. Сообщения COMMON_CONTROL: not-ready-forreprovisioning (не-готов-к-реконфигурации) и COMMON_CONTROL: cannot-reprovision (реконфигурация-невозможна) содержат также информационный элемент Rejection-cause (Причина-отказа). Сообщения COMMON_CONTROL: vari-ant-and-interface-ID (вариант-иидентификатор-интерфейса) содержат информационный элемент «Идентификатор интерфейса».
Сообщения подтверждения передаются в ответ на соответствующие инициирующие сообщения и подтверждают правильность их приема. Заметим, что здесь тоже имеет место некоторая избыточность, поскольку подтверждение приема сообщения уже выполнено на уровне кадров.
В главах 3 и 4 подробно отмечалось, что каждый пользователь базового доступа ISDN имеет свой D-канал сигнализации 16 Кбит/с. Это может привести к ситуациям, когда большое количество пользовательских портов пытаются использовать один и тот же сигнальный канал Кбит/с в интерфейсе V5.
Чтобы предотвратить перегрузку С-канала, содержащего С-пути типа Ds, нужно, чтобы станция могла запросить в сети доступа блокировку сигналов по D-каналу определенного пользовательского порта ISDN. С этой целью АТС передает сообщение LE/ PORT_CONTROL: Dсhаnnеl-blосk (блокировка-D-канала), а после окончания ситуации перегрузки — сообщение LE/PORT_CONTROL: D-channel-unblock (разблокировка-D-канала).
Для активизации и деактивизации портов базового доступа ISDN предусматриваются следующие сообщения. Если активизация происходит по инициативе пользователя, на станцию передается сообщение AN/PORT_CONTROL: activation-initiated-by-user (активизация-поинициативе-пользователя). Как правило, АТС отвечает сообщением LE/PORT_CONTROL:
activate-access (акти-визировать-доступ), которое инициирует передачу соответствующего сигнала от сети к пользователю. Пользователь получает и тактовый синхросигнал, после чего к АТС передается сообщение AN/PORT_CONTROL: access-activated (доступ-активизирован). Если активизация осуществляется по инициативе АТС, то от нее передается сообщение LE/PORT_CONTROL: activate-access.
Деактивизацию АТС запрашивает с помощью сообщения LE/PORT_CONTROL: deactivateaccess (деактивизировать-доступ). После деактивизации доступа к АТС передается сообщение AN/PORT_CONTROL: access-deactivated (доступ-деактивирован).
Сообщения COMMON_CONTROL обеспечивают проверку согласованности обеих сторон интерфейса V5, рестарт протокола ТфОП, а также внесение изменений в конфигурацию на любой стороне интерфейса. Предусматриваются следующие виды сообщения COMMON_CONTROL:
запрос-варианта-и-идентификатора-интерфейса, вариант-и-идентификатор-интерфейса, верификация-реконфигурации, не-готов-к-реконфигурации, готов-к-реконфигурации, переключение-на-новый-вариант, реконфигурация-невозможна, блокировка-начата, реконфигурация-начата, рестарт-ТФОП и подтверждение-рестарта-ТФОП.
Повышенное внимание, уделяемое в этой книге протоколу ТфОП, вызывает необходимость дополнительных пояснений к двум последним функциям управления. В ряде случаев может понадобиться принудительно возвратить протокол ТфОП в исходное состояние. Для самого протокола ТфОП это более сложная проблема, чем для других протоколов V5, поскольку сообщения протокола ТфОП отображаются на сигналы конкретных пользовательских портов, которые не предусматривают общего рестарта самого протокола. Если любая сторона интерфейса V5 инициирует рестарт протокола ТфОП, она выдает сообщение COMMON_CONTROL: restart.
Принимающая сторона должна подтвердить его прием передачей в обратном направлении сообщения СОМMON_CONTROL: restart-acknowledge. Оба этих сообщения, COMMON CONTROL: restart и COMMON CONTROL: restart-acknowledge, являются управляющими сообщениями, поэтому подтверждаются, соответственно, сообщениями COMMON_CONTROL_ACK: restart и COMMON_CONTROL_ACK: restartacknowledge. Такая избыточность подтверждений (на уровне 2 плюс двойное квитирование на уровне 3) обуславливается тем, что сброс протокола ТфОП может повлиять на обслуживание нескольких тысяч пользователей. Внимательный читатель, вероятно, заметил противоречия между этим подходом и техническими решениями протокола защиты, рассмотренного в предыдущем параграфе. Функция рестарта протокола ТфОП включена в протокол управления, хотя ее можно было бы включить в протокол ТфОП точно таким же образом, как функция рестарта протокола защиты непосредственно встроена в этот протокол. Естественным также могло бы быть использование сообщения PROTOCOL_ERROR протокола защиты и для других протоколов [83] либо путем введения его в каждый из этих протоколов, либо включением соответствующих функций общего управления в протокол управления. Логичным было бы использовать в обоих случаях одинаковый подход, но идеальных протоколов, как известно, не бывает.
ПРОТОКОЛ Х. Ты старомоден. Вот расплата За то, что в моде был когда-то. С.Я. Маршак
9.1. МОДЕЛЬ ВЗАИМОДЕЙСТВИЯ ОТКРЫТЫХ СИСТЕМ
Несколько странным может показаться введение отдельного параграфа в конце второго тома для обсуждения неоднократно упоминавшейся ранее модели взаимодействия открытых систем OSI. Но, во-первых, автор давно обещал это сделать, во-вторых, этого требует специфика рассматриваемого в данной главе протокола Х.25, а в-третьих, книга подходит к концу, и другого случая может и не быть.Многоуровневый комплект протоколов, известный как модель взаимодействия открытых систем (OSI — Open Systems Interconnection), разработан в 1984 году Международной организацией по стандартизации ISO совместно с Сектором стандартизации электросвязи ITU-T, называвшимся в те времена Международным консультативным комитетом по телеграфии и телефонии (МККТТ), для обеспечения обмена данными между компьютерными сетями.
Структура модели OSI представлена на рис. 9.1.
Применительно к системам электросвязи модель OSI служит для того, чтобы четко определить структуру множества функций, поддерживающих информационный обмен между пользователями услугами системы электросвязи, которая, в общем случае, содержит в себе сеть связи. Подход, использованный в модели OSI, предусматривает разделение этих функций на семь «слоев» (layers) или «уровней», расположенных один над другим. С точки зрения любого уровня все нижележащие уровни предоставляют ему «услугу транспортировки информации», имеющую определенные характеристики. То, как реализуются нижележащие уровни, для вышележащих уровней не имеет значения. С другой стороны, для нижних уровней безразличны как смысл поступающей от верхних уровней информации, так и то, с какой целью она передается.
Такой подход предусматривает стандартизацию интерфейсов между смежными уровнями, благодаря чему реализация любого уровня становится независимой от того, каким образом реализуются остальные уровни.
Рис. 9.1. Структура модели OSI Уровень 1 (или физический уровень) обеспечивает прозрачную передачу потока битов по каналу, организованному между смежными узлами сети с использованием той или иной передающей среды, и формирует интерфейс с этой средой. Характеристики передачи (в частности, коэффициент битовых ошибок BER) определяются свойствами этого канала и от функций уровня 1 не зависят.
Уровень 2 (или уровень звена данных) формирует двусторонний канал связи (то есть прямое звено связи между смежными узлами сети), используя для этого два предоставляемых уровнем цифровых канала с противоположными направлениями передачи. Важнейшие функции уровня — обнаружение и исправление ошибок, которые могут возникнуть на уровне 1, что делает независимым качество услуг этого уровня от качества получаемых «снизу» услуг передачи битов.
Уровень 3 (или сетевой уровень) формирует так называемые сетевые услуги, маршрутизацию и коммутацию соединений, обеспечивающие перенос через сеть информации, которой обмениваются пользователи открытых систем, размещенных в разных (и, в общем случае, несмежных) узлах сети.
Уровень 4 (или транспортный уровень) осуществляет «сквозную» (от одного конечного пользователя до другого) оптимизацию использования ресурсов (то есть сетевых услуг) с учетом типа и характера связи, избавляя своего пользователя от необходимости принимать во внимание какие бы то ни было детали, связанные с переносом информации. Этот уровень всегда оперирует со всей связью в целом, дополняя, если это требуется, функции уровня 3 в части обеспечения нужного конечным пользователям качества услуг.
Уровень 5 (или уровень сеанса) обеспечивает координацию («внутри» каждой связи) взаимодействия между прикладными процессами. Примеры возможных режимов взаимодействия, которые поддерживаются уровнем 5: дуплексный, полудуплексный или симплексный диалог.
Уровень б (или уровень представления) производит преобразование из одной формы в другую синтаксиса транспортируемых данных. Это может быть, например, преобразование ASCII в EBCDIC и обратно.
Уровень 7 (или прикладной уровень} содержит функции, связанные с природой прикладных процессов и необходимые для удовлетворения тех требований, которые существенны с точки зрения взаимодействия прикладных процессов в системах А и В (рис.9.1), или, говоря иначе, с точки зрения доступа этих процессов к среде OSI. Так как это самый верхний уровень модели OSI, он не имеет верхней границы.
Таким образом, функции уровней 1—3 обеспечивают транспортировку информации из одного пункта территории в другой (возможно, более чем через одно звено, то есть с коммутацией) и потому связаны с отдельными элементами сети связи:и с ее внутренней структурой. Функции уровней 4—7 относятся только к «сквозной» связи между конечными пользователями и определены таким образом, что они не зависят от внутренней структуры сети.
Поскольку в силу тех или иных специфических особенностей разных уровней в них могут формироваться и обрабатываться информационные блоки различных размеров, в большинстве уровней предусматриваются, в числе прочих, функции сегментации блоков данных и/или их объединения.
Любой функциональный уровень, например, уровень N (или N-уровень}, содержит некоторое множество функций, которые выполняет соответствующая аппаратно-программная, т.е. физическая, подсистема (ее удобно называть подсистемой ранга N или N-подсистемой). Nподсистема содержит в себе активные элементы, которые реализуют определенные для нее функциональные возможности (либо все их множество, либо каждый элемент выполняет вполне определенную часть этого множества). В англоязычной литературе такого рода активный элемент принято называть entity, a в литературе на русском языке чаще всего используется термин логический объект.
Итак, логическим объектом уровня N (или логическим N-объектом, или, если из контекста ясно, о чем идет речь, то просто N-объектом) называется множество функций, привлекаемых Nуровнем к обслуживанию конкретной связи между (N+ 1)-под-системами.
Процесс обмена информацией между двумя физическими системами через сеть можно интерпретировать как процесс взаимодействия двух открытых систем, размещенных в разных географических точках. Взаимодействие это связано с тем, что пользователям той и другой системы нужно обмениваться данными, необходимыми для выполнения тех или иных задач. Обе взаимодействующие системы имеют многоуровневую архитектуру, причем функции любого одного и того же уровня в той и другой системе идентичны (или, по меньшей мере, согласованы).
В подобных условиях уместно говорить о том, что на каждой фазе взаимодействия между двумя системами имеет место взаимодействие между подсистемами одного ранга, размещенными в системе А и в системе В. При этом подсистема ранга (N+1) в системе, которая инициирует данную фазу (например, в системе А), должна завязать диалог с подсистемой того же ранга (N+1) в системе, привлекаемой к участию в данной фазе (например, в системе В). (N+1)-подсистема, размещенная в системе В, должна, в свою очередь, поддержать продолжение диалога. Иными словами, должна быть организована информационная связь между подсистемами одного ранга, размещенными в разных системах (peer-to-peer communication).
При организации и в процессе такой связи подсистема ранга (N+1), находящаяся в системе А, обращается к услугам подсистемы ранга N в той же системе А. Логический (N+1) - объект системы А передает к N-объекту своей системы запрос, конечная цель которого состоит в том, чтобы вызвать ответную реакцию логического (N+1 )-объекта системы В. На пути к этой цели Nобъект системы А обращается к услугам (N-1)-объекта своей системы, тот, в свою очередь, — к услугам (N-2)-объекта и т.д., вплоть до логического объекта уровня 1, который обеспечивает использование физической среды для передачи битов, несущих запрос от системы А к системе В.
Логический объект уровня 1 системы В, приняв эти биты, формирует соответствующую индикацию для логического объекта уровня 2 своей системы, тот сообщает об этом логическому объекту уровня 3 и т.д. «вверх» до тех пор, пока индикация приема запроса не достигнет логического (N+l)-o6ъекта системы В.
Далее, в общем случае, происходит обратный процесс. Отклик логического (N+l)-o6ъекта системы В передается к системе А с привлечением услуг N-объекта, затем — (N-1)-объекта и т.д.
в системе В, а прием уровнем 1 системы А битов, которые доставили отклик, интерпретируется логическими объектами системы А как подтверждение системой В приема отправленного к ней запроса. Это подтверждение проходит в системе А уже понятным читателю путем «вверх», пока не достигнет отправившего запрос логического (N+l)-o6ъекта.
Сказанное иллюстрирует рис.9.2, на котором запрос, индикация, отклик и подтверждение фигурируют как имена сервисных примитивов.
Взаимодействие между логическими (N)-объектами двух взаимодействующих открытых систем происходит в соответствии с (N)-протоколом. Информация, обмен которой поддерживает (N)-протокол, оформляется в так называемые протокольные блоки данных (N)-PDU (protocol data units).
Для передачи (N)-PDU логический (М)-объект обращается к услугам расположенного ниже (N-1)-уровня и передает к нему свои PDU в составе сервисных блоков данных (N-1)-SDU (service data units), используя сервисные (N-1)-примитивы. Логический (N-1)-объект одной системы взаимодействует с логическим (N-1)-объектом другой системы в соответствии с (N-1)протоколом, вводя содержимое (N-l)-SDU в протокольные блоки данных (N-l)-PDU, то есть дополняя каждый (N-l)-SDU управляющей информацией протокола (N-l)-PCI (protocol control information). Далее, для передачи (N- 1)-PDU происходит обращение к услугам (N-2)-уровня и т.д.
Сказанное иллюстрирует рис.9.3.
Рис. 9.2. Имена и смысл сервисных примитивов Рис. 9.3. Протокольные и сервисные блоки данных 9.2. СЕТИ С КОММУТАЦИЕЙ ПАКЕТОВ Х. Х.25 представляет собой комплект протоколов трех нижних уровней модели OSI, разработанный МККТТ для интерфейса между терминалами пользователей и сетью с коммутацией пакетов. Протоколы Х.25 использовались для создания всемирной сети коммутации пакетов. В этой сети информация пользователей инкапсулируется (заключается) в пакеты, содержащие данные об адресации, о последовательности пакетов и контроле ошибок, а также сведения о пользователе или приложении. Пакеты передаются по виртуальным каналам между терминалом Х.25 конечного пользователя DTE (Data Terminal Equipment) и окончанием канал а двусторонней передачи данных DCE (Data Circuit-Terminating Equipment), используемого в качестве канала доступа к сети пакетной коммутации.
Первая рекомендация Х.25 была утверждена на 6-й пленарной ассамблее МККТТ в 1976 г., а переработанные версии появлялись в 1980 и 1984 гг. К началу 80-х годов протоколы Х.25 уже широко применялись для передачи данных во всем мире, особенно между удаленными терминалами и центральными системами. Стандарты ISDN, рассмотренные в главах 3, 4 данного тома, разрабатывались с учетом поддержки сетей Х.25.
Протокол Х.25 использует неоднократно упоминавшийся в этой книге протокол доступа к звену данных LAPB (Link Access Protocol — Balanced), который был специально разработан для обеспечения надежной передачи данных через звено. Первоначально ориентированный на каналы с низким качеством, протокол LAPB использует принцип, согласно которому каждый узел в сети должен проверять каждый блок данных уровня 2 (кадр), как только он получен, и определять, может ли этот кадр маршрутизироваться к ближайшему узлу или он должен быть передан повторно. Другой принцип, который связан с Х.25, заключается в том, что повторная передача осуществляется к узлу, который детектировал ошибку, из ближайшего к нему узла, принявшего верный кадр. Это означает, что каждый узел должен обеспечивать контроль, что требует затрат на оборудование и вводит задержки в маршрутизацию данных.
Во время появления сетей Х.25 (а они функционируют с конца 60-х годов) такой уровень контроля ошибок был необходим, поскольку он учитывал характеристики существовавших тогда физических коммуникационных линий. Х.25 хорошо работает в ситуациях, когда не могут быть обеспечены каналы связи с высокой надежностью. В областях, где развернуты оптоволоконные сети, Х.25 вряд ли может считаться подходящим выбором, тем более, при наличии такой технологии, как Frame Relay (ретрансляция кадров).
На рис. 9.4 показан пример взаимодействия сетей Х.25 с использованием межсетевых шлюзов Х.75 и устройств сборки-разборки пакетов PAD, которые обеспечивают преобразование различных потоков данных (SNA, асинхронный и т.д.) в протокол Х.25. Фактически протокол Х.25 является интерфейсом между абонентом и сетью, а Х.75 является протоколом для использования между узлами сети коммутации пакетов. Оба протокола аналогичны, но протокол Х.75 предоставляет услуги, которые запрашиваются внутри сети с коммутацией пакетов и не касаются абонентских интерфейсов. Кроме того, Х.75 может рассматриваться только как протокол сетевого уровня, в то время как Х.25 поддерживает повторную передачу, сегментирование и сборку блоков данных.
Рис. 9.4. Пример объединения сетей с коммутацией пакетов 9.3. АРХИТЕКТУРА ПРОТОКОЛА Х. Архитектура Х.25 содержит три уровня, соответствующие трем нижним уровням модели OSI (рис.9.5). На физическом уровне протокол Х.25 определяет электрический интерфейс между DTE и DCE. Стандарты Х.25 физического уровня приведены в рекомендациях Х21 и Х21-бис.
Второй уровень интерфейса содержит функции, реализующие процедуру управления звеном данных HDLC (High-level Data Link Control Procedure), и отвечает за надежную передачу данных через физический стык. В Х.25 протоколом уровня звена передачи данных является протокол LAPB. Этому протоколу отводится роль формирования кадров, содержащих в информационном поле передаваемые данные. Кадр в процедуре HDLC переносит через интерфейс Х25 один пакет данных. Протокол LAPB применяется для формирования двухточечного соединения между DCE и DTE. Никаких спецификаций мультиплексирования каналов (аналогичных LAPD) не существует. LAPB используется для передачи информации уровня 3 Х.25, но, как уже отмечалось, этот протокол является не самым элегантным методом передачи данных через интерфейсы ISDN. Информацию уровня 3 Х.25 можно поместить в кадр LAPD.
Рис. 9.5. Взаимосвязь между архитектурами OSI и Х. Третий уровень содержит функции, необходимые для упаковки данных в пакеты и для создания виртуальных каналов, по которым эти пакеты передаются. Управление потоком осуществляет механизм окна, связанный с каждым виртуальным каналом. Средства сброса и рестарта дают возможность выполнять в интерфейсе процедуры восстановления после ошибок.
Формат пакетов Х.25 имеет вид, показанный на рис.9.6 [59]. Первый разряд К/И в байте указывает, является ли пакет информационным или управляющим. Остальная часть байта служит для указания типа управляющего пакета. В следующем байте две группы по 4 разряда служат для указания длины адресного поля вызывающего и вызываемого DTE, соответственно.
Затем следуют сами эти поля. В режиме быстрого поиска в конце пакета могут быть добавлены данные пользователя (до 16 байтов).
Рис. 9.6. Структура пакета Х.25: общий формат Фактически различия между архитектурами Х.25 и OSI имеют место именно на этом, сетевом уровне, который по терминологии Х.25 называется уровнем пакетов. Протокол Х. ориентирован на соединения в виде виртуальных каналов, которые организуются с использованием ресурса постоянно существующих логических каналов. Каждому DTE доступно до 4095 таких каналов. Точнее говоря, предусматривается до 15 групп логических каналов по каналов в каждом. Группа адресуется четырьмя, а канал — восемью битами в заголовке пакета.
Двоичные значения этих полей означают номер группы и номер канала соответственно.
Существует взаимно однозначное соответствие между номерами логических каналов в DTE и DCE. Фактическое количество логических каналов, которые может использовать DTE, определяется администрацией сети. Логические каналы используются для организации двух типов виртуальных соединений — устанавливаемых по запросу и постоянных. Иными словами, пакетный уровень реализует два типа услуг предоставления виртуальных каналов — услуги оперативного предоставления виртуального соединения (Virtual Call service, VC) и услуги предоставления постоянного виртуального канала связи (Permanent Virtual Circuit service, PVC).
Виртуальные соединения по запросу (virtual calls) формируются процедурами создания и аннулирования соединения, т.е. пакеты маршрутизируются по виртуальному каналу, организуемому в сети протоколом третьего уровня перед передачей пакетов. Процедура создания инициируется со стороны DTE, посылающего к DCE по свободному логическому каналу пакет запроса соединения. Протокол Х25 предполагает выбор свободного канала с наибольшим номером. Пакет запроса должен в явном виде содержать адрес получателя. По получении пакета с запросом соединения DCE передает этот пакет через сеть к DCE, с которым связан вызываемый DTE, причем на вызываемой стороне выбирается свободный логический канал с наименьшим номером. Вызываемый DTE имеет возможность принять или отвергнуть поступивший запрос, а вызывающий DTE получит ответ, указывающий на то, принял или нет запрос вызываемый DTE. В случае принятия запроса между двумя DTE организуется виртуальное соединение и наступает фаза переноса данных. В случае же, когда соединение по какой-либо причине не может быть установлено, сеть возвращает вызывающему DTE пакет разъединения, содержащий информацию о соответствующей причине. Нарушить установленное соединение может любой из DTE, в нем участвующих.
Постоянный виртуальный канал связи (permanent virtual circuit) представляет собой постоянное соединение между двумя DTE и поддерживается сетью все время. Процедуры оперативного создания и аннулирования для него не нужны, и постоянный виртуальный канал связи подобен, таким образом, выделенной линии связи.
9.4. ПРИМЕНЕНИЯ ПРОТОКОЛА Х. Протокол Х.25 широко используется уже почти четверть века, в первую очередь, для создания всемирной сети с коммутацией пакетов.
Ближе к тематике данной книги применение Х.25 в системах централизации технической эксплуатации ТфОП. Именно таким образом, например, организованы центры дистанционного технического обслуживания и эксплуатации (MMSW) коммутационных станций DX-200 (Nokia) и АТСЦ-90 (ЛОНИИС).
Другая сфера применения Х.25 связана также с дистанционным, но не техническим обслуживанием АТС. Речь идет о мониторинге телефонных разговоров. Практика мониторинга телефонных линий существует достаточно давно: первые упомянутые в литературе устройства для мониторинга телефонных переговоров в России были установлены в помещении IV Государственной думы в 1913 году [45]. Сегодня организационные аспекты в этой области регламентируются законом «Об оперативно-розыскной деятельности в Российской Федерации»
от 13.03.92, но более глубокая, по мнению автора, регламентирующая формула появилась на веков раньше и принадлежит Ювеналу: Quis custodiet ipsos custodes? (Кто устережет самих сторожей?). По этой причине технические детали данной сферы применения протокола Х. останутся за пределами книги, а внимание будет уделено другой области — ISDN.
Стандарты ISDN разрабатывались так, чтобы сети Х.25 можно было встроить в ISDN.
Взаимодействие Х.25 и ISDN описывается в рекомендации ХЗ1. По существу, в этой рекомендации определяются два основных варианта обслуживания терминального оборудования Х.25 сетью ISDN (доступа к услугам связи с коммутацией пакетов через сеть ISDN).
При использовании варианта, обозначенного в рекомендации как Case А, сеть ISDN предоставляет оборудованию Х.25 прозрачный канал (коммутируемый или полупостоянный) для доступа к шлюзу сети Х.25. Устройство DTE Х.25 запрашивает через терминальный адаптер ISDN соединение с устройством DCE Х.25 в режиме виртуального канала. Для установления соединения ISDN между терминальным адаптером и шлюзом используется D-канал и протоколы ISDN. Сигнализация по D-каналу ISDN заканчивается в АТС, а собственно виртуальный канал между DCE и DTE устанавливается по В-каналу ISDN средствами уровня 3 протокола Х.25. Этот же В-канал используется затем для передачи трафи-ка пакетов Х.25.
При использовании варианта Case В возможности коммутации пакетов Х.25 становятся частью ISDN. Устройство DTE создает виртуальный канал средствами ISDN, а АТС ISDN может обеспечить коммутацию пакетов или получить доступ к DCE X.25. Обслуживание вызова и управление реализуются средствами ISDN. Данный вариант принят в качестве стандарта для североамериканских сетей ISDN и служит основным способом запроса пересылки кадров LAPB по В-каналу, а также методом инкапсуляции кадров LAPB в кадры LAPD для пересылки по Dканалу.
С тех пор, как в исходных стандартах ISDN для коммутации пакетов неречевого трафика был использован стандарт Х.25, произошли значительные усовершенствования в среде передачи данных и в применяемых протоколах, позволяющие достичь очень низкого уровня ошибок. В нормативных документах ISDN, выпущенных после 1988 г., уже рекомендуется вместо коммутации пакетов Х.25 использовать технику Frame Relay, ориентированную лишь на минимальный контроль ошибок при передаче. Снижение непроизводительных затрат времени на контроль ошибок может позволить соответствующим образом увеличить скорость обмена данными.
ПРОТОКОЛЫ ИНТЕРНЕТ
Все реки текут в море, но море не переполняется: к тому месту, откуда реки текут, они возвращаются, чтобы опять течь. Екклесиаст (гл. 1, ст.4-11) 10.1. ПРОТОКОЛЫ TCP/IP И МОДЕЛЬ OSI В истории античных времен названы семь чудес света: египетские пирамиды, храм Артемиды в Эфесе, Мавзолей в Галикариасе, статуя Зевса в Олимпе, Колосс Родосский, висячие сады Семирамиды в Вавилоне и Александрийский маяк. Для истории XX века в семерку чудес света наряду с телефоном, радио, компьютером, вероятно, должна войти и всемирная сеть Интернет, базирующаяся на наборе протоколов TCP/IP (Transmission Control Protocol/Internet Protocol).Протоколы TCP/IP были разработаны почти три десятилетия назад по заказу Управления перспективных исследований и разработок Министерства обороны США (ARPA) и внедрены в государственной сети Defense Data Network (DDN), включающей в себя сети ARPANET и MILNET. Первоначальная цель была связана с построением отказоустойчивой коммуникационной сети, которая могла бы функционировать даже при выходе из строя ее большей части, например, из-за ядерных бомбардировок. Широкое распространение TCP/IP получили в 1982 году, когда средства их поддержки были включены в ядро операционной системы UNIX 4.2BSD. Это объединение TCP/IP с ОС UNIX сделало протоколы TCP/IP доступными для всех UNIX-сетей. В том же году произошло еще одно важное событие в истории TCP/IP — в упомянутый комплект был включен протокол разрешения адреса ARP (Address Resolution Protocol), который ставит Ethernet-адреса в соответствие межсетевым TCP/IP-адресам.
Затем протоколы TCP/IP были реализованы на рабочих станциях семейства Sun в сетевых файловых системах NFS (Network File System) для обеспечения межсетевых коммуникаций.
Сейчас практически невозможно найти аппаратуру или операционную систему, где в той или иной форме не применялся бы протокол TCP/IP. Но самое главное для набора протоколов TCP/IP сегодня — обслуживание Сети сетей — Интернет.
В предыдущей, да и во многих других главах этой книги автор пропагандировал комплект протоколов OSI в качестве стандарта в области построения телекоммуникационных сетей. Происходящая буквально на глазах конвергенция сетей связи и компьютерных сетей позволяет предположить дальнейшую экспансию этой модели в область протоколов компьютерных сетей, но сегодня, тем не менее, стандартом де-факто для последних является набор протоколов TCP/IP.
Как видно из рис. 10.1, протоколы TCP и IP приблизительно соответствуют транспортному и сетевому уровням модели OSI, в связи с чем область применения TCP/IP не ограничена какимилибо конкретными аппаратными платформами. Они могут работать также над рассмотренным в предыдущей главе протоколом передачи данных в сетях с коммутацией пакетов Х.25, который охватывает три нижних уровня модели OSI.
Рис. 10.1. Соответствие между архитектурами OSI и TCP/IP Различие между подходом модели OSI и прагматическим подходом семейства протоколов TCP/IP связано, в частности, с количеством уровней: пятиуровневая модель TCP/IP и семиуровневая модель OSI.
В предыдущей главе обсуждались реализованные в OSI принципы, ориентированные на максимальную общность и функциональность, что вносит, естественно, некоторую избыточность.
Так, например, протокол Х.25 дублирует ряд функций на каждом уровне, чтобы обеспечить максимальную независимость уровней друг от друга. Подсчитываются контрольные суммы и устанавливается таймер на ожидание событий и на уровне звена, и на сетевом уровне, что повышает надежность, однако увеличивает стоимость реализации и снижает эффективность протокола в целом.
Подобная избыточность проявляется также в введении двух следующих уровней семиуровневой модели OSI: сеансового уровня и уровня представления данных. Наличие сеансового уровня можно считать целесообразным для телекоммуникационных протоколов, в которых необходимы процедуры установления сеанса (LOGIN) и завершения этого сеанса. Эти процедуры должны выполняться многократно, например, при организации доступа пользователей к общесетевым ресурсам. Но для целого ряда приложений функциональная полезность сеансового уровня вызывает сомнения. Не выглядит абсолютно необходимым и выделение в отдельный уровень телекоммуникационного протокола функций представления данных. Сжатие, конвертирование, кодирование, форматирование и распознавание структур данных выполняются не только на этом уровне, эти же самые операции выполняются на других уровнях — звена данных и прикладном.
Высказанные критические замечания к архитектуре OSI можно уравновесить не менее критическими оценками протоколов TCP/IP, причем не только ради справедливости, но и для технического анализа. Эта критика отчасти связана с различным функциональным наполнением одноименных уровней в протоколах TCP/IP и в модели OSI, что показано на рис.10.1. Так, рассматриваемая ниже система пересылки файлов FTP представляется гораздо более тривиальной, чем протокол FTAM, а электронная почта TCP/IP, по мнению автора, выглядит несколько ограниченной на фоне почтового сервиса протокола Х.400, соответствующего модели OSI. Действительно, тезис о том, что наши недостатки являются продолжением наших достоинств, справедлив не только для человеческих характеров.
Особенности обеих архитектур обуславливают актуальность проблемы их совместного функционирования при обеспечении электронного обмена данными и реализации сложных функций управления телекоммуникационными сетями. Одним из решений проблемы согласования TCP/IP и OSI является метод шлюзов. Не слишком высокое быстродействие этого метода делает его недостаточно эффективным для сетевых приложений, работающих в реальном времени, но для электронной почты или для пересылки небольших файлов его возможностей вполне достаточно. Доказательством тому служит, в частности, наличие на рынке шлюзов прикладного уровня FTAM — FTP и Х.400 — SMTP. Известны также весьма простой метод двухпротокольного стека и метод, предусматривающий использование моста транспортного сервиса (transport-service bridge). Такой мост, работая как маршрутизатор, позволяет выполнять прикладные программы OSI в TCP/IP-сетях. Он осуществляет маршрутизацию блоков данных протоколов OSI, упаковывая их так, чтобы они эмулировали TCP/IP.
Несколько слов о рассматриваемых в этой главе протоколах Интернет. TCP/IP — это не один протокол, а набор, содержащий более 100 протоколов, каждый из которых нацелен на конкретное приложение в рамках объединенной сети. Данный фактор делает TCP/IP чрезвычайно гибким, поскольку каждый протокол можно использовать независимо от других с разной технологией транспортировки, но ограничивает возможность вразумительно описать характеристики этих протоколов в одной главе.
10.2. ПРОТОКОЛ УПРАВЛЕНИЯ ПЕРЕДАЧЕЙ TCP Протокол управления передачей (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 в Ethernet. В протоколах, не ориентированных на соединение, например, в UDP, дейтаграммы зачастую называются «блоками данных», передаваемыми из IP на уровень звена данных. Если блок данных прошел через разные уровни и передается на физический уровень, он считается «кадром». Если блок данных прошел через сеть, он называется «пакетом». Эти термины и определения следует рассматривать не как охватывающий все и вся стандарт, а как попытку согласования различных терминологий, а более откровенно — как расплату за ранее принятое автором опрометчивое решение собрать в одной монографии разнообразные телекоммуникационные протоколы, терминология для каждого из которых имеет свою исторически обусловленную специфику.
Функционально, впрочем, все выглядит весьма просто. Для создания дейтаграммы протокол TCP добавляет к поступающим от прикладного уровня данным заголовок, содержащий управляющую информацию. Протокол IP добавляет к дейтаграмме свой заголовок, содержащий дополнительные инструкции. Локальная сеть вводит в дейтаграмму свою управляющую информацию в виде еще одного заголовка. Таким образом, дейтаграмма включает в себя три отдельных заголовка, каждый из которых содержит управляющую информацию различного назначения: Ethernet-заголовок, IP-заголовок и TCP-заголовок. Структура TCP-заголовка изображена на рис.10.2.
Поля порта источника (source port) и порта назначения (destination port) содержат номера портов взаимодействующих программ. Это связано с тем, что адресация на уровне протокола TCP предназначена, скорее, для передачи дейтаграмм между логическими объектами внутри компьютера, чем для фактического соединения пользователя с сетью. Более того, и рассматриваемый в следующем параграфе адрес IP тоже не является физическим адресом, а характеризует соединение с сетью и идентифицирует пользователя. Поэтому номера портов назначения и источника представляют собой числа длиной 16 битов, идентифицирующие приложения, которые используют услуги TCP (например, FTP, TELNET, протоколы электронной почты SMTP, POP3 и т.п.). Номера порта от 0 до 255 определены заранее и не могут задаваться операторами, а номера после 255 могут произвольно определяться для каждой конкретной сети. Примеры фиксированных номеров портов, определяемые протоколом TCP: данные FTP — 20; управление FTP - 21; TELNET - 23; протокол SMTP - 25; сервер имен главного компьютера — 42; сервер имен домена — 53; почтовый протокол РОР2 - 109.
Порт источника (16 битов) Порт назначения (16 битов) Порядковый номер (32 бита) Номер подтверждения (32 бита) данных (4 ( Контрольная сумма (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 работать с поврежденными, потерянными, дублированными,или поступившими с изменением порядка следования пакетами.
10.3. ПРОТОКОЛЫ UDP и ICMP Протокол дейтаграмм пользователя UDP (user datagram protocol) относится к протоколам без установления логического соединения и предназначен для обмена дейтаграммами между процессами компьютеров, входящих в единую сеть с коммутацией пакетов.
В отличие от протокола TCP, в протоколе UDP отсутствует подтверждение приема блоков данных, что делает UDP намного проще, чем TCP, но относительно менее надежным. Данное обстоятельство не представляет опасности для таких применений как электронная почта и некоторые функции сетевого управления, когда мощные механизмы обеспечения надежности протокола TCP не требуются и когда протоколы верхнего уровня могут компенсировать недостатки UDP. Преимущество протокола UDP состоит в том, что он требует минимум установок и параметров для-соединения двух процессов между собой и, если не требуется большого объема обработки, блоки данных могут быть посланы и приняты с очень малым временем задержки.
Структура заголовка UDP представлена на рис.10.3 и гораздо проще, чем в TCP. Отсутствие подтверждений исключает из заголовка порядковые номера и поля номера подтверждения или возможности обработки срочных данных.
Порт источника (16 битов) Порт назначения (16 битов) Длина сообщения UDP (16 Контрольная сумма UPD Рис. 10.3 Заголовок UDP Существуют номера порта-отправителя (source port) и порта назначения (destinaion port), поля длины (length) и контрольной суммы (checksum). Поле порта-отправителя может, если нужно, содержать номер порта, из которого был отправлен пакет (например, если отправитель ожидает ответа). Если это поле не используется, оно заполняется нулями. Поле длины содержит сведения о длине дейтаграммы (в байтах), включая заголовок и данные. Минимальная длина равна 8. Поле контрольной суммы UDP-пакета содержит побитное дополнение 16-битовой суммы 16-битовых слов (аналогично TCP).
Больше ничего не требуется. Очевидно, именно это позволяет принимающим главным компьютерам обрабатывать блоки данных гораздо быстрее, так как все, что требуется — это передать принятые блоки данных соответствующему приложению, идентифицируемому номером порта.
Могут возникать ситуации, когда при передаче дейтаграммы возникают ошибки, о которых необходимо сообщить отправителю или другому хост-компьютеру. Для передачи этих сообщений или информации служебного характера предназначен протокол передачи управляющих сообщений ICMP (Internet Control Message Protocol). Как и протоколы TCP и UDP, протокол ICMP использует IP в качестве протокола нижнего уровня, однако по своей структуре и назначению ICMP является частью IP, рассматриваемого в следующем параграфе.
На рис.10.4 показана структура заголовка ICMP-пакета. Данному заголовку ICMP предшествует обычный IP-заголовок без поля опций (Options) и выравнивания (Padding), а поля TOS=0, Protocol = l.
Различные типы сообщений ICMP определяются полем «типа», которое показывает, почему генерировалось сообщение ICMP, например, «destination unreachable» (пункт назначения недосягаем). Для протокола определено 13 типов сообщений. Поле «код заголовка» также носит служебный характер и обеспечивает дополнительную информацию об ошибке, расширяя иерархию сообщений данного типа. ICMP по нескольку раз в день пользуются администраторы сетей и разработчики сетевого программного обеспечения, поскольку на его основе работают такие популярные утилиты, как пакетный межсетевой щуп PING (packet internetwork grouper) и TRACEROUTE, позволяющая просматривать путь маршрутизации пакета от пользователя до удаленного хост-компьютера.
Рис. 10.4. Заголовок ICMP Обычно шлюзы генерируют сообщение ICMP с исходящим хост-компьютером в качестве получателя. Это означает, что программное обеспечение ICMP, находящееся в шлюзах, является более сложным, чем находящееся в хост-компьютерах.
Следует подчеркнуть, что ICMP не обеспечивает обнаружение ошибок для IP, а является просто средством, используемым IP для передачи сообщений об ошибках хост-компьютерам.
10.4. МЕЖСЕТЕВОЙ ПРОТОКОЛ IP Как уже подчеркивалось ранее в данной главе, протокол IP вовсе не обязателен для TCP.
Протокол TCP может использовать для доставки данных почти любой протокол сетевого уровня, если тот способен обеспечить услуги маршрутизации и поддерживает интерфейс между двумя уровнями. Тем не менее, информация маршрутизации для данных от TCP, которые должны транспортироваться через сети, в подавляющем большинстве приложений обеспечивается протоколом IP. И это при том, что сам протокол не исправляет ошибки, а только сообщает об ошибках в исходящие хост-компьютеры с помощью рассмотренного в предыдущем параграфе протокола ICMP, размещаемого на том же уровне 3 в хост-компьютере.
Структура IP-заголовка и его поля представлены на рис.10.5.
Поле «версия» (version, 4 бита) в заголовке IP предназначено для идентификации версии IP, использованной для создания заголовка. Если заголовок IP был создан в сети, использующей более новую версию IP, он может содержать информацию, которая не распознается более старой версией IP. В этом случае принимающая сеть, работающая со старой версией IP, уведомляется о необходимости пропустить нераспознаваемые поля. В данной главе рассматриваются версии 4 и Адрес IP источника Адрес IP назначения Рис. 10.5. Заголовок IP Поле «длина заголовка» (IHL — Internet Header Length, 4 бита) содержит длину заголовка IP-пакета в 32-разрядных словах. Значение этого поля не может быть меньше 5.
В поле «тип обслуживания» (TOS — Type of Service, 8 битов) указывается требуемое качество обслуживания данных. В других протоколах это поле часто называют качеством обслуживания (QoS). Данное поле включает четыре параметра, содержащих информацию о приоритете дейтаграммы, о возможности поступления последовательности таких дейтаграмм с регулярными интервалами, о критичности ошибок, о важности скорости доставки дейтаграммы и, наконец, об относительной важности скорости по сравнению с надежностью на случай конфликта между двумя этими критериями. Введены следующие обозначения: РРР — приоритет, D — атрибуты задержки, Т — атрибуты пропускной способности, R — атрибуты надежности.
Трехбитовый код РРР указывает уровень приоритета блока данных, применяемый для управления перегрузкой (блоки данных с меньшим приоритетом могут быть отброшены, в то время как блокам данных с более высоким приоритетом разрешается прохождение) и для управления потоком. Поле задержки D указывает, какова допустимая задержка при передаче пакета. Данное поле может принимать два значения: нормальная задержка и малая задержка. Значение соответствует малой задержке. Поле пропускной способности Т указывает, какова должна быть пропускная способность средств доставки данного блока данных. Например, если блок данных сгенерирован приложением реального времени (интерактивный режим), приложение может запросить ускоренную доставку блоков данных, что требует высокой пропускной способности средств доставки. Допустимые значения — нормальная или высокая пропускная способность. Поле надежности 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.
Каждый протокол, относящийся к TCP/IP, идентифицируется фиксированным номером. В таблице 10.1 содержатся номера, назначенные стандартами для наиболее распространенных протоколов. Если имеется TCP-заголовок, то в этом поле будет стоять его номер.