Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
49
Добавлен:
25.03.2016
Размер:
892.42 Кб
Скачать

Несмотря на применение иерархической адресации в некоторых крупных сетях (например, в Интернете), коммутаторы могут иметь таблицы с числом входов, превышающем несколько тысяч. На рис. 3.8 показано, как могла бы выглядеть таблица коммутации в дейтаграммной сети.

В таблице коммутации для одного и того же адреса назначения может содержаться несколько записей, указывающих соответственно на различные адреса следующего коммутатора. Такой подход называется балансом нагрузки и используется для повышения производительности и надежности сети. В примере, показанном на рис. 3.8, пакеты, поступающие в коммутатор S1 для узла назначения с адресом N2 в целях баланса нагрузки распределяются между двумя следующими коммутаторами — S2 и S3, что снижает нагрузку на каждый из них, а значит, уменьшает очереди и ускоряет доставку. Некоторая «размытость» путей следования пакетов с одним и тем же адресом назначения через сеть является прямым следствием принципа независимой обработки каждого пакета, присущего дейтаграммному методу. Пакеты, следующие по одному и тому же адресу назначения, могут добираться до него разными путями также вследствие изменения состояния сети, например отказа промежуточных коммутаторов.

Дейтаграммный метод работает быстро, так как никаких предварительных действий перед отправкой данных проводить не требуется. Однако при таком методе трудно проверить факт доставки пакета узлу назначения. Этот метод не гарантирует доставку пакета, он делает это по мере возможности — для описания такого свойства используется термин доставка с максимальными усилиями (best effort).

Рис. 3.8. Иллюстрация дейтаграммного принципа передачи пакетов

Логическое соединение

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

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

Рис. 3.9. Передача без установления соединения (а)

и с установлением соединения (б)

Передача с установлением соединения более надежна, но требует больше времени для передачи данных и вычислительных затрат от конечных узлов, что иллюстрирует рис. 3.9.

При передаче с установлением соединения узлу-получателю отправляется служебный кадр специального формата с предложением установить соединение, как показано на рис. 3.9, б. Если узел-получатель согласен с этим, то он посылает в ответ другой служебный кадр, подтверждающий установление соединения и предлагающий некоторые параметры, которые будут использоваться в рамках данного логического соединения. Это могут быть, например, идентификатор соединения, максимальное значение длины поля данных кадров, количество кадров, которые можно отправить без получения подтверждения, и т. п. Узел-инициатор соединения может закончить процесс установления соединения отправкой третьего служебного кадра, в котором сообщит, что предложенные параметры ему подходят. На этом логическое соединение считается установленным. Логическое соединение может быть рассчитано на передачу данных как в одном направлении — от инициатора соединения, так и в обоих направлениях. После передачи некоторого законченного набора данных, например определенного файла, узел-отправитель инициирует разрыв данного логического соединения, посылая соответствующий служебный кадр.

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

Виртуальный канал

Виртуальные каналы (virtual circuit, или virtual channel) — это устойчивые пути следования трафика, создаваемые в сети с коммутацией пакетов. Виртуальные каналы являются базовой концепцией технологий Х.25, Frame Relay и ATM.

Техника виртуальных каналов учитывает существование в сети потоков данных. Для того чтобы выделить поток данных из общего трафика, каждый пакет этого потока помечается меткой. Так же как в сетях с установлением логических соединений, прокладка виртуального канала начинается с отправки из узла-источника запроса, называемого также пакетом установления соединения. В запросе указывается адрес назначения и метка потока, для которого прокладывается этот виртуальный канал. Запрос, проходя по сети, формирует новую запись в каждом из коммутаторов, расположенных на пути от отправителя до получателя. Запись говорит о том, каким образом коммутатор должен обслуживать пакет, имеющий заданную метку. Образованный виртуальный канал идентифицируется той же меткой (эта метка в различных технологиях называется по-разному: номером логического канала (Logical Channel number, LCN) в технологии Х.25, идентификатором соединения уровня канала данных (Data Link Connection Identifier, DLCI) в технологии Frame Relay, идентификатором виртуального канала (Virual Channel Identifier, VCI) в технологии ATM).

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

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

Примечание. Использование в сетях техники виртуальных каналов не делает их сетями с коммутацией каналов. Хотя в подобных сетях применяется процедура предварительного установления канала, этот канал является виртуальным, то есть по нему передаются отдельные пакеты, а не потоки информации с постоянной скоростью, как в сетях с коммутацией каналов.

