лекция 1. Основы сетей передачи данных Лекция #1 Эволюция вычислительных сетей. Часть 1
Скачать 2.25 Mb.
|
Обобщенная задача коммутацииЕсли топология сети не полносвязная, то обмен данными между произвольной парой конечных узлов (абонентов) должен идти в общем случае через транзитные узлы. Например, в сети на рис. 5.1 узлы 2 и 4, непосредственно друг с другом не связанные, вынуждены передавать данные через транзитные узлы, в качестве которых могут использоваться, например, узлы 1 и 5. Узел 1 должен выполнить передачу данных с интерфейса A на интерфейс B, а узел 5 — с интерфейса F на B. Рис. 5.1. Коммутация абонентов через сеть транзитных узлов. Последовательность транзитных узлов (сетевых интерфейсов) на пути от отправителя к получателю называется маршрутом. В самом общем виде задача коммутации — задача соединения конечных узлов через сеть транзитных узлов — может быть представлена в виде нескольких взаимосвязанных частных задач: Определение информационных потоков, для которых требуется прокладывать пути. Определение маршрутов для потоков. Сообщение о найденных маршрутах узлам сети. Продвижение – распознавание потоков и локальная коммутация на каждом транзитном узле. Мультиплексирование и демультиплексирование потоков. Определение информационных потоковПонятно, что через один транзитный узел может проходить несколько маршрутов, например через узел 5 проходят данные, направляемые узлом 4 каждому из остальных узлов, а также все данные, поступающие в узлы 3 и 10. Транзитный узел должен уметь распознавать поступающие на него потоки данных, чтобы обеспечивать их передачу именно на те свои интерфейсы, которые ведут к нужному узлу. Информационным потоком (data flow, data stream) называют последовательность данных, объединенных набором общих признаков, который выделяет эти данные из общего сетевого трафика. Данные могут быть представлены в виде последовательности байтов или объединены в более крупные единицы данных — пакеты, кадры, ячейки. Например, все данные, поступающие от одного компьютера, можно определить как единый поток, а можно представить как совокупность нескольких подпотоков, каждый из которых в качестве дополнительного признака имеет адрес назначения. Каждый из этих подпотоков, в свою очередь, можно разделить на еще более мелкие подпотоки данных, например, относящихся к разным сетевым приложениям — электронной почте, копированию файлов, обращению к Web-серверу. Понятие потока используется при решении различных сетевых задач, и в зависимости от конкретного случая, определяется соответствующий набор признаков. В задаче коммутации, суть которой — передача данных из одного конечного узла в другой, при определении потоков в роли обязательных признаков потока, очевидно, должны выступать адрес отправителя и адрес назначения данных. Тогда каждой паре конечных узлов будет соответствовать один поток и один маршрут. Однако не всегда достаточно определить поток только парой адресов. Если на одной и той же паре конечных узлов выполняется несколько взаимодействующих по сети приложений, которые предъявляют к ней свои особые требования, поток данных между двумя конечными узлами должен быть разделен на несколько подпотоков, так чтобы для каждого из них можно было проложить свой маршрут. В таком случае выбор пути должен осуществляться с учетом характера передаваемых данных. Например для файлового сервера важно, чтобы передаваемые им большие объемы данных направлялись по каналам с высокой пропускной способностью, а для программной системы управления, которая посылает в сеть короткие сообщения, требующие обязательной и немедленной отработки, при выборе маршрута важнее надежность линии связи и минимальный уровень задержек. В таком примере набор признаков потока должен быть расширен за счет информации, идентифицирующей приложение. Кроме того, даже для данных, предъявляющих к сети одинаковые требования, может прокладываться несколько маршрутов, чтобы за счет распараллеливания добиться одновременного использования различных каналов и тем самым ускорить передачу данных. В данном случае необходимо "пометить" данные, которые будут направляться по каждому из этих маршрутов. Признаки потока могут иметь глобальное или локальное значение. В первом случае они однозначно определяют поток в пределах всей сети, а во втором — в пределах одного транзитного узла. Пара уникальных адресов конечных узлов для идентификации потока — это пример глобального признака. Примером признака, локально определяющего поток в пределах устройства, может служить номер (идентификатор) интерфейса устройства, с которого поступили данные. Например, узел 1 (рис. 5.1) может быть сконфигурирован так, что он передает все данные, поступившие с интерфейса А, на интерфейс С, а данные, поступившие с интерфейса D, на интерфейс В. Такое правило позволяет разделить два потока данных — поступающий из узла 2 и поступающий из узла 7 — и направлять их для транзитной передачи через разные узлы сети, в данном случае данные из узла 2 через узел 8, а данные из узла 7 — через узел 5. Существует особый тип признака — метка потока. Метка может иметь глобальное значение, уникально определяющее поток в пределах сети. В таком случае она в неизменном виде закрепляется за потоком на всем протяжении его пути следования от узла источника до узла назначения. В некоторых технологиях используются локальные метки потока, значения которых динамически меняются при передаче данных от одного узла к другому. Определить потоки – это значит задать для них набор отличительных признаков, на основании которых коммутаторы смогут направлять потоки по предназначенным для них маршрутам. Определение маршрутовОпределение пути, то есть последовательности транзитных узлов и их интерфейсов, через которые надо передавать данные, чтобы доставить их адресату — сложная задача, особенно когда конфигурация сети такова, что между парой взаимодействующих сетевых интерфейсов существует множество путей. Задача определения маршрутов состоит в выборе из всего этого множества одного или нескольких путей. И хотя в частном случае множества имеющихся и выбранных путей могут совпадать, чаще всего выбор останавливают на одном оптимальном 1) по некоторому критерию маршруте. В качестве критериев выбора могут выступать, например: номинальная пропускная способность; загруженность каналов связи; задержки, вносимые каналами; количество промежуточных транзитных узлов; надежность каналов и транзитных узлов. Заметим, что даже в том случае, когда между конечными узлами существует единственный путь, его определение при сложной топологии сети может представлять собой нетривиальную задачу. Маршрут может определяться эмпирически ("вручную") администратором сети, который, используя различные, часто не формализуемые соображения, анализирует топологию сети и задает последовательность интерфейсов, которую должны пройти данные, чтобы достичь получателя. Среди побудительных мотивов выбора того или иного пути могут быть: особые требования к сети со стороны различных типов приложений, решение передавать трафик через сеть определенного провайдера, предположения о пиковых нагрузках на некоторые каналы сети, соображения безопасности. Однако эвристический подход к определению маршрутов для большой сети со сложной топологией не подходит. В этом случае такая задача решается чаще всего автоматически. Для этого конечные узлы и другие устройства сети оснащаются специальными программными средствами, которые организуют взаимный обмен служебными сообщениями, позволяющий каждому узлу составить свое представление о топологии сети. Затем на основе этого исследования и математических алгоритмов определяются наиболее рациональные маршруты. Определить маршрут — однозначно задать последовательность транзитных узлов и их интерфейсов, через которые надо передавать данные, чтобы доставить их адресату. Оповещение сети о выбранном маршрутеПосле того, как маршрут определен (вручную или автоматически), следует "сообщить" о нем всем устройствам сети. Сообщение о маршруте должно нести каждому транзитному устройству примерно такую информацию: "Если придут данные, относящиеся к потоку n, то нужно передать их на интерфейс F". Сообщение о маршруте обрабатывается транзитным устройством, в результате чего создается новая запись в таблице коммутации, в которой локальному или глобальному признаку (признакам) потока (например, метке, номеру входного интерфейса или адресу назначения) ставится в соответствие номер интерфейса, на который устройство должно передать данные, относящиеся к этому потоку. Ниже помещен фрагмент таблицы коммутации, содержащий запись, сделанную на основании сообщения о необходимости передачи потока n на интерфейс F.
Конечно, структура сообщения о маршруте и содержимого таблицы коммутации зависит от конкретной технологии, однако эти особенности не меняют сущности рассматриваемых процессов. Передача информации о выбранных маршрутах так же, как и определение маршрута, может осуществляться и вручную, и автоматически. Администратор сети может зафиксировать маршрут, выполнив конфигурацию устройства вручную, например, жестко скоммутировав на длительное время определенные пары входных и выходных интерфейсов (так работали "телефонные барышни" на первых коммутаторах). Он может также по собственной инициативе внести запись о маршруте в таблицу коммутации. Однако поскольку топология сети и информационных потоков может меняться (отказ или появление новых промежуточных узлов, изменение адресов или определение новых потоков), то гибкое решение задач определения и назначение маршрутов предполагает постоянный анализ состояния сети и обновление маршрутов и таблиц коммутации, что требует применения средств автоматизации. Оповестить сеть о найденных маршрутах — это значит вручную или автоматически настроить каждый коммутатор таким образом, чтобы он "знал", в каком направлении следует передавать каждый поток. Продвижение — распознавание потоков и коммутация на каждом транзитном узлеКогда сеть оповещена о маршрутах, она может начать выполнять свои функции по соединению или коммутации абонентов. Для каждой пары абонентов эта операция может быть представлена совокупностью нескольких (по числу транзитных узлов) локальных операций коммутации. Отправитель должен выставить данные на тот свой порт, из которого выходит найденный маршрут, а все транзитные узлы должны соответствующим образом выполнить "переброску" данных с одного своего порта на другой, другими словами — выполнить коммутацию. Устройство, предназначенное для выполнения коммутации, называется коммутатором (switch). Коммутатор производит коммутацию входящих в его порты информационных потоков, направляя их в соответствующие выходные порты (рис. 5.2). Рис. 5.2. Коммутатор. Однако, прежде чем выполнить коммутацию, коммутатор должен распознать поток. Для этого поступившие данные проверяются на предмет наличия признаков какого-либо из потоков, заданных в таблице коммутации. Если произошло совпадение, то эти данные направляются на тот интерфейс, который был определен для них в маршруте. Термины коммутация, таблица коммутации и коммутатор в телекоммуникационных сетях могут трактоваться неоднозначно. Мы уже определили термин коммутация как процесс соединения абонентов сети через транзитные узлы. Этим же термином мы обозначаем и соединение интерфейсов в пределах отдельного транзитного узла. Коммутатором в широком смысле слова называется устройство любого типа, способное выполнять операции переключения потока данных с одного интерфейса на другой. Операция коммутации может быть выполнена в соответствии с различными правилами и алгоритмами. Некоторые способы коммутации и соответствующие им таблицы и устройства получили специальные названия (например, маршрутизация, таблица маршрутизации, маршрутизатор). В то же время за другими специальными типами коммутации и соответствующими устройствами закрепились те же самые названия – коммутация, таблица коммутации и коммутатор – которые здесь используются в узком смысле, например коммутация и коммутатор локальной сети. В телефонных сетях, которые появились намного раньше компьютерных, также используется аналогичная терминология, коммутатор является здесь синонимом телефонной станции. Из-за солидного возраста и гораздо большей (пока) распространенности телефонных сетей, чаще всего в телекоммуникациях под термином «коммутатор» понимают именно телефонный коммутатор. Коммутатором может быть как специализированное устройство, так и универсальный компьютер со встроенным программным механизмом коммутации, в этом случае коммутатор называется программным. Компьютер может совмещать функции коммутации данных, направляемых на другие узлы, с выполнением своих обычных функций конечного узла. Однако во многих случаях более рациональным является решение, в соответствии с которым некоторые узлы в сети выделяются специально для выполнения коммутации. Эти узлы образуют коммутационную сеть, к которой подключаются все остальные. На рис. 5.3 показана коммутационная сеть, образованная из узлов 1, 5, 6 и 8, к которой подключаются конечные узлы 2, 3, 4, 7, 9 и 10. Рис. 5.3. Коммутационная сеть. Мультиплексирование и демультиплексированиеКак уже было сказано, прежде чем выполнить переброску данных на определенные для них интерфейсы, коммутатор должен понять, к какому потоку они относятся. Эта задача должна решаться независимо от того, поступает ли на вход коммутатора только один поток в "чистом" виде, или "смешанный" поток, который объединяет в себе несколько потоков. В последнем случае к задаче распознавания добавляется задача демультиплексирования. Задача демультиплексирования (demultiplexing) — разделение суммарного агрегированного потока, поступающего на один интерфейс, на несколько составляющих потоков. Как правило, операцию коммутации сопровождает также обратная операция — мультиплексирование. Задача мультиплексирования (multiplexing) — образование из нескольких отдельных потоков общего агрегированного потока, который можно передавать по одному физическому каналу связи. Операции мультиплексирования/демультиплексирования имеют такое же важное значение в любой сети, как и операции коммутации, потому что без них пришлось бы все коммутаторы связывать большим количеством параллельных каналов, что свело бы на нет все преимущества неполносвязной сети. На рис. 5.4 показан фрагмент сети, состоящий из трех коммутаторов. Коммутатор 1 имеет пять сетевых интерфейсов. Рассмотрим, что происходит на интерфейсе 1. Сюда поступают данные с трех интерфейсов — int 3, int.4 и int.5. Все их надо передать в общий физический канал, то есть выполнить операцию мультиплексирования. Мультиплексирование представляет собой способ обеспечения доступности имеющихся физических каналов одновременно для нескольких сеансов связи между абонентами сети. Рис. 5.4. Операции мультиплексирования и демультиплексирования потоков при коммутации. Существует множество способов мультиплексирования потоков в одном физическом канале, и важнейшим из них является разделение времени. При этом способе каждый поток время от времени (с фиксированным или случайным периодом) получает в свое распоряжение физический канал и передает по нему данные. Очень распространено также частотное разделение канала, когда каждый поток передает данные в выделенном ему частотном диапазоне. Технология мультиплексирования должна позволять получателю такого суммарного потока выполнять обратную операцию — разделение (демультиплексирование) данных на составляющие потоки. На интерфейсе int.3 коммутатор выполняет демультиплексирование потока на три составляющих подпотока. Один из них он передает на интерфейс int. 1, другой на int.2, а третий на int.5. А вот на интерфейсе int.2 нет необходимости выполнять мультиплексирование или демультиплексирование — этот интерфейс выделен одному потоку в монопольное пользование. В общем случае на каждом интерфейсе могут одновременно выполняться обе задачи — мультиплексирование и демультиплексирование. Частный случай коммутатора (рис. 5.5а), у которого все входящие информационные потоки коммутируются на один выходной интерфейс, где мультиплексируются в один агрегированный поток и направляются в один физический канал, называется мультиплексором (multiplexer, mux). Коммутатор (рис.5.5б), который имеет один входной интерфейс и несколько выходных, называется демультиплексором. Рис. 5.5. Мультиплексор (а) и демультиплексор (б). |