Коммутирующее устройство, контроллер, способ конфигурирования коммутирующего устройства и способ и система для обработки пакета

Иллюстрации

Показать все

Изобретение относится к технологиям сетевой связи. Технический результат заключается в повышении скорости передачи данных в сети. Способ содержит этапы, на которых: задают посредством коммутирующего устройства первую запись о потоке по меньшей мере в одной из таблиц потоков, причем первая запись о потоке содержит поле соответствия; поле соответствия используется для назначения информации, которую нужно сопоставить, и указания коммутирующему устройству выполнить сопоставление между значением информации, которая относится к принятому пакету и которую нужно сопоставить, и первым полем каждой записи в базе данных; информация, которую нужно сопоставить, содержит одно или более из поля заголовка пакета, идентификатора входного порта, из которого коммутирующее устройство принимает пакет, и метаданных, ассоциированных с пакетом; и каждая запись в базе данных содержит первое поле, и первое поле используется для обозначения присвоенного значения информации, которую нужно сопоставить; выполняют посредством коммутирующего устройства сопоставление между значением информации, которая относится к принятому пакету и которую нужно сопоставить, и первым полем каждой записи в базе данных в соответствии с первой записью о потоке. 4 н. и 11 з.п. ф-лы, 15 ил., 5 табл.

Реферат

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

[0001] Настоящее изобретение относится к области связи, в частности к коммутирующему устройству, контроллеру, способу конфигурирования коммутирующего устройства и к способу и системе для обработки пакета.

УРОВЕНЬ ТЕХНИКИ

[0002] OpenFlow является протоколом управления между контроллером OpenFlow (OpenFlow Controller, для краткости – контроллер) и коммутатором OpenFlow (OpenFlow Switch, для краткости – коммутатор). Контроллер управляет поведениями коммутатора предпочтительно с использованием таблицы потоков (Flow Table). Таблица потоков хранится в коммутаторе и формируется из множества записей о потоках (Flow Entry). Каждая запись о потоке включает в себя, как правило, поля соответствия (Match Fields) и команды (Instructions). Как правило, поле соответствия указывает информацию, которую нужно сопоставить (которая может быть такой информацией, как различные поля заголовка пакета или ID порта, из которого коммутатор принимает пакет), и обеспечивает присвоенное значение информации, которую нужно сопоставить, причем присвоенное значение используется для сравнения с фактическим значением информации, которая относится к пакету и которую нужно сопоставить, а команды включают в себя множество типов команд, которые включают в себя действие (Action), используемое для указания выполнения некой операции над пакетом.

[0003] После приема пакета коммутатор выполняет сопоставление между принятым пакетом и полем соответствия в каждой записи о потоке в таблице потоков, которую нужно сопоставить (то есть сравнивает фактическое значение информации, которая относится к пакету и которую нужно сопоставить, с присвоенным значением поля соответствия в каждой записи о потоке в таблице потоков, которую нужно сопоставить, чтобы определить, являются ли они одним и тем же). Если успешно сопоставление между принятым пакетом и полем соответствия в записи о потоке (то есть содержимое поля соответствия в записи о потоке совпадает с фактическим значением информации, которая относится к пакету и которую нужно сопоставить), то коммутатор обрабатывает пакет в соответствии с командой в записи о потоке, для которой сопоставление успешно; если терпит неудачу сопоставление между принятым пакетом и полями соответствия всех остальных записей о потоках в таблице потоков, которую нужно сопоставить, и в таблице потоков существует запись о потоке Table-Miss (запись о потоке Table-Miss является специальной записью о потоке в таблице потоков OpenFlow, и эта запись о потоке не имеет поля соответствия, то есть сопоставление между этой записью о потоке и всеми пакетами может иметь успех, и эта запись о потоке имеет наименьший приоритет сопоставления), то коммутатор обрабатывает пакет в соответствии с записью о потоке Table-Miss (например, пакет можно отбросить или отправить контроллеру для обработки), а если нет записи о потоке Table-Miss, то коммутатор в соответствии с атрибутами таблицы потоков определяет, как обрабатывать тот пакет (например, пакет может быть выполнен с возможностью отбрасывания или отправки контроллеру для обработки). В соответствии с записью о потоке Table-Miss или атрибутами таблицы потоков, если пакет нужно отправить контроллеру, то контроллеру отправляется первое сообщение OpenFlow (первое сообщение OpenFlow включает в себя все или часть содержимого пакета, на котором терпит неудачу сопоставление), используемое для указания, что сопоставление терпит неудачу. Если контроллер принимает первое сообщение OpenFlow, то контроллер может доставить запись о потоке в коммутатор с использованием второго сообщения OpenFlow, чтобы дать коммутатору команду создать новую запись о потоке в таблице потоков, которую нужно сопоставить, и присвоенное значение, которое относится к информации, которую нужно сопоставить, и находится в поле соответствия новой записи о потоке, соответствует фактическому значению информации, которая относится к пакету и которую нужно сопоставить. После создания записи о потоке в таблице потоков, которую нужно сопоставить, коммутатор может снова выполнять сопоставление над пакетом. Независимо от сообщенного коммутатором пакета контроллер также может напрямую доставить третье сообщение OpenFlow, чтобы дать коммутатору команду создать новую запись о потоке в таблице потоков, которую нужно сопоставить.

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

