Способ управления таблицей потока и соответствующие устройство и система

Иллюстрации

Показать все

Изобретение относится к технологиям сетевой связи. Технический результат заключается в повышении скорости передачи данных. Способ управления таблицей потока, содержащий этапы, на которых: генерируют, с помощью программно-определенного сетевого контроллера, первую запись таблицы потока, при этом первый набор полей в первой записи таблицы потока переносит индекс фактического значения вместо самого фактического значения в первом наборе полей, причем первый набор полей включает в себя N полей, где N – положительное целое число; и передают, с помощью программно-определенного сетевого контроллера, сообщение протокола OpenFlow в коммутатор OpenFlow, причем сообщение протокола OpenFlow переносит первую запись таблицы потока. 6 н. и 12 з.п. ф-лы, 18 ил.

Реферат

Область техники, к которой относится изобретение

Настоящее изобретение относится к области технологий сетевой передачи данных и, в частности, к способу управления таблицей потока и соответствующим устройству и системе передачи данных.

Уровень техники

Технология открытого потока (OpenFlow) была первоначально предложена Стэнфордским университетом для решения, используя инновационную концепцию межсетевого взаимодействия и основанную на технических условиях протокола управления передачей/Протокола Интернет (TCP/IP, Transmission Control Protocol/Internet Protocol), различных проблем, связанных с узкими местами, которые возникают, когда новые услуги предоставляют в существующих сетях.

В соответствии с основной идеей технологии OpenFlow, обработка перенаправления пакета, которая первоначально полностью управлялась устройством коммутатора (устройство коммутатора может представлять собой, например, коммутатор или маршрутизатор), изменяется так, что она совместно выполняется комматурором OpenFlow (SDN switch) и программно-определенным сетевым (SDN, Software Defined Network) контроллером (SDN Controller).

Контроллер SDN может активно предоставлять в коммутатор OpenFlow, или когда коммутатор OpenFlow передает запрос записи таблицы потока, используемой для обозначения подхода к обработке перенаправления пакета. Коммутатор OpenFlow выполняет, в соответствии с записью таблицы потока, предоставленной контроллером SDN, обработку перенаправления для принимаемого пакета, который соответствует записи таблицы потока.

В предшествующем уровне техники запись таблицы потока, предоставляемая контроллером SDN в коммутатор OpenFlow, в любое время представляет собой полную стандартную запись таблицы потока. Контроллер SDN иногда также предоставляет десятки или сотни записей таблицы потока в коммутатор OpenFlow одновременно. Когда контроллер SDN предоставляет полные стандартные записи в таблицу потока, в некоторых случаях, относительно большое количество служебных сигналов или сигналов в канале управления могут быть переданы, что увеличивает риск перегрузки в канале управления, и они занимают относительно большое количество ресурсов сетевой обработки, как в контроллере SDN, так и в коммутаторе OpenFlow.

Раскрытие сущности изобретения

Варианты осуществления настоящего изобретения направлены на способ администрирования таблицей потока, устройства и системы для уменьшения объема данных записей таблицы потока, предоставляемых контроллером SDN в коммутатор OpenFlow, уменьшая, таким образом, количество служебных сигналов в канале управления, для уменьшения риска перегрузки в канале управления, и уменьшения занимаемых ресурсов сетевой обработки контроллера SDN и коммутатора OpenFlow, для предоставления записей таблицы потока.

В соответствии с первым аспектом, способ администрирования таблицей потока включает в себя:

генерируют, с помощью программно-определенного сетевого контроллера, первую запись в таблицу потока, где первый набор поля в первой записи таблицы потока переносит индекс фактического значения в наборе первого поля, набор первого поля включает в себя N полей, и N представляет собой положительное целое число; и

передают, с помощью программно-определенного сетевого контроллера, сообщение протокола OpenFlow в коммутатор OpenFlow, где сообщение протокола OpenFlow переносит первую запись таблицы потока.

