Техника виртуальных каналов, используемая во всех территориальных сетях с коммутацией пакетов, кроме TCP/IP, состоит в следующем.
Прежде чем пакет будет передан через сеть, необходимо установить виртуальное соединение между абонентами сети - терминалами, маршрутизаторами или компьютерами. Существуют два типа виртуальных соединений - коммутируемый виртуальный канал (Switched Virtual Circuit, SVC) и постоянный виртуальный канал (Permanent Virtual Circuit, PVC). При создании коммутируемого виртуального канала коммутаторы сети настраиваются на передачу пакетов динамически, по запросу абонента, а создание постоянного виртуального канала происходит заранее, причем коммутаторы настраиваются вручную администратором сети, возможно, с привлечением централизованной системы управления сетью.
Смысл создания виртуального канала состоит в том, что маршрутизация пакетов между коммутаторами сети на основании таблиц маршрутизации происходит только один раз - при создании виртуального канала (имеется в виду создание коммутируемого виртуального канала, поскольку создание постоянного виртуального канала осуществляется вручную и не требует передачи пакетов по сети). После создания виртуального канала передача пакетов коммутаторами происходит на основании так называемых номеров или идентификаторов виртуальных каналов (Virtual Channel Identifier, VCI). Каждому виртуальному каналу присваивается значение VCI на этапе создания виртуального канала, причем это значение имеет не глобальный характер, как адрес абонента, а локальный - каждый коммутатор самостоятельно нумерует новый виртуальный канал. Кроме нумерации виртуального канала, каждый коммутатор при создании этого канала автоматически настраивает так называемые таблицы коммутации портов - эти таблицы описывают, на какой порт нужно передать пришедший пакет, если он имеет определенный номер VCI. Так что после прокладки виртуального канала через сеть коммутаторы больше не используют для пакетов этого соединения таблицу маршрутизации, а продвигают пакеты на основании номеров VCI небольшой разрядности. Сами таблицы коммутации портов также включают обычно меньше записей, чем таблицы маршрутизации, так как хранят данные только о действующих на данный момент соединениях, проходящих через данный порт.
Работа сети по маршрутизации пакетов ускоряется за счет двух факторов. Первый состоит в том, что решение о продвижении пакета принимается быстрее из-за меньшего размера таблицы коммутации. Вторым фактором является уменьшение доли служебной информации в пакетах. Адреса конечных узлов в глобальных сетях обычно имеют достаточно большую длину - 14-15 десятичных цифр, которые занимают до 8 байт (в технологии АТМ - 20 байт) в служебном поле пакета. Номер же виртуального канала обычно занимает 10-12 бит, так что накладные расходы на адресную часть существенно сокращаются, а значит, полезная скорость передачи данных возрастает.
Режим PVC является особенностью технологии маршрутизации пакетов в глобальных сетях, в сетях TCP/IP такого режима работы нет. Работа в режиме PVC является наиболее эффективной по критерию производительности сети. Половину работы по маршрутизации пакетов администратор сети уже выполнил, поэтому коммутаторы быстро занимаются продвижением кадров на основе готовых таблиц коммутации портов. Постоянный виртуальный канал подобен выделенному каналу в том, что не требуется устанавливать соединение или разъединение. Обмен пакетами по PVC может происходить в любой момент времени. Отличие PVC в сетях Х.25 от выделенной линии типа 64 Кбит/с состоит в том, что пользователь не имеет никаких гарантий относительно действительной пропускной способности PVC. Использование PVC обычно намного дешевле, чем аренда выделенной линии, так как пользователь делит пропускную способность сети с другими пользователями.
Режим продвижения пакетов на основе готовой таблицы коммутации портов обычно называют не маршрутизацией, а коммутацией и относят не к третьему, а ко второму (канальному) уровню стека протоколов.
Принцип маршрутизации пакетов на основе виртуальных каналов поясняется на рис. 6.21. При установлении соединения между конечными узлами используется специальный тип пакета - запрос на установление соединения (обычно называемый Call Request), который содержит многоразрядный (в примере семиразрядный) адрес узла назначения.
Рис. 6.21. Коммутация в сетях с виртуальными соединениями
Пусть конечный узел с адресом 1581120 начинает устанавливать виртуальное соединение с узлом с адресом 1581130. Одновременно с адресом назначения в пакете Call Request указывается и номер виртуального соединения VCI. Этот номер имеет локальное значение для порта компьютера, через который устанавливается соединение. Через один порт можно установить достаточно большое количество виртуальных соединений, поэтому программное обеспечение протокола глобальной сети в компьютере просто выбирает свободный в данный момент для данного порта номер. Если через порт уже проложено 3 виртуальных соединения, то для нового соединения будет выбран номер 4, по которому всегда можно будет отличить пакеты данного соединения от пакетов других соединений, приходящих на этот порт.
Далее пакет типа Call Request с адресом назначения 1581130, номером VCI 4 и адресом источника 1581120 отправляется в порт 1 коммутатора К1 сети. Адрес назначения используется для маршрутизации пакета на основании таблиц маршрутизации, аналогичных таблицам маршрутизации протокола IP, но с более простой структурой каждой записи. Запись состоит из адреса назначения и номера порта, на который нужно переслать пакет. Адрес следующего коммутатора не нужен, так как все связи между коммутаторами являются связями типа «точка-точка», множественных соединений между портами нет. Стандарты глобальных сетей обычно не описывают какой-либо протокол обмена маршрутной информацией, подобный RIP или OSPF, позволяющий коммутаторам сети автоматически строить таблицы маршрутизации. Поэтому в таких сетях администратор обычно вручную составляет подобную таблицу, указывая для обеспечения отказоустойчивости основной и резервный пути для каждого адреса назначения. Исключением являются сети АТМ, для которых разработан протокол маршрутизации PNNI, основанный на алгоритме состояния связей.
В приведенном примере в соответствии с таблицей маршрутизации оказалось необходимым передать пакет Call Request с порта 1 на порт 3. Одновременно с передачей пакета маршрутизатор изменяет номер виртуального соединения пакета - он присваивает пакету первый свободный номер виртуального канала для выходного порта данного коммутатора. Каждый конечный узел и каждый коммутатор ведет свой список занятых и свободных номеров виртуальных соединений для всех своих портов. Изменение номера виртуального канала делается для того, чтобы при продвижении пакетов в обратном направлении (а виртуальные каналы обычно работают в дуплексном режиме), можно было отличить пакеты данного виртуального канала от пакетов других виртуальных каналов, уже проложенных через порт 3. В примере через порт 3 уже проходит несколько виртуальных каналов, причем самый старший занятый номер - это номер 9. Поэтому коммутатор меняет номер прокладываемого виртуального канала с 4 на 10.
Кроме таблицы маршрутизации для каждого порта составляется таблица коммутации. В таблице коммутации входного порта 1 маршрутизатор отмечает, что в дальнейшем пакеты, прибывшие на этот порт с номером VCI равным 4 должны передаваться на порт 3, причем номер виртуального канала должен быть изменен на 10. Одновременно делается и соответствующая запись в таблице коммутации порта 3 - пакеты, пришедшие по виртуальному каналу 10 в обратном направлении нужно передавать на порт с номером 1, меняя номер виртуального канала на 4. Таким образом, при получении пакетов в обратном направлении компьютер-отправитель получает пакеты с тем же номером VCI, с которым он отправлял их в сеть.
В результате действия такой схемы пакеты данных уже не несут длинные адреса конечных узлов, а имеют в служебном поле только номер виртуального канала, на основании которого и производится маршрутизация всех пакетов, кроме пакета запроса на установление соединения. В сети прокладывается виртуальный канал, который не изменяется в течение всего времени существования соединения. Его номер меняется от коммутатора к коммутатору, но для конечных узлов он остается постоянным.
За уменьшение служебного заголовка приходится платить невозможностью баланса трафика внутри виртуального соединения. При отказе какого-либо канала соединение приходится также устанавливать заново.
По существу, техника виртуальных каналов позволяет реализовать два режима продвижения пакетов - стандартный режим маршрутизации пакета на основании адреса назначения и режим коммутации пакетов на основании номера виртуального канала. Эти режимы применяются поэтапно, причем первый этап состоит в маршрутизации всего одного пакета - запроса на установление соединения.
Техника виртуальных каналов имеет свои достоинства и недостатки по сравнению с техникой IP- или IPX-маршрутизации. Маршрутизация каждого пакета без предварительного установления соединения (ни IP, ни IPX не работают с установлением соединения) эффективна для кратковременных потоков данных. Кроме того, возможно распараллеливание трафика для повышения производительности сети при наличии параллельных путей в сети. Быстрее отрабатывается отказ маршрутизатора или канала связи, так как последующие пакеты просто пойдут по новому пути (здесь, правда, нужно учесть время установления новой конфигурации в таблицах маршрутизации). При использовании виртуальных каналов очень эффективно передаются через сеть долговременные потоки, но для кратковременных этот режим не очень подходит, так как на установление соединения обычно уходит много времени - даже коммутаторы технологии АТМ, работающие на очень высоких скоростях, тратят на установление соединения по 5-10 мс каждый. Из-за этого обстоятельства компания Ipsilon разработала несколько лет назад технологию IP-switching, которая вводила в сети АТМ, работающие по описанному принципу виртуальных каналов, режим передачи ячеек без предварительного установления соединения. Эта технология действительно ускоряла передачу через сеть кратковременных потоков IP-пакетов, поэтому она стала достаточно популярной, хотя и не приобрела статус стандарта. В главе 5 были рассмотрены методы ускорения маршрутизации трафика IP в локальных сетях. Особенностью всех подобных методов является ускорение передачи долговременных потоков пакетов. Технология IP-switching делает то же самое, но для кратковременных потоков, что хорошо отражает рассмотренные особенности каждого метода маршрутизации - маршрутизации на индивидуальной основе или на основе потоков пакетов, для которых прокладывается виртуальный канал.
Сети Х.25