СПОСОБ, УСТРОЙСТВО И СИСТЕМА ДЛЯ КОНФИГУРИРОВАНИЯ ЗАПИСЕЙ ПОТОКОВ
METHOD, DEVICE AND SYSTEM OF STEAM RECORDING CONFIGURATION

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к области технологий сетей связи и, в частности, к способу, устройству и системе для конфигурирования записей потоков.
УРОВЕНЬ ТЕХНИКИ
Сеть, работающая согласно протоколу OpenFlow, осуществляет разделение между уровнем передачи данных и уровнем управления и содержит контроллер (Controller) на уровне управления и коммутатор (Switch) на уровне передачи, где контроллер управляет коммутатором с использованием протокола OpenFlow, чтобы осуществить централизованное управление работой всей сети связи. В частности, контроллер передает запись потока (flow entry) указанному коммутатору с использованием протокола OpenFlow, где переданная запись потока содержит величину поля признаков (match field) и величину действия (action), где величина поля признаков может представлять собой MAC-адрес пункта назначения, тип Этернет (Ethernet) или другую подобную информацию, а величина действия может представлять собой информацию для указания, что некий пакет данных передают через конкретный заданный порт; коммутатор добавляет принятую запись потока в аппаратную таблицу потоков, чтобы можно было осуществить поиск, когда будет принят какой-либо пакет данных позже, в аппаратной таблице потоков для обнаружения записи потока, согласованной с этим пакетом данных, и для обработки пакета данных в соответствии с величиной действия в найденной записи потока.
В известных системах такую аппаратную таблицу потоков конфигурируют с использованием следующего способа:
Коммутатор сохраняет взаимно-однозначное соответствие между таблицей потоков протокола OpenFlow (далее просто таблица потоков OpenFlow) (например, таблица T0, таблица T1 и таблица T2) и аппаратной таблицей потоков (например, список управления доступом (Access control list, ACL) 1 и ACL 2) для этого коммутатора с целью генерации структуры таблицы потоков, где эта сформированная структура таблиц потоков содержит указание типа таблицы потоков для каждой таблицы потоков OpenFlow (flow table), а также поле признаков и действие, поддерживаемые каждой таблицей потоков OpenFlow; коммутатор сообщает сформированную им структуру таблицы потоков контроллеру, где поле признаков и действие, поддерживаемые каждой таблицей потоков OpenFlow, представляют собой поле признаков и действие для соответствующей аппаратной таблицы потоков.
Указанную запись потока, передаваемую контроллером, генерируют в соответствии с применяемой контроллером логической схемой обработки данных и структурой таблицы потоков, сообщенной коммутатором, где эта логическая схема обработки данных в контроллере содержит: генерацию записи потока для конкретной таблицы и конкретного сервиса. Например, для сервиса A генерируют записи потоков для таблицы T0 и таблицы T1, а для сервиса B генерируют запись потока для таблицы T2.
Когда принята запись потока, переданная контроллером, для таблицы потоков или нескольких таблиц потоков, коммутатор сохраняет, согласно указанному соответствию, эту запись потока в аппаратной таблице потоков, соответствующей таблице потоков OpenFlow. Например, когда принята запись потока для таблицы T0, эту запись потока сохраняют в списке ACL 1, чтобы осуществить сервис, поддерживаемый указанной аппаратной таблицей потоков.
Например, для осуществления сервиса A требуются поля признаков in_port (входной порт), eth_type (тип Этернет), src_mac (MAC-адрес источника) и dst mac (MAC-адрес пункта назначения) и действие вывода (передача данных через некоторый порт). Список ACL 1 содержит первые три поля признаков, а список ACL 2 содержит два последних поля признаков и выходное действие, что указывает том факт, что эти список ACL 1 и список ACL 2 поддерживают сервис A. Коммутатор сохраняет соответствие между таблицей T0 и списком ACL 1 и соответствие между таблицей T1 и списком ACL 2; соответственно, сформированные поля признаков в таблице T0 также содержат указанные первые три поля признаков, сформированная таблица T1 содержит два последних поля признаков и выходное действие, и тогда таблица T0 и таблица T1 поддерживают A. Логическая схема обработки данных в контроллере генерирует записи потоков для таблицы T0 и таблицы T1 для сервиса A; поэтому, в коммутатор передают запись потока, используемую для обработки пакета, относящегося к сервису A.
В общем случае, коммутаторы различных типов имеют разные кристаллы интегральных схем аппаратных передатчиков, и аппаратные таблицы потоков, используемые разными кристаллами интегральных схем аппаратных передатчиков для поддержки одного и того же сервиса, также являются различными. Например, в кристалле специализированной интегральной схемы ASIC 1, сервис A поддерживается списком ACL 1 и списком ACL 2; в кристалле ASIC 2, сервис A поддерживается списком ACL 3. Однако когда контроллер генерирует запись потока, если таблица T0 и таблица T1, сообщенные коммутатором на основе кристалла ASIC 1, содержат поле признаков и действие, необходимые сервису A, контроллер передает коммутатору записи потоков из таблицы T0 и таблицы T1; если таблица T2, соответствующая списку ACL 3 и сообщенная коммутатору на основе использования кристалла ASIC 2, удовлетворяет приведенному выше условию, а сообщенные таблица T0 и таблица T1 не могут удовлетворить приведенному выше условию, контроллер не может передавать коммутатору запись потока, используемому для обработки пакета данных, относящегося к сервису A.
Очевидно, что если коммутатор на основе кристалла ASIC 1 использует таблицу T0 и таблицу T1 для осуществления сервиса A, коммутатор на основе кристалла ASIC 2 использует таблицу T2 для осуществления сервиса A, а логическая схема обработки данных в контроллере генерирует записи потоков в таблице T0 и таблице T1 для сервиса A, этот контроллер не может генерировать или передавать запись потока, соответствующего сервиса A, когда этот контроллер соединен с коммутатором на основе кристалла ASIC 2; естественно, коммутатор на основе кристалла ASIC 2 не может конфигурировать запись потока, обрабатывающую сервис A, в результате чего этот сервис A не может быть обработан.
Логические схемы обработки данных в контроллерах, изготовленных разными производителями, обычно различны, и кристаллы интегральных схем аппаратных передатчиков, на основе которых выполнены коммутаторы, изготовленные разными производителями, также обычно различны; поэтому некоторые сервисы не всегда могут быть обработаны, когда какой-либо коммутатор соединен с каким-либо произвольным контроллером, что создает относительно высокую вероятность неудачи при обработке сервиса.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Варианты настоящего изобретения предлагают способ, устройство и систему для конфигурирования записи потока, используемые для решения имеющей место в известных системах проблемы, состоящей в том, что существует относительно высокая вероятность невозможности обработки сервиса из-за того, что коммутатор не может конфигурировать, в аппаратной таблице потоков, запись потока, используемую для обработки некоторых сервисов.
Первый аспект предлагает способ конфигурирования записи потока, где этот способ содержит:
сообщение, посредством коммутатора, структуры таблицы потоков контроллеру с использованием протокола OpenFlow OpenFlow, где структура таблицы потоков содержит поля признаков и действия, поддерживаемые несколькими таблицами потоков OpenFlow, и указания типов этих нескольких таблиц потоков OpenFlow, так что имеется пересечение между полями признаков и действиями, поддерживаемыми несколькими таблицами потоков OpenFlow, где это пересечение содержит поле признаков и действие, используемые для осуществления первого сервиса, поддерживаемого аппаратной таблицей потоков в памяти коммутатора, а типы нескольких таблиц потоков OpenFlow все представляют собой обобщенный, универсальный тип (wildcard type);
прием, посредством коммутатора, записи потока, переданной контроллером с использованием протокола OpenFlow, и конфигурирование этой записи потока в программной таблице потоков, где эту запись потока генерирует контроллер согласно структуре таблицы потоков и информации относительно пакета данных, сообщенной коммутатором, эта информация относительно пакета данных содержит информацию относительно первого пакета данных для первого сервиса, а запись потока содержит по меньшей мере одну из записей потоков, согласованных с первым пакетом данных;
получение, посредством коммутатора, из программной таблица потоков, первой записи потока, согласованной с первым пакетом данных; обработку первого пакета данных согласно с величиной действия из состава первой записи потока; и определение, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с первой записью потока, где совокупность полей признаков для найденного первого целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета в составе группы полей признаков, соответствующих величинам полей признаков в составе первой записи потока, а действие для этого первого целевого пути сервиса содержит действие, соответствующее величине действия, представляющей собой величины действия в составе первой записи потока и используемой для обработки первого пакета данных;
определение, посредством коммутатора, согласно заданному соответствию между первым целевым путем сервиса и первой аппаратной таблицей потоков, такой первой аппаратной таблицы потоков, соответствующей первому целевому пути сервиса, где эта первая аппаратная таблица потоков, соответствующая первому целевому пути сервиса, поддерживает сервис, поддерживаемый этим первым целевым путем сервиса; и
конфигурирование, посредством коммутатора, записи потока в первой аппаратной таблице потоков, согласно первой записи потока.
Согласно первому возможному варианту способа осуществления первого аспекта, поля признаков в составе нескольких таблиц потоков OpenFlow, сообщенных коммутатором, все представляют собой поля признаков, поддерживаемые протоколом OpenFlow, и действия в составе нескольких таблиц потоков OpenFlow, сообщенных коммутатором, все представляют собой действия, поддерживаемые протоколом OpenFlow.
С учетом первого аспекта или первого возможного варианта способа осуществления этого первого аспекта, согласно второму возможному варианту способа осуществления первого аспекта процедура определения, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с первой записью потока, в частности, содержит:
когда имеются две или более первых записей потоков, агрегирование этих первых записей потоков для генерации комбинированной записи потока, где величины полей признаков в составе комбинированной записи потока представляют собой величины полей признаков из состава первых записей потоков, которые соответствуют полю признаков входного порта и полю признаков заголовка пакета, а величины действий в составе комбинированной записи потока представляют собой величины действий из состава первых записей потоков, используемые для обработки первого пакета данных; и определение, в составе предварительно конфигурированного пути сервиса, одного пути сервиса, где совокупность полей признаков содержит поля признаков, соответствующие величинам полей признаков в составе указанной комбинированной записи потока, и где совокупность действий содержит действия, соответствующие величинам действий из состава комбинированной записи потока, в качестве первого целевого пути сервиса; и
когда имеется одна первая запись потока, определение, в составе предварительно конфигурированного пути сервиса, одного пути сервиса, где поле признаков представляет собой поле признаков, соответствующее величине поля признаков в составе первой записи потока, и где действие представляет собой действие, соответствующее величине действия в составе первой записи потока, в качестве первого целевого пути сервиса.
С учетом первого аспекта или первого или второго возможных вариантов способа осуществления этого первого аспекта, согласно третьему возможному варианту способа осуществления первого аспекта, указанное пересечение далее содержит поле признаков и действие, используемые для осуществления второго сервиса, не поддерживаемого аппаратной таблицей потоков в памяти коммутатора, информация относительно пакета данных далее содержит информацию относительно второго пакета данных для второго сервиса, а запись потока, принятая коммутатором от контроллера, дополнительно содержит по меньшей мере одну из записей потоков, согласованных со вторым пакетом данных; и
способ дополнительно содержит: получение, посредством коммутатора, из программной таблицы потоков, второй записи потока, согласованной со вторым пакетом данных, и обработку второго пакета данных в соответствии с действием из состава второй записи потока.
С учетом третьего возможного варианта способа осуществления первого аспекта, согласно четвертому возможному варианту способа осуществления первого аспекта, способ дополнительно содержит:
определение, посредством коммутатора, в составе предварительно конфигурированного пути сервиса, второго целевого пути сервиса, согласованного со второй записью потока, где совокупность полей признаков из состава найденного второго целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета из группы полей признаков, соответствующих величинам полей признаков из состава второй записи потока, а действие из состава второго целевого пути сервиса представляет собой действие, соответствующее величине действия из группы величин действия из состава второй записи потока и используемое для обработки второго пакета данных;
конфигурирование, посредством коммутатора согласно второй записи потока, сервисной записи потока в сервисной таблице потоков, соответствующей второму целевому пути сервиса, где эта сервисная таблица потоков представляет собой таблицу точного совпадения, а все поля признаков из состава сервисной таблицы потоков представляют собой поля признаков в составе второго целевого пути сервиса; конфигурирование первой величины поля признаков в составе сервисной записи потока в качестве соответствующей величины поля признаков в составе первой записи потока; конфигурирование второй величины поля признаков в составе сервисной записи потока в качестве соответствующей величины поля заголовка в заголовке пакета в составе второго пакета данных; и конфигурирование величины действия в составе сервисной записи потока в качестве величины действия в составе второй записи потока, где поле признаков, соответствующее первой величине поля признаков, принадлежит полю признаков, соответствующему величине поля признаков в составе первой записи потока, и поле признаков, соответствующее второй величине поля признаков, не принадлежит полю признаков, соответствующему величине поля признаков в составе второй записи потока; и
поиск, посредством коммутатора, при приеме последующего пакета данных для второго сервиса позже, в указанной сервисной таблице потоков, для обнаружения сервисной записи потока, соответствующей последующему пакета данных, и обработка этого последующего пакета данных в соответствии с действием из состава найденной сервисной записи потока.
С учетом первого аспекта или какого-либо из возможных вариантов с первого по четвертый способа осуществления этого первого аспекта, согласно пятому возможному варианту способа осуществления первого аспекта, прежде определения, согласно предварительно конфигурированному соответствию между первым целевым путем сервиса и первой аппаратной таблицей потоков, такой первой аппаратной таблицы потоков, соответствующей первому целевому пути сервиса, способ дополнительно содержит: конфигурирование соответствия между путями сервисов и соответствующими аппаратными таблицами потоков, где среди путей сервисов имеется первый целевой путь сервиса, способ, в частности, содержит:
конфигурирование нескольких физических таблиц потоков и соответствия между этими физическими таблицами потоков и аппаратными таблицами потоков, где эти несколько физических таблиц потоков по отдельности содержат поддерживаемые поля признаков и действия, поля признаков из каждой физической таблицы потоков входят в состав совокупности полей признаков соответствующей аппаратной таблицы потоков, а действие, которое является действием из состава каждой физической таблицы потоков и которое должно быть записано в рассматриваемую аппаратную таблицу потоков, включено в совокупность действий соответствующей аппаратной таблицы потоков; и
конфигурирование соответствия между путями сервисов и физическими таблицами потоков, где поле признаков в составе каждого из путей сервисов включают в состав совокупности полей признаков всех соответствующих физических таблиц потоков и действие из состава каждого пути сервиса включают в состав совокупности действий из всех соответствующих физических таблиц потоков; и
процедура определения, посредством коммутатора согласно предварительно конфигурированному соответствию между первым целевым путем сервиса и первой аппаратной таблицей потоков, такой первой аппаратной таблицы потоков, соответствующей первому целевому пути сервиса, в частности, содержит:
определение, посредством коммутатора, первой физической таблицы потоков согласно соответствию между первым целевым путем сервиса и соответствующей первой физической таблицей потоков, и определение первой аппаратной таблицы потоков согласно соответствию между первой физической таблицей потоков и соответствующей первой аппаратной таблицей потоков.
Второй аспект предлагает способ конфигурирования записи потока, где этот способ содержит:
сообщение, посредством устройства связи, структуры таблицы потоков контроллеру с использованием протокола OpenFlow OpenFlow, где эта структура таблицы потоков содержит поля признаков и действия, поддерживаемые несколькими таблицами потоков OpenFlow, и указания типов этих нескольких таблиц потоков OpenFlow, здесь имеет место пересечение между полями признаков и действиями, поддерживаемыми посредством нескольких таблиц потоков OpenFlow, это пересечение содержит поле признаков и действие, используемые для осуществления первого сервиса, поддерживаемого аппаратной таблицей потоков в кристалле интегральной схемы аппаратного передатчика, а типы нескольких таблиц потоков OpenFlow все представляют собой универсальный тип (wildcard type), и устройство связи соединено с кристаллом интегральной схемы аппаратного передатчика;
прием, посредством устройства связи, записи потока, переданной контроллером с использованием протокола OpenFlow, и конфигурирование записи потока в программной таблице потоков, где эту запись потока генерирует контроллер согласно структуре таблицы потоков и информации относительно пакета данных, сообщенных устройством связи, где эта информация о пакете данных содержит информацию о первом пакете данных для первого сервиса, а указанная запись потока содержит по меньшей мере одну из записей потока, согласованных с этим первым пакетом данных;
получение, посредством устройства связи, из программной таблицы потоков, первой записи потока, согласованной с указанным первым пакетом данных; обработку первого пакета данных согласно величине действия в составе первой записи потока; и определение, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с первой записью потока, где совокупностей полей признаков для найденного первого целевого пути сервиса содержит поле признаков с указанием входного порта и поле признаков с указанием заголовка пакета в группе полей признаков, соответствующих величинам полей признаков в составе первой записи потока, а действие для первого целевого пути сервиса представляет собой действие, которое соответствует величине действия из совокупности величин действий в составе первой записи потока и которое используется для обработки первого пакета данных;
определение, посредством устройства связи, согласно предварительно конфигурированному соответствию между первым целевым путем сервиса и первой аппаратной таблицей потоков в памяти кристалла интегральной схемы аппаратного передатчика, такой первой аппаратной таблицы потоков, соответствующей первому целевому пути сервиса, где эта первая аппаратная таблица потоков, соответствующая первому целевому пути сервиса, поддерживает сервис, поддерживаемый первым целевым путем сервиса; и
конфигурирование, посредством устройства связи, записи потока в первой аппаратной таблице потоков согласно первой записи потока.
Согласно первому возможному варианту способа осуществления второго аспекта, поля признаков в составе нескольких таблиц потоков OpenFlow, сообщенных устройством связи, все представляют собой поля признаков, поддерживаемые протоколом OpenFlow, а действия в составе этих нескольких таблиц потоков OpenFlow, сообщенных устройством связи, все представляют собой действия, поддерживаемые протоколом OpenFlow.
С учетом второго аспекта или первого возможного варианта способа осуществления этого второго аспекта, согласно второму возможному варианту способа осуществления второго аспекта, процедура определения, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с первой записью потока, в частности, содержит:
когда имеются две или более первых записей потоков, агрегирование этих первых записей потоков для генерации комбинированной записи потока, где величины полей признаков, входящие в комбинированную запись потока, представляют собой величины полей признаков, которые входят в совокупность величин полей признаков из состава первых записей потоков и соответствуют полю признаков входного порта и полю признаков заголовка пакета, величины действий, входящие в состав комбинированной записи потока, представляют собой величины действий, которые входят в совокупность величин действий из состава первых записей потоков и используются для обработки первого пакета данных; и определение, в составе предварительно конфигурированного пути сервиса, одного пути сервиса, в котором поля признаков содержат поля признаков, соответствующие величинам полей признаков из состава комбинированной записи потока, и в котором действия, содержат действия, соответствующие величинам действий из состава комбинированной записи потока, в качестве первого целевого пути сервиса; и
когда имеется только одна первая запись потока, определение, в составе предварительно конфигурированного пути сервиса, одного пути сервиса, в котором поле признаков представляет собой поле признаков, соответствующее величине поля признаков из состава первой записи потока, и в котором действие представляет собой действие, соответствующее величине действия в составе первой записи потока, в качестве первого целевого пути сервиса.
С учетом второго аспекта или первого или второго возможных вариантов способа осуществления этого второго аспекта, согласно третьему возможному варианту способа осуществления второго аспекта, пересечение далее содержит поле признаков и действие, используемые для осуществления второго сервиса, не поддерживаемого аппаратной таблицей потоков в памяти кристалла интегральной схемы аппаратного передатчика, информация относительно пакета данных дополнительно содержит информацию о втором пакете данных для второго сервиса, а запись потока, принятая устройством связи от контроллера, дополнительно содержит по меньшей мере одну из записей потоков, согласованных со вторым пакетом данных; и
способ дополнительно содержит: получение, посредством устройства связи, из программной таблицы потоков, второй записи потока, согласованной со вторым пакетом данных, и обработку второго пакета данных согласно действию из состава второй записи потока.
С учетом третьего возможного варианта способа осуществления этого второго аспекта, согласно четвертому возможному варианту способа осуществления изобретения, способ дополнительно содержит:
определение, посредством устройства связи, в составе предварительно конфигурированного пути сервиса, второго целевого пути сервиса, согласованного со второй записью потока, где совокупность полей признаков в составе найденного второго целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета из группы полей признаков, соответствующих величинам полей признаков из состава второй записи потока, а действие из состава второго целевого пути сервиса представляет собой действие, соответствующее величине действия, которая входит в совокупность величин действия в составе второй записи потока и которая используется для обработки второго пакета данных;
конфигурирование, посредством устройства связи, согласно второй записи потока, сервисной записи потока в сервисной таблице потоков, соответствующей второму целевому пути сервиса, где эта сервисная таблица потоков представляет собой таблицу точного совпадения, а поля признаков в этой сервисной таблице потоков являются всеми полями признаков в составе второго целевого пути сервиса; конфигурирование величины первого поля признаков в составе сервисной записи потока в виде соответствующей величины поля признаков в составе первой записи потока; конфигурирование величины второго поля признаков в составе сервисной записи потока в виде соответствующей величины поля заголовка в заголовке пакета в составе второго пакета данных; и конфигурирование величины действия в составе сервисной записи потока в виде величины действия в составе второй записи потока, где поле признаков, соответствующее величине первого поля признаков, принадлежит к полю признаков, соответствующему величине поля признаков в составе первой записи потока, а поле признаков, соответствующее величине второго поля признаков, не принадлежит к полю признаков, соответствующему величине поля признаков в составе второй записи потока; и
поиск, посредством устройства связи, когда происходит позднее прием следующего пакета данных для второго сервиса, в сервисной таблице потоков для обнаружения сервисной записи потока, согласованной с этим последующим потоком данных, и обработку этого последующего пакета данных согласно действию из состава найденной сервисной записи потока.
С учетом второго аспекта или какого-либо из возможных вариантов с первого по четвертый способа осуществления этого второго аспекта, согласно пятому возможному варианту способа осуществления второго аспекта, прежде определения, согласно предварительно конфигурированному соответствию между первым целевым путем сервиса и первой аппаратной таблицей потоков, такой первой аппаратной таблицы потоков, соответствующей первому целевому пути сервиса, способ дополнительно содержит: конфигурирование соответствия между путями сервисов и соответствующими аппаратными таблицами потоков, где совокупность путей сервисов содержит указанный первый целевой путь сервиса, способ, в частности, содержит:
конфигурирование нескольких физических таблиц потоков и соответствия между этими физическими таблицами потоков и аппаратными таблицами потоков, где эти несколько физических таблиц потоков по отдельности содержат поддерживаемые поле признаков и действие, поле признаков из каждой физической таблицы потоков входит в совокупность полей признаков в составе соответствующей аппаратной таблицы потоков, а действие, которое входит в совокупность действий в составе каждой физической таблицы потоков и которое нужно записать в аппаратную таблицу потоков, включают в группу действий соответствующей аппаратной таблицы потоков; и
конфигурирование соответствия между путями сервисов и физическими таблицами потоков, где поле признаков в составе каждого пути сервиса входит в совокупность полей признаков из состава всех физических таблиц потоков, а действие в составе каждого пути сервиса входит в группу действий для всех соответствующих физических таблиц потоков; и
процедура определения, посредством устройства связи, согласно предварительно конфигурированному соответствию между первым целевым путем сервиса и первой аппаратной таблицей потоков, такой первой аппаратной таблицы потоков, соответствующей первому целевому пути сервиса, в частности, содержит:
определение, посредством устройства связи, первой физической таблицы потоков, согласно соответствию между первым целевым путем сервиса и соответствующей первой физической таблицей потоков, и определение первой аппаратной таблицы потоков согласно соответствию между первой физической таблицей потоков и соответствующей первой аппаратной таблицей потоков.
Третий аспект предлагает устройство связи для осуществления конфигурирования записей потоков, где это устройство связи соединено с кристаллом интегральной схемы аппаратного передатчика, осуществляет связь с контроллером с использованием протокола OpenFlow OpenFlow и содержит: интерфейсный модуль, модуль конфигурирования программной таблицы потоков, модуль обработки пакетов данных и модуль конфигурирования аппаратной таблицы потоков, где:
интерфейсный модуль конфигурирован для сообщения структуры таблицы потоков контроллеру, где структура таблицы потоков содержит поля признаков и действий, поддерживаемые несколькими таблицами потоков OpenFlow, и указания типов нескольких таблиц потоков OpenFlow, здесь имеет место пересечение полей признаков и действий, поддерживаемых несколькими таблицами потоков OpenFlow, это пересечение содержит поле признаков и действие, используемые для осуществления первого сервиса, поддерживаемого аппаратной таблицей потоков в памяти кристалла интегральной схемы аппаратного передатчика, здесь типы нескольких таблиц потоков OpenFlow все представляют собой универсальный тип (wildcard type); и далее модуль конфигурирован для сообщения информации относительно пакета данных в адрес контроллера и приема записи потока, переданного этим контроллером, где эту запись потока контроллер генерирует согласно структуре таблицы потоков и информации относительно пакета данных, эта информация относительно пакета данных содержит информацию о первом пакете данных для первого сервиса, а запись потока содержит по меньшей мере одну из записей потока, согласованных с первым пакетом данных;
модуль конфигурирования программной таблицы потоков конфигурирован для того, чтобы конфигурировать запись потока, принятую интерфейсным модулем, в состав программной таблицы потоков;
модуль обработки пакетов данных конфигурирован для получения, из программной таблицы потоков, первой записи потока, согласованной с первым пакетом данных, обработки этого первого пакета данных согласно величине действия, указанной в составе первой записи потока, и определение, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с первой записью потока, где совокупность полей признаков найденного первого целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета из группы полей признаков, соответствующих величинам полей признаков в составе первой записи потока, действие в составе первого целевого пути сервиса представляет собой действие, соответствующее величине действия, которая входит в группу величин действия в составе первой записи потока и которая используется для обработки первого пакета данных; а модуль обработки пакетов данных конфигурирован для определения, согласно предварительно конфигурированному соответствию между первым целевым путем сервиса и первой аппаратной таблицей потоков в памяти кристаллов интегральной схемы аппаратного передатчика, такой первой аппаратной таблицы потоков, соответствующей первому целевому пути сервиса, где первая аппаратная таблица потоков, соответствующая первому целевому пути сервиса, поддерживает сервис, поддерживаемый первым целевым путем сервиса; и
модуль конфигурирования аппаратной таблицы потоков конфигурирован для осуществления конфигурирования записи потока в составе первой аппаратной таблицы потоков согласно первой записи потока.
Согласно первому возможному варианту способа осуществления этого третьего аспекта, поля признаков в составе нескольких таблиц потоков OpenFlow, сообщенных интерфейсным модулем, все представляют собой поля признаков, поддерживаемые протоколом OpenFlow, а действия в составе нескольких таблиц потоков OpenFlow, сообщенных интерфейсным модулем, все являются действиями, поддерживаемыми протоколом OpenFlow.
С учетом третьего аспекта или первого возможного варианта способа осуществления этого третьего аспекта, согласно второму возможному варианту способа осуществления третьего аспекта, модуль обработки пакетов данных конфигурирован для определения, в составе предварительно конфигурированного пути сервиса, целевого пути сервиса, согласованного с первой записью потока, способ, в частности, содержит:
модуль обработки пакетов данных, конфигурированный для того, чтобы: когда имеются две или более первых записей потоков, агрегировать эти первые записи потоков для генерации комбинированной записи потока, где величины полей признаков в составе комбинированной записи потока представляют собой величины полей признаков, которые входят в совокупность величин полей признаков из состава первых записей потоков и которые соответствуют полю признаков входного порта и полю признаков заголовка пакета, а величины действий в составе комбинированной записи потока представляют собой величины действий, которые входят в группу величин действий в составе первых записей потоков и которые используются для обработки первого пакета данных; и определение, в составе предварительно конфигурированного пути сервиса, одного пути сервиса, для которого совокупность полей признаков содержит поля признаков, соответствующие величинам полей признаков в составе комбинированной записи потока, и в котором совокупность действий содержит действия, соответствующие величинам действия из состава комбинированной записи потока, в качестве первого целевого пути сервиса; и модуль обработки пакетов данных конфигурирован для того, чтобы: когда имеется только одна первая запись потока, определить, в составе предварительно конфигурированного пути сервиса, один путь сервиса, в котором поле признаков представляет собой поле признаков, соответствующее величине поля признаков из состава первой записи потока, и в котором действие представляет собой действие, соответствующее величине действия в составе первой записи потока, в качестве первого целевого пути сервиса.
С учетом третьего аспекта или первого или второго возможных вариантов способа осуществления этого третьего аспекта, согласно третьему возможному варианту способа осуществления третьего аспекта, указанное пересечение далее содержит поле признаков и действие, используемые для осуществления второго сервиса, не поддерживаемого аппаратной таблицей потоков в памяти кристалла интегральной схемы аппаратного передатчика, информация относительно пакета данных далее содержит информацию о втором пакете данных для второго сервиса, а запись потока, принятая интерфейсным модулем от контроллера, далее содержит по меньшей мере одну из записей потока, согласованную со вторым пакетом данных; и
модуль обработки пакетов данных далее конфигурирован для обработки второго пакета данных согласно действию из состава второй записи потока, когда получена, из программной таблицы потоков, вторая запись потока, согласованная со вторым пакетом данных.
С учетом третьего возможного варианта способа осуществления третьего аспекта, согласно четвертому возможному варианту способа осуществления третьего аспекта, устройство связи далее содержит модуль конфигурирования сервисной таблицы потоков, где:
модуль обработки пакетов данных далее конфигурирован для того, чтобы: определить, в составе предварительно конфигурированного пути сервиса, второй целевой путь сервиса, согласованного со второй записью потока, где совокупность полей признаков для найденного второго целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета в составе группы полей признаков, соответствующих величинам полей признаков в составе второй записи потока, и действие для этого второго целевого пути сервиса содержит действие, соответствующее величине действия, представляющей собой величины действия в составе второй записи потока и используемой для обработки второго пакета данных;
модуль конфигурирования сервисной таблицы потоков конфигурирован для того, чтобы: конфигурировать, согласно второй записи потока, сервисную запись потока в составе сервисной таблицы потоков, соответствующей второму целевому пути сервиса, где сервисная таблица потоков представляет собой таблицу точного совпадения, а поля признаков из состава сервисной таблицы потоков представляют собой поля признаков в составе второго целевого пути сервиса; конфигурирование первой величины поля признаков в составе сервисной записи потока в качестве соответствующей величины поля признаков в составе первой записи потока; конфигурирование второй величины поля признаков в составе сервисной записи потока в качестве соответствующей величины поля заголовка в заголовке пакета в составе второго пакета данных; и конфигурирование величины действия в составе сервисной записи потока в качестве величины действия в составе второй записи потока, где поле признаков, соответствующее величине первого поля признаков, принадлежит полю признаков, соответствующему величине поля признаков в составе первой записи потока, и поле признаков, соответствующее второй величине поля признаков, не принадлежит полю признаков, соответствующему величине поля признаков в составе второй записи потока; и
модуль обработки пакетов данных дополнительно конфигурирован для того, чтобы: осуществлять поиск, когда происходит позднее прием последующего пакета данных для второго сервиса, в сервисной таблице потоков для обнаружения сервисной записи потока, согласованной с этим последующим пакетом данных, и обрабатывать этот последующий пакет данных согласно действию из состава найденной сервисной записи потока.
С учетом третьего аспекта или какого-либо из возможных вариантов с первого по четвертый способа осуществления этого третьего аспекта, согласно пятому возможному варианту способа осуществления третьего аспекта, устройство связи далее содержит модуль конфигурирования соответствия, где:
модуль конфигурирования соответствия конфигурирован для того, чтобы осуществлять конфигурирование соответствия между путями сервисов и соответствующими аппаратными таблицами потоков, где совокупность этих путей сервисов содержит первый целевой путь сервиса, что, в частности, содержит: модуль конфигурирования соответствия конфигурирован для осуществления конфигурирования нескольких физических таблиц потоков и соответствия между этими физическими таблицами потоков и аппаратными таблицами потоков, где эти несколько физических таблиц потоков по отдельности содержат поддерживаемые поля признаков и действия, поля признаков из каждой физической таблицы потоков входят в состав совокупности полей признаков соответствующей аппаратной таблицы потоков, а действие, которое является действием из состава каждой физической таблицы потоков и которое должно быть записано в рассматриваемую аппаратную таблицу потоков, включено в совокупность действий соответствующей аппаратной таблицы потоков; и модуль конфигурирования соответствия конфигурирован для осуществления конфигурирования соответствия между путями сервисов и физическими таблицами потоков, где поле признаков в составе каждого пути сервиса входит в состав группы полей признаков из всех соответствующих физических таблиц потоков, а действие в составе каждого пути сервиса входит в состав группы действий из всех соответствующих физических таблиц потоков; и
модуль обработки пакетов данных конфигурирован для определения, согласно предварительно конфигурированному соответствию между первым целевым путем сервиса и первой аппаратной таблицей потоков, такой первой аппаратной таблицы потоков, соответствующей первому целевому пути сервиса, что, в частности, содержит: модуль обработки пакетов данных конфигурирован для определения первой физической таблицы потоков согласно соответствию между первым целевым путем сервиса и соответствующей первой физической таблицей потоков, и определения первой аппаратной таблицы потоков согласно соответствию между первой физической таблицей потоков и соответствующей первой аппаратной таблицей потоков.
Четвертый аспект предлагает устройство связи для осуществления конфигурирования записи потока, содержащее процессор и запоминающее устройство, где:
запоминающее устройство конфигурировано для сохранения команд для управления работой компьютера (далее компьютерные команды); и
процессор конфигурирован для выполнения этих компьютерных команд, сохраняемых в запоминающем устройстве, так что это устройство связи выполняет следующие операции:
сообщение структуры таблицы потоков контроллеру с использованием протокола OpenFlow OpenFlow, где структура таблицы потоков содержит поля признаков и действия, поддерживаемые несколькими таблицами потоков OpenFlow, и указание типов этих нескольких таблиц потоков OpenFlow, здесь имеет место пересечение между полями признаков и действиями, поддерживаемыми посредством нескольких таблиц потоков OpenFlow, это пересечение содержит поле признаков и действие, используемые для осуществления первого сервиса, поддерживаемого аппаратной таблицей потоков в памяти кристалла интегральной схемы аппаратного передатчика, а типы нескольких таблиц потоков OpenFlow все представляют собой универсальный тип (wildcard type), и это устройство связи соединено с кристаллом интегральной схемы аппаратного передатчика;
прием записи потока, генерируемой согласно структуре таблицы потоков и переданной контроллеру с использованием протокола OpenFlow, и конфигурирование записи потока в программной таблице потоков, где эту запись потока генерирует контроллер согласно структуре таблицы потоков и информации относительно пакета данных, сообщенной устройством связи, эта информация относительно пакета данных содержит информацию относительно первого пакета данных для первого сервиса, а эта запись потока содержит по меньшей мере одну из записей потоков, согласованных с первым пакетом данных;
получение, из программной таблицы потоков, первой записи потока, согласованной с первым пакетом данных; обработку первого пакета данных согласно величине действия в составе первой записи потока; и определение, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с первой записью потока, где совокупность полей признаков в составе найденного первого целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета из группы полей признаков, соответствующих величинам полей признаков из состава первой записи потока, а действие в составе этого первого целевого пути сервиса представляет собой действие, соответствующее величине действия из группы величин действия из состава первой записи потока и используемое для обработки первого пакета данных;
определение, согласно предварительно конфигурированному соответствию между первым целевым путем сервиса и первой аппаратной таблицей потоков в памяти кристалла интегральной схемы аппаратного передатчика, такой первой аппаратной таблицы потоков, соответствующей первому целевому пути сервиса, где первая аппаратная таблица потоков, соответствующая первому целевому пути сервиса, поддерживает сервис, поддерживаемый первым целевым путем сервиса; и
конфигурирование записи потока в первой аппаратной таблице потоков согласно первой записи потока.
Согласно первому возможному варианту способа осуществления четвертого аспекта, процессор выполняет компьютерные команды, так что, в частности, поля признаков из состава нескольких таблиц потоков OpenFlow, сообщаемых устройством связи, все представляют собой поля признаков, поддерживаемые протоколом OpenFlow, и действия из состава сообщенных нескольких таблиц потоков OpenFlow, все представляют собой действия, поддерживаемые протоколом OpenFlow.
С учетом четвертого аспекта или первого возможного варианта способа осуществления этого четвертого аспекта, согласно второму возможному варианту способа осуществления четвертого аспекта, процессор выполняет компьютерные команды, так что устройство связи, в частности, осуществляет следующие операции:
когда имеются две или более первых записей потоков, агрегирование этих первых записей потоков для генерации комбинированной записи потока, где величины полей признаков, входящие в комбинированную запись потока, представляют собой величины полей признаков, которые входят в совокупность величин полей признаков из состава первых записей потоков и соответствуют полю признаков входного порта и полю признаков заголовка пакета, величины действий, входящие в состав комбинированной записи потока, представляют собой величины действий, которые входят в совокупность величин действий из состава первых записей потоков и используются для обработки первого пакета данных; и определение, в составе предварительно конфигурированного пути сервиса, одного пути сервиса, в котором поля признаков содержат поля признаков, соответствующие величинам полей признаков из состава комбинированной записи потока, и в котором действия, содержат действия, соответствующие величинам действий из состава комбинированной записи потока, в качестве первого целевого пути сервиса; и
когда имеется только одна первая запись потока, определение, в составе предварительно конфигурированного пути сервиса, одного пути сервиса, в котором поле признаков представляет собой поле признаков, соответствующее величине поля признаков из состава первой записи потока, и в котором действие представляет собой действие, соответствующее величине действия в составе первой записи потока, в качестве первого целевого пути сервиса.
С учетом четвертого аспекта или первого или второго возможных вариантов способа осуществления этого четвертого аспекта, согласно третьему возможному варианту способа осуществления четвертого аспекта, пересечение далее содержит поле признаков и действие, используемые для осуществления второго сервиса, не поддерживаемого аппаратной таблицей потоков в памяти кристалла интегральной схемы аппаратного передатчика, информация относительно пакета данных далее содержит информацию о втором пакете данных для второго сервиса, а запись потока, принятая от контроллера, далее содержит по меньшей мере одну из записей потока, согласованную со вторым пакетом данных; и
процессор выполняет компьютерные команды, так что устройство связи далее осуществляет следующие операции: получение, из программной таблицы потоков, второй записи потока, согласованной со вторым пакетом данных, и обработку этого второго пакета данных согласно действию из состава второй записи потока.
С учетом третьего возможного варианта способа осуществления четвертого аспекта, согласно четвертому возможному варианту способа осуществления четвертого аспекта, процессор выполняет компьютерные команды, так что устройство связи далее осуществляет следующие операции:
определение в составе предварительно конфигурированного пути сервиса, второго целевого пути сервиса, согласованного со второй записью потока, где совокупность полей признаков в составе найденного второго целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета из группы полей признаков, соответствующих величинам полей признаков из состава второй записи потока, а действие из состава второго целевого пути сервиса представляет собой действие, соответствующее величине действия, которая входит в совокупность величин действия в составе второй записи потока и которая используется для обработки второго пакета данных;
конфигурирование, посредством устройства связи, согласно второй записи потока, сервисной записи потока в сервисной таблице потоков, соответствующей второму целевому пути сервиса, где эта сервисная таблица потоков представляет собой таблицу точного совпадения, а поля признаков в этой сервисной таблице потоков являются всеми полями признаков в составе второго целевого пути сервиса; конфигурирование величины первого поля признаков в составе сервисной записи потока в виде соответствующей величины поля признаков в составе первой записи потока; конфигурирование величины второго поля признаков в составе сервисной записи потока в виде соответствующей величины поля заголовка в заголовке пакета в составе второго пакета данных; и конфигурирование величины действия в составе сервисной записи потока в виде величины действия в составе второй записи потока, где поле признаков, соответствующее величине первого поля признаков, принадлежит к полю признаков, соответствующему величине поля признаков в составе первой записи потока, а поле признаков, соответствующее величине второго поля признаков, не принадлежит к полю признаков, соответствующему величине поля признаков в составе второй записи потока; и
поиск, когда происходит позднее прием следующего пакета данных для второго сервиса, в сервисной таблице потоков для обнаружения сервисной записи потока, согласованной с этим последующим потоком данных, и обработку этого последующего пакета данных согласно действию из состава найденной сервисной записи потока.
С учетом четвертого аспекта или какого-либо из возможных вариантов с первого по четвертый способа осуществления этого четвертого аспекта, согласно пятому возможному варианту способа осуществления четвертого аспекта, процессор выполняет компьютерные команды, так что устройство связи далее осуществляет следующие операции: конфигурирование соответствия между путями сервисов и соответствующими аппаратными таблицами потоков, где совокупность путей сервисов содержит первый целевой путь сервиса, так что это конфигурирование, в частности, содержит:
конфигурирование нескольких физических таблиц потоков и соответствия между этими физическими таблицами потоков и аппаратными таблицами потоков, где эти несколько физических таблиц потоков по отдельности содержат поддерживаемые поля признаков и действия, поля признаков из каждой физической таблицы потоков входят в состав совокупности полей признаков соответствующей аппаратной таблицы потоков, а действие, которое является действием из состава каждой физической таблицы потоков, и которое должно быть записано в рассматриваемую аппаратную таблицу потоков, включено в совокупность действий соответствующей аппаратной таблицы потоков; и
конфигурирование соответствия между путями сервисов и физическими таблицами потоков, где поле признаков каждого из путей сервисов включают в состав совокупности полей признаков всех соответствующих физических таблиц потоков, и действие из каждого пути сервиса включают в состав совокупности действий из всех соответствующих физических таблиц потоков; и
процессор выполняет компьютерные команды, так что устройство связи определяет согласно предварительно конфигурированному соответствию между первым целевым путем сервиса и первой аппаратной таблицей потоков, такую первую аппаратную таблицу потоков, соответствующую первому целевому пути сервиса, и эта процедура определения, в частности, содержит:
процессор выполняет компьютерные команды, так что устройство связи, в частности, определяет первую физическую таблицу потоков согласно соответствию между первым целевым путем сервиса и соответствующей первой физической таблицей потоков, и определяет первую аппаратную таблицу потоков согласно соответствию между первой физической таблицей потоков и соответствующей первой аппаратной таблицей потоков.
Пятый аспект предлагает способ конфигурирования записи потока, содержащий:
сообщение, посредством коммутатора, информации относительно пакета данных для первого сервиса контроллеру;
прием, посредством коммутатора, записи потока, которая соответствует первому сервису и которую передал контроллер, согласно информации относительно пакета данных для первого сервиса и структуре таблицы потоков, где структура таблицы потоков содержит поля признаков и действия, поддерживаемые несколькими таблицами потоков, поле признаков, поддерживаемое каждой из нескольких таблиц потоков, представляет собой поле признаков, соответствующее первому сервису, а действие, поддерживаемое каждой из нескольких таблиц потоков, представляет собой действие, соответствующее первому сервису;
определение, посредством коммутатора, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с записью потока, соответствующей первому сервису, где поле признаков в составе первого целевого пути сервиса представляет собой поле признаков, соответствующее первому сервису, а действие в составе целевого пути сервиса представляет собой действия из состава первого сервиса;
определение, посредством коммутатора, целевой аппаратной таблицы потоков согласно предварительно конфигурированному соответствию между путем сервиса и аппаратной таблицей потоков в памяти коммутатора, где целевая аппаратная таблица потоков поддерживает сервис, поддерживаемый первым целевым путем сервиса; и
конфигурирование, посредством коммутатора, записи потока в целевой аппаратной таблице потоков согласно записи потока, соответствующей первому сервису.
Согласно первому возможному варианту способа осуществления пятого аспекта, коммутатор осуществляет связь с контроллером с использованием протокола OpenFlow OpenFlow и нескольких таблиц потоков OpenFlow.
С учетом первого возможного варианта способа осуществления пятого аспекта, согласно второму возможному варианту способа осуществления пятого аспекта, поля признаков из состава нескольких таблиц потоков все представляют собой поля признаков, поддерживаемые протоколом OpenFlow, а действия из состава нескольких таблиц потоков все представляют собой действия, поддерживаемые протоколом OpenFlow.
С учетом пятого аспекта или первого или второго возможных вариантов способа осуществления этого пятого аспекта, согласно третьему возможному варианту способа осуществления пятого аспекта, процедура определения, посредством коммутатора, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с записью потока, соответствующей первому сервису, в частности, содержит:
конфигурирование, посредством коммутатора, записи потока, соответствующей первому сервису, в программной таблице потоков; и
получение, посредством коммутатора, из программной таблицы потоков, первой записи потока, согласованной с пакетом данных для первого сервиса, и определение, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с этой первой записью потока, где совокупность полей признаков в составе найденного первого целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета из группы полей признаков, соответствующих величинам полей признаков из состава первой целевой записи потока, а действие в составе этого первого целевого пути сервиса представляет собой действие, соответствующее величине действия из группы величин действия из состава первой записи потока и используемое для обработки пакета данных для первого сервиса; и
конфигурирование, посредством коммутатора, записи потока из состава целевой аппаратной таблицы потоков согласно записи потока, соответствующей первому сервису, в частности, содержит: конфигурирование, посредством коммутатора, записи потока из состава целевой аппаратной таблицы потоков согласно первой целевой записи потока.
С учетом третьего возможного варианта способа осуществления пятого аспекта, согласно четвертому возможному варианту способа осуществления пятого аспекта, процедура определения, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с первой целевой записью потока, в частности, содержит:
когда имеются две или более первых целевых записей потоков, агрегирование этих первых целевых записей потоков для генерации комбинированной записи потока, где величины полей признаков, входящие в комбинированную запись потока, представляют собой величины полей признаков, которые входят в совокупность величин полей признаков из состава первых целевых записей потоков и соответствуют полю признаков входного порта и полю признаков заголовка пакета, величины действий, входящие в состав комбинированной записи потока, представляют собой величины действий, которые входят в совокупность величин действий из состава первых целевых записей потоков и используются для обработки пакета данных для первого сервиса; и определение, в составе предварительно конфигурированного пути сервиса, одного пути сервиса, в котором поля признаков содержат поля признаков, соответствующие величинам полей признаков из состава комбинированной записи потока, и в котором действия, содержат действия, соответствующие величинам действий из состава комбинированной записи потока, в качестве первого целевого пути сервиса; и
когда имеется только одна первая целевая запись потока, определение, в составе предварительно конфигурированного пути сервиса, одного пути сервиса, в котором поле признаков представляет собой поле признаков, соответствующее величине поля признаков из состава первой целевой записи потока, и в котором действие представляет собой действие, соответствующее величине действия в составе первой целевой записи потока, в качестве первого целевого пути сервиса.
С учетом пятого аспекта или какого-либо из возможных вариантов с первого по четвертый способа осуществления этого пятого аспекта, согласно пятому возможному варианту способа осуществления пятого аспекта, поле признаков и действие, поддерживаемые каждым из нескольких таблиц потоков, далее содержат поле признаков и действие для второго сервиса, причем второй сервис представляет собой сервис, не поддерживаемый аппаратной таблицей потоков, находящейся в памяти коммутатора; и
способ дополнительно содержит:
сообщение, посредством коммутатора, информации относительно пакета данных для второго сервиса контроллеру; и
прием, посредством коммутатора, записи потока, которая соответствует второму сервису и которую передает контроллер согласно информации относительно пакета данных для второго сервиса и структуре таблицы потоков, и конфигурирование записи потока, соответствующей второму сервису, в программной таблице потоков.
С учетом пятого возможного варианта способа осуществления пятого аспекта, согласно шестому возможному варианту способа осуществления пятого аспекта, после конфигурирования записи потока, соответствующей второму сервису, в программной таблице потоков, способ дополнительно содержит:
получение, посредством коммутатора, из программной таблицы потоков, второй целевой записи потока, согласованной с пакетом данных для второго сервиса;
определение, посредством коммутатора, в составе предварительно конфигурированного пути сервиса, второго целевого пути сервиса, согласованного со второй целевой записью потока, где совокупность полей признаков в составе найденного второго целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета из группы полей признаков, соответствующих величинам полей признаков из состава второй целевой записи потока, а действие из состава второго целевого пути сервиса представляет собой действие, соответствующее величине действия, которая входит в совокупность величин действия в составе второй целевой записи потока и которая используется для обработки второго пакета данных;
конфигурирование, посредством коммутатора, согласно второй целевой записи потока, сервисной записи потока в сервисной таблице потоков, соответствующей второму целевому пути сервиса, где эта сервисная таблица потоков представляет собой таблицу точного совпадения, а поля признаков в этой сервисной таблице потоков являются всеми полями признаков в составе второго целевого пути сервиса; конфигурирование величины первого поля признаков в составе сервисной записи потока в виде соответствующей величины поля признаков в составе второй целевой записи потока; конфигурирование величины второго поля признаков в составе сервисной записи потока в виде соответствующей величины поля заголовка в заголовке пакета в составе пакета данных для второго сервиса; и конфигурирование величины действия в составе сервисной записи потока в виде величины действия в составе второй целевой записи потока, где поле признаков, соответствующее величине первого поля признаков, принадлежит к полю признаков, соответствующему величине поля признаков в составе второй записи потока, а поле признаков, соответствующее величине второго поля признаков, не принадлежит к полю признаков, соответствующему величине поля признаков в составе второй записи потока; и
поиск, посредством коммутатора, когда происходит позднее прием следующего пакета данных для второго сервиса, в сервисной таблице потоков для обнаружения сервисной записи потока, согласованной с этим последующим пакетом данных, и обработка этого последующего пакета данных согласно действию из состава найденной сервисной записи потока.
С учетом пятого аспекта или какого-либо из возможных вариантов с первого по шестой способа осуществления этого пятого аспекта, согласно седьмому возможному варианту способа осуществления пятого аспекта, прежде определения целевой аппаратной таблицы потоков согласно предварительно конфигурированному соответствию между путем сервиса и аппаратной таблицей потоков, способ дополнительно содержит: конфигурирование соответствия между путями сервисов и соответствующими аппаратными таблицами потоков, что, в частности, содержит:
конфигурирование нескольких физических таблиц потоков и соответствия между этими физическими таблицами потоков и аппаратными таблицами потоков, где эти несколько физических таблиц потоков по отдельности содержат поддерживаемые поле признаков и действие, поле признаков из каждой физической таблицы потоков входит в совокупность полей признаков в составе соответствующей аппаратной таблицы потоков, а действие, которое входит в совокупность действий в составе каждой физической таблицы потоков и которое нужно записать в аппаратную таблицу потоков, включают в группу действий соответствующей аппаратной таблицы потоков; и
конфигурирование соответствия между путями сервисов и физическими таблицами потоков, где поле признаков в составе каждого пути сервиса входит в совокупность полей признаков из состава всех физических таблиц потоков, а действие в составе каждого пути сервиса входит в группу действий для всех соответствующих физических таблиц потоков; и
процедура определения, посредством коммутатора, целевой аппаратной таблицы потоков согласно предварительно конфигурированному соответствию между путем сервиса и аппаратной таблицей потоков, в частности, содержит:
определение, посредством коммутатора, первой физической таблицы потоков, согласно соответствию между первым целевым путем сервиса и соответствующей первой физической таблицей потоков, и определение целевой аппаратной таблицы потоков согласно соответствию между первой физической таблицей потоков и соответствующей целевой аппаратной таблицей потоков.
С учетом пятого аспекта или какого-либо из возможных вариантов с первого по седьмой способа осуществления этого пятого аспекта, согласно восьмому возможному варианту способа осуществления пятого аспекта, прежде сообщения, посредством коммутатора, информации относительно пакета данных для первого сервиса контроллеру, способ дополнительно содержит: сообщение, посредством коммутатора, структуры таблицы потоков контроллеру.
С учетом пятого аспекта или какого-либо из возможных вариантов с первого по восьмой способа осуществления этого пятого аспекта, согласно девятому возможному варианту способа осуществления пятого аспекта, структура таблицы потоков далее содержит указание типов нескольких таблиц потоков, где эти типы нескольких таблиц потоков представляют собой универсальный тип (wildcard type).
Шестой аспект предлагает способ конфигурирования записи потока, содержащий:
сообщение, посредством устройства связи, информации относительно пакета данных для первого сервиса контроллеру;
прием, посредством устройства связи, записи потока, которая соответствует первому сервису и которую передал контроллер, согласно информации относительно пакета данных для первого сервиса и структуре таблицы потоков, где структура таблицы потоков содержит поля признаков и действия, поддерживаемые несколькими таблицами потоков, поле признаков, поддерживаемое каждой из нескольких таблиц потоков, представляет собой поле признаков, соответствующее первому сервису, а действие, поддерживаемое каждой из нескольких таблиц потоков, представляет собой действие, соответствующее первому сервису;
определение, посредством устройства связи, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с записью потока, соответствующей первому сервису, где поле признаков в составе первого целевого пути сервиса представляет собой поле признаков для первого сервиса, а действие в составе целевого пути сервиса представляет собой действие из состава первого сервиса;
определение, посредством устройства связи, целевой аппаратной таблицы потоков согласно предварительно конфигурированному соответствию между путем сервиса и аппаратной таблицей потоков в памяти кристалла интегральной схемы аппаратного передатчика, соединенного с устройством связи, где эта целевая аппаратная таблица потоков поддерживает сервис, поддерживаемый первым целевым путем сервиса; и
конфигурирование, посредством устройства связи, записи потока в целевой аппаратной таблице потоков согласно записи потока, соответствующей первому сервису.
Согласно первому возможному варианту способа осуществления шестого аспекта, устройство связи осуществляет связь с контроллером с использованием протокола OpenFlow OpenFlow, а таблицы потоков представляют собой таблицы потоков для протокола OpenFlow; поля признаков в составе этих нескольких таблиц потоков все представляют собой поля признаков, поддерживаемые протоколом OpenFlow, а действия в составе этих нескольких таблиц потоков все представляют собой действия, поддерживаемые протоколом OpenFlow.
С учетом шестого аспекта или первого возможного варианта способа осуществления этого шестого аспекта, согласно второму возможному варианту способа осуществления шестого аспекта, процедура определения, посредством устройства связи, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с записью потока, соответствующей первому сервису, в частности, содержит:
конфигурирование, посредством устройства связи, записи потока, соответствующей первому сервису, в программной таблице потоков; и
получение, посредством устройства связи, из программной таблицы потоков, первой целевой записи потока, согласованной с пакетом данных для первого сервиса, и определение, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с первой целевой записью потока, где совокупность полей признаков в составе найденного первого целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета из группы полей признаков, соответствующих величинам полей признаков из состава первой целевой записи потока, а действие в составе этого первого целевого пути сервиса представляет собой действие, соответствующее величине действия из группы величин действия из состава первой целевой записи потока и используемое для обработки первого пакета данных; и
конфигурирование, посредством устройства связи, записи потока из состава целевой аппаратной таблицы потоков согласно записи потока, соответствующей первому сервису, в частности, содержит: конфигурирование, посредством устройства связи, записи потока из состава целевой аппаратной таблицы потоков согласно первой целевой записи потока.
С учетом второго возможного варианта способа осуществления шестого аспекта, согласно третьему возможному варианту способа осуществления шестого аспекта, процедура определения, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с первой целевой записью потока, в частности, содержит:
когда имеются две или более первых целевых записей потоков, агрегирование этих первых целевых записей потоков для генерации комбинированной записи потока, где величины полей признаков, входящие в комбинированную запись потока, представляют собой величины полей признаков, которые входят в совокупность величин полей признаков из состава первых целевых записей потоков и соответствуют полю признаков входного порта и полю признаков заголовка пакета, а величины действий, входящие в состав комбинированной записи потока, представляют собой величины действий, которые входят в совокупность величин действий из состава первых целевых записей потоков и используются для обработки пакета данных для первого сервиса; и определение, в составе предварительно конфигурированного пути сервиса, одного пути сервиса, в котором поля признаков содержат поля признаков, соответствующие величинам полей признаков из состава комбинированной записи потока, и в котором действия, содержат действия, соответствующие величинам действий из состава комбинированной записи потока, в качестве первого целевого пути сервиса; и
когда имеется только одна первая целевая запись потока, определение, в составе предварительно конфигурированного пути сервиса, одного пути сервиса, в котором поле признаков представляет собой поле признаков, соответствующее величине поля признаков из состава первой целевой записи потока, и в котором действие представляет собой действие, соответствующее величине действия в составе первой целевой записи потока, в качестве первого целевого пути сервиса.
С учетом шестого аспекта или какого-либо из возможных вариантов с первого по третий способа осуществления этого шестого аспекта, согласно четвертому возможному варианту способа осуществления шестого аспекта, поле признаков и действие, поддерживаемые каждой из нескольких таблиц потоков, далее представляют собой поле признаков и действие, соответствующие второму сервису, а второй сервис представляет собой сервис, не поддерживаемый аппаратной таблицей потоков в памяти коммутатора; и
способ дополнительно содержит:
сообщение, посредством устройства связи, информации относительно пакета данных для второго сервиса контроллеру; и
прием, посредством устройства связи, записи потока, которая соответствует второму сервису и которую передает контроллер, согласно информации относительно пакета данных для второго сервиса и структуре таблицы потоков, и конфигурирование записи потока, соответствующей второму сервису, в программной таблице потоков.
С учетом четвертого возможного варианта способа осуществления шестого аспекта, согласно пятому возможному варианту способа осуществления шестого аспекта, после конфигурирования записи потока, соответствующей второму сервису, в программной таблице потоков, способ дополнительно содержит:
получение, посредством устройства связи, из состава программной таблицы потоков, второй целевой записи потока, согласованной с пакетом данных для второго сервиса;
определение, посредством устройства связи, в составе предварительно конфигурированного пути сервиса, второго целевого пути сервиса, согласованного со второй целевой записью потока, где совокупность полей признаков в составе найденного второго целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета из группы полей признаков, соответствующих величинам полей признаков из состава второй целевой записи потока, а действие из состава найденного второго целевого пути сервиса представляет собой действие, соответствующее величине действия, которая входит в совокупность величин действия в составе второй целевой записи потока и которая используется для обработки пакета данных для второго сервиса;
конфигурирование, посредством устройства связи, согласно второй целевой записи потока, сервисной записи потока в сервисной таблице потоков, соответствующей второму целевому пути сервиса, где эта сервисная таблица потоков представляет собой таблицу точного совпадения, а поля признаков в этой сервисной таблице потоков являются всеми полями признаков в составе второго целевого пути сервиса; конфигурирование величины первого поля признаков в составе сервисной записи потока в виде соответствующей величины поля признаков в составе второй целевой записи потока; конфигурирование величины второго поля признаков в составе сервисной записи потока в виде соответствующей величины поля заголовка в заголовке пакета в составе пакета данных для второго сервиса; и конфигурирование величины действия в составе сервисной записи потока в виде величины действия в составе второй целевой записи потока, где поле признаков, соответствующее величине первого поля признаков, принадлежит к полю признаков, соответствующему величине поля признаков в составе второй целевой записи потока, а поле признаков, соответствующее величине второго поля признаков, не принадлежит к полю признаков, соответствующему величине поля признаков в составе второй записи потока; и
поиск, посредством устройства связи, когда происходит позднее прием последующего пакета данных для второго сервиса, в сервисной таблице потоков для обнаружения сервисной записи потока, согласованной с этим последующим потоком данных, и обработку этого последующего пакета данных согласно действию из состава найденной сервисной записи потока.
С учетом шестого аспекта или какого-либо из возможных вариантов с первого по пятый способа осуществления этого шестого аспекта, согласно шестому возможному варианту способа осуществления шестого аспекта, прежде определения целевой аппаратной таблицы потоков, согласно предварительно конфигурированному соответствию между путем сервиса и аппаратной таблицей потоков, способ дополнительно содержит: конфигурирование соответствия между путями сервисов и соответствующими аппаратными таблицами потоков, способ, в частности, содержит:
конфигурирование нескольких физических таблиц потоков и соответствия между этими физическими таблицами потоков и аппаратными таблицами потоков, где эти несколько физических таблиц потоков по отдельности содержат поддерживаемые поле признаков и действие, поле признаков из каждой физической таблицы потоков входит в совокупность полей признаков в составе соответствующей аппаратной таблицы потоков, а действие, которое входит в совокупность действий в составе каждой физической таблицы потоков и которое нужно записать в аппаратную таблицу потоков, включают в группу действий соответствующей аппаратной таблицы потоков; и
конфигурирование соответствия между путями сервисов и физическими таблицами потоков, где поле признаков в составе каждого пути сервиса входит в совокупность полей признаков из состава всех физических таблиц потоков, а действие в составе каждого пути сервиса входит в группу действий для всех соответствующих физических таблиц потоков; и
процедура определения, посредством устройства связи, целевой аппаратной таблицы потоков согласно предварительно конфигурированному соответствию между путем сервиса и аппаратной таблицей потоков, в частности, содержит:
определение, посредством устройства связи, первой физической таблицы потоков, согласно соответствию между первым целевым путем сервиса и соответствующей первой физической таблицей потоков, и определение целевой аппаратной таблицы потоков согласно соответствию между первой физической таблицей потоков и соответствующей целевой аппаратной таблицей потоков.
С учетом шестого аспекта или какого-либо из возможных вариантов с первого по шестой способа осуществления этого шестого аспекта, согласно седьмому возможному варианту способа осуществления шестого аспекта, структура таблицы потоков далее содержит указание типов нескольких таблиц потоков, причем эти типы нескольких таблиц потоков представляют собой универсальный тип (wildcard type).
Седьмой аспект предлагает устройство связи для осуществления конфигурирования записи потока, где это устройство связи соединено с кристаллом интегральной схемы аппаратного передатчика, и содержит интерфейсный модуль, модуль обработки пакетов данных и модуль конфигурирования аппаратной таблицы потоков, где:
интерфейсный модуль конфигурирован для сообщения информации относительно пакета данных для первого сервиса контроллеру и далее конфигурирован для приема записи потока, которая соответствует первому сервису и которую передает этот контроллер, согласно информации относительно пакета данных и структуре таблицы потоков, где эта структура таблицы потоков содержит поля признаков и действия, поддерживаемые указанными несколькими таблицами потоков, поле признаков, поддерживаемое каждой из нескольких таблиц потоков, представляет собой поле признаков, соответствующее первому сервису, и действие, поддерживаемое каждой из этих нескольких таблиц потоков, представляет собой действие, соответствующее первому сервису;
модуль обработки пакетов данных конфигурирован для определения, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с записью потока, соответствующей первому сервису, где совокупность полей признаков этого первого целевого пути сервиса содержит поле признаков, соответствующее первому сервису, и действие в составе первого целевого пути сервиса представляет собой действие, соответствующее первому сервису; а модуль обработки пакетов данных конфигурирован для определения целевой аппаратной таблицы потоков согласно предварительно конфигурированному соответствию между путем сервиса и аппаратной таблицей потоков в памяти кристаллов интегральной схемы аппаратного передатчика, где эта целевая аппаратная таблица потоков поддерживает сервис, поддерживаемый первым целевым путем сервиса; и
модуль конфигурирования аппаратной таблицы потоков конфигурирован для осуществления конфигурирования записи потока в составе целевой аппаратной таблицы потоков согласно записи потока, соответствующей первому сервису.
Согласно первому возможному варианту способа осуществления седьмого аспекта, устройство связи осуществляет связь с контроллером с использованием протокола OpenFlow OpenFlow, а таблицы потоков представляют собой таблицы потоков OpenFlow; поля признаков в составе нескольких таблиц потоков все представляют собой поля признаков, поддерживаемых протоколом OpenFlow, и действия в составе нескольких таблиц потоков все представляют собой действия, поддерживаемые протоколом OpenFlow.
С учетом седьмого аспекта или первого возможного варианта способа осуществления этого седьмого аспекта, согласно второму возможному варианту способа осуществления седьмого аспекта, модуль обработки пакетов данных конфигурирован для определения, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с записью потока, соответствующей первому сервису, в частности, содержит:
модуль обработки пакетов данных конфигурирован для того, чтобы: осуществить конфигурирование записи потока, соответствующей первому сервису, в программной таблице потоков, получить, из программной таблицы потоков первую целевую запись потока, согласованную с пакетом данных для первого сервиса, и определить, в составе предварительно конфигурированного пути сервиса, первый целевой путь сервиса, согласованный с первой целевой записи потока, где совокупность полей признаков в составе найденного первого целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета из группы полей признаков, соответствующих величинам полей признаков из состава первой целевой записи потока, а действие в составе этого первого целевого пути сервиса представляет собой действие, соответствующее величине действия из группы величин действия из состава первой целевой записи потока и используемое для обработки первого пакета данных; и
модуль конфигурирования аппаратной таблицы потоков специально конфигурирован для осуществления конфигурирования записи потока в составе целевой аппаратной таблицы потоков согласно первой целевой записи потока.
С учетом второго возможного варианта способа осуществления седьмого аспекта, согласно третьему возможному варианту способа осуществления седьмого аспекта, модуль обработки пакетов данных, конфигурированный для определения, в составе предварительно конфигурированного пути сервиса, целевого пути сервиса, согласованного с первой целевой записью потока, в частности, содержит:
модуль обработки пакетов данных конфигурирован для того, чтобы: когда имеются две или более первых целевых записей потоков, осуществить агрегирование этих первых целевых записей потоков для генерации комбинированной записи потока, где величины полей признаков, входящие в комбинированную запись потока, представляют собой величины полей признаков, которые входят в совокупность величин полей признаков из состава первых целевых записей потоков и соответствуют полю признаков входного порта и полю признаков заголовка пакета, а величины действий, входящие в состав комбинированной записи потока, представляют собой величины действий, которые входят в совокупность величин действий из состава первых целевых записей потоков и используются для обработки пакета данных для первого сервиса; и определение, в составе предварительно конфигурированного пути сервиса, одного пути сервиса, в котором поля признаков содержат поля признаков, соответствующие величинам полей признаков из состава комбинированной записи потока, и в котором действия, содержат действия, соответствующие величинам действий из состава комбинированной записи потока, в качестве первого целевого пути сервиса; и модуль обработки пакетов данных конфигурирован для того, чтобы: когда имеется только одна первая целевая запись потока, осуществить определение, в составе предварительно конфигурированного пути сервиса, одного пути сервиса, в котором поле признаков представляет собой поле признаков, соответствующее величине поля признаков из состава первой целевой записи потока, и в котором действие представляет собой действие, соответствующее величине действия в составе первой целевой записи потока, в качестве первого целевого пути сервиса.
С учетом седьмого аспекта или какого-либо из возможных вариантов с первого по третий способа осуществления этого седьмого аспекта, согласно четвертому возможному варианту способа осуществления седьмого аспекта, поле признаков и действие, поддерживаемые каждой из нескольких таблиц потоков, представляют собой поле признаков и действие, соответствующие второму сервису, где этот второй сервис представляет собой сервис, не поддерживаемый аппаратной таблицей потоков, хранящейся в памяти коммутатора; и
интерфейсный модуль дополнительно конфигурирован для того, чтобы сообщать информацию относительно пакета данных для второго сервиса контроллеру, и принимать запись потока, которая соответствует второму сервису и которую передает контроллер, согласно информации относительно пакета данных для второго сервиса и структуры таблицы потоков; и
модуль обработки пакетов данных дополнительно конфигурирован для того, чтобы осуществлять конфигурирование записи потока, которая соответствует второму сервису и которую принял интерфейсный модуль, в программной таблице потоков.
С учетом седьмого аспекта или какого-либо из возможных вариантов с первого по четвертый способа осуществления этого седьмого аспекта, согласно пятому возможному варианту способа осуществления седьмого аспекта, устройство связи содержит модуль конфигурирования сервисной таблицы потоков, где:
модуль обработки пакетов данных далее конфигурирован для получения из состава программной таблицы потоков, второй целевой записи потока, согласованной с пакетом данных для второго сервиса, и определения, в составе предварительно конфигурированного пути сервиса, второго целевого пути сервиса, согласованного со второй целевой записью потока, где совокупность полей признаков в составе найденного второго целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета из группы полей признаков, соответствующих величинам полей признаков из состава второй целевой записи потока, а действие из состава найденного второго целевого пути сервиса представляет собой действие, соответствующее величине действия, которая входит в совокупность величин действия в составе второй целевой записи потока и которая используется для обработки пакета данных для второго сервиса;
модуль конфигурирования сервисной таблицы потоков конфигурирован для того, чтобы: конфигурировать, согласно второй целевой записи потока, сервисную запись потока в сервисной таблице потоков, соответствующей второму целевому пути сервиса, где эта сервисная таблица потоков представляет собой таблицу точного совпадения, а поля признаков в этой сервисной таблице потоков все являются полями признаков в составе второго целевого пути сервиса; конфигурировать величину первого поля признаков в составе сервисной записи потока в виде соответствующей величины поля признаков в составе второй целевой записи потока; конфигурировать величину второго поля признаков в составе сервисной записи потока в виде соответствующей величины поля заголовка в заголовке пакета в составе пакета данных для второго сервиса; и конфигурировать величину действия в составе сервисной записи потока в виде величины действия в составе второй записи потока, где поле признаков, соответствующее величине первого поля признаков, принадлежит к полю признаков, соответствующему величине поля признаков в составе второй целевой записи потока, а поле признаков, соответствующее величине второго поля признаков, не принадлежит к полю признаков, соответствующему величине поля признаков в составе второй записи потока; и
модуль обработки пакетов данных далее конфигурирован для того, чтобы: осуществлять поиск, когда происходит позднее прием последующего пакета данных для второго сервиса, в сервисной таблице потоков для обнаружения сервисной записи потока, согласованной с этим последующим потоком данных, и обрабатывать этот последующий пакет данных согласно действию из состава найденной сервисной записи потока.
С учетом седьмого аспекта или какого-либо из возможных вариантов с первого по пятый способа осуществления этого седьмого аспекта, согласно шестому возможному варианту способа осуществления седьмого аспекта, устройство связи далее содержит модуль конфигурирования соответствия, где:
модуль конфигурирования соответствия конфигурирован для того, чтобы конфигурировать соответствие между путями сервисов и соответствующими аппаратными таблицами потоков, что, в частности, содержит: этот модуль конфигурирования соответствия конфигурирован для того, чтобы: конфигурировать несколько физических таблиц потоков и соответствия между этими физическими таблицами потоков и аппаратными таблицами потоков, где эти несколько физических таблиц потоков по отдельности содержат поддерживаемые поле признаков и действие, поле признаков из каждой физической таблицы потоков входит в совокупность полей признаков в составе соответствующей аппаратной таблицы потоков, а действие, которое входит в совокупность действий в составе каждой физической таблицы потоков и которое нужно записать в аппаратную таблицу потоков, включают в группу действий соответствующей аппаратной таблицы потоков; и этот модуль конфигурирования соответствия конфигурирован для того, чтобы конфигурировать соответствие между путями сервисов и физическими таблицами потоков, где поле признаков в составе каждого пути сервиса входит в совокупность полей признаков из состава всех физических таблиц потоков, а действие в составе каждого пути сервиса входит в группу действий для всех соответствующих физических таблиц потоков; и
модуль обработки пакетов данных конфигурирован для определения целевой аппаратной таблицы потоков согласно предварительно конфигурированному соответствию между путем сервиса и аппаратной таблицей потоков, что, в частности, содержит: модуль обработки пакетов данных конфигурирован для определения первой физической таблицы потоков, согласно соответствию между первым целевым путем сервиса и соответствующей первой физической таблицей потоков, и определения целевой аппаратной таблицы потоков согласно соответствию между первой физической таблицей потоков и соответствующей целевой аппаратной таблицей потоков.
Восьмой аспект предлагает устройство связи для осуществления конфигурирования записи потока, содержащее процессор и запоминающее устройство, где:
запоминающее устройство конфигурировано для сохранения компьютерных команд; и
процессор конфигурирован для выполнения этих компьютерных команд, сохраняемых в запоминающем устройстве, так что это устройство связи выполняет следующие операции:
сообщение информации относительно пакета данных для первого сервиса контроллеру;
прием записи потока, которая соответствует первому сервису и которую передает контроллер, согласно информации относительно пакета данных для первого сервиса и структуре таблицы потоков, где эта структура таблицы потоков содержит поля признаков и действия, поддерживаемые несколькими таблицами потоков, поле признаков, поддерживаемое каждой из нескольких таблиц потоков, представляет собой поле признаков, соответствующее первому сервису, а действие, поддерживаемое каждой из нескольких таблиц потоков, представляет собой действие, соответствующее первому сервису;
определение, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с записью потока, соответствующей первому сервису, где поле признаков в составе найденного первого целевого пути сервиса содержит поле признаков, соответствующее первому сервису, а действие в составе этого первого целевого пути сервиса представляет собой действие, соответствующее первому сервису;
определение, согласно предварительно конфигурированному соответствию между путем сервиса и аппаратной таблицей потоков в памяти кристалла интегральной схемы аппаратного передатчика, соединенного с устройством связи, целевой аппаратной таблицы потоков, где эта первая аппаратная таблица потоков поддерживает сервис, поддерживаемый первым целевым путем сервиса; и
конфигурирование записи потока в целевой аппаратной таблице потоков согласно записи потока, соответствующей первому сервису.
Согласно первому возможному варианту способа осуществления восьмого аспекта, устройство связи осуществляет связь с контроллером с использованием протокола OpenFlow OpenFlow, а указанные таблицы потоков представляют собой таблицы потоков OpenFlow; поля признаков в составе нескольких таблиц потоков все представляют собой поля признаков, поддерживаемые протоколом OpenFlow, и действия в составе нескольких таблиц потоков все представляют собой действия, поддерживаемые протоколом OpenFlow.
С учетом восьмого аспекта или первого возможного варианта способа осуществления этого восьмого аспекта, согласно второму возможному варианту способа осуществления восьмого аспекта, процессор выполняет компьютерные команды, так что устройство связи, в частности, осуществляет следующие операции:
конфигурирование записи потока, соответствующей первому сервису, в программной таблице потоков; и
получение, из программной таблицы потоков, первой целевой записи потока, согласованной с пакетом данных для первого сервиса, и определение, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с первой целевой записью потока, где совокупность полей признаков в составе найденного первого целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета в составе группы полей признаков, соответствующих величинам полей признаков в составе первой целевой записи потока, и действие для этого найденного первого целевого пути сервиса содержит действие, соответствующее величине действия, представляющей собой величину действия в составе первой целевой записи потока и используемой для обработки пакета данных для первого сервиса; и
конфигурирование записи потока в составе целевой аппаратной таблицы потоков согласно записи потока, соответствующей первому сервису, в частности, содержит: конфигурирование, посредством устройства связи, записи потока в составе целевой аппаратной таблицы потоков согласно первой целевой записи потока.
С учетом второго возможного варианта способа осуществления восьмого аспекта, согласно третьему возможному варианту способа осуществления восьмого аспекта, процессор выполняет компьютерные команды, так что устройство связи, в частности, осуществляет следующие операции:
когда имеются две или более первых целевых записей потоков, агрегирование этих первых целевых записей потоков для генерации комбинированной записи потока, где величины полей признаков, входящие в комбинированную запись потока, представляют собой величины полей признаков, которые входят в совокупность величин полей признаков из состава первых целевых записей потоков и соответствуют полю признаков входного порта и полю признаков заголовка пакета, а величины действий, входящие в состав комбинированной записи потока, представляют собой величины действий, которые входят в совокупность величин действий из состава первых целевых записей потоков и используются для обработки пакета данных для первого сервиса; и определение, в составе предварительно конфигурированного пути сервиса, одного пути сервиса, в котором поля признаков содержат поля признаков, соответствующие величинам полей признаков из состава комбинированной записи потока, и в котором действия, содержат действия, соответствующие величинам действий из состава комбинированной записи потока, в качестве первого целевого пути сервиса; и
когда имеется только одна первая целевая запись потока, определение, в составе предварительно конфигурированного пути сервиса, одного пути сервиса, в котором поле признаков представляет собой поле признаков, соответствующее величине поля признаков из состава первой целевой записи потока, и в котором действие представляет собой действие, соответствующее величине действия в составе первой целевой записи потока, в качестве первого целевого пути сервиса.
С учетом восьмого аспекта или какого-либо из возможных вариантов с первого по третий способа осуществления этого восьмого аспекта, согласно четвертому возможному варианту способа осуществления восьмого аспекта, поле признаков и действие, поддерживаемые каждой из нескольких таблиц потоков, далее представляют собой поле признаков и действие, соответствующие второму сервису, а этот второй сервис представляет собой сервис, не поддерживаемый аппаратной таблицей потоков, записанной в памяти коммутатора; и
процессор выполняет компьютерные команды, так что устройство связи далее осуществляет следующие операции:
сообщение информации относительно пакета данных для второго сервиса контроллеру; и
прием записи потока, которая соответствует второму сервису и которую передает контроллер согласно информации относительно указанного пакета данных для второго сервиса и структуре таблицы потоков, и конфигурирование записи потока, соответствующей второму сервису, в программной таблице потоков.
С учетом четвертого возможного варианта способа осуществления восьмого аспекта, согласно пятому возможному варианту способа осуществления восьмого аспекта, процессор выполняет компьютерные команды, так что устройство связи далее осуществляет следующие операции:
получение, из программной таблицы потоков, второй целевой записи потока, согласованной с пакетом данных для второго сервиса;
определение, в составе предварительно конфигурированного пути сервиса, второго целевого пути сервиса, согласованного со второй целевой записью потока, где совокупность полей признаков в составе найденного второго целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета из группы полей признаков, соответствующих величинам полей признаков из состава второй целевой записи потока, а действие из состава найденного второго целевого пути сервиса представляет собой действие, соответствующее величине действия, которая входит в совокупность величин действия в составе второй целевой записи потока и которая используется для обработки пакета данных для второго сервиса;
конфигурирование, согласно второй целевой записи потока, сервисной записи потока в сервисной таблице потоков, соответствующей второму целевому пути сервиса, где эта сервисная таблица потоков представляет собой таблицу точного совпадения, а поля признаков в этой сервисной таблице потоков все являются полями признаков в составе второго целевого пути сервиса; конфигурирование величины первого поля признаков в составе сервисной записи потока в виде соответствующей величины поля признаков в составе второй целевой записи потока; конфигурирование величины второго поля признаков в составе сервисной записи потока в виде соответствующей величины поля заголовка в заголовке пакета в составе пакета данных для второго сервиса; и конфигурирование величины действия в составе сервисной записи потока в виде величины действия в составе второй целевой записи потока, где поле признаков, соответствующее величине первого поля признаков, принадлежит к полю признаков, соответствующему величине поля признаков в составе второй целевой записи потока, а поле признаков, соответствующее величине второго поля признаков, не принадлежит к полю признаков, соответствующему величине поля признаков в составе второй записи потока; и
поиск, когда происходит позднее прием последующего пакета данных для второго сервиса, в сервисной таблице потоков для обнаружения сервисной записи потока, согласованной с этим последующим пакетом данных, и обработку этого последующего пакета данных согласно действию из состава найденной сервисной записи потока; или
определение, в составе предварительно конфигурированного пути сервиса, второго целевого пути сервиса, согласованного со второй записью потока, где совокупность полей признаков в составе найденного второго целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета из группы полей признаков, соответствующих величинам полей признаков из состава второй целевой записи потока, а действие из состава найденного второго целевого пути сервиса представляет собой действие, соответствующее величине действия, которая входит в совокупность величин действия в составе второй записи потока и которая используется для обработки второго пакета данных;
конфигурирование, согласно второй записи потока, сервисной записи потока в сервисной таблице потоков, соответствующей второму целевому пути сервиса, где эта сервисная таблица потоков представляет собой таблицу точного совпадения, а поля признаков в этой сервисной таблице потоков являются всеми полями признаков в составе второго целевого пути сервиса; конфигурирование величины первого поля признаков в составе сервисной записи потока в виде соответствующей величины поля признаков в составе первой записи потока; конфигурирование величины второго поля признаков в составе сервисной записи потока в виде соответствующей величины поля заголовка в заголовке пакета в составе второго пакета данных; и конфигурирование величины действия в составе сервисной записи потока в виде величины действия в составе второй записи потока, где поле признаков, соответствующее величине первого поля признаков, принадлежит к полю признаков, соответствующему величине поля признаков в составе первой записи потока, а поле признаков, соответствующее величине второго поля признаков, не принадлежит к полю признаков, соответствующему величине поля признаков в составе второй записи потока; и
поиск, когда происходит позднее прием последующего пакета данных для второго сервиса, в сервисной таблице потоков для обнаружения сервисной записи потока, согласованной с этим последующим потоком данных, и обработка этого последующего пакет данных согласно действию из состава найденной сервисной записи потока.
С учетом восьмого аспекта или какого-либо из возможных вариантов с первого по пятый способа осуществления этого восьмого аспекта, согласно шестому возможному варианту способа осуществления восьмого аспекта, процессор выполняет компьютерные команды, так что устройство связи далее выполняет следующие операции: конфигурирование соответствия между путями сервисов и соответствующими аппаратными таблицами потоков, и конфигурирование соответствия между путями сервисов и соответствующими аппаратными таблицами потоков, где процедура конфигурирования, в частности, содержит:
конфигурирование нескольких физических таблиц потоков и соответствия между этими физическими таблицами потоков и аппаратными таблицами потоков, где эти несколько физических таблиц потоков по отдельности содержат поддерживаемые поле признаков и действие, поле признаков из каждой физической таблицы потоков входит в совокупность полей признаков в составе соответствующей аппаратной таблицы потоков, а действие, которое входит в совокупность действий в составе каждой физической таблицы потоков и которое нужно записать в аппаратную таблицу потоков, включают в группу действий соответствующей аппаратной таблицы потоков; и
конфигурирование соответствия между путями сервисов и физическими таблицами потоков, где поле признаков в составе каждого пути сервиса входит в совокупность полей признаков из состава всех физических таблиц потоков, а действие в составе каждого пути сервиса входит в группу действий для всех соответствующих физических таблиц потоков; и
выполнение процессором компьютерных команд, так что процедура определения, посредством устройства связи, целевой аппаратной таблицы потоков согласно предварительно конфигурированному соответствию между путем сервиса и аппаратной таблицей потоков, в частности, содержит:
выполнение процессором компьютерных команд, так что устройство связи, в частности, определяет первую физическую таблицу потоков, согласно соответствию между первым целевым путем сервиса и соответствующей первой физической таблицей потоков, и определяет целевую аппаратную таблицу потоков согласно соответствию между первой физической таблицей потоков и соответствующей целевой аппаратной таблицей потоков.
Девятый аспект предлагает коммутатор, содержащий:
кристалл интегральной схемы аппаратного передатчика; и
устройство связи согласно третьему аспекту или какому-либо из возможных вариантов осуществления этого третьего аспекта с первого по пятый, либо устройство связи согласно четвертому аспекту или какому-либо из возможных вариантов осуществления этого четвертого аспекта с первого по пятый, либо устройство связи согласно седьмому аспекту или какому-либо из возможных вариантов осуществления этого седьмого аспекта с первого по шестой, либо устройство связи согласно восьмому аспекту или какому-либо из возможных вариантов осуществления этого восьмого аспекта с первого по шестой.
Десятый аспект предлагает систему связи, содержащую контроллер и коммутатор согласно девятому аспекту.
Согласно вариантам настоящего изобретения, все таблицы потоков OpenFlow могут быть использованы для осуществления первого сервиса, и поэтому, в соответствии с логической схемой обработки данных в контроллере, независимо от того, какой таблице потока или каким таблицам потоков принадлежит запись потока, генерируемая для первого сервиса, эту запись потока можно с успехом генерировать и передавать. Кроме того, первый целевой путь сервиса, найденный посредством коммутатора, содержит поле признаков и действие, соответствующие величине поля признаков и величине действия, относящихся к пакету данных для первого сервиса; поэтому, первый целевой путь сервиса поддерживает указанный первый сервис. Более того, поскольку аппаратная таблица потоков, соответствующая первому целевому пути сервиса, поддерживает сервис, поддерживаемый первым целевым путем сервиса, эта аппаратная таблица потоков, соответствующая первого целевого пути сервиса представляет собой аппаратную таблицу потоков, поддерживающую первый сервис. Далее, коммутатор может конфигурировать, в указанной аппаратной таблице потоков, запись потока, используемую для осуществления первого сервиса. Поэтому, независимо от того, к какому контроллеру присоединен коммутатор, этот коммутатор может успешно конфигурировать, в аппаратной таблице потоков, запись потока, используемую для осуществления первого сервиса, с целью успешно обрабатывать данные и команды для первого сервиса, тем самым уменьшая вероятность отказов в обработке первого сервиса.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Для более ясного описания технических решений вариантов настоящего изобретения далее следует краткое введение к прилагаемым чертежам, необходимым для описания вариантов настоящего изобретения или известной техники. Очевидно, что прилагаемые чертежи в последующем описании показывают всего лишь несколько вариантов настоящего изобретения, так что даже рядовой специалист в рассматриваемой области может на основе прилагаемых чертежей построить другие чертежи без особых творческих усилий.
Фиг. 1-1 – 1-2 представляют упрощенные схемы сетевой структуры для системы связи, согласно одному из вариантов настоящего изобретения.
Фиг. 2 представляет упрощенную логическую схему способа согласно варианту 1 настоящего изобретения.
Фиг. 3-1 – 3-2 представляют упрощенные структурные схемы устройства 200 связи согласно варианту 2 настоящего изобретения.
Фиг. 4 представляет упрощенную структурную схему устройства 300 связи согласно варианту 3 настоящего изобретения.
Фиг. 5 представляет упрощенную структурную схему коммутатора 400 согласно варианту 4 настоящего изобретения.
Фиг. 6 представляет упрощенную структурную схему устройства 500 связи согласно варианту 6 настоящего изобретения.
ОПИСАНИЕ ВАРИАНТОВ
Далее четко и полностью описаны технические решения вариантов настоящего изобретения со ссылками на прилагаемые чертежи вариантов настоящего изобретения. Очевидно, описываемые варианты представляют всего лишь некоторые, но не все варианты настоящего изобретения. Все другие варианты, которые могут быть получены даже рядовым специалистом в рассматриваемой области на основе изложенных здесь вариантов настоящего изобретения без особых творческих усилий, попадут в объем защиты настоящего изобретения.
На фиг. 1-1 представлена упрощенная схема сетевой структуры для системы связи, согласно одному из вариантов настоящего изобретения. Эта система связи содержит коммутатор (Switch) 110 и контроллер (Controller) 120, где коммутатор 110 осуществляет связь с контроллером 120 с использованием протокола OpenFlow.
Как показано на фиг. 1-2, коммутатор 110 может содержать устройство 110-1 связи на верхнем уровне и кристалл 110-2 интегральной схемы аппаратного передатчика на нижнем уровне, где этот кристалл 110-2 интегральной схемы аппаратного передатчика может, в частности, представлять собой кристалл специализированной интегральной схемы (Application Specific Integrated Circuits, ASIC), и при этом кристалл интегральной схемы аппаратного передатчика имеет в памяти аппаратную таблицу потоков, такую как список управления доступом (Access control list, ACL) 1 и список ACL 2.
Способ, устройство и система, предлагаемые вариантами настоящего изобретения, применимы в программно-конфигурируемых сетях (software defined network, сокращенно SDN), где такая система SDN содержит контроллер и коммутатор. Протокол, используемый для связи между контроллером и коммутатором, может представлять собой протокол OpenFlow или может быть каким-либо частным протоколом или другим стандартным протоколом. Структура таблицы потоков, используемая контроллером для передачи записи потока, может быть сообщена посредством коммутатора контроллеру или предварительно конфигурирована в этом контроллере. Кроме того, когда контроллер осуществляет связь с коммутатором с использованием протокола OpenFlow, эта структура таблицы потоков содержит поле признаков и действие, поддерживаемые таблицей потоков OpenFlow.
Следующие варианты описаны подробно с использованием примера, в котором применяется протокол OpenFlow. Способ осуществления изобретения, в котором используется другой протокол, аналогичен способу с применением протокола OpenFlow, ссылки могут быть сделаны на способы осуществления изобретения согласно следующим вариантам, а подробности здесь повторно описаны не будут.
На фиг. 2 представлена упрощенная логическая схема способа согласно варианту 1 настоящего изобретения. Способ согласно варианту 1 настоящего изобретения может быть применен к системе связи, показанной на фиг. 1-1 или фиг. 1-2.
Как показано на фиг. 2, способ согласно варианту 1 настоящего изобретения, содержит:
S110: коммутатор (коммутатор 110, показанный на фиг. 1-1) сообщает структуру таблицы потоков контроллеру (контроллер 120, показанный на фиг. 1-1) с использованием протокола OpenFlow, где структура таблицы потоков содержит поля признаков и действия, поддерживаемые несколькими таблицами потоков OpenFlow и указание типов этих нескольких таблиц потоков OpenFlow, здесь имеет место пересечение между полями признаков и действиями, поддерживаемыми указанными несколькими таблицами потоков OpenFlow, это пересечение содержит поле признаков и действие, используемые для осуществления первого сервиса, поддерживаемого аппаратной таблицей потоков в памяти коммутатора, а типы нескольких таблиц потоков представляют собой универсальный тип (wildcard type).
Если тип таблицы потоков представляет собой универсальный тип (wildcard type), когда происходит генерация записи потока согласно структуре таблицы потоков, контроллер может генерировать запись потока с использованием одного или нескольких полей признаков, поддерживаемых указанной таблицей потоков.
Например, таблица T0 представляет универсальный тип (wildcard type), а поддерживаемая совокупность полей признаков содержит шесть полей признаков, а именно in_port, eth_type, src_mac, dst_mac, ip_src и ip_dst; тогда запись потока, генерируемая контроллером, согласно таблице T0 может содержать только величины полей признаков, соответствующие некоторым полям признаков, например, сформированная запись потока содержит величины четырех полей признаков, а именно in_port, eth_type, src_mac и dst_mac, или может содержать величины полей признаков, соответствующие всем полям признаков, указанным в таблице T0.
В частности, после установления соединения с коммутатором, контроллер передает сообщение запроса возможностей таблицы потоков (table stats request) коммутатору; коммутатор возвращает контроллеру сообщение ответа о возможностях таблицы потоков (table stats reply) после приема сообщения запроса возможностей таблицы потоков, где это сообщение ответа о возможностях таблицы потоков содержит структуру таблицы потоков.
Эта совокупность нескольких таблиц потоков OpenFlow может, в частности, содержать таблицу T0 (Table 0), таблицу T1 (Table 1) и другие подобные таблицы. Совокупностей полей признаков может, в частности, содержать поле входного порта (in_port), поле типа Этернет (eth_type) и поле MAC-адреса источника (src_mac); совокупность действий может, в частности, содержать передачу через выходной порт (вывод (output)), модификацию MAC-адреса источника, модификацию MAC-адреса пункта назначения и другие подобные действия.
Например, первый сервис может представлять собой сервис передачи уровня 2 на основе интернет-протокола (IP); для осуществления этого сервиса передачи уровня 2 на основе IP-протокола нужны поля признаков in_port, eth_type, src_mac и dst mac (MAC-адрес пункта назначения) и действие вывода.
Стандарт для определения того, что аппаратная таблица потоков в памяти коммутатора поддерживает первый сервис, может представлять собой тот факт, что: одна или несколько аппаратных таблиц потоков в памяти коммутатора содержат указанные поле признаков и действие, требуемые для осуществления первого сервиса. Например, для осуществления первого сервиса требуются поля признаков in_port, eth_type, src_mac и dst mac и действие вывода, одна аппаратная таблица потоков в памяти коммутатора содержит поля признаков in_port и eth_type, а другая аппаратная таблица потоков содержит поля признаков src_mac и dst mac и действие вывода; тогда, тогда можно считать, что аппаратные таблицы потоков в памяти коммутатора поддерживают первый сервис. Кроме того, может быть не нужно конфигурировать некоторые действия, например, поле признаков pop_vlan (в предположении, что поле признаков pop_vlan требуется для осуществления первого сервиса), необходимые для осуществления первого сервиса, в аппаратных таблицах потоков, но эти действия поддерживаются другим аппаратным ресурсом, который находится в коммутаторе и который относится к типу неаппаратных таблиц потоков. В этом случае, в предположении, что каждое поле признаков, необходимое для осуществления первого сервиса, включено в аппаратные таблицы потоков в памяти коммутатора, и что каждое действие, которое необходимо для осуществления первого сервиса и которое нужно записать в аппаратных таблицах потоков, включено в аппаратные таблицы потоков в памяти коммутатора, можно считать, что эти аппаратные таблицы потоков в памяти коммутатора поддерживают первый сервис. В заключение, если одна или несколько аппаратных таблиц потоков в памяти коммутатора содержат поле признаков, необходимое для осуществления первого сервиса, и содержат действие, которое необходимо для осуществления первого сервиса и которое нужно записать в одну или несколько аппаратных таблиц потоков, тогда эти одна или несколько аппаратных таблиц потоков могут поддерживать первый сервис.
В рамках конкретного варианта осуществления изобретения совокупность полей признаков в составе нескольких таблиц потоков OpenFlow, сообщаемых посредством коммутатора, может содержать все поля признаков, поддерживаемые протоколом OpenFlow, и совокупность действий в составе нескольких таблиц потоков OpenFlow, сообщаемых коммутатором, может содержать все действия, поддерживаемые протоколом OpenFlow. Следует отметить, что пересечение может содержать поле признаков и действие, используемые для осуществления одного или нескольких сервисов, поддерживаемых аппаратной таблицей потоков, записанной в памяти коммутатора. Если все сообщенные несколько таблиц потоков OpenFlow содержат все поля признаков и все действия, поддерживаемые протоколом OpenFlow, иными словами, пересечение содержит все поля признаков и все действия, поддерживаемые протоколом OpenFlow, поля признаков и действия, входящие в это пересечение, могут быть использованы для осуществления насколько возможно большого числа сервисов из совокупности сервисов, поддерживаемых аппаратной таблицей потоков в памяти коммутатора.
Структура таблицы потоков может быть такой, как показано в табл. 1.
Таблица 1
Идентификатортаблицы потоков
Тип таблицы потоков
Поле признаков
Действие
T0
Обобщенный тип (Wildcard type)
in_port, vid, eth_type, src_mac, dst_mac, ip_src, ip_dst, src_port, dst_port
Модификация MAC-адреса источникаМодификация MAC-адреса пункта назначенияПередача через порт
T1
Обобщенный тип (Wildcard type)
in_port, vid, eth_type, src_mac, dst_mac, ip_src, ip_dst, src_port, dst_port
Модификация MAC-адреса источникаМодификация MAC-адреса пункта назначенияПередача через порт
…
…
…
…
T9
Обобщенный тип (Wildcard type)
in_port, vid, eth_type, src_mac, dst_mac, ip_src, ip_dst, src_port, dst_port
Модификация MAC-адреса источникаМодификация MAC-адреса пункта назначенияПередача через порт
S120: коммутатор принимает запись потока, переданную контроллером с использованием протокола OpenFlow, и конфигурирует запись потока в программной таблице потоков, где эту запись потока генерирует контроллер согласно структуре таблицы потоков и информации относительно пакета данных, сообщенного коммутатором, эта информация относительно сообщенного пакета данных содержит информацию относительно первого пакета данных для первого сервиса, а запись потока содержит по меньшей мере одну из записей потока, согласованных с этим первым пакетом данных.
Следует отметить, что при выполнении этапа S110 программная таблица потоков и аппаратная таблица потоков в памяти коммутатора не содержат запись потока или содержат только запись потока по умолчанию, которая не может быть согласована с принятым пакетом данных.
На этапе S120, каждый раз, когда коммутатор принимает пакет данных, для которого невозможно найти согласованную запись потока в аппаратной таблице потоков или в программной таблице потоков, коммутатор запрашивает, от контроллера, запись потока, согласованную с этим пакетом данных, конфигурирует эту запись потока в программной таблице потоков, и конфигурирует эту запись потока в аппаратной таблице потоков согласно последующим этапам S130–S150.
В конкретном варианте осуществления этап S120 содержит выполнение одного или нескольких следующих процессов:
S120-1: коммутатор принимает один пакет данных (например, первый пакет данных).
S120-2: коммутатор сначала осуществляет поиск в аппаратной таблице потоков в памяти коммутатора для обнаружения записи потока, согласованной с этим пакетом данных.
Если такая запись потока не найдена, выполняется этап S120-3; если запись потока найдена, пакет данных обрабатывают в соответствии с величиной действия в составе найденной записи потока.
S120-3: затем коммутатор осуществляет поиск в программной таблице потоков в памяти коммутатора для обнаружения записи потока, согласованной с рассматриваемым пакетом данных.
Если запись потока не найдена, выполняют этап S120-4; если запись потока найдена, пакет данных обрабатывают согласно величине действия в найденной записи потока.
S120-4: коммутатор запрашивает от контроллера запись потока, согласованную с рассматриваемым пакетом данных.
В частности, коммутатор передает сообщение о входном пакете (Packet In) контроллеру, где это сообщение Packet In содержит информацию относительно пакета данных, например, номер порта, использованного для приема пакета данных, или в другом примере, сам этот пакет данных или информацию заголовка этого пакета данных. Когда принято сообщение Packet In, контроллер генерирует, согласно структуре таблицы потоков и информации относительно пакета данных (например, тип Этернет, MAC-адрес источника и MAC-адрес пункта назначения в составе информации заголовка полученного пакета данных или номер порта, использованного для приема этого пакета данных), запись потока, согласованную с этим пакетом данных, и передает сформированную запись потока с использованием сообщения Flow mod.
S120-5: коммутатор конфигурирует принятую им запись потока в программной таблице потоков.
Когда пакет данных, принятый на этапе S120-1, представляет собой первый пакет данных, на этапе S120-4 запрашивают запись потока, согласованную с этим первым пакетом данных; соответственно, на этапе S120-5, конфигурируют запись потока, согласованную с рассматриваемым первым пакетом данных, в программную таблицу потоков.
Здесь может быть только одна первая запись потока, либо две или более первых записей потока, согласованных с первым пакетом данных. Например, для указанного выше сервиса передачи на основе IP-протокола на уровне 2, как показано в табл. 2-1, может быть сформирована только запись T0 потока, либо, как показано в табл. 2-2A и в табл. 2-2B, могут быть формированы запись T0 потока и запись T1 потока.
Таблица 2-1
Таблица T0
in_port
eth_type
src_mac
dst_mac
действие
2
0x800
0:0:0:0:0:3
0:0:0:0:0:4
выход:2
Таблица 2-2A
Таблица T0
in_port
действие
2
переход:1
Таблица 2-2B
Таблица T1
eth_type
src_mac
dst_mac
действие
0x800
0:0:0:0:0:3
0:0:0:0:0:4
выход:2
Следует отметить, что, для пакета данных, если с этим пакетов данных согласованы две или более записей потока, как показано в табл. 2-2A и табл. 2-2B, есть вероятность, что часть этих записей потоков (например, запись потока, показанная в табл. 2-2A) уже была конфигурирована в программной таблице потоков. Это означает, что записи потоков, переданные контроллером, для другого ранее сообщенного пакета данных, содержат указанную часть записей потоков; тогда контроллер может не передавать повторно ту часть записей потоков, которая уже была конфигурирована в коммутаторе. Поэтому случай, когда запись потока содержит по меньшей мере одну из записей потоков, согласованных с первым пакетом данных на этапе S120, охватывает следующие ситуации: когда есть одна запись потока, согласованная с первым пакетом данных, эта одна запись потока включена в состав записи потока, переданной контроллером коммутатору; когда есть две или более записей потоков, согласованных с первым пакетом данных, если есть часть этих двух или более записей потоков, согласованных с первым пакетом данных, которая уже была передана контроллером коммутатору ранее, контроллер может передать только другую запись потока из этих двух или более записей потоков.
В одном из примеров, в котором генерируют записи потоков из таблицы T0 и таблицы T1 для сервиса передачи на основе IP-протокола на уровне 2, пример программной таблицы потоков, конфигурированной после того, как несколько пакетов данных для сервиса передачи на основе IP-протокола на уровне 2 были сообщены контроллеру на этапе S120, показан в табл. 3-1 и табл. 3-2.
Таблица 3-1
Таблица T0
In_port
действие
3
переход:1
2
переход:1
Таблица 3-2
Таблица T1
eth_type
src_mac
dst_mac
действие
*
0:0:0:0:0:5
*
выход:3
0x800
0:0:0:0:0:3
0:0:0:0:0:4
выход:2
0x800
0:0:0:0:0:5
0:0:0:0:0:6
выход:4
Все несколько таблиц потоков OpenFlow, сообщенных на этапе S110, могут быть использованы для осуществления первого сервиса; поэтому, на этапе S120, согласно логической схеме обработки данных в контроллере, независимо от того, к какой таблице потоков или к каким таблицам потоков относится запись потока, сформированная для первого сервиса, можно с успехом генерировать эту запись потока.
Следует отметить, что в рассматриваемом варианте настоящего изобретения под аппаратной таблицей потоков понимают таблицу потоков в аппаратной форме, и что это может быть, в частности, таблица потоков в кристалле интегральной схемы аппаратного передатчика в составе коммутатора, например, список ACL. Под программной таблицей потоков в рассматриваемом варианте настоящего изобретения понимают таблицу потоков OpenFlow в программной форме, которая может, в частности, представлять собой таблицу потоков OpenFlow, сохраняемую в памяти коммутатора. Аналогично, если для осуществления связи применяется какой-нибудь собственный протокол или другой стандартный протокол, программная таблица потоков представляет собой таблицу потоков, совместимую с соответствующим протоколом.
S130: коммутатор получает, из программной таблицы потоков, первую запись потока, согласованную с первым пакетом данных, обрабатывает этот первый пакет данных согласно величине действия в составе полученной первой записи потока определяет, в составе предварительно конфигурированного пути сервиса, первый целевой путь сервиса, согласованного с первой записью потока.
Далее описан конкретный способ осуществления со ссылками на конкретный пример.
Например, коммутатор принимает первый пакет данных через порт 2, а в поле заголовка этого первого пакета данных указано следующее: тип Этернет 0x800, MAC-адрес источника – 0:0:0:0:0:3, MAC-адрес пункта назначения – 0:0:0:0:0:4, IP-адрес источника – 192.168.0.1, IP-адрес пункта назначения – 192.168.0.2, номер порта источника – 6633 и номер порта пункта назначения – 6589.
Сначала коммутатор находит запись потока, согласованную с первым пакетом данных, в таблице T0. Поскольку пакет данных принят от порта 2, согласована вторая запись потока в таблице T0; далее, находят запись потока, согласованную с первым пакетом данных, в таблице T1 согласно величине действия «переход:1» ("goto:1") из состава второй записи потока в таблице T0.
Поскольку параметр «тип Этернет» (eth type) для первого пакета данных равен 0x800, MAC-адрес источника равен 0:0:0:0:0:3 и MAC-адрес пункта назначения равен 0:0:0:0:0:4, вторая запись потока в таблице T1 является согласованной; этот пакет данных передают дальше через порт 3 в соответствии с величиной действия «вывод:3» ("output:3") в составе второй записи потока в таблице T1.
В описанном выше варианте осуществления найденная первая запись потока, согласованная с первым пакетом данных для первого сервиса, содержит вторую запись потока из таблицы и T0 и вторую запись потока из таблицы T1.
После получения записи потока, согласованной с первым пакетом данных, коммутатор определяет, в составе предварительно конфигурированного пути сервиса, первый целевой путь сервиса, согласованный с первой записью потока.
Каждый предварительно конфигурированный путь сервиса содержит поле признаков и действие, необходимые для осуществления сервиса, соответствующего каждому из путей сервиса.
Примеры путей сервисов приведены в табл. 4.
Таблица 4
Идентификатор пути сервиса
Поддерживаемый сервис
Поддерживаемое поле признаков
Поддерживаемое действие
L2_L2_MAC
Сервис A
Dmac, vid
Output, push_vlan, pop_vlan
L2_T3S_IPV4
Сервис B и сервис D
Sip, dip, eth_type, ip_proto, ip_dscp
Output, push_vlan, pop_vlan, set_queue, meter, group
L3_T3R_IPV4
Сервис C
Sip, dip, eth_type, ip_proto, ip_dscp, vid, dmac
Output, push_vlan, pop_vlan, set_queue, meter, group, set_src_eth, set_dst_mac, push_mpls
L2_L1T4S_IPv4IPv6
Сервис передачи на основе IP-протокола на уровне 2
Dmac, smac, vid, pcp, in_port, eth_type
output, push_vlan, pop_vlan, set_queue
Коммутатор определяет, в совокупности путей сервисов, первый целевой путь сервиса, согласованного с первой записью потока, где совокупность полей признаков в составе найденного первого целевого пути сервиса содержит поле признаков входного порта (ingress port) и поле признаков заголовков пакетов (packet headers) в группе полей признаков, соответствующих величинам полей признаков в составе первой записи потока, а действие из состава первого целевого пути сервиса представляет собой действие, соответствующее величине действия, которое входит в группу величин действия из состава первой записи потока и которое используется для обработки первого пакета данных. Указанное поле признаков входного порта используется для согласования номера порта (иными словами, номера порта, через который коммутатор должен принять пакет данных), через который принимаемый пакет данных должен войти в коммутатор; поле признаков заголовка пакета используется для согласования поля в заголовке принимаемого пакета данных.
Как в приведенном выше примере, имеются две первых записи потоков, а поля признаков, соответствующие входящим сюда величинам полей признаков, представляют собой in_port, eth_type, src_mac и dst mac, где in_port представляет собой поле признаков входного порта, величины полей признаков, соответствующие полям eth_type, src_mac и dst mac, используются для согласования с полем в заголовке первого пакета данных и являются полями признаков заголовка пакета. Сюда входят величины действий «выход:1» (goto:1) и «вывод:3» (output:3), где величина «вывод:1» используется для индикации, в какой следующей таблице нужно далее осуществить поиск, а величина «вывод:3» используется для индикации, что первый пакет данных должен быть передан далее через порт 3. Как можно видеть, только «вывод:3» представляет собой величину действия, используемую для обработки первого пакета данных.
Следует отметить, что первая запись потока может не содержать величин поля признаков для входного поля; соответственно, поля признаков в составе первого целевого пути сервиса могут, естественно, не содержать поле признаков входного порта.
Следует далее отметить, что когда сервис осуществляется с использованием записей потоков из состава нескольких таблиц потоков, согласованная запись потока может далее содержать величину метаданных поля признаков и метаданные действия, используемого для генерации данных для согласования с величиной поля признаков метаданных. Как показано в табл. 5-1 и в табл. 5-2, поле признаков метаданных содержит маркер «meta», величина метаданных поля признаков равна 0x2, а действие, используемое для генерации данных для согласования с величиной метаданных поля признаков обозначено w_meta:0x2.
Величина метаданных поля признаков не используется для согласования информации заголовка пакета данных, а также она эквивалентна полю признаков входного порта и полю признаков заголовка пакета. Иными словами, поле признаков метаданных не принадлежит полю признаков входного порта или полю признаков заголовка пакета. Метаданные действия не используются для обработки пакета данных, иными словами, не являются действием, соответствующим величине действия, используемого для обработки пакета данных.
Таблица 5-1
Таблица T0
in_port
действие
2
w_meta:0x2goto:1
Таблица 5-2
Таблица T1
eth_type
meta
src_mac
dst_mac
action
0x800
0x2
0:0:0:0:0:3
0:0:0:0:0:4
output:2
Коммутатор осуществляет поиск в каждой сервисной таблице потоков для обнаружения пути сервиса, в составе которого совокупность полей признаков содержит поля in_port, eth_type, src_mac и dst mac и в составе которого действие содержит «вывод» (output), в качестве первого целевого пути сервиса. Как показано в табл. 4, совокупность полей признаков в составе пути L2_L1T4S_IPv4IPv6 Path содержит in_port, eth_type, src_mac и dst mac, а действие в составе пути L2_L1T4S_IPv4IPv6 Path содержит «вывод» (output); поэтому, путь L2_L1T4S_IPv4IPv6 Path определен в качестве первого целевого пути сервиса.
Следует отметить, что может быть только одна первая запись потока, или могут быть две или более первых записей потоков.
Когда имеется только одна первая запись потока, каждое поле признаков, соответствующее величине поля признаков, входящей в состав первой записи потока, принадлежит полю признаков входного порта или полю признаков заголовка пакета, а каждое включенное сюда действие принадлежит действию, используемому для обработки первого пакета данных. Соответственно, путь сервиса, в составе которого совокупность полей признаков содержит поле признаков, соответствующее величине поля признаков в составе первой записи потока, и в составе которого действие содержит действие, соответствующее величине действия из состава первой записи потока, может быть прямо определен, в составе предварительно конфигурированного пути сервиса, в качестве первого целевого пути сервиса.
Когда имеются две или более первых записей потоков, коммутатор может определить первый целевой путь сервиса согласно следующему способу после того, как найдены первые записи потоков, с целью повышения эффективности такого определения.
A1: Коммутатор агрегирует эти первые записи потоков для генерации комбинированной записи потока, где величины полей признаков, входящие в комбинированную запись потока, представляют собой величины полей признаков, которые входят в совокупность величин полей признаков из состава первых записей потоков и соответствуют полю признаков входного порта и полю признаков заголовка пакета, величины действий, входящие в состав комбинированной записи потока, представляют собой величины действий, которые входят в совокупность величин действий из состава первых записей потоков и используются для обработки первого пакета данных.
A2: коммутатор может определить, в составе предварительно конфигурированного пути сервиса, один путь сервиса, в котором поля признаков содержат поля признаков, соответствующие величинам полей признаков из состава комбинированной записи потока, и в котором действия, содержат действия, соответствующие величинам действий из состава комбинированной записи потока, в качестве первого целевого пути сервиса.
S140: коммутатор определяет, согласно предварительно конфигурированному соответствию между первым целевым путем сервиса и аппаратной таблицей потоков, такую первую аппаратную таблицу потоков, соответствующую первому целевому пути сервиса, где эта аппаратная таблица потоков, соответствующая первому целевому пути сервиса, поддерживает сервис, поддерживаемый посредством первого целевого пути сервиса.
В частности, коммутатор предварительно конфигурирует соответствие между путями сервисов и аппаратными таблицами потоков, и аппаратная таблица потоков, соответствующая каждому пути сервиса, поддерживает сервис, поддерживаемый каждым путем сервиса. Например, каждый путь сервиса содержит поле признаков и действие, которое требуется для осуществления сервиса, поддерживаемого посредством соответствующего пути сервиса. Как показано в табл. 6, путь L2_L1T4S_IPv4IPv6 сервиса соответствует аппаратным таблицам ACL 3 и ACL 5 потоков, где эти таблицы ACL 3 и ACL 5 содержат поля признаков и действия, необходимые для осуществления сервиса передачи на уровне 2, который основан на IP-адресе и который поддерживается посредством пути L2_L1T4S_IPv4IPv6.
Таблица 6
Идентификатор пути сервиса
Аппаратная таблица потоков
L2_L2_MAC
ACL 1
L2_T3S_IPV4
ACL 4
L3_T3R_IPV4
ACL 4
L2_L1T4S_IPv4IPv6
ACL 3 и ACL 5
Путь L2_L1T4S_IPv4IPv6 Path представляет собой путь целевого сервиса, найденный на этапе S130; согласно табл. 6, может быть определено, что аппаратными таблицами потоков, соответствующими целевого пути сервиса, являются списки ACL 3 и ACL 5.
Следует отметить, что коммутатор может прямо конфигурировать соответствие между путями сервисов и соответствующими аппаратными таблицами потоков; или может конфигурировать соответствие между путями сервисов и другой информацией и соответствие между этой другой информацией и аппаратными таблицами потоков, тем самым непрямо конфигурируя соответствие между путями сервисов и соответствующими аппаратными таблицами потоков.
Для того чтобы более удобно конфигурировать путь сервиса, соответствие между путями сервисов и аппаратными таблицами потоков может быть конфигурировано следующим образом:
B1: конфигурирование нескольких физических таблиц потоков и соответствия между этими физическими таблицами потоков и аппаратными таблицами потоков, где эти несколько физических таблиц потоков по отдельности содержат поддерживаемые поля признаков и действия, поля признаков из каждой физической таблицы потоков входят в состав совокупности полей признаков соответствующей аппаратной таблицы потоков, а действие, которое является действием из состава каждой физической таблицы потоков и которое должно быть записано в рассматриваемую аппаратную таблицу потоков, включено в совокупность действий соответствующей аппаратной таблицы потоков.
B2: конфигурирование соответствия между путями сервисов и физическими таблицами потоков, где поле признаков каждого из путей сервисов включают в состав совокупности полей признаков всех соответствующих физических таблиц потоков и действие из каждого пути сервиса включают в состав совокупности действий из всех соответствующих физических таблиц потоков.
Согласно конкретному варианту осуществления, совокупность полей признаков для каждого пути сервиса может представлять собой универсальный набор полей признаков из всех соответствующих физических таблиц потоков, а совокупность действий в составе каждого пути сервиса может представлять собой универсальный набор действий для всех соответствующих физических таблиц потоков.
При применении этого способа каждая физическая таблица потоков может быть использована различными путями сервисов; поэтому, после того, как несколько физических таблиц потоков и соответствие между физическими таблицами потоков и аппаратными таблицами потоков были конфигурированы на этапе B1, пути сервисов для осуществления разнообразных сервисов могут быть удобно конфигурированы на этапе B2.
Например, предварительно конфигурированная физическая таблица L1 потоков содержит поля признаков eth_src и eth_dst; предварительно конфигурированная физическая таблица T4S потоков содержит поля признаков ip_src и ip_dst и содержит действие вывода. Для осуществления сервиса X нужны поля признаков eth_src, eth_dst, ip_src и ip_dst, и действие вывода. Путь Y сервиса для осуществления сервиса X может быть сформирован согласно физическим таблицам L1 и T4S потоков, а также могут быть конфигурированы соответствие между путем Y сервиса и физической таблицей L1 потоков и соответствие между путем Y сервиса и физической таблицей T4S потоков.
Соответственно, на этапе S160, коммутатор определяет, согласно предварительно конфигурированному соответствию между первым целевым путем сервиса и физической таблицей потоков, первую физическую таблицу потоков, соответствующую первому целевому пути сервиса, и определяет, согласно соответствию между первой физической таблицей потоков и аппаратной таблицей потоков, аппаратную таблицу потоков, соответствующую первой физической таблице потоков.
S150: Коммутатор конфигурирует запись потока в аппаратной таблице потоков согласно первой записи потока.
Конкретное осуществление этапа S150 может содержать:
C1: добавление новой записи потока к аппаратной таблице потоков.
C2: конфигурирование величин полей признаков, входящих в совокупность величин полей признаков из состава первой записи потока и соответствующих полю признаков входного порта и полю признаков заголовка пакета, в качестве величин полей признаков в составе добавленной записи потока.
C3: конфигурирование величины действия, отличного от первой величины действия в качестве величины действия в добавленной записи потока, где каждая из величины действия и первой величины действия входят в группу величин действия из состава первой записи потока и в группу величин действия, используемых для обработки первого пакета данных, а первая величина действия представляет собой величину действия, которая не входит в аппаратную таблицу потоков и которая соответствует действию, поддерживаемому аппаратными ресурсами из таблицы потоков неаппаратного типа, в коммутаторе, в памяти которого располагается аппаратная таблица потоков.
Следует отметить, что первая запись потока может не иметь в составе первой величины действия.
Если способы согласно A1 и A2 используются для определения целевого пути сервиса на этапе S130, на этом этапе величина поля признаков в составе комбинированной записи потока может быть прямо конфигурирована в виде величины поля признаков в добавленной записи потока, а другая величина действия, отличная от указанной первой величины действия в совокупности величин действия из состава комбинированной записи потока, конфигурирована в виде величины действия в составе добавленной записи потока.
Как показано в табл. 7-1, коммутатор конфигурирует величины полей признаков для полей признаков in_port, eth_type, src_mac и dst mac в составе первой записи потока в списке ACL 5; как показано в табл. 7-2, величина действия «вывод:3» (output:3) для первой записи потока конфигурирована в составе списке ACL 3.
Таблица 7-1
in_port
vid
eth_type
src_mac
dst_mac
действие
2
1
0x800
0:0:0:0:0:3
0:0:0:0:0:4
cond: 1
Таблица 7-2
src_ip
dst_ip
ip_proto
ip_dscp
fhid
действие
192.168.0.1
192.168.0.2
6
0
1
вывод:3
Если аппаратная таблица потоков содержит больше полей признаков, чем число полей признаков, соответствующих величинам полей признаков в составе первой записи потока, другая величина поля признаков в составе записи потока может быть конфигурирована в виде соответствующей информации в поле заголовка пакета данных согласно конкретному варианту осуществления, например, первая запись потока не содержит IP-адрес источника, и тогда выделяют этот IP-адрес источника из пакета данных, и используют этот выделенный IP-адрес источника в качестве величины, соответствующей полю признаков src_ip (IP-адрес источника) в составе записи потока; или другая величина поля признаков в составе записи потока может быть конфигурирована в виде величины универсального (wildcard) типа.
Согласно варианту 1 настоящего изобретения все несколько таблиц потоков OpenFlow могут быть использованы для осуществления первого сервиса; поэтому, согласно логической схеме обработки данных в контроллере, независимо от того, какой таблице потоков или каким таблицам потоков соответствует запись потока, генерируемая для первого сервиса, эта запись потока может быть успешно сформирована и передана. Кроме того, первый целевой путь сервиса, найденный посредством коммутатора, содержит поле признаков и действие, соответствующие величине поля признаков и величине действия относительно пакета данных для первого сервиса; поэтому указанный первый целевой путь сервиса поддерживает первый сервис. Более того, поскольку аппаратная таблица потоков, соответствующая первому целевому пути сервиса, поддерживает сервис, поддерживаемый первым целевым путем сервиса, аппаратная таблица потоков, соответствующая первому целевому пути сервиса, представляет собой аппаратную таблицу потоков, поддерживающую первый сервис. Далее, коммутатор может конфигурировать, в аппаратной таблице потоков, запись потока, используемую для осуществления первого сервиса. Поэтому, независимо от того, с каким контроллером соединен коммутатор, этот коммутатор может с успехом конфигурировать, в аппаратной таблице потоков, запись потока, используемую для осуществления первого сервиса с целью успешно произвести обработку первого сервиса, уменьшая тем самым вероятность неудачи в обработке сервиса.
В некоторых случаях совокупность величин действия в составе первой записи потока далее содержит величину действия, которая не входит в состав аппаратной таблицы потоков и которая соответствует действию, поддерживаемому аппаратным ресурсов из таблицы потоков неаппаратного типа, в коммутаторе, в памяти которого располагается аппаратная таблица потоков, например, величине действия (например, pop_vlan и push_vlan), используемой для конфигурирования атрибута в порте коммутатора. Соответственно, коммутатор может далее конфигурировать, согласно величине действия, которая входит в состав первой записи потока и которая используется для конфигурирования атрибута в порте коммутатора, атрибут в порте, заданном величиной действия «вывод» в составе первой записи потока (например, для сервиса pop_vlan, атрибуту VLAN 1024 в этом порте присваивают значение «отмена пометки» (untagging)).
В варианте 1 настоящего изобретения, как показано на фиг. 1-2, коммутатор (коммутатор 110, представленный на фиг. 1-2) может содержать устройство связи на верхнем уровне (устройство 110-1 связи, показанное на фиг. 1-2) и кристалл интегральной схемы аппаратного передатчика на нижнем уровне (кристалл интегральной схемы аппаратного передатчика 110-2, представленный на фиг. 1-2).
Этапы S110, S130 и 140 выполняет устройство связи.
На этапе S120 пакет данных, принимаемый коммутатором, принимают через порт кристалла интегральной схемы аппаратного передатчика, после чего этот кристалл интегральной схемы аппаратного передатчика выполняет действие поиска в аппаратной таблице потоков. Когда в этой аппаратной таблице потоков не найдена запись потока, согласованная с принятым пакетом данных, кристалл интегральной схемы аппаратного передатчика пересылает принятый им пакет данных устройству связи. В частности, кристалл интегральной схемы аппаратного передатчика может передать принятый им пакет данных по каналу сетевого адаптера между этим кристаллом интегральной схемы аппаратного передатчика и устройством связи. На этапе S120, устройство связи выполняет другие действия, отличные от действия поиска в аппаратной таблице потоков.
Конкретный вариант осуществления этапа S150 может содержать следующие операции: устройство связи конфигурирует запись потока в аппаратной таблице потоков в кристалле интегральной схеме аппаратного передатчика согласно первой записи потока, что может, в частности, содержать: конфигурирование записи потока путем вызова интерфейса кристалла интегральной схемы аппаратного передатчика и использования его для осуществления конфигурирования аппаратной таблицы потоков, где эту информацию, конфигурированную в аппаратной таблице потоков, используют в качестве параметра интерфейса и передают кристаллу интегральной схемы аппаратного передатчика, чтобы конфигурировать в аппаратной таблице потоков.
В конкретном варианте осуществления путь сервиса, предварительно конфигурированный посредством устройства связи, используется только для осуществления сервиса, поддерживаемого аппаратной таблицей потоков в памяти кристалла интегральной схемы аппаратного передатчика, соединенного с устройством связи; затем соответствующая аппаратная таблица потоков может быть четко определена на этапе S140 для целевого пути сервиса, согласованного на этапе S130 посредством устройства связи. При использовании такого способа осуществления, когда устройство связи применяется для соединения с разными кристаллами интегральных схем аппаратных передатчиков, соответствующие пути сервиса и соответствие между путями сервисов и аппаратными таблицами потоков необходимо конфигурировать согласно сервисам, поддерживаемым аппаратными таблицами потоков в памяти разных кристаллов интегральных схем аппаратных передатчиков.
В другом конкретном способе осуществления путь сервиса, предварительно конфигурированный посредством устройства связи, может быть использован для осуществления сервисов, поддерживаемых аппаратными таблицами потоков, записанными в памяти нескольких разных кристаллов интегральных схем аппаратных передатчиков. При использовании этого способа осуществления, когда устройство связи используется для соединения с разными кристаллами интегральных схем аппаратных передатчиков, такое соединение между устройством связи и разными кристаллами интегральных схем аппаратных передатчиков может быть осуществлено более удобным способом в предположение, что соответствие между путями сервисов и аппаратными таблицами потоков конфигурировано согласно сервисам, поддерживаемым аппаратными таблицами потоков, записанными в памяти разных кристаллов интегральных схем аппаратных передатчиков.
В варианте 1 настоящего изобретения пересечение на этапе S110 может далее содержать поле признаков и действие, используемые для осуществления второго сервиса, не поддерживаемого аппаратной таблицей потоков в памяти коммутатора, информация относительно пакета данных, сообщенного на этапе S120, может далее содержать информацию относительно второго пакета данных для второго сервиса, а запись потока, переданная контроллером на этапе S120, может далее содержать по меньшей мере одну из записей потоков, согласованных со вторым пакетом данных.
Соответственно, способ может дополнительно содержать: получение, посредством коммутатора из программной таблицы потоков, второй записи потока, согласованной со вторым пакетом данных, и обработку этого второго пакета данных согласно действию из состава второй записи потока. При использовании такого способа, хотя аппаратная таблица потоков в памяти коммутатора не поддерживает второй сервис, коммутатор может обрабатывать пакет данных для второго сервиса с применением поиска в программной таблице потоков.
После получения второй записи потока, способ может далее содержать: определение, посредством коммутатора, в составе предварительно конфигурированного пути сервиса, второго целевого пути сервиса, согласованного со второй записью потока, где совокупность полей признаков в составе найденного второго целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета из группы полей признаков, соответствующей величинам полей признаков из состава второй записи потока, а действие из состава второго целевого пути сервиса представляет собой действие, соответствующее величине действия, входящей в группу величин действия в составе второй записи потока и используемой для обработки второго пакета данных.
Применительно к изложенному выше второму конкретному варианту способа осуществления изобретения, поскольку второй пакет данных соответствует второму сервису, а аппаратная таблиц потоков в памяти коммутатора не поддерживает этот второй сервис, второй целевой путь сервиса не имеет соответствующей ему аппаратной таблицы потоков. Поэтому соответствие между путем второго целевого сервиса и аппаратной таблицей потоков конфигурировано быть не может. Соответственно, в этом случае аппаратная таблица потоков, соответствующая второму целевому пути сервиса, не может быть найдена.
В таком случае, для повышения эффективности обработки пакета данных, соответствующего второму сервису, далее, в варианте 1 настоящего изобретения, способ может далее содержать:
D1: коммутатор конфигурирует, согласно второй записи потока, сервисную запись потока в сервисной таблице потоков, соответствующей второму целевому пути сервиса, где эта сервисная таблица потоков представляет собой таблицу точного совпадения, а поля признаков в этой сервисной таблице потоков все являются полями признаков из состава второго целевого пути сервиса; конфигурирует первую величину поля признаков в составе сервисной записи потока в качестве соответствующей величины поля признаков в составе первой записи потока; конфигурирует вторую величину поля признаков в составе сервисной записи потока в виде соответствующей величины поля заголовка в составе заголовка второго пакета данных; и конфигурирует величину действия в составе сервисной записи потока в виде величины действия в составе второй записи потока, где поле признаков, соответствующее первой величине поля признаков, принадлежит полю признаков, соответствующему величине поля признаков в составе первой записи потока, а поле признаков, соответствующее второй величине поля признаков, не принадлежит к полю признаков, соответствующему величине поля признаков в составе второй записи потока.
D2: коммутатор осуществляет поиск, когда позднее принят последующий пакет данных для второго сервиса, в сервисной таблице потоков для обнаружения сервисной записи потока, согласованной с указанным последующим пакетом данных, и обрабатывает этот последующий пакет данных согласно действию из состава найденной сервисной записи потока.
Тот факт, что сервисная таблица потоков представляет собой таблицу точного совпадения, означает: каждое поле признаков в составе сервисной записи потока из состава сервисной таблице потоков имеет соответствующую величину поля признаков, а не универсальный (wildcard) тип, так что количества величин полей признаков, входящих в состав записей потоков в сервисной таблице потоков являются одинаковыми. Поэтому, поиск в таблице можно осуществлять с использованием алгоритма хеширования с целью повысить эффективность поиска в таблице.
Конкретный способ осуществления изобретения может быть следующим: коммутатор выполняет этап S120-2 (пакет данных на этапе S120-2 представляет собой, в частности, последующий пакет данных) после приема указанного последующего пакета данных; если никакая запись потока не найдена, выполняют поиск в сервисной таблице потоков для обнаружения записи потока, согласованной с этим последующим пакетом данных; если никакая запись потока не найдена, выполняют этап S120-3; если запись потока найдена, обрабатывают последующий пакет данных согласно величине действия в составе найденной записи потока. Кроме того, когда коммутатор примет какой-либо пакет данных для другого сервиса, этот пакет данных может быть также обработан согласно этому конкретному варианту способа осуществления изобретения.
Кроме того, если каждая запись потока, переданная контроллером согласно каждому пакету данных, содержит все записи потоков, согласованные с указанным пакетом данных, коммутатор может также определить, в составе предварительно конфигурированного пути сервиса, путем прямого использования всех принятых записей потоков, согласованных с пакетом данных, путь сервиса, согласованный с этим пакетом данных. Предложены следующие два конкретных способа осуществления настоящего изобретения:
Конкретный вариант 1 способа осуществления настоящего изобретения: Сообщение (например, сообщение Flow mod), которое содержит запись потока и которое передано контроллером коммутатору, далее содержит идентификационную информацию, где эта идентификационная информация используется для идентификации всех записей потоков, соответствующих одному и тому же пакету данных, и может, в частности, представлять собой идентификатор пакета данных, соответствующего переданной записи потока. Соответственно, коммутатор идентифицирует в совокупности записей потоков, принятых от контроллера, согласно этой идентификационной информации все записи потоков, соответствующие одному и тому же пакету данных, например, идентифицирует все записи потоков, соответствующие пакету A данных, и идентифицирует все записи потоков, соответствующие пакету B данных; и определяет путь сервиса, согласованный с указанным потоком данных.
Конкретный вариант 2 способа осуществления настоящего изобретения: Контроллер добавляет, к различным сообщениям, все записи потоков, согласованные с разными пакетами данных, например, добавляет к сообщению Flow mod 1, все записи потоков, согласованные с пакетом A данных, и добавляет к сообщению Flow mod 2, все записи потоков, согласованные с пакетом B данных. Соответственно, коммутатор получает, из сообщения, все записи потоков, соответствующие пакету данных, и определяет, в составе предварительно конфигурированного пути сервиса, путь сервиса, согласованный с принятым пакетом данных.
Относительно способа определения согласованного пути сервиса путем прямого использовании принятой записи потока ссылки сделаны на способ определения согласованного первого целевого пути сервиса с использованием первой записи потока на описанном выше этапе 130; для способа определения соответствующей аппаратной таблицы потоков и конфигурирования записи в аппаратной таблице потоков после того, как будет определен согласованный путь сервиса, ссылки сделаны на описанные выше этапы 140 – 150, которые здесь повторно рассмотрены не будут.
Как показано на фиг. 3-1, Вариант 2 настоящего изобретения предлагает устройство 200 связи. Это устройство 200 связи соединено с кристаллом интегральной схемы аппаратного передатчика, осуществляющего связь с контроллером с использованием протокола OpenFlow OpenFlow, и содержит интерфейсный модуль 201, модуль 202 конфигурирования программной таблицы потоков, модуль 203 обработки пакетов данных и модуль 204 конфигурирования аппаратной таблицы потоков.
Интерфейсный модуль 201 конфигурирован для сообщения структуры таблицы потоков контроллеру, где эта структура таблицы потоков содержит поля признаков и действия, поддерживаемые несколькими таблицами потоков OpenFlow, и типы этих нескольких таблиц потоков OpenFlow, здесь имеет место пересечение между полями признаков и действиями, поддерживаемыми несколькими таблицами потоков OpenFlow, это пересечение содержит поле признаков и действие, используемые для осуществления первого сервиса, поддерживаемого аппаратной таблицей потоков в памяти кристалла интегральной схемы аппаратного передатчика, а типы нескольких таблиц потоков все представляют собой универсальный тип (wildcard type); и далее модуль конфигурирован для сообщения информации относительно пакета данных контроллеру и для приема записи потока, переданной контроллером, где эту запись потока генерирует контроллер согласно структуре таблиц потоков и информации относительно пакета данных, где эта информация относительно пакета данных содержит информацию относительно первого пакета данных для первого сервиса, а запись потока содержит по меньшей мере одну запись потока, согласованную с первым пакетом данных.
В совокупности полей признаков в составе нескольких таблиц потоков OpenFlow все поля признаков могут представлять собой поля признаков, поддерживаемые протоколом OpenFlow, а в совокупности действий в составе этих нескольких таблиц потоков OpenFlow все действия могут быть действиями, поддерживаемыми протоколом OpenFlow.
Модуль 202 конфигурирования программной таблицы потоков конфигурирован для того, чтобы конфигурировать запись потока в программной таблице потоков.
Указанный модуль обработки пакетов данных конфигурирован для получения, из программной таблицы потоков, первой записи потока, согласованной с первым пакетом данных, обработки этого первого пакета данных согласно величине действия из состава первой записи потока, и определения, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с первой записью потока, где совокупность полей признаков в составе найденного первого целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета из группы полей признаков, соответствующих величинам полей признаков в составе первой записи потока, действие в составе первого целевого пути сервиса, представляет собой действие, которое соответствует одной из величин действия из группы величин действия в составе первой записи потока и которое используется для обработки первого пакета данных; а также этот модуль обработки пакетов данных конфигурирован для определения, согласно предварительно конфигурированному соответствию между первым целевым путем сервиса и первой аппаратной таблицей потоков, такой первой аппаратной таблицы потоков, соответствующей первому целевому пути сервиса, где эта первая аппаратная таблица потоков, соответствующая первого целевого пути сервиса, поддерживает сервис, поддерживаемый первым целевым путем сервиса. Следует отметить, что кристалл интегральной схемы аппаратного передатчика в общем случае сообщает первый пакет данных, обработанный посредством модуля 203 обработки пакетов данных, первому модулю обработки пакетов данных. В частности, после приема первого пакета данных этот кристалл интегральной схемы аппаратного передатчика осуществляет поиск в аппаратной таблице потоков для обнаружения первой записи потока, согласованный с первым пакетом данных, и сообщает этот первый пакет данных в модуль 203 обработки пакетов данных в составе устройства связи, если такая запись потока не найдена.
Здесь может быть только одна первая запись потока, или могут иметься две или более первых записей потоков. Соответственно, то, что модуль 203 обработки пакетов данных конфигурирован для определения, в составе предварительно конфигурированного пути сервиса, целевого пути сервиса, согласованного с первой записью потока, в частности, содержит: модуль 203 обработки пакетов данных конфигурирован для того, чтобы: когда имеются две или более первых записей потоков, агрегировать эти первые записи потоков для генерации комбинированной записи потока, где величины полей признаков, входящие в комбинированную запись потока, представляют собой величины полей признаков, которые входят в совокупность величин полей признаков из состава первых записей потоков и соответствуют полю признаков входного порта и полю признаков заголовка пакета, а величины действий, входящие в состав комбинированной записи потока, представляют собой величины действий, которые входят в совокупность величин действий из состава первых записей потоков и используются для обработки первого пакета данных; и определить, в составе предварительно конфигурированного пути сервиса, один путь сервиса, в котором поля признаков содержат поля признаков, соответствующие величинам полей признаков из состава комбинированной записи потока, и в котором действия, содержат действия, соответствующие величинам действий из состава комбинированной записи потока, в качестве первого целевого пути сервиса; и модуль 203 обработки пакетов данных конфигурирован для того, чтобы: когда имеется только одна первая запись потока, определить, в составе предварительно конфигурированного пути сервиса, один путь сервиса, в котором поле признаков представляет собой поле признаков, соответствующее величине поля признаков из состава первой целевой записи потока, и в котором действие представляет собой действие, соответствующее величине действия в составе первой целевой записи потока, в качестве первого целевого пути сервиса.
Модуль конфигурирования аппаратной таблицы потоков конфигурирован для того, чтобы конфигурировать запись потока в составе первой аппаратной таблицы потоков согласно этой первой записи потока.
Кроме того, пересечение может далее содержать поле признаков и действие, используемые для осуществления второго сервиса, не поддерживаемого аппаратной таблицей потоков в памяти кристалла интегральной схемы аппаратного передатчика; здесь информация относительно пакета данных далее содержит информацию относительно второго пакета данных для второго сервиса. Запись потока, принимаемая интерфейсным модулем 201 от контроллера, далее содержит по меньшей мере одну из записей потоков, согласованных со вторым пакетом данных; соответственно, модуль 203 обработки пакетов данных может быть далее конфигурирован для обработки второго пакета данных согласно действию из состава второй записи потока, когда из программной таблицы потоков, получена вторая запись потока, согласованная с вторым пакетом данных.
Согласно конкретному способу осуществления изобретения, как показано на фиг. 3-2, устройство связи может дополнительно содержать модуль 205 конфигурирования сервисной таблицы потоков.
В этом конкретном варианте способа осуществления изобретения модуль 203 обработки пакетов данных дополнительно конфигурирован для того, чтобы определить, в составе предварительно конфигурированного пути сервиса, второй целевой путь сервиса, согласованный со второй записью потока, где совокупность полей признаков из состава найденного второго целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета из группы полей признаков, соответствующих величинам полей признаков из состава второй записи потока, и действие в составе второго целевого пути сервиса представляет собой действие, которое соответствует величине действия из группы величин действия в составе второй записи потока и которое используется для обработки второго пакета данных.
Модуль 205 конфигурирования сервисной таблицы потоков конфигурирован для того, чтобы: конфигурировать, согласно второй записи потока, сервисную запись потока из состава сервисной таблицы потоков, соответствующей второму целевому пути сервиса, где эта сервисная таблица потоков представляет собой таблицу точного совпадения, а поля признаков в этой сервисной таблице потоков все являются полями признаков в составе второго целевого пути сервиса; конфигурировать величину первого поля признаков в составе сервисной записи потока в виде соответствующей величины поля признаков из состава первой целевой записи потока; конфигурировать величину второго поля признаков в составе сервисной записи потока в виде соответствующей величины поля заголовка в заголовке пакета в составе второго пакета данных; и конфигурировать величину действия в составе сервисной записи потока в виде величины действия из состава второй записи потока, где поле признаков, соответствующее величине первого поля признаков, принадлежит к полю признаков, соответствующему величине поля признаков в составе первой целевой записи потока, а поле признаков, соответствующее величине второго поля признаков, не принадлежит к полю признаков, соответствующему величине поля признаков в составе второй записи потока.
Соответственно, модуль 203 обработки пакетов данных далее конфигурирован для того, чтобы: осуществлять поиск, после приема последующего пакета данных для второго сервиса позднее, в сервисной таблице потоков для обнаружения сервисной записи потока, согласованной с этим последующим пакетом данных, и обработки такого последующего пакета данных согласно действию из состава найденной сервисной записи потока.
Предпочтительно, как показано на фиг. 3-2, устройство связи может дополнительно содержать модуль 206 конфигурирования соответствия, где этот модуль 206 конфигурирования соответствия конфигурирован для того, чтобы конфигурировать соответствие между путями сервисов и соответствующими аппаратными таблицами потоков, и при этом совокупность путей сервисов содержит первый целевой путь сервиса, что, в частности, содержит: модуль 206 конфигурирования соответствия конфигурирован для того, чтобы осуществить конфигурирование нескольких физических таблиц потоков и соответствия между физическими таблицами потоков и аппаратными таблицами потоков, где эти несколько физических таблиц потоков по отдельности содержат поддерживаемые поле признаков и действие, поле признаков из каждой физической таблицы потоков входит в совокупность полей признаков в составе соответствующей аппаратной таблицы потоков, а действие, которое входит в совокупность действий в составе каждой физической таблицы потоков и которое нужно записать в аппаратную таблицу потоков, включают в группу действий соответствующей аппаратной таблицы потоков; и модуль 206 конфигурирования соответствия конфигурирован для того, чтобы конфигурировать соответствие между путями сервисов и физическими таблицами потоков, где поле признаков в составе каждого пути сервиса входит в совокупность полей признаков из состава всех физических таблиц потоков, а действие в составе каждого пути сервиса входит в группу действий для всех соответствующих физических таблиц потоков.
Соответственно, то, что модуль 203 обработки пакетов данных конфигурирован для определения, согласно предварительно конфигурированному соответствию между первым целевым путем сервиса и первой аппаратной таблицей потоков, такой первой аппаратной таблицы потоков, соответствующей первому целевому пути сервиса, что, в частности, содержит: модуль 203 обработки пакетов данных конфигурирован для определения первой физической таблицы потоков согласно соответствию между первым целевым путем сервиса и соответствующей первой физической таблицей потоков, и определения первой аппаратной таблицей потоков согласно соответствию между этой первой физической таблицей потоков и соответствующей первой аппаратной таблицей потоков.
Функциональные модули, описанные в варианте 2 настоящего изобретения, могут быть конфигурированы для осуществления способа, выполняемого посредством устройства связи из варианта 1.
Согласно варианту 2 настоящего изобретения все несколько таблиц потоков OpenFlow могут быть использованы для осуществления первого сервиса; поэтому, согласно логической схеме обработки данных в контроллере, независимо от того, какой таблице потоков или каким таблицам потоков принадлежит запись потока, генерируемая для первого сервиса, эта запись потока может быть с успехом сформирована и передана. Кроме того, первый целевой путь сервиса, найденный посредством устройства связи, содержит поле признаков и действие, соответствующие величине поля признаков и величине действия, применяемым к пакету данных для первого сервиса; поэтому, первый целевой путь сервиса поддерживает первый сервис. Более того, поскольку аппаратная таблица потоков, соответствующая первому целевому пути сервиса, поддерживает сервис, поддерживаемый первым целевым путем сервиса, указанная аппаратная таблица потоков, соответствующая первому целевому пути сервиса, представляет собой аппаратную таблицу потоков, поддерживающую первый сервис. Далее, устройство связи может конфигурировать, в аппаратной таблице потоков, запись потока, используемую для осуществления первого сервиса. Поэтому, независимо от того, с каким контроллером соединено устройством связи, это устройство связи может успешно конфигурировать, в аппаратной таблице потоков, запись потока, используемую для осуществления первого сервиса, с целью успешно произвести обработку первого сервиса, уменьшая тем самым вероятность неудачи в предоставлении сервиса.
На фиг. 4 представлен вариант 3 настоящего изобретения, который предлагает устройство 300 связи, содержащее процессор 301 и запоминающее устройство 302, для осуществления конфигурирования записи потока.
Запоминающее устройство 302 конфигурировано для сохранения команд для управления работой компьютера (далее компьютерные команды).
Процессор 301 конфигурирован для выполнения этих компьютерных команд, сохраняемых в запоминающем устройстве 302, так что это устройство связи выполняет следующие операции:
сообщение структуры таблицы потоков контроллеру с использованием протокола OpenFlow OpenFlow, где структура таблицы потоков содержит поля признаков и действия, поддерживаемые несколькими таблицами потоков OpenFlow и типы этих нескольких таблиц потоков OpenFlow, здесь имеет место пересечение между полями признаков и действиями, поддерживаемыми посредством нескольких таблиц потоков OpenFlow, это пересечение содержит поле признаков и действие, используемые для осуществления первого сервиса, поддерживаемого аппаратной таблицей потоков в памяти кристалла интегральной схемы аппаратного передатчика, а типы нескольких таблиц потоков OpenFlow все представляют собой универсальный тип (wildcard type), и это устройство связи соединено с кристаллом интегральной схемы аппаратного передатчика;
прием записи потока, генерируемой согласно структуре таблицы потоков и переданной контроллеру с использованием протокола OpenFlow, и конфигурирование записи потока в программной таблице потоков, где эту запись потока генерирует контроллер согласно структуре таблицы потоков и информации относительно пакета данных, сообщенной посредством устройства связи, эта информация относительно пакета данных содержит информацию относительно первого пакета данных для первого сервиса, а эта запись потока содержит по меньшей мере одну из записей потоков, согласованных с первым пакетом данных;
получение, из программной таблицы потоков, первой записи потока, согласованной с первым пакетом данных; обработку первого пакета данных согласно величине действия в составе первой записи потока; и определение, в составе предварительно конфигурированного пути сервиса, первого целевого пути сервиса, согласованного с первой записью потока, где совокупность полей признаков в составе найденного первого целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета из группы полей признаков, соответствующих величинам полей признаков из состава первой записи потока, а действие в составе этого первого целевого пути сервиса представляет собой действие, соответствующее величине действия из группы величин действия из состава первой записи потока и используемое для обработки первого пакета данных;
определение, согласно предварительно конфигурированному соответствию между первым целевым путем сервиса и первой аппаратной таблицей потоков, такой первой аппаратной таблицы потоков, соответствующей первому целевому пути сервиса, где эта первая аппаратная таблица потоков, соответствующая первого целевого пути сервиса, поддерживает сервис, поддерживаемый первым целевым путем сервиса; и
конфигурирование записи потока в первой аппаратной таблице потоков согласно первой записи потока.
Согласно конкретному варианту осуществления настоящего изобретения процессор 301 может выполнять компьютерные команды, так что, в частности, совокупность полей признаков из состава нескольких таблиц потоков OpenFlow, сообщенных посредством устройства связи, может содержать все поля признаков, поддерживаемые протоколом OpenFlow, а действия из состава сообщенных нескольких таблиц потоков OpenFlow могут представлять собой действия, поддерживаемые протоколом OpenFlow.
Здесь может быть только одна первая запись потока, или могут быть две или более первых записей потоков. Соответственно, процессор 301 может выполнять компьютерные команды, так что это устройство связи, в частности, осуществляет следующие операции:
когда имеются две или более первых записей потоков, агрегирование этих первых записей потоков для генерации комбинированной записи потока, где величины полей признаков, входящие в комбинированную запись потока, представляют собой величины полей признаков, которые входят в совокупность величин полей признаков из состава первых записей потоков и соответствуют полю признаков входного порта и полю признаков заголовка пакета, а величины действий, входящие в состав комбинированной записи потока, представляют собой величины действий, которые входят в совокупность величин действий из состава первых записей потоков и используются для обработки первого пакета данных; и определение, в составе предварительно конфигурированного пути сервиса, одного пути сервиса, в котором поля признаков содержат поля признаков, соответствующие величинам полей признаков из состава комбинированной записи потока, и в котором действия, содержат действия, соответствующие величинам действий из состава комбинированной записи потока, в качестве первого целевого пути сервиса; и
когда имеется только одна первая запись потока, определение, в составе предварительно конфигурированного пути сервиса, одного пути сервиса, в котором поле признаков представляет собой поле признаков, соответствующее величине поля признаков из состава первой записи потока, и в котором действие представляет собой действие, соответствующее величине действия в составе первой целевой записи потока, в качестве первого пути сервиса.
В рамках конкретного варианта осуществления изобретения, пересечение может далее содержать поле признаков и действие, используемые для осуществления второго сервиса, не поддерживаемого аппаратной таблицей потоков в памяти кристалла интегральной схемы аппаратного передатчика; здесь информация относительно пакета данных далее содержит информацию относительно второго пакета данных для второго сервиса; запись потока, принимаемая от контроллера, далее содержит по меньшей мере одну из записей потоков, согласованных со вторым пакетом данных; и соответственно, процессор 301 выполняет компьютерные команды, так что устройство связи осуществляет далее следующие операции: получение, из программной таблицы потоков, второй записи потока, согласованной со вторым пакетом данных, и обработку второго пакета данных согласно действию из состава второй записи потока.
Далее, процессор 301 может дополнительно выполнять компьютерные команды, так что устройство связи может осуществлять следующие операции:
определение, в составе предварительно конфигурированного пути сервиса, второго целевого пути сервиса, согласованного со второй целевой записью потока, где совокупность полей признаков в составе найденного второго целевого пути сервиса содержит поле признаков входного порта и поле признаков заголовка пакета из группы полей признаков, соответствующих величинам полей признаков из состава второй записи потока, а действие из состава найденного второго целевого пути сервиса представляет собой действие, соответствующее величине действия, которая входит в совокупность величин действия в составе второй записи потока и которая используется для обработки второго пакета данных;
конфигурирование, согласно второй записи потока, сервисной записи потока в сервисной таблице потоков, соответствующей второму целевому пути сервиса, где эта сервисная таблица потоков представляет собой таблицу точного совпадения, а поля признаков в этой сервисной таблице потоков являются всеми полями признаков в составе второго целевого пути сервиса; конфигурирование величины первого поля признаков в составе сервисной записи потока в виде соответствующей величины поля признаков в составе первой записи потока; конфигурирование величины второго поля признаков в составе сервисной записи потока в виде соответствующей величины поля заголовка в заголовке второго пакета данных; и конфигурирование величины действия в составе сервисной записи потока в виде величины действия в составе второй записи потока, где поле признаков, соответствующее величине первого поля признаков, принадлежит к полю признаков, соответствующему величине поля признаков в составе первой записи потока, а поле признаков, соответствующее величине второго поля признаков, не принадлежит к полю признаков, соответствующему величине поля признаков в составе второй записи потока; и
поиск, когда происходит позднее прием последующего пакета данных для второго сервиса, в сервисной таблице потоков для обнаружения сервисной записи потока, согласованной с этим последующим пакетом данных, и обработки этого последующего пакета данных согласно действию из состава найденной сервисной записи потока.
Предпочтительно, процессор 301 дополнительно выполняет компьютерные команды, так что устройство связи далее осуществляет следующие операции: конфигурирование соответствия между путями сервисов и соответствующими аппаратными таблицами потоков, где в состав совокупности путей сервисов входит первый целевой путь сервиса, процедура конфигурирования, в частности, содержит:
конфигурирование нескольких физических таблиц потоков и соответствия между этими физическими таблицами потоков и аппаратными таблицами потоков, где эти несколько физических таблиц потоков по отдельности содержат поддерживаемые поле признаков и действие, поле признаков из каждой физической таблицы потоков входит в совокупность полей признаков в составе соответствующей аппаратной таблицы потоков, а действие, которое входит в совокупность действий в составе каждой физической таблицы потоков и которое нужно записать в аппаратную таблицу потоков, включают в группу действий соответствующей аппаратной таблицы потоков; и
конфигурирование соответствия между путями сервисов и физическими таблицами потоков, где поле признаков в составе каждого пути сервиса входит в совокупность полей признаков из состава всех соответствующих физических таблиц потоков, а действие в составе каждого пути сервиса входит в группу действий для всех соответствующих физических таблиц потоков.
Соответственно, процессор 301 выполняет компьютерные команды, так что процедура определения, посредством устройства связи, согласно предварительно конфигурированному соответствию между первым целевым путем сервиса и первой аппаратной таблицей потоков, такой первой аппаратной таблицы потоков, соответствующей первому целевому пути сервиса, в частности, содержит: процессор 301 выполняет компьютерные команды, так что устройство связи, в частности, определяет первую физическую таблицу потоков согласно соответствию между первым целевым путем сервиса и соответствующей первой физической таблицей потоков, и определяет первую аппаратную таблицу потоков согласно соответствию между первой физической таблицей потоков и соответствующей первой аппаратной таблицей потоков.
Процессор 301, описываемый в варианте 3 настоящего изобретения, выполняет компьютерные команды, так что устройство связи осуществляет способ, реализуемый устройством связи в варианте 1.
Согласно варианту 3 настоящего изобретения все несколько таблиц потоков OpenFlow могут быть использованы для осуществления первого сервиса; поэтому, согласно логической схеме обработки данных в контроллере, независимо от того, какой таблице потоков или каким таблицам потоков соответствует запись потока, генерируемая для первого сервиса, эта запись потока может быть успешно сформирована и передана. Кроме того, первый целевой путь сервиса, найденный устройством связи, содержит поле признаков и действие, соответствующие величине поля признаков и величине действия относительно пакета данных для первого сервиса; поэтому указанный первый целевой путь сервиса поддерживает первый сервис. Более того, поскольку аппаратная таблица потоков, соответствующая первому целевому пути сервиса, поддерживает сервис, поддерживаемый первым целевым путем сервиса, аппаратная таблица потоков, соответствующая первому целевому пути сервиса, представляет собой аппаратную таблицу потоков, поддерживающую первый сервис. Далее, устройство связи может конфигурировать, в аппаратной таблице потоков, запись потока, используемую для осуществления первого сервиса. Поэтому, независимо от того, с каким контроллером соединено устройство связи, это устройство связи может с успехом конфигурировать, в аппаратной таблице потоков, запись потока, используемую для осуществления первого сервиса с целью успешно произвести обработку первого сервиса, уменьшая тем самым вероятность неудачи в обработке сервиса.
Как показано на фиг. 5, вариант 4 настоящего изобретения предлагает коммутатор 400, содержащий устройство 401 связи и кристалл 402 интегральной схемы аппаратного передатчика, где это устройство 401 связи соединено с кристаллом 402 интегральной схемы аппаратного передатчика, это устройство 401 связи осуществляет связь с контроллером с использованием протокола OpenFlow OpenFlow, так что это устройство 401 связи представляет собой устройство 200 связи, предлагаемое Вариантом 2, или устройство 300 связи, предлагаемое вариантом 3.
Как показано на фиг. 6, вариант 5 настоящего изобретения предлагает систему 500 связи, содержащую коммутатор 501 и контроллер 502, где этот коммутатор 501 осуществляет связь с контроллером 502 с использованием протокола OpenFlow OpenFlow, так что коммутатор 501 представляет собой, в частности, коммутатор 400, предлагаемый вариантом 4.
Даже рядовой специалист в рассматриваемой области может знать, что, в сочетании с примерами, описываемыми в вариантах, рассмотренных в настоящем описании, модули и этапы алгоритмов могут быть осуществлены посредством электронной аппаратуры или сочетания компьютерного программного обеспечения и электронной аппаратуры. Осуществлять ли функции посредством аппаратуры или программного обеспечения, зависит от конкретных приложений и проектных ограничений, наложенных на технические решения. Специалист в рассматриваемой области может использовать различные способы для осуществления описываемых функций в каждом конкретном приложении, но это не следует считать выходом соответствующего варианта осуществления за пределы объема настоящего изобретения.
Специалист в рассматриваемой области может ясно понимать, что в целях удобства и краткости описания подробностей различных процессов в рассматриваемых выше системах, устройствах и модулях, ссылки могут быть сделаны на соответствующие процессы в приведенных выше описаниях вариантов способа, так что подробности здесь повторно рассмотрены не будут.
В ряде вариантов, предлагаемых в настоящей заявке, должно быть понятно, что описываемые система, устройство и способ могут быть осуществлены и по-другому. Например, рассмотренный здесь вариант устройства является всего лишь примером. Например, приведенное здесь разбиение на модули является всего лишь разбиением логических функций, так что в реальных вариантах осуществления возможны другие способы разбиения. Например, несколько модулей или компонентов могут быть объединены или интегрированы в другой системе, либо некоторые признаки можно игнорировать или не осуществлять. Кроме того, показанные здесь или обсуждаемые взаимосвязи или прямые связи или соединения связи могут быть осуществлены посредством некоторых интерфейсов. Непрямые связи или соединения связи между устройствами или модулями могут быть осуществлены в электронной, механической или другой форме.
Модули, описываемые в виде раздельных частей, могут быть или не могут быть физически раздельными, а части, описываемые в качестве модулей, могут быть или не быть физическими модулями, могут быть расположены в одном месте или могут быть распределены по нескольким сетевым модулям. Некоторые или все модули могут быть выбраны согласно реальным нуждам для выбора целей решений согласно вариантам.
Кроме того, функциональные модули в составе вариантов настоящего изобретения могут быть интегрированы в одном процессорном модуле, или каждый из модулей может существовать физически отдельно, либо два или более модулей могут быть интегрированы в одном модуле.
Когда функции выполняют в форме программного функционального модуля и продают или используют в качестве независимого продукта, эти функции могут быть записаны на компьютерном носителе информации. На основе такого понимания, технические решения согласно настоящему изобретению по существу или частично вносят вклад в известные решения, либо некоторые технические решения могут быть выполнены в форме программного продукта. Этот программный продукт записан на носителе информации и содержит ряд команд для управления компьютерным устройством (которое может представлять собой персональный компьютер, сервер или сетевое устройство) для осуществления всех или некоторых этапов способов, описываемых в вариантах настоящего изобретения. Указанный выше носитель информации может представлять собой: какой-либо носитель, способный сохранять программный код, такой как устройство USB флэш-памяти, сменный жесткий диск, постоянное запоминающее устройство (ПЗУ (ROM, Read-Only Memory)), запоминающее устройство с произвольной выборкой (ЗУПВ (RAM, Random Access Memory)), магнитный диск или оптический диск.
Приведенное выше описание содержит всего лишь конкретные способы осуществления настоящего изобретения и не ставит целью как-то ограничить объем защиты настоящего изобретения. Любые вариации или замены, легко получаемые специалистами в рассматриваемой области в пределах описываемого здесь технического объема настоящего изобретения, попадут в объем защиты этого изобретения. Поэтому объем защиты настоящего изобретения следует считать соответствующим объему защиты формулы изобретения.