Со ссылкой на первый аспект, в первом возможном подходе к воплощению первого аспекта, индекс представляет собой идентификатор записи в таблицу потока для записи таблицы потока, сохраненной в коммутаторе OpenFlow.

Со ссылкой на первый аспект или первый возможный подход к воплощению первого аспекта, во втором возможном подходе к воплощению первого аспекта, каждое поле в наборе второго поля в первой записи таблицы потока переносит множество фактических значений, где набор второго поля включает в себя поля М, и М представляет собой положительное целое число.

Со ссылкой на первый аспект или первый возможный подход к воплощению первого аспекта или второй возможный подход к воплощению первого аспекта, в третьем возможном подходе к воплощению первого аспекта,

перед генерированием первой записи таблицы потока способ дополнительно включает в себя: принимают, с помощью программно-определенного сетевого контроллера, первый пакет или заголовок первого пакета из коммутатора, и определяют, в соответствии с заданной политикой обработки, набор инструкций маршрутизации, используемый для обработки первого пакета, где поле инструкции первой записи таблицы потока переносит набор инструкций маршрутизации или индекс набора инструкций маршрутизации.

В соответствии со вторым аспектом, способ администрирования таблицей потока включает в себя:

принимают, с помощью коммутатора OpenFlow, сообщение протокола OpenFlow, где сообщение протокола OpenFlow переносит первую запись таблицы потока, набор первого поля в первой записи таблицы потока переносит индекс фактического значения в наборе первого поля, набор первого поля включает в себя N полей, и N представляет собой положительное целое число;

получают, с помощью коммутатора OpenFlow, фактическое значение в наборе первого поля на основе индекса фактического значения в наборе первого поля; и

заменяют, с помощью коммутатора OpenFlow, на фактическое значение в наборе первого поля, индекс, который относится к фактическому значению в наборе первого поля, и который переносится в наборе первого поля, в первой записи таблицы потока.

Со ссылкой на второй аспект, в первом возможном подходе к воплощению второго аспекта, индекс представляет собой идентификатор записи таблицы потока для записи таблицы потока, сохраненной в коммутаторе, и получение фактического значения в наборе первого поля на основе индекса набора первого поля включает в себя: получают, на основе идентификатора записи таблицы потока, фактическое значение, заполненное набором третьего поля, которое находится в записи таблицы потока, представленной идентификатором записи таблицы потока, и которое имеет тот же тип протокола, что и набор первого поля, где поля, которые находятся в наборе третьего поля и в наборе первого поля и которые имеют одинаковый тип протокола, имеют одинаковое фактическое значение.

Со ссылкой на второй аспект или первый возможный подход к воплощению второго аспекта, во втором возможном подходе к воплощению второго аспекта, способ дополнительно включает в себя: передают, с помощью коммутатора OpenFlow, сохраненную первую запись таблицы потока или идентификатор первой записи таблицы потока в программно-определенный сетевой контроллер.

Со ссылкой на второй аспект или первый возможный подход к воплощению второго аспекта или второй возможный подход к воплощению второго аспекта, в третьем возможном подходе к воплощению второго аспекта,

перед тем, как коммутатор OpenFlow примет первую запись таблицы потока, способ дополнительно включает в себя:

передают, с помощью коммутатора OpenFlow, первый пакет или заголовок пакета первого пакета в программно-определенный сетевой контроллер, где

поле инструкции первой записи таблицы потока переносит набор инструкций маршрутизации, используемый для обработки первого пакета или индекса набора инструкций маршрутизации; и

способ дополнительно включает в себя: обрабатывают с помощью коммутатора OpenFlow, первый пакет на основе набора инструкций маршрутизации.

В соответствии с третьим аспектом, способ релейной передачи таблицы потока может включать в себя:

принимают, с помощью устройства виртуального уровня, первое сообщение протокола OpenFlow из первого программно-определенного сетевого контроллера, где первое сообщение протокола OpenFlow переносит первую запись таблицы потока, и первое поле в первой записи таблицы потока переносит индекс фактического значения в первом поле;