На рис. 3.10 показан фрагмент сети, в которой проложены два виртуальных канала - VC1 и VC2.

Первый проходит от конечного узла с адресом N1 до конечного узла с адресом N2 через промежуточные коммутаторы S1, S2 и S4. Второй обеспечивает продвижение данных по пути N3 — S5 — S3 — S1 —N1. B принципе между двумя конечными узлами может быть проложено несколько виртуальных каналов, например, еще один виртуальный канал между узлами N1 и N2 мог бы проходить через промежуточные коммутаторы S1, S3 и S4.

Рис. 3.10. Иллюстрация принципа работы виртуального канала

Сравнение сетей с коммутацией пакетов и каналов

Список ключевых слов: мультипрограммная операционная система, время буферизации, коммутация пакетов, коммутация каналов, время распространения сигнала в физической среде, время пакетизации, конвейерная передача.

Прежде чем проводить техническое сравнение сетей с коммутацией пакетов и сетей с коммутацией каналов, проведем их неформальное сравнение на основе, как нам кажется, весьма продуктивной транспортной аналогии.

Транспортная аналогия для сетей с коммутацией пакетов и каналов

Для начала убедимся, что движение на дорогах имеет много общего с перемещением пакетов в сети с коммутацией пакетов.

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

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

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

А теперь попробуем найти общее в автомобильном движении и в сетях с коммутацией каналов.

Иногда на дороге возникает ситуация, когда нужно обеспечить особые условия для движения колонны автомобилей. Например, представим, что очень длинная колонна автобусов перевозит детей из города в летний лагерь по многополосному шоссе. Для того чтобы колонна двигалась без препятствий, заранее для ее движения разрабатывается маршрут.

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

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

Количественное сравнение задержек

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

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

Давайте рассмотрим более детально механизм возникновения задержек при передаче данных в сетях обоих типов. Пусть от конечного узла N1 отправляется сообщение к конечному узлу N2 (рис. 3.11). На пути передачи данных расположены два коммутатора.

Рис. 3.11. Временная диаграмма передачи сообщения в сети с коммутацией каналов

В сети с коммутацией каналов данные после задержки, связанной с установлением канала, начинают передаваться на стандартной для канала скорости. Время доставки данных Т адресату равно сумме времени распространения сигнала в канале tprg и времени передачи сообщения в канал ttrns. Наличие коммутаторов в сети с коммутацией каналов никак не влияет на суммарное время, прохождения данных через сеть.

Примечание. Заметим, что время передачи сообщения в канал в точности совпадает с временем приема сообщения из канала в буфер узла назначения, в этом случае оно называется временем буферизации.

Время распространения сигнала зависит от расстояния между абонентами L и скорости S распространения электромагнитных волн в конкретной физической среде, которая колеблется от 0,6 до 0,9 скорости света в вакууме:

tprg = L/S.

Время передачи сообщения в канал (а значит, и время буферизации в узле назначения) равно отношению объема сообщения V в битах к пропускной способности канала С в битах в секунду:

ttrns = V/C.

В сети с коммутацией пакетов передача данных не требует обязательного установления соединения. Предположим, что в сеть, показанную на рис. 3.12, передается сообщение того же объема V, что и в предыдущем случае (см. рис. 3.11), однако оно разделено на пакеты, каждый из которых снабжен заголовком. Пакеты передаются от узла N1 в узел N2, между которыми расположены два коммутатора.

На каждом коммутаторе каждый пакет изображен дважды: в момент прихода на входной интерфейс и в момент передачи в сеть с выходного интерфейса. Из рисунка видно, что коммутатор задерживает пакет на некоторое время. Здесь Т1 — время доставки адресату первого пакета сообщения, a Tps — всего сообщения.

Рис. 3.12. Временная диаграмма передачи сообщения, разделенного на пакеты,

в сети с коммутацией пакетов

Сравнивая временные диаграммы передачи данных в сетях с коммутацией каналов и пакетов, отметим два факта:

  • значения времени распространения сигнала (tprg) в одинаковой физической среде на одно и то же расстояние одинаковы;

  • учитывая, что значения пропускной способности каналов в обеих сетях одинаковы, значения времени передачи сообщения в канал (ttrns) будут также равны.

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

Рис. 3.13. Временная диаграмма передачи одного пакета

