СПОСОБ КОММУТАЦИОННОЙ ОБРАБОТКИ, КОНТРОЛЛЕР, КОММУТАТОР И СИСТЕМА КОММУТАЦИОННОЙ ОБРАБОТКИ
METHOD OF COMMUTATION PROCESSING, CONTROLLER, SWITCH CENTER AND COMMUTATION PROCESSING SYSTEM

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0001] Варианты осуществления настоящего изобретения относятся к технологиям связи и, в частности, к способу коммутационной обработки, контроллеру, коммутатору и системе коммутационной обработки.
УРОВЕНЬ ТЕХНИКИ
[0002] Программно-определяемая сеть (SDN) является сетевой архитектурой для отделения управления от ретрансляции и отличается централизованным управлением и открытым программируемым интерфейсом, то есть контроллер в плоскости управления может управлять коммутатором в плоскости ретрансляции с использованием протокола сетевой связи, например, с использованием новой предложенной модели сетевого коммутатора, а именно, протокола Openflow.
[0003] В уровне техники, контроллер может управлять работой коммутатора в плоскости ретрансляции с использованием протокола Openflow. Коммутатор несет множественные таблицы потоков служебной логики, то есть коммутатор использует конвейер на основании таблиц потоков для обработки пакета данных. В частности, каждая таблица потоков может включать в себя множественные элементы потока, причем элементы потока используются для переноса основной логики обработки протокола Openflow. При приеме пакета данных, коммутатор согласует элементы потока по одному согласно заранее сконфигурированному приоритетному порядку с использованием полей согласование в элементах потока и, после успешного согласования элемента потока, выполняет исполнимые инструкции в элементе потока, причем инструкции включают в себя, например, список операций (действий), изменение метаданных и направление на следующую таблицу потоков. Поскольку пакет данных, в общем случае, должен проходить обработку согласования множественных таблиц потоков, после того, как входной пакет данных успешно согласуется с элементом потока в таблице потоков, исполнимые инструкции в элементе потока выполняются, и затем коммутатор направляет пакет данных на следующую таблицу потоков для продолжения обработки.
[0004] Однако количество таблиц потоков, поддерживаемых конвейером коммутатора и масштаб элементов потока, которые могут обрабатываться коммутатором, ограничены в уровне техники. Поэтому, когда оператору нужно осуществлять повышение пропускной способности в отношении функций или производительности коммутатора, расположенного на сетевом узле, вследствие ограниченных аппаратных возможностей коммутатора, оператор может лишь заменять коммутатор в существующей сети коммутатором, имеющим более высокую пропускную способность или поддерживающим больше таблиц потоков. Поэтому затраты на повышение пропускной способности сети возрастают.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0005] Варианты осуществления настоящего изобретения предусматривают способ коммутационной обработки, контроллер, коммутатор и систему коммутационной обработки для решения проблемы, присущей уровню техники, состоящей в том, что, когда оператору нужно осуществлять повышение пропускной способности в отношении функций или производительности коммутатора, расположенного на сетевом узле, оператор может лишь заменять коммутатор в существующей сети вследствие ограниченных аппаратных возможностей коммутатора, для снижения затрат на повышение пропускной способности сети.
[0006] Согласно первому аспекту, вариант осуществления настоящего изобретения предусматривает способ коммутационной обработки, причем способ выполняется контроллером и логическим коммутатором, причем логический коммутатор включает в себя, по меньшей мере, два физических коммутатора, и способ включает в себя:
выделение, контроллером, каждой таблицы потоков во множественных таблицах потоков логического коммутатора каждому физическому коммутатору, причем множественные таблицы потоков являются конвейером логического коммутатора;
отправку, контроллером, информации отображения, благодаря чему, каждый физический коммутатор получает информацию отображения, причем информация отображения включает в себя отношение отображения между физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков; и
отправку, контроллером, элементов потока на логический коммутатор, благодаря чему, каждый физический коммутатор получает элементы потока, соответствующие каждому физическому коммутатору, и обрабатывает принятый пакет данных согласно элементам потока или согласно элементам потока и информации отображения, причем элементы потока являются информацией содержания каждой таблицы потоков в наборе таблиц потоков, выделенном контроллером каждому физическому коммутатору.
[0007] В первом возможном варианте реализации первого аспекта, по меньшей мере, два физических коммутатора включают в себя первичный коммутатор и первый расширенный коммутатор, причем контроллер подключен, по меньшей мере, к первичному коммутатору, и первый расширенный коммутатор подключен, по меньшей мере, к первичному коммутатору;
отправка, контроллером, информации отображения, включает в себя:
отправку, контроллером, информации отображения, по меньшей мере, на первичный коммутатор, благодаря чему, первичный коммутатор принимает информацию отображения, и информация отображения, принятая первым расширенным коммутатором, включает в себя информацию отображения, отправленную контроллером и/или первичным коммутатором; и
отправка, контроллером, элементов потока на логический коммутатор, включает в себя:
отправку, контроллером, элементов потока логического коммутатора, по меньшей мере, на первичный коммутатор, благодаря чему, элементы потока, принятые первичным коммутатором, включают в себя элементы потока, соответствующие первичному коммутатору, или элементы потока, соответствующие каждому физическому коммутатору, и элементы потока, принятые первым расширенным коммутатором, включают в себя элементы потока, отправленные контроллером и/или первичным коммутатором.
[0008] Согласно первому возможному варианту реализации первого аспекта, во втором возможном варианте реализации, физические коммутаторы дополнительно включают в себя второй расширенный коммутатор, и второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору;
отправка, контроллером, информации отображения, включает в себя:
отправку, контроллером, информации отображения, по меньшей мере, на первичный коммутатор, благодаря чему, первичный коммутатор принимает информацию отображения, причем информация отображения, принятая первым расширенным коммутатором, включает в себя информацию отображения, отправленную контроллером и/или первичным коммутатором, и информация отображения, принятая вторым расширенным коммутатором, включает в себя информацию отображения, отправленную контроллером и/или первичным коммутатором и/или первым расширенным коммутатором; и
отправка, контроллером, элементов потока на логический коммутатор, включает в себя:
отправку, контроллером, элементов потока логического коммутатора, по меньшей мере, на первичный коммутатор, благодаря чему, элементы потока, принятые первичным коммутатором, включают в себя элементы потока, соответствующие первичному коммутатору, или элементы потока, соответствующие первичному коммутатору, и элементы потока, соответствующие первому расширенному коммутатору и/или второму расширенному коммутатору, элементы потока, принятые первым расширенным коммутатором, включают в себя элементы потока, соответствующие первому расширенному коммутатору и отправленные контроллером и/или первичным коммутатором, и элементы потока, принятые вторым расширенным коммутатором, включают в себя элементы потока, соответствующие второму расширенному коммутатору и отправленные контроллером и/или первичным коммутатором и/или первым расширенным коммутатором.
[0009] Согласно первому или второму возможному варианту реализации первого аспекта, в третьем возможном варианте реализации, таблица потоков, выделенная контроллером первичному коммутатору, включает в себя, по меньшей мере, первую таблицу потоков table0 во множественных таблицах потоков логического коммутатора, благодаря чему, когда первичный коммутатор принимает пакет данных, первичный коммутатор обрабатывает пакет данных с использованием table0.
[0010] Согласно любому из первого аспекта или первому или второму возможному варианту реализации первого аспекта, в четвертом возможном варианте реализации, отправка, контроллером, элементов потока на логический коммутатор, включает в себя:
отправку, контроллером, элементов потока на логический коммутатор, благодаря чему, когда текущий физический коммутатор принимает пакет данных, текущий физический коммутатор обрабатывает пакет данных с использованием текущей таблицы потоков, определяет положение следующей таблицы потоков согласно информации отображения, и когда определенная следующая таблица потоков располагается в текущем физическом коммутаторе, направляет пакет данных на следующую таблицу потоков для продолжения обработки, или когда определенная следующая таблица потоков располагается в другом физическом коммутаторе, инициирует защиту среды конвейера для генерации пакета инкапсуляции, и отправляет пакет инкапсуляции на физический коммутатор, соответствующий следующей таблице потоков.
[0011] Согласно любому из первого аспекта или первому или второму возможному варианту реализации первого аспекта, в пятом возможном варианте реализации, отправка, контроллером, элементов потока на логический коммутатор, включает в себя:
когда элемент потока, подлежащий отправке, включает в себя инструкцию перехода таблицы потоков, определение, контроллером, располагается ли следующая таблица потоков в текущем физическом коммутаторе; и
в случае определения, что следующая таблица потоков располагается в текущем физическом коммутаторе, отправку, контроллером, элемента потока, включающего в себя инструкцию перехода таблицы потоков, на текущий физический коммутатор, благодаря чему, текущий физический коммутатор направляет пакет данных на следующую таблицу потоков для продолжения обработки; или
в случае определения, что следующая таблица потоков располагается в другом физическом коммутаторе, замену, контроллером, инструкции перехода таблицы потоков в элементе потока, подлежащем отправке, инструкцией ретрансляции коммутатора, и отправку элемента потока, включающего в себя инструкцию ретрансляции коммутатора, на текущий физический коммутатор, благодаря чему, текущий физический коммутатор инициирует защиту среды конвейера для генерации пакета инкапсуляции и отправляет пакет инкапсуляции на физический коммутатор, соответствующий следующей таблице потоков.
[0012] Согласно четвертому или пятому возможному варианту реализации первого аспекта, в шестом возможном варианте реализации, защита среды конвейера состоит в том, что текущий физический коммутатор инкапсулирует пакет данных и соответствующую информацию для обработки пакета данных в пакет инкапсуляции, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, числовой ID следующей таблицы потоков, и дополнительно включает в себя любое количество из следующей информации: входного порта (Ingress port), набора действий (Action set), в данный момент соответствующего пакету данных, и метаданных (Metadata).
[0013] Согласно любому из возможных вариантов реализации с четвертого по шестой первого аспекта, в седьмом возможном варианте реализации, защита среды конвейера используется для того, чтобы физический коммутатор, соответствующий следующей таблице потоков, мог разбирать пакет инкапсуляции, принятый физическим коммутатором, и получать разобранную информацию, с тем, чтобы осуществлять восстановление среды конвейера согласно разобранной информации и направлять пакет данных на следующую таблицу потоков для продолжения обработки, причем разобранная информация включает в себя пакет данных и соответствующую информацию для обработки пакета данных.
[0014] Согласно любому из возможных вариантов реализации с четвертого по шестой первого аспекта, в восьмом возможном варианте реализации, элементы потока, соответствующие расширенному коммутатору и отправленные контроллером, включают в себя элемент потока, используемый для осуществления восстановления конвейера; и способ дополнительно включает в себя:
отправку, контроллером, элемента потока, используемого для осуществления восстановления конвейера, на расширенный коммутатор, благодаря чему, расширенный коммутатор добавляет элемент потока в первую таблицу потоков table0' расширенного коммутатора и, в случае приема пакета инкапсуляции, осуществляет восстановление среды конвейера с использованием элемента потока, добавленного в table0'.
[0015] Согласно восьмому возможному варианту реализации первого аспекта, в девятом возможном варианте реализации, пакет инкапсуляции включает в себя ID следующей таблицы потоков, и элемент потока, используемый для осуществления восстановления конвейера, включает в себя часть согласования и исполнимую инструкцию, причем часть согласования используется расширенным коммутатором для использования ID следующей таблицы потоков в качестве объекта согласования, соответствующего элементу потока, и исполнимая инструкция включает в себя инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков; и
восстановление среды конвейера состоит в том, что расширенный коммутатор согласует, с использованием элемента потока в table0', пакет инкапсуляции, принятый расширенным коммутатором, и когда ID следующей таблицы потоков согласуется с элементом потока в table0', выполняет инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков в согласованном элементе потока последовательно согласно результату согласования.
[0016] Согласно второму аспекту, вариант осуществления настоящего изобретения предусматривает способ коммутационной обработки, причем способ выполняется контроллером и логическим коммутатором, причем логический коммутатор включает в себя, по меньшей мере, два физических коммутатора, и, по меньшей мере, два физических коммутатора включают в себя первичный коммутатор и расширенный коммутатор, причем контроллер подключен, по меньшей мере, к первичному коммутатору, и способ включает в себя:
прием, первичным коммутатором, информации отображения, отправленной контроллером, причем информация отображения включает в себя отношение отображения между физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков логического коммутатора;
прием, первичным коммутатором, элементов потока, отправленных контроллером, причем элементы потока, принятые первичным коммутатором, являются информацией содержания каждой таблицы потоков в наборе таблиц потоков, выделенном контроллером первичному коммутатору, или выделенном контроллером первичному коммутатору и расширенному коммутатору; и
обработку, первичным коммутатором, принятого пакета данных согласно элементам потока или согласно элементам потока и информации отображения.
[0017] В первом возможном варианте реализации второго аспекта, после приема, первичным коммутатором, отношения отображения, отправленного контроллером, способ дополнительно включает в себя:
отправку, первичным коммутатором, информации отображения на расширенный коммутатор, подключенный к первичному коммутатору; и
после приема, первичным коммутатором, элементов потока, отправленных контроллером, способ дополнительно включает в себя:
отправку, первичным коммутатором, на расширенный коммутатор, подключенный к первичному коммутатору, элементов потока, выделенных контроллером.
[0018] Согласно второму аспекту или первому возможному варианту реализации второго аспекта, во втором возможном варианте реализации, расширенный коммутатор включает в себя первый расширенный коммутатор и второй расширенный коммутатор, причем первичный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору, и второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору;
после приема, первичным коммутатором, информации отображения, отправленной контроллером, способ дополнительно включает в себя:
отправку, первичным коммутатором, информации отображения на первый расширенный коммутатор и/или второй расширенный коммутатор; и
после приема, первичным коммутатором, элементов потока, отправленных контроллером, способ дополнительно включает в себя:
отправку, первичным коммутатором, на первый расширенный коммутатор и/или второй расширенный коммутатор, элементов потока, выделенных контроллером, благодаря чему, расширенный коммутатор обрабатывает принятый пакет данных согласно информации отображения и элементам потока, соответствующим расширенному коммутатору.
[0019] Согласно любому из второго аспекта, или первому или второму возможному варианту реализации второго аспекта, в третьем возможном варианте реализации, информация отображения, принятая первичным коммутатором, включает в себя таблицу потоков, выделенную контроллером первичному коммутатору, причем таблица потоков включает в себя, по меньшей мере, первую таблицу потоков table0 во множественных таблицах потоков логического коммутатора; и обработка, первичным коммутатором, принятого пакета данных согласно элементам потока или согласно элементам потока и информации отображения, включает в себя:
обработку, первичным коммутатором, принятого пакета данных согласно элементам потока или согласно элементам потока и информации отображения с использованием table0.
[0020] Согласно любому из второго аспекта, или возможным вариантам реализации с первого по третий второго аспекта, в четвертом возможном варианте реализации, обработка, первичным коммутатором, принятого пакета данных согласно элементам потока или согласно элементам потока и информации отображения, включает в себя:
при приеме пакета данных, обработку, первичным коммутатором, пакета данных, и определение положения следующей таблицы потоков согласно информации отображения; и
когда следующая таблица потоков располагается в первичном коммутаторе, направление, первичным коммутатором, пакета данных на следующую таблицу потоков для продолжения обработки; или
когда следующая таблица потоков располагается в расширенном коммутаторе, инициирование, первичным коммутатором, защиты среды конвейера для генерации пакета инкапсуляции, и отправку пакета инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0021] Согласно любому из второго аспекта, или возможным вариантам реализации с первого по третий второго аспекта, в пятом возможном варианте реализации, прием, первичным коммутатором, элементов потока, отправленных контроллером, включает в себя:
прием, первичным коммутатором, элемента потока, который включает в себя инструкцию перехода таблицы потоков или инструкцию ретрансляции коммутатора и отправлен контроллером, причем инструкция перехода таблицы потоков или инструкция ретрансляции коммутатора в элементе потока определяется контроллером согласно тому, располагается ли следующая таблица потоков в элементе потока в первичном коммутаторе, и, если да, элемент потока включает в себя инструкцию перехода таблицы потоков, в противном случае, элемент потока включает в себя инструкцию ретрансляции коммутатора; и
обработка, первичным коммутатором, принятого пакета данных согласно элементам потока или согласно элементам потока и информации отображения, включает в себя:
прием, первичным коммутатором, пакета данных, и когда элемент потока, согласующийся с пакетом данных, включает в себя инструкцию перехода таблицы потоков, направление пакета данных на следующую таблицу потоков для продолжения обработки; или
прием, первичным коммутатором, пакета данных, и когда элемент потока, согласующийся с пакетом данных, включает в себя инструкцию ретрансляции коммутатора, инициирование защиты среды конвейера для генерации пакета инкапсуляции, и отправку пакета инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0022] Согласно четвертому или пятому возможному варианту реализации второго аспекта, в шестом возможном варианте реализации, инициирование, первичным коммутатором, защиты среды конвейера включает в себя:
инкапсулирование, первичным коммутатором, пакета данных и соответствующей информации для обработки пакета данных в пакет инкапсуляции, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, числовой ID следующей таблицы потоков, и дополнительно включает в себя любое количество из следующей информации: входного порта (Ingress port), набора действий (Action set), в данный момент соответствующего пакету данных, и метаданных (Metadata).
[0023] Согласно любому из возможных вариантов реализации с четвертого по шестой второго аспекта, в седьмом возможном варианте реализации, защита среды конвейера используется для того, чтобы расширенный коммутатор, соответствующий следующей таблице потоков, мог разбирать пакет инкапсуляции, принятый расширенным коммутатором, и получать разобранную информацию, с тем, чтобы осуществлять восстановление среды конвейера согласно разобранной информации и направлять пакет данных на следующую таблицу потоков для продолжения обработки, причем разобранная информация включает в себя пакет данных и соответствующую информацию для обработки пакета данных.
[0024] Согласно третьему аспекту, вариант осуществления настоящего изобретения предусматривает способ коммутационной обработки, причем способ выполняется контроллером и логическим коммутатором, логический коммутатор включает в себя множественные физические коммутаторы, множественные физические коммутаторы включают в себя первичный коммутатор и расширенный коммутатор, и расширенный коммутатор включает в себя первый расширенный коммутатор и второй расширенный коммутатор, причем контроллер подключен, по меньшей мере, к первичному коммутатору, первичный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору, второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору, и способ включает в себя:
прием, текущим расширенным коммутатором, информации отображения, отправленной контроллером и/или первичным коммутатором и/или другим расширенным коммутатором, причем информация отображения включает в себя отношение отображения между физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков логического коммутатора;
прием, текущим расширенным коммутатором, элементов потока, соответствующих текущему расширенному коммутатору и отправленных контроллером и/или первичным коммутатором и/или другим расширенным коммутатором, причем элементы потока, принятые текущим расширенным коммутатором, являются информацией содержания каждой таблицы потоков в наборе таблиц потоков, выделенном контроллером текущему расширенному коммутатору; и
обработку, текущим расширенным коммутатором, принятого первого пакета инкапсуляции согласно элементам потока или согласно элементам потока и информации отображения, причем первый пакет инкапсуляции генерируется физическим коммутатором, в котором располагается предыдущая таблица потоков, путем инкапсулирования пакета данных, принятого физическим коммутатором, и соответствующей информации для обработки пакета данных.
[0025] В первом возможном варианте реализации третьего аспекта, в информации отображения, принятой текущим расширенным коммутатором, первая таблица потоков table0 во множественных таблицах потоков логического коммутатора соответствует первичному коммутатору.
[0026] Согласно третьему аспекту или первому возможному варианту реализации третьего аспекта, во втором возможном варианте реализации, после приема, текущим расширенным коммутатором, элементов потока, соответствующих текущему расширенному коммутатору и отправленных контроллером и/или первичным коммутатором и/или другим расширенным коммутатором, способ дополнительно включает в себя:
прием, текущим расширенным коммутатором, первого пакета инкапсуляции;
определение, текущим расширенным коммутатором, что числовой ID следующей таблицы потоков в первом пакете инкапсуляции располагается в другом физическом коммутаторе; и
ретрансляцию, текущим расширенным коммутатором согласно информации отображения, первого пакета инкапсуляции на физический коммутатор, соответствующий ID следующей таблицы потоков.
[0027] Согласно третьему аспекту или первому возможному варианту реализации третьего аспекта, в третьем возможном варианте реализации, после приема, текущим расширенным коммутатором, элементов потока, соответствующих текущему расширенному коммутатору и отправленных контроллером и/или первичным коммутатором и/или другим расширенным коммутатором, способ дополнительно включает в себя:
прием, текущим расширенным коммутатором, первого пакета инкапсуляции;
определение, текущим расширенным коммутатором, что числовой ID следующей таблицы потоков в первом пакете инкапсуляции располагается в текущем расширенном коммутаторе; и
осуществление, текущим расширенным коммутатором, восстановления среды конвейера на первом пакете инкапсуляции для получения пакета данных.
[0028] Согласно третьему возможному варианту реализации третьего аспекта, в четвертом возможном варианте реализации, осуществление, текущим расширенным коммутатором, восстановления среды конвейера на первом пакете инкапсуляции, включает в себя:
разбор, текущим расширенным коммутатором, принятого первого пакета инкапсуляции для получения разобранной информации, причем разобранная информация включает в себя пакет данных и соответствующую информацию для обработки пакета данных, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, ID следующей таблицы потоков, и дополнительно включает в себя любое количество из следующей информации: входного порта (Ingress port), набора действий (Action set), в данный момент соответствующего пакету данных, и метаданных (Metadata); и
осуществление, текущим расширенным коммутатором, восстановления среды конвейера согласно разобранной информации, и направление пакета данных на следующую таблицу потоков для продолжения обработки.
[0029] Согласно третьему возможному варианту реализации третьего аспекта, в пятом возможном варианте реализации, элементы потока, принятые текущим расширенным коммутатором, включают в себя элемент потока, используемый для осуществления восстановления конвейера и отправленный контроллером; и осуществление, текущим расширенным коммутатором, восстановления среды конвейера на первом пакете инкапсуляции, включает в себя:
добавление, текущим расширенным коммутатором, элемента потока, используемого для осуществления восстановления конвейера, в первую таблицу потоков table0' текущего расширенного коммутатора; и
осуществление, текущим расширенным коммутатором, восстановления среды конвейера на первом пакете инкапсуляции с использованием элемента потока, добавленного в table0'.
[0030] Согласно пятому возможному варианту реализации третьего аспекта, в шестом возможном варианте реализации, первый пакет инкапсуляции включает в себя ID следующей таблицы потоков, и элемент потока, используемый для осуществления восстановления конвейера, включает в себя часть согласования и исполнимую инструкцию, причем исполнимая инструкция включает в себя инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков; и осуществление, текущим расширенным коммутатором, восстановления среды конвейера на первом пакете инкапсуляции с использованием элемента потока, добавленного в table0', включает в себя:
согласование, текущим расширенным коммутатором, первого пакета инкапсуляции с использованием элемента потока в table0'; и
когда элемент потока в table0' успешно согласован, выполнение, текущим расширенным коммутатором, инструкции восстановления таблицы потоков и/или инструкции перехода таблицы потоков в согласованном элементе потока последовательно согласно результату согласования.
[0031] Согласно любому из возможных вариантов реализации с третьего по шестой третьего аспекта, в четвертом возможном варианте реализации, после осуществления, текущим расширенным коммутатором, восстановления среды конвейера на первом пакете инкапсуляции для получения пакета данных, способ дополнительно включает в себя:
при получении пакета данных, обработка, текущим расширенным коммутатором, пакета данных с использованием текущей таблицы потоков, и определение положения следующей таблицы потоков согласно информации отображения; и
когда следующая таблица потоков располагается в текущем расширенном коммутаторе, направление, текущим расширенным коммутатором, пакета данных на следующую таблицу потоков для продолжения обработки; или
когда следующая таблица потоков располагается в другом расширенном коммутаторе, инициирование, текущим расширенным коммутатором, защиты среды конвейера для генерации второго пакета инкапсуляции, и отправку второго пакета инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0032] Согласно любому из возможных вариантов реализации с третьего по шестой третьего аспекта, в восьмом возможном варианте реализации, способ дополнительно включает в себя:
прием, текущим расширенным коммутатором, элемента потока, который включает в себя инструкцию перехода таблицы потоков или инструкцию ретрансляции коммутатора и отправлен контроллером, причем инструкция перехода таблицы потоков или инструкция ретрансляции коммутатора в элементе потока определяется контроллером согласно тому, располагается ли следующая таблица потоков в элементе потока в текущем расширенном коммутаторе, и, если да, элемент потока включает в себя инструкцию перехода таблицы потоков, в противном случае, элемент потока включает в себя инструкцию ретрансляции коммутатора; и
после осуществления, текущим расширенным коммутатором, восстановления среды конвейера на первом пакете инкапсуляции, способ дополнительно включает в себя:
получение, текущим расширенным коммутатором, пакета данных в первом пакете инкапсуляции, и когда элемент потока, согласующийся с пакетом данных, включает в себя инструкцию перехода таблицы потоков, направление пакета данных на следующую таблицу потоков для продолжения обработки; или
получение, текущим расширенным коммутатором, пакета данных в первом пакете инкапсуляции, и когда элемент потока, согласующийся с пакетом данных, включает в себя инструкцию ретрансляции коммутатора, инициирование защиты среды конвейера для генерации второго пакета инкапсуляции, и отправку второго пакета инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0033] Согласно седьмому или восьмому возможному варианту реализации третьего аспекта, в девятом возможном варианте реализации, инициирование, текущим расширенным коммутатором, защиты среды конвейера, включает в себя:
инкапсулирование, текущим расширенным коммутатором, пакета данных и соответствующей информации для обработки пакета данных во второй пакет инкапсуляции, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, ID следующей таблицы потоков, и дополнительно включает в себя любое количество из следующей информации: входного порта (Ingress port), набора действий (Action set), в данный момент соответствующего пакету данных, и метаданных (Metadata).
[0034] Согласно четвертому аспекту, вариант осуществления настоящего изобретения предусматривает устройство коммутационной обработки, причем устройство располагается в контроллере, подключенном к логическому коммутатору, логический коммутатор включает в себя, по меньшей мере, два физических коммутатора, и устройство включает в себя:
модуль выделения, выполненный с возможностью выделения каждой таблицы потоков во множественных таблицах потоков логического коммутатора каждому физическому коммутатору, причем множественные таблицы потоков являются конвейером логического коммутатора; и
модуль отправки, выполненный с возможностью отправки информации отображения, благодаря чему, каждый физический коммутатор получает информацию отображения, причем информация отображения включает в себя отношение отображения между физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков; причем
модуль отправки дополнительно выполнен с возможностью отправки элементов потока на логический коммутатор, благодаря чему, каждый физический коммутатор получает элементы потока, соответствующие каждому физическому коммутатору, и обрабатывает принятый пакет данных согласно элементам потока или согласно элементам потока и информации отображения, причем элементы потока являются информацией содержания каждой таблицы потоков в наборе таблиц потоков, выделенном контроллером каждому физическому коммутатору.
[0035] В первом возможном варианте реализации четвертого аспекта, по меньшей мере, два физических коммутатора включают в себя первичный коммутатор и первый расширенный коммутатор, причем контроллер подключен, по меньшей мере, к первичному коммутатору, и первый расширенный коммутатор подключен, по меньшей мере, к первичному коммутатору;
тот факт, что модуль отправки выполнен с возможностью отправки информации отображения, включает в себя: отправку информации отображения, по меньшей мере, на первичный коммутатор, благодаря чему, первичный коммутатор принимает информацию отображения, и информация отображения, принятая первым расширенным коммутатором, включает в себя информацию отображения, отправленную контроллером и/или первичным коммутатором; и
тот факт, что модуль отправки дополнительно выполнен с возможностью отправки элементов потока на логический коммутатор, включает в себя: отправку элементов потока логического коммутатора, по меньшей мере, на первичный коммутатор, благодаря чему, элементы потока, принятые первичным коммутатором, включают в себя элементы потока, соответствующие первичному коммутатору, или элементы потока, соответствующие каждому физическому коммутатору, и элементы потока, принятые первым расширенным коммутатором, включают в себя элементы потока, отправленные контроллером и/или первичным коммутатором.
[0036] Согласно первому возможному варианту реализации четвертого аспекта, во втором возможном варианте реализации, физические коммутаторы дополнительно включают в себя второй расширенный коммутатор, и второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору;
тот факт, что модуль отправки выполнен с возможностью отправки информации отображения, включает в себя: отправку информации отображения, по меньшей мере, на первичный коммутатор, благодаря чему, первичный коммутатор принимает информацию отображения, причем информация отображения, принятая первым расширенным коммутатором, включает в себя информацию отображения, отправленную контроллером и/или первичным коммутатором, и информация отображения, принятая вторым расширенным коммутатором, включает в себя информацию отображения, отправленную контроллером и/или первичным коммутатором и/или первым расширенным коммутатором; и
тот факт, что модуль отправки дополнительно выполнен с возможностью отправки элементов потока на логический коммутатор, включает в себя: отправку элементов потока логического коммутатора, по меньшей мере, на первичный коммутатор, благодаря чему, элементы потока, принятые первичным коммутатором, включают в себя элементы потока, соответствующие первичному коммутатору, или элементы потока, соответствующие первичному коммутатору, и элементы потока, соответствующие первому расширенному коммутатору и/или второму расширенному коммутатору, элементы потока, принятые первым расширенным коммутатором, включают в себя элементы потока, соответствующие первому расширенному коммутатору и отправленные контроллером и/или первичным коммутатором, и элементы потока, принятые вторым расширенным коммутатором, включают в себя элементы потока, соответствующие второму расширенному коммутатору и отправленные контроллером и/или первичным коммутатором и/или первым расширенным коммутатором.
[0037] Согласно первому или второму возможному варианту реализации четвертого аспекта, в третьем возможном варианте реализации, таблица потоков, выделенная модулем выделения первичному коммутатору включает в себя, по меньшей мере, первую таблицу потоков table0 во множественных таблицах потоков логического коммутатора, благодаря чему, когда первичный коммутатор принимает пакет данных, первичный коммутатор обрабатывает пакет данных с использованием table0.
[0038] Согласно любому из четвертого аспекта, или первого или второго возможного варианта реализации четвертого аспекта, в четвертом возможном варианте реализации, тот факт, что модуль отправки дополнительно выполнен с возможностью отправки элементов потока на логический коммутатор, включает в себя: отправку элементов потока на логический коммутатор, благодаря чему, когда текущий физический коммутатор принимает пакет данных, текущий физический коммутатор обрабатывает пакет данных с использованием текущей таблицы потоков, определяет положение следующей таблицы потоков согласно информации отображения, отправленной модулем отправки, и когда определенная следующая таблица потоков располагается в текущем физическом коммутаторе, направляет пакет данных на следующую таблицу потоков для продолжения обработки, или когда определенная следующая таблица потоков располагается в другом физическом коммутаторе, инициирует защиту среды конвейера для генерации пакета инкапсуляции, и отправляет пакет инкапсуляции на физический коммутатор, соответствующий следующей таблице потоков.
[0039] Согласно любому из четвертого аспекта, или первого или второго возможного варианта реализации четвертого аспекта, в пятом возможном варианте реализации, модуль отправки включает в себя блок определения, выполненный с возможностью: когда элемент потока, подлежащий отправке, включает в себя инструкцию перехода таблицы потоков, определять, располагается ли следующая таблица потоков в текущем физическом коммутаторе; и
блок выполнения, выполненный с возможностью: когда блок определения определяет, что следующая таблица потоков располагается в текущем физическом коммутаторе, отправлять элемент потока, включающий в себя инструкцию перехода таблицы потоков, на текущий физический коммутатор, благодаря чему, текущий физический коммутатор направляет пакет данных на следующую таблицу потоков для продолжения обработки; или
блок выполнения, выполненный с возможностью: когда блок определения определяет, что следующая таблица потоков располагается в другом физическом коммутаторе, заменять инструкцию перехода таблицы потоков в элементе потока, подлежащем отправке, инструкцией ретрансляции коммутатора, и отправлять элемент потока, включающий в себя инструкцию ретрансляции коммутатора, на текущий физический коммутатор, благодаря чему, текущий физический коммутатор инициирует защиту среды конвейера для генерации пакета инкапсуляции и отправляет пакет инкапсуляции на физический коммутатор, соответствующий следующей таблице потоков.
[0040] Согласно четвертому или пятому возможному варианту реализации четвертого аспекта, в шестом возможном варианте реализации, защита среды конвейера состоит в том, что текущий физический коммутатор инкапсулирует пакет данных и соответствующую информацию для обработки пакета данных в пакет инкапсуляции, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, числовой ID следующей таблицы потоков, и дополнительно включает в себя любое количество из следующей информации: входного порта (Ingress port), набора действий (Action set), в данный момент соответствующего пакету данных, и метаданных (Metadata).
[0041] Согласно любому из возможных вариантов реализации с четвертого по шестой четвертого аспекта, в седьмом возможном варианте реализации, защита среды конвейера используется для того, чтобы физический коммутатор, соответствующий следующей таблице потоков, мог разбирать пакет инкапсуляции, принятый физическим коммутатором, и получать разобранную информацию, с тем, чтобы осуществлять восстановление среды конвейера согласно разобранной информации и направлять пакет данных на следующую таблицу потоков для продолжения обработки, причем разобранная информация включает в себя пакет данных и соответствующую информацию для обработки пакета данных.
[0042] Согласно любому из возможных вариантов реализации с четвертого по шестой четвертого аспекта, в восьмом возможном варианте реализации, элементы потока, соответствующие расширенному коммутатору и отправленные модулем отправки, включают в себя элемент потока, используемый для осуществления восстановления конвейера; и модуль отправки дополнительно выполнен с возможностью отправки элемента потока, используемого для осуществления восстановления конвейера, на расширенный коммутатор, благодаря чему, расширенный коммутатор добавляет элемент потока в первую таблицу потоков table0' расширенного коммутатора и, в случае приема пакета инкапсуляции, осуществляет восстановление среды конвейера с использованием элемента потока, добавленного в table0'.
[0043] Согласно восьмому возможному варианту реализации четвертого аспекта, в девятом возможном варианте реализации, пакет инкапсуляции включает в себя ID следующей таблицы потоков, и элемент потока, используемый для осуществления восстановления конвейера и отправленный модулем отправки, включает в себя часть согласования и исполнимую инструкцию, причем часть согласования используется расширенным коммутатором для использования ID следующей таблицы потоков в качестве объекта согласования, соответствующего элементу потока, и исполнимая инструкция включает в себя инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков; и
восстановление среды конвейера состоит в том, что расширенный коммутатор согласует, с использованием элемента потока в table0', пакет инкапсуляции, принятый расширенным коммутатором, и когда ID следующей таблицы потоков согласуется с элементом потока в table0', выполняет инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков в согласованном элементе потока последовательно согласно результату согласования.
[0044] Согласно пятому аспекту, вариант осуществления настоящего изобретения предусматривает устройство коммутационной обработки, причем устройство располагается в физическом коммутаторе логического коммутатора, подключенного к контроллеру, логический коммутатор включает в себя, по меньшей мере, два физических коммутатора, и, по меньшей мере, два физических коммутатора включают в себя первичный коммутатор и расширенный коммутатор, причем контроллер подключен, по меньшей мере, к первичному коммутатору, причем устройство коммутационной обработки располагается в первичном коммутаторе, и устройство включает в себя:
модуль приема, выполненный с возможностью приема информации отображения, отправленной контроллером, причем информация отображения включает в себя отношение отображения между физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков логического коммутатора; причем
модуль приема дополнительно выполнен с возможностью приема элементов потока, отправленных контроллером, причем элементы потока, принятые модулем приема, являются информацией содержания каждой таблицы потоков в наборе таблиц потоков, выделенном контроллером первичному коммутатору, или выделенном контроллером первичному коммутатору и расширенному коммутатору; и
модуль обработки, выполненный с возможностью обработки, согласно элементам потока, принятым модулем приема или согласно элементам потока и информации отображения, которые принимаются модулем приема, пакета данных, принятого первичным коммутатором.
[0045] В первом возможном варианте реализации пятого аспекта, устройство дополнительно включает в себя модуль отправки, выполненный с возможностью отправки, после того, как модуль приема принимает отношение отображения, отправленное контроллером, информации отображения на расширенный коммутатор, подключенный к устройству; и
модуль отправки дополнительно выполнен с возможностью отправки, на расширенный коммутатор, подключенный к устройству, после того, как модуль приема принимает элементы потока, отправленные контроллером, элементов потока, выделенных контроллером.
[0046] Согласно пятому аспекту или первому возможному варианту реализации пятого аспекта, во втором возможном варианте реализации, в логическом коммутаторе, которому принадлежит первичный коммутатор, расширенный коммутатор включает в себя первый расширенный коммутатор и второй расширенный коммутатор, причем первичный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору, и второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору;
тот факт, что модуль отправки выполнен с возможностью отправки информации отображения на расширенный коммутатор, подключенный к устройству, включает в себя: отправку информации отображения на первый расширенный коммутатор и/или второй расширенный коммутатор; и
тот факт, что модуль отправки дополнительно выполнен с возможностью отправки, на расширенный коммутатор, подключенный к устройству, элементов потока, выделенных контроллером, включает в себя: отправку, на первый расширенный коммутатор и/или второй расширенный коммутатор, элементов потока, выделенных контроллером, благодаря чему, расширенный коммутатор обрабатывает принятый пакет данных согласно информации отображения и элементам потока, соответствующим расширенному коммутатору.
[0047] Согласно любому из пятого аспекта, или первого или второго возможного варианта реализации пятого аспекта, в третьем возможном варианте реализации, информация отображения, принятая модулем приема, включает в себя таблицу потоков, выделенную контроллером первичному коммутатору, причем таблица потоков включает в себя, по меньшей мере, первую таблицу потоков table0 во множественных таблицах потоков логического коммутатора; и модуль обработки выполнен с возможностью обработки, с использованием table0, принятого пакета данных согласно элементам потока, принятым модулем приема или согласно элементам потока и информации отображения, которые принимаются модулем приема.
[0048] Согласно любому из пятого аспекта или возможных вариантов реализации с первого по третий пятого аспекта, в четвертом возможном варианте реализации, модуль обработки включает в себя блок обработки, выполненный с возможностью обработки пакета данных при приеме пакета данных; и
блок определения, выполненный с возможностью определения положения следующей таблицы потоков согласно информации отображения, принятой модулем приема; причем
блок обработки дополнительно выполнен с возможностью: когда блок определения определяет, что следующая таблица потоков располагается в первичном коммутаторе, направлять пакет данных на следующую таблицу потоков для продолжения обработки; или
блок обработки дополнительно выполнен с возможностью: когда блок определения определяет, что следующая таблица потоков располагается в расширенном коммутаторе, инициировать защиту среды конвейера для генерации пакета инкапсуляции, и отправлять пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0049] Согласно любому из пятого аспекта или возможных вариантов реализации с первого по третий пятого аспекта, в пятом возможном варианте реализации, тот факт, что модуль приема дополнительно выполнен с возможностью приема элементов потока, отправленных контроллером, включает в себя: прием элемента потока, который включает в себя инструкцию перехода таблицы потоков или инструкцию ретрансляции коммутатора и отправлен контроллером, причем инструкция перехода таблицы потоков или инструкция ретрансляции коммутатора в элементе потока определяется контроллером согласно тому, располагается ли следующая таблица потоков в элементе потока в первичном коммутаторе, и, если да, элемент потока включает в себя инструкцию перехода таблицы потоков, в противном случае, элемент потока включает в себя инструкцию ретрансляции коммутатора; и
модуль обработки выполнен с возможностью: когда элемент потока, согласующийся с принятым пакетом данных, включает в себя инструкцию перехода таблицы потоков, направлять пакет данных на следующую таблицу потоков для продолжения обработки; или
модуль обработки выполнен с возможностью: когда элемент потока, согласующийся с принятым пакетом данных, включает в себя инструкцию ретрансляции коммутатора, инициировать защиту среды конвейера для генерации пакета инкапсуляции, и отправлять пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0050] Согласно четвертому или пятому возможному варианту реализации пятого аспекта, в шестом возможном варианте реализации, тот факт, что модуль обработки инициирует защиту среды конвейера, включает в себя: инкапсулирование пакета данных и соответствующей информации для обработки пакета данных в пакет инкапсуляции, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, числовой ID следующей таблицы потоков, и дополнительно включает в себя любое количество из следующей информации: входного порта (Ingress port), набора действий (Action set), в данный момент соответствующего пакету данных, и метаданных (Metadata).
[0051] Согласно любому из возможных вариантов реализации с четвертого по шестой пятого аспекта, в седьмом возможном варианте реализации, защита среды конвейера используется для того, чтобы расширенный коммутатор, соответствующий следующей таблице потоков, мог разбирать пакет инкапсуляции, принятый расширенным коммутатором, и получать разобранную информацию, с тем, чтобы осуществлять восстановление среды конвейера согласно разобранной информации и направлять пакет данных на следующую таблицу потоков для продолжения обработки, причем разобранная информация включает в себя пакет данных и соответствующую информацию для обработки пакета данных.
[0052] Согласно шестому аспекту, вариант осуществления настоящего изобретения предусматривает устройство коммутационной обработки, причем устройство располагается в физическом коммутаторе логического коммутатора, подключенного к контроллеру, логический коммутатор включает в себя множественные физические коммутаторы, множественные физические коммутаторы включают в себя первичный коммутатор и расширенный коммутатор, и расширенный коммутатор включает в себя первый расширенный коммутатор и второй расширенный коммутатор, причем контроллер подключен, по меньшей мере, к первичному коммутатору, первичный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору, второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору, причем устройство коммутационной обработки располагается в расширенном коммутаторе, и устройство включает в себя:
модуль приема, выполненный с возможностью приема информации отображения, отправленной контроллером и/или первичным коммутатором и/или другим расширенным коммутатором, причем информация отображения включает в себя отношение отображения между физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков логического коммутатора; причем
модуль приема дополнительно выполнен с возможностью приема элементов потока, соответствующих текущему расширенному коммутатору и отправленных контроллером и/или первичным коммутатором и/или другим расширенным коммутатором, причем элементы потока, принятые модулем приема, являются информацией содержания каждой таблицы потоков в наборе таблиц потоков, выделенном контроллером текущему расширенному коммутатору; и
модуль обработки, выполненный с возможностью обработки, согласно элементам потока, принятым модулем приема или согласно элементам потока и информации отображения, которые принимаются модулем приема, первого пакета инкапсуляции, принятого текущим расширенным коммутатором, причем первый пакет инкапсуляции генерируется физическим коммутатором, в котором располагается предыдущая таблица потоков, путем инкапсулирования пакета данных, принятого физическим коммутатором, и соответствующей информации для обработки пакета данных.
[0053] В первом возможном варианте реализации шестого аспекта, в информации отображения, принятой модулем приема, первая таблица потоков table0 во множественных таблицах потоков логического коммутатора соответствует первичному коммутатору.
[0054] Согласно шестому аспекту или первому возможному варианту реализации шестого аспекта, во втором возможном варианте реализации, модуль приема дополнительно выполнен с возможностью приема первого пакета инкапсуляции после приема элементов потока, соответствующих текущему расширенному коммутатору; и
модуль обработки выполнен с возможностью: в случае определения, что числовой ID следующей таблицы потоков в первом пакете инкапсуляции, принятом модулем приема, располагается в другом физическом коммутаторе, ретранслировать, согласно информации отображения, принятой модулем приема, первый пакет инкапсуляции, принятый модулем приема, на физический коммутатор, соответствующий ID следующей таблицы потоков.
[0055] Согласно шестому аспекту или первому возможному варианту реализации шестого аспекта, в третьем возможном варианте реализации, модуль приема дополнительно выполнен с возможностью приема первого пакета инкапсуляции после приема элементов потока, соответствующих текущему расширенному коммутатору; и
модуль обработки выполнен с возможностью: в случае определения, что числовой ID следующей таблицы потоков в первом пакете инкапсуляции, принятом модулем приема, располагается в текущем расширенном коммутаторе, осуществлять восстановление среды конвейера на первом пакете инкапсуляции, принятом модулем приема, для получения пакета данных.
[0056] Согласно третьему возможному варианту реализации шестого аспекта, в четвертом возможном варианте реализации, модуль обработки включает в себя: блок разбора, выполненный с возможностью разбора первого пакета инкапсуляции, принятого модулем приема, для получения разобранной информации, причем разобранная информация включает в себя пакет данных и соответствующую информацию для обработки пакета данных, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, ID следующей таблицы потоков, и дополнительно включает в себя любое количество из следующей информации: входного порта (Ingress port), набора действий (Action set), в данный момент соответствующего пакету данных, и метаданных (Metadata); и
блок обработки, выполненный с возможностью осуществления восстановления среды конвейера согласно разобранной информации, полученной блоком разбора, и направления пакета данных на следующую таблицу потоков для продолжения обработки.
[0057] Согласно третьему возможному варианту реализации шестого аспекта, в пятом возможном варианте реализации, элементы потока, принятые модулем приема, включают в себя элемент потока, используемый для осуществления восстановления конвейера и отправленный контроллером; и модуль обработки включает в себя: блок добавления, выполненный с возможностью добавления элемента потока, используемого для осуществления восстановления конвейера, в первую таблицу потоков table0' текущего расширенного коммутатора; и блок обработки, выполненный с возможностью осуществления, с использованием элемента потока, добавленного в table0', восстановления среды конвейера на первом пакете инкапсуляции, принятом модулем приема.
[0058] Согласно пятому возможному варианту реализации шестого аспекта, в шестом возможном варианте реализации, первый пакет инкапсуляции, принятый модулем приема, включает в себя ID следующей таблицы потоков, и элемент потока, используемый для осуществления восстановления конвейера и принятый модулем приема, включает в себя часть согласования и исполнимую инструкцию, причем исполнимая инструкция включает в себя инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков; и блок обработки выполнен с возможностью согласования, с использованием элемента потока в table0', первого пакета инкапсуляции, принятого модулем приема, и когда элемент потока в table0' успешно согласован, выполнения инструкции восстановления таблицы потоков и/или инструкции перехода таблицы потоков в согласованном элементе потока последовательно согласно результату согласования.
[0059] Согласно любому из возможных вариантов реализации с третьего по шестой шестого аспекта, в седьмом возможном варианте реализации, модуль обработки дополнительно выполнен с возможностью: после осуществления восстановления среды конвейера на первом пакете инкапсуляции, принятом модулем приема, при получении пакета данных, обрабатывать пакет данных с использованием текущей таблицы потоков, и устройство дополнительно включает в себя модуль определения, выполненный с возможностью определения положения следующей таблицы потоков согласно информации отображения; и
модуль обработки дополнительно выполнен с возможностью: когда модуль определения определяет, что следующая таблица потоков располагается в текущем расширенном коммутаторе, направлять пакет данных на следующую таблицу потоков для продолжения обработки; или
модуль обработки дополнительно выполнен с возможностью: когда модуль определения определяет, что следующая таблица потоков располагается в другом расширенном коммутаторе, инициировать защиту среды конвейера для генерации второго пакета инкапсуляции, и отправлять второй пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0060] Согласно любому из возможных вариантов реализации с третьего по шестой шестого аспекта, в восьмом возможном варианте реализации, модуль приема дополнительно выполнен с возможностью приема элемента потока, который включает в себя инструкцию перехода таблицы потоков или инструкцию ретрансляции коммутатора и отправлен контроллером, причем инструкция перехода таблицы потоков или инструкция ретрансляции коммутатора в элементе потока определяется контроллером согласно тому, располагается ли следующая таблица потоков в элементе потока в текущем расширенном коммутаторе, и, если да, элемент потока включает в себя инструкцию перехода таблицы потоков, в противном случае, элемент потока включает в себя инструкцию ретрансляции коммутатора; и
модуль обработки дополнительно выполнен с возможностью: после осуществления восстановления среды конвейера на первом пакете инкапсуляции, принятом модулем приема, получать пакет данных в первом пакете инкапсуляции, и когда элемент потока, согласующийся с пакетом данных, включает в себя инструкцию перехода таблицы потоков, направлять пакет данных на следующую таблицу потоков для продолжения обработки; или получать пакет данных в первом пакете инкапсуляции, и когда элемент потока, согласующийся с пакетом данных, включает в себя инструкцию ретрансляции коммутатора, инициировать защиту среды конвейера для генерации второго пакета инкапсуляции, и отправлять второй пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0061] Согласно седьмому или восьмому возможному варианту реализации шестого аспекта, в девятом возможном варианте реализации, тот факт, что модуль обработки выполнен с возможностью инициирования защиты среды конвейера, включает в себя: инкапсулирование пакета данных и соответствующей информации для обработки пакета данных во второй пакет инкапсуляции, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, ID следующей таблицы потоков, и дополнительно включает в себя любое количество из следующей информации: входного порта (Ingress port), набора действий (Action set), в данный момент соответствующего пакету данных, и метаданных (Metadata).
[0062] Согласно седьмому аспекту, вариант осуществления настоящего изобретения предусматривает контроллер, подключенный к логическому коммутатору, причем логический коммутатор включает в себя, по меньшей мере, два физических коммутатора, и контроллер включает в себя:
процессор, выполненный с возможностью выделения каждой таблицы потоков во множественных таблицах потоков логического коммутатора каждому физическому коммутатору, причем множественные таблицы потоков являются конвейером логического коммутатора; и
передатчик, выполненный с возможностью отправки информации отображения, благодаря чему, каждый физический коммутатор получает информацию отображения, причем информация отображения включает в себя отношение отображения между физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков; причем
передатчик дополнительно выполнен с возможностью отправки элементов потока на логический коммутатор, благодаря чему, каждый физический коммутатор получает элементы потока, соответствующие каждому физическому коммутатору, и обрабатывает принятый пакет данных согласно элементам потока или согласно элементам потока и информации отображения, причем элементы потока являются информацией содержания каждой таблицы потоков в наборе таблиц потоков, выделенном контроллером каждому физическому коммутатору.
[0063] В первом возможном варианте реализации седьмого аспекта, по меньшей мере, два физических коммутатора включают в себя первичный коммутатор и первый расширенный коммутатор, причем контроллер подключен, по меньшей мере, к первичному коммутатору, и первый расширенный коммутатор подключен, по меньшей мере, к первичному коммутатору;
тот факт, что передатчик выполнен с возможностью отправки информации отображения, включает в себя: отправку информации отображения, по меньшей мере, на первичный коммутатор, благодаря чему, первичный коммутатор принимает информацию отображения, и информация отображения, принятая первым расширенным коммутатором, включает в себя информацию отображения, отправленную контроллером и/или первичным коммутатором; и
тот факт, что передатчик дополнительно выполнен с возможностью отправки элементов потока на логический коммутатор, включает в себя: отправку элементов потока логического коммутатора, по меньшей мере, на первичный коммутатор, благодаря чему, элементы потока, принятые первичным коммутатором, включают в себя элементы потока, соответствующие первичному коммутатору, или элементы потока, соответствующие каждому физическому коммутатору, и элементы потока, принятые первым расширенным коммутатором, включают в себя элементы потока, отправленные контроллером и/или первичным коммутатором.
[0064] Согласно первому возможному варианту реализации седьмого аспекта, во втором возможном варианте реализации, физические коммутаторы дополнительно включают в себя второй расширенный коммутатор, и второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору;
тот факт, что передатчик выполнен с возможностью отправки информации отображения, включает в себя: отправку информации отображения, по меньшей мере, на первичный коммутатор, благодаря чему, первичный коммутатор принимает информацию отображения, причем информация отображения, принятая первым расширенным коммутатором, включает в себя информацию отображения, отправленную контроллером и/или первичным коммутатором, и информация отображения, принятая вторым расширенным коммутатором, включает в себя информацию отображения, отправленную контроллером и/или первичным коммутатором и/или первым расширенным коммутатором; и
тот факт, что передатчик дополнительно выполнен с возможностью отправки элементов потока на логический коммутатор, включает в себя: отправку элементов потока логического коммутатора, по меньшей мере, на первичный коммутатор, благодаря чему, элементы потока, принятые первичным коммутатором, включают в себя элементы потока, соответствующие первичному коммутатору, или элементы потока, соответствующие первичному коммутатору, и элементы потока, соответствующие первому расширенному коммутатору и/или второму расширенному коммутатору, элементы потока, принятые первым расширенным коммутатором, включают в себя элементы потока, соответствующие первому расширенному коммутатору и отправленные контроллером и/или первичным коммутатором, и элементы потока, принятые вторым расширенным коммутатором, включают в себя элементы потока, соответствующие второму расширенному коммутатору и отправленные контроллером и/или первичным коммутатором и/или первым расширенным коммутатором.
[0065] Согласно первому или второму возможному варианту реализации седьмого аспекта, в третьем возможном варианте реализации, таблица потоков, выделенная процессором первичному коммутатору, включает в себя, по меньшей мере, первую таблицу потоков table0 во множественных таблицах потоков логического коммутатора, благодаря чему, когда первичный коммутатор принимает пакет данных, первичный коммутатор обрабатывает пакет данных с использованием table0.
[0066] Согласно любому из седьмого аспекта, или первого или второго возможного варианта реализации седьмого аспекта, в четвертом возможном варианте реализации, тот факт, что передатчик дополнительно выполнен с возможностью отправки элементов потока на логический коммутатор, включает в себя: отправку элементов потока на логический коммутатор, благодаря чему, когда текущий физический коммутатор принимает пакет данных, текущий физический коммутатор обрабатывает пакет данных с использованием текущей таблицы потоков, определяет, согласно информации отображения, отправленной передатчиком, располагается ли следующая таблица потоков в текущем физическом коммутаторе, и, если да, направляет пакет данных на следующую таблицу потоков для продолжения обработки, в противном случае, инициирует защиту среды конвейера для генерации пакета инкапсуляции, и отправляет пакет инкапсуляции на физический коммутатор, соответствующий следующей таблице потоков.
[0067] Согласно любому из седьмого аспекта, или первого или второго возможного варианта реализации седьмого аспекта, в пятом возможном варианте реализации, тот факт, что передатчик дополнительно выполнен с возможностью отправки элементов потока на логический коммутатор, включает в себя: когда элемент потока, подлежащий отправке, включает в себя инструкцию перехода таблицы потоков, определение, располагается ли следующая таблица потоков в текущем физическом коммутаторе; и если да, отправку элемента потока, включающего в себя инструкцию перехода таблицы потоков, на текущий физический коммутатор, благодаря чему, текущий физический коммутатор направляет пакет данных на следующую таблицу потоков для продолжения обработки; в противном случае, замену инструкции перехода таблицы потоков в элементе потока, подлежащем отправке, инструкцией ретрансляции коммутатора, и отправку элемента потока, включающего в себя инструкцию ретрансляции коммутатора, на текущий физический коммутатор, благодаря чему, текущий физический коммутатор инициирует защиту среды конвейера для генерации пакета инкапсуляции и отправляет пакет инкапсуляции на физический коммутатор, соответствующий следующей таблице потоков.
[0068] Согласно четвертому или пятому возможному варианту реализации седьмого аспекта, в шестом возможном варианте реализации, защита среды конвейера состоит в том, что текущий физический коммутатор инкапсулирует пакет данных и соответствующую информацию для обработки пакета данных в пакет инкапсуляции, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, числовой ID следующей таблицы потоков, и дополнительно включает в себя любое количество из следующей информации: входного порта (Ingress port), набора действий (Action set), в данный момент соответствующего пакету данных, и метаданных (Metadata).
[0069] Согласно любому из возможных вариантов реализации с четвертого по шестой седьмого аспекта, в седьмом возможном варианте реализации, защита среды конвейера используется для того, чтобы физический коммутатор, соответствующий следующей таблице потоков, мог разбирать пакет инкапсуляции, принятый физическим коммутатором, и получать разобранную информацию, с тем, чтобы осуществлять восстановление среды конвейера согласно разобранной информации и направлять пакет данных на следующую таблицу потоков для продолжения обработки, причем разобранная информация включает в себя пакет данных и соответствующую информацию для обработки пакета данных.
[0070] Согласно любому из возможных вариантов реализации с четвертого по шестой седьмого аспекта, в восьмом возможном варианте реализации, элементы потока, соответствующие расширенному коммутатору и отправленные передатчиком, включают в себя элемент потока, используемый для осуществления восстановления конвейера; и передатчик дополнительно выполнен с возможностью отправки элемента потока, используемого для осуществления восстановления конвейера, на расширенный коммутатор, благодаря чему, расширенный коммутатор добавляет элемент потока в первую таблицу потоков table0' расширенного коммутатора и, в случае приема пакета инкапсуляции, осуществляет восстановление среды конвейера с использованием элемента потока, добавленного в table0'.
[0071] Согласно восьмому возможному варианту реализации седьмого аспекта, в девятом возможном варианте реализации, пакет инкапсуляции включает в себя ID следующей таблицы потоков, и элемент потока, используемый для осуществления восстановления конвейера и отправленный передатчиком, включает в себя часть согласования и исполнимую инструкцию, причем часть согласования используется расширенным коммутатором для использования ID следующей таблицы потоков в качестве объекта согласования, соответствующего элементу потока, и исполнимая инструкция включает в себя инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков; и
восстановление среды конвейера состоит в том, что расширенный коммутатор согласует, с использованием элемента потока в table0', пакет инкапсуляции, принятый расширенным коммутатором, и когда ID следующей таблицы потоков согласуется с элементом потока в table0', выполняет инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков в согласованном элементе потока последовательно согласно результату согласования.
[0072] Согласно восьмому аспекту, вариант осуществления настоящего изобретения предусматривает первичный коммутатор, причем первичный коммутатор является физическим коммутатором логического коммутатора, подключенного к контроллеру, логический коммутатор включает в себя, по меньшей мере, два физических коммутатора, и, по меньшей мере, два физических коммутатора включают в себя первичный коммутатор и расширенный коммутатор, причем контроллер подключен, по меньшей мере, к первичному коммутатору, и первичный коммутатор включает в себя:
приемник, выполненный с возможностью приема информации отображения, отправленной контроллером, причем информация отображения включает в себя отношение отображения между физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков логического коммутатора; причем
приемник дополнительно выполнен с возможностью приема элементов потока, отправленных контроллером, причем элементы потока, принятые приемником, являются информацией содержания каждой таблицы потоков в наборе таблиц потоков, выделенном контроллером первичному коммутатору, или выделенном контроллером первичному коммутатору и расширенному коммутатору; и
процессор, выполненный с возможностью обработки, согласно элементам потока, принятым приемником или согласно элементам потока и информации отображения, которые принимаются приемником, пакета данных, принятого первичным коммутатором.
[0073] В первом возможном варианте реализации восьмого аспекта, первичный коммутатор дополнительно включает в себя передатчик, дополнительно выполненный с возможностью отправки, после того, как приемник принимает отношение отображения, отправленное контроллером, информации отображения на расширенный коммутатор, подключенный к первичному коммутатору; и
передатчик дополнительно выполнен с возможностью отправки, на расширенный коммутатор, подключенный к первичному коммутатору, после того, как приемник принимает элементы потока, отправленные контроллером, элементов потока, выделенных контроллером.
[0074] Согласно восьмому аспекту или первому возможному варианту реализации восьмого аспекта, во втором возможном варианте реализации, в логическом коммутаторе, которому принадлежит первичный коммутатор, расширенный коммутатор включает в себя первый расширенный коммутатор и второй расширенный коммутатор, причем первичный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору, и второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору;
тот факт, что передатчик выполнен с возможностью отправки информации отображения на расширенный коммутатор, подключенный к первичному коммутатору, включает в себя: отправку информации отображения на первый расширенный коммутатор и/или второй расширенный коммутатор; и
тот факт, что передатчик дополнительно выполнен с возможностью отправки, на расширенный коммутатор, подключенный к первичному коммутатору, элементов потока, выделенных контроллером, включает в себя: отправку, на первый расширенный коммутатор и/или второй расширенный коммутатор, элементов потока, выделенных контроллером, благодаря чему, расширенный коммутатор обрабатывает принятый пакет данных согласно информации отображения и элементам потока, соответствующим расширенному коммутатору.
[0075] Согласно любому из восьмого аспекта, или первого или второго возможного варианта реализации восьмого аспекта, в третьем возможном варианте реализации, информация отображения, принятая приемником, включает в себя таблицу потоков, выделенную контроллером первичному коммутатору, причем таблица потоков включает в себя, по меньшей мере, первую таблицу потоков table0 во множественных таблицах потоков логического коммутатора; и процессор выполнен с возможностью обработки, с использованием table0, принятого пакета данных согласно элементам потока, принятым приемником или согласно элементам потока и информации отображения, которые принимаются приемником.
[0076] Согласно любому из восьмого аспекта или возможных вариантов реализации с первого по третий восьмого аспекта, в четвертом возможном варианте реализации, процессор выполнен с возможностью обработки пакета данных при приеме пакета данных; определения, согласно информации отображения, принятой приемником, располагается ли следующая таблица потоков в первичном коммутаторе; и, если да, направления пакета данных на следующую таблицу потоков для продолжения обработки; в противном случае, инициирования защиты среды конвейера для генерации пакета инкапсуляции, и отправки пакета инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0077] Согласно любому из восьмого аспекта или возможных вариантов реализации с первого по третий восьмого аспекта, в пятом возможном варианте реализации, тот факт, что приемник дополнительно выполнен с возможностью приема элементов потока, отправленных контроллером, включает в себя: прием элемента потока, который включает в себя инструкцию перехода таблицы потоков или инструкцию ретрансляции коммутатора и отправлен контроллером, причем инструкция перехода таблицы потоков или инструкция ретрансляции коммутатора в элементе потока определяется контроллером согласно тому, располагается ли следующая таблица потоков в элементе потока в первичном коммутаторе, и, если да, элемент потока включает в себя инструкцию перехода таблицы потоков, в противном случае, элемент потока включает в себя инструкцию ретрансляции коммутатора; и
процессор выполнен с возможностью: когда элемент потока, согласующийся с принятым пакетом данных, включает в себя инструкцию перехода таблицы потоков, направлять пакет данных на следующую таблицу потоков для продолжения обработки; или
процессор выполнен с возможностью: когда элемент потока, согласующийся с принятым пакетом данных, включает в себя инструкцию ретрансляции коммутатора, инициировать защиту среды конвейера для генерации пакета инкапсуляции, и отправлять пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0078] Согласно четвертому или пятому возможному варианту реализации восьмого аспекта, в шестом возможном варианте реализации, тот факт, что процессор инициирует защиту среды конвейера включает в себя: инкапсулирование пакета данных и соответствующей информации для обработки пакета данных в пакет инкапсуляции, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, числовой ID следующей таблицы потоков, и дополнительно включает в себя любое количество из следующей информации: входного порта (Ingress port), набора действий (Action set), в данный момент соответствующего пакету данных, и метаданных (Metadata).
[0079] Согласно любому из возможных вариантов реализации с четвертого по шестой восьмого аспекта, в седьмом возможном варианте реализации, защита среды конвейера используется для того, чтобы расширенный коммутатор, соответствующий следующей таблице потоков, мог разбирать пакет инкапсуляции, принятый расширенным коммутатором, и получать разобранную информацию, с тем, чтобы осуществлять восстановление среды конвейера согласно разобранной информации и направлять пакет данных на следующую таблицу потоков для продолжения обработки, причем разобранная информация включает в себя пакет данных и соответствующую информацию для обработки пакета данных.
[0080] Согласно девятому аспекту, вариант осуществления настоящего изобретения предусматривает расширенный коммутатор, причем расширенный коммутатор является физическим коммутатором логического коммутатора, подключенного к контроллеру, логический коммутатор включает в себя множественные физические коммутаторы, множественные физические коммутаторы включают в себя первичный коммутатор и расширенный коммутатор, и расширенный коммутатор включает в себя первый расширенный коммутатор и второй расширенный коммутатор, причем контроллер подключен, по меньшей мере, к первичному коммутатору, первичный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору, второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору, и расширенный коммутатор включает в себя:
приемник, выполненный с возможностью приема информации отображения, отправленной контроллером и/или первичным коммутатором и/или другим расширенным коммутатором, причем информация отображения включает в себя отношение отображения между физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков логического коммутатора; причем
приемник дополнительно выполнен с возможностью приема элементов потока, соответствующих текущему расширенному коммутатору и отправленных контроллером и/или первичным коммутатором и/или другим расширенным коммутатором, причем элементы потока, принятые приемником, являются информацией содержания каждой таблицы потоков в наборе таблиц потоков, выделенном контроллером текущему расширенному коммутатору; и
процессор, выполненный с возможностью обработки, согласно элементам потока, принятым приемником или согласно элементам потока и информации отображения, которые принимаются приемником, первого пакета инкапсуляции, принятого текущим расширенным коммутатором, причем первый пакет инкапсуляции генерируется физическим коммутатором, в котором располагается предыдущая таблица потоков, путем инкапсулирования пакета данных, принятого физическим коммутатором, и соответствующей информации для обработки пакета данных.
[0081] В первом возможном варианте реализации девятого аспекта, в информации отображения, принятой приемником, первая таблица потоков table0 во множественных таблицах потоков логического коммутатора соответствует первичному коммутатору.
[0082] Согласно девятому аспекту или первому возможному варианту реализации девятого аспекта, во втором возможном варианте реализации, приемник дополнительно выполнен с возможностью приема первого пакета инкапсуляции после приема элементов потока, соответствующих текущему расширенному коммутатору; и
процессор выполнен с возможностью: в случае определения, что числовой ID следующей таблицы потоков в первом пакете инкапсуляции, принятом приемником, располагается в другом физическом коммутаторе, ретранслировать, согласно информации отображения, принятой приемником, первый пакет инкапсуляции, принятый приемником, на физический коммутатор, соответствующий ID следующей таблицы потоков.
[0083] Согласно девятому аспекту или первому возможному варианту реализации девятого аспекта, в третьем возможном варианте реализации, приемник дополнительно выполнен с возможностью приема первого пакета инкапсуляции после приема элементов потока, соответствующих текущему расширенному коммутатору; и
процессор выполнен с возможностью: в случае определения, что числовой ID следующей таблицы потоков в первом пакете инкапсуляции, принятом приемником, располагается в текущем расширенном коммутаторе, осуществлять восстановление среды конвейера на первом пакете инкапсуляции, принятом приемником, для получения пакета данных.
[0084] Согласно третьему возможному варианту реализации девятого аспекта, в четвертом возможном варианте реализации, процессор выполнен с возможностью: разбирать первый пакет инкапсуляции, принятый приемником, для получения разобранной информации, причем разобранная информация включает в себя пакет данных и соответствующую информацию для обработки пакета данных, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, ID следующей таблицы потоков, и дополнительно включает в себя любое количество из следующей информации: входного порта (Ingress port), набора действий (Action set), в данный момент соответствующего пакету данных, и метаданных (Metadata); и осуществлять восстановление среды конвейера согласно разобранной информации, и направлять пакет данных на следующую таблицу потоков для продолжения обработки.
[0085] Согласно третьему возможному варианту реализации девятого аспекта, в пятом возможном варианте реализации, элементы потока, принятые приемником, включают в себя элемент потока, используемый для осуществления восстановления конвейера и отправленный контроллером; и процессор выполнен с возможностью добавления элемента потока, используемого для осуществления восстановления конвейера, в первую таблицу потоков table0' текущего расширенного коммутатора, и осуществления, с использованием элемента потока, добавленного в table0', восстановления среды конвейера на первом пакете инкапсуляции, принятом приемником.
[0086] Согласно пятому возможному варианту реализации девятого аспекта, в шестом возможном варианте реализации, первый пакет инкапсуляции, принятый приемником, включает в себя ID следующей таблицы потоков, и элемент потока, используемый для осуществления восстановления конвейера и принятый приемником, включает в себя часть согласования и исполнимую инструкцию, причем исполнимая инструкция включает в себя инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков; и
тот факт, что процессор выполнен с возможностью осуществления, с использованием элемента потока, добавленного в table0', восстановления среды конвейера на первом пакете инкапсуляции, принятом приемником, включает в себя: согласование, с использованием элемента потока в table0', первого пакета инкапсуляции, принятого приемником; и когда элемент потока в table0' успешно согласован, выполнение инструкции восстановления таблицы потоков и/или инструкции перехода таблицы потоков в согласованном элементе потока последовательно согласно результату согласования.
[0087] Согласно любому из возможных вариантов реализации с третьего по шестой девятого аспекта, в седьмом возможном варианте реализации, процессор дополнительно выполнен с возможностью: после осуществления восстановления среды конвейера на первом пакете инкапсуляции, принятом приемником, при получении пакета данных, обрабатывать пакет данных с использованием текущей таблицы потоков; и
процессор дополнительно выполнен с возможностью: определять, согласно информации отображения, располагается ли следующая таблица потоков в текущем расширенном коммутаторе; и, если да, направлять пакет данных на следующую таблицу потоков для продолжения обработки; в противном случае, инициировать защиту среды конвейера для генерации второго пакета инкапсуляции, и отправлять второй пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0088] Согласно любому из возможных вариантов реализации с третьего по шестой девятого аспекта, в восьмом возможном варианте реализации, приемник дополнительно выполнен с возможностью приема элемента потока, который включает в себя инструкцию перехода таблицы потоков или инструкцию ретрансляции коммутатора и отправлен контроллером, причем инструкция перехода таблицы потоков или инструкция ретрансляции коммутатора в элементе потока определяется контроллером согласно тому, располагается ли следующая таблица потоков в элементе потока в текущем расширенном коммутаторе, и, если да, элемент потока включает в себя инструкцию перехода таблицы потоков, в противном случае, элемент потока включает в себя инструкцию ретрансляции коммутатора; и
процессор дополнительно выполнен с возможностью: после осуществления восстановления среды конвейера на первом пакете инкапсуляции, принятом приемником, получать пакет данных в первом пакете инкапсуляции, и когда элемент потока, согласующийся с пакетом данных, включает в себя инструкцию перехода таблицы потоков, направлять пакет данных на следующую таблицу потоков для продолжения обработки; или получать пакет данных в первом пакете инкапсуляции, и когда элемент потока, согласующийся с пакетом данных, включает в себя инструкцию ретрансляции коммутатора, инициировать защиту среды конвейера для генерации второго пакета инкапсуляции, и отправлять второй пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0089] Согласно седьмому или восьмому возможному варианту реализации девятого аспекта, в девятом возможном варианте реализации, тот факт, что процессор выполнен с возможностью инициирования защиты среды конвейера, включает в себя: инкапсулирование пакета данных и соответствующей информации для обработки пакета данных во второй пакет инкапсуляции, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, ID следующей таблицы потоков, и дополнительно включает в себя любое количество из следующей информации: входного порта (Ingress port), набора действий (Action set), в данный момент соответствующего пакету данных, и метаданных (Metadata).
[0090] Согласно десятому аспекту, вариант осуществления настоящего изобретения предусматривает систему коммутационной обработки, включающую в себя контроллер и логический коммутатор, причем логический коммутатор включает в себя, по меньшей мере, два физических коммутатора, и система включает в себя:
контроллер выполнен с возможностью выделения каждой таблицы потоков во множественных таблицах потоков логического коммутатора каждому физическому коммутатору, причем множественные таблицы потоков являются конвейером логического коммутатора;
контроллер дополнительно выполнен с возможностью отправки информации отображения, причем информация отображения включает в себя отношение отображения между физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков логического коммутатора;
каждый физический коммутатор выполнен с возможностью приема информации отображения;
контроллер дополнительно выполнен с возможностью отправки элементов потока на логический коммутатор;
каждый физический коммутатор дополнительно выполнен с возможностью приема элементов потока, причем элементы потока являются информацией содержания каждой таблицы потоков в наборе таблиц потоков, выделенном контроллером каждому физическому коммутатору; и
каждый физический коммутатор дополнительно выполнен с возможностью обработки, согласно элементам потока или согласно элементам потока и информации отображения, пакета данных, принятого физическим коммутатором.
[0091] В первом возможном варианте реализации десятого аспекта, по меньшей мере, два физических коммутатора включают в себя первичный коммутатор и расширенный коммутатор, причем контроллер подключен, по меньшей мере, к первичному коммутатору, и расширенный коммутатор подключен, по меньшей мере, к первичному коммутатору;
тот факт, что контроллер выполнен с возможностью отправки информации отображения, включает в себя: отправку информации отображения, по меньшей мере, на первичный коммутатор;
первичный коммутатор дополнительно выполнен с возможностью отправки, после приема отношения отображения, отправленного контроллером, информации отображения на расширенный коммутатор, подключенный к первичному коммутатору;
тот факт, что контроллер дополнительно выполнен с возможностью отправки элементов потока на логический коммутатор, включает в себя: отправку элементов потока логического коммутатора, по меньшей мере, на первичный коммутатор, причем элементы потока, принятые первичным коммутатором, включают в себя элементы потока, соответствующие первичному коммутатору, или элементы потока, соответствующие каждому физическому коммутатору; и
первичный коммутатор дополнительно выполнен с возможностью отправки, на расширенный коммутатор, подключенный к первичному коммутатору, после приема элементов потока, отправленных контроллером, элементов потока, выделенных контроллером.
[0092] Согласно десятому аспекту или первому возможному варианту реализации десятого аспекта, во втором возможном варианте реализации, расширенный коммутатор включает в себя первый расширенный коммутатор и второй расширенный коммутатор, причем первичный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору, и второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору;
тот факт, что первичный коммутатор выполнен с возможностью отправки информации отображения на расширенный коммутатор, подключенный к первичному коммутатору, включает в себя: отправку информации отображения на первый расширенный коммутатор и/или второй расширенный коммутатор; и
тот факт, что первичный коммутатор выполнен с возможностью отправки, на расширенный коммутатор, подключенный к первичному коммутатору, элементов потока, выделенных контроллером, включает в себя: отправку, на первый расширенный коммутатор и/или второй расширенный коммутатор, элементов потока, выделенных контроллером.
[0093] Согласно второму возможному варианту реализации десятого аспекта, в третьем возможном варианте реализации, тот факт, что каждый расширенный коммутатор выполнен с возможностью приема информации отображения, включает в себя: первый расширенный коммутатор выполнен с возможностью приема информации отображения, отправленной контроллером и/или первичным коммутатором; второй расширенный коммутатор выполнен с возможностью приема информации отображения, отправленной контроллером и/или первичным коммутатором и/или первым расширенным коммутатором; и
тот факт, что каждый расширенный коммутатор выполнен с возможностью приема элементов потока, включает в себя: первый расширенный коммутатор выполнен с возможностью приема элементов потока, отправленных контроллером и/или первичным коммутатором; и второй расширенный коммутатор выполнен с возможностью приема элементов потока, отправленных контроллером и/или первичным коммутатором и/или первым расширенным коммутатором.
[0094] Согласно любому из десятого аспекта или возможных вариантов реализации с первого по третий десятого аспекта, в четвертом возможном варианте реализации, таблица потоков, выделенная контроллером первичному коммутатору, включает в себя, по меньшей мере, первую таблицу потоков table0 во множественных таблицах потоков логического коммутатора; и
тот факт, что первичный коммутатор выполнен с возможностью обработки пакета данных, принятого первичным коммутатором, включает в себя: обработку принятого пакета данных согласно элементам потока или согласно элементам потока и информации отображения с использованием table0.
[0095] Согласно любому из десятого аспекта, или возможных вариантов реализации с первого по четвертый десятого аспекта, в пятом возможном варианте реализации, тот факт, что первичный коммутатор обрабатывает пакет данных, принятый первичным коммутатором, включает в себя: обработку пакета данных при приеме пакета данных; определение, согласно информации отображения, располагается ли следующая таблица потоков в первичном коммутаторе; и, если да, направление пакета данных на следующую таблицу потоков для продолжения обработки; в противном случае, инициирование защиты среды конвейера для генерации первого пакета инкапсуляции, и отправку первого пакета инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0096] Согласно любому из десятого аспекта, или возможных вариантов реализации с первого по четвертый десятого аспекта, в шестом возможном варианте реализации, тот факт, что контроллер выполнен с возможностью отправки элементов потока на первичный коммутатор, включает в себя: когда элемент потока, подлежащий отправке, включает в себя инструкцию перехода таблицы потоков, определение, располагается ли следующая таблица потоков в первичном коммутаторе; и, если да, отправку элемента потока, включающего в себя инструкцию перехода таблицы потоков, на первичный коммутатор; в противном случае, замену инструкции перехода таблицы потоков в элементе потока, подлежащем отправке, инструкцией ретрансляции коммутатора, и отправку элемента потока, включающего в себя инструкцию ретрансляции коммутатора, на первичный коммутатор;
соответственно, тот факт, что первичный коммутатор выполнен с возможностью приема элементов потока, включает в себя: прием элемента потока, который включает в себя инструкцию перехода таблицы потоков или инструкцию ретрансляции коммутатора и отправлен контроллером; и
тот факт, что первичный коммутатор выполнен с возможностью обработки пакета данных, принятого первичным коммутатором, включает в себя: когда элемент потока, согласующийся с принятым пакетом данных, включает в себя инструкцию перехода таблицы потоков, направление пакета данных на следующую таблицу потоков для продолжения обработки; или когда элемент потока, согласующийся с принятым пакетом данных, включает в себя инструкцию ретрансляции коммутатора, инициирование защиты среды конвейера для генерации первого пакета инкапсуляции, и отправку первого пакета инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0097] Согласно пятому или шестому возможному варианту реализации десятого аспекта, в седьмом возможном варианте реализации, тот факт, что первичный коммутатор выполнен с возможностью инициирования защиты среды конвейера, включает в себя: первичный коммутатор инкапсулирует пакет данных и соответствующую информацию для обработки пакета данных в первый пакет инкапсуляции, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, числовой ID следующей таблицы потоков, и дополнительно включает в себя любое количество из следующей информации: входного порта (Ingress port), набора действий (Action set), в данный момент соответствующего пакету данных, и метаданных (Metadata).
[0098] Согласно любому из десятого аспекта или возможных вариантов реализации с первого по седьмой десятого аспекта, в восьмом возможном варианте реализации, текущий расширенный коммутатор дополнительно выполнен с возможностью приема первого пакета инкапсуляции после приема элементов потока, соответствующих текущему расширенному коммутатору; и
текущий расширенный коммутатор дополнительно выполнен с возможностью определения, располагается ли числовой ID следующей таблицы потоков в первом пакете инкапсуляции в текущем расширенном коммутаторе, и если нет, ретрансляции, согласно информации отображения, первого пакета инкапсуляции на физический коммутатор, соответствующий ID следующей таблицы потоков; в противном случае, осуществления восстановления среды конвейера на первом пакете инкапсуляции для получения пакета данных.
[0099] Согласно восьмому возможному варианту реализации десятого аспекта, в девятом возможном варианте реализации, тот факт, что текущий расширенный коммутатор выполнен с возможностью осуществления восстановления среды конвейера на первом пакете инкапсуляции, включает в себя: разбор первого пакета инкапсуляции для получения разобранной информации, причем разобранная информация включает в себя пакет данных и соответствующую информацию для обработки пакета данных; и осуществление восстановления среды конвейера согласно разобранной информации, и направление пакета данных на следующую таблицу потоков для продолжения обработки.
[0100] Согласно восьмому возможному варианту реализации десятого аспекта, в десятом возможном варианте реализации, элементы потока, принятые текущим расширенным коммутатором, включают в себя элемент потока, используемый для осуществления восстановления конвейера и отправленный контроллером; и текущий расширенный коммутатор дополнительно выполнен с возможностью добавления элемента потока, используемого для осуществления восстановления конвейера, в первую таблицу потоков table0' текущего расширенного коммутатора, и осуществления, с использованием элемента потока, добавленного в table0', восстановления среды конвейера на первом пакете инкапсуляции.
[0101] Согласно десятому возможному варианту реализации десятого аспекта, в одиннадцатом возможном варианте реализации, первый пакет инкапсуляции, принятый текущим расширенным коммутатором, включает в себя ID следующей таблицы потоков, и элемент потока, используемый для осуществления восстановления конвейера и принятый текущим расширенным коммутатором, включает в себя часть согласования и исполнимую инструкцию, причем исполнимая инструкция включает в себя инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков; и
тот факт, что текущий расширенный коммутатор выполнен с возможностью осуществления, с использованием элемента потока, добавленного в table0', восстановления среды конвейера на первом пакете инкапсуляции, включает в себя: согласование, с использованием элемента потока в table0', первого пакета инкапсуляции, принятого приемником; и когда элемент потока в table0' успешно согласован, выполнение инструкции восстановления таблицы потоков и/или инструкции перехода таблицы потоков в согласованном элементе потока последовательно согласно результату согласования.
[0102] Согласно любому из возможных вариантов реализации с восьмого по одиннадцатый десятого аспекта, в двенадцатом возможном варианте реализации, текущий расширенный коммутатор дополнительно выполнен с возможностью: после осуществления восстановления среды конвейера на первом пакете инкапсуляции, при получении пакета данных, обрабатывать пакет данных с использованием текущей таблицы потоков; и
текущий расширенный коммутатор дополнительно выполнен с возможностью: определять, согласно информации отображения, располагается ли следующая таблица потоков в текущем расширенном коммутаторе; и, если да, направлять пакет данных на следующую таблицу потоков для продолжения обработки; в противном случае, инициировать защиту среды конвейера для генерации второго пакета инкапсуляции, и отправлять второй пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0103] Согласно любому из возможных вариантов реализации с восьмого по одиннадцатый десятого аспекта, в тринадцатом возможном варианте реализации, тот факт, что контроллер выполнен с возможностью отправки элементов потока на текущий расширенный коммутатор, включает в себя: когда элемент потока, подлежащий отправке, включает в себя инструкцию перехода таблицы потоков, определение, располагается ли следующая таблица потоков в текущем расширенном коммутаторе; и, если да, отправку элемента потока, включающего в себя инструкцию перехода таблицы потоков, на текущий расширенный коммутатор; в противном случае, замену инструкции перехода таблицы потоков в элементе потока, подлежащем отправке, инструкцией ретрансляции коммутатора, и отправку элемента потока, включающего в себя инструкцию ретрансляции коммутатора, на текущий расширенный коммутатор;
соответственно, тот факт, что текущий расширенный коммутатор выполнен с возможностью приема элементов потока, включает в себя: прием элемента потока, который включает в себя инструкцию перехода таблицы потоков или инструкцию ретрансляции коммутатора и отправлен контроллером; и
текущий расширенный коммутатор дополнительно выполнен с возможностью: после осуществления восстановления среды конвейера на первом пакете инкапсуляции, получать пакет данных в первом пакете инкапсуляции, и обрабатывать полученный пакет данных с использованием текущей таблицы потоков.
[0104] Согласно тринадцатому возможному варианту реализации десятого аспекта, в четырнадцатом возможном варианте реализации, тот факт, что текущий расширенный коммутатор выполнен с возможностью обработки полученного пакета данных, включает в себя: когда элемент потока, согласующийся с полученным пакетом данных, включает в себя инструкцию перехода таблицы потоков, направление пакета данных на следующую таблицу потоков для продолжения обработки; или когда элемент потока, согласующийся с полученным пакетом данных, включает в себя инструкцию ретрансляции коммутатора, инициирование защиты среды конвейера для генерации второго пакета инкапсуляции, и отправку второго пакета инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0105] Согласно любому из возможных вариантов реализации с двенадцатого по четырнадцатый десятого аспекта, в пятнадцатом возможном варианте реализации, тот факт, что текущий расширенный коммутатор выполнен с возможностью инициирования защиты среды конвейера, включает в себя: инкапсулирование пакета данных и соответствующей информации для обработки пакета данных во второй пакет инкапсуляции, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, ID следующей таблицы потоков, и дополнительно включает в себя любое количество из следующей информации: входного порта (Ingress port), набора действий (Action set), в данный момент соответствующего пакету данных, и метаданных (Metadata).
[0106] В способе коммутационной обработки, контроллере, коммутаторе и системе коммутационной обработки, которые предусмотрены настоящим изобретением, способ коммутационной обработки выполняется контроллером и логическим коммутатором, причем логический коммутатор включает в себя, по меньшей мере, два физических коммутатора. Контроллер выделяет каждую таблицу потоков во множественных таблицах потоков логического коммутатора каждому физическому коммутатору, и отправляет информацию отображения и элементы потока, благодаря чему, каждый физический коммутатор получает информацию отображения и элементы потока, соответствующие физическому коммутатору. Дополнительно, каждый физический коммутатор может обрабатывать принятый пакет данных согласно полученным элементам потока и отношению отображения или согласно элементам потока. В системе коммутационной обработки для выполнения способа коммутационной обработки, предусмотренного настоящим изобретением, новые физические коммутаторы могут быть уложены в стопку на основе физической структуры логического коммутатора. Это помогает поддерживать устойчивость существующей топологии сети, повышает возможности обработки логического коммутатора, и снижает влияние на работу сети и затраты на повышение пропускной способности.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0107] Для более наглядного описания технических решений согласно вариантам осуществления настоящего изобретения, ниже приведено краткое описание прилагаемых чертежей, необходимых для описания вариантов осуществления. Очевидно, прилагаемые чертежи в нижеследующем описании демонстрируют некоторые варианты осуществления настоящего изобретения, но специалист в данной области техники может составить другие чертежи на основе этих прилагаемых чертежей без применения творческих способностей.
[0108] Фиг. 1 - блок-схема операций способа коммутационной обработки согласно варианту осуществления 1 настоящего изобретения;
[0109] фиг. 2 - схема сценария применения согласно варианту осуществления, показанному на фиг. 1;
[0110] фиг. 3 - схема другого сценария применения согласно варианту осуществления, показанному на фиг. 1;
[0111] фиг. 4 - схема еще одного сценария применения согласно варианту осуществления, показанному на фиг. 1;
[0112] фиг. 5 - блок-схема операций способа коммутационной обработки согласно варианту осуществления 2 настоящего изобретения;
[0113] фиг. 6 - блок-схема операций другого способа коммутационной обработки согласно варианту осуществления настоящего изобретения;
[0114] фиг. 7 - блок-схема операций способа коммутационной обработки согласно варианту осуществления 3 настоящего изобретения;
[0115] фиг. 8 - блок-схема операций способа коммутационной обработки согласно варианту осуществления 4 настоящего изобретения;
[0116] фиг. 9 - блок-схема операций способа коммутационной обработки согласно варианту осуществления 5 настоящего изобретения;
[0117] фиг. 10 - блок-схема операций еще одного способа коммутационной обработки согласно варианту осуществления настоящего изобретения;
[0118] фиг. 11A, фиг. 11B и фиг. 11C - блок-схема операций способа коммутационной обработки согласно варианту осуществления 6 настоящего изобретения;
[0119] фиг. 12 - структурная схема устройства коммутационной обработки согласно варианту осуществления 7 настоящего изобретения;
[0120] фиг. 13 - структурная схема другого устройства коммутационной обработки согласно варианту осуществления настоящего изобретения;
[0121] фиг. 14 - структурная схема устройства коммутационной обработки согласно варианту осуществления 8 настоящего изобретения;
[0122] фиг. 15 - структурная схема еще одного устройства коммутационной обработки согласно варианту осуществления настоящего изобретения;
[0123] фиг. 16 - структурная схема устройства коммутационной обработки согласно варианту осуществления 9 настоящего изобретения;
[0124] фиг. 17 - структурная схема еще одного устройства коммутационной обработки согласно варианту осуществления настоящего изобретения;
[0125] фиг. 18 - структурная схема контроллера согласно варианту осуществления настоящего изобретения;
[0126] фиг. 19 - структурная схема первичного коммутатора согласно варианту осуществления настоящего изобретения; и
[0127] фиг. 20 - структурная схема расширенного коммутатора согласно варианту осуществления настоящего изобретения.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0128] Для пояснения задач, технических решений и преимуществ вариантов осуществления настоящего изобретения, ниже приведено наглядное описание технических решений согласно вариантам осуществления настоящего изобретения со ссылкой на прилагаемые чертежи согласно вариантам осуществления настоящего изобретения. Очевидно, описанные варианты осуществления представляют собой лишь некоторые, но не все варианты осуществления настоящего изобретения. Все остальные варианты осуществления, полученные специалистом в данной области техники на основе вариантов осуществления настоящего изобретения без применения творческих способностей, подлежат включению в объем защиты настоящего изобретения.
[0129] Способ коммутационной обработки, предусмотренный вариантом осуществления настоящего изобретения, можно применять к случаю, когда количество таблиц потоков, поддерживаемых логическим коммутатором в сети, и масштаб элементов потока, которые могут обрабатываться логическим коммутатором, необходимо увеличить. В частности, согласно способу коммутационной обработки, предусмотренному этим вариантом осуществления настоящего изобретения, контроллер может выделять каждую таблицу потоков во множественных таблицах потоков множественным физическим коммутаторам, и множественные физические коммутаторы следует рассматривать как один логический коммутатор. Поэтому конвейер логического коммутатора может поддерживать большое количество таблиц потоков и/или может обрабатывать большое количество элементов потока. Способ коммутационной обработки, предусмотренный этим вариантом осуществления, может выполняться системой коммутационной обработки. Система коммутационной обработки включает в себя контроллер и множественные физические коммутаторы. Устройство обработки данных может интегрироваться в контроллере и каждом физическом коммутаторе, и устройство обработки данных может быть реализовано программными и/или аппаратными средствами. Ниже подробно описан способ коммутационной обработки, предусмотренный этим вариантом осуществления.
Вариант осуществления 1
[0130] На фиг. 1 показана блок-схема операций способа коммутационной обработки согласно варианту осуществления 1 настоящего изобретения. Способ коммутационной обработки, предусмотренный этим вариантом осуществления, выполняется контроллером и логическим коммутатором, причем логический коммутатор включает в себя, по меньшей мере, два физических коммутатора. Как показано на фиг. 1, способ в этом варианте осуществления включает в себя следующие этапы:
[0131] S110. Контроллер выделяет каждую таблицу потоков во множественных таблицах потоков логического коммутатора каждому физическому коммутатору, причем множественные таблицы потоков являются конвейером логического коммутатора.
[0132] S120. Контроллер отправляет информацию отображения, благодаря чему, каждый физический коммутатор получает информацию отображения, причем информация отображения включает в себя отношение отображения между каждым физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков.
[0133] В этом варианте осуществления, логический коммутатор включает в себя, по меньшей мере, два физических коммутатора. Поэтому контроллеру необходимо выделять каждую таблицу потоков во множественных таблицах потоков разным физическим коммутаторам для совместного использования и дополнительно необходимо доставлять отношение отображения между каждым физическим коммутатором и каждой таблицей потоков физическим коммутаторам, которые участвуют при обработке, благодаря чему, каждый физический коммутатор может ретранслировать, после обработки принятого пакета данных с использованием выделенной текущей таблицы потоков, пакет данных на следующую таблицу потоков или другой физический коммутатор для продолжения обработки.
[0134] S130. Контроллер отправляет элементы потока на логический коммутатор, благодаря чему, каждый физический коммутатор получает элементы потока, соответствующие каждому физическому коммутатору, и обрабатывает принятый пакет данных согласно элементам потока или согласно элементам потока и информации отображения, причем элементы потока являются информацией содержания каждой таблицы потоков в наборе таблиц потоков, выделенном контроллером каждому физическому коммутатору.
[0135] В этом варианте осуществления, контроллер выделяет каждую таблицу потоков во множественных таблицах потоков каждому физическому коммутатору и, после доставки отношения отображения, должен доставлять, каждому физическому коммутатору, элементы потока таблицы потоков, выделенной физическому коммутатору. Элементы потока, принятые каждым физическим коммутатором, представляют собой информацию содержания каждой таблицы потоков в наборе таблиц потоков, выделенный контроллером каждому физическому коммутатору, например, включающую в себя часть согласования (Match Fields), приоритет (Priority), статистические данные (Counters), инструкции (Instructions), времена ожидания (Timeouts) и значение, связанное с таблицей потоков (Cookie). Поэтому каждый физический коммутатор помещает принятые элементы потока в таблицу потоков, соответствующую физическому коммутатору, и может обрабатывать принятый пакет данных, когда физическому коммутатору известны выделенная таблица потоков, отношение отображения и элементы потока в каждой таблице потоков.
[0136] Например, на фиг. 2 показана схема сценария применения согласно варианту осуществления, показанному на фиг. 1. В сценарии, показанном на фиг. 2, логический коммутатор включает в себя два физических коммутатора, и физические коммутаторы включают в себя первичный коммутатор и первый расширенный коммутатор. Контроллер подключен, по меньшей мере, к первичному коммутатору, и первый расширенный коммутатор подключен, по меньшей мере, к первичному коммутатору. В архитектуре, показанной на фиг. 2, метод отправки информации отображения и элементы потока контроллером могут быть следующими: (1) Контроллер непосредственно отправляет информацию отображения и элементы потока, соответствующие каждому физическому коммутатору, на соответствующий физический коммутатор, то есть контроллер должен быть подключен к каждому физическому коммутатору, соответствующему отношению соединения, показанному сплошной линией на фиг. 2. (2) Контроллер отправляет информацию отображения и все элементы потока на первичный коммутатор, и, таким образом, элементы потока, принятые первичным коммутатором, не только включают в себя элементы потока, соответствующие первичному коммутатору, но и включают в себя элементы потока, соответствующие первому расширенному коммутатору, и первичный коммутатор отправляет информацию отображения и элементы потока, соответствующие первому расширенному коммутатору на первый расширенный коммутатор. В этом методе отправки, первый расширенный коммутатор может быть подключен только к первичному коммутатору, соответствующему отношению соединения, показанному пунктирной линией на фиг. 2. В общем случае, метод отправки информации отображения и элементов потока контроллером может включать в себя два вышеупомянутых случая, то есть отношение соединения между каждым физическим коммутатором и контроллером отвечает любому из вышеупомянутых условий.
[0137] В порядке другого примера, на фиг. 3 показана схема другого сценария применения согласно варианту осуществления, показанному на фиг. 1. В сценарии, показанном на фиг. 3, логический коммутатор включает в себя три физических коммутатора, и физические коммутаторы включают в себя первичный коммутатор, первый расширенный коммутатор и второй расширенный коммутатор. Метод соединения между первичным коммутатором и первым расширенным коммутатором аналогичен методу в сценарии, показанном на фиг. 2, и второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору. В архитектуре, показанной на фиг. 3, метод отправки информации отображения и элементы потока контроллером могут быть следующими: (1) Контроллер непосредственно отправляет информацию отображения и элементы потока, соответствующие каждому физическому коммутатору, на соответствующий физический коммутатор, то есть контроллер должен быть подключен к каждому физическому коммутатору, соответствующему отношению соединения, показанному сплошной линией "1" на фиг. 3. (2) Контроллер отправляет информацию отображения и все элементы потока на первичный коммутатор, то есть элементы потока, принятые первичным коммутатором, не только включают в себя элементы потока, соответствующие первичному коммутатору, но и включают в себя элементы потока, соответствующие другим расширенным коммутаторам, и дополнительно, первичный коммутатор отправляет информацию отображения и элементы потока, соответствующие другим физическим коммутаторам, на соответствующие физические коммутаторы. В этом методе отправки, контроллер подключен только к первичному коммутатору, и первый расширенный коммутатор и второй расширенный коммутатор подключены к первичному коммутатору, соответствующему отношению соединения, показанному сплошной линией "2" на фиг. 3. (3) Контроллер отправляет информацию отображения и все элементы потока на первичный коммутатор, и первичный коммутатор отправляет информацию отображения и элементы потока, соответствующие другим физическим коммутаторам, только на первый расширенный коммутатор, причем элементы потока, принятые первым расширенным коммутатором, не только включают в себя элементы потока, соответствующие первому расширенному коммутатору, но и включают в себя элементы потока, соответствующие второму расширенному коммутатору; и дополнительно, первый расширенный коммутатор отправляет информацию отображения и элементы потока, соответствующие второму расширенному коммутатору, на соответствующий второй расширенный коммутатор. В этом методе отправки, контроллер и первый расширенный коммутатор подключены к первичному коммутатору, и второй расширенный коммутатор подключен только к первому расширенному коммутатору, соответствующему отношению соединения, показанному сплошной линией "3" на фиг. 3. (4) Контроллер также может отправлять информацию отображения и элементы потока, соответствующие первичному коммутатору, на первичный коммутатор, и отправлять информацию отображения и элементы потока, соответствующие обоим расширенным коммутаторам, на первый расширенный коммутатор; и дополнительно, первый расширенный коммутатор отправляет информацию отображения и элементы потока, соответствующие второму расширенному коммутатору, на второй расширенный коммутатор. В этом методе отправки, первый расширенный коммутатор и первичный коммутатор подключены к контроллеру, и второй расширенный коммутатор подключен только к первому расширенному коммутатору, соответствующему отношению соединения, показанному сплошной линией "4" на фиг. 3. Кроме того, контроллер также может сначала отправлять информацию отображения и элементы потока на расширенные коммутаторы. Например, контроллер отправляет информацию отображения и элементы потока на первый расширенный коммутатор, причем элементы потока включают в себя элементы потока, соответствующие первичному коммутатору, и элементы потока, соответствующие расширенным коммутаторам; первый расширенный коммутатор ретранслирует информацию отображения и элементы потока, соответствующие первичному коммутатору, на первичный коммутатор; и информация отображения, принятая вторым расширенным коммутатором, может отправляться контроллером и/или первым расширенным коммутатором. В этом методе отправки, первый расширенный коммутатор подключен к контроллеру и первичному коммутатору, и второй расширенный коммутатор подключен к первому расширенному коммутатору и/или контроллеру. В общем случае, метод отправки информации отображения и элементов потока контроллером может включать в себя несколько вышеупомянутых случаев, то есть отношение соединения между каждым физическим коммутатором и контроллером отвечает любому из вышеупомянутых условий. Согласно способу коммутационной обработки, предусмотренному настоящим изобретением, конкретный процесс отправки информации отображения и элементов потока контроллером не имеет ограничений. Любой метод отправки, который может позволять каждому физическому коммутатору принимать информацию отображения и элементы потока, соответствующие каждому физическому коммутатор, можно применять к способу коммутационной обработки, предусмотренному этим вариантом осуществления настоящего изобретения.
[0138] Следует отметить, что, фиг. 2 и фиг. 3 также показаны структурные схемы системы коммутационной обработки, предусмотренной этим вариантом осуществления настоящего изобретения. В этой системе, первичный коммутатор является коммутатором, определенным в сети и подключенным к контроллеру. Кроме того, таблица потоков, выделенная контроллером первичному коммутатору, включает в себя, по меньшей мере, первую таблицу потоков (table0) во множественных таблицах потоков логического коммутатора, благодаря чему, когда первичный коммутатор принимает пакет данных, первичный коммутатор сначала обрабатывает пакет данных с использованием table0. Другие физические коммутаторы принимают и ретранслируют информацию отображения и элементы потока на основании отношений соединения с первичным коммутатором и отношений соединения между физическими коммутаторами верхнего уровня и нижнего уровня.
[0139] В уровне техники, когда оператору нужно осуществлять повышение пропускной способности в отношении функций или производительности коммутатора, расположенного на сетевом узле, вследствие ограниченных аппаратных возможностей коммутатора, оператор может лишь заменять немасштабируемый коммутатор в существующей сети. Поэтому затраты на повышение пропускной способности сети относительно высоки. С другой стороны, в этом варианте осуществления, логический коммутатор не является немасштабируемым физическим коммутатором, но включает в себя множественные физические коммутаторы, которые уложены в стопку. Поэтому, при увеличении пропускной способности сети или увеличении служебного трафика, или когда логическому коммутатору необходимо осуществлять более сложные функции логической обработки, оператор может продолжать использовать текущие существующие физические коммутаторы, и новый логический коммутатор формируется путем укладывания в стопку множественных существующих физических коммутаторов для достижения цели повышения пропускной способности. Поэтому не требуется приобретать устройство с более высокой пропускной способностью для замены старого устройства. Это полностью гарантирует инвестиции оператора в существующее устройство и снижает затраты на повышение пропускной способности. В конкретной реализации, поскольку исходное устройство и расширенное устройство можно рассматривать как логическую сущность, которая полностью эквивалентна исходному устройству в топологии сети, этот способ позволяет сохранять устойчивость топологии сети до и после обновления. Поэтому плавное обновление на уровне узлов осуществляется в домене SDN с низкой сложностью и высокой надежностью. В частности, согласно способу, предусмотренному этим вариантом осуществления, сначала количество физических коммутаторов в логическом коммутаторе может увеличиваться, благодаря чему, увеличиваются возможности обработки логического коммутатора. Когда сложная логика не может обрабатываться вследствие ограничения количества таблиц потоков, которые могут поддерживаться существующим логическим коммутатором, физический коммутатор, добавленный в ходе повышения пропускной способности и существующий физический коммутатор можно использовать совместно для формирования нового логического коммутатора, то есть формировать логический коммутатор после повышения пропускной способности. Дополнительно, возможности обработки сложная логика логическим коммутатором после повышения пропускной способности повышаются. Когда вычисление возможностей обработки существующего логического коммутатора недостаточно, логический коммутатор после повышения пропускной способности используется для выполнения способа коммутационной обработки, предусмотренного этим вариантом осуществления, чтобы поддерживать существующую топологию сети для осуществления плавного обновления, при повышении вычисления возможностей обработки. Поэтому повышение пропускной способности проще осуществлять, и влияние на работу сети снижается.
[0140] Например, когда количество таблиц потоков, поддерживаемых исходным логическим коммутатором, недостаточно для обработки новой служебной логики, или когда вычислительных ресурсов исходного логического коммутатора недостаточно, поскольку переносимый служебный трафик значительно увеличивается, обновление логической функции может быть реализовано путем добавления нового физического коммутатора, и возможности обработки логического коммутатора могут повышаться для осуществления повышения производительности логического коммутатора. На фиг. 4 показана схема еще одного сценария применения согласно варианту осуществления, показанному на фиг. 1. Как показано на фиг. 4, исходный логический коммутатор включает в себя Switch1, Switch2, Switch3 и Switch4, где Switch1 являться первичным коммутатором, Switch2 и Switch3 являются первыми расширенными коммутаторами, и Switch4 является вторым расширенным коммутатором. Исходный логический коммутатор может поддерживать только n таблиц потоков. Когда необходимо обрабатывать более сложную логику, новый Switch5 может добавляться между Switch1 и Switch2 в методе укладки в стопку, и совместно с исходным логическим коммутатором, образовывать новый логический коммутатор, который может поддерживать n+m таблиц потоков, а именно, от Switch1 до Switch5, и заменять исходный логический коммутатор в топологии сети для достижения эффекта функций модернизация логического коммутатора. На фиг. 4, сплошная линия между коммутаторами является соединением данных, существующим до обновления, и пунктирная линия является соединение данных, добавленное после обновления, и отношения соединения между контроллером и расширенными коммутаторами показаны пунктирными линиями. Можно видеть, что топология сети остается устойчивой до и после обновления. Это означает, что процесс обновления является очень плавным, и оказывает незначительное влияние на работу сети, и, таким образом, также гарантируется надежность сети. Аналогично, когда количество n таблиц потоков, поддерживаемых исходным логическим коммутатором, а именно, от Switch1 до Switch4, может отвечать требованиям сложности служебной логики, но необходимы более высокие возможности обработки с увеличением трафика, переносимого исходным логическим коммутатором, новый Switch5 может добавляться между Switch1 и Switch2 в методе укладки в стопку, и исходный логический коммутатор заменяется от Switch1 до Switch5 в топологии сети. Хотя логический коммутатор после обновления по-прежнему поддерживает n таблиц потоков, поскольку более высокие вычислительные возможности осуществляется вследствие увеличения физических коммутаторов, достигается эффект осуществления модернизации логического коммутатора. Следует отметить, что в сценарии применения, показанном на фиг. 4, исходный логический коммутатор, например, также может включать в себя только Switch1 и Switch2 укладывается в стопку на Switch1 для формирования нового логического коммутатора.
[0141] Способ коммутационной обработки, предусмотренный этим вариантом осуществления, выполняется контроллером и логическим коммутатором, причем логический коммутатор включает в себя, по меньшей мере, два физических коммутатора. Контроллер выделяет каждую таблицу потоков во множественных таблицах потоков логического коммутатора каждому физическому коммутатору, и отправляет информацию отображения и элементы потока, благодаря чему, каждый физический коммутатор получает информацию отображения и элементы потока, соответствующие физическому коммутатору. Дополнительно, каждый физический коммутатор может обрабатывать принятый пакет данных согласно полученным элементам потока и отношению отображения или согласно элементам потока. В логическом коммутаторе для выполнения способа коммутационной обработки, предусмотренного этим вариантом осуществления, новые физические коммутаторы могут быть уложены в стопку на основе физической структуры логического коммутатора. Это помогает поддерживать устойчивость существующей топологии сети, повышает возможности обработки логического коммутатора, и снижает влияние на работу сети и затраты на повышение пропускной способности.
Вариант осуществления 2
[0142] На фиг. 5 показана блок-схема операций способа коммутационной обработки согласно варианту осуществления 2 настоящего изобретения. Способ коммутационной обработки, предусмотренный этим вариантом осуществления, выполняется контроллером и логическим коммутатором, причем логический коммутатор включает в себя, по меньшей мере, два физических коммутатора. Как показано на фиг. 5, способ в этом варианте осуществления включает в себя следующие этапы:
[0143] S210. Контроллер выделяет каждую таблицу потоков во множественных таблицах потоков логического коммутатора каждому физическому коммутатору, причем множественные таблицы потоков являются конвейером логического коммутатора.
[0144] S220. Контроллер отправляет информацию отображения, благодаря чему, каждый физический коммутатор получает информацию отображения, причем информация отображения включает в себя отношение отображения между физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков.
[0145] В частности, варианты реализации этапов S210 - S220, соответствуют этапам S110 - S120 согласно варианту осуществления 1.
[0146] S230. Контроллер отправляет элементы потока на логический коммутатор, благодаря чему, когда текущий физический коммутатор принимает пакет данных, текущий физический коммутатор обрабатывает пакет данных с использованием текущей таблицы потоков, определяет положение следующей таблицы потоков согласно информации отображения, и когда определенная следующая таблица потоков располагается в текущем физическом коммутаторе, направляет пакет данных на следующую таблицу потоков для продолжения обработки, или когда определенная следующая таблица потоков располагается в другом физическом коммутаторе, инициирует защиту среды конвейера для генерации пакета инкапсуляции, и отправляет пакет инкапсуляции на физический коммутатор, соответствующий следующей таблице потоков.
[0147] В этом варианте осуществления, при приеме и обработке пакета данных, текущий физический коммутатор определяет, со ссылкой на принятую информацию отображения, положение следующей таблицы потоков для обработки пакета данных. С одной стороны, обработка по-прежнему будет осуществляться с использованием таблицы потоков текущего физического коммутатора, то есть текущий физический коммутатор может непосредственно направлять пакет данных на следующую таблицу потоков текущего физического коммутатора для продолжения обработки. С другой стороны, когда текущий физический коммутатор обнаруживает, что другой физический коммутатор должен продолжать обработку пакета данных, текущий физический коммутатор должен осуществлять защиту среды конвейера на множественных таблицах потоков. Способ, предусмотренный этим вариантом осуществления, состоит в защите среды конвейера, управляемой коммутатором, и решаемой, инициированной и выполняемой коммутатором. При доставке элементов потока, контроллеру не нужно рассматривать, располагается ли каждая таблица потоков в одном и том же физическом коммутаторе. В частности, текущий физический коммутатор определяет положение следующей таблицы потоков. В частности, когда следующая таблица потоков располагается в другом физическом коммутаторе, текущий физический коммутатор инициирует защиту среды конвейера для генерации пакета инкапсуляции, и отправляет сгенерированный пакет инкапсуляции на физический коммутатор, соответствующий следующей таблице потоков.
[0148] В необязательном порядке, в другом возможном варианте реализации этого варианта осуществления, как показано на фиг. 6, на фиг. 6 показана блок-схема операций другого способа коммутационной обработки согласно варианту осуществления настоящего изобретения. В частности, защита среды конвейера управляется контроллером и решается контроллером, и коммутатор должен лишь непосредственно выполнять соответствующую инструкцию. На основе вышеупомянутого способа, показанного на фиг. 5, после этапа S220, способ включает в себя: S230. когда элемент потока, подлежащий отправке, включает в себя инструкцию перехода таблицы потоков, контроллер определяет, располагается ли следующая таблица потоков в текущем физическом коммутаторе, и, если да, осуществляет этап S240, в противном случае, осуществляет этап S250.
[0149] S240. Контроллер отправляет элемент потока, включающий в себя инструкцию перехода таблицы потоков, на текущий физический коммутатор, благодаря чему, текущий физический коммутатор направляет пакет данных на следующую таблицу потоков для продолжения обработки.
[0150] S250. Контроллер заменяет инструкцию перехода таблицы потоков в элементе потока, подлежащем отправке, инструкцией ретрансляции коммутатора, и отправляет элемент потока, включающий в себя инструкцию перехода таблицы потоков, на текущий физический коммутатор, благодаря чему, текущий физический коммутатор инициирует защиту среды конвейера для генерации пакета инкапсуляции, и отправляет пакет инкапсуляции на физический коммутатор, соответствующий следующей таблице потоков.
[0151] Контроллер, в общем случае, отправляет элемент потока на коммутатор с использованием сообщение Flow_Mod. В этом варианте осуществления, инструкция перехода таблицы потоков может быть, например, инструкцией типа "Goto_table"; и инструкция ретрансляции коммутатора может быть, например, инструкцией типа "ретрансляция на следующий коммутатор". В частности, при обнажении, что исполнимая инструкция в элементе потока, подлежащем отправке, включает в себя "Goto_table", контроллер определяет положение следующей таблицы потоков, и определяет, располагается ли следующая таблица потоков в текущем физическом коммутаторе; если да, контроллер использует инструкцию "Goto_table", то есть контроллер непосредственно отправляет элемент потока, включающий в себя "Goto_table" на текущий физический коммутатор; в противном случае, контроллер использует инструкцию "ретрансляция на следующий коммутатор", то есть контроллер заменяет "Goto_table" в элементе потока "ретрансляцией на следующий коммутатор", и отправляет элемент потока с замененной инструкцией на текущий физический коммутатор, и текущий физический коммутатор инициирует защиту среды конвейера согласно инструкции типа "ретрансляция на следующий коммутатор" в элементе потока.
[0152] Следует отметить, что, поскольку способ, предусмотренный этим вариантом осуществления, выполняется, по меньшей мере, двумя физическими коммутаторами, когда пакет данных обрабатывается и направляется на следующую таблицу потоков, для конфиденциальности пакета данных, защита среды конвейера должна инициироваться, когда пакет данных ретранслируется между разными физическими коммутаторами. Это отличается от выполнения только фиксированным физическим коммутатором в уровне техники. Хотя методы управления согласно вариантам осуществления, показанные на фиг. 5 и фиг. 6 отличаются, методы защиты среды конвейера текущим физическим коммутатором одинаковы. В частности, текущий физический коммутатор инкапсулирует пакет данных и соответствующую информацию для обработки пакета данных в пакет инкапсуляции, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, число (Identity, сокращенно ID) следующей таблицы потоков, и дополнительно, в необязательном порядке, включает в себя любое количество из следующей информации: входного порта (Ingress port), набора действий (Action set), в данный момент соответствующего пакету данных, и метаданных (Metadata).
[0153] Дополнительно, после осуществления защиты среды конвейера, текущий физический коммутатор отправляет пакет инкапсуляции, сгенерированный путем осуществления защита среды конвейера на физический коммутатор, соответствующий следующей таблице потоков. Соответственно, физический коммутатор, соответствующий следующей таблице потоков, должен осуществлять восстановление среды конвейера для получения пакета данных. Согласно способу, предусмотренному этим вариантом осуществления, восстановление среды конвейера управляется физическим коммутатором, соответствующий следующей таблице потоков. В частности, физический коммутатор разбирает принятый пакет инкапсуляции и получает разобранную информацию, причем разобранная информация включает в себя пакет данных и соответствующую информацию для обработки пакета данных. Соответствующая информация для обработки пакета данных также включает в себя ID следующей таблицы потоков, и дополнительно, в необязательном порядке, включает в себя любое количество из следующей информации: входного порта, набора действий и метаданных, благодаря чему, физический коммутатор осуществляет восстановление среды конвейера согласно разобранной информации и направляет пакет данных, полученный путем разбора, на следующую таблицу потоков для продолжения обработки. Способ направления в следующую таблицу потоков такой же, как в вышеприведенном варианте осуществления, и поэтому дополнительно здесь не описан.
[0154] В необязательном порядке, в другом возможном варианте реализации этого варианта осуществления, восстановление среды конвейера может управляться контроллером. Восстановление среды конвейера может осуществляться на основе вышеупомянутого варианта осуществления, показанного на фиг. 5 или фиг. 6, и проиллюстрирован в этом варианте осуществления на основе фиг. 6. Как показано на фиг. 6, после этапа S250, способ дополнительно включает в себя:
[0155] S260. Контроллер отправляет элемент потока, используемый для осуществления восстановления конвейера на расширенный коммутатор, благодаря чему, расширенный коммутатор добавляет элемент потока в первую таблицу потоков table0' расширенного коммутатора и, в случае приема пакета инкапсуляции, осуществляет восстановление среды конвейера с использованием элемента потока, добавленного в table0'. Следует отметить, что, в общем случае, контроллер заранее отправляет элементы потока. В этом варианте осуществления, не существует определенной последовательности между этапами S250 и S260. Например, этап S250 показан до этапа S260 на фиг. 6.
[0156] В этом варианте осуществления, расширенный коммутатор осуществляет восстановление конвейера с использованием принятого элемента потока, который используется для осуществления восстановления среды конвейера и отправляется контроллером, причем элемент потока, используемый для осуществления восстановления конвейера, может включать в себя часть согласования и исполнимую инструкцию. ID следующей таблицы потоков в пакете инкапсуляции используется как объект согласования части согласования элемента потока, и исполнимая инструкция может включать в себя инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков. Конкретный процесс восстановления среды конвейера состоит в следующем: расширенный коммутатор согласует, с использованием элемента потока в table0', пакет инкапсуляции, принятый расширенным коммутатором, и когда ID следующей таблицы потоков согласуется с элементом потока в table0', выполняет инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков в согласованном элементе потока последовательно согласно результату согласования. Например, ID следующей таблицы потоков для пакета инкапсуляции, принятого расширенным коммутатором, равен логической таблице потоков 3. Обязательно, элемент потока в логической таблице потоков 3 может быть успешно согласован. Согласно основному методу работы протокола Openflow, после успешного согласования, расширенный коммутатор выполняет исполнимую инструкцию в согласованном элементе потока.
[0157] Способ коммутационной обработки, предусмотренный этим вариантом осуществления, выполняется контроллером и логическим коммутатором, включающим в себя, по меньшей мере, два физических коммутатора. Когда пакет данных ретранслируется между разными физическими коммутаторами, неразрывная конвейерная обработка пакета данных осуществляется между физическими коммутаторами одного и того же логического коммутатора посредством защиты и восстановления среды конвейера. Способ коммутационной обработки, предусмотренный этим вариантом осуществления, имеет такой же полезный результат, как в вышеприведенном варианте осуществления, и поэтому дополнительно здесь не описан.
Вариант осуществления 3
[0158] На фиг. 7 показана блок-схема операций способа коммутационной обработки согласно варианту осуществления 3 настоящего изобретения. Способ коммутационной обработки, предусмотренный этим вариантом осуществления, выполняется контроллером и логическим коммутатором. По аналогии с вышеописанным вариантом осуществления, логический коммутатор включает в себя, по меньшей мере, два физических коммутатора, причем, по меньшей мере, два физических коммутатора включают в себя первичный коммутатор и расширенный коммутатор, и контроллер подключен, по меньшей мере, к первичному коммутатору. Как показано на фиг. 7, способ в этом варианте осуществления включает в себя следующие этапы:
[0159] S310. Первичный коммутатор принимает информацию отображения, отправленную контроллером, причем информация отображения включает в себя отношение отображения между физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков логического коммутатора.
[0160] S320. Первичный коммутатор принимает элементы потока, отправленные контроллером, причем элементы потока, принятые первичным коммутатором, являются информацией содержания каждой таблицы потоков в наборе таблиц потоков, выделенном контроллером первичному коммутатору, или выделенном контроллером первичному коммутатору и расширенному коммутатору.
[0161] В этом варианте осуществления, когда контроллер выделяет каждую таблицу потоков во множественных таблицах потоков разным физическим коммутаторам для совместного использования, первая таблица потоков table0 во множественных таблицах потоков логического коммутатора обязательно выделяется первичному коммутатору. Если расширенный коммутатор подключен только к первичному коммутатору, после приема информации отображения, первичный коммутатор может дополнительно отправлять информацию отображения на расширенный коммутатор, подключенный к первичному коммутатору. Аналогично, после приема элементов потока, отправленных контроллером, первичный коммутатор может дополнительно отправлять, на расширенный коммутатор, подключенный к первичному коммутатору, элементы потока, выделенные контроллером. По аналогии с вышеописанным вариантом осуществления, расширенный коммутатор в этом варианте осуществления также может включать в себя первый расширенный коммутатор и второй расширенный коммутатор. Первичный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору, и второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору. Метод распределения информации отображения и элементов потока такой же, как в вышеприведенном варианте осуществления, и связан с отношением соединения между каждым физическим коммутатором и контроллером. Отношение соединения между каждым физическим коммутатором и контроллером в этом варианте осуществления представлено на фиг. 2 и фиг. 3, и поэтому подробно здесь не описано.
[0162] S330. Первичный коммутатор обрабатывает принятый пакет данных согласно элементам потока или согласно элементам потока и информации отображения.
[0163] В этом варианте осуществления, когда первичный коммутатор получает информацию отображения, отправленную контроллером, первичному коммутатору известна таблица потоков, выделенная первичному коммутатору, и также известны таблицы потоков, выделенные другим физическим коммутаторам, и он помещает принятые элементы потока в соответствующую таблицу потоков. Содержание элементов потока аналогично описанному в вышеприведенном варианте осуществления. Дополнительно, первичный коммутатор обрабатывает пакет данных согласно принятым элементам потока или согласно элементам потока и информации отображения. Поскольку первичный коммутатор включает в себя table0 во множественных таблицах потоков логического коммутатора, обработка пакета данных начинается с table0. Следует отметить, что, в этом варианте осуществления, пакет данных, принятый первичным коммутатором, в общем случае, может быть отправлен внешним узлом (Host), например, компьютером, который может осуществлять взаимный доступ с первичным коммутатором.
[0164] Способ коммутационной обработки, предусмотренный этим вариантом осуществления, выполняется контроллером и логическим коммутатором. Физические коммутаторы, образующие логический коммутатор, включают в себя, по меньшей мере, первичный коммутатор и расширенный коммутатор. Первичный коммутатор обрабатывает принятый пакет данных с использованием информации отображения и элементов потока, отправленных контроллером, причем элементы потока, принятые первичным коммутатором, могут быть элементами потока, выделенными контроллером первичному коммутатору, или могут быть элементами потока, выделенными контроллером первичному коммутатору и расширенному коммутатору. Согласно этому методу распределения, первичный коммутатор может дополнительно отправлять информацию отображения и элементы потока, соответствующие расширенному коммутатору на расширенный коммутатор. Поэтому, в конце концов, каждый физический коммутатор получает информацию отображения и элементы потока, соответствующие физическому коммутатору, отправленные контроллером, и дополнительно, расширенный коммутатор также может обрабатывать принятый пакет данных согласно полученным элементам потока и информации отображения или согласно элементам потока. В логическом коммутаторе для выполнения способа коммутационной обработки, предусмотренного этим вариантом осуществления, новые физические коммутаторы могут быть уложены в стопку на основе физической структуры логического коммутатора. Это помогает поддерживать устойчивость существующей топологии сети, повышает возможности обработки логического коммутатора, и снижает влияние на работу сети и затраты на повышение пропускной способности.
Вариант осуществления 4
[0165] На фиг. 8 показана блок-схема операций способа коммутационной обработки согласно варианту осуществления 4 настоящего изобретения. Способ коммутационной обработки, предусмотренный этим вариантом осуществления, выполняется контроллером и логическим коммутатором. По аналогии с вышеописанным вариантом осуществления, логический коммутатор включает в себя, по меньшей мере, первичный коммутатор и расширенный коммутатор. Как показано на фиг. 8, способ в этом варианте осуществления включает в себя следующие этапы:
[0166] S410. Первичный коммутатор принимает информацию отображения, отправленную контроллером, причем информация отображения включает в себя отношение отображения между физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков логического коммутатора.
[0167] S420. Первичный коммутатор принимает элементы потока, отправленные контроллером, причем элементы потока, принятые первичным коммутатором, являются информацией содержания каждой таблицы потоков в наборе таблиц потоков, выделенном контроллером первичному коммутатору, или выделенном контроллером первичному коммутатору и расширенному коммутатору.
[0168] В частности, варианты реализации этапов S410 - S420, соответствуют этапам S310 - S320 согласно варианту осуществления 3.
[0169] S430. При приеме пакета данных, первичный коммутатор обрабатывает пакет данных с использованием table0. Как описано в вышеприведенном варианте осуществления, поскольку первичный коммутатор включает в себя первую таблицу потоков table0 во множественных таблицах потоков логического коммутатора, обработка пакета данных первичным коммутатором начинается с table0.
[0170] S440. Первичный коммутатор определяет, согласно информации отображения, располагается ли следующая таблица потоков в первичном коммутаторе, и, если да, осуществляет этап S450, в противном случае, осуществляет этап S460.
[0171] S450. Первичный коммутатор направляет пакет данных на следующую таблицу потоков для продолжения обработки.
[0172] S460. Первичный коммутатор инициирует защиту среды конвейера для генерации пакета инкапсуляции, и отправляет пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0173] В этом варианте осуществления, при приеме и обработке пакета данных, первичный коммутатор определяет, со ссылкой на принятую информацию отображения, положение следующей таблицы потоков для обработки пакета данных. С одной стороны, когда следующая таблица потоков располагается в первичном коммутаторе, обработка по-прежнему будет осуществляться с использованием таблицы потоков первичного коммутатора, то есть первичный коммутатор может непосредственно направлять пакет данных на следующую таблицу потоков первичного коммутатора для продолжения обработки. С другой стороны, когда первичный коммутатор обнаруживает, что расширенный коммутатор должен продолжать обработку пакета данных, то есть первичный коммутатор определяет, что следующая таблица потоков располагается в расширенном коммутаторе, первичный коммутатор должен осуществлять защиту среды конвейера на множественных таблицах потоков для генерации пакета инкапсуляции, и отправляет сгенерированный пакет инкапсуляции на физический коммутатор, соответствующий следующей таблице потоков. Способ, предусмотренный этим вариантом осуществления, состоит в защите среды конвейера, управляемой первичным коммутатором, и решается, инициируется и выполняется первичным коммутатором. При доставке элементов потока, контроллеру не нужно рассматривать, располагается ли каждая таблица потоков в одном и том же физическом коммутаторе.
[0174] В необязательном порядке, в другом возможном варианте реализации этого варианта осуществления, защита среды конвейера может управляться контроллером и решаться контроллером, и первичный коммутатор должен лишь непосредственно выполнять соответствующую инструкцию. На основе вышеупомянутого варианта осуществления, показанного на фиг. 7, этап S420 заменяется следующим образом: первичный коммутатор принимает элемент потока, который включает в себя инструкцию перехода таблицы потоков или инструкцию ретрансляции коммутатора и отправлен контроллером, причем инструкция перехода таблицы потоков или инструкция ретрансляции коммутатора в элементе потока определяется контроллером согласно тому, располагается ли следующая таблица потоков в элементе потока в первичном коммутаторе, и, если да, элемент потока включает в себя инструкцию перехода таблицы потоков, в противном случае, элемент потока включает в себя инструкцию ретрансляции коммутатора. Соответственно, этап S430 заменяется следующим образом: первичный коммутатор принимает пакет данных, и когда элемент потока, согласующийся с пакетом данных, включает в себя инструкцию перехода таблицы потоков, направляет пакет данных на следующую таблицу потоков для продолжения обработки; или первичный коммутатор принимает пакет данных, и когда элемент потока, согласующийся с пакетом данных, включает в себя инструкцию ретрансляции коммутатора, инициирует защиту среды конвейера для генерации пакета инкапсуляции, и отправляет пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков. В этом варианте осуществления, метод отправки элемента потока контроллером и метод определения положения следующей таблицы потоков и последующей обработки, когда контроллер добавляет, например, инструкцию типа "Goto_table" в элемент потока, аналогичны методам, описанным в вышеприведенном варианте осуществления, и поэтому дополнительно здесь не описаны.
[0175] Следует отметить, что, поскольку способ, предусмотренный этим вариантом осуществления, выполняется логическим коммутатором, включающим в себя первичный коммутатор и расширенный коммутатор, когда первичный коммутатор ретранслирует обработанный пакет данных на расширенный коммутатор, для конфиденциальности пакета данных, первичный коммутатор должен инициировать защиту среды конвейера до ретрансляции пакета данных на расширенный коммутатор. В этом состоит отличие от метода выполнения фиксированным физическим коммутатором в уровне техники. В конкретной реализации, первичный коммутатор инкапсулирует пакет данных и соответствующую информацию для обработки пакета данных в пакет инкапсуляции, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, ID следующей таблицы потоков, и дополнительно, в необязательном порядке, включает в себя любое количество из следующей информации: входного порта, набора действий и метаданных.
[0176] Дополнительно, после осуществления защиты среды конвейера, первичный коммутатор отправляет пакет инкапсуляции, сгенерированный путем осуществления защита среды конвейера, на расширенный коммутатор, соответствующий следующей таблице потоков. Соответственно, расширенный коммутатор должен осуществлять восстановление среды конвейера для получения пакета данных. Согласно способу, предусмотренному этим вариантом осуществления, восстановление среды конвейера управляется расширенным коммутатором. В частности, расширенный коммутатор разбирает принятый пакет инкапсуляции и получает разобранную информацию, причем разобранная информация включает в себя пакет данных и соответствующую информацию для обработки пакета данных. Соответствующая информация для обработки пакета данных также включает в себя ID следующей таблицы потоков, и дополнительно, в необязательном порядке, включает в себя любое количество из следующей информации: входного порта, набора действий и метаданных, благодаря чему, расширенный коммутатор осуществляет восстановление среды конвейера согласно разобранной информации и направляет пакет данных, полученный путем разбора, на следующую таблицу потоков для продолжения обработки. Способ направления пакета данных на следующую таблицу потоков такой же, как в вышеприведенном варианте осуществления, и поэтому дополнительно здесь не описан. Аналогично, восстановление среды конвейера может дополнительно осуществляться под управлением контроллера. Конкретный вариант реализации такой же, как в вышеприведенном варианте осуществления. Поскольку этот вариант осуществления является вариантом реализации, в котором первичный коммутатор является телом выполнения, и обработка первичным коммутатором не предусматривает восстановление среды конвейера, подробности здесь не описаны.
[0177] Способ коммутационной обработки, предусмотренный этим вариантом осуществления, выполняется контроллером и логическим коммутатором, включающим в себя первичный коммутатор и расширенный коммутатор. Когда первичный коммутатор ретранслирует пакет данных на расширенный коммутатор, неразрывная конвейерная обработка пакета данных осуществляется между физическими коммутаторами одного и того же логического коммутатора посредством защиты среды конвейера первичным коммутатором и восстановления среды конвейера расширенным коммутатором. Способ коммутационной обработки, предусмотренный этим вариантом осуществления, имеет такой же полезный результат, как в вышеприведенном варианте осуществления, и поэтому дополнительно здесь не описан.
Вариант осуществления 5
[0178] На фиг. 9 показана блок-схема операций способа коммутационной обработки согласно варианту осуществления 5 настоящего изобретения. Способ коммутационной обработки, предусмотренный этим вариантом осуществления, выполняется контроллером и логическим коммутатором. Аналогично, логический коммутатор включает в себя множественные физические коммутаторы, множественные физические коммутаторы включают в себя первичный коммутатор и расширенный коммутатор, и расширенный коммутатор включает в себя первый расширенный коммутатор и второй расширенный коммутатор, причем контроллер подключен, по меньшей мере, к первичному коммутатору, первичный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору, и второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору. Как показано на фиг. 9, способ в этом варианте осуществления включает в себя следующие этапы:
[0179] S510. Текущий расширенный коммутатор принимает информацию отображения, отправленную контроллером и/или первичным коммутатором и/или другим расширенным коммутатором, причем информация отображения включает в себя отношение отображения между физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков логического коммутатора.
[0180] S520. Текущий расширенный коммутатор принимает элементы потока, соответствующие текущему расширенному коммутатору и отправленные контроллером и/или первичным коммутатором и/или другим расширенным коммутатором, причем элементы потока, принятые текущим расширенным коммутатором, являются информацией содержания каждой таблицы потоков в наборе таблиц потоков, выделенном контроллером текущему расширенному коммутатору.
[0181] Этот вариант осуществления может выполняться первым расширенным коммутатором или вторым расширенным коммутатором. Метод, согласно которому расширенный коммутатор принимает информацию отображения и элементы потока, отправленные контроллером, аналогичен описанному в вышеприведенном варианте осуществления, то есть информация отображения и/или элементы потока, принятые текущим расширенным коммутатором, могут непосредственно отправляться контроллером или могут ретранслироваться первичным коммутатором или могут ретранслироваться другим расширенным коммутатором, или можно использовать комбинацию нескольких вышеупомянутых методов. Следует отметить, что, когда контроллер выделяет каждую таблицу потоков во множественных таблицах потоков разным физическим коммутаторам для совместного использования, первая таблица потоков table0 во множественных таблицах потоков логического коммутатора обязательно выделяется первичному коммутатору. Поэтому в информации отображения, принятой расширенным коммутатором, table0 во множественных таблицах потоков логического коммутатора соответствует первичному коммутатору. В этом варианте осуществления, метод распределения информации отображения и элементов потока такой же, как в вышеприведенном варианте осуществления, и связан с отношением соединения между каждым физическим коммутатором и контроллером. Отношение соединения между каждым физическим коммутатором и контроллером в этом варианте осуществления представлено на фиг. 3, и поэтому подробно здесь не описано.
[0182] S530. Текущий расширенный коммутатор обрабатывает принятый первый пакет инкапсуляции согласно элементам потока или согласно элементам потока и информации отображения, причем первый пакет инкапсуляции генерируется физическим коммутатором, в котором располагается предыдущая таблица потоков, путем инкапсулирования пакета данных, принятого физическим коммутатором, и соответствующей информации для обработки пакета данных.
[0183] В этом варианте осуществления, после получения информации отображения и элементов потока, отправленных контроллером, текущий расширенный коммутатор, обрабатывает принятый первый пакет инкапсуляции. Поскольку первый пакет инкапсуляции, принятый текущим расширенным коммутатором, генерируется после того, как физический коммутатор, в котором располагается предыдущая таблица потоков, осуществляет защиту среды конвейера, метод обработки после того, как текущий расширенный коммутатор принимает первый пакет инкапсуляции, в общем случае, включает в себя непосредственную ретрансляцию пакета на физический коммутатор, соответствующий ID следующей таблицы потоков в пакете инкапсуляции, или осуществление восстановления среды конвейера на первом пакете инкапсуляции для получения пакета данных. В этом состоит отличие от метода обработки пакета данных первичным коммутатором согласно вариантам осуществления, показанным на фиг. 7 и фиг. 8. Конкретный вариант реализации этого варианта осуществления показан на фиг. 10. На фиг. 10 показана блок-схема операций еще одного способа коммутационной обработки согласно варианту осуществления настоящего изобретения. На основе варианта осуществления, показанного на фиг. 9, после этапа S520, способ включает в себя:
[0184] S530. Текущий расширенный коммутатор принимает первый пакет инкапсуляции.
[0185] S540. Текущий расширенный коммутатор определяет, располагается ли ID следующей таблицы потоков в первом пакете инкапсуляции в текущем расширенном коммутаторе, и если нет, осуществляет этап S550, в противном случае, осуществляет этап S560.
[0186] S550. Текущий расширенный коммутатор ретранслирует, согласно информации отображения, первый пакет инкапсуляции на физический коммутатор, соответствующий ID следующей таблицы потоков.
[0187] S560. Текущий расширенный коммутатор осуществляет восстановление среды конвейера на первом пакете инкапсуляции для получения пакета данных.
[0188] В этом варианте осуществления, при приеме и обработке первого пакета инкапсуляции, текущий расширенный коммутатор определяет, согласно ID следующей таблицы потоков в первом пакете инкапсуляции, метод обработки первого пакета инкапсуляции. Когда текущий расширенный коммутатор осуществляет восстановление среды конвейера, восстановление среды конвейера может управляться текущим расширенным коммутатором, то есть этап S560 включает в себя: текущий расширенный коммутатор разбирает принятый первый пакет инкапсуляции для получения разобранной информации, причем разобранная информация включает в себя пакет данных и соответствующую информацию для обработки пакета данных, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, ID следующей таблицы потоков, и дополнительно, в необязательном порядке, включает в себя любое количество из следующей информации: входного порта, набора действий и метаданных. Дополнительно, текущий расширенный коммутатор осуществляет восстановление среды конвейера согласно разобранной информации и направляет пакет данных на следующую таблицу потоков для продолжения обработки. Способ направления пакета данных на следующую таблицу потоков такой же, как в вышеприведенном варианте осуществления, и дополнительно здесь не описан.
[0189] В необязательном порядке, в другом возможном варианте реализации этого варианта осуществления, восстановление среды конвейера также может управляться контроллером и решаться контроллером, и коммутатор должен лишь непосредственно выполнять соответствующую инструкцию. В конкретной реализации, элементы потока, принятые текущим расширенным коммутатором, включают в себя элемент потока, используемый для осуществления восстановления конвейера и отправленный контроллером. Соответственно, на основе вышеупомянутого способа, показанного на фиг. 10, этап S560 включает в себя: S561. Текущий расширенный коммутатор добавляет элемент потока, используемый для осуществления восстановления конвейера, в первую таблицу потоков table0' текущего расширенного коммутатора.
[0190] S562. Текущий расширенный коммутатор осуществляет восстановление среды конвейера на первом пакете инкапсуляции с использованием элемента потока, добавленного в table0'.
[0191] В этом варианте осуществления, первый пакет инкапсуляции включает в себя ID следующей таблицы потоков, и элемент потока, используемый для осуществления восстановления конвейера, включает в себя часть согласования и исполнимую инструкцию, причем исполнимая инструкция включает в себя инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков; и этап S562 включает в себя: текущий расширенный коммутатор согласует первый пакет инкапсуляции с использованием элемента потока в table0'; и когда элемент потока в table0' успешно согласован, выполняет инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков в согласованном элементе потока последовательно согласно результату согласования.
[0192] Дополнительно, после осуществления восстановления среды конвейера, текущий расширенный коммутатор может продолжать обработку полученного пакета данных. Метод обработки пакета данных аналогичен описанному в вышеприведенном варианте осуществления. Аналогично, согласно информации отображения, может определяться положение следующей таблицы потоков для обработки пакета данных, и определяется метод обработки. В частности, на основе вышеупомянутого варианта осуществления, показанного на фиг. 10, способ дополнительно включает в себя: когда текущий расширенный коммутатор получает пакет данных, текущий расширенный коммутатор обрабатывает пакет данных с использованием текущей таблицы потоков и определяет положение следующей таблицы потоков. С одной стороны, когда следующая таблица потоков располагается в текущем расширенном коммутаторе, обработка продолжает осуществляться с использованием таблицы потоков текущего расширенного коммутатора, то есть текущий расширенный коммутатор может непосредственно направлять пакет данных на следующую таблицу потоков для продолжения обработки. С другой стороны, когда текущий расширенный коммутатор обнаруживает, что другой расширенный коммутатор должен продолжать обработку пакета данных, текущий расширенный коммутатор должен осуществлять защиту среды конвейера на множественных таблицах потоков для генерации второго пакета инкапсуляции, и отправлять сгенерированный второй пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков. Способ, предусмотренный этим вариантом осуществления, состоит в защите среды конвейера, управляемой текущим расширенным коммутатором, и решается, инициируется и выполняется текущим расширенным коммутатором. При доставке элементов потока, контроллеру не нужно рассматривать, располагается ли каждая таблица потоков в одном и том же физическом коммутаторе.
[0193] В необязательном порядке, по аналогии с вышеописанным вариантом осуществления, в другом возможном варианте реализации этого варианта осуществления, защита среды конвейера может управляться контроллером и решаться контроллером, и текущий расширенный коммутатор должен лишь непосредственно выполнять соответствующую инструкцию. На основе вышеупомянутого способа, показанного на фиг. 10, способ дополнительно включает в себя: текущий расширенный коммутатор принимает элемент потока, который включает в себя инструкцию перехода таблицы потоков или инструкцию ретрансляции коммутатора и отправлен контроллером, причем инструкция перехода таблицы потоков или инструкция ретрансляции коммутатора в элементе потока определяется контроллером согласно тому, располагается ли следующая таблица потоков в элементе потока в текущем расширенном коммутаторе, и, если да, элемент потока включает в себя инструкцию перехода таблицы потоков, в противном случае, элемент потока включает в себя инструкцию ретрансляции коммутатора. Соответственно, после этапа S560, способ дополнительно включает в себя: текущий расширенный коммутатор получает пакет данных в первом пакете инкапсуляции, и когда элемент потока, согласующийся с пакетом данных, включает в себя инструкцию перехода таблицы потоков, направляет пакет данных на следующую таблицу потоков для продолжения обработки; или текущий расширенный коммутатор получает пакет данных в первом пакете инкапсуляции, и когда элемент потока, согласующийся с пакетом данных, включает в себя инструкцию ретрансляции коммутатора, инициирует защиту среды конвейера для генерации второго пакета инкапсуляции, и отправляет второй пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков. В этом варианте осуществления, метод отправки элемента потока контроллером и метод определения положения следующей таблицы потоков и последующей обработки, когда контроллер добавляет, например, инструкцию типа "Goto_table" в элемент потока, аналогичны методам, описанным в вышеприведенном варианте осуществления, и поэтому дополнительно здесь не описаны.
[0194] Следует отметить, что, поскольку способ, предусмотренный этим вариантом осуществления, выполняется контроллером и логическим коммутатором, включающим в себя текущий расширенный коммутатор, когда текущий расширенный коммутатор принимает пакет инкапсуляции или ретранслирует полученный пакет данных на другой расширенный коммутатор, текущий расширенный коммутатор должен инициировать защиту и восстановление среды конвейера для осуществления неразрывной конвейерной обработки пакета данных между физическими коммутаторами одного и того же логического коммутатора. В этом состоит отличие от метода выполнения только фиксированным физическим коммутатором в уровне техники. Способ коммутационной обработки, предусмотренный этим вариантом осуществления, имеет такой же полезный результат, как в вышеприведенном варианте осуществления, и поэтому дополнительно здесь не описан.
Вариант осуществления 6
[0195] На фиг. 11A, фиг. 11B и фиг. 11C показана блок-схема операций способа коммутационной обработки согласно варианту осуществления 6 настоящего изобретения. Способ коммутационной обработки, предусмотренный этим вариантом осуществления, выполняется контроллером и логическим коммутатором. По аналогии с вышеописанным вариантом осуществления, логический коммутатор включает в себя, по меньшей мере, множественные физические коммутаторы, и множественные физические коммутаторы включают в себя первичный коммутатор и расширенный коммутатор. Может существовать несколько таких расширенных коммутаторов, например, включающих в себя первый расширенный коммутатор и второй расширенный коммутатор. Контроллер подключен, по меньшей мере, к первичному коммутатору, первичный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору, и второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору. Как показано на фиг. 11A, фиг. 11B и фиг. 11C, способ в этом варианте осуществления включает в себя следующие этапы:
[0196] S601. Контроллер выделяет каждую таблицу потоков во множественных таблицах потоков логического коммутатора каждому физическому коммутатору, причем множественные таблицы потоков являются конвейером логического коммутатора.
[0197] S602. Контроллер отправляет информацию отображения и элементы потока, причем информация отображения включает в себя отношение отображения между каждым физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков, и элементы потока являются информацией содержания каждой таблицы потоков в наборе таблиц потоков, выделенном контроллером каждому физическому коммутатору.
[0198] В этом варианте осуществления, элементы потока, принятые первичным коммутатором, могут включать в себя только элементы потока, соответствующие первичному коммутатору, и могут дополнительно включать в себя элементы потока, соответствующие каждому физическому коммутатору. В этом случае, способ, предусмотренный этим вариантом осуществления, дополнительно включает в себя:
[0199] S603. Первичный коммутатор ретранслирует, на расширенный коммутатор, подключенный к первичному коммутатору, информацию отображения и элементы потока, выделенные контроллером. Следует отметить, что, этот этап является необязательным и относится к методу соединения между каждым физическим коммутатором и контроллером.
[0200] В этом варианте осуществления, метод приема информации отображения и элементов потока текущим расширенным коммутатором соответствует вышеупомянутому методу отправки. Информация отображения и элементы потока, принятые текущим расширенным коммутатором, могут непосредственно отправляться контроллером или могут ретранслироваться первичным коммутатором или могут ретранслироваться другим расширенным коммутатором, или можно использовать комбинацию нескольких вышеупомянутых методов.
[0201] Следует отметить, что, когда контроллер выделяет каждую таблицу потоков во множественных таблицах потоков разным физическим коммутаторам для совместного использования, первая таблица потоков table0 во множественных таблицах потоков логического коммутатора обязательно выделяется первичному коммутатору. В этом варианте осуществления, метод распределения информации отображения и элементов потока такой же, как в вышеприведенном варианте осуществления, и связан с отношением соединения между каждым физическим коммутатором и контроллером. Отношение соединения между каждым физическим коммутатором и контроллером в этом варианте осуществления представлено на фиг. 3, и поэтому подробно здесь не описано. Следует дополнительно отметить, что отправка информации отображения и элементов потока контроллером и прием информации отображения и элементов потока каждым физическим коммутатором, в общем случае, осуществляются по отдельности. На этапе варианта осуществления, показанного на фиг. 11A, фиг. 11B и фиг. 11C, проиллюстрированы только тела выполнения, которые отправляют и принимают информацию отображения и элементы потока. Это не означает, что информация отображения и элементы потока отправляются или принимаются одновременно.
[0202] В этом варианте осуществления, метод обработки первичного коммутатора после приема пакета данных может, в частности, представлять собой:
[0203] S604. Первичный коммутатор принимает пакет данных, причем пакет данных, принятый первичным коммутатором, в общем случае, может быть отправлен хостом, например, компьютером, который может осуществлять взаимный доступ с первичным коммутатором.
[0204] S605. Первичный коммутатор обрабатывает пакет данных с использованием table0.
[0205] S606. Первичный коммутатор определяет, согласно информации отображения, располагается ли следующая таблица потоков в первичном коммутаторе, и, если да, осуществляет этап S607, в противном случае, осуществляет этап S608.
[0206] S607. Первичный коммутатор направляет пакет данных на следующую таблицу потоков для продолжения обработки.
[0207] S608. Первичный коммутатор инициирует защиту среды конвейера для генерации первого пакета инкапсуляции, и отправляет первый пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0208] Метод, описанный в виде этапов S605 - S608, состоит в защите среды конвейера, управляемой первичным коммутатором.
[0209] В другом возможном варианте реализации этого варианта осуществления, защита среды конвейера управляется контроллером. В частности, элемент потока, принятый первичным коммутатором, включает в себя инструкцию перехода таблицы потоков или инструкцию ретрансляции коммутатора. Соответственно, вышеупомянутые этапы S605 - S608 заменяются следующим образом:
[0210] S609. Когда элемент потока, подлежащий отправке на первичный коммутатор, включает в себя инструкцию перехода таблицы потоков, контроллер определяет, располагается ли следующая таблица потоков в первичном коммутаторе, и, если да, осуществляет этап S610, в противном случае, осуществляет этап S612.
[0211] S610. Контроллер отправляет элемент потока, включающий в себя инструкцию перехода таблицы потоков, на первичный коммутатор.
[0212] S611. Соответственно, первичный коммутатор направляет пакет данных на следующую таблицу потоков для продолжения обработки.
[0213] S612. Контроллер заменяет инструкцию перехода таблицы потоков в элементе потока, подлежащем отправке, инструкцией ретрансляции коммутатора.
[0214] S613. Отправку элемента потока, включающего в себя инструкцию ретрансляции коммутатора, на первичный коммутатор.
[0215] S614. Соответственно, первичный коммутатор инициирует защиту среды конвейера для генерации первого пакета инкапсуляции.
[0216] S615. Первичный коммутатор отправляет первый пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0217] В этом варианте осуществления, после того, как первичный коммутатор отправляет первый пакет инкапсуляции, сгенерированный после осуществления защиты среды конвейера, на текущий расширенный коммутатор, текущий расширенный коммутатор обрабатывает первый пакет инкапсуляции. В частности, обработка включает в себя:
[0218] S616. Текущий расширенный коммутатор определяет, располагается ли ID следующей таблицы потоков в первом пакете инкапсуляции в текущем расширенном коммутаторе, и если нет, осуществляет этап S617, в противном случае, осуществляет этап S618.
[0219] S617. Текущий расширенный коммутатор ретранслирует, согласно информации отображения, первый пакет инкапсуляции на другой расширенный коммутатор, соответствующий ID следующей таблицы потоков.
[0220] S618. Текущий расширенный коммутатор осуществляет восстановление среды конвейера на первом пакете инкапсуляции для получения пакета данных.
[0221] В этом варианте осуществления, при приеме и обработке первого пакета инкапсуляции, текущий расширенный коммутатор определяет, согласно ID следующей таблицы потоков в первом пакете инкапсуляции, метод обработки первого пакета инкапсуляции. Когда текущий расширенный коммутатор осуществляет восстановление среды конвейера, восстановление среды конвейера может управляться текущим расширенным коммутатором, то есть этап S618 заменяется следующим образом: текущий расширенный коммутатор разбирает принятый первый пакет инкапсуляции для получения разобранной информации, причем разобранная информация включает в себя пакет данных и соответствующую информацию для обработки пакета данных, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, ID следующей таблицы потоков, и дополнительно, в необязательном порядке, включает в себя любое количество из следующей информации: входного порта, набора действий и метаданных.
[0222] В необязательном порядке, в другом возможном варианте реализации этого варианта осуществления, восстановление среды конвейера также может управляться контроллером. В конкретной реализации, способ дополнительно включает в себя: S619. Текущий расширенный коммутатор принимает элемент потока, используемый для осуществления восстановления конвейера и отправленный контроллером. S620. Текущий расширенный коммутатор добавляет элемент потока, используемый для осуществления восстановления конвейера, в первую таблицу потоков table0' текущего расширенного коммутатора. S621. Текущий расширенный коммутатор осуществляет восстановление среды конвейера на первом пакете инкапсуляции с использованием элемента потока, добавленного в table0'.
[0223] В этом варианте осуществления, первый пакет инкапсуляции включает в себя ID следующей таблицы потоков, и элемент потока, используемый для осуществления восстановления конвейера, включает в себя часть согласования и исполнимую инструкцию, причем исполнимая инструкция включает в себя инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков; и этап S621 включает в себя: текущий расширенный коммутатор согласует первый пакет инкапсуляции с использованием элемента потока в table0'; и когда элемент потока в table0' успешно согласован, выполняет инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков в согласованном элементе потока последовательно согласно результату согласования.
[0224] Дополнительно, после осуществления восстановления среды конвейера, текущий расширенный коммутатор может продолжать обработку полученного пакета данных. Метод обработки пакета данных аналогичен описанному в вышеприведенном варианте осуществления. Аналогично, согласно информации отображения, может определяться положение следующей таблицы потоков для обработки пакета данных, и определяется метод обработки. В частности, способ, предусмотренный этим вариантом осуществления, дополнительно включает в себя:
[0225] S622. Текущий расширенный коммутатор получает пакет данных и обрабатывает пакет данных с использованием текущей таблицы потоков.
[0226] S623. Текущий расширенный коммутатор определяет, согласно информации отображения, располагается ли следующая таблица потоков для обработки пакета данных в текущем расширенном коммутаторе, и, если да, осуществляет этап S624, в противном случае, осуществляет этап S625.
[0227] S624. Текущий расширенный коммутатор направляет пакет данных на следующую таблицу потоков для продолжения обработки.
[0228] S625. Текущий расширенный коммутатор инициирует защиту среды конвейера для генерации второго пакета инкапсуляции.
[0229] Метод, описанный в виде этапов S623 - S625, является методом защиты среды конвейера, управляемой текущим расширенным коммутатором.
[0230] В необязательном порядке, по аналогии с вышеописанным вариантом осуществления, в другом возможном варианте реализации этого варианта осуществления, защита среды конвейера может управляться контроллером, и элемент потока, принятый текущим расширенным коммутатором, включает в себя инструкцию перехода таблицы потоков или инструкцию ретрансляции коммутатора. В конкретной реализации, вышеупомянутые этапы S623 - S625 заменяются следующим образом:
[0231] S626. Когда элемент потока, подлежащий отправке, включает в себя инструкцию перехода таблицы потоков, контроллер определяет, располагается ли следующая таблица потоков в текущем физическом коммутаторе, и, если да, осуществляет этап S627, в противном случае, осуществляет этап S629.
[0232] S627. Контроллер отправляет элемент потока, включающий в себя инструкцию перехода таблицы потоков, на текущий расширенный коммутатор.
[0233] S628. Соответственно, текущий расширенный коммутатор направляет пакет данных на следующую таблицу потоков для продолжения обработки.
[0234] S629. Контроллер заменяет инструкцию перехода таблицы потоков в элементе потока, подлежащем отправке, инструкцией ретрансляции коммутатора.
[0235] S630. Контроллер отправляет элемент потока, включающий в себя инструкцию ретрансляции коммутатора, на текущий расширенный коммутатор.
[0236] Соответственно, способ, предусмотренный этим вариантом осуществления, дополнительно включает в себя: S631. Текущий расширенный коммутатор инициирует защиту среды конвейера для генерации второго пакета инкапсуляции.
[0237] S632. Текущий расширенный коммутатор отправляет второй пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков для продолжения обработки.
[0238] Следует отметить, что, поскольку способ, предусмотренный этим вариантом осуществления, выполняется контроллером и логическим коммутатором, включающим в себя первичный коммутатор и расширенный коммутатор, когда пакет данных обрабатывается и направляется на следующую таблицу потоков, для конфиденциальности пакета данных, первичный коммутатор или текущий расширенный коммутатор должен инициировать защиту среды конвейера до ретрансляции пакета данных на другой физический коммутатор. В этом состоит отличие от метода выполнения фиксированным физическим коммутатором в уровне техники. После приема пакета инкапсуляции, который используется для защиты среды конвейера, текущий расширенный коммутатор должен инициировать восстановление среды конвейера для получения пакета данных. Аналогично, текущий расширенный коммутатор также должен инициировать защиту среды конвейера при ретрансляции обработанного пакета данных на другой расширенный коммутатор. Способ коммутационной обработки, предусмотренный этим вариантом осуществления, включает в себя способ, описанный в любом из вышеприведенных вариантов осуществления. Конкретный вариант реализации и его полезный результат такие же, как в вышеприведенных вариантах осуществления, и поэтому дополнительно здесь не описаны.
Вариант осуществления 7
[0239] На фиг. 12 показана структурная схема устройства коммутационной обработки согласно варианту осуществления 7 настоящего изобретения. Устройство коммутационной обработки применяется к системе коммутационной обработки, показанной на фиг. 2 или фиг. 3, и располагается в контроллере, подключенном к логическому коммутатору. Как показано на фиг. 2 или фиг. 3, логический коммутатор включает в себя, по меньшей мере, два физических коммутатора. Устройство, расположенное в контроллере, включает в себя модуль 11 выделения и модуль 12 отправки.
[0240] Модуль 11 выделения выполнен с возможностью выделения каждой таблицы потоков во множественных таблицах потоков логического коммутатора каждому физическому коммутатору, причем множественные таблицы потоков являются конвейером логического коммутатора.
[0241] Модуль 12 отправки выполнен с возможностью отправки информации отображения, благодаря чему, каждый физический коммутатор получает информацию отображения, причем информация отображения включает в себя отношение отображения между физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков.
[0242] Модуль 12 отправки дополнительно выполнен с возможностью отправки элементов потока на логический коммутатор, благодаря чему, каждый физический коммутатор получает элементы потока, соответствующие каждому физическому коммутатору, и обрабатывает принятый пакет данных согласно элементам потока или согласно элементам потока и информации отображения, причем элементы потока являются информацией содержания каждой таблицы потоков в наборе таблиц потоков, выделенном контроллером каждому физическому коммутатору.
[0243] В этом варианте осуществления, когда физические коммутаторы логического коммутатора, подключенного к контроллеру, включают в себя первичный коммутатор и первый расширенный коммутатор, отношение соединения между контроллером и каждым физическим коммутатором в логическом коммутаторе показано на фиг. 2. В этом варианте осуществления, когда физические коммутаторы логического коммутатора, подключенного к контроллеру, дополнительно включают в себя второй расширенный коммутатор, отношение соединения между контроллером и каждым физическим коммутатором в логическом коммутаторе показано на фиг. 3. Методы отправки информации отображения и элементов потока контроллером такие же, как в вышеприведенном варианте осуществления, в том числе, множественные методы отправки и комбинацию различных используемых методов отправки.
[0244] Следует отметить, что, в системе коммутационной обработки, показанной на фиг. 2 и фиг. 3, первичный коммутатор является коммутатором, определенным в сети и подключенным к контроллеру. Кроме того, таблица потоков, выделенная модулем 11 выделения первичному коммутатору, включает в себя, по меньшей мере, первую таблицу потоков (table0) во множественных таблицах потоков логического коммутатора, благодаря чему, когда первичный коммутатор принимает пакет данных, первичный коммутатор сначала обрабатывает пакет данных с использованием table0. Другие физические коммутаторы принимают и ретранслируют информацию отображения и элементы потока на основании отношений соединения с первичным коммутатором и отношений соединения между физическими коммутаторами верхнего уровня и нижнего уровня.
[0245] Устройство коммутационной обработки, предусмотренное этим вариантом осуществления настоящего изобретения, используется для выполнения способа коммутационной обработки, предусмотренного вариантом осуществления, показанным на фиг. 1 настоящего изобретения, и имеет соответствующие функциональные модули. Принципы реализации и их технические результаты аналогичны, и дополнительно здесь не описаны.
[0246] В необязательном порядке, тот факт, что модуль 12 отправки дополнительно выполнен с возможностью отправки элементов потока на логический коммутатор, включает в себя: отправку элементов потока на логический коммутатор, благодаря чему, когда текущий физический коммутатор принимает пакет данных, текущий физический коммутатор обрабатывает пакет данных с использованием текущей таблицы потоков, определяет положение следующей таблицы потоков согласно информации отображения, отправленной модулем 12 отправки, и когда определенная следующая таблица потоков располагается в текущем физическом коммутаторе, направляет пакет данных на следующую таблицу потоков для продолжения обработки, или когда определенная следующая таблица потоков располагается в другом физическом коммутаторе, инициирует защиту среды конвейера для генерации пакета инкапсуляции, и отправляет пакет инкапсуляции на физический коммутатор, соответствующий следующей таблице потоков. Когда устройство коммутационной обработки, предусмотренное этим вариантом осуществления, осуществляет защиту среды конвейера, защита среды конвейера решается, инициируется и выполняется коммутатором. При доставке элементов потока, контроллеру не нужно рассматривать, располагается ли каждая таблица потоков в одном и том же физическом коммутаторе.
[0247] Устройство коммутационной обработки, предусмотренное этим вариантом осуществления настоящего изобретения, используется для выполнения способа коммутационной обработки, предусмотренного вариантом осуществления, показанным на фиг. 5 настоящего изобретения, и имеет соответствующие функциональные модули. Принципы реализации и их технические результаты аналогичны, и дополнительно здесь не описаны.
[0248] В другом возможном варианте реализации этого варианта осуществления, представленном на фиг. 13, на фиг. 13 показана структурная блок-схема другого устройства коммутационной обработки согласно варианту осуществления настоящего изобретения. В частности, защита среды конвейера управляется контроллером и решается контроллером, и коммутатор должен лишь непосредственно выполнять соответствующую инструкцию. На основе структуры вышеупомянутого устройства, показанного на фиг. 12, модуль 12 отправки включает в себя блок 13 определения, выполненный с возможностью: когда элемент потока, подлежащий отправке, включает в себя инструкцию перехода таблицы потоков, определять, располагается ли следующая таблица потоков в текущем физическом коммутаторе; и блок 14 выполнения, выполненный с возможностью: когда блок 13 определения определяет, что следующая таблица потоков располагается в текущем физическом коммутаторе, отправлять элемент потока, включающий в себя инструкцию перехода таблицы потоков, на текущий физический коммутатор, благодаря чему, текущий физический коммутатор направляет пакет данных на следующую таблицу потоков для продолжения обработки; или блок 14 выполнения, выполненный с возможностью: когда блок определения определяет, что следующая таблица потоков располагается в другом физическом коммутаторе, заменять инструкцию перехода таблицы потоков в элементе потока, подлежащем отправке, инструкцией ретрансляции коммутатора, и отправлять элемент потока, включающий в себя инструкцию ретрансляции коммутатора, на текущий физический коммутатор, благодаря чему, текущий физический коммутатор инициирует защиту среды конвейера для генерации пакета инкапсуляции и отправляет пакет инкапсуляции на физический коммутатор, соответствующий следующей таблице потоков.
[0249] Следует отметить, что, в вышеприведенном варианте осуществления, хотя методы управления при инициировании защиты среды конвейера отличаются, методы защиты среды конвейера текущим физическим коммутатором одинаковы. В частности, текущий физический коммутатор инкапсулирует пакет данных и соответствующую информацию для обработки пакета данных в пакет инкапсуляции, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, ID следующей таблицы потоков, и дополнительно, в необязательном порядке, включает в себя любое количество из следующей информации: входного порта, набора действий и метаданных.
[0250] Дополнительно, после осуществления защиты среды конвейера, текущий физический коммутатор отправляет пакет инкапсуляции, сгенерированный путем осуществления защита среды конвейера на физический коммутатор, соответствующий следующей таблице потоков. Соответственно, физический коммутатор, соответствующий следующей таблице потоков, должен осуществлять восстановление среды конвейера для получения пакета данных. В устройстве, предусмотренном этим вариантом осуществления, восстановление среды конвейера управляется физическим коммутатором, соответствующий следующей таблице потоков. В частности, физический коммутатор разбирает принятый пакет инкапсуляции и получает разобранную информацию, причем разобранная информация включает в себя пакет данных и соответствующую информацию для обработки пакета данных, благодаря чему, физический коммутатор осуществляет восстановление среды конвейера согласно разобранной информации и направляет пакет данных, полученный путем разбора, на следующую таблицу потоков для продолжения обработки. Способ направления в следующую таблицу потоков такой же, как в вышеприведенном варианте осуществления, и поэтому дополнительно здесь не описан.
[0251] В необязательном порядке, в другом возможном варианте реализации этого варианта осуществления, восстановление среды конвейера может управляться контроллером. В частности, элементы потока, соответствующие расширенному коммутатору и отправленные модулем 12 отправки включают в себя элемент потока, используемый для осуществления восстановления конвейера; и модуль 12 отправки дополнительно выполнен с возможностью отправки элемента потока, используемого для осуществления восстановления конвейера, на расширенный коммутатор, благодаря чему, расширенный коммутатор добавляет элемент потока в первую таблицу потоков table0' расширенного коммутатора и, в случае приема пакета инкапсуляции, осуществляет восстановление среды конвейера с использованием элемента потока, добавленного в table0'. Следует отметить, что, в общем случае, модуль 12 отправки заранее отправляет элементы потока. Этот вариант осуществления не ограничивает последовательность, в которой модуль 12 отправки отправляет элемент потока, включающий в себя инструкцию ретрансляции коммутатора и элемент потока, используемый для осуществления восстановления конвейера.
[0252] В этом варианте осуществления, расширенный коммутатор осуществляет восстановление среды конвейера с использованием принятого элемента потока, который используется для осуществления восстановления среды конвейера и отправляется контроллером, причем элемент потока, используемый для осуществления восстановления конвейера и отправленный модулем 12 отправки, может включать в себя часть согласования и исполнимую инструкцию. ID следующей таблицы потоков в пакете инкапсуляции используется как объект согласования части согласования элемента потока, и исполнимая инструкция может включать в себя инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков. Конкретный процесс восстановления среды конвейера состоит в следующем: расширенный коммутатор согласует, с использованием элемента потока в table0', пакет инкапсуляции, принятый расширенным коммутатором, и когда ID следующей таблицы потоков согласуется с элементом потока в table0', выполняет инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков в согласованном элементе потока последовательно согласно результату согласования.
[0253] Устройство коммутационной обработки, предусмотренное этим вариантом осуществления настоящего изобретения, используется для выполнения способа коммутационной обработки, предусмотренного вариантом осуществления, показанным на фиг. 6 настоящего изобретения, и имеет соответствующие функциональные модули. Принципы реализации и их технические результаты аналогичны, и дополнительно здесь не описаны.
Вариант осуществления 8
[0254] На фиг. 14 показана структурная схема устройства коммутационной обработки согласно варианту осуществления 8 настоящего изобретения. Устройство коммутационной обработки применяется к системе коммутационной обработки, показанной на фиг. 2 или фиг. 3, и располагается в физическом коммутаторе логического коммутатора, подключенного к контроллеру. Как показано на фиг. 2 или фиг. 3, логический коммутатор включает в себя, по меньшей мере, два физических коммутатора, и, по меньшей мере, два физических коммутатора включают в себя первичный коммутатор и расширенный коммутатор. Контроллер подключен, по меньшей мере, к первичному коммутатору, причем устройство коммутационной обработки располагается в первичном коммутаторе. Устройство, расположенное в первичном коммутаторе, включает в себя модуль 21 приема и модуль 22 обработки.
[0255] Модуль 21 приема выполнен с возможностью приема информации отображения, отправленной контроллером, причем информация отображения включает в себя отношение отображения между физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков логического коммутатора.
[0256] Модуль 21 приема дополнительно выполнен с возможностью приема элементов потока, отправленных контроллером, причем элементы потока, принятые модулем 21 приема, являются информацией содержания каждой таблицы потоков в наборе таблиц потоков, выделенном контроллером первичному коммутатору, или выделенном контроллером первичному коммутатору и расширенному коммутатору.
[0257] Модуль 22 обработки выполнен с возможностью обработки, согласно элементам потока, принятым модулем 21 приема или согласно элементам потока и информации отображения, которые принимаются модулем 21 приема, пакета данных, принятого первичным коммутатором.
[0258] В этом варианте осуществления, когда контроллер выделяет каждую таблицу потоков во множественных таблицах потоков разным физическим коммутаторам для совместного использования, первая таблица потоков table0 во множественных таблицах потоков логического коммутатора обязательно выделяется первичному коммутатору. Модуль 22 обработки выполнен с возможностью обработки, с использованием table0, принятого пакета данных согласно элементам потока, принятым модулем 21 приема или согласно элементам потока и информации отображения, которые принимаются модулем 21 приема. По аналогии с вышеописанным вариантом осуществления, расширенный коммутатор в этом варианте осуществления также может включать в себя первый расширенный коммутатор и второй расширенный коммутатор. Первичный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору, и второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору. Метод распределения информации отображения и элементов потока такой же, как в вышеприведенном варианте осуществления, и связан с отношением соединения между каждым физическим коммутатором и контроллером. Отношение соединения между каждым физическим коммутатором и контроллером в этом варианте осуществления представлено на фиг. 2 и фиг. 3, и поэтому подробно здесь не описано. Следует отметить, что, в этом варианте осуществления, пакет данных, принятый первичным коммутатором, в общем случае, может быть отправлен внешним узлом, например, компьютером, который может осуществлять взаимный доступ с первичным коммутатором.
[0259] Устройство коммутационной обработки, предусмотренное этим вариантом осуществления настоящего изобретения, используется для выполнения способа коммутационной обработки, предусмотренного вариантом осуществления, показанным на фиг. 7 настоящего изобретения, и имеет соответствующие функциональные модули. Принципы реализации и их технические результаты аналогичны, и дополнительно здесь не описаны.
[0260] На фиг. 15 показана структурная схема еще одного устройства коммутационной обработки согласно варианту осуществления настоящего изобретения. На основе структуры устройства коммутационной обработки, показанного на фиг. 14, модуль 22 обработки включает в себя блок 23 обработки, выполненный с возможностью обработки пакета данных при приеме пакета данных; и блок 24 определения, выполненный с возможностью определения положения следующей таблицы потоков согласно информации отображения, принятой модулем 21 приема. Блок 23 обработки дополнительно выполнен с возможностью: когда блок 24 определения определяет, что следующая таблица потоков располагается в первичном коммутаторе, направлять пакет данных на следующую таблицу потоков для продолжения обработки; или блок 23 обработки дополнительно выполнен с возможностью: когда блок 24 определения определяет, что следующая таблица потоков располагается в расширенном коммутаторе, инициировать защиту среды конвейера для генерации пакета инкапсуляции, и отправлять пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков. Вариант осуществления, показанный на фиг. 15, состоит в защите среды конвейера, управляемой первичным коммутатором, и решается, инициируется и выполняется первичным коммутатором. При доставке элементов потока, контроллеру не нужно рассматривать, располагается ли каждая таблица потоков в одном и том же физическом коммутаторе.
[0261] Устройство коммутационной обработки, предусмотренное этим вариантом осуществления настоящего изобретения, используется для выполнения способа коммутационной обработки, предусмотренного вариантом осуществления, показанным на фиг. 8 настоящего изобретения, и имеет соответствующие функциональные модули. Принципы реализации и их технические результаты аналогичны, и дополнительно здесь не описаны.
[0262] В необязательном порядке, в другом возможном варианте реализации настоящего изобретения, защита среды конвейера может управляться контроллером и решаться контроллером. Первичный коммутатор должен лишь непосредственно выполнять соответствующую инструкцию, и устройство, показанное на фиг. 14, может выполнять инструкцию. Тот факт, что модуль 21 приема дополнительно выполнен с возможностью приема элементов потока, отправленных контроллером, включает в себя: прием элемента потока, который включает в себя инструкцию перехода таблицы потоков или инструкцию ретрансляции коммутатора и отправлен контроллером, причем инструкция перехода таблицы потоков или инструкция ретрансляции коммутатора в элементе потока определяется контроллером согласно тому, располагается ли следующая таблица потоков в элементе потока в первичном коммутаторе, и, если да, элемент потока включает в себя инструкцию перехода таблицы потоков, в противном случае, элемент потока включает в себя инструкцию ретрансляции коммутатора; и модуль 22 обработки выполнен с возможностью: когда элемент потока, согласующийся с принятым пакетом данных, включает в себя инструкцию перехода таблицы потоков, направлять пакет данных на следующую таблицу потоков для продолжения обработки; или модуль 22 обработки выполнен с возможностью: когда элемент потока, согласующийся с принятым пакетом данных, включает в себя инструкцию ретрансляции коммутатора, инициировать защиту среды конвейера для генерации пакета инкапсуляции, и отправлять пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0263] В конкретной реализации этого варианта осуществления, тот факт, что модуль 22 обработки инициирует защиту среды конвейера, включает в себя: инкапсулирование пакета данных и соответствующей информации для обработки пакета данных в пакет инкапсуляции, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, ID следующей таблицы потоков, и дополнительно, в необязательном порядке, включает в себя любое количество из следующей информации: входного порта, набора действий и метаданных.
[0264] Дополнительно, после осуществления защиты среды конвейера, модуль 22 обработки отправляет пакет инкапсуляции, сгенерированный путем осуществления защита среды конвейера, на расширенный коммутатор, соответствующий следующей таблице потоков. Соответственно, расширенный коммутатор должен осуществлять восстановление среды конвейера для получения пакета данных. Когда устройство коммутационной обработки, предусмотренное этим вариантом осуществления, осуществляет восстановление среды конвейера, восстановление среды конвейера управляется расширенным коммутатором. В частности, расширенный коммутатор разбирает принятый пакет инкапсуляции и получает разобранную информацию, причем разобранная информация включает в себя пакет данных и соответствующую информацию для обработки пакета данных. Соответствующая информация для обработки пакета данных также включает в себя ID следующей таблицы потоков, и дополнительно, в необязательном порядке, включает в себя любое количество из следующей информации: входного порта, набора действий и метаданных, благодаря чему, расширенный коммутатор осуществляет восстановление среды конвейера согласно разобранной информации и направляет пакет данных, полученный путем разбора, на следующую таблицу потоков для продолжения обработки. Способ направления пакета данных на следующую таблицу потоков такой же, как в вышеприведенном варианте осуществления, и поэтому дополнительно здесь не описан. Аналогично, восстановление среды конвейера может дополнительно осуществляться под управлением контроллера. Конкретный вариант реализации такой же, как в вышеприведенном варианте осуществления. Поскольку устройство коммутационной обработки, предусмотренное этим вариантом осуществления, располагается в первичном коммутаторе, и обработка первичным коммутатором не предусматривает восстановление среды конвейера, подробности здесь не описаны.
Вариант осуществления 9
[0265] На фиг. 16 показана структурная схема устройства коммутационной обработки согласно варианту осуществления 9 настоящего изобретения. Устройство коммутационной обработки применяется к системе коммутационной обработки, показанной на фиг. 3, и располагается в физическом коммутаторе логического коммутатора, подключенного к контроллеру. Как показано на фиг. 2 и фиг. 3, логический коммутатор включает в себя множественные физические коммутаторы, множественные физические коммутаторы включают в себя первичный коммутатор и расширенный коммутатор, и расширенный коммутатор включает в себя первый расширенный коммутатор и второй расширенный коммутатор. Контроллер подключен, по меньшей мере, к первичному коммутатору, первичный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору, и второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору. Причем устройство коммутационной обработки располагается в расширенном коммутаторе. Устройство, расположенное в расширенном коммутаторе, включает в себя модуль 31 приема и модуль 32 обработки.
[0266] Модуль 31 приема выполнен с возможностью приема информации отображения, отправленной контроллером и/или первичным коммутатором и/или другим расширенным коммутатором, причем информация отображения включает в себя отношение отображения между физическим коммутатором и каждой таблицей потоков во множественных таблицах потоков логического коммутатора.
[0267] Модуль 31 приема дополнительно выполнен с возможностью приема элементов потока, соответствующих текущему расширенному коммутатору и отправленных контроллером и/или первичным коммутатором и/или другим расширенным коммутатором, причем элементы потока, принятые модулем 31 приема, являются информацией содержания каждой таблицы потоков в наборе таблиц потоков, выделенном контроллером текущему расширенному коммутатору.
[0268] Модуль 32 обработки выполнен с возможностью обработки, согласно элементам потока, принятым модулем 31 приема или согласно элементам потока и информации отображения, которые принимаются модулем 31 приема, первого пакета инкапсуляции, принятого текущим расширенным коммутатором, причем первый пакет инкапсуляции генерируется физическим коммутатором, в котором располагается предыдущая таблица потоков, путем инкапсулирования пакета данных, принятого физическим коммутатором, и соответствующей информации для обработки пакета данных.
[0269] Этот вариант осуществления может выполняться первым расширенным коммутатором или вторым расширенным коммутатором. Метод, согласно которому расширенный коммутатор принимает информацию отображения и элементы потока, отправленные контроллером, аналогичен описанному в вышеприведенном варианте осуществления, то есть информация отображения и/или элементы потока, принятые текущим расширенным коммутатором, могут непосредственно отправляться контроллером или могут ретранслироваться первичным коммутатором или могут ретранслироваться другим расширенным коммутатором, или можно использовать комбинацию нескольких вышеупомянутых методов. Следует отметить, что, когда контроллер выделяет каждую таблицу потоков во множественных таблицах потоков разным физическим коммутаторам для совместного использования, первая таблица потоков table0 во множественных таблицах потоков логического коммутатора обязательно выделяется первичному коммутатору. Поэтому в информации отображения, принятой модулем 31 приема, table0 во множественных таблицах потоков логического коммутатора соответствует первичному коммутатору. В этом варианте осуществления, метод распределения информации отображения и элементов потока такой же, как в вышеприведенном варианте осуществления, и связан с отношением соединения между каждым физическим коммутатором и контроллером. Отношение соединения между каждым физическим коммутатором и контроллером в этом варианте осуществления представлено на фиг. 3, и поэтому подробно здесь не описано.
[0270] Устройство коммутационной обработки, предусмотренное этим вариантом осуществления настоящего изобретения, используется для выполнения способа коммутационной обработки, предусмотренного вариантом осуществления, показанным на фиг. 9 настоящего изобретения, и имеет соответствующие функциональные модули. Принципы реализации и их технические результаты аналогичны, и дополнительно здесь не описаны.
[0271] В этом варианте осуществления, модуль 31 приема дополнительно выполнен с возможностью приема первого пакета инкапсуляции после приема элементов потока, соответствующих текущему расширенному коммутатору; и модуль 32 обработки выполнен с возможностью: в случае определения, что числовой ID следующей таблицы потоков в первом пакете инкапсуляции, принятом модулем 31 приема, располагается в другом физическом коммутаторе, ретранслировать, согласно информации отображения, принятой модулем 31 приема, первый пакет инкапсуляции, принятый модулем 31 приема, на физический коммутатор, соответствующий ID следующей таблицы потоков; или модуль 32 обработки выполнен с возможностью: в случае определения, что ID следующей таблицы потоков в первом пакете инкапсуляции, принятом модулем 31 приема, располагается в текущем расширенном коммутаторе, осуществлять восстановление среды конвейера на первом пакете инкапсуляции, принятом модулем 31 приема, для получения пакета данных.
[0272] На фиг. 17 показана структурная схема еще одного устройства коммутационной обработки согласно варианту осуществления настоящего изобретения. В конкретной реализации этого варианта осуществления, когда модуль 32 обработки текущего расширенного коммутатора осуществляет восстановление среды конвейера, восстановление среды конвейера может управляться текущим расширенным коммутатором. В этом случае, модуль 32 обработки включает в себя: блок 33 разбора, выполненный с возможностью разбора первого пакета инкапсуляции, принятого модулем 31 приема, для получения разобранной информации, причем разобранная информация включает в себя пакет данных и соответствующую информацию для обработки пакета данных, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, ID следующей таблицы потоков, и дополнительно, в необязательном порядке, включает в себя любое количество из следующей информации: входного порта, набора действий и метаданных; и блок 34 обработки, выполненный с возможностью осуществления восстановления среды конвейера согласно разобранной информации, полученной блоком 33 разбора, и направления пакета данных на следующую таблицу потоков для продолжения обработки. Способ направления пакета данных на следующую таблицу потоков такой же, как в вышеприведенном варианте осуществления, и поэтому дополнительно здесь не описан.
[0273] В необязательном порядке, в другом возможном варианте реализации этого варианта осуществления, восстановление среды конвейера также может управляться контроллером и решаться контроллером, и коммутатор должен лишь непосредственно выполнять соответствующую инструкцию. В конкретной реализации, элементы потока, принятые текущим расширенным коммутатором, включают в себя элемент потока, используемый для осуществления восстановления конвейера и отправленный контроллером; и соответственно, элементы потока, принятые модулем 31 приема, включают в себя элемент потока, используемый для осуществления восстановления конвейера и отправленный контроллером. В этом случае, модуль 32 обработки включает в себя: блок добавления, выполненный с возможностью добавления элемента потока, используемого для осуществления восстановления конвейера, в первую таблицу потоков table0' текущего расширенного коммутатора; и блок обработки, выполненный с возможностью осуществления, с использованием элемента потока, добавленного в table0', восстановления среды конвейера на первом пакете инкапсуляции, принятом модулем приема. В конкретной реализации, первый пакет инкапсуляции, принятый модулем 31 приема, включает в себя ID следующей таблицы потоков, и элемент потока, используемый для осуществления восстановления конвейера и принятый модулем 31 приема, включает в себя часть согласования и исполнимую инструкцию, причем исполнимая инструкция включает в себя инструкцию восстановления таблицы потоков и/или инструкцию перехода таблицы потоков; и блок обработки выполнен с возможностью согласования, с использованием элемента потока в table0', первого пакета инкапсуляции, принятого модулем 31 приема, и когда элемент потока в table0' успешно согласован, выполнения инструкции восстановления таблицы потоков и/или инструкции перехода таблицы потоков в согласованном элементе потока последовательно согласно результату согласования.
[0274] Дополнительно, после осуществления восстановления среды конвейера, модуль 32 обработки текущего расширенного коммутатора может продолжать обработку полученного пакета данных. Метод обработки пакета данных аналогичен описанному в вышеприведенном варианте осуществления. Аналогично, согласно информации отображения, может определяться положение следующей таблицы потоков для обработки пакета данных, и определяется метод обработки. В частности, на основе вышеупомянутого варианта осуществления, показанного на фиг. 17, модуль 32 обработки дополнительно выполнен с возможностью: после осуществления восстановления среды конвейера на первом пакете инкапсуляции, принятом модулем 31 приема, при получении пакета данных, обрабатывать пакет данных с использованием текущей таблицы потоков. В этом случае, устройство дополнительно включает в себя модуль 35 определения, выполненный с возможностью определения положения следующей таблицы потоков согласно информации отображения; и модуль 32 обработки дополнительно выполнен с возможностью: когда модуль 35 определения определяет, что следующая таблица потоков располагается в текущем расширенном коммутаторе, направлять пакет данных на следующую таблицу потоков для продолжения обработки; или модуль 32 обработки дополнительно выполнен с возможностью: когда модуль определения определяет, что следующая таблица потоков располагается в другом расширенном коммутаторе, инициировать защиту среды конвейера для генерации второго пакета инкапсуляции, и отправлять второй пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков. Способ, предусмотренный этим вариантом осуществления, состоит в защите среды конвейера, управляемой текущим расширенным коммутатором, и решается, инициируется и выполняется текущим расширенным коммутатором. При доставке элементов потока, контроллеру не нужно рассматривать, располагается ли каждая таблица потоков в одном и том же физическом коммутаторе.
[0275] В необязательном порядке, по аналогии с вышеописанным вариантом осуществления, в другом возможном варианте реализации этого варианта осуществления, защита среды конвейера может управляться контроллером и решаться контроллером, и текущий расширенный коммутатор должен лишь непосредственно выполнять соответствующую инструкцию. Конкретный вариант реализации состоит в следующем: модуль 31 приема дополнительно выполнен с возможностью приема элемента потока, который включает в себя инструкцию перехода таблицы потоков или инструкцию ретрансляции коммутатора и отправлен контроллером, причем инструкция перехода таблицы потоков или инструкция ретрансляции коммутатора в элементе потока определяется контроллером согласно тому, располагается ли следующая таблица потоков в элементе потока в текущем расширенном коммутаторе, и, если да, элемент потока включает в себя инструкцию перехода таблицы потоков, в противном случае, элемент потока включает в себя инструкцию ретрансляции коммутатора. В этом случае, модуль 32 обработки дополнительно выполнен с возможностью: после осуществления восстановления среды конвейера на первом пакете инкапсуляции, принятом модулем 31 приема, получать пакет данных в первом пакете инкапсуляции, и когда элемент потока, согласующийся с пакетом данных, включает в себя инструкцию перехода таблицы потоков, направлять пакет данных на следующую таблицу потоков для продолжения обработки; или получать пакет данных в первом пакете инкапсуляции, и когда элемент потока, согласующийся с пакетом данных, включает в себя инструкцию ретрансляции коммутатора, инициировать защиту среды конвейера для генерации второго пакета инкапсуляции, и отправлять второй пакет инкапсуляции на расширенный коммутатор, соответствующий следующей таблице потоков.
[0276] Следует отметить, что, в вышеприведенном варианте осуществления, метод инициирования восстановления среды конвейера модулем 32 обработки такой же, и включает в себя: инкапсулирование пакета данных и соответствующей информации для обработки пакета данных во второй пакет инкапсуляции, причем соответствующая информация для обработки пакета данных включает в себя, по меньшей мере, ID следующей таблицы потоков, и дополнительно включает в себя любое количество из следующей информации: входного порта, набора действий и метаданных.
[0277] Устройство коммутационной обработки, предусмотренное этим вариантом осуществления настоящего изобретения, используется для выполнения способа коммутационной обработки, предусмотренного вариантом осуществления, показанным на фиг. 10 настоящего изобретения, и имеет соответствующие функциональные модули. Принципы реализации и их технические результаты аналогичны, и дополнительно здесь не описаны.
[0278] На фиг. 18 показана структурная схема контроллера согласно варианту осуществления настоящего изобретения. Контроллер применяется к системе коммутационной обработки, показанной на фиг. 2 или фиг. 3, и, подключен к логическому коммутатору. Как показано на фиг. 2 и фиг. 3, логический коммутатор включает в себя, по меньшей мере, два физических коммутатора, и физические коммутаторы включают в себя первичный коммутатор и первый расширенный коммутатор. Контроллер подключен, по меньшей мере, к первому расширенному коммутатору, и первый расширенный коммутатор подключен, по меньшей мере, к первичному коммутатору. Как показано на фиг. 3, физические коммутаторы дополнительно включают в себя второй расширенный коммутатор, и второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору. Как показано на фиг. 18, контроллер, предусмотренный этим вариантом осуществления, включает в себя процессор 41 и передатчик 42. Метод отправки информации отображения и элементов потока контроллером, предусмотренный этим вариантом осуществления, и метод соединения с каждым физическим коммутатором в логическом коммутаторе такие же, как в вышеприведенном варианте осуществления, и дополнительно здесь не описаны.
[0279] В контроллере, предусмотренном этим вариантом осуществления, процессор 41 выполнен с возможностью осуществления функции модуля 11 выделения устройства коммутационной обработки согласно вариантам осуществления, показанным на фиг. 12 - фиг. 13; и передатчик 42 выполнен с возможностью осуществления функции модуля 12 отправки устройства коммутационной обработки согласно вариантам осуществления, показанным на фиг. 12 - фиг. 13. Контроллер, предусмотренный этим вариантом осуществления настоящего изобретения, выполнен с возможностью выполнения способов коммутационной обработки, предусмотренных вариантами осуществления, показанными на фиг. 1, фиг. 5 и фиг. 6, и имеет соответствующее физическое устройство. Принципы реализации и их технические результаты аналогичны, и дополнительно здесь не описаны.
[0280] На фиг. 19 показана структурная схема первичного коммутатора согласно варианту осуществления настоящего изобретения. Первичный коммутатор применяется к системе коммутационной обработки, показанной на фиг. 2 или фиг. 3, и является физическим коммутатором логического коммутатора, подключенного к контроллеру. Как показано на фиг. 2, логический коммутатор включает в себя, по меньшей мере, два физических коммутатора, и физические коммутаторы включают в себя первичный коммутатор и первый расширенный коммутатор. Контроллер подключен, по меньшей мере, к первому расширенному коммутатору, и первый расширенный коммутатор подключен, по меньшей мере, к первичному коммутатору. Как показано на фиг. 3, физические коммутаторы дополнительно включают в себя второй расширенный коммутатор, и второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору. Как показано на фиг. 19, первичный коммутатор, предусмотренный этим вариантом осуществления, включает в себя приемник 51 и процессор 52. Метод приема и ретрансляции информации отображения и элементов потока первичным коммутатором, предусмотренный этим вариантом осуществления, и метод соединения с каждым расширенным коммутатором в логическом коммутаторе и контроллером такие же, как в вышеприведенном варианте осуществления, и дополнительно здесь не описаны.
[0281] В контроллере, предусмотренном этим вариантом осуществления, приемник 51 выполнен с возможностью осуществления функции модуля 21 приема устройства коммутационной обработки согласно вариантам осуществления, показанным на фиг. 14 - фиг. 15; и процессор 52 выполнен с возможностью осуществления функции модуля 22 обработки устройства коммутационной обработки согласно вариантам осуществления, показанным на фиг. 14 - фиг. 15. Первичный коммутатор, предусмотренный этим вариантом осуществления настоящего изобретения, выполнен с возможностью выполнения способов коммутационной обработки, предусмотренных вариантами осуществления, показанными на фиг. 7 - фиг. 8, и имеет соответствующее физическое устройство. Принципы реализации и их технические результаты аналогичны, и дополнительно здесь не описаны.
[0282] На фиг. 20 показана структурная схема расширенного коммутатора согласно варианту осуществления настоящего изобретения. Расширенный коммутатор применяется к системе коммутационной обработки, показанной на фиг. 2 или фиг. 3, и является физическим коммутатором логического коммутатора, подключенного к контроллеру. Как показано на фиг. 2, логический коммутатор включает в себя, по меньшей мере, два физических коммутатора, и физические коммутаторы включают в себя первичный коммутатор и первый расширенный коммутатор. Контроллер подключен, по меньшей мере, к первому расширенному коммутатору, и первый расширенный коммутатор подключен, по меньшей мере, к первичному коммутатору. Как показано на фиг. 3, физические коммутаторы дополнительно включают в себя второй расширенный коммутатор, и второй расширенный коммутатор подключен, по меньшей мере, к первому расширенному коммутатору. Как показано на фиг. 20, расширенный коммутатор, предусмотренный этим вариантом осуществления, включает в себя приемник 61 и процессор 62. Метод приема и ретрансляции информации отображения и элементов потока расширенным коммутатором, предусмотренный этим вариантом осуществления, и метод соединения с другим физическим коммутатором в логическом коммутаторе и контроллером такие же, как в вышеприведенном варианте осуществления, и дополнительно здесь не описаны.
[0283] В контроллере, предусмотренном этим вариантом осуществления, приемник 61 выполнен с возможностью осуществления функции модуля 31 приема устройства коммутационной обработки согласно вариантам осуществления, показанным на фиг. 16 - фиг. 17; ипроцессор 62 выполнен с возможностью осуществления функции модуля 32 обработки устройства коммутационной обработки согласно вариантам осуществления, показанным на фиг. 16 - фиг. 17. Расширенный коммутатор, предусмотренный этим вариантом осуществления настоящего изобретения, выполнен с возможностью выполнения способов коммутационной обработки, предусмотренных вариантами осуществления, показанными на фиг. 9 - фиг. 10, и имеет соответствующее физическое устройство. Принципы реализации и их технические результаты аналогичны, и дополнительно здесь не описаны.
[0284] На фиг. 2 и фиг. 3 также показаны структурные схемы системы коммутационной обработки согласно варианту осуществления настоящего изобретения. Как показано на фиг. 2 и фиг. 3, система коммутационной обработки, предусмотренная этим вариантом осуществления, включает в себя контроллер, показанный на фиг. 18, первичный коммутатор, показанный на фиг. 19, и расширенный коммутатор, показанный на фиг. 20. В этом варианте осуществления, отношения соединения между контроллером, первичным коммутатором и расширенным коммутатором показаны на фиг. 2 и фиг. 3. Методы отправки информации отображения и элементов потока контроллером и приема и ретрансляции информации отображения и элементов потока каждым физическим коммутатором такие же, как в каждом из вышеприведенных вариантов осуществления, и дополнительно здесь не описаны. Контроллер, первичный коммутатор и расширенный коммутатор в системе коммутационной обработки, предусмотренной этим вариантом осуществления, выполнены с возможностью осуществления способов коммутационной обработки, показанных на фиг. 1 и фиг. 5 - фиг. 11, и имеют соответствующие физические компоненты. Принципы реализации и их технические результаты аналогичны, и дополнительно здесь не описаны.
[0285] Специалисту в данной области техники очевидно, что, в целях удобства и краткости описания, разделение на вышеупомянутые функциональные модули приведено в порядке примера для иллюстрации. В фактическом применении, вышеупомянутые функции могут выделяться разным функциональным модулям и реализоваться согласно требованию, то есть внутренняя структура устройства делится на разные функциональные модули для осуществления всех или части вышеописанных функций. Подробное описание процесса работы вышеупомянутого устройства, можно найти в описании соответствующего процесса в вышеупомянутых вариантах осуществления способа, и подробности здесь не описаны.
[0286] Наконец, следует отметить, что вышеприведенные варианты осуществления призваны лишь описывать технические решения настоящего изобретения, но не ограничивать настоящее изобретение. Хотя настоящее изобретение подробно описано со ссылкой на вышеприведенные варианты осуществления, специалистам в данной области техники понято, что они могут вносить изменения в технические решения, описанные согласно вышеприведенным вариантам осуществления, или производить эквивалентные замены некоторых или всех его технических особенностей, не выходя за рамки объема технических решений вариантов осуществления настоящего изобретения.