принимают, с помощью устройства виртуального уровня, второе сообщение протокола OpenFlow из второго программно-определенного сетевого контроллера, где второе сообщение протокола OpenFlow переносит вторую запись таблицы потока, и четвертое поле во второй записи таблицы потока переносит индекс фактического значения в четвертом поле;

комбинируют, с помощью устройства виртуального уровня, первую запись таблицы потока и вторую запись таблицы потока в третью запись таблицы потока; и

передают, с помощью устройства виртуального уровня, третье сообщение протокола OpenFlow, переносящее третью запись таблицы потока в коммутатор OpenFlow.

В соответствии с четвертым аспектом, программно-определенный сетевой контроллер может включать в себя:

модуль генерирования, выполненный с возможностью генерировать первую запись таблицы потока, где набор первого поля в первой записи таблицы потока переносит индекс фактического значения в наборе первого поля, набор первого поля включает в себя N полей, и N представляет собой положительное целое число; и

модуль передачи, выполненный с возможностью передачи сообщения протокола OpenFlow в коммутатор OpenFlow, где сообщение протокола OpenFlow переносит первую запись таблицы потока.

Со ссылкой на четвертый аспект, в первом возможном подходе к воплощению четвертого аспекта, индекс представляет собой идентификатор записи таблицы потока для записи таблицы потока, сохраненной в коммутаторе OpenFlow.

Со ссылкой на четвертый аспект или первый возможный подход к воплощению четвертого аспекта, во втором возможном подходе к воплощению четвертого аспекта, каждое поле в наборе второго поля в первой записи таблицы потока переносит множество фактических значений записи таблицы потока, где набор второго поля включает в себя М полей, и М представляет собой положительное целое число.

Со ссылкой на четвертый аспект или первый возможный подход к воплощению четвертого аспекта или второй возможный подход к воплощению четвертого аспекта, в третьем возможном подходе к воплощению четвертого аспекта,

программно-определенный сетевой контроллер дополнительно включает в себя модуль приема, выполненный с возможностью: перед тем, как модуль генерирования сгенерирует первую запись таблицы потока, принимать первый пакет или заголовок пакета первого пакета из коммутатора, и определять, в соответствии с заданной политикой обработки, набор инструкций маршрутизации для обработки первого пакета, где поле инструкции первой записи таблицы потока переносит набор инструкций маршрутизации или индекс набора инструкции маршрутизации.

В соответствии с пятым аспектом, коммутатор OpenFlow может включать в себя:

модуль приема, выполненный с возможностью приема сообщения протокола OpenFlow, где сообщение протокола OpenFlow переносит первую запись таблицы потока, набор первого поля в первой записи таблицы потока переносит индекс фактического значения в наборе первого поля, набор первого поля включает в себя N полей, и N представляет собой положительное целое число;

модуль получения выполнен с возможностью получения фактического значения в наборе первого поля на основе индекса фактического значения в наборе первого поля; и

модуль замены, выполненный с возможностью замены на фактическое значение набора первого поля, которое было получено модулем получения, индекса, который относится к фактическому значению набора первого поля, и который переносится в наборе первого поля в первой записи таблицы потока.

Со ссылкой на пятый аспект, в первом возможном подходе к воплощению пятого аспекта, индекс представляет собой идентификатор записи таблицы потока для записи таблицы потока, сохраненной в коммутаторе OpenFlow, где

модуль получения, в частности, выполнен с возможностью получения, на основе идентификатора записи таблицы потока, фактического значения, поданного в наборе третьего поля, которое находится в записи таблицы потока, представленном идентификатором записи таблицы потока, и который имеет тот же тип протокола, что и набор первого поля, где поля, которые находятся в наборе третьего поля и в наборе первого поля, и который имеет тот же тип протокола, имеют одинаковое фактическое значение.

