Что позволяет сделать буферизация пакетов различных абонентов в коммутаторах

Обновлено: 04.07.2024

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

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

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

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

Коммутация пакетов

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

Важнейшим принципом функционирования сетей с коммутацией пакетов является представление информации, передаваемой по сети, в виде структурно отделенных друг от друга порций данных, называемых пакетами [14] .

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

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

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

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


Рис. 3.5. Разбиение данных на пакеты


Рис. З.6. Передача данных по сети в виде пакетов

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

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

Разделение данных на пакеты позволяет передавать неравномерный компьютерный трафик более эффективно, чем в сетях с коммутацией каналов. Это объясняется тем, что пульса­ции трафика от отдельных компьютеров носят случайный характер и распределяются во времени так, что их пики чаще всего не совпадают. Поэтому когда линия связи передает трафик большого количества конечных узлов, то в суммарном потоке пульсации сглажи­ваются, и пропускная способность линии используется более рационально, без длительных простоев. Это эффект иллюстрируется рис. 3.7, на котором показаны неравномерные по­токи пакетов, поступающие от конечных узлов 5,4 и 10 в сети, изображенной на рис. 3.6.


Рис. 3.7. Сглаживание трафика в сетях с коммутацией пакетов

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

Буферизация пакетов

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

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

Действительно, пакетный коммутатор не может принять решения о продвижении пакета, не имея в своей памяти всего пакета. Коммутатор проверяет контрольную сумму, и только если она говорит о том, что данные пакета не искажены, начинает обрабатывать пакет и по адресу назначения определяет следующий коммутатор. Поэтому каждый пакет последова­тельно бит за битом помещается во входной буфер. Имея в виду это свойство, говорят, что сети с коммутацией пакетов используют технику сохранения с продвижением (store-and- forward). Заметим, что для этой цели достаточно иметь буфер размером в один пакет.

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

Буферизация необходима пакетному коммутатору также для согласования скорости по­ступления пакетов со скоростью их коммутации. Если коммутирующий блок не успевает обрабатывать пакеты (анализировать заголовки и перебрасывать пакеты на нужный ин­терфейс), то на интерфейсах коммутатора возникают входные очереди. Очевидно, что для хранения входной очереди объем буфера должен превышать размер одного пакета. Существуют различные подходы к построению коммутирующего блока. Традиционный способ основан на одном центральном процессоре, который обслуживает все входные очереди коммутатора. Такой способ построения может приводить к большим очередям, так как производительность процессора разделяется между несколькими очередями. Со­временные способы построения коммутирующего блока основаны на многопроцессорном подходе, когда каждый интерфейс имеет свой встроенный процессор для обработки пакетов. Кроме того, существует центральный процессор, координирующий работу интерфейсных процессоров. Использование интерфейсных процессоров повышает производительность коммутатора и уменьшает очереди во входных интерфейсах. Однако такие очереди все равно могут возникать, так как центральный процессор по-прежнему остается «узким местом». Более подробно вопросы внутреннего устройства коммутаторов обсуждаются в главе 13.

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


Рис. 3.8. Буферы и очереди пакетов в коммутаторе

Пакетный коммутатор может работать на основании одного из трех методов продвижения пакетов:

§ передача с установлением логического соединения;

§ передача с установлением виртуального канала.

Дейтаграммная передача

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

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

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


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

На рис. 3.9 показана сеть, в которой шесть конечных узлов (N1-N6) связаны семью ком­мутаторами (S1-S7). Показаны также несколько перемещающихся по разным маршрутам пакетов с разными адресами назначения (N1-N6), на пути которых лежит коммутатор S1.

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

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

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

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

Как показано на рисунке, существуют два метода буферизации: буферизация на базе портов и буферизация в общей памяти.

Буферизация в памяти на коммутаторах. CCNA Routing and Switching.

Буферизация на базе портов

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

Буферизация в общей памяти

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

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

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

Наши партнеры:
- Возможно эта информация Вас заинтересует:
- Посмотрите интересные ссылочки вот тут:

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

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

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