[0005] Уровень техники имеет следующий недостаток: когда обновляется запись о потоке в назначенной таблице потоков, также нужно синхронно обновлять запись о потоке в синхронизирующей таблице потоков. Если синхронизирующее обновление терпит неудачу, то запись о потоке в синхронизирующей таблице потоков не обновляется, и поэтому, когда выполняется сопоставление между пакетом и записью о потоке в синхронизирующей таблице потоков, выполняется ошибочное сопоставление пакетов. Кроме того, коммутатору нужно хранить большое количество записей о потоках, в записях о потоках разных таблиц потоков существует большое количество избыточной информации, и служебная нагрузка системы увеличивается с увеличением масштаба организации сети.

РАСКРЫТИЕ ИЗОБРЕТЕНИЯ

[0006] Для устранения избыточной информации, существующей в записях о потоках разных таблиц потоков, и уменьшения количества записей о потоках варианты осуществления настоящего изобретения обеспечивают коммутирующее устройство, контроллер, способ конфигурирования коммутирующего устройства и способ и систему для обработки пакета. Технические решения выглядят следующим образом:

[0007] В соответствии с первым аспектом вариант осуществления настоящего изобретения обеспечивает способ конфигурирования коммутирующего устройства, причем в коммутирующем устройстве заданы одна или более таблиц потоков, и способ включает в себя:

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

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

[0009] При необходимости каждая запись базы данных дополнительно включает в себя второе поле, и второе поле используется для обозначения параметра обработки пакетов; и

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

[0010] При необходимости, когда в базе данных существует множество первых записей,

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

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

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

[0012] При необходимости команда обработки записей включает в себя одну или более из следующих команд: первую команду изменения, вторую команду изменения, команду добавления и команду удаления, причем

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

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

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

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

[0013] При необходимости первая запись о потоке включает в себя приоритет, приоритет используется для указания последовательности сопоставления между пакетом и каждой из первой записи о потоке, и способ дополнительно включает в себя:

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

[0014] При необходимости способ дополнительно включает в себя:

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

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

[0015] При необходимости команда создания базы данных дополнительно включает в себя по меньшей мере одну из информации об атрибуте базы данных и статистической информации; информация об атрибуте базы данных включает в себя максимальное количество записей в базе данных, время ожидания для записи в базе данных, и следует ли позволять коммутирующему устройству изменять запись в базе данных; и статистическая информация включает в себя общее количество записей в базе данных, общее количество сопоставлений между базой данных и пакетами, общее количество успешных сопоставлений и общее количество успешных сопоставлений каждой записи.

[0016] При необходимости способ дополнительно включает в себя:

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

[0017] При необходимости способ дополнительно включает в себя:

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

отправку контроллеру ответного сообщения, причем ответное сообщение соответствует сообщению-запросу.

[0018] При необходимости перед заданием первой записи о потоке по меньшей мере в одной из таблиц потоков способ дополнительно включает в себя:

запрос, существует ли база данных, и

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

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

[0019] В соответствии со вторым аспектом вариант осуществления настоящего изобретения обеспечивает способ конфигурирования коммутирующего устройства, причемспособ включает в себя:

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

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

[0021] При необходимости каждая запись базы данных дополнительно включает в себя второе поле, и второе поле используется для обозначения параметра обработки пакетов; и

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

[0022] При необходимости, когда в базе данных существует множество первых записей,

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

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

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

[0024] При необходимости команда обработки записей включает в себя одну или более из следующих команд: первую команду изменения, вторую команду изменения, команду добавления и команду удаления, причем

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

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

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

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