Со ссылкой на пятый аспект или первый возможный подход к воплощению пятого аспекта, во втором возможном подходе к воплощению пятого аспекта, коммутатор OpenFlow дополнительно включает в себя: первый модуль передачи, выполненный с возможностью передачи сохраненной первой записи таблицы потока или идентификатора первой записи таблицы потока в программно-определенный сетевой контроллер.

Со ссылкой на пятый аспект или первый возможный подход к воплощению пятого аспекта, или второй возможный подход к воплощению пятого аспекта, в третьем возможном подходе к воплощению пятого аспекта,

коммутатор OpenFlow дополнительно включает в себя:

второй модуль передачи, выполненный с возможностью: перед приемом первой записи таблицы потока, передавать первый пакет или заголовок пакета первого пакета в программно-определенный сетевой контроллер, где поле инструкции первой записи таблицы потока переносит набор инструкций маршрутизации, используемый для обработки первого пакета или индекса набора инструкций маршрутизации; и

модуль обработки пакета, выполненный с возможностью обработки первого пакета на основе набора инструкций маршрутизации.

В соответствии с шестым аспектом, устройство виртуального уровня включает в себя:

модуль приема, выполненный с возможностью приема первого сообщения протокола OpenFlow из первого программно-определенного сетевого контроллера, где первое сообщение протокола OpenFlow переносит первую запись таблицы потока, и первое поле в первой записи таблицы потока переносит индекс фактического значения в первом поле; и принимать второе сообщение OpenFlow протокола OpenFlow из второго программно-определенного сетевого контроллера, где второе сообщение протокола OpenFlow переносит вторую запись таблицы потока, и четвертое поле во второй записи таблицы потока переносит индекс фактического значения в четвертом поле;

модуль комбинирования, выполненный с возможностью комбинирования первой записи таблицы потока и второй записи таблицы потока в третью запись таблицы потока; и

модуль передачи, выполненный с возможностью передачи третьего сообщения протокола OpenFlow, переносящего третью запись таблицы потока, в коммутатор OpenFlow.

В соответствии с седьмым аспектом, система передачи данных включает в себя:

программно-определенный сетевой контроллер, выполненный с возможностью генерировать первую запись таблицы потока, где набор первого поля в первой записи таблицы потока переносит индекс фактического значения в наборе первого поля, набор первого поля включает в себя N полей, и N представляет собой положительное целое число; и передавать сообщения протокола OpenFlow в коммутатор OpenFlow, где сообщение протокола OpenFlow переносит первую запись таблицы потока; и

коммутатор OpenFlow, выполненный с возможностью приема сообщения протокола OpenFlow; получения фактического значения в наборе первого поля на основе индекса фактического значения в наборе первого поля; и замены на фактическое значение в наборе первого поля индекса, который относится к фактическому значению в наборе первого поля, и который переносят в наборе первого поля в первой записи таблицы потока.

В соответствии с восьмым аспектом, система передачи данных включает в себя:

первый программно-определенный сетевой контроллер, выполненный с возможностью передачи первого сообщения OpenFlow протокола OpenFlow, где первое сообщение протокола OpenFlow переносит первую запись таблицы потока, и первое поле в первой записи таблицы потока переносит индекс фактического значения в первом поле;

второй программно-определенный сетевой контроллер, выполненный с возможностью передачи второго сообщения протокола OpenFlow, где второе сообщение протокола OpenFlow переносит вторую запись таблицы потока, и четвертое поле во второй записи таблицы потока переносит индекс фактического значения в четвертом поле;

устройство виртуального уровня, выполненное с возможностью принимать первое сообщение протокола OpenFlow из первого программно-определенного сетевого контроллера; принимать второе сообщение протокола OpenFlow из второго программно-определенного сетевого контроллера; комбинировать первую запись таблицы потока и вторую запись таблицы потока в третью запись таблицы потока; и передавать третье сообщение протокола OpenFlow, переносящее третью запись таблицы потока, в коммутатор OpenFlow; и

коммутатор OpenFlow, выполненный с возможностью: приема третьего сообщения протокола OpenFlow; деления третьей записи таблицы потока, переносимой в третье сообщение протокола OpenFlow на первую запись таблицы потока и вторую запись таблицы потока; получения фактического значения первого поля на основе индекса фактического значения первого поля; получения фактического значения четвертого поля на основе индекса фактического значения четвертого поля; замены индекса фактического значения в первом поле, переносимого в первом поле, в первой записи таблицы потока на фактическое значение в первом поле; и замены индекса фактического значения четвертого поля, переносимого в четвертом поле, во второй записи таблицы потока на фактическое значение четвертого поля.

Можно видеть, что, в решениях, в вариантах осуществления настоящего изобретения, для первой записи таблицы потока, переносимой в сообщении протокола OpenFlow, переданном контроллером SDN в коммутатор OpenFlow, набор первого поля в первой записи таблицы потока переносит индекс фактического значения в первом наборе поля, вместо переноса фактического значения в наборе первого поля. В техническом воплощении объем данных индекса фактического значения поля обычно меньше, чем или даже гораздо меньше, чем у фактического значения поля. Поэтому, механизм доставки записи таблицы потока в вариантах осуществления позволяет уменьшить общее количество передаваемых служебных сигналов в канале управления между контроллером SDN и коммутатором OpenFlow, уменьшая, таким образом, риск перегрузки в канале управления, что также помогает уменьшить потребление сетевых ресурсов устройства коммутации, и помогает удовлетворять требованиям сложного сетевого взаимодействия.

Краткое описание чертежей

Для более ясного описания технических решений в вариантах осуществления настоящего изобретения или в предшествующем уровне техники, ниже кратко описаны приложенные чертежи, требуемые для описания вариантов осуществления или предшествующего уровня техники. Очевидно, что приложенные чертежи в следующем описании представляют собой только некоторые варианты осуществления настоящего изобретения, и специалист обычного уровня в данной области техники, без творческих усилий, все еще может вывести другие чертежи из этих приложенных чертежей.

На фиг. 1-а схематично показана блок-схема последовательности операций способа администрирования таблицы потока в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 1-b показана схема записи таблицы потока, доставленной SDN, в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 1-c показана другая схема записи таблицы потока, доставленной SDN, в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 1-d показана другая схема записи таблицы потока, доставленной SDN, в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 1-е показана другая схема записи таблицы потока, доставленной SDN, в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 1-f показана другая схема записи таблицы потока, доставленной SDN, в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 1-g показана другая схема записи таблицы потока, доставленной SDN, в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 1-h показана другая схема записи таблицы потока, доставленной SDN, в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 1-i показана схема деления записи таблицы потока в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 1-j показана другая схема деления записи таблицы потока в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 2-а схематично представлена блок-схема последовательности операций другого способа администрирования таблицы потока в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 2-b схематично представлена таблица потока, содержащаяся в коммутатор OpenFlow, в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 2-c показана другая схема записи таблицы потока, доставленной SDN, в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 3-а схематично представлена блок-схема последовательности операций другого способа администрирования таблицы потока в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 3-b показана схема комбинации записей таблицы потока в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 3-c показана другая схема комбинации записей таблицы потока в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 4 схематично представлена блок-схема последовательности операций другого способа администрирования таблицы потока в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 5 схематично представлена блок-схема последовательности операций другого способа администрирования таблицы потока в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 6 схематично представлена блок-схема последовательности операций другого способа администрирования таблицы потока в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 7 схематично представлена блок-схема последовательности операций другого способа администрирования таблицы потока в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 8-а схематично показана структурная схема контроллера SDN в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 8-b схематично показана структурная схема другого контроллера SDN в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 9-а схематично показана структурная схема коммутатора OpenFlow в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 9-b схематично показана структурная схема другого коммутатора OpenFlow в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 9-с схематично показана структурная схема другого коммутатора OpenFlow в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 10 схематично показана структурная схема устройства виртуального уровня в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 11 схематично показана структурная схема другого контроллера SDN в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 12 схематично показана структурная схема другого контроллера SDN в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 13 схематично показана структурная схема другого коммутатора OpenFlow в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 14 схематично показана структурная схема другого коммутатора OpenFlow в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 15 схематично показана структурная схема другого устройства виртуального уровня в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 16 схематично показана структурная схема другого устройства виртуального уровня в соответствии с вариантом осуществления настоящего изобретения;

