Учебник для вузов в. Олифер Н. Олифер Компьютерные Принципы, технологии, протоколы
Скачать 22.28 Mb.
|
85 Коммутация пакетов Сети с коммутацией пакетов, так же как и сети с коммутацией каналов, состоят из комму таторов, связанных физическими линиями связи. Однако передача данных в этих сетях происходит совершенно по-другому. Образно говоря, по сравнению с сетыр с коммута цией каналов сеть с коммутацией пакетов ведет себя менее «ответственно». Например, она может принять данные для передачи, не заботясь о резервировании линий связи на пути следования этих данных и не гарантируя требуемую пропускную способность. Сеть с коммутацией пакетов не создает заранее для своих абонентов отдельных, выделенных исключительно для них каналов связи. Данные моїуг задерживаться и даже теряться по пути следования. Как же при таком хаосе и неопределенности сеть с коммутацией* пакетов выполняет свои функции по передаче данных? Важнейшим принципом функционирования сетей с коммутацией пакетов является представление информации, передаваемой по сети, в виде структурно отделенных друг от друга порций данных, называемых пакетами1. Каждый пакет снабжен заголовком (рис. 3.5), в котором содержится адрес назначения и другая вспомогательная информация (длина поля данных, контрольная сумма и др.), используемая для доставки пакета адресату. Наличие адреса в каждом пакете является одним из важнейших особенностей техники коммутации пакетов, так как каждый пакет может 2 быть обработан коммутатором независимо от других пакетов, составляющих сетевой трафик. Помимо заголовка у пакета может иметься еще одно дополнительное поле, раз мещаемое в конце пакета и поэтому называемое концевиком. В концевике обычно поме щается контрольная сумма, которая позволяет проверить, была ли искажена информация при передаче через сеть или нет. В зависимости от конкретной реализации технологии коммутации пакетов пакеты могут иметь фиксированную или переменную длину, кроме того, может меняться состав инфор мации, размещенной в заголовках пакетов. Например, в технологии ATM пакеты (назы ваемые там ячейками) имеют фиксированную длину, а в технологии Ethernet установлены лишь минимально и максимально возможные размеры пакетов (кадров). Пакеты поступают в сеть без предварительного резервирования линий связи п не с фикси рованной заранее заданной скоростью, как это делается в сетях с коммутацией каналов, а в том темпе, в котором их генерирует источник. Предполагается, что сеть с коммутацией пакетов, в отличие от сети с коммутацией каналов, всегда готова принять пакет от конеч ного узла. Как и в сетях с коммутацией каналов, в сетях с коммутацией пакетов для каждого из по токов вручную или автоматически определяется марщрут, фиксируемый в хранящихся на коммутаторах таблицах коммутации. Пакеты, попадая на коммутатор, обрабатываются и направляются по тому или иному маршруту на основании информации, содержащейся в их заголовках, а т^кже в таблице коммутации (рис. 3.6). 1 Наряду с термином «пакет» используются также термины «кадр», «фрейм», «ячейка» и др. В данном контексте различия в значении этих терминов несущественны. 2 В некоторых технологиях коммутации пакетов (например, в технологии виртуальных каналов) полная независимость обработки пакетов не обеспечивается. 86 Глава 3. Коммутация каналов и пакетов Отправляемые данные Г "Л 1 этап — исходное сообщение на узле- отправителе Отправляемые данные Г і Принятые данные 2 этап — разбиение сообщения на части 3 этап — образование пакетов 4 этап — сборка пакетов на узле назначения Рис. 3.5. Разбиение данных на пакеты - конечные узлы о ’ - коммутаторы пакеты данные заголовок Рис. З.б. Передача данных по сети в виде пакетов Коммутация пакетов 87 ПРИМЕЧАНИЕ--------------------------------------------------------------------------------------------------- Процедура резервирования пропускной способности м о ж е т применяться и в пакетных сетях. Однако, основная идея такого ре зервирования п р и н ц и п и а л ь н о отличается от и д е и р е зервирования п р о пускной способности в сетях с к о м м у т а ц и е й каналов. Ра з н и ц а заключается в том, что пропускная способность канала сети с к о м м у т а ц и е й пакетов м о ж е т д и н а м и ч е с к и перераспределяться м е ж д у и н ф о р м а ц и о н н ы м и п ото ками в зависимости от т е к у щ и х потребностей каждого потока, чего не м о жет обеспечить техника к о м м у т а ц и и каналов. С деталями такого резервирования в ы познакомитесь позже, в главе 7. Пакеты, принадлежащие как одному и тому же, так и разным информационным потокам, при перемещении по сети могут «перемешиваться» между собой, образовывать очереди и «тормозить» друг друга. На пути пакетов могут встретиться линии связи, имеющие раз ную пропускную способность. В зависимости от времени суток может сильно меняться и степень загруженности линий связи. В таких условиях не исключены ситуации, когда пакеты, принадлежащими одному и тому же потоку, могут перемещаться по сети с разны ми скоростями и даже прийти к месту назначения не и том порядке, в котором они были отправлены. Разделение данных на пакеты позволяет передавать неравномерный компьютерный трафик более эффективно, чем в сетях с коммутацией каналов. Это объясняется тем, что пульса ции трафика от отдельных компьютеров носят случайный характер и распределяются во времени так, что их пики чаще всего не совпадают. Поэтому когда линия связи передает трафик большого количества конечных узлов, то в суммарном потоке пульсации сглажи ваются, и пропускная способность линии используется более рационально, без длительных простоев. Это эффект иллюстрируется рис. 3.7, на котором показаны неравномерные по токи пакетов, поступающие от конечных узлов 5 ,4 и 10 в сети, изображенной на рис. 3 6 0 ------- L I_ U -------------- Ш1Ш- Поток мз узла 3 в сторону коммутатора 5 і mm і Поток из узла 4 в сторону коммутатора 5 I 11IIIIII Поток из узла 10 в сторону коммутатора 5 II піннішії ■ Суммарный поток из коммутатора 5 в сторону коммутатора 8 Рис. 3.7. Сглаживание трафика в сетях с коммутацией пакетов 88 Глава 3. Коммутация каналов и пакетов Предположим, что эти потоки передаются в направлении коммутатора <5, а следовательно, накладываются друг на друга при прохождении линии связи между коммутаторами 5 и 8. Получающийся в результате суммарный поток является более равномерным, чем каждый из образующих его отдельных потоков. Буферизация пакетов Неопределенность и асинхронность перемещения данных в сетях с коммутацией пакетов предъявляет особые требования к работе коммутаторов в таких сетях. Главной отличие пакетных коммутаторов1 от коммутаторов в сетях с коммутацией каналов состоит в том, что они имеют внутреннюю буферную память для временного хранения пакетов. Действительно, пакетный коммутатор не может принять решения о продвижении пакета, не имея в своей памяти всего пакета. Коммутатор проверяет контрольную сумму, и только если она говорит о том, что данные пакета не искажены, начинает обрабатывать пакет и по адресу назначения определяет следующий коммутатор. Поэтому каждый пакет последова тельно бит за битом помещается во входной буфер. Имея в виду это свойство, говорят, что сети с коммутацией пакетов используют технику сохранения с продвижением (store-and- forward). Заметим, что для этой цели достаточно иметь буфер размером в один пакет. Коммутатору нужны буферы для согласования скоростей передачи данных в линиях связи, подключенных к его интерфейсам. Действительно, если скорость поступления пакетов из одной линии связи в течение некоторого периода превышает пропускную способность той линии связи, в которую эти пакеты должны быть направлены, то во избежание потерь пакетов на целевом интерфейсе необходимо организовать выходную очередь (рис. 3 8 ). Буферизация необходима пакетному коммутатору также для согласования скорости по ступления пакетов со скоростью их коммутации. Если коммутирующий блок не успевает обрабатывать пакеты (анализировать заголовки и перебрасывать пакеты на нужный ин терфейс), то на интерфейсах коммутатора возникают входные очереди. Очевидно, что для хранения входной очереди объем буфера должен превышать размер одного пакета. Существуют различные подходы к построению коммутирующего блока. Традиционный способ основан на одном центральном процессоре, который обслуживает все входные очереди коммутатора. Такой способ построения может приводить к большим очередям, так как производительность процессора разделяется между несколькими очередями. Со временные способы построения коммутирующего блока основаны на многопроцессорном подходе, когда каждый интерфейс имеет свой встроенный процессор для обработки пакетов. Кроме того, существует центральный процессор, координирующий работу интерфейсных процессоров. Использование интерфейсных процессоров повышает производительность коммутатора и уменьшает очереди во входных интерфейсах. Однако такие очереди все равно могут возникать, так как центральный процессор по-прежцему остается «узким местом». Более подробно вопросы внутреннего устройства коммутаторов обсуждаются в главе 13. Поскольку объем буферов в коммутаторах ограничен, иногда происходит потеря паке тов из-за переполнения буферов при временной перегрузке части сети, когда совпадают 1 Для простоты будем далее называть коммутаторы сетей с коммутацией пакетов «пакетными ком мутаторами». Коммутация пакетов 89 периоды пульсации нескольких информационных потоков. Для сетей с коммутацией пакетов потеря пакетов является обычным явлением, и для компенсации таких потерь в данной сетевой технологии предусмотрен ряд специальных механизмов, которые мы рассмотрим позже. буфер буфер буфер буфер буфер буфер £51 1 3 И ы в З н Очереди ijpraj; пакетов Ні з н / 4 0 н н в 2ZZI НІ 9 Приёмник н Передатчик а и ф Ы Н ^\Сетевые интерфейсы Рис. 3.8. Буферы и очереди пакетов в коммутаторе Пакетный коммутатор может работать на основании одного из трех методов продвижения пакетов: □ дейтаграммная передача; □ передача с установлением логического соединения; □ передача с установлением виртуального канала. Дейтаграммная передача Дейтаграммный способ передачи данных основан на том, что все передаваемые пакеты продвигаются (передаются от одного узла сети другому) независимо друг от друга на основании одних и тех же правил. Процедура обработки пакета определяется только значениями параметров, которые он несет в себе, и текущим состоянием сети (например, в зависимости от ее нагрузки пакет может стоять в очереди на обслуживание большее или меньшее время). Однако никакая информация об уже переданных пакетах сетью не хранится и в ходе обработки очередного пакета во внимание не принимается. То есть каждый отдельный пакет рассматривается сетью как совершенно незави симая единица передачи — дейтаграмма. 90 Глава 3. Коммутация каналов и пакетов Решение о продвижении пакета принимается на основе таблицы коммутации1, ставящей в соответствие адресам назначения пакетов информацию, однозначно определяющую следующий по маршруту транзитный (или конечный) узел. В качестве такой информации могут выступать идентификаторы интерфейсов данного коммутатора или адреса входных интерфейсов коммутаторов, следующих по маршруту. Таблица коммутации коммутатора S1 Адрес назначения Адрес следующего коммутатора N1 Пакет не требуется передавать через сеть N2 S2 N3 S3 N4 S3 N5 S6 N6 S6 Рис. 3.9. Иллюстрация дейтаграммного принципа передачи пакетов На рис. 3.9 показана сеть, в которой шесть конечных узлов (М -М 5) связаны семью ком мутаторами (51-57). Показаны также несколько перемещающихся по разным маршрутам пакетов с разными адресами назначения (М -М 5), на пути которых лежит коммутатор 51. 1 Напомним, что в разных технологиях для обозначения таблиц, имеющих указанное выше функ циональное назначение, могут использоваться другие термины (таблица маршрутизации, таблица продвижения и др.). Коммутация пакетов 91 При поступлении каждого из этих пакетов в коммутатор 51 выполняется просмотр соот ветствующей таблицы коммутации и выбор дальнейшего пути перемещения. Так пакет с адресом N5 будет передан коммутатором 51 на интерфейс, ведущий к коммутатору 56, где в результате подобной процедуры этот пакет будут направлен конечному узлу полу чателю N5. В таблице коммутации для одного и того же адреса назначения может содержаться несколь ко записей, указывающих соответственно на различные адреса следующего коммутатора. Такой подход называется балансом нагрузки и используется для повышения произво дительности и надежности сети. В примере, показанном на рис. 3.9, пакеты, поступающие в коммутатор 51 для узла назначения с адресом N2, в целях баланса нагрузки распределя ются между двумя следующими коммутаторами — 52 и 53, что снижает нагрузку на каждый из них, а значит, сокращает очереди и ускоряет доставку. Некоторая «размытость» путей следования пакетов с одним и тем же адресом назначения через сеть является прямым следствием принципа независимой обработки каждого пакета, присущего дейтаграммному методу. Пакеты, следующие по одному и тому же адресу назначения, могут добираться до него разными путями также вследствие изменения состояния сети, например отказа про межуточных коммутаторов. Дейтаграммный метод работает быстро, так как никаких предварительных действий перед отправкой данных проводить не требуется. Однако при таком методе трудно проверить факт доставки пакета узлу назначения. Этот метод не гарантирует доставку пакета, он делает это по мере возможности — для описания такого свойства используется термин доставка с максимальными усилиями (best effort). Передача с установлением логического соединения Следующий рассматриваемый нами способ продвижения пакетов основывается на зна нии устройствами сети «истории» обмена данными, например, на запоминании узлом- отправителем числа отправленных, а узлом-получателем — числа полученных пакетов. Такого рода информация фиксируется в рамках логического соединения. Процедура согласования двумя конечными узлами сети некоторых параметров процесса обмена пакетами называется установлением логического соединения. Параметры, о которых до говариваются два взаимодействующих узла, называются параметрами логического соеди нения. Наличие логического соединения позволяет более рационально по сравнению с дейта граммным способом обрабатывать пакеты. Например, при потере нескольких предыдущих пакетов может быть снижена скорость отправки последующих. Или благодаря нумерации пакетов и отслеживанию номеров отправленных и принятых пакетов можно повысить на дежность путем отбрасывания дубликатов, упорядочивания поступивших и повторения передачи потерянных пакетов. Параметры соединения могут быть: постоянными, то есть не изменяющимися в течение всего соединения (например, идентификатор соединения, способ шифрования пакета или максимальный размер поля данных пакета), или переменными, то есть динамически 92 Глава 3. Коммутация каналов и пакетов отражающими текущее состояние соединения (например, последовательные номера пере даваемых пакетов). Когда отправитель и получатель фиксируют начало нового соединения, они, прежде всего, «договариваются» о начальных значениях параметров процедуры обмена и только после этого начинают передачу собственно данных. Передача с установлением соединения более надежна, но требует больше времени для пере дачи данных и вычислительных затрат от конечных узлов, что иллюстрирует рис. 3.10. Узел 1 Данные Узел 2 Данные Запрос на установление соединения Подтверждение установления соединения Данные Запрос на разрыв соединения Прием запроса на установление соединения Квитанции подтверждения Подтверждение разрыва соединения Рис. 3.10. Передача без установления соединения (а) и с установлением соединения (б) Процедура установления соединения состоит обычно из трех шагов. 1. Узел-инициатор соединения отправляет узлу-получателю служебный пакет с предло жением установить соединение. 2. Если узел-получатель согласен с этим, то он посылает в ответ другой служебный пакет, подтверждающий установление соединения и предлагающий некоторые параметры, ко торые будут использоваться в рамках данного логического соединения. Это могут быть, например, идентификатор соединения, количество кадров, которые можно отправить без получения подтверждения и т. п. 3. Узел-инициатор соединения может закончить процесс установления соединения от правкой третьего служебного пакета, в котором сообщит, что предложенные параметры ему подходят. Логическое соединение может быть рассчитано на передачу данных как в одном направле нии — от инициатора соединения, так и в обоих направлениях. После передачи некоторого |