АВТОМАТИЧЕСКОЕ УСТАНОВЛЕНИЕ ИЗБЫТОЧНЫХ ТРАКТОВ С ОСТОРОЖНЫМ ВОССТАНОВЛЕНИЕМ В СЕТИ ПАКЕТНОЙ КОММУТАЦИИ
AUTOMATIC ESTABLISHMENT OF REDUNDANT PATHS WITH CAREFUL RESTORATION IN PACKET SWITCHING NETWORK

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
[0001] Настоящая заявка испрашивает приоритет предварительной заявки на патент США No. 61/863,337, поданной 7 Августа 2013 года.
ОБЛАСТЬ ТЕХНИКИ
[0002] Варианты осуществления изобретения относятся к способу и устройству для предоставления установления и восстановления тракта в сети пакетной коммутации. В частности, варианты осуществления данного изобретения относятся к способу для восстановления тракта в мостах управления доступом к среде передачи (MAC) и виртуальных мостовых локальных вычислительных сетях.
УРОВЕНЬ ТЕХНИКИ
[0003] Тракты пересылки в сети передачи данных обычно управляются автоматически протоколом управления маршрутом, который предоставляет единственный класс трактов, например кратчайший тракт, между выбранными конечными точками. К примеру, протокол остовного дерева традиционно использовался для управления трактом в сетях Ethernet. Протоколы управления состоянием каналов связи, такие как протокол маршрутизации промежуточных систем (IS-IS) или открытые протоколы маршрутизации с предпочтением кратчайшего пути (OSPF) используют для управления трактами в сетях IP. Управление состоянием каналов связи в настоящее время также доступно для сетей Ethernet, оно предусмотрено протоколом мостового соединения по кратчайшему пути (SPB), который является расширением к IS-IS. Как бы то ни было, все эти протоколы предоставляют только тракт на основе неявных ограничений, который обычно является кратчайшим трактом или остовным деревом. Отклонение от этого "неявного тракта" и реализация явных трактов в сети передачи данных является очень сложным. Работа системы управления трактами данных может зависеть от параметров стоимости, однако, стоимости, требуемые для разных явных трактов, могут противоречить друг другу. За исключением распределенных протоколов, доступных в настоящее время, только административный контроль является доступным для задания явного тракта в сетях Ethernet. Протокол резервирования ресурсов (SRP) или множественного резервирования ресурсов (MSRP) способен выполнять резервирование поверх остовного дерева в сетях Ethernet, но это не поддерживает полную свободу маршрутизации, поскольку действует в рамках ограничений, накладываемых протоколом остовного дерева.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0004] Способ выполняется сетевым устройством, исполняющим обработчик локальных вычислений и протокол маршрутизации на основе состояния канала связи. Этот обработчик локальных вычислений и протокол маршрутизации по состоянию канала связи поддерживают автоматическое установление избыточных трактов и осторожное восстановление в сети пакетной коммутации. Данный способ включает в себя прием типа-длины-значения (TLV) явного тракта (EP) через протокол маршрутизации на основе состояния канала связи, исполнение алгоритма поиска кратчайшего пути, чтобы получить кратчайший тракт для свободных отрезков тракта, определенного EP TLV, где этот кратчайший путь является первичным трактом, и установку значений в базе данных пересылки для этого первичного тракта. Дополнительно, этот способ включает в себя обновление графа сети, представляющего вид топологии этой сети передачи данных, чтобы отсечь каналы связи первичного тракта или отклонить каналы связи первичного тракта, вычисление резервного тракта, используя алгоритм поиска кратчайшего пути на обновленном сетевом графе, и установку значений в базе данных пересылки для этого резервного тракта.
[0005] Сетевое устройство исполняет элемент вычисления тракта и протокол маршрутизации на основе состояния канала связи, где элемент вычисления тракта и протокол маршрутизации по состоянию канала связи поддерживают автоматическое установление избыточных трактов и осторожное восстановление в сети пакетной коммутации. Это вычислительное устройство включает в себя не временный машиночитаемый носитель данных, чтобы принимать и сохранять набор тип-длина-значение (TLV) явного тракта (EP), принятый через протокол маршрутизации на основе состояния канала связи, и процессор, соединенный с запоминающим устройством. Процессор выполнен с возможностью исполнять модуль обработчика локальных вычислений (LCE), чтобы обработать этот EP TLV, исполнять алгоритм поиска кратчайшего пути, чтобы получить кратчайший тракт для свободных отрезков тракта, указанного этим EP TLV, чтобы этот кратчайший путь стал первичным трактом, и установить значения в базе данных пересылки для первичного тракта. Процессор дополнительно выполнен с возможностью обновлять сетевой граф, чтобы отсечь каналы связи первичного тракта или отклонить каналы связи первичного тракта, вычислить резервный тракт, используя алгоритм поиска кратчайшего пути на этом сетевом графе, и установить значения в базе данных пересылки для резервного тракта.
[0006] Устройство плоскости управления исполняет элемент вычисления тракта и протокол маршрутизации на основе состояния канала связи, где элемент вычисления тракта и протокол маршрутизации по состоянию канала связи поддерживают автоматическое установление избыточных трактов и осторожное восстановление в сети пакетной коммутации. Это устройство плоскости управления включает в себя не временный машиночитаемый носитель данных, чтобы принимать и сохранять набор тип-длина-значение (TLV) явного тракта (EP), принятый через протокол маршрутизации на основе состояния канала связи, и сетевой процессор, соединенный с запоминающим устройством. Этот сетевой процессор выполнен с возможностью исполнять модуль элемента вычисления тракта (PCE), чтобы генерировать EP TLV, посылаемый модулям в LCE сети пакетной коммутации, чтобы указать модулям LCE исполнить алгоритм поиска кратчайшего пути, чтобы получить кратчайший тракт для свободных отрезков тракта, указанного этим EP TLV, чтобы этот кратчайший путь стал первичным трактом, и установить значения в базе данных пересылки для первичного тракта. Дополнительно, модуль LCE откликается на EP TLV, чтобы обновить сетевой граф, чтобы отсечь каналы связи первичного тракта или отклонить каналы связи первичного тракта, чтобы вычислить резервный тракт, используя алгоритм поиска кратчайшего пути на обновленном сетевом графе, и чтобы установить значения в базе данных пересылки для резервного тракта.
[0007] Вычислительное устройство реализует множество виртуальных машин для реализации виртуализации сетевых функций (NFV). По меньшей мере, одна виртуальная машина из множества виртуальных машин выполнена с возможностью исполнять элемент вычисления тракта и протокол маршрутизации на основе состояния канала связи. Элемент вычисления тракта и протокол маршрутизации по состоянию канала связи поддерживают автоматическое установление избыточных трактов и осторожное восстановление в сети пакетной коммутации. Это вычислительное устройство включает в себя не временный машиночитаемый носитель данных, чтобы принимать и сохранять набор тип-длина-значение (TLV) явного тракта (EP), принятый через протокол маршрутизации на основе состояния канала связи, и процессор, соединенный с запоминающим устройством. Этот процессор выполнен с возможностью исполнять виртуальную машину, которая реализует модуль обработчика локальных вычислений (LCE), который обрабатывает EP TLV, исполняет алгоритм поиска кратчайшего пути, чтобы получить кратчайший тракт для свободных отрезков тракта, указанного этим EP TLV, чтобы этот кратчайший путь стал первичным трактом, и устанавливает значения в базе данных пересылки для первичного тракта. Это модуль LCE дополнительно выполнен с возможностью обновлять сетевой граф, чтобы отсечь каналы связи первичного тракта или отклонить каналы связи первичного тракта, чтобы вычислить резервный тракт, используя алгоритм поиска кратчайшего пути на обновленном сетевом графе, и устанавливать значения в базе данных пересылки для резервного тракта.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0008] Настоящее изобретение проиллюстрировано в качестве примера, а не ограничения, на фигурах сопровождающих чертежей, на которых аналогичные ссылки указывают похожие элементы. Следует отметить, что разные ссылки на "некий" или "один" вариант осуществления в данном описании не обязательно на один и тот же вариант осуществления, и подобные ссылки означают, по меньшей мере, один. Кроме того, когда конкретный признак, структура или характеристика описана применительно к некоторому варианту осуществления, предполагается, что в пределах знаний специалиста в данной области техники применить подобный признак, структуру или характеристику применительно к другим вариантам осуществления, описано это явно или нет.
[0009] Фигура 1 является схемой примера сети пакетной коммутации.
[0010] Фигура 2 является схемой сети пакетной коммутации, иллюстрирующей явную маршрутизацию в сравнении с маршрутизацией по кратчайшему тракту в сети пакетной коммутации
[0011] Фигура 3 является схемой некоторого варианта осуществления сети пакетной коммутации, включающей в себя внешний элемент вычисления тракта.
[0012] Фигура 4 является схемой некоторого варианта осуществления сети пакетной коммутации с множеством элементов вычисления тракта, реализованных сетевыми узлами.
[0013] Фигура 5 является схемой формата дескриптора явного тракта (EP) для этого протокола, предоставляющего описание тракта и данных о резервировании.
[0014] Фигура 6 является схемой некоторого варианта осуществления сетевого элемента связывающегося с внешним PCE.
[0015] Фигура 7 является схемой некоторого вариант осуществления сетевого элемента, включающего в себя PCE.
[0016] Фигура 8 является схемой баз данных, которые могут эксплуатироваться в сочетании с этим протоколом.
[0017] Фигура 9 является блок-схемой некоторого варианта осуществления способа управления трактом.
[0018] Фигура 10 является блок-схемой способа резервирования этого протокола.
[0019] Фигура 11 является схемой некоторого примерного варианта осуществления структур топологии сети, применяемых в сетях Ethernet совместно со стандартными протоколами, которые ими управляют.
[0020] Фигура 12 является блок-схемой для некоторого варианта осуществления расчета трактов, используя алгоритм DP ECT.
[0021] Фигура 13 является блок-схемой некоторого варианта осуществления процесса осторожного восстановления.
[0022] Фигура 14A иллюстрирует связанность между сетевыми устройствами (ND) в примерной сети передачи данных, наряду с тремя примерными реализациями этих ND, в соответствии с некоторыми вариантами осуществления данного изобретения.
[0027] Фигура 14B иллюстрирует примерный путь для реализации специализированного сетевого устройства 1402 в соответствии с некоторыми вариантами осуществления данного изобретения.
[0024] Фигура 14C иллюстрирует разные примерные пути, которыми виртуальные сетевые элементы (VNE) могут быть соединены в соответствии с некоторыми вариантами осуществления данного изобретения.
[0025] Фигура 14D иллюстрирует сеть передачи данных с единственным сетевым элементом (NE) на каждом ND на Фигуре 14A, и в которой этот прямой подход противопоставляется с традиционным распределенным подходом (широко используемым традиционными маршрутизаторами) с централизованным подходом для поддержания достижимости и передачи информации (так же называемым управлением сетью связи), в соответствии с некоторыми вариантами осуществления данного изобретения в соответствии с некоторыми вариантами осуществления данного изобретения.
[0026] Фигура 14E иллюстрирует простой пример, где каждый из ND 1400A-H реализует единственный NE 570A-H (см. Фигуру 14D), но централизованная плоскость управления 1476 суммирует несколько из NE в разных ND (NE 1470A-C и G-H) в (изображено) единый NE 1470I в одной из виртуальных сетей 1492 на Фигуре 14D, в соответствии с некоторыми вариантами осуществления данного изобретения.
[0027] Фигура 14F иллюстрирует случай, где несколько VNE (VNE 1470A.1 и VNE 1470H.1) реализованы на разных ND (ND 1400A и ND 1400H) и соединены друг с другом, и где централизованная плоскость управления 1476 суммирует эти несколько VNE, так, чтобы они выглядели как единый VNE 1470T в одной из виртуальных сетей 1492 на Фигуре 14D, в соответствии с некоторыми вариантами осуществления данного изобретения.
[0028] Фигура 15 иллюстрирует устройство плоскости управления 1504 общего назначения, включающее в себя аппаратное обеспечение 1440, содержащее набор из одного или нескольких процессоров 1442 (которые часто являются коммерчески доступными (COTS) процессорами) и контроллер(-ов) 1444 сетевого интерфейса (NIC; иначе называемых картами сетевого интерфейса) (которые включают в себя физические NI 1446), наряду с энергонезависимым машиночитаемым носителем 1448 данных, хранящим в себе программное обеспечение 1450 централизованной плоскости управления (CCP), в соответствии с некоторыми вариантами осуществления данного изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
[0029] В прилагаемом описании изложены многочисленные конкретные детали. Однако подразумевается, что варианты осуществления данного изобретения могут быть применены без этих конкретных деталей. В иных случаях, хорошо известные схемы, структуры и технические приемы не были подробно показаны, для того, чтобы не мешать пониманию данного описания. Однако, специалисту в данной области техники, следует иметь в виду, что это изобретение может быть применено без подобных конкретных деталей. Специалисты в данной области техники, с включенными в настоящий документ описаниями, будут способны реализовать соответствующую функциональность без излишних экспериментов.
[0030] Действия на блок-схемах будут описаны со ссылкой на примерный вариант осуществления на фигурах. Однако следует понимать, что действия на блок-схемах могут быть выполнены вариантами осуществления данного изобретения, иными, чем те, что рассмотрены со ссылкой на эти фигуры, и варианты осуществления, рассмотренные со ссылкой на эти фигуры, могут выполнять действия, отличные от тех, что рассмотрены со ссылкой на блок-схемы на этих фигурах. Некоторые из этих фигур представляют топологии и сценарии, которые иллюстрируют реализацию принципов и структур на других фигурах.
[0031] Технологии, показанные на фигурах, могут быть реализованы, используя машинный код и данные, хранящиеся и исполняемые на одном или нескольких электронных устройствах (например, конечной станции, сетевом элементе, и так далее). Подобные электронные устройства хранят и передают (внутренне и/или другим электронным устройствам через сеть передачи данных) машинный код и данные, используя не временный машиночитаемый или читаемый компьютером носитель, такой как не временный машиночитаемый или читаемый компьютером накопитель (например, магнитные диски; оптические диски; оперативные запоминающие устройства; постоянные запоминающие устройства; устройства флэш-памяти; и запоминающие устройства на фазовых переходах). Кроме того, подобные электронные устройства обычно включают в себя набор одного или нескольких процессоров, соединенных с одним или несколькими другими компонентами, такими как одно или несколько устройство хранения, устройств ввода/вывода пользователя (например, клавиатуры, сенсорной панели, и/или устройства отображения), и сетевые подключения. Соединение набора процессоров и других компонентов обычно происходит через одну или несколько шин и мостов (так же именуемых контроллерами шины). Устройства хранения представляют собой один или несколько энергонезависимых машиночитаемых или читаемых компьютером накопителей и энергонезависимых машиночитаемых или читаемых компьютером коммуникационных сред. Таким образом, устройство хранения данного электронного устройства обычно хранит машинный код и/или данные для исполнения на наборе из одного или нескольких процессоров этого электронного устройства. Разумеется, одна или несколько частей варианта осуществления данного изобретения могут быть реализованы, используя иные сочетания программного, программно-аппаратного и/или аппаратного обеспечения.
[0032] В данном контексте, сетевой элемент (например, маршрутизатор, коммутатор, мост, и так далее) является предметом сетевого оборудования, включающим в себя аппаратное и программное обеспечение, которое коммуникативно соединяет другое оборудование в сети передачи данных (например, другие сетевые элементы, конечные станции, и так далее). Некоторые сетевые элементы являются "сетевыми элементами комплексных услуг", которые обеспечивают поддержку нескольких сетевых функций (например, маршрутизацию, передачу данных в режиме моста, коммутацию, агрегирование на 2-м уровне, граничное управление сеансов связи, многоадресную передачу, и/или управление абонентами), и/или обеспечивают поддержку для нескольких прикладных услуг (например, данные, голос, и видео). Конечные станции абонентов (например, серверы, рабочие станции, переносные компьютеры, наладонные компьютеры, мобильные телефоны, смартфоны, мультимедийные телефоны, телефоны протокола передачи голоса через Интернет (VOIP), портативные мультимедийные проигрыватели, модули GPS, игровые системы, телевизионные приставки (STB), и так далее) обращаются к содержимому/услугам, предоставляемым через Интернет и/или содержимому/услугам, предоставляемым в виртуальных частных сетях (VPN) наложенных на Интернет. Содержимое и/или услуги обычно предоставляются одной или несколькими конечными станциями (например, серверными конечными станциями) принадлежащими поставщику услуги или содержимого или конечными станциями, участвующими в услуге "точка-точка", и может включать в себя публичные веб-страницы (свободное содержимое, витрины, поисковые службы, и так далее), частные веб-страницы (например, веб-страницы, доступные по имени пользователя/паролю, предоставляющие услуги электронной почты, и так далее), корпоративные сети через VPN, IPTV, и так далее. Обычно, конечные станции абонентов соединены (например, через абонентское оконечное оборудование, соединенное с сетью доступа (проводным или беспроводным способом)) с граничными сетевыми элементами, которые соединены (например, через один или несколько центральных сетевых элементов с другими граничными сетевыми элементами) с другими конечными станциями (например, серверными конечными станциями).
[0033] Обзор архитектуры и управления и резервирования тракта.
[0034] Не существует протокола, который обеспечивает управление явным трактом в сетях Ethernet. Настройка каждого узла вдоль тракта средствами административного управления не целесообразна, особенно в больших сетях передачи данных. Применение RSVP-TE в Ethernet также не целесообразно, оно имеет огромные затраты на реализацию, а решения 3-его уровня не применимы в сетях Ethernet из-за привязки к IP. Более того, в некоторых сетевых сценариях, запуск протокола сигнализации, например, MSRP или RSVP-TE является нежелательным. Более того, MSRP не применим для управления явным трактом, это не является предполагаемой функцией MSRP, который запускается поверх уже установленных трактов. Иметь единый протокол, управляющий как неявными, так и явными трактами может быть выгодным и в сетях протокола Интернет (IP) тоже. Решение, интегрированное в единый протокол, также не существует для сетей IP/MPLS.
[0035] Варианты осуществления данного изобретения основываются на архитектуре и протоколе, где тип-длина-значение (TLV) явного тракта (EP) были определены таким образом, что они могут описывать тракт в любой сети, управляемой IS-IS, включая в себя сети Ethernet. Более того, эти EP TLV определены так, что они могут переноситься в иных блоках протокольных данных (PDU) чем IS-IS PDU, например, в MSRPDU. Эти EP TLV могут также именоваться sub-TLV топологии. Sub-TLV топологии охватывают, по меньшей мере, функциональные возможности EP TLV, как описано в настоящем документе. Sub-TLV топологии могут передавать явные деревья и/или явные тракты. В данном контексте, "тракты" и "деревья" могут быть использованы как синонимы, где тракты являются вариантами деревьев, а явные тракты являются вариантами явных деревьев. Для ясности, варианты осуществления описаны в первую очередь в терминах EP TLV, используемых для определенных явных трактов, однако, специалисты в данной области техники поймут, что описываемые понятия, процессы и структуры являются эквивалентными и охватывают sub-TLV топологии, которые описывают явные тракты или явные деревья.
[0036] Кроме того, эта архитектура и протокол вводят базу данных, называемую как база данных явного тракта (EPDB) для хранения EP TLV. Не все сетевые узлы могут хранить данные EP TLV, за исключением сетевых узлов вдоль тракта, определенных этим EP TLV. Способ для управления и резервирования тракта определен в этом протоколе, используя модульную структуру, которая позволяет гибкость для объединения разных решений, например, способ управления трактом с резервированием, обеспечиваемым MSRP в случае Ethernet.
[0037] Эта архитектура и протокол определяют способ и устройство для управления трактами пересылки в сетях пакетной коммутации и выполнения резервирования поверх трактов передачи пакетов. Фигура 1 является схемой одного примера сети 101 пакетной коммутации. Сетевые узлы, составляющие сеть 101 пакетной коммутации попадают в две категории: они или являются граничными узлами (EN) как узлы 102, 103, 104, и 105 или они являются центральными узлами (CN) как узел 106. Сеть 101 пакетной коммутации, как правило, соединяет хосты друг с другом, например, Хост 1 107 и Хост 2 108. Сеть 101 пакетной коммутации часто используется для соединения дополнительных сетевых устройств, например, дополнительных сетевых узлов, например, Узла 1 109 и Узла 2 110. Сетевой домен в сети пакетной коммутации часто управляется протоколом внутренних шлюзов (IGP), таким как протокол маршрутизации промежуточных систем (IS-IS) или открытые протоколы маршрутизации на основе состояния канала связи с предпочтением кратчайшего пути (OSPF). Сеть пакетной коммутации, как правило, применяет механизмы Уровня 2 или Уровня 3 в качестве основных принципов для пакетной пересылки. То есть пересылка может основываться на адресах Уровня 2, то есть, MAC-адресах, или основываться на IP-адресах в случае пересылки на Уровне 3. Следует отметить, что пакеты часто называют кадрами в случае Уровня 2.
[0038] Базовым механизмом управления трактом, применяемым в сетях пакетной коммутации, является маршрутизация по кратчайшему тракту. Системы маршрутизации, основанные или на IS-IS или на OSPF протоколах маршрутизации, реализуют для расчета трактов алгоритм Дейкстры, который часто именуют алгоритмом предпочтения кратчайшего пути (SPF), поскольку он выбирает кратчайший путь между источником и получателем пакета. Ядром маршрутизации на основе состояния каналов связи является то, что каждый сетевой узел поддерживает идентичную копию базы данных состояний каналов (LSDB) связи, состоящую из информации о состоянии каналов связи, которую узлы лавинно рассылают друг другу. К примеру, LSDB представляет граф, отображающий топологию сети, который является входными данными для алгоритма Дейкстры.
[0039] Маршрутизация на основе ограничений (CR) была введена, чтобы позволить несколько отклонятся от кратчайшего пути. CR делает возможным введение различных параметров, относящихся к сетевым линиям связи, например, цвет, доступная пропускная способность, канальная задержка, или группа каналов связи с общим риском (SRLG), эти параметры лавинно рассылаются по сети пакетной коммутации совместно с другими данными о состоянии каналов связи во время работы проверки состояния каналов связи. Сетевые узлы, таким образом, способны поддерживать базу данных, содержащую эти дополнительные характеристики сетевых компонентов, эта база данных называется базой данных расчета трафика (TED). В случае CBR, алгоритм SPF запускается на отсеченном графе, который выводится из LSDB, но содержит только каналы связи, соответствующие ограничениям, что проверяется, используя информацию в TED. Таким образом, алгоритм выбора кратчайшего пути на основе ограничений (CSPF) может быть применен к сетям пакетной коммутации, производя кратчайший с ограничениями (CS) тракт.
[0040] Однако, существуют некоторые виды трафика, сетевые условия и/или операторские предпочтения, для которых ни кратчайшие тракты, ни CS тракты не являются удовлетворительными. Для того, что бы иметь возможность удовлетворять этим видам трафика, сетевым условиям и/или операторским предпочтениям, сеть передачи данных должна иметь возможность предоставлять также и явные тракты.
[0041] Фигура 2 является схемой сети пакетной коммутации, иллюстрирующей явную маршрутизацию по сравнению с маршрутизацией по кратчайшему тракту в сети 201 пакетной коммутации. Тракт 2 208 обеспечивает кратчайший тракт между EN C 204 и EN D 205. Поскольку кратчайший тракт является просто отличным для Трафика 2 210, он отображается как Тракт 2 208. Трафик 1 209 проходит в сети 201 пакетной коммутации между EN A 202 и EN B 203. Однако, по любым вышеописанным причинам, Трафик 1 209 должен следовать по тракту, полностью отличному от кратчайшего тракта. Фактически, требуется, чтобы Трафик 1 209 был послан через CN E 206, который не находится на кратчайшем тракте между EN A 202 и EN B 203. Таким образом, сети передачи данных необходимо иметь возможность установить и обеспечить Тракт 1 207 для пакетов Трафика 1 209.
[0042] Фигура 3 является схемой одного варианта осуществления сети пакетной коммутации, включающей в себя внешний элемент вычисления тракта. Данные архитектура и протокол используют приложение 309 элемента вычисления тракта (PCE), которое может быть запущено на устройстве, например, компьютере, который является внешним для сетевого домена 301. Внешнее устройство, выполняющее приложение 309 PCE, подключено к одному из EN сети передачи данных, например, EN A 302 в примере, показанном на Фигуре 3. Более того, приложение 309 PCE принимает управляющие PDU, используемые протоколами, применяемыми для маршрутизации и резервирования. Таким образом, PCE 309 способен поддерживать точно такие же базы данных (то есть, LSDB и TED), как поддерживаемые в сетевых узлах, например, 303-306, протоколами управления, применяемыми в этой сети передачи данных. Кроме того, PCE 309 может указать сетевым узлам выполнить некоторые действия, главным образом EN 302, к которой он подключен, например, средствами управляющих PDU, инициированных PCE 309.
[0043] Более того, PCE 309 может влиять на работу протоколов управления сетью передачи данных, например, средствами управляющих PDU. Таким образом, имеется PCE 309, который определяет, к примеру, что Тракт 1 307 требуется для Трафика 1. Затем, PCE 309 указывает EN A 302 выполнить соответствующие действия, для того, чтобы получить явный тракт, то есть, Тракт 1 307, установленным в этой сети передачи данных. К примеру, EN A 302 может послать управляющие PDU другим сетевым узлам, указав им установить этот явный тракт. Следует отметить, что может быть один центральный внешний PCE 309, примененный для сетевого домена 301, или может быть несколько приложений PCE, запущенных, например, на различных устройствах, внешних по отношению к этой сети передачи данных.
[0044] В другом варианте данные архитектура и протоколы, используемые вариантами осуществления, могут быть реализованы так, чтобы сетевые узлы, например, граничные узлы или даже каждый узел в этой сети передачи данных, исполняли приложение PCE. Фигура 4 является схемой одного варианта осуществления сети пакетной коммутации с элементами вычисления тракта, обслуживаемыми сетевыми узлами. Фигура 4 иллюстрирует случай, когда приложение PCE выполняется сетевыми узлами вместо внешних элементов. В примере, показанном на Фигуре 4, каждый из EN A 402 и EN B 403 выполняют приложение PCE, это помимо выполнения обычных действий по работе сети, благодаря чему оба узла способны выполнять те же действия, что и внешнее устройство на Фигуре 3. Приложение PCE показано маленьким треугольником в сетевых узлах. То есть, приложение 412 PCE выполняется EN A 402, а приложение 413 PCE является приложением PCE, выполняемым EN B 403. Приложение PCE, выполняемое на этих сетевых узлах имеет доступ к базам данных протоколов управления и может выполнять такие действия, чтобы этот сетевой узел посылал управляющие PDU, требуемые PCE. Таким образом, это приложение PCE способно выполнять вычисление явных или ограниченных маршрутов.
[0045] Более того, каждое приложение PCE способно выполнять действия, требуемые для того, чтобы настроить другие сетевые узлы установить явный тракт, например, посредством посылки соответствующих управляющих PDU другим узлам. Сетевые узлы, не выполняющие приложение PCE, не могут выполнять действия управления явным трактом, помимо установки тракта, который им указано установить, следовательно, они не видят ни какой разницы между внешним приложением PCE и размещенным на сетевом узле.
[0046] В некоторых вариантах осуществления, обработчик локальных вычислений моста (BLCE), или, в более общем смысле, обработчик локальных вычислений (LCE) может быть реализован, чтобы выполнять вычисление тракта и маршрута на узле (например, на мосту в случае с BLCE). LCE может реализовывать SPF, CSPF, и/или непересекающийся тракт или алгоритм предельно избыточного дерева. PCE и LCE могут быть архитектурно разными объектами. LCE реализован в каждом узле (например, каждый мост реализует BLCE), при этом LCE реализует алгоритм SPF (то есть, алгоритм Дейкстры) как минимум, и также может реализовывать более сложные алгоритмы расчета трактов, например, для определения ограниченных или избыточных деревьев. LCE может реализовывать все пары алгоритмов поиска кратчайшего пути в дополнении к SPF. Деревья пересылки могут быть вычислены LCE, помимо случаев, когда они даны явно. Напротив, PCE может реализовывать более сложные алгоритмы вычисления, и его основная задача состоит в определении явных деревьев; даже если этот PCE находится в мосте. Варианты осуществления, описанные далее в настоящем документе, в общих чертах описывают реализацию функций посредством PCE, однако, специалисты в данной области техники поймут, что разделение реализации описанных функциональных возможностей может охватывать некоторые функции или этапы, реализуемые посредством LCE на каждом соответствующем узле, и что описание способов и процессов в настоящем документе, реализуемых посредством PCE, охватывает варианты осуществления, в которых LCE могут реализовывать некоторые из описываемых этапов или функций этих процессов и способов.
[0047] С учетом вышеупомянутых вариантов для расположения приложения PCE, также имеется два варианта устройства, реализующего предлагаемый способ. Устройство для внешнего PCE показано на Фигуре 6. Устройство в случае, когда сетевые узлы реализуют приложение PCE, показано на Фигуре 7.
[0048] Фигура 6 является схемой одного варианта осуществления сетевого элемента, сообщающегося с внешним PCE. Как показывает Фигура 6, имеется обмен данными между сетевым элементом 601 и элементом 612 управления трактом, если PCE выполняется внешним устройством. Пример сетевого элемента 601, показанный на Фигуре 6 включает в себя плоскость данных, включающую в себя коммутационную матрицу 607, некоторое число плат, например, 608 и 609, передачи данных, по крайней мере, интерфейс 610 приемника (Rx), и, по крайней мере, интерфейс 611 передатчика Tx. Эти Rx и Tx интерфейсы 610 и 611 соединяются с каналами связи в сети передачи данных, платы 608 и 609 передачи данных выполняют функции по данным, принятым через интерфейсы 610 и 611, а коммутационная матрица 607 коммутирует данные между платами передачи данных и аналогичными картами ввода/вывода (I/O).
[0049] Сетевой элемент 601 также включает в себя плоскость управления, которая включает в себя один или несколько процессоров 602, содержащих схему управления, выполненную с возможностью реализовывать, например, процесс маршрутизации на основе состояния канала связи для управления пересылкой на основе кратчайшего пути. Другие процессы так же могут быть реализованы в этой схеме управления.
[0050] Сетевой элемент 601 также включает в себя запоминающее устройство 603, которое хранит программное обеспечение для протоколов 604 управления, стек 605 протоколов, и одну или несколько баз 606 данных. Программное обеспечение для протоколов 604 управления может содержать данные и команды, относящиеся к процессу маршрутизации по состоянию каналов связи, к примеру, LCE который реализует SPF (то есть, алгоритм Дейкстры). Стек 605 протоколов хранит сетевые протоколы, реализуемые сетевым элементом 601. Базы данных используются для определения и сохранения трактов пересылки. Сетевой элемент 601 может содержать другое программное обеспечение, обрабатывающее и сохраняющее информацию, позволяющую ему выполнять функции для способа управления и резервирования тракта (PCR), включая в себя процесс восстановления тракта, описанный в настоящем документе ниже, и выполнять другие функции, обычно реализуемые в сетевом элементе сети передачи данных.
[0051] PCE 612, соединенный с сетевым элементом 601, включает в себя один или несколько процессоров 613, соединенных с запоминающим устройством 614. Процессоры 613 включают в себя схему для выполнения операций по расчету трактов и операций по руководству сетевым элементом 601. Запоминающее устройство 614 включает в себя программное обеспечение 615 расчета трактов для определения явных трактов и данных о резервировании, а также процесса восстановления тракта, описанного в настоящем документе ниже. Запоминающее устройство 614 также включает в себя базы 616 данных. Эти базы данных могут включать в себя точную копию баз данных, хранимых сетевым элементом 601, и могут включать в себя дополнительные базы данных, например, для расчета трактов.
[0052] Фигура 7 является схемой одного варианта осуществления сетевого элемента, включающего в себя PCE. Как показывает Фигура 7, сетевой элемент 701 может также выполнять прикладное программное обеспечение PCE. Таким образом, пример сетевого элемента 701, показанный на Фигуре 7 включает в себя плоскость данных, включающую в себя коммутационную матрицу 708, некоторое число плат, например, 709 и 710, передачи данных, по крайней мере, интерфейс 711 приемника (Rx), и, по крайней мере, интерфейс 712 передатчика Tx. Эти Rx и Tx интерфейсы 711 и 712 соединяются с каналами связи в сети передачи данных, платы 709 и 710 передачи данных выполняют функции по данным, принятым через интерфейсы 711 и 712, а коммутационная матрица 708 коммутирует данные между этими платами передачи данных и/или другими картами ввода/вывода (I/O). Сетевой элемент 701 также включает в себя плоскость управления, которая включает в себя один или несколько процессоров 702, содержащих схему управления, выполненную с возможностью реализовывать, например, процесс маршрутизации на основе состояния канала связи для управления пересылкой на основе кратчайшего пути.
[0053] Более того, процессоры 702 также реализуют схему для расчета и резервирования трактов, включая в себя восстановление тракта, описанное в настоящем документе ниже. Другие процессы также могут быть реализованы в этой схеме управления. Сетевой элемент 701 также включает в себя запоминающее устройство 703, которое хранит программное обеспечение для протоколов 704 управления, стек 705 протоколов, одну или несколько баз 706 данных и программное обеспечение 707 расчета трактов. Программное обеспечение для протоколов управления может содержать данные и команды, относящиеся к процессу маршрутизации по состоянию каналов связи, к примеру, LCE который реализует SPF (то есть, алгоритм Дейкстры). Стек 705 протоколов хранит сетевые протоколы, реализуемые сетевым элементом 701.
[0054] Базы данных используются для определения и сохранения трактов пересылки. Эти базы данных кроме того используются схемой расчета трактов и могут содержать компоненты, требуемые для расчета и резервирования трактов. Запоминающее устройство 703 включает в себя программное обеспечение 707 расчета трактов, применимое для определения явных трактов и данных о резервировании. Сетевой элемент 701 может содержать другое программное обеспечение, обрабатывающее и сохраняющее информацию, позволяющую ему выполнять функции для предложенного способа управления и резервирования тракта, и выполнять другие функции, обычно реализуемые в сетевом элементе сети передачи данных.
[0055] Фигура 9 является блок-схемой одного варианта осуществления предложенного способа управления трактом. Могут иметься различные сетевые элементы, которые могут запросить сетевой тракт для пересылки пакетов, к примеру, это может быть хост (например, 107) присоединенный к сетевому узлу, элемент другого протокола, например, SRP, или может быть администратор сети для создания новой службы, и так далее. Более того, может возникнуть необходимость в дереве вместо тракта, например, для распространения многоадресного трафика. Таким образом, первым этапом является запрос тракта или дерева, как показано этапом 901 на Фигуре 9. Затем, на этапе 902, рассматривают, отвечает ли существующий тракт или дерево требованиям трафика, который направлен, чтобы быть перенесенным по этому тракту. Если да, то тогда ничего не будет сделано кроме сопоставления этого трафика соответствующему существующему пути или дереву, как показано этапом 903. Если подобного пути не существует, то тогда один или несколько кратчайших трактов на основе ограничений (CS) могут быть удовлетворительными. Таким образом, следующим этапом является 904, на котором проверяют, могут ли новые CS тракты обеспечить возможность удовлетворять требованиям, например, требованиям трафика. Если да, то тогда установка одного или нескольких новых CS трактов начинают на этапе 905, принимая в расчет соответствующее ограничение. По мере распространения CR, сетевые узлы (например, через LCE) затем вычисляют и устанавливают эти CS тракты самостоятельно на этапе 906. Следует отметить, что этапы 904, 905, и 906 могут быть выполнены, только если эта сеть передачи данных реализует CR, вот почему эти этапы показаны пунктирными блоками. Если CR не реализована, то этап 907 следует сразу после 902.
[0056] Если CR реализована, но PCE приходит к заключению (этап 907) что CS тракты не обеспечат тракты с необходимыми характеристиками, то тогда необходим явный тракт или явно определенное дерево. На этапе 908, PCE затем вычисляет тракт или дерево. Если нет такого тракта в этой сети передачи данных, который отвечает требованиям, то никаких дальнейших этапов не совершается, но PCE сообщает об ошибке управлению сетью. Если PCE может определить соответствующий тракт или дерево, то тогда PCE указывает протоколу распределенного управления, примененному в этой сети передачи данных, продвигать этот тракт или дерево через сеть передачи данных, как показано на этапе 909. Указание может принимать различные виды, в зависимости от примененной архитектуры. Если PCE расположен на сетевом узле, как показано на Фигуре 4 и Фигуре 7, то приложению PCE всего лишь необходимо дать указания местной копии приложения протокола управления. Если PCE выполняется внешним устройством, как показано на Фигуре 3 и Фигуре 6, то тогда PCE необходимо дать указания сетевому узлу, к которому он подключен, чтобы выполнить соответствующие действия его приложением протокола управления.
[0057] Протокол управления, используемый для распространения явных трактов, может, к примеру, быть протоколом маршрутизации на основе состояния канала связи, примененным для управления кратчайшими путями, например, IS-IS. На этапе 910, сетевые узлы затем сохраняют этот тракт или дерево в свои локальные базы данных. Более того, эти сетевые узлы также устанавливают этот тракт или дерево в свои плоскости данных, таким образом обеспечивая тем самым то, что поток пакетов использует этот тракт, как показано этапом 911.
[0058] Этот протокол может также содержать резервирующий компонент, помимо управления трактом, представленного выше, поскольку есть виды трафика, требующие резервирования ресурсов вдоль их тракта, чтобы удовлетворять их требованиям. Резервирование может быть выполнено вдоль существующего тракта, например, вдоль кратчайшего тракта, или может случиться, что новый тракт также требуется, помимо резервирования. Фигура 10 является блок-схемой способа резервирования по этому протоколу. После получения запроса резервирования на этапе 1001, PCE оценивает на этапе 1002, существует ли тракт для резервирования. К примеру, запрос резервирования может содержать идентификатор тракта или резервирование совершается просто по кратчайшему тракту, который в любом случае поддерживается протоколами управления. Если этот тракт не существует, то вызывают этапы 901-908 способа управления трактом, показанные на Фигуре 9. Следует отметить, что если не существует такого тракта в этой сети передачи данных, который может удовлетворить требованиям, то тогда никаких дополнительных этапов не совершают после 908, но PCE сообщает об ошибке управлению сетью. Если этот тракт уже имеется в этой сети, то тогда проверяют на этапе 1004, возможно ли резервирование запрашиваемых ресурсов по этому тракту. Если это невозможно, то тогда сообщение об ошибке посылают управлению сетью на этапе 1005, и никакие дальнейшие шаги не предпринимаются. Этап 1006 достигается, если этот тракт имеется в этой сети передачи данных и резервирование тоже возможно. Таким образом, протокол управления, примененный для вызова резервирования, затем продвигает данные о резервировании в этой сети передачи данных, которые, к примеру, могут быть пропускной способностью, требуемой для данного трафика.
[0059] Протокол управления, применяемый для распространения этих данных, может быть протоколом маршрутизации этой сети передачи данных, например, IS-IS, или это может быть протокол, разработанный для резервирования, например, протокол множественного резервирования ресурсов (MSRP). Может случиться, что несколько действий резервирования будут начаты в сети передачи данных для одних и тех же ресурсов, что является состоянием состязания за данные ресурсы и вызывает конфликт резервирования. Конфликт резервирования разрешают бесконфликтным решением, например, резервирование произойдет для устройства, имеющего наименьший адрес (например, MAC-адрес) среди устройств, начавших резервирование. Если имеется конфликт, то для проигравшего выполняют действия, показанные на этапе 1007. То есть, проигравшего информируют о неудаче в работе резервирования, тем самым он становится способен перезапустить процесс резервирования, более того, ресурсы, зарезервированные во время неудавшегося резервирования, освобождаются, как показано этапом 1008. Как показывает этап 1009, если процесс резервирования идет успешно, то тогда каждый сетевой узел сохраняет данные о резервировании в свои базы данных. Разумеется, это резервирование также устанавливают, как показано этапом 1010, то есть, сетевые ресурсы резервируются для данного трафика вдоль этого тракта.
[0060] Как уже было сказано выше, для явных трактов и деревьев, данные о резервировании должны как-то быть описаны, чтобы сделать возможным их распространение через сеть передачи данных. Поскольку эти данные нацелены быть распространенными посредством PDU протокола управления, они должны быть в виде, подходящем для этих протоколов. Дескрипторы явных трактов именуются TLV явного тракта (EP) в настоящем документе. Фигура 5 является схемой формата EP TLV для протокола, обеспечивающего описание тракта и данных о резервировании. Дескриптор содержит Тип 501, Длину 502 и Значение 503 TLV. Существует так много возможностей для описания необходимых данных, как следствие, только пара вариантов даны в настоящем документе на высоком уровне. Поле Тип 501 может указывать, является ли это явным трактом, содержит ли это также резервирование, или это только для резервирования. Следует отметить, что явные тракты и явные деревья могут иметь различные типы полей. Поле Длина 502 обозначает размер данных дескриптора. Поле Значение 503 является, фактически, данными дескриптора, которые могут содержать подполя или sub-TLV. К примеру, значение, могущее быть явным трактом, может быть списком идентификаторов узлов, например, адресов, при этом список может быть отсортированным.
[0061] Для работы этого протокола, может быть решающим, как базы данных применены для протоколов управления, и как они расположены. В некоторых вариантах осуществления, используется поддержка нового вида базы данных, то есть базы данных для явных трактов, которая называется базой данных явного тракта (EPDB) или базой данных явного дерева (ETDB). Как упомянуто выше, наиболее распространенным протоколом, применяемым в настоящее время для управления путями пересылки в сетевом домене, является маршрутизация по состоянию каналов связи, то есть, IS-IS или OSPF.
[0062] Фигура 8 является схемой баз данных, которые могут поддерживаться совместно с данным протоколом. Фигура 8 показывает наличие набора баз 801 данных, сопоставленных с базами данных маршрутизации на основе состояния канала связи, которые поддерживаются сетевыми узлами, эти базы данных также поддерживаются внешним PCE. То есть, протокол маршрутизации по состоянию канала связи поддерживает LSDB 802. Если расширения расчета трафика реализованы, то тогда протокол маршрутизации по состоянию канала связи также поддерживает TED 803. Следует отметить, что LSDB и TED могут быть общей базой данных, то есть, TED может быть немного расширенной LSDB. По способу, предложенному выше, EPDB также поддерживается протоколом управления, применяемым для PCR.
[0063] В некоторых вариантах осуществления, EPDB является отдельной от LSDB и TED, однако, объединенная реализация также возможна. Наличие отдельной EPDB позволяет, чтобы явные тракты сохранялись только сетевыми узлами, участвующими в этом тракте. Таким образом, размер баз данных узлов, не участвующих в этом явном тракте не увеличиваются без надобности, и, следовательно, обработка этих баз данных не замедляется ненужными данными. Только явные тракты сохраняются в отдельной EPDB. Все данные о резервировании сохраняются в TED. То есть, данные о резервировании для явных трактов, кратчайших трактов и CS трактов объединены, таким образом эти данные всегда показывают значения, актуальные для сетевых ресурсов, что является существенным для дальнейших резервирований или маршрутизации на основе ограничений.
[0064] Если, к примеру, IS-IS используется в сети передачи данных для маршрутизации по кратчайшему пути или на основе ограничений, то тогда TLV для явных трактов передают в PDU состояния каналов (LSP) связи. Один или несколько PCE принимают те же самые LSP, что и сетевые узлы, таким образом, PCE способны поддерживать точную копию LSDB, идентичную сетевым узлам, которая используется в качестве ввода для расчета трактов посредством PCR. После расчета трактов, как описано выше, PCE собирает (этап 908) EP TLV. В случае внешнего PCE, EP TLV посылают сетевому узлу, к которому этот PCE подключен. Этот сетевой узел, затем лавинно рассылает LSP, несущий EP TLV (этап 909), таким образом, этот EP TLV получает каждый узел в этой сети передачи данных. Сетевые узлы вдоль тракта (например, 306, 406) сохраняют (этап 910) этот EP TLV в своих EPDB (804). Наконец, сетевые узлы вдоль этого тракта (например, 306, 406) реализуют этот EP TLV в своих плоскостях пересылки (этап 911). Если применена маршрутизация на основе ограничений, то тогда новый тракт(ы) также запрашивает лавинной рассылкой EP TLV (этап 905), которую получает каждый сетевой узел и сохраняет в своих EPDB (804). Если резервирование выполняется также для явного тракта, то тогда простейшим может быть передавать параметры резервирования в том же самом EP TLV, что и этот явный тракт, например, значение пропускной способности, которое необходимо зарезервировать на каждом канале связи. Затем, сетевые узлы вдоль этого тракта (например, 306, 406) обновляют (этап 1009) свои TED (803) в соответствии с этим параметром резервирования, например, уменьшают доступную пропускную способность на каналах связи, занятых в этом явном тракте. Сетевые узлы вдоль этого тракта (например, 306, 406) также устанавливают (этап 1010) это резервирования в свои плоскости данных.
[0065] Архитектура и протокол управления и резервирования тракта, описанный в этой заявке, является, к примеру, применимым в сетях Ethernet Уровня 2 (L2). Фигура 11 является схемой одного примерного варианта осуществления структур топологии сети, применяемых в сетях Ethernet совместно со стандартными протоколами, управляющими ими. Мостовое соединение по кратчайшему пути (SPB) является расширением к IS-IS, то есть, применяет работу IS-IS, принципы которого были описаны выше. Данный протокол управления и резервирования тракта может быть применен с SPB, и, следовательно, работает, как описано в предыдущем параграфе, то есть, IS-IS используется для распространения как управления трактом, так и данных о резервировании.
[0066] Протоколы SRP и MSRP уже используются в настоящее время поверх остовного дерева для резервирования потоков между источниками и получателями в сетях Ethernet. Следуя принципам, показанным на Фигуре 11, управление активной топологией, то есть, трактами пересылки, может быть заменено с остовного дерева на деревья кратчайших путей или явные тракты. Тогда, MSRP можно запустить поверх, как в настоящее время. То есть, в случае применения SRP или MSRP, может быть так, что только способ управления трактом, показанный на Фигуре 9 используется, а способ резервирования на Фигуре - нет. Следует, однако, отметить, что базы данных должны обрабатываться, как описано выше, для корректной работы и в этом случае тоже. То есть, данные о резервировании, переносимые в MSRPDU сохраняются также и в TED. Имея MSRP, запущенный в L2 сети, кто-то может предпочесть применить MSRP в качестве протокола управления, несущего EP TLV на этапе 909. Это не совсем согласуется с иерархическим представлением на Фигуре 11, но подобная реализация также является возможной. EP TLV с Фигуры 5 могут быть переданы в MSRPDU, то есть, современный MSRP может быть улучшен, чтобы участвовать в управлении трактом. В таком режиме работы, EPDB поддерживается отдельно, как описано выше, используя EP TLV, принимаемые в MRPDU. То есть, подобный подход затрагивает только этап 909 предложенного способа, посредством замены IS-IS на MSRP в качестве протокола управления для распространения EP TLV. Все другие этапы способа управления трактом на Фигуре 9 остаются теми же самыми.
[0067] Резервирование, затем, выполняется работой MSRP. Следует отметить, что хотя MSRP имеет свой собственный процесс резервирования, интеграция способа резервирования, показанного на Фигуре 11, может быть полезной, например, для разрешения конфликтов, из-за наличия трактов, управляемых IS-IS в сети передачи данных вместо прежних остовных деревьев. Следует далее заметить, что взаимодействие между MSRP и управляемым IS-IS сетевым доменом тоже является возможным. То есть, один или несколько PCE могут принимать MSRPDU помимо LSP. К примеру, MSRPDU также пересылаются внешнему PCE (311) на Фигуре 3 или хосты (например, 107 и 108), подключаются к узлам (например, 407 и 403), реализующим приложение PCE. Если каждый граничный узел сети передачи данных реализует это приложение PCE, то тогда PCE способно включать данные о резервировании в EP TLV, которые затем продвигаются и обрабатываются IS-IS. Таким образом, обмен MSRPDU может быть оставлен за пределами сетевого домена, то есть, он выполняется между хостами и граничными узлами (между 107 и 402; между 108 и 403), а домен управляется только IS-IS, например, посредством SPB.
[0068] Ограничения базового протокола управления и резервирования тракта.
[0069] Протокол управления и резервирования тракта описанный выше в настоящем документе является ограниченным в ряде аспектов. Явные тракты, будучи определенными, не обновляются. PCE вычисляет желаемые тракты, а IS-IS используется, чтобы установить их. Однако после установки они в дальнейшем не модифицируются или меняются. Протокол управления и резервирования тракта может быть использован для определения явных трактов, которые являются двухточечными. Однако, в некоторых сценариях, может быть желательным поддерживать использование максимально избыточных деревьев (MRT) или схожих структур. Варианты осуществления предоставляют улучшение к протоколу управления и резервирования тракта, чтобы поддерживать осторожные обновления и автоматизацию для этого протокола, наряду с расширением его способности определять различные алгоритмы для расчета трактов, которые могут быть сопоставлены с отдельными виртуальными локальными вычислительными сетями (VLAN) и схожими структурами в сети пакетной коммутации. "Автоматический" или "автоматически" в данном контексте относится к процессу или функции, которая вызывается или исполняется без вмешательства администратора.
[0070] Определение и идентификация алгоритма динамического управления явным трактом.
[0071] В одном варианте осуществления, протокол управления и резервирования тракта улучшен, чтобы позволить определение и идентификацию различных способов для управления явным трактом, включая в себя способы, основанные на осторожном восстановлении. Таким образом, каждый способ управления явным трактом имеет свой уникальный ID. Трафик под управлением определенного способа управления явным трактом затем сопоставляют с ID этого способа. В мостовой сети Уровня 2, путем обеспечения этого сопоставления является сопоставление VLAN ID или I-SID с ID данного способа управления явным трактом.
[0072] Если некто хочет реализовать идентификацию различных способов управления явным трактом, то тогда одной возможностью является ввести новые значения алгоритма дерева равных стоимостей (ECT) для этих способов управления явным трактом, по одному для каждого. Точный способ, который будет использоваться для конкретной VLAN, затем определяют по значению алгоритма ECT, которое назначено Base VID VLAN в SPB Base VLAN-Identifiers sub-TLV. Примерная таблица алгоритмов ECT, которые могут быть назначены VLAN, изложена ниже в Таблице I. Однако специалисты в данной области техники должны понимать, что любое число или порядок возможных алгоритмов ECT может быть определен для использования с VLAN.
<b>Таблица</b>
Алгоритм ECT
Имя алгоритма
Поведение
00-80-C2-20
Статический явныйSE ECT-алгоритм
Статический явный тракт (EP) или явное дерево, которое устанавливается IS-IS-SPB только один раз. Восстановление или обновление автоматически не выполняются.
00-80-C2-21
Непересекающиеся трактыDP ECT-алгоритм
Два максимально непересекающихся тракта (DP), которые могут быть осторожно восстановлены IS-IS-SPB. Если сеть передачи данных стала стабильной, то тогда IS-IS-SPB может восстановить эти DP один за другим, поочередно.
00-80-C2-22
Избыточные деревьяRT ECT-Algorithm
Два максимально избыточных дерева (MRT), которые могут быть осторожно восстановлены IS-IS-SPB. Если сеть передачи данных стала стабильной, то тогда IS-IS-SPB может восстановить MRT одну за другой, поочередно.
[0073] Алгоритм ECT, как описано в настоящем документе, также определяет применяемый способ восстановления. Никакое восстановление не применяется совместно с алгоритмом, указанным в первой строке таблицы, то есть, для статического алгоритма, который предоставляет жесткие явные деревья. Напротив, осторожное восстановление применяется совместно с двумя другими способами, то есть для непересекающихся трактов и для избыточных деревьев.
[0074] Избыточность
[0075] Тракты Свободные от повторов альтернативы.
[0076] Протокол управления и резервирования тракта может быть расширен, чтобы поддерживать различные виды схем защиты и восстановления, также называемые схемами избыточности. Эти схемы избыточности определяют резервные тракты для использования, когда основные SPF тракты выходят из строя или в качестве альтернатив для явно определенных трактов.
[0077] В одном варианте осуществления, свободные от повторов (LFA) могут быть определены как схема избыточности, которая может быть обеспечена посредством IS-IS для одноадресных потоков. К примеру, LFA может управляться IS-IS SPB для одноадресных потоков SPBM VLAN или для SPBV VLAN. LFA является схемой избыточности в нисходящем направлении, где отдельный MAC-адрес получателя является нижестоящим, если гарантируется, что дистанция до получателя уменьшается на каждом звене вдоль пути. Нисходящие тракты всегда являются свободными от повторов альтернативами по отношению друг к другу в отношении отдельного MAC-адреса. Таким образом, нисходящий альтернативный тракт может быть безопасно использован для локальной защиты в качестве свободного от повторов резервного тракта.
[0078] Максимально непересекающиеся тракты и избыточные деревья
[0079] Двухточечные схемы защиты часто требуют максимально непересекающихся трактов, тога как многоточечные схемы защиты обычно опираются на максимально избыточные деревья. Протокол управления и резервирования тракта может быть расширен, чтобы поддерживать установку этих трактов и деревьев наряду с осторожным восстановлением этих путей и деревьев после переключений на резерв или схожих событий, как описано способами по вариантам осуществления данного изобретения.
[0080] Статические тракты и деревья
[0081] PCE может вычислять непересекающиеся тракты и максимально избыточные деревья, используя любой указанный алгоритм. Если два максимально непересекающихся тракта вычислены одним PCE, то тогда эти да тракта определяют в двух отдельных EP TLV. В случае, где этот процесс автоматизирован, EP TLV включает в себя EP sub-TLV, который указывает две конечных точки этого тракта, а оставшаяся часть этого тракта вычисляется распределенными PCE. Каждый статический максимально непересекающийся тракт может, таким образом, быть установлен независимо от другого максимально непересекающегося тракта. Когда единственный PCE участвует в вычислении максимально непересекающихся трактов, оба тракта могут быть полностью указаны в их соответствующих EP TLV (то есть, они являются полностью завершенными трактами, без каких-либо неразрешенных "свободных" каналов связи). В одном варианте осуществления, когда непересекающиеся тракты автоматизированы, VID, сопоставленный с каждым из этих непересекающихся трактов может быть присвоен DP ECT-алгоритмом, тогда как в случае статических непересекающихся трактов, эти VID соотносятся с SE ECT-алгоритмом.
[0082] Подобным образом, если два максимально избыточных дерева вычисляются единственным PCE, то тогда два полностью определенных дерева могут быть вычислены и описаны в соответствующих EP TLV. В некоторых вариантах осуществления, один и тот же TLV может быть использован для определения трактов и деревьев, то есть, EP sub-TLV может быть использован также и для деревьев. Каждое максимально избыточное статическое дерево может, таким образом, быть установлено независимо от другого максимально избыточного дерева. Когда единственный PCE участвует в вычислении максимально избыточных деревьев, оба дерева могут быть полностью определены. В одном варианте осуществления, различные VID, соответствующие каждому из этих деревьев (то есть, первичный VID и резервный VID), могут быть присвоены EP ECT-алгоритму, когда эти деревья являются статическими, тогда как VID каждого EP TLV может быть сопоставлен с RT ECT-алгоритмом, когда эти деревья являются автоматизированными.
[0083] PCE, вычисливший эти EP TLV, в том числе любые sub-TLV, передает их IS-IS, который лавинно передает их через сетевой домен. Как избыточные тракты, так и деревья независимо устанавливаются, вследствие чего IS-IS не знает и не должен управлять какими-либо отношениями между этими трактами или деревьями.
[0084] В одном варианте осуществления, тракты или деревья, сопоставленные с SE ECT-алгоритмом, являются статическими, в том смысле, что ни кто другой не может обновить их, кроме данного единственного PCE. В случае изменения топологии, задачей этого единственного PCE является обновить эти статические избыточные тракты или деревья, если необходимо. Единственный PCE вычисляет новый тракт или дерево и собирает новый EP TLV, чтобы передать его IS-IS для установки. Тракты или деревья, которые принадлежат к EP ECT-алгоритму, могут быть удалены из-за старения в связи с обычным IS-IS LSP старением, если только не будут обновлены PCE.
[0085] Восстановление тракта
[0086] Маршрутизация на основе ограничений может также быть применена для определения и поддержки максимально непересекающихся трактов. Несколько PCE могут быть задействованы в вычислении максимально непересекающихся трактов, когда используется маршрутизация с ограничениями. В одном варианте осуществления, каждый мост в сетевом домене может иметь отдельный PCE для отечения на основе ограничений для CSPF. Однако DP ECT-алгоритм способен определять два максимально непересекающихся тракта, чтобы принимать во внимание дополнительные ограничения сверх того, чтобы быть максимально непересекающимися. Более того, DP ECT-алгоритм поддерживает осторожное восстановление тракта после изменения топологии, если это необходимо, как описано в настоящем документе ниже.
[0087] В случае, когда максимально непересекающиеся тракты должны быть определены так, чтобы иметь автоматическое восстановление, то тогда Base VID каждого максимально непересекающегося тракта назначают DP ECT-алгоритм. В одном примере, Base VID может быть назначен в SPB Base VID sub-TLV. Этот Base VID может быть VID, используемым для первичного тракта. Резервный VID сопоставляют с Base VID и DP ECT-алгоритмом. К примеру, это может быть сделано в одной или нескольких записях VID SPB instance sub-TLV. В этом примере, резервный VID находится в поле SPVID записи VLAN ID, однако, этот резервный ID не является SPVID. Если используется несколько записей VID, то тогда различные записи VID используют для сопоставления первичного VID и резервного VID с Based VID, в этом случае первичный VID может отличаться от Base VID. Первичный VID может также называться голубым VID, тогда как резервный VID может быть назван красным VID. Как первичный VID так и резервный VID выделяются одному и тому же MSTID, который может быть, к примеру, SPBM, SPBV, или TE MSTID.
[0088] Установка этих двух максимально непересекающихся трактов начинается лавинной передачей EP TLV (на этапе 905), который, к примеру, может включать в себя EP sub-TLV. Base VID в поле VLAN tag может включать в себя значение, обозначающее DP ECT-алгоритм. Резервный VID не может быть передан в этом EP sub-TLV. Сопоставление Base VID является ясным из SPB instance sub-TLV, как описано выше. Два максимально непересекающихся тракта определяют для свободных (неопределенных) звеньев EP, поскольку строгие звенья не имеют гибкости. Этот явный тракт может быть совмещен с ограничениями, чтобы повлиять на эти максимально непересекающиеся тракты.
[0089] В LCE, принявшем запрос для этого явного тракта благодаря EP-sub-TLV, свободное звено (то есть, неопределенный канал/каналы связи в тракте) может быть вычислено, как показано на Фигуре 12. Фигура 12 является блок-схемой для одного варианта осуществления расчета трактов, используя DP ECT алгоритм. Процесс запускается сначала в ответ на прием EP TLV через протокол маршрутизации на основе состояния канала связи, такой как IS-IS, где EP TLV устанавливает, по меньшей мере, частичный тракт, на этапе 1201, и где этот частичный тракт может быть только конечными точками этого тракта. Сообщение IS-IS может включать в себя ограничения, которые затрагивают любое свободное звено в этом тракте, определенном в EP sub-TLV. Сетевой граф (то есть, представление топологии сети пакетной коммутации), поддерживаемый принимающим узлом, затем отсекают согласно этим ограничениям, чтобы удалить каналы связи, которые не удовлетворяют этим ограничениям на этапе 1203. В некоторых случаях это может вызвать расщепление в сетевом графе. Проверка может быть сделана, произошло ли расщепление в сетевом графе, и если расщепление есть, это расщепление может быть проверено, чтобы определить остался ли какой-либо тракт между этим узлом и узлом назначения, указанным EP TLV на этапе 1205. Когда ограничения расщепляют этот граф, то тогда может не существовать никакого тракта, и процесс завершается на этапе 1207.
[0090] Когда сетевой граф не расщеплен (или это расщепление не исключает маршрут между этими узлами), то тогда алгоритм предпочтения кратчайшего пути (Дейкстры) исполняют, чтобы определить кратчайший тракт и свободные звенья указанного тракта определяют, чтобы завершить этот тракт, который становится первичным максимально непересекающимся трактом на этапе 1209. Соответствующие элементы пересылки затем обновляют в базе данных пересылки, чтобы установить этот первичный тракт на этапе 1211. Система маршрутизации, реализованная в сети передачи данных, может требовать, чтобы все узлы сгенерировали один и тот же результат при вычислении свободного звена, чтобы достичь подлинного максимального разнесения трактов. В некоторых вариантах осуществления, таких как IP системы маршрутизации, сеть передачи данных не обладает таким свойством, и здесь может быть возможность общих компонентов между первичным и резервным трактами в свободном звене.
[0091] Вычисление резервного тракта затем продолжается удалением каналов связи первичного тракта из сетевого графа или отклонением каналов связи на этапе 1213. Удаление каналов связи может быть использовано, когда это удаление не расщепляет этот сетевой граф. Любая корректировка метрик канала связи может также быть использована, чтобы отклонить алгоритм нахождения тракта прочь от выбора каналов связи первичного тракта. Резервный тракт затем вычисляют, используя алгоритм предпочтения кратчайшего пути (Дейкстры), чтобы найти резервный тракт на этапе 1215, которому затем назначают резервный VID на этапе 1217. Как правило, первичный тракт и резервный тракт имеют различные VID, однако, в некоторых вариантах осуществления является возможным использовать один и тот же VID для первичного тракта и резервного тракта. Информация о пересылке для этого резервного тракта затем добавляют в базу данных информации о пересылки узла на этапе 1219. Этот резервный тракт выбирают, чтобы минимизировать общие точки отказов между первичными трактами и этим резервным трактом, этим снижая вероятность, что любой сбой приведет как резервный тракт, так и первичный тракт, к невозможности пересылать трафик данных целевому узлу. Отсечение сетевого графа во время этого процесса обеспечивает, что никакие каналы связи, используемые в рабочем тракте, не появятся в резервном тракте, поскольку эти отсеченные каналы связи не являются частью сетевого графа, когда вычисляется резерв. В некоторых сценариях, отсечение может привести к невозможности произвести максимально несходного тракта. В других вариантах осуществления, отклонение используют, чтобы выбрать резервный тракт, склоняя выбор против использования каналов связи первичного тракта, но, не запрещая их возможное использование. В случае, когда существует только один доступный канал связи, чтобы достичь данного места назначения, этот канал связи будет выбран как для первичного тракта, так и для резервного тракта, а остальные каналы связи будут разными. Для сравнения, если используется отсечение, то тогда резервный тракт может быть не найден при этих условиях.
[0092] Фигура 13 является блок-схемой одного варианта осуществления процесса осторожного восстановления. Процесс восстановления может быть начат в ответ на изменения в топологии, которые могут вызвать переключение на резерв или иначе затронуть максимально непересекающиеся тракты, этап 1301. Может быть сделана проверка, стала ли стабильной сеть передачи данных, к примеру, определив, что достаточное время прошло для схождения сетевого графа, этап 1307. Тракты со свободными звеньями обновляют осторожно, если они затронуты этим изменением топологии. Ни один из этих непересекающихся трактов не обновляется немедленно. После того как сеть передачи данных стала стабильной, один из затронутых трактов может быть обновлен за раз (то есть, один из первичных или резервных трактов).
[0093] Тракты могут быть обновлены в любом порядке, и в зависимости от того, какой из них был затронут. Первый затронутый тракт может быть выбран для обновления, то есть, восстановления, на этапе 1309. Затем, если оба были затронуты, второй затронутый тракт может быть выбран для обновления, то есть, восстановления, на этапе 1311. Если только резервный тракт прервался, то тогда этапы 1213-1219 могут быть повторены снова, чтобы обновить этот резервный тракт. Примененная схема защиты может, затем, использовать этот резервный тракт снова, если нужно, к примеру, в случае 1+1 защиты.
[0094] Если только первичный тракт прервался, то тогда в это время только резервный тракт используется примененной схемой защиты. Первичный тракт тогда обновляют согласно этапам 1203-1211. Никаких дальнейших этапов не выполняют, пока этот первичный тракт снова не будет продублирован. Схема защиты может затем вернуться к этому первичному тракту, а резервный тракт может быть обновлен согласно этапам 1213-1217.
[0095] В случае, когда оба тракта прервались, тогда все этапы 1203-1217 могут быть повторно выполнены, чтобы обновить первичный, а затем и резервный тракт, таким образом, снова включив схему защиты.
[0096] Восстановление деревьев
[0097] Вышеприведенные примеры для Фигур 12 и 13 были даны применительно к максимально непересекающимся трактам. Однако специалисты в данной области техники должны понимать, что этот процесс может также быть применен к максимально избыточным деревьям. Максимально избыточные деревья могут также быть вычислены распределено несколькими PCE. Два максимально избыточных дерева могут также быть вычислены для многоточечной защиты, например, в соответствии с требованиями MRT Lowpoint алгоритма, описанного в документе http://tools.ietf.org/html/draft-enyedi-rtgwg-mrt-frr-algorithm-02, который включен в настоящий документ посредством ссылки.
[0098] В одном примерном варианте осуществления, Если два максимально избыточных дерева генерируются для использования таким образом, что бы они были осторожно восстановлены после изменения топологии, Base VID назначается RT ECT-алгоритм. Base VID является первичным VID, используемым для первичного дерева. Резервный VID сопоставляется Base VID и RT ECT-алгоритму.
[0099] Подобно восстановлению непересекающихся трактов, упомянутому выше, избыточные деревья восстанавливают после того как сетевой граф стабилизировался, и только одно из деревьев восстанавливают за один раз. Если только резервное дерево является сломанным, то тогда только резервное дерево должно быть восстановлено, и трафик данных может использовать первичное дерево непрерывно. Если только первичное дерево является сломанным, то тогда весь трафик данных переключают на резервное дерево, пока первичное дерево не будет восстановлено. Если оба, первичное и резервное деревья затронуты, то тогда резервное дерево восстанавливают только после того как первичное дерево будет восстановлено.
[00100] Расширения процесса восстановления
[00101] В некоторых вариантах осуществления, процесс восстановления для трактов и деревьев, описанный относительно Фигур 12 и 13 может быть совмещен с любой схемой защиты или похожим процессом. Специалисты в данной области техники должны понимать, что принципы и структуры, описанные применительно к процессу восстановления тракта и дерева, могут быть адаптированы к другим схемам защиты и будут меняться соответственно. Это может включать в себя введение других ECT-алгоритмов, которые могут быть указаны в SPB Base VLAN-Identifiers sub-TLV для VID и будут добавлены к вышеописанной таблице (то есть, Таблице I) как дополнительные варианты ECT-алгоритма.
[00102] В одном варианте осуществления, вариантов для расширения процесса восстановления является указание, является ли этот процесс реверсивным или нереверсивным. В реверсивном процессе, который был описан выше в настоящем документе, трафик возвращается обратно на восстановленный тракт, однако некоторые могут предпочесть нереверсивный процесс, когда трафик не переносится из-за восстановления. К примеру, если было событие защиты для сбоя, то тогда трафик остается на защитном тракте/дереве вместо возвращения к первичному тракту, когда он будет восстановлен.
[00103] В некоторых вариантах осуществления, является возможным объединение процессов "Восстановление Тракта" и "Восстановление дерева", описанных выше, с процессом свободных от повторов альтернатив (LFA), которое будет вводить дополнительные варианты дополнительных ECT-алгоритмом, которые могут поддерживаться для определения LFA.
В некоторых вариантах осуществления, является возможным объединение процессов "Восстановление Тракта" и "Восстановление дерева" основанных на первичном и резервном деревьях, описанных выше, с кратчайшими путями.
[00104] Фигура 14A иллюстрирует связанность между сетевыми устройствами (ND) в примерной сети передачи данных, наряду с тремя примерными реализациями этих ND, в соответствии с некоторыми вариантами осуществления данного изобретения. Фигура 14A показывает ND 1400A-H, и их связанность линиями между A-B, B-C, C-D, D-E, E-F, F-G, и A-G, а также между H и каждым их A, C, D, и G. Эти ND являются физическими устройствами, и связанность между этими ND может быть беспроводной или проводной (часто называемой каналом связи). Дополнительная линия, вытягивающаяся из ND 1400A, E, и F иллюстрирует, что эти ND действуют как входные и выходные точки для этой сети передачи данных (и таким образом, эти ND иногда называют граничными ND; тогда как другие ND могут быть названы центральными ND).
[00105] Два из этих примерных реализаций ND на Фигуре 14A являются: 1) специализированным сетевым устройством 1402, которое использует заказные специализированные интегральные микросхемы (ASIC) и закрытую операционную систему (OS); и 2) сетевое устройство 1404 общего назначения, которое использует серийные коммерческие (COTS) процессоры и стандартную OS.
[00106] Специализированное сетевое устройство 1402 включает в себя сетевое оборудование 1410, содержащее ресурс(ы) 1412 вычисления (который обычно включает в себя набор из одного или нескольких процессоров), ресурс(ы) 1414 пересылки (который обычно включает в себя одну или несколько ASIC и/или сетевых процессоров), и физические сетевые интерфейсы (NI) 1416 (иногда называемые физическими портами), наряду с энергонезависимым машиночитаемым накопителем 1418, хранящим в себе сетевое программное обеспечение 1420. Физический NI является аппаратным обеспечением в ND, через который сетевое соединение (например, беспроводным способом посредством контроллера беспроводного сетевого интерфейса (WNIC) или посредством подключения кабеля к физическому порту, соединенному с контроллером сетевого интерфейса (NIC)) совершается, как те, что показаны связностями между ND 1400A-H. Во время работы, сетевое программное обеспечение 1420 может быть исполнено сетевым оборудованием 1410, чтобы создать набор из одной или нескольких исполняемых копий 1422 сетевого программного обеспечения. Каждая из исполняемых копий 1422 сетевого программного обеспечения, и та часть сетевого оборудования 1410, которая исполняет эту исполняемую копию сетевого программного обеспечения (будь это аппаратное обеспечение, выделенное этой исполняемой копии сетевого программного обеспечения и/или временные кванты аппаратного обеспечения, совместно используемого этой исполняемой копией сетевого программного обеспечения с другими из исполняемых копий 1422 сетевого программного обеспечения), образует отдельный виртуальный сетевой элемент 1430A-R. Каждый из этих виртуальных сетевых элементов (VNE) 1430A-R включает в себя модуль 1432A-R управления связью и конфигурации (иногда называемый модулем локального управления или модулем управления связью) и таблицу(-ы) 1434A-R пересылки, в результате чего данный виртуальный сетевой элемент (например, 1430A) включает в себя модуль (например, 1432A) управления связью и конфигурации, набор из одной или нескольких таблиц (например, 1434A) пересылки, и ту часть сетевого оборудования 1410, которое исполняет этот виртуальный сетевой элемент (например, 1430A). Модуль 1433A PCE реализует процессы, описанные выше в настоящем документе, включая в себя вычисление восстановления первичного и резервного трактов, в то время как LCE 1433B реализует функции, описанные в отношении к Фигурам 12 и 13 как часть модуля 1432A управления связью и конфигурации или схожий аспект сетевого программного обеспечения, который может быть загружен и сохранен в энергонезависимом машиночитаемом носителе 1418 или похожем месте.
[00107] Специализированное сетевое устройство 1402 часто физически и/или логически рассматривается как включающее в себя: 1) плоскость управления 1424 ND (иногда называемую плоскостью управления) содержащую ресурс(ы) 1412 вычисления, который исполняет модуль(-и) 1432A-R управления связью и конфигурации; и 2) плоскость пересылки 1426 ND (иногда называемую плоскостью пересылки, плоскостью данных, или медиа-плоскостью) содержащую ресурс(ы) 1414 пересылки, которая использует таблицу(-ы) 1434A-R пересылки и физические NI 1416. В качестве примера, когда ND является маршрутизатором (или реализует функциональную возможность маршрутизации), плоскость управления 1424 ND (ресурс(ы) 1412 вычисления, исполняющие модуль(-и) 1432A-R управления связью и конфигурации) обычно отвечает за участие в управлении тем, как данные (например, пакеты) следует маршрутизировать (например, следующее звено для данных и исходящий физический NI для этих данных) и сохраняет эту информацию о маршрутизации в таблице(-ах) 1434A-R пересылки, плоскость пересылки 1426 ND отвечает за прием этих данных на Физических NI 1416 и пересылки этих данных через надлежащий один из физических NI 1416 на основании таблиц(ы) 1434A-R пересылки.
[00108] Фигура 14B иллюстрирует примерный способ реализации специализированного сетевого устройства 1402 в соответствии с некоторыми вариантами осуществления данного изобретения. Фигура 14B показывает специализированное сетевое устройство, включающее в себя карты 1438 (обычно выполненные с возможностью подключения в "горячем" режиме). В то время как в некоторых вариантах осуществления карты 1438 бывают двух видов (одна или несколько, которые работают в качестве плоскости 1426 пересылки ND (иногда называемыми сетевыми картами), и одна или несколько, которые работают, чтобы реализовать плоскость управления 1424 ND (иногда называемыми управляющими картами)), альтернативные варианты осуществления могут сочетать функциональные свойства в единой карте и/или включать в себя дополнительные виды карт (например, один дополнительный вид карт называется сервисной картой, ресурсной картой, или многофункциональной картой). Сервисная карта может обеспечивать специализированную обработку (например, услуги с Уровня 4 по Уровень 7 (например, межсетевую защиту, защиту протокола Интернет (IPsec) (RFC 4301 и 4309), уровень защищенных сокетов (SSL)/защиту транспортного уровня (TLS), Система обнаружения вторжений (IDS), "точка-точка" (P2P), граничный контроллер сеансов голосовой связи через IP (VoIP), узел поддержки (GGSN) мобильных беспроводных шлюзов (шлюзов пакетной радиосвязи общего пользования (GPRS)), шлюз развитого ядра пакетной коммутации (EPC))). В качестве примера, сервисная карта может быть использована, чтобы завершить туннель IPsec и исполнить сопутствующие алгоритмы аутентификации и шифрования. Эти карты соединяются вместе одним или несколькими механизмами взаимосвязи, показанными как соединительная панель 1436 (например, первое полно-ячеистое соединение сетевых карт и второе полно-ячеистое соединение всех остальных карт).
[00109] Возвращаясь к Фигуре 14A, сетевое устройство 1404 общего назначения включает в себя аппаратное обеспечение 1440, содержащее набор из одного или нескольких процессоров 1442 (который часто являются COTS процессорами) и контроллером(-ами) 1444 сетевого интерфейса (NIC; также именуемыми картами сетевого интерфейса) (которые включают в себя физические NI 1446), наряду с энергонезависимым машиночитаемым носителем 1448 данных, имеющим хранящееся в нем программное обеспечение 1450. Во время работы, процессор(ы) 1442 исполняет программное обеспечение 1450, чтобы создать гипервизор 1454 (иногда именуемый монитором виртуальных машин (VMM)) и одну или несколько виртуальных машин 1462A-R, которые выполняются гипервизором 1454, которые совместно именуются запущенными копиями 1452 программного обеспечения. Виртуальная машина является программной реализацией физической машины, которая выполняет программы, как если бы они были исполнены на физической, не виртуальной машине; и приложения обычно не знают, что они запущены на виртуальной машине, в отличие от запуска на "чистом" центральном электронном устройстве, в то время как некоторые системы обеспечивают паравиртуализацию, которая позволяет операционной системе или приложению быть в курсе о наличии виртуализации в целях оптимизации. Каждая из виртуальных машин 1462A-R, и так часть аппаратного обеспечения 1440, которая исполняет эту виртуальную машину (будь это аппаратное обеспечение, выделенное этой исполняемой копии сетевого программного обеспечения и/или временные кванты аппаратного обеспечения, совместно используемого этой виртуальной машиной с другими из виртуальных машин 1462A-R) образуют отдельный виртуальный сетевой элемент(ы) 1460A-R. В одном варианте осуществления, виртуальные машины 1432A-R могут исполнять описанный модуль 1463A PCE, модуль 1463B LCE и соответствующее программное обеспечение, описанное выше в настоящем документе.
[00110] Виртуальный сетевой элемент(ы) 1460A-R выполняют схожие функциональные возможности, с виртуальным сетевым элементом(-ами) 1430A-R. Например, гипервизор 1454 может представлять виртуальную операционную платформу, которая выступает подобно сетевому оборудованию 1410 для виртуальной машины 1462A, и виртуальная машина 1462A может быть использована, чтобы реализовать функциональные возможности, схожие с модулем(-ями) 1432A управления связью и конфигурации и таблицей(-ами) 1434A пересылки (эта виртуализация аппаратного оборудования 1440 иногда называется виртуализацией сетевых функций (NFV)). Таким образом, NFV может быть использована для объединения многих видов сетевого оборудования в высокообъемное серверное оборудование промышленного стандарта, физические коммутаторы, и физические хранилища данных, которые могут быть расположены в центрах обработки и хранения данных, ND, и абонентском оконечном оборудовании (CPE). Однако разные варианты осуществления данного изобретения могут реализовать одну или несколько из виртуальных машин 1462A-R по-другому. К примеру, в то время как варианты осуществления данного изобретения проиллюстрированы так, что каждая виртуальная машина 1462A-R соответствует одному VNE 1460A-R, альтернативные варианты осуществления могут реализовать это соответствие на более тонком уровне детализации (например, виртуальные машины сетевых карт виртуализуют сетевые карты, виртуальная машина управляющих карт виртуализует управляющие карты, и так далее); следует понимать, что технологии, описанные в настоящем документе в отношении соответствия виртуальных машин с VNE, также применимы к вариантам осуществления, где использован подобный более высокий уровень детализации.
[00111] В некоторых вариантах осуществления, гипервизор 1454 включает в себя виртуальный коммутатор, который обеспечивает услуги пересылки, схожие с физическим Ethernet-коммутатором. В частности, этот виртуальный коммутатор пересылает трафик между виртуальными машинами и NIC 1444, а также, в некоторых случаях, между виртуальными машинами 1462A-R; кроме того, этот виртуальный коммутатор может принудительно установить изоляцию между VNE 1460A-R, которым политикой не разрешено поддерживать связь друг с другом (например, обеспечивая виртуальные локальные вычислительные сети (VLAN)).
[00112] Третье примерная реализация ND в Фигуре 14A является гибридным сетевым устройством 1406, которое включает в себя как заказные ASIC/закрытую OS, так и COTS процессоры/стандартную OS в одном ND или одной карте в ND. В некоторых вариантах осуществления такого гибридного сетевого устройства, платформа VM (то есть, VM, которая реализует функциональные возможности специализированного сетевого устройства 1402) может обеспечивать паравиртуализацию для сетевого оборудования, имеющегося в этом гибридном сетевом устройстве 1406.
[00113] Независимо от вышеупомянутых примерных реализаций ND, когда только один из нескольких VNE реализованных ND рассматривается (например, только один из VNE является частью данной виртуальной сети) или когда только единственный VNE является реализованным ND, укороченный термин "сетевой элемент" (NE) иногда используется для обозначения этого VNE. Также во всех вышеприведенных примерных реализациях, каждый из VNE (например, VNE 1430A-R, VNE 1460A-R, и те, что в гибридном сетевом устройстве 1406) принимают данные на физических NI (например, 1416, 1446) и пересылают эти данные через один из соответствующих физических NI (например, 1416, 1446). К примеру, VNE, реализующий функциональные возможности IP-маршрутизатора, пересылает IP-пакеты на основании некоторой информации IP-заголовка в этом IP-пакете; где информация IP-заголовка включает в себя исходный IP-адрес, IP-адрес пункта назначения, исходный порт, порт пункта назначения (где "исходный порт" и "порт пункта назначения" относятся в настоящем документе к портам протокола, в отличие от физических портов ND), транспортный протокол (например, протокол датаграмм пользователя (UDP) (RFC 768, 2460, 2675, 4113, и 5405), протокол управления передачей (TCP) (RFC 793 и 1180), и коды (RFC 2474, 2475, 2597, 2983, 3086, 3140, 3246, 3247, 3260, 4594, 5865, 3289, 3290, и 3317) дифференцированных услуг (DSCP).
[00114] Фигура 14C иллюстрирует различные примерные способы, в которых VNE могут быть соединены в соответствии с некоторыми вариантами осуществления данного изобретения. Фигура 14C показывает VNE 1470A.1-1470A.P (и при желании, VNE 1470A.Q-1470A.R) реализованные в ND 1400A, и VNE 1470H.1 в ND 500H. На Фигуре 14C, VNE 1470A.1-P отделены друг от друга, в том смысле, что они могут принимать пакеты снаружи ND 1400A и пересылать пакеты наружу из ND 1400A; VNE 1470A.1 соединен с VNE 1470H.1, и таким образом, они обмениваются пакетами между своими соответствующими ND; VNE 1470A.2-1470A.3 могут, при желании, пересылать пакеты между собой, не пересылая их наружу ND 1400A; а VNE 1470A.P может, при желании, быть первым в цепочке VNE, которая включает в себя VNE 1470A.Q, за которым следует VNE 1470A.R (это иногда называют динамической цепочкой обслуживания, где каждый из VNE в серии VNE, обеспечивает разную услугу- например, одну или несколько сетевых услуг уровня 4-7). В то время как Фигура 14C иллюстрирует различные примерные связи между этими VNE, альтернативные варианты осуществления могут поддерживать другие связи (например, больше/меньше VNE, больше/меньше динамических цепочек обслуживания, несколько разных динамических цепочек обслуживания с несколькими общими VNE и несколькими разными VNE).
[00115] Эти ND на Фигуре 14A, к примеру, могут составлять часть сети Интернет или частной сети передачи данных; а другие электронные устройства (не показаны; такие как оконечные устройства, в том числе, рабочие станции, портативные компьютеры, нетбуки, планшетные компьютеры, наладонные компьютеры, мобильные телефоны, смартфоны, мультимедийные телефоны, телефоны протокола передачи голоса по протоколу Интернет (VoIP), терминалы, переносные медиапроигрыватели, устройства GPS, носимые устройства, игровые системы, телевизионные приставки, бытовые электроприборы с возможностью доступа к сети Интернет) могут быть подключены к этой сети передачи данных (напрямую, или через другие сети передачи данных, такие как сети доступа) что бы осуществлять связь через эту сеть передачи данных (например, Интернет или виртуальные частные сети (VPN) наложенные сверху (например, туннелированные через) сети(ь) Интернет) друг с другом (напрямую или через серверы) и/или получать доступ к содержимому и/или услугам. Подобное содержимое и/или услуги обычно предоставляются одним или несколькими серверами (не показано) принадлежащими поставщику услуг/содержимого или одним или несколькими оконечными устройствами (не показано) участвующими пиринговой (P2P) услуге, и может включать в себя, к примеру, открытые веб-страницы (например, свободное содержимое, витрины, поисковые услуги), закрытые веб-страницы (например, страницы доступные по имени пользователя/паролю, предоставляющие услуги электронной почты), и/или корпоративные сети передачи данных через VPN. Так, например, оконечные устройства могут быть соединены (например, через абонентское оконечное оборудование, соединенное с сетью доступа (проводным или беспроводным способом)) с граничными ND, которые соединены (например, через один или несколько центральных ND) с другими граничными ND, которые соединены с электронными устройствами, выступающими в роли серверов. Однако, посредством виртуализации вычислений и хранения, одно или несколько из электронных устройств, работающих как ND на Фигуре 14A, могут также размещать один или несколько подобных серверов (например, в случае сетевого устройство 1404 общего назначения, одна или несколько из виртуальных машин 1462A-R, могут работать как серверы; то же самое может быть верным для гибридного сетевого устройства 1406; в случае со специализированным сетевым устройством 1402, один или несколько серверов могут также быть запущены на гипервизоре, исполняемом вычислительным(-и) ресурсом(-ами) 1412; в этом случае, эти серверы считаются совмещенными с VNE этого ND.
[00116] Виртуальная сеть является логической абстракцией физической сети передачи данных (как та, что показана на Фигуре 14A) которая предоставляет сетевые услуги (например, L2 и/или L3 услуги). Виртуальная сеть может быть реализована как наложенная сеть (иногда называемая наложением сетевой виртуализации), которая предоставляет сетевые услуги (например, услуги уровня 2 (L2, канальный уровень) и/или уровня 3 (L3, сетевой уровень)) поверх основной сети (например, L3 сеть передачи данных, такая как сеть по протоколу Интернет (IP), которая использует туннели (например, общая инкапсуляция маршрутов (GRE), протокол туннелирования уровня 2 (L2TP), IPSec), чтобы создать наложенную сеть).
[00117] Грань сетевой виртуализации (NVE) находится на грани основной сети и участвует в реализации виртуализации сети; обращенная к сети сторона NVE использует основную сеть, чтобы туннелировать кадры к и от других NVE; а направленная наружу сторона NVE посылает и принимает данные от систем, находящихся за пределами этой сети передачи данных. Экземпляр виртуальной сети (VNI) является отдельным экземпляром виртуальной сети на NVE (например, NE/VNE на ND, часть NE/VNE на ND, когда этот NE/VNE разбит на несколько VNE посредством эмуляции); один или несколько VNI могут быть созданы на NVE (например, как разные VNE на ND). Виртуальная точка доступа (VAP) является логической точкой подсоединения на NVE для подключения внешних систем к виртуальной сети; VAP может быть физическими или виртуальными портами, указанными посредством идентификаторов логических интерфейсов (например, VLAN ID).
[00118] Примеры сетевых услуг включают в себя: 1) услугу эмуляции Ethernet LAN (многоточечную услугу на основе Ethernet, схожую с многопротокольной коммутацией по меткам (MPLS) Рабочей группа инженеров Internet (IETF) или услуги Ethernet VPN (EVPN)) в которой внешние системы взаимосвязаны по сети передачи данных окружением LAN через основную сеть (например, NVE предоставляет отдельные L2 VNI (экземпляры виртуальных коммутаторов) для разных подобных виртуальный сетей, и L3 (например, IP/MPLS) туннельную инкапсуляцию через основную сеть); и 2) a виртуализированную услугу IP пересылки (схожую с IETF IP VPN (например, протокол граничных шлюзов (BGP)/MPLS IPVPN RFC 4364) из перспективного определения услуг) в которой внешние системы взаимосвязаны по сети передачи данных L3 окружением через основную сеть (например, NVE предоставляет отдельные L3 VNI (экземпляры пересылки и маршрутизации) для разных подобных виртуальных сетей, и L3 (например, IP/MPLS) туннельную инкапсуляцию через основную сеть)). Сетевые услуги могут также включать в себя функции качества обслуживания (например, маркировку классификации трафика, планирование и адаптацию трафика), функции безопасности (например, фильтры для защиты абонентского оборудования от атак, исходящих из сети передачи данных, чтобы избежать искаженных объявлений о маршрутизации), и функции управления (например, полное обнаружение и обработка).
[00119] Фиг. 14D иллюстрирует сеть передачи данных с единственным сетевым элементом на каждом из ND Фигуры 14A, в пределах которой прямой подход противопоставляет традиционный распределенный подход (повсеместно используемый традиционными маршрутизаторами) с централизованным подходом для поддержки и информации о достижимости и пересылке (также называемым сетевым управлением), в соответствии с некоторыми вариантами осуществления данного изобретения. В частности, Фигура 14D показывает сетевые элементы (NE) 1470A-H с той же самой возможностью установления связи, что и ND 1400A-H Фигуры 14A.
[00120] Фигура 14D иллюстрирует, что распределенный подход 1472 распределяет обязанность по генерированию информации о достижимости и пересылке среди NE 1470A-H; другими словами, процесс обнаружение соседей и обнаружения топологии является распределенным.
[00121] К примеру, когда используется специализированное сетевое устройство 1402, модуль(и) 1432A-R управления связью и конфигурации плоскости управления 1424 ND обычно включает в себя модуль информации о достижимости и пересылке, чтобы реализовать один или несколько протоколов маршрутизации (например, протокол внешней маршрутизации, такой как протокол граничных шлюзов (BGP) (RFC 4271), протокол(ы) внутреннего шлюза (IGP) (например, Открытый протокол предпочтения кратчайшего пути (OSPF) (RFC 2328 и 5340), "промежуточная система-промежуточная система" (IS-IS) (RFC 1142), протокол обмена маршрутной информацией (RIP) (версия 1 RFC 1058, версия 2 RFC 2453, и следующее поколение RFC 2080)), протокол распределения меток (LDP) (RFC 5036), протокол резервирования ресурсов (RSVP) (RFC 2205, 2210, 2211, 2212, наряду с RSVP-Traffic Engineering (TE): Extensions to RSVP for LSP Tunnels RFC 3209, сигнализирование обобщенной многопротокольная коммутация по меткам (GMPLS) RSVP-TE RFC 3473, RFC 3936, 4495, и 4558)) который поддерживает связь с другими NE, чтобы обмениваться маршрутами, и затем выбирать эти маршруты на основании одной или нескольких метрик маршрутизации. Таким образом, NE 570A-H (например, вычислительный(-ые) ресурс(-ы) 1412 исполняющие модуль(-и) 1432A-R управления связью и конфигурации) осуществляют свою обязанность в участии управления тем, как данные (например, пакеты) следует маршрутизировать (например, следующее звено для данных, и исходящий физический NI для этих данных) посредством распределенного определения доступности в пределах сети передачи данных, и вычисления ей соответствующей информации о пересылке. Маршруты и смежности сохраняют в одной или нескольких структурах маршрутизации (например, базе маршрутной информации (RIB), базе данных о метках (LIB), одной или нескольких структурах смежности) в плоскости управления 1424 ND. Плоскость управления 1424 ND программирует плоскость 1426 передачи ND информацией (например, информацией о маршруте и смежностях) основанной на структуре(-ах) маршрутизации. К примеру, плоскость управления 1424 ND программирует информацию о маршруте и смежностях в одну или несколько таблиц 1434A-R маршрутизации (например, базу данных о переадресации (FIB), базу данных о переадресации меток (LFIB), и одну или несколько структур смежностей) в плане 1426 пересылки ND. Для пересылки уровня 2, ND может хранить одну или несколько таблиц мостовых соединений, которые используются, чтобы пересылать данные на основании информации уровня 2 в этих данных. В то время как в вышеприведенном примере используется специализированное сетевое устройство 1402, тот же самый распределенный подход 1472 может быть реализован в сетевом устройстве 1404 общего назначения и гибридном сетевом устройстве 1406.
[00122] Фигура 14D иллюстрирует, что централизованный подход 1474 (который в некоторых вариантах осуществления может быть решением программно-конфигурируемой сети (SDN)), разделяющий систему, который принимает решения о том, где трафик поступает от лежащих ниже систем, чтобы переслать трафик выбранному адресату. Показанный централизованный подход 1474 имеет обязанность по генерированию информации о доступности и пересылке в плоскости 1476 централизованного управления (иногда называемой модулем управления SDN, контроллером, сетевым контроллером, контроллером OpenFlow, контроллером SDN, узлом плоскости управления, командованием виртуализацией сети, или элементом административного управления), и таким образом, процесс обнаружения соседей и обнаружения топологии является централизованным. Плоскость 1476 централизованного управления имеет южный интерфейс 1482 c плоскостью 1480 передачи данных (иногда называемой уровнем инфраструктуры, плоскостью сетевой передачи, или плоскостью передачи (которую не следует путать с плоскостью передачи ND)), которая включает в себя NE 1470A-H (иногда называемые коммутаторами, элементами пересылки, элементами плоскости передачи данных, или узлами). Плоскость 1476 централизованного управления включает в себя сетевой контроллер 1478, который включает в себя модуль 1479 централизованной информации о достижимости и пересылке, который определяет достижимость в пределах сети передачи данных и распределяет информацию о пересылке по NE 570A-H плоскости 1480 данных через южный интерфейс 1482 (который может использовать протокол OpenFlow). Таким образом, сетевое управление является централизованным в плоскости 1476 централизованного управления, исполняемой на электронных устройствах, которые обычно являются отдельными от ND. В одном варианте осуществления, модуль 1479 централизованной информации о достижимости и пересылке может включать в себя модуль 1481 PCE и соответствующее программное обеспечение, как описано выше в настоящем документе.
[00123] К примеру, когда специализированное сетевое устройство 1402 используется в плоскости 1480 передачи данных, каждый из модулей 1432A-R управления связью и конфигурации плоскости управления 1424 ND обычно включает в себя управляющую среду, которая образует VNE сторону южного интерфейса 1482. В этом случае, плоскость управления 1424 ND (вычислительный ресурс (ы) 1412, исполняющие модуль(и) 1432A-R управления связью и конфигурации) выполняет свои обязанности по участию в том, как данные (например, пакеты) следует маршрутизировать (например, следующее звено для данных и исходящий физический NI для этих данных) через эту управляющую среду, осуществляя связь с плоскостью 1476 централизованного управления, чтобы принимать информацию о пересылке (и, в некоторых случаях, информацию о достижимости) от модуля 1479 централизованной информации о достижимости и пересылке (следует понимать, что в некоторых вариантах осуществления данного изобретения, модуль(и) 1432A-R управления связью и конфигурации, в дополнении к осуществлению связи с плоскостью 1476 централизованного управления, может также играть некоторую роль в определении достижимости и/или вычислении информации о пересылке - хоте и меньшую, чем в случае распределенного подхода; подобные варианты осуществления обычно рассматриваются как попадающие под централизованный подход 1474, но могут также быть рассмотрены как гибридный подход).
[00124] В то время как вышеприведенный пример использует специализированное сетевое устройство 1402, тот же самый централизованный подход 1474 может быть реализован с сетевым устройством 1404 общего назначения (например, каждый из VNE 1460A-R выполняет свои обязанности по управлению тем, как данные (например, пакеты) следует маршрутизировать (например, следующее звено для данных и исходящий физический NI для этих данных) осуществляя связь с плоскостью 1476 централизованного управления, чтобы принимать информацию о пересылке (и, в некоторых случаях, информацию о достижимости) от модуля 1479 централизованной информации о достижимости и пересылке; следует понимать, что в некоторых вариантах осуществления данного изобретения, VNE 1460A-R, помимо осуществления связи с плоскостью 1476 централизованного управления, могут также играть некоторую роль в определении достижимости и/или вычислении информации о пересылке - хоте и меньшую, чем в случае распределенного подхода), и гибридным сетевым устройством 1406. Фактически, использование технологии SDN может улучшить технологию NFV, обычно используемую в реализациях сетевого устройства 1404 общего назначения или гибридного сетевого устройства 1406, поскольку NFV способна поддерживать SDN предоставляя инфраструктуру, на которой программное обеспечение SDN может быть запущено, и NFV и SDN оба нацелены на использование стандартного серверного оборудования и физических коммутаторов.
[00125] Фигура 14D также показывает, что плоскость 1476 централизованного управления имеет северный интерфейс 1484 с прикладным уровнем 1486, в котором находится приложение(-я) 1488. Плоскость 1476 централизованного управления имеет способность создавать виртуальные сети 1492 (иногда называемые логической плоскостью передачи, сетевыми услугами, или наложенными сетями (где NE 1470A-H плоскости 1480 передачи данных являются основной сетью)) для приложения(-ий) 1488. Таким образом, плоскость 1476 централизованного управления поддерживает общее представление обо всех ND и настроенных NE/VNE, и она эффективно сопоставляет эти виртуальные сети лежащим в основе ND (включая в себя поддержку этих сопоставлений как физических сетевых изменений или посредством аппаратного (ND, канал связи, или компонент ND) сбоя, или добавления, или удаления).
[00126] В то время как Фигура 14D показывает распределенный подход 1472 отдельно от централизованного подхода 1474, работа по управлению сетью может быть распределена по-другому, или оба объединены в некоторых вариантах осуществления данного изобретения. К примеру: 1) варианты осуществления могут в целом использовать централизованный подход (SDN) 1474, но делегировать некоторые функции NE (например, распределенный подход может быть использован, чтобы реализовать одно или несколько из диагностики неисправностей, мониторинга производительности, переключения на резерв, и элементарных процедур для обнаружения соседей и/или топологии); или 2) варианты осуществления данного изобретения могут выполнять обнаружение соседей и обнаружение топологии, как через плоскость централизованного управления, так и через распределенные протоколы, а результаты сравнивают, чтобы установить исключения, где они не совпадают. Такие варианты осуществления обычно рассматриваются, как подпадающие под централизованный подход 1474, но также могут быть рассмотрены как гибридный подход.
[00127] В одном примерном гибридном подходе, имеется как централизованное, так и распределенное управление в сети передачи данных. Это является гибридным подходом в том смысле, что централизованные принципы SDN реализуются модулем 1481 PCE, в то время как поддерживается распределенный протокол, а именно IS-IS. Таким образом, имеются компоненты управления как в модуле 1481 PCE на контроллере, так и распределенные по всей сети передачи данных на модулях LCE в узлах сетевых устройств. Другими словами, этот процесс работает с централизованным управлением модуля 1481 PCE на контроллере SDN. Кроме того, имеется распределенное управление на узлах, которым надлежит запускать IS-IS и обработчик локальных вычислений. В этом примерном варианте осуществления, сетевые узлы (то есть ND) не являются пассивными, то есть реализуют функции, описанные выше в настоящем документе, посредством LCE.
[00128] В то время как Фигура 14D иллюстрирует простой случай, когда каждый из ND 1400A-H реализует единственный NE 1470A-H, следует понимать, что подходы к сетевому управлению, описанные со ссылкой на Фигуру 14D, также работают для сетей передачи данных, в которых один или несколько из ND 1400A-H реализуют несколько VNE (например, VNE 1430A-R, VNE 1460A-R, которые в гибридном сетевом устройстве 1406). В качестве альтернативы или в дополнение, сетевой контроллер 1478 может также эмулировать реализацию нескольких VNE в одном ND. В частности, вместо (или наряду с) реализации нескольких VNE в одном ND, сетевой контроллер 1478 может представить реализацию VNE/NE в одном ND как несколько VNE в виртуальных сетях 1492 (все в одной и той же виртуальной сети(-ях) 1492, каждый в разных виртуальных сетях 1492, или некоторое сочетание). К примеру, сетевой контроллер 1478 может обязать ND реализовать одиночный VNE (a NE) в основной сети, а затем логически поделить ресурсы этого NE в плоскости 1476 централизованного управления, чтобы представить разные VNE в виртуальной сети(-ях) 1492 (где эти разные VNE в наложенных сетях разделяют ресурсы одиночной реализации VNE/NE на ND в основной сети).
[00129] С другой стороны, Фигуры 14E и 14F соответственно, иллюстрируют примерные суммирования NE и VNE, которые сетевой контроллер 1478 может представить как часть разных виртуальных сетей 1492. Фигура 14E иллюстрирует простой случай, в котором каждый из ND 1400A-H реализует единственный NE 1470A-H (см. Фигуру 14D), но плоскость 1476 централизованного управления суммирует несколько из этих NE в разных ND (NE 1470A-C и G-H) в (представленный) единый NE 1470I в одной из виртуальных сетей 1492 Фигуры 14D, в соответствии с некоторыми вариантами осуществления данного изобретения. Фигура 14E показывает, что в этой виртуальной сети, NE 1470I соединен с NE 1470D и 1470F, которые оба соединены с NE 1470E.
[00130] Фигура 14F иллюстрирует случай, когда несколько VNE (VNE 1470A.1 и VNE 1470H.1) реализованы на разных ND (ND 1400A и ND 1400H) и соединены друг с другом, и когда плоскость 1476 централизованного управления суммирует эти несколько VNE, так, чтобы они выглядели как единый VNE 1470T в одной из виртуальных сетей 1492 Фигуры 14D, в соответствии с некоторыми вариантами осуществления данного изобретения. Таким образом, суммирование NE или VNE может охватывать несколько ND.
[00131] В то время как некоторые варианты осуществления данного изобретения реализуют плоскость 1476 централизованного управления как единичный элемент (например, одиночный экземпляр программного обеспечения, запущенный на единственном электронном устройстве), альтернативные варианты осуществления могут разносить эти функциональные возможности по многим элементам в целях избыточности и/или расширяемости (например, несколько экземпляров программного обеспечения, запущенных на разных электронных устройствах).
[00132] Подобно реализациям сетевых устройств, электронное устройство(-а), исполняющее плоскость 1476 централизованного управления, и, следовательно сетевой контроллер 1478, включающий в себя модуль 1479 централизованной информации о достижимости и пересылке, может быть реализовано множеством различных путей (например, специализированным устройством, устройством общего назначения (например, COTS), или гибридным устройством). Эти электронные устройства могут подобным образом включать в себя вычислительный ресурс(ы), набор из одного или нескольких физических NIC, и не временный машиночитаемый носитель данных, хранящий в себе программное обеспечение плоскости централизованного управления. Так, например, Фигура 15 иллюстрирует устройство 1504 общего назначения плоскости управления, включающее в себя аппаратное обеспечение 1540, содержащее набор из одного или нескольких процессоров 1542 (которые часто являются COTS процессорами) и контроллер(ы) 1544 сетевого интерфейса (NIC; также известные как карты сетевого интерфейса) (которые включают в себя физические NI 1546), наряду с энергонезависимым машиночитаемым носителем 1548, хранящим в себе программное обеспечение 1550 плоскости централизованного управления.
[00133] В вариантах осуществления, которые используют виртуализацию вычислений, процессор(ы) 1542 обычно исполняют программное обеспечение, чтобы создать гипервизор 1554 (иногда называемый монитором виртуальной машины (VMM)) и одну или несколько виртуальных машин 1562A-R, которые запускаются гипервизором 1554; которые совокупно именуются исполняющимися копиями 1552 программного обеспечения. Виртуальная машина является программной реализацией физической машины, которая выполняет программы, как если бы они были исполнены на физической, не виртуальной машине; и приложения обычно не знают, что они запущены на виртуальной машине, в отличие от запуска на "чистом" центральном электронном устройстве, в то время как некоторые системы обеспечивают паравиртуализацию, которая позволяет операционной системе или приложению быть в курсе о наличии виртуализации в целях оптимизации. Более того, в вариантах осуществления, где используется виртуализация вычислений, во время работы программное обеспечение 1550 CCP (показанное как экземпляр 1576A программного обеспечения CCP) поверх операционной системы 1564A обычно исполняется в виртуальной машине 1562A. В вариантах осуществления, где виртуализация вычислений не используется, экземпляр 1576A программного обеспечения CCP поверх операционной системы 1564A исполняют на "чистом" устройстве 1504 общего назначения плоскости управления.
[00134] Операционная система 1564A обеспечивает базовую обработку, ввод/вывод (I/O), и сетевые возможности. В некоторых вариантах осуществления, экземпляр 1576A программного обеспечения CCP включает в себя экземпляр 1578 сетевого контроллера. Экземпляр 1578 сетевого контроллера включает в себя экземпляр 1579 модуля централизованной информации о достижимости и пересылке (который является промежуточным слоем, обеспечивающим связь сетевого контроллера 1578 с операционной системой 1564A и поддержание связи с различными NE), и прикладной уровень 1580 CCP (иногда называемый прикладным уровнем) над промежуточным уровнем (обеспечивающий управление, требуемое для различных сетевых операций, такое, как протоколы, сетевая ситуационная осведомленность, и пользовательские интерфейсы). В одном варианте осуществления, модуль 1579 централизованной информации о достижимости и пересылке может включать в себя модуль 1581 PCE, модуль 1582 LCE и соответствующее программное обеспечение, как описано выше в настоящем документе.
[00135] На более абстрактном уровне, этот прикладной уровень 1580 CCP в плоскости 1576 централизованного управления работает с виртуальным сетевым представлением(-ями) (логическим представлением(-ями) сети передачи данных), а промежуточный уровень обеспечивает преобразование от виртуальных сетей к физическому представлению.
[00136] Плоскость 1476 централизованного управления передает соответствующие сообщения плоскости 580 передачи данных на основании вычислений прикладного уровня 1580 CCP и преобразований промежуточного уровня для каждого потока. Поток может быть определен как набор пакетов, чьи заголовки совпадают с заданной битовой сигнатурой; в этом смысле, традиционная IP-передача также является передачей на основе потоков, где потоки определены IP-адресом пункта назначения, к примеру; однако в других реализациях, заданная битовая сигнатура, используемая для определения потока, может включать в себя больше полей (например, 10 или больше в заголовках пакетов). Разные ND/NE/VNE плоскости 1480 передачи данных могут принимать разные сообщения, и, таким образом, разную информацию о пересылке. Плоскость 1480 передачи данных обрабатывает эти сообщения и программирует надлежащую информацию о потоках и соответствующие действия в таблицы переадресации (иногда называемые таблицами потоков) подобающих NE/VNE, и затем, эти NE/VNE сопоставляют входящие пакеты потокам, представленным в этих таблицах пересылки, и пересылают пакеты, на основании совпадений в этих таблицах пересылки.
[00137] Стандарты, такие как OpenFlow, определяют протоколы, используемые для этих сообщений, наряду с моделью для обработки этих пакетов. Модель для обработки этих пакетов включает в себя разбор заголовка, классификацию пакета, и принятие решения о пересылке. Разбор заголовка описывает, как интерпретировать пакет на основании хорошо известного набора протоколов. Некоторые поля протоколов используются для построения структуры совпадения (или ключа), которая будет использована в классификации пакета (например, первое ключевое поле может быть адресом управления доступом к среде передачи (MAC) источника, а второе ключевое поле может быть MAC-адресом пункта назначения).
[00138] Классификация пакетов содержит исполнение поиска в запоминающем устройстве, чтобы классифицировать пакет, определив какой записи (также именуемой записью таблицы пересылки или записью потока) в таблицах пересылки лучше всего соответствует этот пакет на основании структуры совпадения или ключа записей таблиц пересылки. Является возможным, что многие потоки, представленные в записях таблицы пересылки, могут соответствовать/удовлетворять пакету; в этом случае система обычно выполненной с возможностью определять одну запись таблицы пересылки из многих, в соответствии с определенной схемой (например, выбирая первую запись таблицы пересылки, которая совпадает). Записи таблицы пересылки включают в себя как конкретный набор критериев совпадения (набор значений или шаблонов, или указание, какая часть пакета должна быть сравнена с конкретным значением/значениями/шаблонами, в соответствии с определением возможностей сравнения - для конкретных полей в заголовке пакета, или некоторого другого содержимого пакета), так и набор из одного или нескольких действий для плоскости пересылки данных, которые необходимо выполнить при приеме соответствующего пакета. К примеру, действие может быть загрузкой заголовка к пакету, использовать конкретный порт для этого пакета, лавинно переслать этот пакет или просто отбросить этот пакет. Таким образом, запись таблицы пересылки для IPv4/IPv6 пакетов с конкретным портом назначения протокола управления передачей (TCP) может содержать действие, указывающее, что эти пакеты должны быть отброшены.
[00139] Принятие решений о пересылке и выполнение действий происходит на основании записи таблицы пересылки, определенной во время классификация пакетов, исполнением набора действий, указанных в подходящей записи таблицы пересылки для этого пакета.
[00140] Однако, когда неизвестный пакет (к примеру, "missed packet" или "match-miss", используемые в языке OpenFlow) прибывает на плоскость 1480 передачи данных, этот пакет (или поднабор из заголовка пакета и содержимого) обычно пересылают плоскости 1476 централизованного управления. Плоскость 1476 централизованного управления затем запрограммирует записи таблицы пересылки в плоскость 580 передачи данных, чтобы разместить пакеты, принадлежащие потоку неизвестных пакетов. После того как конкретная запись таблицы пересылки была запрограммирована в плоскость 1480 передачи данных плоскостью 1476 централизованного управления, следующий пакет, с этими параметрами совпадения, будет удовлетворять этой записи таблицы пересылки, и подвергаться набору действий, сопоставленных с этой совпавшей записью.
[00141] Сетевой интерфейс (NI) может быть физическим или виртуальным; и в контексте IP, адресом интерфейса является IP-адрес, назначенный NI, будь то физический NI или виртуальный NI. Виртуальный NI может быть сопоставлен с физическим NI, с другим виртуальным интерфейсом, зависеть только от себя самого (например, интерфейс обратной петли, интерфейс протокола "точка-точка"). NI (физический или виртуальный) может быть нумерованным (NI с IP-адресом) или ненумерованным (NI без IP-адреса). Интерфейс локальной петли (и его адрес возвратной петли) является отдельным видом виртуального NI (и IP-адресом) NE/VNE (физического или виртуального), часто используемым в целях управления; тогда как подобный IP-адрес называют узловым адресом возвратной петли. IP-адрес(-а), назначенные NI принадлежащим ND называются IP-адресами этого ND; на более детальном уровне, IP-адреса, назначенные NI(s), закрепленным за NE/VNE, реализованным на ND, могут называться IP-адресами этого NE/VNE.
[00142] Выбор следующего звена системой маршрутизации для заданного пункта назначения может разрешиться одним путем (то есть, протокол маршрутизации может сгенерировать одно следующее звено на кратчайшем тракте); но если система маршрутизации определит, что имеется несколько конкурентных следующих звеньев (то есть, сгенерированное протоколом маршрутизации решение по пересылке предлагает более чем одно следующее звено на кратчайшем тракте - несколько следующих звеньев с равной стоимостью), используется некоторый дополнительный критерий - так, например, в сети без маршрутизации информации, Equal Cost Multi Path (ECMP) (также известная как маршрутизация с несколькими треками равной стоимости, мульти-трактовая пересылка, и мульти-трактовая IP-маршрутизация) (RFC 2991 и 2992) может быть использована (например, обычные реализации используют в качестве критерия отдельно взятые поля заголовка, чтобы гарантировать, что пакеты отдельно взятого потока пакетов всегда будут пересылаться по одному и тому же следующему звену, чтобы сохранить порядок потока пакетов). В целях мульти-трактовой пересылки, поток пактов определяют как набор пакетов, которые разделяют ограничение порядка. Как пример, набор пакетов в отдельно взятой последовательности передачи TCP должен прибыть по порядку, иначе логическая схема TCP интерпретирует беспорядочную доставку как затор и снизит скорость TCP передачи.
[00143] Таким образом, способ, система и устройство для восстановления явных трактов в сети пакетной коммутации были описаны. Следует понимать, что вышеприведенное описание предназначено быть иллюстративным, а не ограничивающим. Много других вариантов осуществления будут очевидны специалистам в данной области техники после прочтения и понимания приведенного выше описания. Объем изобретения должен, таким образом, быть определен со ссылкой на прилагаемую формулу изобретения, вместе с полным объемом эквивалентов, к которым такая формула изобретения имеет правомочия.