в сети с коммутацией пакетов

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

  • Во-первых, время тратится в узле-отправителе N1:

  • t1 — время формирования пакета, также называемое временем пакетизации (значение этой задержки зависит от различных параметров работы программного и аппаратного обеспечения узла-отправителя и не зависит от параметров сети);

  • t2 — время передачи в канал заголовка;

  • t3 — время передачи в канал поля данных пакета.

  • Во-вторых, дополнительное время тратится на распространение сигналов по каналам связи. Обозначим через t4 время распространения сигнала, представляющего один бит информации, от узла N1 до коммутатора 1.

  • В-третьих, дополнительное время тратится в промежуточном коммутаторе:

  • t5 —время приема пакета с его заголовком из канала во входной буфер коммутатора; как уже было отмечено, это время равно (t2 + t3), то есть времени передачи пакета с заголовком в канал из узла источника;

  • t6 — время ожидания пакета в очереди колеблется в очень широких пределах и заранее неизвестно, так как зависит от текущей загрузки сети;

  • t7 — время коммутации пакета при его передаче в выходной порт фиксировано для конкретной модели и обычно невелико (от нескольких микросекунд до нескольких миллисекунд).

Обозначим через TN1-S1 время передачи пакета из узла N1 на выходной интерфейс коммутатора 1. Это время складывается из следующих составляющих:

TN1-S1 = t1 + t4 + t5 + t6 + t7.

Обратите внимание, что среди слагаемых отсутствуют составляющие t2 и t3. Из рис. 3.13 видно, что передача битов из передатчика в канал совмещается по времени с передачей битов по каналу связи.

Время, затрачиваемое на оставшиеся два отрезка пути, обозначим соответственно TS1-S2 и TS2-N2. Эти величины имеют такую же структуру, что и TN1-S1, за исключением того, что в них не входит время пакетизации, и, кроме того, TS2-N2 не включает время коммутации (так как отрезок заканчивается конечным узлом). Итак, полное время передачи одного пакета по сети составляет:

Т1 = TN1-S1 + TS1-S2 + TS2-N2.

А чему же будет равно время передачи сообщения, состоящего из нескольких пакетов? Сумме времен передачи каждого пакета? Конечно, нет! Ведь сеть с коммутацией пакетов работает как конвейер (см. рис. 3.12): пакет обрабатывается за несколько этапов, и все устройства сети выполняют эти этапы параллельно. Поэтому время передачи такого сообщения будет значительно меньше, чем сумма значений времени передачи каждого пакета сообщения. Точно рассчитать это время сложно из-за неопределенности состояния сети и, вследствие этого, неопределенности значений времени ожидания пакетов в очередях коммутаторов. Однако если предположить, что пакеты стоят в очереди примерно одинаковое время, то общее время передачи сообщения, состоящего из n пакетов, можно оценить следующим образом

TPS = Т1 + (n - 1) (t1 + t5).

Пример

Сравним задержки передачи данных в сетях с коммутацией пакетов с задержками в сетях с коммутацией каналов, основываясь на рис. 3.13. Пусть тестовое сообщение, которое нужно передать в обоих видах сетей, составляет 200 000 байт. Отправитель находится от получателя на расстоянии 5000 км. Пропускная способность линий связи составляет 2 Мбит/с. Время передачи данных по сети с коммутацией каналов складывается из времени распространения сигнала, которое для расстояния 5000 км можно оценить примерно в 25 мс, и времени передачи сообщения в канал, которое при пропускной способности 2 Мбит/с и размере сообщения 200 000 байт равно примерно 800 мс, то есть всего передача данных абоненту занимает 825 мс. Оценим дополнительное время, которое требуется для передачи этого сообщения по сети с коммутацией пакетов. Будем считать, что путь от отправителя до получателя пролегает через 10 коммутаторов. Также предположим, что сеть работает в недогруженном режиме и очереди в коммутаторах отсутствуют. Исходное сообщение разбивается на пакеты по 1000 байт, всего 200 пакетов.