На фиг. 17 схематично представлена система передачи данных в соответствии с вариантом осуществления настоящего изобретения; и

На фиг. 18 схематично представлена другая система передачи данных в соответствии с вариантом осуществления настоящего изобретения.

Осуществление изобретения

Варианты осуществления настоящего изобретения направлены на способ администрирования таблицей потока, устройства и системы для уменьшения объема данных записей таблицы потока, передаваемых контроллером SDN в коммутатор OpenFlow, уменьшая, таким образом, объемы служебных сигналов в канале управления для уменьшения риска перегрузок в канале управления, и уменьшая занимаемые ресурсы сетевой обработки контроллера SDN, и коммутатора OpenFlow, для доставки записи в таблицы потока.

Для того, чтобы сделать технические решения в настоящем изобретении более понятными для специалиста в данной области техники, далее ясно описаны технические решения в вариантах осуществления настоящего изобретения со ссылкой на приложенные чертежи в вариантах осуществления настоящего изобретения. Очевидно, что описанные варианты осуществления представляют собой только часть, а не все варианты осуществления настоящего изобретения. Все другие варианты осуществления, без творческих усилий полученные специалистом обычного уровня в данной области техники на основе вариантов осуществления настоящего изобретения, должны попадать в пределы объема защиты настоящего изобретения.

Подробные описания изобретения по-отдельности представлены ниже.

В описании, в формуле изобретения и на приложенных чертежах настоящего изобретения, термины "первый", "второй", "третий", "четвертый" и так далее предназначены для различия между разными объектами, но не для обозначения конкретного порядка. Кроме того, термины "включающий в себя", "включающее в себя" или любой другой их вариант предназначены для охвата неисключительного включения. Например, обработка, способ, система, продукт или устройство, которое включает в себя последовательность этапов или модулей, не ограничены перечисленными этапами или модулями и, вместо этого, могут включать в себя этапы или модули, которые не перечислены здесь.

В варианте осуществления способа администрирования таблицей потока, в соответствии с настоящим изобретением, способ администрирования таблицей потока включает в себя: генерируют, с помощью контроллера SDN, первую запись таблицы потока, где набор первого поля в первой записи таблицы потока переносит индекс фактического значения в наборе первого поля, набор первого поля включает в себя N полей, и N представляет собой положительное целое число; и передают сообщение протокола OpenFlow в коммутатор OpenFlow, где сообщение протокола OpenFlow переносит первую запись таблицы потока.

Вначале, со ссылкой на фиг. 1-а, на фиг. 1-а представлена схема блок-схема последовательности операций способа администрирования таблицей потока, в соответствии с вариантом осуществления настоящего изобретения. Как показано на фиг. 1-а, способ администрирования таблицей потока, в соответствии с данным вариантом осуществления настоящего изобретения может включать в себя следующее содержание.

101: контроллер SDN генерирует первую запись таблицы потока.

Контроллер SDN может генерировать запись таблицы потока (которая может называться первой записью таблицы потока для простоты последующей ссылки), на основе заданной политики, или контроллер SDN может генерировать первую запись таблицы потока при инициировании со стороны инструкции пользователя или коммутатора OpenFlow. Конечно, контроллер SDN может генерировать одну или больше записей таблицы потока при инициировании другим условием.

