Компьютерные сети. Принц, техн, прот 1-303. Книга переведена на английский, испанский, китайский и португальский языки
Скачать 5.49 Mb.
|
Неэффективность передачи пульсирующего трафика Сети с коммутацией каналов наиболее эффективно передают пользовательский трафик в том случае, когда скорость его постоянна в течение всего сеанса связи и максимально соответствует фиксированной пропускной способности физических линий связи сети. Эффективность работы сети снижается, когда информационные потоки, генерируемые абонентами, приобретают пульсирующий характер. Так, разговаривая по телефону, люди постоянно меняют темп речи, перемежая быстрые высказывания паузами. В результате соответствующие «голосовые» информационные потоки становятся неравномерными, а значит, снижается эффективность передачи данных. Правда, в случае телефонных разговоров это снижение оказывается вполне приемлемым и позволяет широко использовать сети с коммутацией каналов для передачи голосового трафика. Гораздо сильнее снижает эффективность сети с коммутацией каналов передача так называемого компьютерною трафика, то есть трафика, генерируемого приложениями, с которыми работает пользователь компьютера. Этот трафик практически всегда является пульсирующим. Например, когда вы загружаете из Интернета очередную страницу, скорость трафика резко возрастает, а после окончания загрузки падает практически до нуля. Если для описанного сеанса доступа в Интернет вы задействуете сеть с коммутацией каналов, то большую часть времени составной канал между вашим компьютером и веб-сервером будет простаивать. В то же время часть пропускной способности сети окажется закрепленной за вами и останется недоступной другим пользователям сети. Сеть в такие периоды похожа на пустой эскалатор метро, который движется, но полезную работу не выполняет. Для эффективной передачи неравномерного компьютерного трафика была специально разработана техника коммутации пакетов. Коммутация пакетов Сети с коммутацией пакетов, так же как и сети с коммутацией каналов, состоят из коммутаторов, связанных физическими линиями связи. Однако передача данных в этих сетях происходит совершенно по-другому. Образно говоря, по сравнению с сетью с коммутацией каналов сеть с коммутацией пакетов ведет себя менее «ответственно». Например, она может принять данные для передачи, не заботясь о резервировании линий связи на пути следования этих данных и не гарантируя требуемую пропускную способность. Сеть с коммутацией пакетов не создает заранее для своих абонентов отдельных каналов связи, выделенных исключительно для них. Данные могут задерживаться и даже теряться по пути следования. Как же при таком хаосе и неопределенности сеть с коммутацией пакетов выполняет свои функции по передаче данных? Важнейшим принципом функционирования сетей с коммутацией пакетов является представление информации, передаваемой по сети, в виде структурно отделенных друг от друга порций данных, называемых пакетами1. Каждый пакет снабжен заголовком (рис. 3.5), в котором содержится адрес назначения и другая вспомогательная информация (длина поля данных, контрольная сумма и др.), используемая для доставки пакета адресату. Наличие адреса в каждом пакете является одной из важнейших особенностей техники коммутации пакетов, так как каждый пакет может быть обработан коммутатором независимо от других пакетов, составляющих сетевой трафикX XI. Помимо заголовка у пакета может иметься еще одно дополнительное поле, размещаемое в конце пакета и поэтому называемое концевиком. В концевике обычно помещается контрольная сумма, которая позволяет проверить, была ли искажена информация при передаче через сеть или нет. В зависимости от конкретной реализации технологии коммутации пакетов последние могут иметь фиксированную или переменную длину Кроме того, может меняться состав информации, размещенной в заголовках пакетов. Например, в технологии ATM пакеты (называемые там ячейками) имеют фиксированную длину, а в технологии Ethernet установлены лишь минимально и максимально возможные размеры пакетов (кадров). Пакеты поступают в сеть в том темпе, в котором их генерирует источник. Предполагается, что сеть с коммутацией пакетов, в отличие от сети с коммутацией каналов, всегда готова принять пакет от конечного узла. Как и в сетях с коммутацией каналов, в сетях с коммутацией пакетов для каждого из потоков вручную или автоматически определяется маршрут, фиксируемый в хранящихся на коммутаторах таблицах коммутации. Пакеты, попадая на коммутатор, обрабатываются и направляются по тому или иному маршруту на основании информации, содержащейся в их заголовках, а также в таблице коммутации (рис. 3.6). Пакеты, принадлежащие как одному и тому же, так и разным информационным потокам, при перемещении по сети могут «перемешиваться» между собой, образовывать очереди и «тормозить» друг друга. На пути пакетов могут встречаться линии связи, имеющие разную пропускную способность. В зависимости от времени суток может сильно меняться и степень загруженности линий связи. В таких условиях не исключены ситуации, когда пакеты, принадлежащие одному и тому же потоку, могут перемещаться по сети с разными скоростями и даже прийти к месту назначения не в том порядке, в котором они были отправлены. Разделение данных на пакеты позволяет передавать неравномерный компьютерный трафик более эффективно, чем в сетях с коммутацией каналов. Это объясняется тем, что пульсации трафика от отдельных компьютеров носят случайный характер и распределяются во Рис. 3.6. Передача данных по сети в виде пакетов времени так, что их пики чаще всего не совпадают. Поэтому когда линия связи передает трафик большого количества конечных узлов, в суммарном потоке пульсации сглаживаются и пропускная способность линии используется более рационально, без длительных простоев. Так, на рис. 3.7 показаны неравномерные потоки пакетов, поступающие от конечных узлов 3, 4 и 10 в сети, изображенной на рис. 3.6. Предположим, что эти потоки передаются в направлении коммутатора 8, а следовательно, накладываются друг на друга при прохождении линии связи между коммутаторами 5 и 8. Получающийся в результате суммарный поток является более равномерным, чем каждый из образующих его отдельных потоков. Буферизация пакетов Неопределенность и асинхронность перемещения данных в сетях с коммутацией пакетов предъявляет особые требования к работе коммутаторов в таких сетях. Главное отличие пакетных коммутаторовXII от коммутаторов в сетях с коммутацией каналов состоит в том, что они имеют внутреннюю буферную память для временного хранения пакетов. Действительно, пакетный коммутатор не может принять решения о продвижении пакета, не имея в своей памяти всего пакета. Коммутатор проверяет контрольную сумму; если она говорит о том, что данные пакета не искажены, то коммутатор начинает обрабатывать пакет и по адресу назначения определяет следующий коммутатор. Поэтому каждый пакет последовательно, бит за битом, помещается во входной буфер. Имея в виду это свойство, говорят, что сети с коммутацией пакетов используют технику сохранения с продвижением (store-and-forward). Заметим, что для этой цели коммутатору было бы достаточно иметь буфер размером в один пакет. Но коммутатору нужны буферы и для других целей, в частности, для согласования скоростей передачи данных в линиях связи, подключенных к его интерфейсам. Действительно, если скорость поступления потока пакетов из одной линии связи в течение некоторого периода превышает пропускную способность той линии связи, в которую эти пакеты должны быть направлены, то во избежание потерь пакетов на целевом интерфейсе необходимо организовать выходную очередь (рис. 3.8). Буферизация необходима пакетному коммутатору и для согласования скорости поступления пакетов со скоростью их коммутации. Если коммутирующий блок не успевает обрабатывать пакеты (анализировать заголовки и перебрасывать пакеты на нужный интерфейс), то на интерфейсах коммутатора возникают входные очереди. Очевидно, что для хранения входной очереди объем буфера должен превышать размер одного пакета. Существуют различные подходы к построению коммутирующего блока. Традиционный способ основан на одном центральном процессоре, который обслуживает все входные очереди коммутатора, что может приводить к большим очередям, так как производительность процессора разделяется между несколькими очередями. Современные способы построения коммутирующего блока основаны на многопроцессорном подходе, когда каждый интерфейс имеет свой встроенный процессор для обработки пакетов. Кроме того, существует центральный процессор, координирующий работу интерфейсных процессоров, использование которых повышает производительность коммутатора и уменьшает очереди на входных интерфейсах. Однако такие очереди все равно могут возникать, так как центральный процессор по-прежнему остается узким местом. Более подробно вопросы внутреннего устройства коммутаторов обсуждаются в главе 11. Поскольку объем буферов в коммутаторах ограничен, иногда происходит потеря пакетов из-за переполнения буферов при временной перегрузке части сети, когда, например, совпадают периоды пульсации нескольких информационных потоков. Для компенсации таких потерь в технологии коммутации пакетов предусмотрен ряд специальных механизмов, которые мы рассмотрим позже. Пакетный коммутатор может работать на основании одного из трех методов продвижения пакетов: следующий по маршруту транзитный (или конечный) узел. В качестве такой информации могут выступать идентификаторы интерфейсов данного коммутатора или адреса входных интерфейсов коммутаторов, следующих по маршруту. На рис. 3.9 показана сеть, в которой шесть конечных узлов (У1-У6) связаны семью коммутаторами (51-57). Показаны также несколько перемещающихся по разным маршрутам пакетов с разными адресами назначения (N1-N6), на пути которых лежит коммутатор 51. При поступлении каждого из этих пакетов в коммутатор 51 выполняется просмотр соответствующей таблицы коммутации и выбор дальнейшего пути перемещения. Так, пакет с адресом N5 будет передан коммутатором 51 на интерфейс, ведущий к коммутатору 56, где в результате подобной процедуры этот пакет будет направлен конечному узлу получателя Лг5. В таблице коммутации для одного и того же адреса назначения может содержаться несколько записей, указывающих соответственно на различные адреса следующего коммутатора. Такой подход называется балансом нагрузки и используется для повышения производительности и надежности сети. Как видим, на рис. 3.9 пакеты, поступающие в коммутатор 51 для узла назначения с адресом N2, распределяются между двумя следующими коммутаторами – 52 и 53, что снижает нагрузку на каждый из них, а значит, сокращает очереди и ускоряет доставку. Некоторая «размытость» путей следования пакетов с одним и тем же адресом назначения через сеть является прямым следствием принципа независимой обработки каждого пакета, присущего дейтаграммному методу. Пакеты, следующие по одному и тому же адресу назначения, могут добираться до него разными путями также вследствие изменения состояния сети, например отказа промежуточных коммутаторов. Дейтаграммный метод работает быстро, так как никаких предварительных действий перед отправкой данных проводить не требуется. Однако при таком методе трудно проверить факт доставки пакета узлу назначения. В дейтаграммном методе доставка пакета не гарантируется, а выполняется по мере возможности – для описания такого свойства используется термин доставка по возможности (best effort). Передача с установлением логического соединения Следующий рассматриваемый нами способ продвижения пакетов основывается на знании устройствами сети «истории» обмена данными, например, на запоминании узлом-отправителем числа отправленных, а узлом-получателем – числа полученных пакетов. Такого рода информация фиксируется в рамках логического соединения. Процедура согласования двумя конечными узлами сети некоторых параметров процесса обмена пакетами называется установлением логического соединения. Параметры, о которых договариваются два взаимодействующих узла, называются параметрами логического соединения. Наличие логического соединения позволяет более рационально по сравнению с дейтаграммным способом обрабатывать пакеты. Например, при потере нескольких предыдущих пакетов может быть снижена скорость отправки последующих. Напротив, благодаря нумерации пакетов и отслеживанию номеров отправленных и принятых пакетов можно повысить надежность путем отбрасывания дубликатов, упорядочивания поступивших и повторения передачи потерянных пакетов. Параметры соединения могут быть постоянными, то есть не изменяющимися в течение всего соединения (например, идентификатор соединения, способ шифрования пакета или максимальный размер поля данных пакета), или переменными, то есть динамически отражающими текущее состояние соединения (например, последовательные номера передаваемых пакетов). Когда отправитель и получатель фиксируют начало нового соединения, они прежде всего «договариваются» о начальных значениях параметров процедуры обмена и только после этого начинают передачу собственно данных. Передача с установлением логического соединения включает три фазы (рис. 3.10): □ Установление логического соединения, которое начинается с того, что узел – инициатор соединения отправляет узлу-получателю служебный пакет с предложением установить соединение. Если узел-получатель согласен с этим, то он посылает в ответ другой служебный пакет, подтверждающий установление соединения и предлагающий некоторые параметры, которые должны использоваться в рамках данного логического соединения. Это могут быть, например, идентификатор соединения, количество пакетов, которые можно отправить без получения подтверждения, и т. п. Узел – инициатор соединения может закончить процесс установления соединения отправкой третьего служебного пакета, в котором сообщит, что предложенные параметры ему подходят. Передача данных. После того как соединение установлено и все параметры согласованы, конечные узлы начинают передачу собственно данных. Логическое соединение может быть рассчитано на передачу данных как в одном направлении (от инициатора соединения), так и в обоих направлениях. Разрыв логического соединения. После передачи некоторого законченного набора данных, например определенного файла, узел-отправитель инициирует процедуру разрыва логического соединения, аналогичную процедуре установления соединения. Заметим, что, в отличие от передачи дейтаграммного типа, в которой поддерживается только один тип пакетов – информационный, передача с установлением соединения должна поддерживать как минимум два типа пакетов – информационные пакеты переносят собственно пользовательские данные, а служебные предназначаются для установления (разрыва) соединения. Информационные пакеты обрабатываются коммутаторами точно так же, как и при дейтаграммной передаче: из заголовков пакетов извлекаются адреса назначения и сравниваются с записями в таблицах коммутации, содержащими информацию о следующих шагах по маршруту. Как и дейтаграммы, пакеты, относящиеся к одному логическому соединению, в некоторых случаях (например, при отказе линии связи) могут доставляться адресату по разным маршрутам. Однако передача с установлением соединения имеет важное отличие от дейтаграммной передачи, поскольку в ней, помимо обработки пакетов на коммутаторах, имеет место дополнительная обработка пакетов на конечных узлах. Например, если при установлении соединения была оговорена передача данных в зашифрованном виде, то шифрование пакетов выполняется узлом-отправителем, а дешифрование – узлом-получателем. Аналогично, для обеспечения в рамках логического соединения надежности всю работу по нумерации пакетов, отслеживанию номеров доставленных и недоставленных пакетов, посылке копий и отбрасыванию дубликатов берут на себя конечные узлы. Механизм установления логических соединений позволяет реализовывать дифференцированное обслуживание информационных потоков. Разное обслуживание могут получить даже потоки, относящиеся к одной и той же паре конечных узлов. Например, пара конечных узлов может установить два параллельно работающих логических соединения, в одном из которых передавать данные в зашифрованном виде, а в другом – открытым текстом. Как видим, передача с установлением соединения предоставляет больше возможностей в плане надежности и безопасности обмена данными, чем дейтаграммная передача. Однако этот способ более медленный, так как он подразумевает дополнительные вычислительные затраты на установление и поддержание логического соединения. Передача с установлением виртуального канала Следующий способ продвижения данных в пакетных сетях основан на частном случае логического соединения, в число параметров которого входит жестко определенный для всех пакетов маршрут. То есть все пакеты, передаваемые в рамках данного соединения, должны проходить строго по одному и тому же закрепленному за этим соединением пути. Единственный заранее проложенный фиксированный маршрут, соединяющий конечные узлы в сети с коммутацией пакетов, называют |