Буферизация необходима пакетному коммутатору также для согласования скорости поступления пакетов со скоростью их коммутации. Если коммутирующий блок не успевает обрабатывать пакеты (анализировать заголовки и перебрасывать пакеты на нужный интерфейс), то на интерфейсах коммутатора возникают входные очереди. Очевидно, что для хранения входной очереди объем буфера должен превышать размер одного пакета. Существуют различные подходы к построению коммутирующего блока. Традиционный способ основан на одном центральном процессоре, который обслуживает все входные очереди коммутатора. Такой способ построения может приводить к большим очередям, так как производительность процессора разделяется между несколькими очередями. Современные способы построения коммутирующего блока основаны на многопроцессорном подходе, когда каждый интерфейс имеет свой встроенный процессор для обработки пакетов. Кроме того, существует центральный процессор, координирующий работу интерфейсных процессоров. Использование интерфейсных процессоров повышает производительность коммутатора и уменьшает очереди во входных интерфейсах. Однако такие очереди все равно могут возникать, так как центральный процессор по-прежнему остается «узким местом».

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


Пакетный коммутатор может работать на основании одного из трех методов продвижения пакетов:

Параллельно с появлением архитектуры с разделяемой памятью (в середине 1990-х годов) была разработана архитектура на основе коммутационной матрицы (Crossbar architecture). Эта архитектура используется для построения коммутаторов различных типов.

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

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

Архитектура на основе коммутационной матрицы


Рис. 1.17. Архитектура на основе коммутационной матрицы

Можно выделить два типа коммутаторов на основе коммутационной матрицы:

  • коммутаторы на основе коммутационной матрицы с буферизацией (buffered crossbar );
  • коммутаторы на основе коммутационной матрицы с арбитражем ( arbitrated crossbar ).
Коммутаторы на основе коммутационной матрицы с буферизацией

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

Несмотря на то, что эта архитектура является простейшей архитектурой коммутаторов, из-за независимости стадий для нее существуют сложности с реализацией качества обслуживания ( QoS ) в пределах коммутатора.

Коммутаторы на основе коммутационной матрицы с арбитражем

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

В коммутаторах с входными очередями (Input- Queued Switch) память каждого входного порта организована в виде очереди типа FIFO (First Input First Output — "первым пришел, первым ушел"), которая используется для буферизации пакетов перед началом процесса коммутации. Одной из проблем этого типа коммутационной матрицы является блокировка первым в очереди (Head-Of-Line blocking, HOL). Она возникает в том случае, когда коммутатор пытается одновременно передать пакеты из нескольких входных очередей на один выходной порт. При этом пакеты, находящиеся в начале этих очередей, блокируют все остальные пакеты, находящиеся за ними. Для принятия решения о том, какой пакет и из какой очереди может получить доступ к матрице, используется арбитр. Перед передачей пакета входные порты направляют арбитру запросы на подключение к разделяемому ресурсу (в данном случае — пути матрицы) и получают от него право на подключение.

Арбитр принимает решение о последовательности передачи пакетов из входных очередей на основе алгоритма диспетчеризации ( scheduling algorithm ).

Архитектура на основе коммутационной матрицы с входными очередями


Рис. 1.18. Архитектура на основе коммутационной матрицы с входными очередями

Архитектура на основе коммутационной матрицы с выходными очередями


Рис. 1.19. Архитектура на основе коммутационной матрицы с выходными очередями

В коммутаторах с выходными очередями (output-queued switch) пакеты буферизируются только на выходных портах после завершения процесса коммутации. В этом случае удается избежать проблемы, связанной с блокированием очередей HOL . Коммутаторы этой архитектуры используют арбитр для управления временем, за которое пакеты коммутируются через матрицу. При правильно разработанном арбитре коммутаторы с выходными очередями могут обеспечивать качество обслуживания ( QoS ).

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

Коммутаторы с виртуальными очередями (Virtual Output Queues, VOQ) позволяют преодолеть проблему блокировки очередей HOL , не внося издержек по сравнению с коммутаторами с выходными очередями. В этой архитектуре память каждого входного порта организована в виде N (где N — количество выходных портов) логических очередей типа FIFO, по одной для каждого выходного порта. Эти очереди используются для буферизации пакетов, поступающих на входной порт и предназначенных для выходного порта j (j = 1,…N) .

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

Архитектура на основе коммутационной матрицы с виртуальными очередями


Рис. 1.20. Архитектура на основе коммутационной матрицы с виртуальными очередями

 Архитектура на основе коммутационной матрицы с CIOQ


Рис. 1.21. Архитектура на основе коммутационной матрицы с CIOQ

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

Во временной слот 3, который называется стадией передачи, осуществляется сборка пакетов и их передача с выходных портов.

Читайте также: