«В. Олифер Н. Олифер Компьютерные сети Принципы, технологии, протоколы 4-е издание РЕКОМЕНДОВАНО МИНИСТЕРСТВОМ ОБРАЗОВАНИЯ И НАУКИ Р Ф УЧЕБНИК и ДЛЯ ВУЗОВ В. Олифер Н. Олифер Компьютерные сети Принципы, технологии, ...»
Несмотря на предпринимаемые меры (выбор соответствующей скорости обмена данными, линий связи с определенными характеристиками, способа синхронизации приемника и передатчика), существует вероятность искажения некоторых битов передаваемых данных. Для повышения надежности передачи данных между компьютерами, как правило, используется стандартный прием — подсчет контрольной суммы и передача полученного значения по линиям связи после каждого байта или после некоторого блока байтов. Часто в протокол обмена данными включается как обязательный элемент сигнал-квитанция, который подтверждает правильность приема данных и посылается от получателя отправителю.
Характеристики физических каналов Существует большое количество характеристик, связанных с передачей трафика через физические каналы. С теми из них, которые будут необходимы нам уже в ближайшее время, мы познакомимся сейчас, а некоторые изучим позже, в главе 6.
• Предложенная нагрузка — это поток данных, поступающий от пользователя на вход сети. Предложенную нагрузку можно характеризовать скоростью поступления данных в сеть в битах в секунду (или килобитах, мегабитах и т. д.).
• Скорость передачи данных (information rate или throughput, оба английских термина используются равноправно) — это фактическая скорость потока данных, прошедшего через сеть. Эта скорость может быть меньше, чем скорость предложенной нагрузки, так как данные в сети могут искажаться или теряться.
• Емкость канала связи (capacity), называемая также пропускной способностью, представляет собой максимально возможную скорость передачи информации по каналу.
• Спецификой этой характеристики является то, что она отражает не только параметры физической среды передачи, но и особенности выбранного способа передачи дискретной информации по этой среде. Например, емкость канала связи в сети Ethernet на оптическом волокне равна 10 Мбит/с. Эта скорость является предельно возможной для сочетания технологии Ethernet и оптического волокна. Однако для того же самого оптического волокна можно разработать другую технологию передачи данных, отличающуюся способом кодирования данных, тактовой частотой и другими параметрами, которая будет иметь другую емкость. Так, технология Fast Ethernet обеспечивает передачу данных по тому же оптическому волокну с максимальной скоростью 100 Мбит/с, а технология Gigabit Ethernet — 1000 Мбит/с. Передатчик коммуникационного устройства должен работать со скоростью, равной пропускной способности канала. Эта скорость иногда называется битовой скоростью передатчика (bit rate of transmitter).
• Полоса пропускания (bandwidth) — этот термин может ввести в заблуждение, потому что он используется в двух разных значениях. Во-первых, с его помощью могут характеризовать среду передачи. В этом случае он означает ширину полосы частот, которую линия передает без существенных искажений. Из этого определения понятно происхождение термина. Во-вторых, термин «полоса пропускания» используется как синоним термина емкость канала связи. В первом случае полоса пропускания измеряется в герцах (Гц), во втором — в битах в секунду. Различать значения термина нужно по контексту, хотя иногда это достаточно трудно. Конечно, лучше было бы применять разные термины для различных характеристик, но существуют традиции, которые изменить трудно. Такое двойное использование термина «полоса пропускания» уже Проблемы связи нескольких компьютеров вошло во многие стандарты и книги, поэтому и в данной книге мы будем следовать сложившемуся подходу. Нужно также учитывать, что этот термин в его втором значении является даже более распространенным, чем емкость, поэтому из этих двух синонимов мы будем использовать полосу пропускания.
Еще одна группа характеристик канала связи связана с возможностью передачи информации по каналу в одну или обе стороны.
При взаимодействии двух компьютеров обычно требуется передавать информацию в обоих направлениях, от компьютера А к компьютеру В и обратно. Даже в том случае, когда пользователю кажется, что он только получает информацию (например, загружает музыкальный файл из Интернета) или только ее передает (отправляет электронное письмо), обмен информации идет в двух направлениях. Просто существует основной поток данных, которые интересуют пользователя, и вспомогательный поток противоположного направления, который образуют квитанции о получении этих данных.
Физические каналы связи делятся на несколько типов в зависимости от того, могут они передавать информацию в обоих направлениях или нет.
• Дуплексный канал обеспечивает одновременную передачу информации в обоих направлениях. Дуплексный канал может состоять их двух физических сред, каждая их которых используется для передачи информации только в одном направлении. Возможен вариант, когда одна среда служит для одновременной передачи встречных потоков, в этом случае применяют дополнительные методы выделения каждого потока из суммарного сигнала.
• Полудуплексный канал также обеспечивает передачу информации в обоих направлениях, но не одновременно, а по очереди. То есть в течение определенного периода времени информация передается в одном направлении, а в течение следующего периода — в обратном.
• Симплексный канал позволяет передавать информацию только в одном направлении.
Часто дуплексный канал состоит из двух симплексных каналов.
Подробно вопросы физической передачи дискретных данных обсуждаются в части И.
Проблемы связи нескольких компьютеров До сих пор мы рассматривали вырожденную сеть, состоящую всего из двух машин. При объединении в сеть большего числа компьютеров возникает целый комплекс новых проблем.
Топология физических связей Объединяя в сеть несколько (больше двух) компьютеров, необходимо решить, каким образом соединить их друг с другом, другими словами, выбрать конфигурацию физических связей, или топологию.
Под топологией сети понимается конфигурация графа, вершинам которого соответствуют конечные узлы сети (например, компьютеры) и коммуникационное оборудование (например, маршрутизаторы), а ребрам — физические или информационные связи между вершинами.
Число возможных вариантов конфигурации резко возрастает при увеличении числа связываемых устройств. Так, если три компьютера мы можем связать двумя способами (рис. 2.9, а), то для четырех можно предложить уже шесть топологически разных конфигураций (при условии неразличимости компьютеров), что и иллюстрирует рис. 2.9, б.
Мы можем соединять каждый компьютер с каждым или же связывать их последовательно, предполагая, что они будут общаться, передавая сообщения друг другу «транзитом».
Транзитные узлы должны быть оснащены специальными средствами, позволяющими им выполнять эту специфическую посредническую операцию. В качестве транзитного узла может выступать как универсальный компьютер, так и специализированное устройство.
От выбора топологии связей существенно зависят характеристики сети. Например, наличие между узлами нескольких путей повышает надежность сети и делает возможным распределение загрузки между отдельными каналами. Простота присоединения новых узлов, свойственная некоторым топологиям, делает сеть легко расширяемой. Экономические соображения часто приводят к выбору топологий, для которых характерна минимальная суммарная длина линий связи.
Среди множества возможных конфигураций различают полносвязные и неполносвязные.
Полносвязная топология (рис. 2.10, а) соответствует сети, в которой каждый компьютер непосредственно связан со всеми остальными. Несмотря на логическую простоту, этот вариант оказывается громоздким и неэффективным. Действительно, в таком случае каждый компьютер в сети должен иметь большое количество коммуникационных портов, достаточное для связи с.каждым из остальных компьютеров сети. Для каждой пары компьютеров должна быть выделена отдельная физическая линия связи. (В некоторых случаях даже две, если невозможно использование этой линии для двусторонней передачи.) Полносвязные топологии в крупных сетях применяются редко, так как для связи N узлов требуется N(N- 1)/2 физических дуплексных линий связей, то есть имеет место квадратичная зависимость от числа узлов. Чаще этот вид топологии используется в многомашинных комплексах или в сетях, объединяющих небольшое количество компьютеров.
Проблемы связи нескольких компьютеров Все другие варианты основаны на неполносвязных топологиях, когда для обмена данными между двумя компьютерами может потребоваться транзитная передача данных через другие узлы сети.
Ячеистая топология1 получается из полносвязной путем удаления некоторых связей (рис. 2.10, б). Ячеистая топология допускает соединение большого количества компьютеров и характерна, как правило, для крупных сетей.
В сетях с кольцевой топологией (рис. 2.10, в) данные передаются по кольцу от одного компьютера к другому. Главным достоинством кольца является то, что оно по своей природе обеспечивает резервирование связей. Действительно, любая пара узлов соединена здесь двумя путями — по часовой стрелке и против нее. Кроме того, кольцо представляет собой очень удобную конфигурацию для организации обратной связи — данные, сделав полный оборот, возвращаются к узлу-источнику. Поэтому источник может контролировать процесс доставки данных адресату. Часто это свойство кольца используется для тестирования связности сети и поиска узла, работающего некорректно. В то же время в сетях с кольцевой топологией необходимо принимать специальные меры, чтобы в случае выхода из строя или отключения какого-либо компьютера не прерывался канал связи между остальными узлами кольца.
Звездообразная топология (рис. 2.10, г) образуется в случае, когда каждый компьютер подключается непосредственно к общему центральному устройству, называемому концентратором2. В функции концентратора входит направление передаваемой компьютером Иногда ячеистой называют полносвязную или близкую к полносвязной топологию.
В данном случае термин «концентратор» используется в широком смысле, обозначая любое многовходовое устройство, способное служить центральным элементом, например коммутатор или маршрутизатор.
информации одному или всем остальным компьютерам сети. В качестве концентратора может выступать как универсальный компьютер, так и специализированное устройство.
К недостаткам звездообразной топологии относится более высокая стоимость сетевого оборудования из-за необходимости приобретения специализированного центрального устройства. Кроме того, возможности по наращиванию количества узлов в сети ограничиваются количеством портов концентратора.
Иногда имеет смысл строить сеть с использованием нескольких концентраторов, иерархически соединенных между собой звездообразными связями (рис. 2.10, д). Получаемую в результате структуру называют иерархической звездой, или деревом. В настоящее время дерево является самой распространенной топологией связей как в локальных, так и глобальных сетях.
Особым частным случаем звезды является общая шина (рис. 2.10, е). Здесь в качестве центрального элемента выступает пассивный кабель, к которому по схеме «монтажного ИЛИ» подключается несколько компьютеров (такую же топологию имеют многие сети, использующие беспроводную связь — роль общей шины здесь играет общая радиосреда).
Передаваемая информация распространяется по кабелю и доступна одновременно всем компьютерам, присоединенным к этому кабелю. Основными преимуществами такой схемы являются ее дешевизна и простота присоединения новых узлов к сети, а недостатками — низкая надежность (любой дефект кабеля полностью парализует всю сеть) и невысокая производительность (в каждый момент времени только один компьютер может передавать данные по сети, поэтому пропускная способность делится здесь между всеми узлами сети).
В то время как небольшие сети, как правило, имеют типовую топологию — звезда, кольцо или общая шина, для крупных сетей характерно наличие произвольных связей между компьютерами. В таких сетях можно выделить отдельные произвольно связанные фрагменты (подсети), имеющие типовую топологию, поэтому их называют сетями со смешанной топологией (рис. 2.11).
Проблемы связи нескольких компьютеров Адресация узлов сети Еще одной новой проблемой, которую нужно учитывать при объединении трех и более компьютеров, является проблема их адресации, точнее адресации их сетевых интерфейсов1.
Один компьютер может иметь несколько сетевых интерфейсов. Например, для создания полносвязной структуры из N компьютеров необходимо, чтобы у каждого из них имелся N - 1 интерфейс.
По количеству адресуемых интерфейсов адреса можно классифицировать следующим образом:
• уникальный адрес (unicast) используется для идентификации отдельных интерфейсов;
• групповой адрес (multicast) идентифицирует сразу несколько интерфейсов, поэтому данные, помеченные групповым адресом, доставляются каждому из узлов, входящих в группу;
• данные, направленные по широковещательному адресу (broadcast), должны быть доставлены всем узлам сети;
• адрес произвольной рассылки (anycast), определенный в новой версии протокола IPv6, так же, как и групповой адрес, задает группу адресов, однако данные, посланные по этому адресу, должны быть доставлены не всем адресам данной группы, а любому из них.
Адреса могут быть числовыми (например, 129.26.255.255 или 81.la.ff.fF) и символьными (site.domen.ru, willi-winki).
Символьные адреса (имена) предназначены для запоминания людьми и поэтому обычно несут смысловую нагрузку. Для работы в больших сетях символьное имя может иметь иерархическую структуру, например ftp-arch1.ucl.ac.uk. Этот адрес говорит о том, что данный компьютер поддерживает ftp-архив в сети одного из колледжей Лондонского университета (University College London — ucl) и эта сеть относится к академической ветви (ас) Интернета Великобритании (United Kingdom — uk). При работе в пределах сети Лондонского университета такое длинное символьное имя явно избыточно и вместо него можно пользоваться кратким символьным именем ftp-arch 1. Хотя символьные имена удобны для людей, из-за переменного формата и потенциально большой длины их передача по сети не очень экономична.
Множество всех адресов, которые являются допустимыми в рамках некоторой схемы адресации, называется адресным пространством.
Адресное пространство может иметь плоскую (линейную) организацию (рис. 2.12) или иерархическую организацию (рис. 2.13).
При плоской организации множество адресов никак не структурировано. Примером плоского числового адреса является МАС-адрес, предназначенный для однозначной идентификации сетевых интерфейсов в локальных сетях. Такой адрес обычно используется только аппаратурой, поэтому его стараются сделать по возможности компактным и записывают в виде двоичного или шестнадцатеричного числа, например 0081005е24а8. При задании Иногда вместо точного выражения «адрес сетевого интерфейса» мы будем использовать упрощенное - «адрес узла сети».
МАС-адресов не требуется выполнение ручной работы, так как они обычно встраиваются в аппаратуру компанией-изготовителем, поэтому их называют также аппаратными адресами (hardware address). Использование плоских адресов является жестким решением — при замене аппаратуры, например сетевого адаптера, изменяется и адрес сетевого интерфейса компьютера.
Рис. 2. 1 2. Плоская организация адресного пространства Рис. 2.13. Иерархическая организация адресного пространства При иерархической организации адресное пространство структурируется в виде вложенных друг в друга подгрупп, которые, последовательно сужая адресуемую область, в конце концов, определяют отдельный сетевой интерфейс.
В показанной на рис. 2.13 трехуровневой структуре адресного пространства адрес конечного узла задается тремя составляющими: идентификатором группы (К), в которую входит данный узел, идентификатором подгруппы ( I ) и, наконец, идентификатором узла (и), однозначно определяющим его в подгруппе. Иерархическая адресация во многих случаях оказывается более рациональной, чем плоская. В больших сетях, состоящих из многих тысяч узлов, использование плоских адресов приводит к большим издержкам — конечным узлам и коммуникационному оборудованию приходится оперировать таблицами адресов, состоящими из тысяч записей. В противоположность этому иерархическая система адресации позволяет при перемещении данных до определенного момента пользоваться Проблемы связи нескольких компьютеров только старшей составляющей адреса (например, идентификатором группы К), затем для дальнейшей локализации адресата задействовать следующую по старшинству часть ( I ) и в конечном счете — младшую часть (п).
Типичными представителями иерархических числовых адресов являются сетевые IPи IPX-адреса. В них поддерживается двухуровневая иерархия, адрес делится на старшую часть — номер сети и младшую — номер узла. Такое деление позволяет передавать сообщения между сетями только на основании номера сети, а номер узла требуется уже после доставки сообщения в нужную сеть; точно так же, как название улицы используется почтальоном только после того, как письмо доставлено в нужный город.
На практике обычно применяют сразу несколько схем адресации, так что сетевой интерфейс компьютера может одновременно иметь несколько адресов-имен. Каждый адрес задействуется в той ситуации, когда соответствующий вид адресации наиболее удобен.
А для преобразования адресов из одного вида в другой используются специальные вспомогательные протоколы, которые называют протоколами разрешения адресов.
Пользователи адресуют компьютеры иерархическими символьными именами, которые автоматически заменяются в сообщениях, передаваемых по сети, иерархическими числовыми адресами. С помощью этих числовых адресов сообщения доставляются из одной сети в другую, а после доставки сообщения в сеть назначения вместо иерархического числового адреса используется плоский аппаратный адрес компьютера. Проблема установления соответствия между адресами различных типов может решаться как централизованными, так и распределенными средствами.
При централизованном подходе в сети выделяется один или несколько компьютеров (серверов имен), в которых хранится таблица соответствия имен различных типов, например символьных имен и числовых адресов. Все остальные компьютеры обращаются к серверу имен с запросами, чтобы по символьному имени найти числовой номер необходимого компьютера.
При распределенном подходе каждый компьютер сам хранит все назначенные ему адреса разного типа. Тогда компьютер, которому необходимо определить по известному иерархическому числовому адресу некоторого компьютера его плоский аппаратный адрес, посылает в сеть широковещательный запрос. Все компьютеры сети сравнивают содержащийся в запросе адрес с собственным. Тот компьютер, у которого обнаружилось совпадение, посылает ответ, содержащий искомый аппаратный адрес. Такая схема использована в протоколе разрешения адресов (Address Resolution Protocol, ARP) стека TCP/IP.
Достоинство распределенного подхода состоит в том, что он позволяет отказаться от выделения специального компьютера в качестве сервера имен, который, к тому же, часто требует ручного задания таблицы соответствия адресов. Недостатком его является необходимость широковещательных сообщений, перегружающих сеть. Именно поэтому распределенный подход используется в небольших сетях, а централизованный — в больших.
До сих пор мы говорили об адресах сетевых интерфейсов, компьютеров и коммуникационных устройств, однако конечной целью данных, пересылаемых по сети, являются не сетевые интерфейсы или компьютеры, а выполняемые на этих устройствах программы — процессы. Поэтому в адресе назначения наряду с информацией, идентифицирующей интерфейс устройства, должен указываться адрес процесса, которому предназначены посылаемые по сети данные. Очевидно, что достаточно обеспечить уникальность адреса процесса в пределах компьютера. Примером адресов процессов являются номера портов TCP и UDP, используемые в стеке TCP/IP.
Коммутация Итак, пусть компьютеры физически связаны между собой в соответствии с некоторой топологией и выбрана система адресации. Остается нерешенной самая важная проблема:
каким способом передавать данные между конечными узлами? Особую сложность приобретает эта задача для неполносвязной топологии сети, когда обмен данными между произвольной парой конечных узлов (пользователей) должен идти в общем случае через транзитные узлы.
Соединение конечных узлов через сеть транзитных узлов называют коммутацией. Последовательность узлов, лежащих на пути от отправителя к получателю, образует маршрут.
Например, в сети, показанной на рис. 2.14, узлы 2 и 4, непосредственно между собой не связанные, вынуждены передавать данные через транзитные узлы, в качестве которых могут выступить, например, узлы 1 и 5. Узел 1 должен выполнить передачу данных между своими интерфейсами Л и В, а узел 5 — между интерфейсами F и В. В данном случае маршрутом является последовательность: 2-1-5-4, где 2 — узел-отправитель, 1 и 5 — транзитные узлы, 4 — узел-получатель.
Рис. 2.14. Коммутация абонентов через сеть транзитных узлов Обобщенная задача коммутации В самом общем виде задача коммутации может быть представлена в виде следующих взаимосвязанных частных задач.
1. Определение информационных потоков, для которых требуется прокладывать маршруты.
Обобщенная задана коммутации 2. Маршрутизация потоков.
3. Продвижение потоков, то есть распознавание потоков и их локальная коммутация на каждом транзитном узле.
4. Мультиплексирование и демультиплексирование потоков.
Определение информационных потоков Понятно, что через один транзитный узел может проходить несколько маршрутов, например, через узел 5 (см. рис. 2.14) проходят, как минимум, все данные, направляемые узлом 4 каждому из остальных узлов, а также все данные, поступающие в узлы 3,4 и 10.
Транзитный узел должен уметь распознавать поступающие на него потоки данных, для того чтобы обеспечивать передачу каждого из них именно на тот свой интерфейс, который ведет к нужному узлу.
Информационным потоком, или потоком данных, называют непрерывную последовательность данных, объединенных набором общих признаков, выделяющих эти данные из общего сетевого трафика.
Например, как поток можно определить все данные, поступающие от одного компьютера; объединяющим признаком в данном случае служит адрес источника. Эти же данные можно представить как совокупность нескольких подпотоков, каждый из которых в качестве дифференцирующего признака имеет адрес назначения. Наконец, каждый из этих подпотоков, в свою очередь, можно разделить на более мелкие подпотоки, порожденные разными сетевыми приложениями — электронной почтой, программой копирования файлов, веб-сервером. Данные, образующие поток, могут быть представлены в виде различных информационных единиц данных — пакетов, кадров или ячеек.
ПРИМЕЧАНИЕ
В англоязычной литературе для потоков данных, передающихся с равномерной и неравномерной скоростью, обычно используют разные термины — соответственно «data stream» и «data flow». Например, при передаче веб-страницы через Интернет предложенная нагрузка представляет собой неравномерный поток данных, а при вещании музыки интернет-станцией — равномерный. Д л я сетей передачи данных характерна неравномерная скорость передачи, поэтому далее в большинстве ситуаций под термином «поток данных» мы будем понимать именно неравномерный поток данных и указывать на равномерный характер этого процесса только тогда, когда это нужно подчеркнуть.Очевидно, что при коммутации в качестве обязательного признака выступает адрес назначения данных. На основании этого признака весь поток входящих в транзитный узел данных разделяется на подпотоки, каждый из которых передается на интерфейс, соответствующий маршруту продвижения данных.
Адреса источника и назначения определяют поток для пары соответствующих конечных узлов. Однако часто бывает полезно представить этот поток в виде нескольких подпотоков, причем для каждого из них может быть проложен свой особый маршрут. Рассмотрим пример, когда на одной и той же паре конечных узлов выполняется несколько взаимодействующих по сети приложений, каждое из которых предъявляет к сети свои особые требования.
В таком случае выбор маршрута должен осуществляться с учетом характера передаваемых данных, например, для файлового сервера важно, чтобы передаваемые им большие объемы данных направлялись по каналам, обладающим высокой пропускной способностью, а для программной системы управления, которая посылает в сеть короткие сообщения, требующие обязательной и немедленной отработки, при выборе маршрута более важна надежность линии связи и минимальный уровень задержек на маршруте. Кроме того, даже для данных, предъявляющих к сети одинаковые требования, может прокладываться несколько маршрутов, чтобы за счет распараллеливания ускорить передачу данных.
Признаки потока могут иметь глобальное или локальное значение — в первом случае они однозначно определяют поток в пределах всей сети, а во втором — в пределах одного транзитного узла. Пара адресов конечных узлов для идентификации потока — это пример глобального признака. Примером признака, локально определяющего поток в пределах устройства, может служить номер (идентификатор) интерфейса данного устройства, на который поступили данные. Например, возвращаясь к рис. 2.14, узел 1 может быть настроен так, чтобы передавать на интерфейс В все данные, поступившие с интерфейса А, а на интерфейс С — данные, поступившие с интерфейса D. Такое правило позволяет отделить поток данных узла 2 от потока данных узла 7 и направлять их для транзитной передачи через разные узлы сети, в данном случае поток узла 2 — через узел 5, а поток узла 7 — через узел 8.
Метка потока — это особый тип признака. Она представляет собой некоторое число, которое несут все данные потока. Глобальная метка назначается данным потока и не м.еняет своего значения на всем протяжении его пути следования от узла источника до узла назначения, таким образом, она уникально определяет поток в пределах сети. В некоторых технологиях используются локальные метки потока, динамически меняющие свое значение при передаче данных от одного узла к другому.
Таким образом, распознавание потоков во время коммутации происходит на основании признаков, в качестве которых, помимо обязательного адреса назначения данных, могут выступать и другие признаки, такие, например, как идентификаторы приложений.
Маршрутизация Задача маршрутизации, в свою очередь, включает в себя две подзадачи:
• определение маршрута;
• оповещение сети о выбранном маршруте.
Определить маршрут означает выбрать последовательность транзитных узлов и их интерфейсов, через которые надо передавать данные, чтобы доставить их адресату. Определение маршрута — сложная задача, особенно когда конфигурация сети такова, что между парой взаимодействующих сетевых интерфейсов существует множество путей. Чаще всего выбор останавливают на одном оптимальном1 по некоторому критерию маршруте. В качестве критериев оптимальности могут выступать, например, номинальная пропускная способность и загруженность каналов связи; задержки, вносимые каналами; количество промежуточных транзитных узлов; надежность каналов и транзитных узлов.
На практике для снижения объема вычислений ограничиваются поиском не оптимального в математическом смысле, а рационального, то есть близкого к оптимальному, маршрута.
Обобщенная задана коммутации Но даже в том случае, когда между конечными узлами существует только один путь, при сложной топологии сети его нахождение может представлять собой нетривиальную задачу.
Маршрут может определяться эмпирически («вручную») администратором сети на основании различных часто не формализуемых соображений. Среди побудительных мотивов выбора пути могут быть: особые требования к сети со стороны различных типов приложений, решение передавать трафик через сеть определенного поставщика услуг, предположения о пиковых нагрузках на некоторые каналы сети, соображения безопасности.
Однако эмпирический подход к определению маршрутов мало пригоден для большой сети со сложной топологией. В этом случае используются автоматические методы определения маршрутов. Для этого конечные узлы и другие устройства сети оснащаются специальными программными средствами, которые организуют взаимный обмен служебными сообщениями, позволяющий каждому узлу составить свое «представление» о сети. Затем на основе собранных данных программными методами определяются рациональные маршруты.
При выборе маршрута часто ограничиваются только информацией о топологии сети.
Этот подход иллюстрирует рис. 2.15. Для передачи трафика между конечными узлами А и С существует два альтернативных маршрута: А-1-2-3-С и А-1-3-С. Если мы учитываем только топологию, то выбор очевиден — маршрут А-1-3-С, который имеет меньше транзитных узлов.
Решение было найдено путем минимизации критерия, в качестве которого в данном примере выступала длина маршрута, измеренная количеством транзитных узлов. Однако, возможно, наш выбор был не самым лучшим. На рисунке показано, что каналы 1-2 и 2- обладают пропускной способностью 100 Мбит/с, а канал 1-3 — только 10 Мбит/с. Если мы хотим, чтобы наша информация передавалась по сети с максимально возможной скоростью, то нам следовало бы выбрать маршрут А-1-2-3-С, хотя он и проходит через большее количество промежуточных узлов. То есть можно сказать, что маршрут А- 1-2-3-С в данном случае оказывается «более коротким».
Абстрактный способ измерения степени близости между двумя объектами называется метрикой. Так, для измерения длины маршрута могут быть использованы разные метрики — количество транзитных узлов, как в предыдущем примере, линейная протяженность маршрута и даже его стоимость в денежном выражении. Для построения метрики, учитывающей пропускную способность, часто используют следующий прием: длину каждого канала-участка характеризуют величиной, обратной его пропускной способности. Чтобы оперировать целыми числами, выбирают некоторую константу, заведомо большую, чем пропускные способности каналов в сети. Например, если мы в качестве такой константы выберем 100 Мбит/с, то метрика каждого из канатов 1-2 и 2-3 равна 1, а метрика канала 1- составляет 10. Метрика маршрута равна сумме метрик составляющих его каналов, поэтому часть пути 1-2-3 обладает метрикой 2, а альтернативная часть пути 1-3 — метрикой 10. Мы выбираем более «короткий» путь, то есть путь А-1-2-3-С.
Описанные подходы к выбору маршрутов не учитывают текущую степень загруженности каналов трафиком1. Используя аналогию с автомобильным трафиком, можно сказать, что мы выбирали маршрут по карте, учитывая количество промежуточных городов и ширину дороги (аналог пропускной способности канала), отдавая предпочтение скоростным магистралям. Но мы не стали слушать радио или телевизионную программу, которая сообщает о текущих заторах на дорогах. Так что наше решение оказывается отнюдь не лучшим, когда по маршруту А-1-2-3-С уже передается большое количество потоков, а маршрут А-1-3-С практически свободен.
После того как маршрут определен (вручную или автоматически), надо оповестить о нем все устройства сети. Сообщение о маршруте должно нести каждому транзитному устройству примерно такую информацию: «каждый раз, когда в устройство поступят данные, относящиеся к потоку п, их следует передать для дальнейшего продвижения на интерфейс F».
Каждое подобное сообщение о маршруте обрабатывается устройством, в результате создается новая запись в таблице коммутации. В этой таблице локальному или глобальному признаку (признакам) потока (например, метке, номеру входного интерфейса или адресу назначения) ставится в соответствие номер интерфейса, на который устройство должно передавать данные, относящиеся к этому потоку.
Таблица 2.1 является фрагментом таблицы коммутации, содержащий запись, сделанную на основании сообщения о необходимости передачи потока п на интерфейс F.
Таблица 2.1. Фрагмент таблицы коммутации Признаки потока Направление передачи данных (номер интерфейса Конечно, детальное описание структуры сообщения о маршруте и содержимого таблицы коммутации зависит от конкретной технологии, однако эти особенности не меняют сущности рассматриваемых процессов.
Передача информации транзитным устройствам о выбранных маршрутах, так же как и определение маршрута, может осуществляться вручную или автоматически. Администратор сети может зафиксировать маршрут, выполнив в ручном режиме конфигурирование устройства, например, жестко скоммутировав на длительное время определенные пары входных и выходных интерфейсов (как работали «телефонные барышни» на первых Такие методы, в которых используется информация о текущей загруженности каналов связи, позволяют определять более рациональные маршруты, однако требуют интенсивного обмена служебной информацией между узлами сети.
Обобщенная задана коммутации коммутаторах). Он может также по собственной инициативе внести запись о маршруте в таблицу коммутации.
Однако поскольку топология и состав информационных потоков могут меняться (отказы узлов или появление новых промежуточных узлов, изменение адресов или определение новых потоков), гибкое решение задач определения и задания маршрутов предполагает постоянный анализ состояния сети и обновление маршрутов и таблиц коммутации. В таких случаях задачи прокладки маршрутов, как правило, не могут быть решены без достаточно сложных программных и аппаратных средств.
Продвижение данных Итак, пусть маршруты определены, записи о них сделаны в таблицах всех транзитных узлов, все готово к выполнению основной операции — передаче данных между абонентами (коммутации абонентов).
Для каждой пары абонентов эта операция может быть представлена несколькими (по числу транзитных узлов) локальными операциями коммутации. Прежде всего, отправитель должен выставить данные на тот свой интерфейс, с которого начинается найденный маршрут, а все транзитные узлы должны соответствующим образом выполнить «переброску»
данных с одного своего интерфейса на другой, другими словами, выполнить коммутацию интерфейсов. Устройство, функциональным назначением которого является коммутация, называется коммутатором. На рис. 2.16 показан коммутатор, который переключает информационные потоки между четырьмя своими интерфейсами.
Однако прежде чем выполнить коммутацию, коммутатор должен распознать поток. Для этого поступившие данные анализируются на предмет наличия в них признаков какоголибо из потоков, заданных в таблице коммутации. Если произошло совпадение, то эти данные направляются на интерфейс, определенный для них в маршруте.
О ТЕРМИНАХ
Термины «коммутация», «таблица коммутации» и «коммутатор» в телекоммуникационных сетях могут трактоваться неоднозначно. М ы уже определили коммутацию как процесс соединения абонентов сети через транзитные узлы. Этим же термином мы обозначаем и соединение интерфейсов в пределах отдельного транзитного узла. Коммутатором в широком смысле называется устройство любого типа, способное выполнять операции переключения потока данных с одного интерфейса на другой. Операция коммутации может выполняться в соответствии с различными правилами и алгоритмами. Некоторые способы коммутации и соответствующие им таблицы и устройства получили специальные названия. Например, в технологиях сетевого уровня, таких как I P и IPX, для обозначения аналогичных понятий используются термины «маршрутизация», «таблица маршрутизации», «маршрутизатор». В то же время за другими специальными типами коммутации и соответствующими устройствами закрепились те же самые названия «коммутация», «таблица коммутации» и «коммутатор», применяемые в узком смысле, например, как коммутация и коммутатор локальной сети. Д л я телефонных сетей, которые появились намного раньше компьютерных, также характерна аналогичная терминология, коммутатор является здесь синонимом телефонной станции. Из-за солидного возраста и гораздо большей (пока) распространенности телефонных сетей чаще всего в телекоммуникациях под термином «коммутатор» понимают именно телефонный коммутатор.Коммутатором может быть как специализированное устройство, так и универсальный компьютер со встроенным программным механизмом коммутации, в этом случае коммутатор называется программным. Компьютер может совмещать функции коммутации данных с выполнением своих обычных функций как конечного узла. Однако во многих случаях более рациональным является решение, в соответствии с которым некоторые узлы в сети выделяются специально для коммутации. Эти узлы образуют коммутационную сеть, к которой подключаются все остальные. На рис. 2.17 показана коммутационная сеть, образованная из узлов 1, 5, 6 и 8, к которой подключаются конечные узлы 2,3, 4, 7, 9 и 10, 11.
Обобщенная задана коммутации Мультиплексирование и демультиплексирование Чтобы определить, на какой интерфейс следует передать поступившие данные, коммутатор должен выяснить, к какому потоку они относятся. Эта задача должна решаться независимо от того, поступает на вход коммутатора только один «чистый» поток или «смешанный»
поток, являющийся результатом агрегирования нескольких потоков. В последнем случае к задаче распознавания потоков добавляется задача демультиплексирования.
Демультиплексирование — разделение суммарного агрегированного потока на несколько составляющих его потоков.
Как правило, операцию коммутации сопровождает также обратная операция мультиплексирования.
Мультиплексирование — образование из нескольких о -дельных потоков общего агрегированного потока, который передается по одному физическому каналу связи.
Другими словами, мультиплексирование — это способ разделения одного имеющегося физического канала между несколькими одновременно протекающими сеансами связи между абонентами сети.
Операции мультиплексирования/демультиплексирования имеют такое же важное значение в любой сети, как и операции коммутации, потому что без них пришлось бы для каждого потока предусматривать отдельный канал, что привело бы к большому количеству параллельных связей в сети и свело бы «на нет» все преимущества неполносвязной сети.
На рис. 2.18 показан фрагмент сети, состоящий из трех коммутаторов. Коммутатор 1 имеет четыре сетевых интерфейса. На интерфейс 1 поступают данные с двух интерфейсов —Зи4.
Их надо передать в общий физический канал, то есть выполнить операцию мультиплексирования.
Рис. 2.18. Операции мультиплексирования и демультиплексирования потоков при коммутации Одним из основных способов мультиплексирования потоков является разделение времени. При этом способе каждый поток время от времени (с фиксированным или случайным периодом) получает физический канал в полное свое распоряжение и передает по нему свои данные. Распространено также частотное разделение канала, когда каждый поток передает данные в выделенном ему частотное диапазоне.
Технология мультиплексирования должна позволять получателю такого суммарного потока выполнять обратную операцию — разделение (демультиплексирование) данных на слагаемые потоки. На интерфейсе 3 коммутатор выполняет демультиплексирование потока на три составляющих его подпотока. Один из них он передает на интерфейс 1, другой — на интерфейс 2, третий — на интерфейс 4.
Вообще говоря, на каждом интерфейсе могут одновременно выполняться обе функции — мультиплексирование и демультиплексирование.
Частный случай коммутатора, у которого все входящие информационные потоки коммутируются на один выходной интерфейс, где они мультиплексируются в один агрегированный поток, называется мультиплексором. Коммутатор, который имеет один входной интерфейс и несколько выходных, называется демультиплексором (рис. 2.19).
Разделяемая среда передачи данных Во всех рассмотренных ранее примерах мультиплексирования потоков к каждой линии связи подключались только два интерфейса. В том случае, когда линия связи является дуплексным каналом связи, как это показано на рис. 2.20, каждый из интерфейсов монопольно использует канал связи в направлении «от себя». Это объясняется тем, что дуплексный канал состоит из двух независимых сред передачи данных (подканалов), и так как только передатчик интерфейса является активным устройством, а приемник пассивно ожидает поступления сигналов от приемника, то конкуренции подканалов не возникает.
Такой режим использования среды передачи данных является в настоящее время основным в компьютерных локальных и глобальных се гях.
Однако если в глобальных сетях такой режьм использовался всегда, то в локальных сетях до середины 90-х годов преобладал другой режим, основанный на разделяемой среде передачи данных.
В наиболее простом случае эффект разделения среды возникает при соединении двух интерфейсов с помощью полудуплексного канала связи, то есть такого канала, который может передавать данных в любом направлении, но только попеременно (рис. 2.21). В этом Обобщенная задана коммутации случае к одной и той же среде передачи данных (например, к коаксиальному кабелю или общей радиосреде) подключены два приемника двух независимых узлов сети.
Разделяемой средой (shared medium) называется фи: ческая среда передачи данных, к которой непосредственно подключено несколько передатчи в узлов сети. Причем в каждый момент времени только один из передатчиков какого-либо у:
среде и использует ее для передачи данных приемни! другого узла, подключенному к этой же среде.
Р и с. 2. 2 0. Дуплексный канал — разделяемая среда отсутствует При таком применении среды передачи данных возникает новая задача совместного использования среды независимыми передатчиками таким образом, чтобы в каждый отдельный момент времени по среде передавались данные только одного передатчика. Другими словами, возникает необходимость в механизме синхронизации доступа интерфейсов к разделяемой среде.
Обобщением разделяемой среды является случай, показанный на рис. 2.22, когда к каналу связи подключаются более двух интерфейсов (в приведенным примере — три), при этом применяется топология общей шины.
Существуют различные способы решения задачи организации совместного доступа к разделяемым линиям связи. Одни из них подразумевают централизованный подход, когда доступом к каналу управляет специальное устройство — арбитр, другие — децентрализованный. Если мы обратимся к организации рабо 'ы компьютера, то увидим, что доступ к системной шине компьютера, которую совместно используют внутренние блоки компьютера, управляется централизованно — либо процессором, либо специальным арбитром шины.
Рис. 2.22. Канал с множественными подключениями — разделяемая среда В сетях организация совместного доступа к линиям связи имеет свою специфику из-за существенно большего времени распространения сигналов по линиям связи. Здесь процедуры согласования доступа к линии связи могут занимать слишком большой промежуток времени и приводить к значительным потерям производительности сети. Именно по этой причине механизм разделения среды в глобальных сетях практически не используется.
На первый взгляд может показаться, что механизм разделения среды очень похож на механизм мультиплексирования потоков — в том и другом случаях по линии связи передаются несколько потоков данных. Однако здесь есть принципиальное различие, касающееся того, как контролируется (управляется) линия связи. При мультиплексировании дуплексная линия связи в каждом направлении находится под полным контролем одного коммутатора, который решает, какие потоки разделяют общий канал связи.
Для локальных сетей разделяемая среда сравнительно долго была основным механизмом использования каналов связи, который применялся во всех технологиях локальных сетей — Ethernet, ArcNet, Token Ring, FDDI. При этом в технологиях локальных сетей применялись децентрализованные методы доступа к среде, не требующие наличия арбитра в сети. Популярность техники разделения среды в локальных сетях объяснялась простотой и экономичностью аппаратных решений. Например, для создания сети Ethernet на коаксиальном кабеле никакого другого сетевого оборудования кроме сетевых адаптеров компьютеров и самого кабеля не требуется. Наращивание количества компьютеров в локальной сети Ethernet на коаксиальном кабеле выполняется также достаточно просто — путем присоединения нового отрезка кабеля к существующему.
Сегодня в проводных локальных сетях метод разделения среды практически перестал применяться. Основной причиной отказа от разделяемой среды явилась ее низкая и плохо предсказуемая производительность, а также плохая масштабируемость 1. Низкая проМасштабируемостью называют свойство сети допускать наращивание количества узлов и протяженность линий связи в очень широких пределах без снижения производительности.
Обобщенная задана коммутации изводительность объясняется тем, что пропускная способность канала связи делится между всеми компьютерами сети. Например, если локальная сеть Ethernet состоит из 100 компьютеров, а для их связи используются коаксиальный кабель и сетевые адаптеры, работающие на скорости 10 Мбит/с, то в среднем на каждый компьютер приходится только 0,1 Мбит/с пропускной способности. Более точно оц анить долю пропускной способности, приходящуюся на какой-либо компьютер сети, трудно, так как эта величина зависит от многих случайных факторов, например активности дэугих компьютеров. Наверно, к этому моменту читателю уже понятна причина плохой масштабируемости подобной сети — чем больше мы добавляем компьютеров, тем меньшая доля пропускной способности достается каждому компьютеру сети.
Описанные недостатки являются следствием самого принципа разделения среды, поэтому преодолеть их полностью невозможно. Появление в начале 90-х недорогих коммутаторов локальных сетей привело к настоящей революции в этой области, и постепенно коммутаторы вытеснили разделяемую среду полностью.
Сегодня механизм разделения среды используется только в беспроводных локальных сетях, где среда — радиоэфир — естественным образом соединяет все конечные узлы, находящиеся в зоне распространения сигнала.
Типы коммутации Комплекс технических решений обобщенной задач и коммутации в своей совокупности составляет основу любой сетевой технологии. Как уже отмечалось, к этим частным задачам относятся:
• определение потоков и соответствующих маршрутов;
• фиксация маршрутов в конфигурационных параметрах и таблицах сетевых устройств; ^ • распознавание потоков и передача данных между интерфейсами одного устройства;
• мультиплексирование/демультиплексирование потоков;
• разделение среды передачи.
Среди множества возможных подходов к решению 3afla t и коммутации абонентов в сетях выделяют два основополагающих, к которым относят коммутг цию каналов и коммутацию пакетов.
Каждый из этих двух подходов имеет свои достоинства и недостатки. Существуют традиционные области применения каждой из техник коммутации, например, телефонные сети строились и продолжают строиться с использованием техники коммутации каналов, а компьютерные сети в подавляющем большинстве основаны на технике коммутации пакетов. Техника коммутации пакетов гораздо моложе своей конкурентки и пытается вытеснить ее из некоторых областей, например из телефонии (в форме интернет- или IP-телефонии), но этот спор пока не решен, и, скорее всего, две техники коммутации будут сосуществовать еще долгое время, дополняя друг друга. Тем не менее по долгосрочным прогнозам многих специалистов будущее принадлежит технике коммутации пакетов, как более гибкой и универсальной.
ПРИМЕР-АНАЛОГИЯ
Поясним достаточно абстрактное описание обобщенной модели коммутации на примере работы традиционной почтовой службы. Почта также работает с и н ф о р м а ц и о н н ы м и потоками, которые в данном случае составляют почтовые отправления. Основным признаком почтового потока является адрес получателя. Д л я упрощения будем рассматривать в качестве адреса только страну, например особое требование к надежности или скорости доставки. Например, пометка «Avia» на почтовых отправлениях в Б р а з и л и ю выделит из общего потока почты в Бразилию подпоток, который будет доставляться самолетом.Д л я каждого потока почтовая служба должна определить маршрут, который будет проходить через последовательность почтовых отделений, являющихся аналогами коммутаторов. В результате многолетней работы почтовой службы уже определены маршруты для большинства адресов назначения.
Иногда возникают новые маршруты, связанные с пс явлением новых возможностей — политических, транспортных, экономических. После выбора нового маршрута н у ж н о оповестить о нем сеть почтовых отделений. Как видно, эти действия очень н шоминают работу телекоммуникационной сети.
Информация о выбранных маршрутах следования почты представлена в каждом почтовом отделении в виде таблицы, в которой задано соответствие между страной назначения и следующим почтовым отделением. Например, в почтовом отделении горо ia Саратова все письма, адресованные в Индию, направляются в почтовое отделение Ашхабада, а письма, адресованные в Норвегию, — в почтовое отделение Санкт-Петербурга. Такая таблица направлений доставки почты является прямой аналогией таблицы коммутации коммуникационной сети.
Каждое почтовое отделение работает подобно комм;/татору. Все поступающие от абонентов и других почтовых отделений почтовые отправления сортируются, то есть происходит распознавание потоков.
После этого почтовые отправления, принадлежащие одному «потоку», упаковываются в мешок, для которого в соответствии с таблицей направлений определяется следующее по маршруту почтовое отделение.
Выводы Для того чтобы пользователь сети получил возможность доступа к ресурсам «чужих» компьютеров, таких как диски, принтеры, плоттеры, необходимо дополнить все компьютеры сети специальными средствами. В каждом компьютере функции передечи данных в линию связи выполняют совместно аппаратный модуль, называемый сетевым адаптером или сетевой интерфейсной картой, и управляющая программа — драйвер. Задачи более высокого /ровня — формирование запросов к ресурсам и их выполнение — решают соответственно клиентские и серверные модули ОС.
Даже в простейшей сети, состоящей из двух компьютеров, возникают проблемы физической передачи сигналов по линиям связи: кодирование и модуляция, синхронизация передающего и принимающего устройств, контроль корректности переданных данных.
Важными характеристиками, связанными с передачей трафика через физические каналы, являются:
предложенная нагрузка, скорость передачи данных, пропускная способность, емкость канала связи, полоса пропускания.
При связывании в сеть более двух компьютеров возникают проблемы выбора топологии (полносвязной, звезды, кольца, общей шины, иерархического дерева, произвольной); способа адресации (плоского или иерархического, числового или символьного); способа разделения линий связи и механизма коммутации.
В неполносвязных сетях соединение пользователей осуществляется путем коммутации через сеть транзитных узлов. При этом должны быть решены следующие задачи: определение потоков данных и маршрутов для них, продвижение данных в каждом транзитном узле, мультиплексирование и демультиплексирование потоков.
Среди множества возможных подходов к решению задачи коммутации выделяют два основополагающих — коммутацию каналов и пакетов.
Вопросы и задания Вопросы и задания 1. С какими ресурсами компьютера могут совместно работать несколько пользователей сети? Приведите примеры, когда у пользователей возникает необходимость разделять процессор?
2. Какие из перечисленных понятий могут быть определены как «набор информационных сообщений определенного формата, которыми обмениваются два устройства или две программы, а также алгоритм обмена этими сообщениями»:
а) порт; б) протокол; в) логический интерфейс; i) физический интерфейс.
3. Опишите роль буферизации данных в процедуре доступа приложения, выполняемого на одном компьютере сети, к периферийному устройству другого компьютера. Сколько раз данные буферизуются при этом? Какой размер должен иметь буфер в каждом из таких случаев?
4. Что из перечисленного можно считать одним из возможных определений понятия «веб-сервер»:
а) распределенная программа;
б) часть веб-службы;
в) клиентская часть распределенного сетевого приложения;
г) браузер;
д) локальное приложение;
е) клиентская часть централизованного сетевого приложения;
ж) серверная часть распределенного сетевого пр иложения;
з) компьютер.
5. Приведите примеры сетевых служб. Какие из них ориентированы на администратора сети? Какие из них обычно входят в состав сетевой ОС?
6. Какие из перечисленных терминов в некоторое контексте могут использоваться как синонимы:
а) емкость канала связи;
б) скорость передачи данных;
в) полоса пропускания канала связи;
г) пропускная способность канала связи.
7. Какие соображения следует учитывать при выборе топологии сети? Приведите достоинства и недостатки каждой из типовых топологий.
8. К какому типу относится каждый из восьми вариантов топологии на рис. 2.9. Для определенности рассматривайте приведенные варианты топологии построчно сверху вниз, слева направо.
9. Каким типом адреса снабжают посылаемые даг ные, когда хотят, чтобы они были доставлены всем узлам сети:
a) multicast; б) anycast; в) broadcast; г) unicast.
10. В соответствии с классификацией адресов, используемых в компьютерных сетях, существуют символьные, числовые адреса, плос кие, иерархические, индивидуальные, групповые и широковещательные адреса, а также адреса групповой рассылки. Как бы вы классифицировали в приведенных терминах обычный почтовый адрес? Какой тип сетевого протокола соответствует процедуре определения адреса по почтовому индексу?
11. В чем состоит и как решается задача маршрутизации?
12. Работа почтового отделения во многом аналогична работе коммутатора компьютерной сети. Какие процедуры обработки почтовых отправлений соответствуют мультиплексированию? Демультиплексированию? Как создается и какую информацию содержит «таблица маршрутизации» почтового отделения? Какой атрибут информационного потока может служить аналогом пометки «АВИА» на почтовом конверте?
13. Опишите два основных подхода к организации совместного использования передающей среды несколькими передатчиками.
14. Приведите аргументы за и против использования разделяемой среды в LAN и WAN.
В этой главе продолжается исследование общих принципов коммутации в телекоммуникационных сетях. Мы детально изучим и сравним два основных типа коммутации — коммутацию каналов и коммутацию пакетов.
Исторически коммутация каналов появилась намного раньше коммутации пакетов и ведет свое происхождение от первых телефонных сетей. Невозможность динамического перераспределения пропускной способности физического канала является принципиальным ограничением сети с коммутацией каналов.
Принцип коммутации пакетов был изобретен разработчиками компьютерных сетей. При коммутации пакетов учитываются особенности компьютерного трафика, поэтому данный способ коммутации является более эффективным для компьютерных сетей по сравнению с традиционным методом коммутации каналов, применяющимся в телефонных сетях.
Однако достоинства и недостатки любой сетевой технологии — относительны. Наличие буферной памяти в коммутаторах пакетных сетей позволяет эффективно использовать пропускную способность каналов при передаче пульсирующего трафика, но приводит к случайным задержкам в доставке пакетов, что является недостатком для трафика реального времени, который традиционно передается с помощью техники коммутации каналов.
В этой главе рассматриваются три метода продвижения пакетов, используемые в сетях с коммутацией пакетов: дейтаграммная передача, передача с установлением логического соединения и техника виртуальных каналов.
В заключение главы рассматривается пример сети, построенной на стандартной технологии коммутации пакетов Ethernet.
Коммутация каналов Сети, построенные на принципе коммутации каналов, имеют богатую историю, они и сегодня нашли широкое применение в мире телекоммуникаций, являясь основой создания высокоскоростных магистральных каналов связи. Первые сеансы связи между компьютерами были осуществлены через телефонную сегь, то есть также с применением техники коммутации каналов, а пользователи, которые получают доступ в Интернет по модему, продолжают обслуживаться этими сетями, так как их данные доходят до оборудования провайдера по местной телефонной сети.
В сетях с коммутацией каналов решаются все те частные задачи коммутации, которые были сформулированы ранее. Так, в качестве информационных потоков в сетях с коммутацией каналов выступают данные, которыми обмениваются пары абонентов1. Соответственно глобальным признаком потока является пара адресов (телефонных номеров) абонентов, связывающихся между собой. Для всех возможных потоков заранее определяются маршруты. Маршруты в сетях с коммутацией каналов задаются либо «вручную» администратором сети, либо находятся автоматически с привлечением специальных программных и аппаратных средств. Маршруты фиксируются в таблицах, в которых признакам потока ставятся в соответствие идентификаторы выходных интерфейсов коммутаторов. На основании этих таблиц происходит продвижение и мультиплексирование данных. Однако, как уже было сказано, в сетях с коммутацией кан;шов решение всех этих задач имеет свои особенности.
Элементарный канал Одной из особенностей сетей с коммутацией каналов является понятие элементарного канала.
Элементарный канал (или просто канал) — это базозая техническая характеристика сети с коммутацией каналов, представляющая собой некоторое фиксированное в пределах данного типа сетей значение пропускной способности. Любая линия связи в сети с коммутацией каналов имеет пропускную способность, кратную элементарному каналу, принятому для данного типа сети.
В предыдущих разделах мы использовали термин «канал» как синоним термина «линия связи». Говоря же о сетях с коммутацией каналов, мы придаем термину «канал» значение единицы пропускной способности.
Значение элементарного канала, или, другими словами, минимальная единица пропускной способности линии связи, выбирается с учетом разных факторов. Очевидно, однако, что элементарный канал не стоит выбирать меньше минимально необходимой пропускной способности для передачи ожидаемой предложенной нагрузки. Например, в традиционных телефонных сетях наиболее распространенным значением элементарного канала сегодня является скорость 64 Кбит/с — это минимально достаточная скорость для качественной цифровой передачи голоса.
Термин «абонент» принят в телефонии для обозначения конечного узла. Так как все мы — многолетние пользователи телефонной сети, то далее мы будем сопровождать наше объяснение принципа работы сетей с коммутацией каналов примерами из области телефонии.
Коммутация каналов
ОЦИФРОВЫВАНИЕ ГОЛОСА
Задача оцифровывания голоса является частным случаем более общей проблемы — передачи аналоговой информации в дискретной форме. Она была решена в 60-е годы, когда голос начал передаваться по телефонным сетям в виде последовательности единиц и нулей. Такое преобразование основано на дискретизации непрерывных процессов как по амплитуде, так и по времени (рис. 3.1).Амплитуда исходной непрерывной функции измеряется с заданным периодом — за счет этого происходит дискретизация по времени. Затем каждый замер представляется в виде двоичного числа определенной разрядности, что означает дискретизацию по значениям — непрерывное множество возможных значений амплитуды заменяется дискретным множеством ее значений.
Для качественной передачи голоса используется частота квантования амплитуды звуковых колебаний в 8000 Гц (дискретизация по времени с интервалом 125 мкс). Д л я представления амплитуды одного замера чаще всего используется 8 бит кода, что дает 256 ф а д а ц и й звукового сигнала (дискретизация по значениям). В этом случае для передачи одного голосового канала необходима пропускная способность 64 Кбит/с: 8000 х 8 - 64 000 б и т / с или 64 К б и т / с. Такой голосовой канал называют элементарным каналом цифровых телефонных сетей.
Линии связи в сетях с коммутацией пакетов (как, впрочем, и в остальных типах компьютерных сетей) имеют разную пропускную способность, одни — большую, другие — меньшую.
Выбирая линии связи с разными скоростными качествами, специалисты, проектирующие сеть, стараются учесть разную интенсивность информационных потоков, которые могут возникнуть в разных фрагментах сети — чем ближе к центру сети, тем выше пропускная способность линии связи, так как магистральные линии агрегируют трафик большого количества периферийных линий связи.
Особенностью сетей с коммутацией каналов является го, что пропускная способность каждой линии связи должна быть равна целому числу элемента эных каналов.
Так, линии связи, подключающие абонентов к телефонной сети, могут содержать 2,24 или 30 элементарных каналов, а линии, соединяющие коммутаторы, — 480 или 1920 каналов.
Обратимся к фрагменту сети, изображенному на рис. 3.2. Предположим, что эта сеть характеризуется элементарным каналом Рбиг/с. В сети существуют линии связи разной пропускной способности, состоящие из 2, 3, 4 и 5 элементарных каналов. На рисунке показаны два абонента, А и В, генерирующие во фемя сеанса связи (телефонного разговора) информационный поток, для которого в сети был предусмотрен маршрут, проходящий через четыре коммутатора 51,52,53 и 54. Предположим также, что интенсивность информационного потока между абонентами не превосходит 2Р бит/с. Тогда для обмена данными этим двум абонентам достаточно иметь в своем распоряжении по паре элементарных каналов, «выделенных» из каждой линии связи, лежащей на маршруте следования данных от пункта А к пункту В. На рисунке эти элементарные каналы, необходимые абонентам А и В, обозначены толстыми линиями.
Составной канал Связь, построенную путем коммутации (соединен ия) элементарных каналов, называют составным каналом.
В рассматриваемом примере для соединения абонентов АиВ был создан составной канал «толщиной» в два элементарных канала. Если изменить наше предположение и считать, Коммутация каналов что предложенная нагрузка гарантированно не превысит Р бит/с, то абонентам будет достаточно иметь в своем распоряжении составной канал, «толщиной» в один элементарный канал. В то же время абоненты, интенсивно обменивающиеся данными, могут предъявить и более высокие требования к пропускной способности составного канала. Для этого они должны в каждой линии связи зарезервировать за собой большее (но непременно одинаковое для всех линий связи) количество элементарных каналов.
Подчеркнем следующие свойства составного канала • составной канал имеет постоянную и фиксированную пропускную способность на всем своем протяжении;
• составной канал создается временно на период сеанса связи двух абонентов;
• на время сеанса связи все элементарные каналы, входящие в составной канал, поступают в исключительное пользование абонентов, для которых был создан этот составной канал;
• в течение всего сеанса связи абоненты могут посылать в сеть данные со скоростью, не превышающей пропускную способность составного канала;
• данные, поступившие в составной канал, гарантированно доставляются вызываемому абоненту без задержек, потерь и с той же скоростью (скоростью источника) вне зависимости от того, существуют ли в это время в сети другие соединения или нет;
• после окончания сеанса связи элементарные каналы, входившие в соответствующий составной канал, объявляются свободными и возвращаются в пул распределяемых ресурсов для использования другими абонентами.
В сети может одновременно происходить несколько сеансов связи (обычная ситуация для телефонной сети, в которой одновременно передаются разговоры сотен и тысяч абонентов). Разделение сети между сеансами связи происходит на уровне элементарных каналов. Например (см. рис. 3.2), мы можем предположить, что после того как в линии связи 52-53 было выделено два канала для связи абонентов А и В, оставшиеся три элементарных канала были распределены между тремя другими сеансами связи, проходившими в это же время и через эту же линию связи. Такое мультиплексирование позволяет одновременно передавать через каждый физический канал трафик нескольких логических соединений.
Мультиплексирование означает, что абоненты вынуждены конкурировать за ресурсы, в данном случае за элементарные каналы. Возможны ситуации, когда некоторая промежуточная линия связи уже исчерпала свободные элементарные каналы, тогда новый сеанс связи, маршрут которого пролегает через данную линию связи, не может состояться.
Для того чтобы распознать такие ситуации, обмен данными в сети с коммутацией каналов предваряется процедурой установления соединения. В соответствии с этой процедурой абонент, являющийся инициатором сеанса связи (например, абонент А в нашей сети), посылает в коммутационную сеть запрос, представляющий собой сообщение, в котором содержится адрес вызываемого абонента, например абонента В1.
В телефонной сети посылке запроса соответствует набор телефонного номера.
Цель запроса — проверить, можно ли образовать составной канал между вызывающим и вызываемым абонентами. А для этого требуется соблюдение двух условий: наличие требуемого числа свободных элементарных каналов в каждой линии связи, лежащей на пути от А к В, и незанятость вызываемого абонента в другом соединении.
Запрос перемещается по маршруту, определенному для информационного потока данной пары абонентов. При этом используются глобальные таблицы коммутации, ставящие в соответствие глобальному признаку потока (адресу вызываемого абонента) идентификатор выходного интерфейса коммутатора (как уже упоминалось, такие таблицы часто называют также таблицами маршрутизации).
Если в результате прохождения запроса от абонента А к абоненту В выяснилось, что ничто не препятствует установлению соединения, происходит фиксация составного канала. Для этого во всех коммутаторах вдоль пути от Л до В создаются записи в локальных таблицах коммутации, в которых указывается соответствие между локальными признаками потока — номерами элементарных каналов, зарезервированных для этого сеанса связи. Только после этого составной канал считается установленным, и абоненты А и В могут начать свой сеанс связи.
Таким образом, продвижение данных в сетях с коммутацией каналов происходит в два этапа:
1. В сеть поступает служебное сообщение — запрос, который несет адрес вызываемого абонента и организует создание составного канала.
2. По подготовленному составному каналу передается основной поток данных, для передачи которого уже не требуется никакой вспомогательной информации, в том числе адреса вызываемого абонента. Коммутация данных в коммутаторах выполняется на основе локальных признаков — номеров элементарных каналов.
Запросы на установление соединения не всегда завершаются успешно. Если на пути между вызывающим и вызываемым абонентами отсутствуют свободные элементарные каналы или вызываемый узел занят, то происходит отказ в установлении соединения. Например, если во время сеанса связи абонентов Aw В абонент С пошлет запрос в сеть на установление соединения с абонентом D, то он получит отказ, потому что оба необходимых ему элементарных канала, составляющих линию связи коммутаторов 53 и 54, уже выделены соединению абонентов АиВ (рис. 3.3). При отказе в установлении соединения сеть информирует вызывающего абонента специальным сообщением1. Чем больше нагрузка на сеть, то есть чем больше соединений она в данный момент поддерживает, тем больше вероятность отказа в удовлетворении запроса на установление нового соединения.
Мы описали процедуру установления соединения в автоматическом динамическом режиме, основанном на способности абонентов отправлять в сеть служебные сообщения — запросы на установление соединения и способности узлов сети обрабатывать такие сообщения. Подобный режим используется телефонными сетями: телефонный аппарат генерирует запрос, посылая в сеть импульсы (или тоновые сигналы), кодирующие номер вызываемого абонента, а сеть либо устанавливает соединение, либо сообщает об отказе сигналами «занято».
Телефонная сеть в этом случае передает короткие гудки - сигнал «занято». Некоторые телефонные сети различают события «сеть занята» и «абонент занят», передавая гудки с разной частотой или используя разные тона.
Коммутация каналов Рис. 3.3. Отказ в установлении соединения в сети с коммутацией каналов Однако это — не единственно возможный режим работы сети с коммутацией каналов, существует и другой статический ручной режим установления соединения. Этот режим характерен для случаев, когда необходимо установить составной канал не на время одного сеанса связи абонентов, а на более долгий срок. Создание такого долговременного канала не могут инициировать абоненты, он создается администратором сети. Очевидно, что статический ручной режим мало пригоден для традиционной телефонной сети с ее короткими сеансами связи, однако он вполне оправдан для создания высокоскоростных телекоммуникационных каналов между городами и странами на более-менее постоянной основе.
Технология коммутации каналов ориентирована на минимизацию случайных событий в сети, то есть это технология, стремящаяся к детерминизму. Во избежание всяких возможных неопределенностей значительная часть работы по организации информационного обмена выполняется заранее, еще до того, как начнется собственно передача данных. Сначала по заданному адресу проверяется доступность необходимых элементарных каналов на всем пути от отправителя до адресата. Затем эти каналы закрепляются на все время сеанса для исключительного использования двумя абонентами и коммутируются в один непрерывный «трубопровод» (составной канал), имеющий «шлюзовые задвижки» на стороне каждого из абонентов. После этой исчерпывающей подготовительной работы остается сделать самое м;шое: «открыть шлюзы» и позволить информационному потоку свободно и без помех «перетекать» между заданными точками сети (рис. 3.4).
Рис. 3.4. Сеть с коммутацией каналов как система трубопроводов Неэффективность при передаче пульсирующего трафика Сети с коммутацией каналов наиболее эффективно передают пользовательский трафик в том случае, когда скорость его постоянна в течение всего сеанса связи и максимально соответствует фиксированной пропускной способности физических линий связи сети.
Эффективность работы сети снижается, когда информационные потоки, генерируемые абонентами, приобретают пульсирующий характер.
Так, разговаривая по телефону, люди постоянно меняют темп речи, перемежая быстрые высказывания паузами. В результате соответствующие «голосовые» информационные потоки становятся неравномерными, а значит, снижается эффективность передачи данных.
Правда, в случае телефонных разговоров это снижение оказывается вполне приемлемым и позволяет широко использовать сети с коммутацией каналов для передачи голосового трафика.
Гораздо сильнее снижает эффективность сети с коммутацией каналов передача так называемого компьютерного трафика, то есть трафика, генерируемого приложениями, с которыми работает пользователь компьютера. Этот трафик практически всегда является пульсирующим. Например, когда вы загружаете из Интернета очередную страницу, скорость трафика резко возрастает, а после окончания загрузки падает практически до нуля. Если для описанного сеанса доступа в Интернет вы задействуете сеть с коммутацией каналов, то большую часть времени составной канал между вашим компьютером и веб-сервером будет простаивать. В то же время часть производительности сети окажется закрепленной за вами и останется недоступной другим пользователям сети. Сеть в такие периоды похожа на пустой эскалатор метро, который движется, но полезную работу не выполняет, другими словами, «перевозит воздух».
Для эффективной передачи неравномерного компьютерного трафика была специально разработана техника коммутации пакетов.
Коммутация пакетов Коммутация пакетов Сети с коммутацией пакетов, так же как и сети с коммутацией каналов, состоят из коммутаторов, связанных физическими линиями связи. Однако передача данных в этих сетях происходит совершенно по-другому. Образно говоря, по сравнению с сетью с коммутацией каналов сеть с коммутацией пакетов ведет себя менее «ответственно». Например, она может принять данные для передачи, не заботясь о резервировании линий связи на пути следования этих данных и не гарантируя требуемую пропускную способность. Сеть с коммутацией пакетов не создает заранее для своих абонентов отдельных, выделенных исключительно для них каналов связи. Данные мо)ут задерживаться и даже теряться по пути следования. Как же при таком хаосе и неопределенности сеть с коммутацией пакетов выполняет свои функции по передаче данных?
Важнейшим принципом функционирования сетей с коммутацией пакетов является представление информации, передаваемой по сети, в виде структурно отделенных друг от друга порций данных, называемых пакетами 1.
Каждый пакет снабжен заголовком (рис. 3.5), в котором содержится адрес назначения и другая вспомогательная информация (длина поля данных, контрольная сумма и др.), используемая для доставки пакета адресату. Наличие адреса в каждом пакете является одним из важнейших особенностей техники коммутации пакетов, так как каждый пакет может2 быть обработан коммутатором независимо от других пакетов, составляющих сетевой трафик. Помимо заголовка у пакета может иметься еще одно дополнительное поле, размещаемое в конце пакета и поэтому называемое концевиком. В концевике обычно помещается контрольная сумма, которая позволяет проверить, была ли искажена информация при передаче через сеть или нет.
В зависимости от конкретной реализации технологии коммутации пакетов пакеты могут иметь фиксированную или переменную длину, кроме того, может меняться состав информации, размещенной в заголовках пакетов. Например, в технологии ATM пакеты (называемые там ячейками) имеют фиксированную длину, а в технологии Ethernet установлены лишь минимально и максимально возможные размеры пакетов (кадров).
Пакеты поступают в сеть без предварительного резервирования линий связи я не с фиксированной заранее заданной скоростью, как это делается в сетях с коммутацией каналов, а в том темпе, в котором их генерирует источник. Предполагается, что сеть с коммутацией пакетов, в отличие от сети с коммутацией каналов, всегда готова принять пакет от конечного узла.
Как и в сетях с коммутацией каналов, в сетях с коммутацией пакетов для каждого из потоков вручную или автоматически определяется марщрут, фиксируемый в хранящихся на коммутаторах таблицах коммутации. Пакеты, попадая на коммутатор, обрабатываются и направляются по тому или иному маршруту на основании информации, содержащейся в их заголовках, а также в таблице коммутации (рис. 3.6).
Наряду с термином «пакет» используются также термины «кадр», «фрейм», «ячейка» и др. В данном контексте различия в значении этих терминов несущественны.
В некоторых технологиях коммутации пакетов (например, в технологии виртуальных каналов) полная независимость обработки пакетов не обеспечивается.
Отправляемые данные Рис. 3.6. Передача данных по сети в виде пакетов Коммутация пакетов
ПРИМЕЧАНИЕ
Процедура резервирования пропускной способности может применяться и в пакетных сетях. Однако основная идея такого р е з е р в и р о в а н и я п р и н ц и п и а л ь н о отличается от идеи р е з е р в и р о в а н и я пропускной способности в сетях с коммутацией каналов. Разница заключается в том, что пропускная способность канала сети с коммутацией пакетов может динамически перераспределяться между информационными потоками в зависимости от текущих потребностей каждого потока, чего не может обеспечить техника коммутации каналов. С деталями такого резервирования вы познакомитесь позже, в главе 7.Пакеты, принадлежащие как одному и тому же, так и разным информационным потокам, при перемещении по сети могут «перемешиваться» между собой, образовывать очереди и «тормозить» друг друга. На пути пакетов могут встретиться линии связи, имеющие разную пропускную способность. В зависимости от времени суток может сильно меняться и степень загруженности линий связи. В таких условиях не исключены ситуации, когда пакеты, принадлежащими одному и тому же потоку, могут перемещаться по сети с разными скоростями и даже прийти к месту назначения не н том порядке, в котором они были отправлены.
Разделение данных на пакеты позволяет передавать неравномерный компьютерный трафик более эффективно, чем в сетях с коммутацией каналов. Это объясняется тем, что пульсации трафика от отдельных компьютеров носят случайный характер и распределяются во времени так, что их пики чаще всего не совпадают. Поэтому когда линия связи передает трафик большого количества конечных узлов, то в суммарном потоке пульсации сглаживаются, и пропускная способность линии используется более рационально, без длительных простоев. Это эффект иллюстрируется рис. 3.7, на котором показаны неравномерные потоки пакетов, поступающие от конечных узлов 3,4 и 10 в сети, изображенной на рис. 3.6.
Предположим, что эти потоки передаются в направлении коммутатора 8, а следовательно, накладываются друг на друга при прохождении линии связи между коммутаторами 5 и 8.
Получающийся в результате суммарный поток является более равномерным, чем каждый из образующих его отдельных потоков.
Буферизация пакетов Неопределенность и асинхронность перемещения данных в сетях с коммутацией пакетов предъявляет особые требования к работе коммутаторов в таких сетях.
Главное отличие пакетных коммутаторов 1 от коммутаторов в сетях с коммутацией каналов состоит в том, что они имеют внутреннюю буферную память для временного хранения пакетов.
Действительно, пакетный коммутатор не может принять решения о продвижении пакета, не имея в своей памяти всего пакета. Коммутатор проверяет контрольную сумму, и только если она говорит о том, что данные пакета не искажены, начинает обрабатывать пакет и по адресу назначения определяет следующий коммутатор. Поэтому каждый пакет последовательно бит за битом помещается во входной буфер. Имея в виду это свойство, говорят, что сети с коммутацией пакетов используют технику сохранения с продвижением (store-andforward). Заметим, что для этой цели достаточно иметь буфер размером в один пакет.
Коммутатору нужны буферы для согласования скоростей передачи данных в линиях связи, подключенных к его интерфейсам. Действительно, если скорость поступления пакетов из одной линии связи в течение некоторого периода превышает пропускную способность той линии связи, в которую эти пакеты должны быть направлены, то во избежание потерь пакетов на целевом интерфейсе необходимо организовать выходную очередь (рис. 3.8).
Буферизация необходима пакетному коммутатору также для согласования скорости поступления пакетов со скоростью их коммутации. Если коммутирующий блок не успевает обрабатывать пакеты (анализировать заголовки и перебрасывать пакеты на нужный интерфейс), то на интерфейсах коммутатора возникают входные очереди. Очевидно, что для хранения входной очереди объем буфера должен превышать размер одного пакета.
Существуют различные подходы к построению коммутирующего блока. Традиционный способ основан на одном центральном процессоре, который обслуживает все входные очереди коммутатора. Такой способ построения может приводить к большим очередям, так как производительность процессора разделяется между несколькими очередями. Современные способы построения коммутирующего блока основаны на многопроцессорном подходе, когда каждый интерфейс имеет свой встроенный процессор для обработки пакетов.
Кроме того, существует центральный процессор, координирующий работу интерфейсных процессоров. Использование интерфейсных процессоров повышает производительность коммутатора и уменьшает очереди во входных интерфейсах. Однако такие очереди все равно могут возникать, так как центральный процессор по-прежнему остается «узким местом».
Более подробно вопросы внутреннего устройства коммутаторов обсуждаются в главе 13.
Поскольку объем буферов в коммутаторах ограничен, иногда происходит потеря пакетов из-за переполнения буферов при временной перегрузке части сети, когда совпадают Д л я простоты будем далее называть коммутаторы сетей с коммутацией пакетов «пакетными коммутаторами».
Коммутация пакетов периоды пульсации нескольких информационных потоков. Для сетей с коммутацией пакетов потеря пакетов является обычным явлением, и для компенсации таких потерь в данной сетевой технологии предусмотрен ряд специальных механизмов, которые мы рассмотрим позже.
Пакетный коммутатор может работать на основании одного из трех методов продвижения пакетов:
• дейтаграммная передача;
• передача с установлением логического соединения;
• передача с установлением виртуального канала.
Дейтаграммная передача Дейтаграммный способ передачи данных основан на том, что все передаваемые пакеты продвигаются (передаются от одного узла сети другому) одних и тех же правил.
Процедура обработки пакета определяется только значениями параметров, которые он несет в себе, и текущим состоянием сети (например, в зависимости от ее нагрузки пакет может стоять в очереди на обслуживание большее или меньшее время). Однако никакая информация об уже переданных пакетах сетью не хранится и в ходе обработки очередного пакета во внимание не принимается. То есть каждый отдельный пакет рассматривается сетью как совершенно независимая единица передачи — дейтаграмма.
Решение о продвижении пакета принимается на основе таблицы коммутации1, ставящей в соответствие адресам назначения пакетов информацию, однозначно определяющую следующий по маршруту транзитный (или конечный) узел. В качестве такой информации могут выступать идентификаторы интерфейсов данного коммутатора или адреса входных интерфейсов коммутаторов, следующих по маршруту.
Рис. 3.9. Иллюстрация дейтаграммного принципа передачи пакетов На рис. 3.9 показана сеть, в которой шесть конечных узлов ( М - М 5 ) связаны семью коммутаторами (51-57). Показаны также несколько перемещающихся по разным маршрутам пакетов с разными адресами назначения (ЛЛ-Mi), на пути которых лежит коммутатор 51.
Напомним, что в разных технологиях для обозначения таблиц, имеющих указанное выше функциональное назначение, могут использоваться другие термины (таблица маршрутизации, таблица продвижения и др.).
Коммутация пакетов При поступлении каждого из этих пакетов в коммутатор 51 выполняется просмотр соответствующей таблицы коммутации и выбор дальнейшего пути перемещения. Так пакет с адресом N5 будет передан коммутатором 51 на интерфейс, ведущий к коммутатору 56, где в результате подобной процедуры этот пакет будут направлен конечному узлу получателю N5.
В таблице коммутации для одного и того же адреса назначения может содержаться несколько записей, указывающих соответственно на различные адреса следующего коммутатора.
Такой подход называется балансом нагрузки и используется для повышения производительности и надежности сети. В примере, показанном на рис. 3.9, пакеты, поступающие в коммутатор 51 для узла назначения с адресом N2, в целях баланса нагрузки распределяются между двумя следующими коммутаторами — 52 и 53, что снижает нагрузку на каждый из них, а значит, сокращает очереди и ускоряет доставку. Некоторая «размытость» путей следования пакетов с одним и тем же адресом назначения через сеть является прямым следствием принципа независимой обработки каждого пакета, присущего дейтаграммному методу. Пакеты, следующие по одному и тому же адресу назначения, могут добираться до него разными путями также вследствие изменения состояния сети, например отказа промежуточных коммутаторов.
Дейтаграммный метод работает быстро, так как никаких предварительных действий перед отправкой данных проводить не требуется. Однако при таком методе трудно проверить факт доставки пакета узлу назначения. Этот метод не гарантирует доставку пакета, он делает это по мере возможности — для описания такого свойства используется термин доставка с максимальными усилиями (best effort).
Передача с установлением логического соединения Следующий рассматриваемый нами способ продвижения пакетов основывается на знании устройствами сети «истории» обмена данными, например, на запоминании узломотправителем числа отправленных, а узлом-получателем — числа полученных пакетов.
Такого рода информация фиксируется в рамках логического соединения.
Процедура согласования двумя конечными узлами сети некоторых параметров процесса обмена пакетами называется установлением логического соединения. Параметры, о которых договариваются два взаимодействующих узла, называются параметрами логического соединения.
Наличие логического соединения позволяет более рационально по сравнению с дейтаграммным способом обрабатывать пакеты. Например, при потере нескольких предыдущих пакетов может быть снижена скорость отправки последующих. Или благодаря нумерации пакетов и отслеживанию номеров отправленных и принятых пакетов можно повысить надежность путем отбрасывания дубликатов, упорядочивания поступивших и повторения передачи потерянных пакетов.
Параметры соединения могут быть: постоянными, то есть не изменяющимися в течение всего соединения (например, идентификатор соединения, способ шифрования пакета или максимальный размер поля данных пакета), или переменными, то есть динамически отражающими текущее состояние соединения (например, последовательные номера передаваемых пакетов).
Когда отправитель и получатель фиксируют начало нового соединения, они, прежде всего, «договариваются» о начальных значениях параметров процедуры обмена и только после этого начинают передачу собственно данных.
Передача с установлением соединения более надежна, но требует больше времени для передачи данных и вычислительных затрат от конечных узлов, что иллюстрирует рис. 3.10.
Рис. 3.10. Передача без установления соединения (а) и с установлением соединения (б) Процедура установления соединения состоит обычно из трех шагов.
1. Узел-инициатор соединения отправляет узлу-получателю служебный пакет с предложением установить соединение.
2. Если узел-получатель согласен с этим, то он посылает в ответ другой служебный пакет, подтверждающий установление соединения и предлагающий некоторые параметры, которые будут использоваться в рамках данного логического соединения. Это могут быть, например, идентификатор соединения, количество кадров, которые можно отправить без получения подтверждения и т. п.
3. Узел-инициатор соединения может закончить процесс установления соединения отправкой третьего служебного пакета, в котором сообщит, что предложенные параметры ему подходят.
Логическое соединение может быть рассчитано на передачу данных как в одном направлении — от инициатора соединения, так и в обоих направлениях. После передачи некоторого Коммутация пакетов законченного набора данных, например определенного файла, узел-отправитель инициирует разрыв данного логического соединения, посылая соответствующий служебный кадр.
Заметим, что, в отличие от передачи дейтаграммного типа, в которой поддерживается только один тип кадра — информационный, передаче с установлением соединения должна поддерживать как минимум два типа кадров — информационные кадры переносят собственно пользовательские данные, а служебные предназначаются для установления (разрыва) соединения.
После того как соединение установлено и все параметры согласованы, конечные узлы начинают передачу собственно данных. Пакеты данных обрабатываются коммутаторами точно так же, как и при дейтаграммной передаче: из заголовков пакетов извлекаются адреса назначения и сравниваются с записями в таблицах коммутации, содержащих информацию о следующих шагах по маршруту. Так же как дейтаграммы, пакеты, относящиеся к одному логическому соединению, в некоторых случаях (например, при отказе линии связи) могут доставляться адресату по разным маршрутам.
Однако передача с установлением соединения имеет важное отличие от дейтаграммной передачи, поскольку в ней помимо обработки пакетов на коммутаторах имеет место дополнительная обработка пакетов на конечных узлах. Например, если при установлении соединения была оговорена передача данных в зашифрованном виде, то шифрование пакетов выполняется узлом-отправителем, а расшифровка — узлом-получателем. Аналогично, для обеспечения в рамках логического соединения надежности всю работу по нумерации пакетов, отслеживанию номеров доставленных и недоставленных пакетов, посылки копий и отбрасывания дубликатов берут на себя конечные узлы.
ПРИМЕЧАНИЕ
Некоторые параметры логического соединения могут рассматриваться еще и как признаки информационного потока между узлами, установившими это логическое соединение.Механизм установления логических соединений позволяет реализовывать дифференцированное обслуживание информационных потоков. Разное обслуживание могут получить даже потоки, относящиеся к одной и той же паре конечных узлов. Например, пара конечных узлов может установить два параллельно работающих логических соединения, в одном из которых передавать данные в зашифрованном виде, а в другом — открытым текстом.
Как видим, передача с установлением соединения предоставляет больше возможностей в плане надежности и безопасности обмена данными, чем дейтаграммная передача. Однако этот способ более медленный, так как он подразумевает дополнительные вычислительные затраты на установление и поддержание логического соединения.
Передача с установлением виртуального канала Следующий способ продвижения данных основан на частном случае логического соединения, в число параметров которого входит жестко определенный для всех пакетов маршрут.
То есть все пакеты, передаваемые в рамках данного соединения, должны проходить по одному и тому же закрепленному за этим соединением пути.
Единственный заранее проложенный фиксированный маршрут, соединяющий конечные узлы в сети с коммутацией пакетов, называют в и р т у а л ь н ы м к а н а л о м (virtual circuit или virtual channel).
Виртуальные каналы прокладываются для устойчивых информационных потоков. С целью выделения потока данных из общего трафика каждый пакет этого потока помечается специальным видом признака — меткой.
Так же как в сетях с установлением логических соединений, прокладка виртуального канала начинается с отправки из узла-источника специального пакета — запроса на установление соединения. В запросе указываются адрес назначения и метка потока, для которого прокладывается этот виртуальный канал. Запрос, проходя по сети, формирует новую запись в каждом из коммутаторов, расположенных на пути от отправителя до получателя. Запись говорит о том, каким образом коммутатор должен обслуживать пакет, имеющий заданную метку. Образованный виртуальный канал идентифицируется той же меткой1.
После прокладки виртуального канала сеть может передавать по нему соответствующий поток данных. Во всех пакетах, которые переносят пользовательские данные, адрес назначения уже не указывается, его роль играет метка виртуального канала. При поступлении пакета на входной интерфейс коммутатор читает значение метки из заголовка пришедшего пакета и просматривает свою таблицу коммутации, по которой определяет, на какой выходной порт передать пришедший пакет.
Эта метка в различных технологиях называется по-разному: номер логического канала (Logical Channel Number, LCN) в технологии Х.25, идентификатор соединения уровня канала данных (Data Link Connection Identifier, DLCI) в технологии Frame Relay, идентификатор виртуального канала (Virtual Channel Identifier, VCI) в технологии ATM.
Сравнение сетей с коммутацией пакетов и каналов На рис. 3.11 показана сеть, в которой проложены два виртуальных канала (Virtual Channel, VC), идентифицируемых метками VC1 и VC2. Первый проходит от конечного узла с адресом М до конечного узла с адресом N2 через промежуточные коммутаторы 51 и 52. Второй виртуальный канал VC2 обеспечивает продвижение данных по пути M-51-53-55-M3.
В общем случае, между двумя конечными узлами может быть проложено несколько виртуальных каналов, например еще один виртуальный канал между узлами N1 и N2 мог бы проходить через промежуточный коммутатор 53. На рисунке показаны два пакета, несущие в своих заголовках метки потоков VC1 и VC2, которые играют роль адресов назначения.
Таблица коммутации в сетях, использующих виртуальные каналы, отличается от таблицы коммутации в дейтаграммных сетях. Она содержит записи только о проходящих через коммутатор виртуальных каналах, а не обо всех возможных адресах назначения, как это имеет место в сетях с дейтаграммным алгоритмом продвижения. Обычно в крупной сети количество проложенных через узел виртуальных каналов существенно меньше общего количества узлов, поэтому и таблицы коммутации в этом случае намного короче, а следовательно, анализ такой таблицы занимает у коммутатора меньше времени. По той же причине метка короче адреса конечного узла, и заголовок пакета в сетях с виртуальными каналами переносит по сети вместо длинного адреса компактный идентификатор потока.