В архитектуре SDN контроллер SDN определяет канал передачи пакета данных в сети. Коммутатор OpenFlow локально сохраняет несколько таблиц потока (таблицы потока), и каждая таблица потока может включать в себя несколько записей таблицы потока. Если таблица потока, локально сохраняемая в коммутаторе OpenFlow, имеет запись таблицы потока, которая соответствует пакету данных (например, пакету), который должен быть перенаправлен коммутатором OpenFlow, коммутатор OpenFlow выполняет, на основе записи таблицы потока, которая находится в таблице потока и которая соответствует пакету данных, обработку перенаправления для пакета данных. Кроме того, если ни одна запись таблицы потока в локально сохраненной таблице потока не соответствует пакету данных, коммутатор OpenFlow может передавать пакет данных или заголовок пакета данных в контроллер SDN для определения соответствия подхода к обработке перенаправления. Контроллер SDN передает обратно в коммутатор OpenFlow новую запись таблицы потока, которая соответствует пакету данных. Коммутатор OpenFlow затем выполняет обработку перенаправления для пакета данных, в соответствии с новой записью таблицы потока, которую доставляет контроллер SDN, и которая соответствует пакету данных. Это означает, что устройства в сети OpenFlow могут быть развернуты, используя распределенный подход,, и ими можно управлять, используя централизованный подход. В этом случае, сеть OpenFlow находится в программно-определенной форме, и, поэтому, сеть OpenFlow также относится к SDN. SDN может предоставлять программируемый интерфейс для обеспечения для пользователя сети возможности определения, как направлять пакет данных, как воплотить баланс нагрузки, как выполнить управление доступом и т.п.Таким образом, обычно, только сотни строк кода должны быть записаны в контроллер SDN для развертывания нового протокола маршрутизации или алгоритма защиты в SDN. Поэтому, открытость SDN помогает быстро ускорить разработку и развертывание новых сетевых приложений.

Следует отметить, что коммутатор OpenFlow, упомянутый в вариантах осуществления настоящего изобретения, представляет собой устройство коммутатора, которое поддерживает протокол OpenFlow. Устройство коммутатора, которое поддерживает протокол OpenFlow, может, например, представлять собой устройство перенаправления пакета данных (например, пакет), такое, как маршрутизатор, или коммутатор, который поддерживает протокол OpenFlow.

102: контроллер SDN передает сообщение протокола OpenFlow в коммутатор OpenFlow.

Сообщение протокола OpenFlow переносит первую запись таблицы потока, набор первого поля в первой записи таблицы потока переносит индекс фактического значения в наборе первого поля, набор первого поля включает в себя N полей, и N представляет собой положительное целое число. Сообщение протокола OpenFlow, которое переносит первую запись таблицы потока, может представлять собой, например, сообщение модификации потока (flow_mod) или другое сообщение протокола OpenFlow.

Следует понимать, что первая запись таблицы потока может иметь структуру данных, которая является такой же, как и стандартная запись таблицы потока. Например, тип поля протокола, включенного в первую запись таблицы потока и взаимосвязь местоположения между всеми типами полей протокола в первой записи таблицы потока может быть такой же, как и у стандартной записи таблицы потока. Однако, тип информации, переносимой в некоторых или всех полях протокола в первой записи таблицы потока, отличается от стандартной записи таблицы потока. В частности, поле в первом наборе полей в первой записи таблицы потока переносит индекс фактического значения поля, в то время как каждое поле в стандартной записи таблицы потока переносит фактическое значение поля.

N в вариантах осуществления настоящего изобретения может быть равным, например, 1, 2, 5, 8, 10, или другому значению.