[0025] При необходимости первая запись о потоке включает в себя приоритет, приоритет используется для указания последовательности сопоставления между пакетом и каждой из первой записи о потоке, и способ дополнительно включает в себя:

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

[0026] При необходимости способ дополнительно включает в себя:

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

[0027] При необходимости команда создания базы данных дополнительно включает в себя по меньшей мере одну из информации об атрибуте базы данных и статистической информации; информация об атрибуте базы данных включает в себя максимальное количество записей в базе данных, время ожидания для записи в базе данных, и следует ли позволять коммутирующему устройству изменять запись в базе данных; и статистическая информация включает в себя общее количество записей в базе данных, общее количество сопоставлений между базой данных и пакетами, общее количество успешных сопоставлений и общее количество успешных сопоставлений каждой записи.

[0028] При необходимости способ дополнительно включает в себя:

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

[0029] При необходимости способ дополнительно включает в себя:

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

[0030] При необходимости способ дополнительно включает в себя:

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

[0031] В соответствии с третьим аспектом вариант осуществления настоящего изобретения обеспечивает способ обработки пакета, причем способ включает в себя:

прием пакета;

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

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

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

[0032] При необходимости обработка пакета в соответствии с командой обработки пакетов включает в себя:

обработку пакета в соответствии с командой обработки пакетов, используя в качестве параметра второе поле в первой записи, причем второе поле используется для обозначения параметра обработки пакетов.

[0033] При необходимости, когда в базе данных существует множество первых записей, обработка пакета в соответствии с командой обработки пакетов, используя в качестве параметра второе поле в первой записи, причем второе поле используется для обозначения параметра обработки пакетов, включает в себя:

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

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

[0034] При необходимости первая запись о потоке дополнительно включает в себя команду обработки записей, и способ дополнительно включает в себя:

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

[0035] При необходимости команда обработки записей включает в себя одну или более из следующих команд: первую команду изменения, вторую команду изменения, команду добавления и команду удаления, причем

выполнение операции над назначенной записью в назначенной базе данных включает в себя:

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

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

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

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

[0036] При необходимости первая запись о потоке включает в себя приоритет, приоритет используется для указания последовательности сопоставления между пакетом и каждой первой записью о потоке, в таблице потоков дополнительно задана вторая запись о потоке, приоритет второй записи о потоке ниже, чем у первой записи о потоке, вторая запись о потоке универсально соответствует всем пакетам, вторая запись о потоке включает в себя команду добавления записи, и способ дополнительно включает в себя:

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

[0037] В соответствии с четвертым аспектом вариант осуществления настоящего изобретения обеспечивает коммутирующее устройство, причем в коммутирующем устройстве заданы одна или более таблиц потоков, и устройство включает в себя:

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

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

[0039] При необходимости каждая запись базы данных дополнительно включает в себя второе поле, и второе поле используется для обозначения параметра обработки пакетов; и

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

[0040] При необходимости, когда в базе данных существует множество первых записей,

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

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

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

[0042] При необходимости команда обработки записей включает в себя одну или более из следующих команд: первую команду изменения, вторую команду изменения, команду добавления и команду удаления, причем

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

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

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

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

[0043] При необходимости первая запись о потоке включает в себя приоритет, приоритет используется для указания последовательности сопоставления между пакетом и каждой из первой записи о потоке, и устройство дополнительно включает в себя:

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

[0044] При необходимости устройство дополнительно включает в себя:

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

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

[0045] При необходимости команда создания базы данных дополнительно включает в себя по меньшей мере одну из информации об атрибуте базы данных и статистической информации; информация об атрибуте базы данных включает в себя максимальное количество записей в базе данных, время ожидания для записи в базе данных, и следует ли позволять коммутирующему устройству изменять запись в базе данных; и статистическая информация включает в себя общее количество записей в базе данных, общее количество сопоставлений между базой данных и пакетами, общее количество успешных сопоставлений и общее количество успешных сопоставлений каждой записи.

[0046] При необходимости устройство дополнительно включает в себя:

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

обновления базы данных в соответствии с командой обновления базы данных.

[0047] При необходимости устройство дополнительно включает в себя:

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

отправки контроллеру ответного сообщения, причем ответное сообщение соответствует сообщению-запросу.

[0048] При необходимости перед заданием первой записи о потоке по меньшей мере в одной из таблиц потоков устройство дополнительно включает в себя:

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

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

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

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

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