Если принять интервал между отправкой пакетов равным 1 мс, тогда время передачи сообщения увеличится на дополнительные 200 мс. Время передачи сообщения в канал также увеличится из-за необходимости передавать заголовки пакетов. Предположим, что доля служебной информации, размещенной в заголовках пакетов, по отношению к общему объему сообщения составляет 10 %. Следовательно, дополнительная задержка, связанная с передачей заголовков пакетов, составляет 10 % от времени передачи исходного сообщения, то есть 80 мс. При прохождении пакетов через каждый коммутатор возникает задержка буферизации пакета. Эта задержка при величине пакета 1000 байт, заголовке 100 байт и пропускной способности линии 2 Мбит/с составляет 4,4 мс в одном коммутаторе. Плюс задержка коммутации 2 мс. В результате прохождения 10 коммутаторов пакет придет с суммарной задержкой 64 мс, потраченной на буферизацию и коммутацию. В результате дополнительная задержка, созданная сетью с коммутацией пакетов, составляет 344 мс.

Учитывая, что вся передача данных по сети с коммутацией каналов занимает 825 мс, эту дополнительную задержку можно считать существенной. Хотя приведенный расчет носит очень приблизительный характер, он делает более понятными те причины, по которым для отдельного абонента процесс передачи данных по сети с коммутацией пакетов является более медленным, чем по сети с коммутацией каналов.

Что же следует из приведенного примера? Можно ли считать, что сеть с коммутацией каналов более эффективна, чем сеть с коммутацией пакетов? Попробуем ответить на этот вопрос.

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

Пример

Используем для сравнения эффективности сетей с коммутацией каналов и пакетов еще один пример (рис. 3.14). Два коммутатора объединены каналом связи с пропускной способностью 100 Мбит/с. Пользователи сети подключаются к сети с помощью каналов доступа (access links) с пропускной способностью 10 Мбит/с. Предположим, что все пользователи создают одинаковый пульсирующий трафик со средней скоростью 1 Мбит/с. При этом в течение непродолжительных периодов времени скорость данной предложенной нагрузки возрастает до максимальной скорости канала доступа, то есть до 10 Мбит/с. Такие периоды длятся не более одной секунды. Предположим также, что все пользователи, подключенные к коммутатору S1, передают информацию только пользователям, подключенным к коммутатору S2.

Рис. 3.14. Сравнение эффективности сетей с коммутацией пакетов и каналов

Пусть представленная на рисунке сеть является сетью с коммутацией каналов. Поскольку пики пользовательского трафика достигают 10 Мбит/с, каждому из пользователей необходимо установить соединение с пропускной способностью 10 Мбит/с. Таким образом, одновременно через сеть смогут передавать данные только 10 пользователей. Суммарная средняя скорость передачи данных через сеть будет равна только 10 Мбит/с (10 пользователей передают данные со средней скоростью 1 Мбит/с). Следовательно, линия связи между коммутаторами, хотя и имеет общую пропускную способность 100 Мбит/с, используется только на 10 %.

Теперь рассмотрим вариант, когда та же сеть работает на основе техники коммутации пакетов. При средней скорости пользовательских потоков 1 Мбит/с сеть может передавать одновременно до 100/1 = 100 (!) информационных потоков пользователей, полностью расходуя пропускную способность канала между коммутаторами. Однако это справедливо, если емкости буферов коммутаторов достаточно для хранения пакетов на периодах перегрузки, когда суммарная скорость потока данных превышает 100 Мбит/с. Оценим необходимый объем буфера коммутатора S1. За период перегрузки в коммутатор S1 от каждого потока поступит 10 Мбит/с х 1 с = 10 Мбит, а от 100 потоков — 1000 Мбит. Из этих данных за 1 с коммутатор успеет передать в выходной канал только 100 Мбит. Значит, чтобы ни один пакет не был потерян во время перегрузки сети, общий объем входных буферов коммутатора должен быть не меньше 1000 - 100 = 900 Мбит, или более 100 Мбайт. Сегодняшние коммутаторы обычно имеют меньшие объемы буферов (1-10 Мбайт). Однако не нужно забывать, что вероятность совпадения периодов пиковой нагрузки у всех потоков, поступающих на входы коммутатора, очень мала. Так что даже если коммутатор имеет меньший объем буферной памяти, в подавляющем большинстве случаев он будет справляться с предложенной нагрузкой.

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

Неопределенная пропускная способность сети с коммутацией пакетов — это плата за ее общую эффективность при некотором ущемлении интересов отдельных абонентов. Аналогично, в мультипрограммной операционной системе время выполнения приложения предсказать заранее невозможно, так как оно зависит от количества других приложений, с которыми делит процессор данное приложение.

Соседние файлы в папке olifer_v_g_olifer_n_a_kompyuternye_seti_principy_tehnologii