N полей, включенных в набор первого поля, могут представлять собой любые N полей в первой записи таблицы потока. N полей, включенных в набор первого поля, могут быть расположенными рядом друг с другом N полями, частично расположенными рядом друг с другом N полями или не расположенными рядом друг с другом N полями в первой записи таблицы потока, то есть, местами положения, где поля в наборе первого поля могут быть произвольно распределены в первой записи таблицы потока, что помогает более гибко удовлетворять гибким техническим требованиям различных фактических сценариев приложения. N полей могут, например, включать в себя, по меньшей мере, одно из следующих полей: поле номера порта, поле IP-адреса источника, поле IP-адреса назначения, поле адреса управления доступом к среде (MAC, управление доступом к среде) места назначения, поле виртуального сетевого идентификатора локальной вычислительной сети, поле адреса МАС-источника и т.п. Фактическое значение поля в наборе первого поля представляет стандартное значение, которое должно переносить поле. Например, фактическое значение поля номера порта представляет собой номер порта, фактическое значение в поле IP-адреса источника представляет собой IP-адрес источника, фактическое значение поля IP-адреса места назначения представляет собой IP-адрес места назначения, фактическое значение поля МАС-адреса места назначения представляет собой МАС-адрес места назначения, фактическое значение поля идентификатора виртуальной локальной вычислительной сети представляет собой идентификатор виртуальной локальной вычислительной сети, фактическое значение поля МАС-адреса источника представляет собой МАС-адрес источника, и фактическое значение другого поля определяют, соответственно. В данном варианте осуществления настоящего изобретения поле в наборе первого поля представляет собой первую запись таблицы потока, предоставляемую контроллером SDN, который не переносит фактическое значение поля, но вместо этого, переносит индекс фактического значения поля, где индекс представляет собой информацию, используя которую может быть индексировано фактическое значение поля. Предположим, что набор первого поля включает в себя поле номера порта, поле номера порта не переносит номер порта, но вместо этого, переносит индекс, с помощью которого может быть проиндексирован номер порта. В качестве другого примера, набор первого поля включает в себя поле IP-адреса источника, и поле IP-адреса источника не переносит IP-адрес источника, но, вместо этого, переносит индекс, используя который может быть индексирован IP-адрес источника. В качестве другого примера, набор первого поля включает в себя поле IP-адреса назначения, и поле IP-адреса назначения не переносит IP-адрес назначения, но, вместо этого, переносит индекс, используя которой может быть проиндексирован IP-адрес места назначения. В качестве другого примера, набор первого поля включает в себя поле идентификатора виртуальной локальной вычислительной сети, и поле идентификатора виртуальной локальной вычислительной сети не переносит идентификатор виртуальной локальной вычислительной сети, но, вместо этого, переносит индекс, используя который может быть проиндексирован идентификатор виртуальной локальной вычислительной сети. В качестве другого примера, набор первого поля включает в себя поле МАС-адреса места назначения, и поле МАС-адреса места назначения не переносит МАС-адрес места назначения, но, вместо этого, переносит индекс, используя который может быть проиндексирован МАС-адрес места назначения. В качестве другого примера, набор первого поля включает в себя поле МАС-адреса источника, и поле МАС-адреса источника не переносит МАС-адрес источника, но, вместо этого, переносит индекс, используя которого может быть проиндексирован МАС-адрес источника. Если первый набор поля дополнительно включает в себя поле другого протокола, соответствующим образом выводится соответственный случай.

Можно понять, что индекс фактического значения может быть разных типов, и требование может удовлетворяться до тех пор, пока коммутатор OpenFlow не получит фактическое значение, в соответствии с индексом фактического значения. В некоторых подходах к воплощению настоящего изобретения индекс фактического значения может представлять собой, например, идентификатор записи таблицы потока для записи таблицы потока, сохраненной в коммутаторе OpenFlow, то есть, индекс, переносимый в любом поле, в наборе первого поля первой записи таблицы потока, переносимой в сообщении протокола OpenFlow, может представлять собой идентификатор записи таблицы потока для записи таблицы потока, сохраненной в коммутаторе OpenFlow. Следует понимать, что, если N больше, чем 1, индексы, переносимые в полях в наборе первого поля, могут быть полностью одинаковыми, частично одинаковыми или абсолютно разными (например, индексы, переносимые в полях, в наборе первого поля, могут представлять собой, в частности, одинаковые идентификаторы записи таблицы потока). Следует понимать, что если индекс фактичес