СПОСОБ, УСТРОЙСТВО, КОММУТАТОР, АППАРАТ ДЛЯ ПЕРЕДАЧИ ПАКЕТОВ И НОСИТЕЛЬ ИНФОРМАЦИИ
METHOD, APPARATUS, SWITCH, APPARATUS FOR TRANSMITTING PACKETS AND A STORAGE MEDIUM

Перекрестная ссылка на родственные заявки
В настоящей заявке испрашивается приоритет заявки на патент Китая №201710897731.4, поданной в Национальное управление Китая по интеллектуальной собственности 28 сентября 2017 г. и озаглавленной «Packet Forwarding Method, Device, Switch, Apparatus and Storage Mediums («Способ, устройство, переключатель, аппарат для передачи пакетов и носитель информации»), во всей полноте включенной в настоящую заявку посредством ссылки.
Область техники, к которой относится изобретение
Настоящая заявка относится к области Интернет-технологий, в частности, к способу, аппарату, коммутатору, устройству для передачи пакетов и к носителю информации.
Уровень техники
vSwitch (Virtual Switch) - виртуальное устройство, работающее на вычислительном узле или хосте в публичном облаке и представляющее собой программу системы программного обеспечения, имитирующую физический коммутатор, являющийся сетевым устройством 2-го или 3-го уровня. В большинстве случаев, vSwitches применяют для передачи пакетов по МАС-адресам (адресам уровня «Управление доступом к среде» (Media Access Control)) на 2-ом уровне и для передачи пакетов по IP-адресам (адресам по протоколу Интернет) на 3-м уровне, также с возможностью поддержки функций группы безопасности, СУД (ACL) (Списка управления доступом - Access Control List), или чего-либо подобного.
В уровне техники при передаче пакета, если узел-отправитель пакета и узел-получатель пакета находятся в одной и той же подсети, виртуальный коммутатор осуществит поиск по таблице МАС-адресов и правилам группы безопасности на 2-ом уровне. Если узел-отправитель пакета и узел-получатель пакета не находятся в одной и той же подсети, виртуальный коммутатор осуществит поиск по таблице маршрутизации, СУД, таблице соседей и группам безопасности на 3-м уровне. Для ускорения передачи какого-либо пакета, после того, как этот пакет будет передан в первый раз, а именно - после того, как будет установлено соединение связи между узлом-отправителем пакета и узлом-получателем пакета, информацию о соединении (например, путь передачи между узлом-отправителем пакета и узлом-получателем пакета) для пакета сохраняют в быстрой таблице. Когда нужно будет передать другой пакет между узлом-отправителем пакета и узлом-получателем пакета, можно будет осуществить быструю передачу пакета за счет непосредственного поиска информации о соединении в быстрой таблице.
При этом, в известных технических решениях с использованием виртуальных коммутаторов для передачи пакетов, в случае изменения состояния соединения устройства, к которому относится информация о соединении, или изменения конфигурации плоскости управления, информация о соединении станет недействительной. Таким образом, передача пакета в соответствии с уже недействительной информацией о соединении приведет к ошибкам передачи пакета.
Раскрытие сущности изобретения
Целью вариантов осуществления по настоящей заявке является создание способа, аппарата, коммутатора, устройства для передачи пакетов и носителя информации для уменьшения ошибок передачи пакетов. Конкретные технические решения раскрыты ниже.
Согласно первому аспекту, в одном варианте по настоящей заявке предложен способ для передачи пакетов, применимый к коммутатору, содержащий шаги, на которых: получают подлежащий передаче пакет; определяют, содержит ли первая таблица данных кэшированную информацию о соединении, соответствующую данному пакету; получают первый идентификатор кэшированной информации о соединении из первой таблицы данных, если первая таблица данных содержит кэшированную информацию о соединении, соответствующую пакету, причем первый идентификатор представляет собой идентификатор соединения, соответствующий кэшированной информации о соединении на момент создания кэшированной информации о соединении; получают информацию о соединении, соответствующую кэшированной информации о соединении, из второй таблицы данных, и определяют второй идентификатор кэшированной информации о соединении согласно информации о соединении, соответствующей кэшированной информации о соединении, причем второй идентификатор представляет собой текущий идентификатор соединения, соответствующий кэшированной информации о соединении, изменение которого происходит в случае изменения информации о соединении; и передают пакет согласно кэшированной информации о соединении, если второй идентификатор тождествен первому идентификатору.
В одном случае реализации, способ для передачи пакетов по указанному варианту осуществления настоящей заявки дополнительно содержит шаги, на которых: получают идентификатор соединения, отправленный устройством с обновленной конфигурацией, причем устройство с обновленной конфигурацией представляет собой устройство-отправитель/получатель пакета с измененной информацией о соединении; и обновляют вторую таблицу данных информацией о соединении, соответствующей идентификатору соединения, отправленному устройством с обновленной конфигурацией.
В одном случае реализации, после получения информации о соединении, соответствующей кэшированной информации о соединении, из второй таблицы данных и определения второго идентификатора кэшированной информации о соединении, способ дополнительно содержит шаги, на которых: удаляют кэшированную информацию о соединении, соответствующую пакету, из первой таблицы данных, если второй идентификатор отличен от первого идентификатора; получают адрес назначения пакета и определяют путь передачи для пакета согласно адресу назначения; используют путь передачи для пакета в качестве текущей кэшированной информации о соединении; получают информацию о соединении, соответствующую текущей кэшированной информации о соединении, из второй таблицы данных, и определяют идентификатор соединения для текущей кэшированной информации о соединении согласно информации о соединении, соответствующей текущей кэшированной информации о соединении; используют идентификатор соединения для текущей кэшированной информации о соединении в качестве первого идентификатора текущей кэшированной информации о соединении, и записывают текущую кэшированную информацию о соединении и первый идентификатор текущей кэшированной информации о соединении в первую таблицу данных; и передают пакет согласно пути передачи для пакета.
В одном случае реализации, получение адреса назначения пакета и определение пути передачи для пакета согласно адресу назначения включает в себя шаги, на которых: выполняют поиск в таблице МАС-адресов для определения информации о пути для пакета, если адрес назначения находится в том же сетевом сегменте, что и адрес коммутатора, причем информация о пути содержит адрес передачи, при этом адрес передачи представляет собой адрес следующего транзитного устройства для получения пакета; определяют устройство, к которому должно быть применено правило группы безопасности согласно адресу передачи в информации о пути, и применяют правило группы безопасности к этому устройству; и, в случае соответствия правилу группы безопасности, используют данное устройство в качестве получателя пакета для определения пути передачи для пакета.
В одном случае реализации, получение адреса назначения пакета и определение пути передачи для подлежащего передаче пакета согласно адресу назначения включает в себя шаги, на которых: выполняют поиск в списке управления доступом, если адрес назначения не находится в том же сетевом сегменте, что и адрес коммутатора; выполняют поиск в таблице маршрутизации и таблице соседей для определения информации о пути для пакета, если список управления доступом позволяет передать пакет, причем информация о пути содержит адрес передачи, при этом адрес передачи представляет собой адрес следующего транзитного устройства для получения пакета; определяют устройство, к которому должно быть применено правило группы безопасности согласно адресу передачи в информации о пути, и применяют правило группы безопасности к этому устройству; и в случае соответствия правилу группы безопасности, используют данное устройство в качестве получателя пакета для определения пути передачи для пакета.
В одном случае реализации, получение первого идентификатора кэшированной информации о соединении из первой таблицы данных, если первая таблица данных содержит кэшированную информацию о соединении, соответствующую пакету, включает в себя шаги, на которых: ищут в первой таблице данных ключ, соответствующий пятиэлементному кортежу пакета, если первая таблица данных содержит кэшированную информацию о соединении, соответствующую пакету, и используют данный ключ в качестве ключа пакета; получают головной указатель связанного списка по ключу пакета в первой таблице данных в виде ячейки хэша; и осуществляют поиск в связанном списке, на который указывает головной указатель связанного списка, для получения кэшированной информации о соединении и первого идентификатора кэшированной информации о соединении.
В одном случае реализации, после определения того, содержит ли первая таблица данных кэшированную информацию о соединении, соответствующую пакету, способ дополнительно содержит шаги, на которых: получают адрес назначения пакета, если первая таблица данных не содержит кэшированную информацию о соединении, соответствующую пакету; выполняют поиск в таблице МАС-адресов для определения информации о пути для пакета, если адрес назначения находится в том же сетевом сегменте, что и адрес коммутатора, причем информация о пути содержит адрес передачи, при этом адрес передачи представляет собой адрес следующего транзитного устройства для получения пакета; определяют устройство, к которому должно быть применено правило группы безопасности согласно адресу передачи в информации о пути, и применяют правило группы безопасности к этому устройству; в случае соответствия правилу группы безопасности, используют данное устройство в качестве получателя пакета для определения пути передачи для пакета; используют путь передачи для пакета в качестве текущей кэшированной информации о соединении; получают информацию о соединении, соответствующую текущей кэшированной информации о соединении, из второй таблицы данных, определяют идентификатор соединения для текущей кэшированной информации о соединении, используют идентификатор соединения для текущей кэшированной информации о соединении в качестве первого идентификатора текущей кэшированной информации о соединении, и записывают текущую кэшированную информацию о соединении и первый идентификатор текущей кэшированной информации о соединении в первую таблицу данных; и передают пакет согласно пути передачи для пакета.
В одном случае реализации, после определения того, содержит ли первая таблица данных кэшированную информацию о соединении, соответствующую пакету, способ дополнительно содержит шаги, на которых: получают адрес назначения пакета, если первая таблица данных не содержит кэшированную информацию о соединении, соответствующую пакету;
выполняют поиск в списке управления доступом, если адрес назначения не находится в том же сетевом сегменте, что и адрес коммутатора; выполняют поиск в таблице маршрутизации и таблице соседей для определения информации о пути для пакета, если список управления доступом позволяет передать пакет, причем информация о пути содержит адрес передачи, при этом адрес передачи представляет собой адрес следующего транзитного устройства для получения пакета; определяют устройство, к которому должно быть применено правило группы безопасности согласно адресу передачи в информации о пути, и применяют правило группы безопасности к этому устройству; в случае соответствия правилу группы безопасности, используют данное устройство в качестве получателя пакета для определения пути передачи для пакета; используют путь передачи для пакета в качестве текущей кэшированной информации о соединении; получают информацию о соединении, соответствующую текущей кэшированной информации о соединении, из второй таблицы данных, определяют идентификатор соединения для текущей кэшированной информации о соединении, используют идентификатор соединения для текущей кэшированной информации о соединении в качестве первого идентификатора текущей кэшированной информации о соединении, и записывают текущую кэшированную информацию о соединении и первый идентификатор текущей кэшированной информации о соединении в первую таблицу данных; и передают пакет согласно пути передачи для пакета.
Согласно второму аспекту, в одном из вариантов осуществления настоящей заявки предложен способ для передачи пакетов, применимый к устройству-отправителю пакета, содержащий шаги, на которых: осуществляют мониторинг информации о соединении для соединения с текущей сетью, и обновляют идентификатор соединения по заранее заданному правилу обновления в случае изменения информации о соединении; и отправляют обновленный идентификатор соединения коммутатору, чтобы коммутатор обновил вторую таблицу данных обновленным идентификатором соединения.
Согласно третьему аспекту, в одном из вариантов осуществления настоящей заявки предложен аппарат для передачи пакетов, применимый к коммутатору, содержащий: модуль получения пакета, выполненный с возможностью получения подлежащего передаче пакета; детектирующий модуль, выполненный с возможностью определения того, содержит ли первая таблица данных кэшированную информацию о соединении, соответствующую данному пакету; модуль получения первого идентификатора, выполненный с возможностью получения первого идентификатора кэшированной информации о соединении из первой таблицы данных, если первая таблица данных содержит кэшированную информацию о соединении, соответствующую пакету, причем первый идентификатор представляет собой идентификатор соединения, соответствующий кэшированной информации о соединении на момент создания кэшированной информации о соединении; модуль определения второго идентификатора, выполненный с возможностью получения информации о соединении, соответствующей кэшированной информации о соединении, из второй таблицы данных, и определения второго идентификатора кэшированной информации о соединении согласно информации о соединении, соответствующей кэшированной информации о соединении, причем второй идентификатор представляет собой текущий идентификатор соединения, соответствующий кэшированной информации о соединении, изменение которого происходит в случае изменения информации о соединении; и первый модуль передачи пакетов, выполненный с возможностью передачи пакета согласно кэшированной информации о соединении, если второй идентификатор тождествен первому идентификатору.
В одном случае реализации, аппарат для передачи пакетов может дополнительно содержать: модуль получения идентификатора соединения, выполненный с возможностью получения идентификатора соединения, отправленного устройством с обновленной конфигурацией, причем устройство с обновленной конфигурацией представляет собой устройство-отправитель/получатель пакета с измененной информацией о соединении; и модуль обновления идентификатора, выполненный с возможностью обновления второй таблицы данных информацией о соединении, соответствующей идентификатору соединения, отправленному устройством с обновленной конфигурацией.
В одном случае реализации, аппарат для передачи пакетов может дополнительно содержать: модуль удаления информации о соединении, выполненный с возможностью удаления кэшированной информации о соединении, соответствующей пакету, из первой таблицы данных, если второй идентификатор отличен от первого идентификатора; первый модуль определения пути передачи, выполненный с возможностью получения адреса назначения пакета и определения пути передачи для пакета согласно адресу назначения; первый модуль определения кэшированной информации, выполненный с возможностью использования пути передачи для пакета в качестве текущей кэшированной информации о соединении, получения информации о соединении, соответствующей текущей кэшированной информации о соединении, из второй таблицы данных, и определения идентификатора соединения для текущей кэшированной информации о соединении согласно информации о соединении, соответствующей текущей кэшированной информации о соединении; модуль обновления первой таблицы данных, выполненный с возможностью использования идентификатора соединения для текущей кэшированной информации о соединении в качестве первого идентификатора текущей кэшированной информации о соединении и записи текущей кэшированной информации о соединении и первого идентификатора текущей кэшированной информации о соединении в первую таблицу данных; и второй модуль передачи пакетов, выполненный с возможностью передачи пакета согласно пути передачи для пакета.
В одном случае реализации, первый модуль определения пути передачи содержит: первый подмодуль определения информации о пути, выполненный с возможностью поиска в таблице МАС-адресов для определения информации о пути для пакета, если адрес назначения находится в том же сетевом сегменте, что и адрес коммутатора, причем информация о пути содержит адрес передачи, при этом адрес передачи представляет собой адрес следующего транзитного устройства для получения пакета; первый подмодуль проверки соответствия группе безопасности, выполненный с возможностью определения устройства, к которому должно быть применено правило группы безопасности согласно адресу передачи в информации о пути, и применения правила группы безопасности к этому устройству; и первый подмодуль соединения с устройством, выполненный с возможностью использования данного устройства, в случае соответствия правилу группы безопасности, в качестве получателя пакета для определения пути передачи для пакета.
В одном случае реализации, первый модуль определения пути передачи содержит: подмодуль поиска доступа, выполненный с возможностью поиска в списке управления доступом, если адрес назначения не находится в том же сетевом сегменте, что и адрес коммутатора; второй подмодуль определения информации о пути, выполненный с возможностью поиска в таблице маршрутизации и таблице соседей для определения информации о пути для пакета, если список управления доступом позволяет передать пакет, причем информация о пути содержит адрес передачи, при этом адрес передачи представляет собой адрес следующего транзитного устройства для получения пакета; второй подмодуль проверки соответствия группе безопасности, выполненный с возможностью определения устройства, к которому должно быть применено правило группы безопасности согласно адресу передачи в информации о пути, и применения правила группы безопасности к этому устройству; и второй подмодуль соединения с устройством, выполненный с возможностью использования данного устройства, в случае соответствия правилу группы безопасности, в качестве получателя пакета для определения пути передачи для пакета.
В одном случае реализации, модуль получения первого идентификатора содержит: подмодуль получения ключа, выполненный с возможностью поиска в первой таблице данных ключа, соответствующего пятиэлементному кортежу пакета, если первая таблица данных содержит кэшированную информацию о соединении, соответствующую пакету, и использования данного ключа в качестве ключа пакета;
подмодуль получения указателя, выполненный с возможностью получения головного указателя связанного списка по ключу пакета в первой таблице данных в виде ячейки хэша; и подмодуль поиска идентификатора, выполненный с возможностью поиска в связанном списке, на который указывает головной указатель связанного списка, для получения кэшированной информации о соединении и первого идентификатора кэшированной информации о соединении.
В одном случае реализации, аппарат для передачи пакетов может содержать: первый модуль получения адреса назначения, выполненный с возможностью получения адреса назначения пакета, если первая таблица данных не содержит кэшированную информацию о соединении, соответствующую пакету, причем адрес назначения представляет собой адрес пункта назначения пакета; первый модуль определения пути передачи, выполненный с возможностью поиска в таблице МАС-адресов для определения информации о пути для пакета, если адрес назначения находится в том же сетевом сегменте, что и адрес коммутатора, причем информация о пути содержит адрес передачи, при этом адрес передачи представляет собой адрес следующего транзитного устройства для получения пакета; первый модуль проверки соответствия правилу, выполненный с возможностью определения устройства, к которому должно быть применено правило группы безопасности согласно адресу передачи в информации о пути, и применения правила группы безопасности к этому устройству; второй модуль определения пути передачи, выполненный с возможностью использования данного устройства, в случае соответствия правилу группы безопасности, в качестве получателя пакета для определения пути передачи для пакета;
второй модуль определения кэшированной информации, выполненный с возможностью использования пути передачи для пакета в качестве текущей кэшированной информации о соединении; первый записывающий модуль, выполненный с возможностью получения информации о соединении, соответствующей текущей кэшированной информации о соединении, из второй таблицы данных, определения идентификатора соединения для текущей кэшированной информации о соединении, использования идентификатора соединения для текущей кэшированной информации о соединении в качестве первого идентификатора текущей кэшированной информации о соединении, и записи текущей кэшированной информации о соединении и первого идентификатора текущей кэшированной информации о соединении в первую таблицу данных; и
третий модуль передачи пакетов, выполненный с возможностью передачи пакета согласно пути передачи для пакета.
В одном случае реализации, аппарат для передачи пакетов может дополнительно содержать: второй модуль получения адреса назначения, выполненный с возможностью получения адреса назначения пакета, если первая таблица данных не содержит кэшированную информацию о соединении, соответствующую пакету, причем адрес назначения представляет собой адрес пункта назначения пакета; модуль поиска в списке управления, выполненный с возможностью поиска в списке управления доступом, если адрес назначения не находится в том же сетевом сегменте, что и адрес коммутатора; второй модуль определения пути передачи, выполненный с возможностью поиска в таблице маршрутизации и таблице соседей для определения информации о пути для пакета, если список управления доступом позволяет передать пакет, причем информация о пути содержит адрес передачи, при этом адрес передачи представляет собой адрес следующего транзитного устройства для получения пакета; второй модуль проверки соответствия правилу, выполненный с возможностью определения устройства, к которому должно быть применено правило группы безопасности согласно адресу передачи в информации о пути, и применения правила группы безопасности к этому устройству; третий модуль определения пути передачи, выполненный с возможностью использования данного устройства, в случае соответствия правилу группы безопасности, в качестве получателя пакета для определения пути передачи для пакета; третий модуль определения кэшированной информации, выполненный с возможностью использования пути передачи для пакета в качестве текущей кэшированной информации о соединении; второй записывающий модуль, выполненный с возможностью получения информации о соединении, соответствующей текущей кэшированной информации о соединении, из второй таблицы данных, определения идентификатора соединения для текущей кэшированной информации о соединении, использования идентификатора соединения для текущей кэшированной информации о соединении в качестве первого идентификатора текущей кэшированной информации о соединении, и записи текущей кэшированной информации о соединении и первого идентификатора текущей кэшированной информации о соединении в первую таблицу данных; и четвертый модуль передачи пакетов, выполненный с возможностью передачи пакета согласно пути передачи для пакета.
Согласно четвертому аспекту, в одном из вариантов осуществления настоящей заявки предложен аппарат для передачи пакетов, применимый к устройству - отправителю/-получателю пакета, содержащий: модуль мониторинга информации о соединении, выполненный с возможностью мониторинга информации о соединении для соединения с текущей сетью и обновления идентификатора соединения по заранее заданному правилу обновления в случае изменения информации о соединении; и модуль отправки идентификатора соединения, выполненный с возможностью отправки обновленного идентификатора соединения коммутатору, чтобы коммутатор обновил вторую таблицу данных обновленным идентификатором соединения.
Согласно пятому аспекту, в одном из вариантов осуществления настоящей заявки предложен коммутатор, содержащий процессор и машиночитаемый носитель информации, причем машиночитаемый носитель информации содержит машиноисполняемые инструкции, которые, при исполнении их процессором, побуждают процессор к выполнению любого способа согласно первому аспекту.
Согласно шестому аспекту, в одном из вариантов осуществления настоящей заявки предложено устройство-отправитель/получатель пакета, содержащее процессор и машиночитаемый носитель информации, причем машиночитаемый носитель информации содержит машиноисполняемые инструкции, которые, при исполнении их процессором, побуждают процессор к выполнению любого способа согласно второму аспекту.
Согласно седьмому аспекту, в одном из вариантов осуществления настоящей заявки предложен машиночитаемый носитель информации с хранимой в нем компьютерной программой, которая, при исполнении ее процессором, побуждает процессор к выполнению любого способа согласно первому аспекту.
Согласно восьмому аспекту, в одном из вариантов осуществления настоящей заявки предложен машиночитаемый носитель информации с хранимой в нем компьютерной программой, которая, при исполнении ее процессором, побуждает процессор к выполнению способа согласно второму аспекту.
Согласно девятому аспекту, в одном из вариантов осуществления настоящей заявки предложен компьютерный программный продукт, содержащий инструкции, которые, при исполнении их в компьютере, побуждают компьютер к выполнению любого способа согласно первому аспекту.
Согласно десятому аспекту, в одном из вариантов осуществления настоящей заявки предложен компьютерный программный продукт, содержащий инструкции, которые, при исполнении их в компьютере, побуждают компьютер к выполнению способа согласно второму аспекту.
Согласно одиннадцатому аспекту, в одном из вариантов осуществления настоящей заявки предложена компьютерная программа, которая, при исполнении ее в компьютере, побуждает компьютер к выполнению любого способа согласно первому аспекту.
Согласно двенадцатому аспекту, в одном из вариантов осуществления настоящей заявки предложена компьютерная программа, которая, при исполнении ее в компьютере, побуждает компьютер к выполнению способа согласно второму аспекту.
Предложены варианты осуществления способа, аппарата, коммутатора, устройства для передачи пакетов и носителя информации. Способ для передачи пакетов содержит шаг, на котором получают пакет, подлежащий передач. Определяют, содержит ли первая таблица данных кэшированную информацию о соединении, соответствующую подлежащему передаче пакету. Если первая таблица данных содержит кэшированную информацию о соединении, соответствующую подлежащему передаче пакету, получают первый идентификатор кэшированной информации о соединении из первой таблицы данных, причем первый идентификатор представляет собой идентификатор соединения, соответствующий кэшированной информации о соединении на момент создания кэшированной информации о соединении. Получают информацию о соединении, соответствующую кэшированной информации о соединении, из второй таблицы данных и определяют второй идентификатор кэшированной информации о соединении согласно информации о соединении, соответствующей кэшированной информации о соединении, причем второй идентификатор представляет собой текущий идентификатор соединения, соответствующий кэшированной информации о соединении, изменение которого происходит в случае изменения информации о соединении. Если второй идентификатор тождествен первому идентификатору, подлежащий передаче пакет передают согласно кэшированной информации о соединении. Если первый идентификатор и второй идентификатор кэшированной информации о соединении тождественны, это указывает на то, что кэшированная информация о соединении не стала недействительной. Таким образом, пакет передают согласно кэшированной информации о соединении, что позволяет уменьшить ошибки передачи пакетов. Разумеется, ни один из продуктов или способов по настоящей заявке не должен обязательно обеспечивать достижение одновременно всех вышеуказанных преимуществ.
Краткое описание чертежей
Для более наглядного раскрытия технического решения согласно вариантам осуществления по настоящей заявке и известных решений служат соответствующие чертежи, которые будут кратко описаны ниже. Разумеется, описанные ниже чертежи относятся только к некоторым вариантам осуществления по настоящей заявке, при этом средний специалист в данной области техники также сможет создать другие чертежи на их основе без необходимости приложения творческих усилий.
ФИГ. 1 - схема последовательности передачи пакета коммутатором в предшествующем уровне техники;
ФИГ. 2 - схема последовательности способа для передачи пакетов по одному из вариантов осуществления настоящей заявки, применимого к коммутатору;
ФИГ. 3 - схема последовательности способа для передачи пакетов по одному из вариантов осуществления настоящей заявки, применимого к устройству-отправителю пакета или устройству-получателю пакета;
ФИГ. 4 - схема последовательности другого способа для передачи пакетов по одному из вариантов осуществления настоящей заявки, применимого к коммутатору;
ФИГ. 5 - принципиальная схема удаления кэшированной информации о соединении способом «чтение - копирование - обновление» (ЧКО) по одному из вариантов осуществления настоящей заявки;
ФИГ. 6 - схема конструкции аппарата для передачи пакетов по одному из вариантов осуществления настоящей заявки, применимого к коммутатору; и
ФИГ. 7 - схема конструкции аппарата для передачи пакетов по одному из вариантов осуществления настоящей заявки, применимого к устройству-отправителю пакета или устройству-получателю пакета.
Осуществление изобретения
Для придания большей наглядности задачам, техническим решениям и преимуществам по настоящей заявке, детали изобретения по настоящей заявке будут раскрыты посредством прилагаемых чертежей и примеров. Разумеется, раскрываемые варианты являются не всеми, а только частью вариантов осуществления изобретения по настоящей заявке. Все прочие варианты осуществления, которые могут быть получены средними специалистами в данной области техники без каких-либо творческих усилий, входят в объем по настоящей заявке.
На ФИГ. 1 показана схема последовательности передачи пакета коммутатором в предшествующем уровне техники. Когда коммутатор получает пакет, он определяет, находится ли адрес назначения пакета в том же сетевом сегменте, что и адрес коммутатора, то есть, является ли пакет пакетом данных 2-го уровня. Если адрес назначения пакета и адрес коммутатора находятся в одном и том же сетевом сегменте, т.е. пакет является пакетом данных 2-го уровня, коммутатор осуществляет поиск в таблице МАС-адресов и проверку соответствия правилам группы безопасности, после чего передает пакет. Если адрес назначения пакета и адрес коммутатора не находятся в одном и том же сетевом сегменте, т.е. пакет не является пакетом данных 2-го уровня, коммутатор выполнит поиск по СУД, таблице маршрутизации и таблица соседей и т.п. и применит правила группы безопасности, после чего передаст пакет. На предшествующем уровне техники, когда устройство, например виртуальная машина, осуществляет связь с другой виртуальной машиной, в частности - связь с другой виртуальной машиной для горизонтального трафика, необходимо осуществлять поиск по нескольким таблицам переадресации, что значительно ухудшает показатели передачи пакетов.
Для ускорения передачи, после того, как какой-либо пакет будет передан в первый раз, т.е. после того, как будет установлено соединение связи между отправляющим пакет узлом и получающим пакет узлом, информацию о пути для пакета сохраняют в быстрой таблице. Когда отправляющий пакет узел будет вновь осуществлять связь с получающим пакет узлом, пакет будет передан непосредственно на основе информации о пути в быстрой таблице. При этом, в случае изменения состояния соединения устройства или конфигурации плоскости управления, входящей в состав информации о пути, информация о пути станет недействительной. Передача пакетов согласно недействительной информации о пути приведет к ошибке, при этом просмотр всей информации о пути в быстрой таблице для удаления недействительной информация о пути займет много времени, особенно при наличии большого количества информации о соединении в быстрой таблице. Это серьезно влияет на скорость передачи пакетов, результатом чего становится низкая эффективность передачи пакетов.
По общим протоколам 4-го уровня, например TCP (протокол управления передачей) или UDP (протокол передачи датаграмм пользователя) и т.п., для межсетевых экранов с отслеживанием состояния соединений, например, групп безопасности и т.п., должна быть создана запись о соединении на основе информации пятиэлементного кортежа, чтобы гарантировать возможность допуска возвращаемых пакетов, даже если они не соответствуют правилам группы безопасности. Варианты осуществления по настоящей заявке предусматривают кэширование входной информации о передаче пакетов, в основе которой лежит информация о соединении, для уменьшения времени на поиск по таблице для передачи пакета согласно информации о соединении, которое было установлено между устройством-отправителем пакета и устройством-получателем пакета (пакета данных), и сократить число поисков в таблице с нескольких поисков при известном способе до одного поиска с последующей быстрой передачей пакета. Это обеспечивает высокую скорость передачи для виртуального коммутатора, позволяет предотвратить ошибки из-за передачи пакета согласно недействительной информации о соединении.
На ФИГ. 2 предложен вариант способа для передачи пакетов, применимого к коммутатору. Способ содержит шаги S201-S205.
На шаге S201 получают подлежащей передаче пакет.
Способ для передачи пакетов по указанному варианту осуществления настоящей заявки применим к коммутатору, который может представлять собой физический коммутатор или виртуальный коммутатор. Примером служит виртуальный коммутатор. В данном случае виртуальный коммутатор получает/получает подлежащий передаче пакет, отправленный устройством-отправителем/получателем пакета.
На шаге S202 определяют, содержит ли первая таблица данных кэшированную информацию о соединении, соответствующую подлежащему передаче пакету.
Первая таблица данных служит для записи кэшированной информации о соединении двух устройств-отправителей/получателей пакета, между которыми установлено соединение, и первого идентификатора кэшированной информации о соединении.
Кэшированная информация о соединении, соответствующая пакету, включает в себя путь передачи пакета, а также может включать в себя идентификаторы устройств-отправителей/получателей пакета на пути передачи, например ИД (идентификационное обозначение) или IP-адрес и т.п. Если первая таблица данных содержит кэшированную информацию о соединении с путем передачи, включающим в себя идентификаторы устройства-отправителя пакета и устройства-получателя пакета, тождественные идентификаторам устройства-отправителя и устройства-получателя в подлежащем передаче пакете, данную кэшированную информацию о соединении используют в качестве кэшированной информации о соединении, соответствующей подлежащему передаче пакету, и определяют, что первая таблица данных содержит кэшированную информацию о соединении, соответствующую подлежащему передаче пакету.
Например, IP-адреса устройства-отправителя пакета и устройства-получателя пакета, содержащиеся в первом подлежащем передаче пакете, представляют собой соответственно 13 и 25. В первой таблице данных выполняют поиск и определяют, что первая таблица данных содержит первую кэшированную информацию о соединении, включающую в себя путь передачи, при этом IP-адреса устройства-отправителя пакета и устройства-получателя пакета на пути передачи - это 13 и 25 соответственно. Таким образом, определяют, что первая таблица данных содержит кэшированную информацию о соединении, соответствующую указанному первому подлежащему передаче пакету, которой является первая кэшированная информация о соединении.
В первой таблице данных опционально записан пятиэлементный кортеж для кэшированной информации о соединении. Если пятиэлементный кортеж в первой таблице данных тождествен пятиэлементному кортежу подлежащего передаче пакета, определяют, что первая таблица данных содержит кэшированную информацию о соединении, соответствующую подлежащему передаче пакету. Кэшированную информацию о соединении, соответствующую пятиэлементному кортежу в первой таблице данных, тождественному пятиэлементному кортежу подлежащего передаче пакета, используют в качестве кэшированной информации о соединении, соответствующей подлежащему передаче пакету. Пятиэлементные кортежи включают в себя IP-адрес источника, порт-источник, IP-адрес назначения, порт-адресат и протокол транспортного уровня. Использование пятиэлементного кортежа для определения кэшированной информации о соединении, соответствующей подлежащему передаче пакету, позволяет получить более точный результат определения.
На шаге S203, если первая таблица данных содержит кэшированную информацию о соединении, соответствующую подлежащему передаче пакету, получают первый идентификатор кэшированной информации о соединении из первой таблицы данных, причем первый идентификатор представляет собой идентификатор соединения, соответствующий кэшированной информации о соединении на момент создания кэшированной информации о соединении.
В частности, устройство в варианте по настоящей заявке - это устройство-отправитель/получатель пакета, которе может представлять собой физическое или виртуальное устройство. Кэшированная информация о соединении включает в себя идентификатор каждого устройства-отправителя/получателя пакета на пути передачи. Устройство, соответствующее идентификатору, содержащемуся в кэшированной информации о соединении, используют в качестве устройства, соответствующего кэшированной информации о соединении. В первой таблице данных записан первый идентификатор кэшированной информации о соединении. Первый идентификатор представляет собой идентификатор соединения, соответствующий кэшированной информации о соединении, записанный в момент создания кэшированной информации о соединении. Первый идентификатор кэшированной информации о соединении может представлять собой первые идентификаторы устройств-отправителей/получателей пакета, соответствующие кэшированной информации о соединении. Например, когда кэшированная информация о соединении записана в первую таблицу данных, устройства (устройства - отправители/получатели пакета), соответствующие кэшированной информации о соединении, это устройство 1, устройство 2 и устройство 3, при этом идентификатор соединения устройства 1 имеет значение 7, идентификатор соединения устройства 2 - значение 6, а идентификатор соединения устройства 3 -значение 9. Таким образом, первый идентификатор кэшированной информации о соединении может иметь значения 7, 6, 9.
В публичном облаке, ВЧО (виртуальные частные облака, частные сети) обеспечивают возможность совместного использования публичного облака несколькими пользователями, при этом каждый пользователь имеет идентификатор ВРЛВС (виртуальной расширяемой локальной вычислительной сети (ЛВС)), например ИД ВРЛВС, для обособления пользователей друг от друга. Для каждого пользователя сохраняют независимую структуру данных на виртуальном коммутаторе для записи кэшированной информации о соединении в сети 2-го уровня и сети 3-го уровня. Поэтому первый идентификатор кэшированной информации о соединении также может представлять собой первый идентификатор каждого пользователя, соответствующий кэшированной информации о соединении. Например, когда кэшированная информация о соединении записана в первую таблицу данных, пользователи, соответствующие кэшированной информации о соединении, это пользователь 1 и пользователь 2, при этом пользователь 1 имеет идентификатор соединения 1, а пользователь 2 - идентификатор соединения 8, поэтому первый идентификатором кэшированной информации о соединении может иметь значения 1, 8.
На шаге S204 получают информацию о соединении, соответствующую кэшированной информации о соединении, из второй таблицы данных и определяют второй идентификатор кэшированной информации о соединении согласно информации о соединении, соответствующей кэшированной информации о соединении, причем второй идентификатор представляет собой текущий идентификатор соединения, соответствующий кэшированной информации о соединении, изменение которого происходит в случае изменения информации о соединении.
Второй идентификатор - это текущий идентификатор соединения кэшированной информации о соединении. В случае изменения информации о соединении, соответствующей кэшированной информации о соединении, происходит соответствующее изменение текущего идентификатора соединения кэшированной информации о соединении по заранее заданному правилу изменения. Во второй таблице данных записана информация о соединении, соответствующая кэшированной информации о соединении. Информация о соединении, соответствующая кэшированной информации о соединении, может представлять собой идентификаторы соединения устройств-отправителей/получателей пакета, соответствующие кэшированной информации о соединении, или идентификаторы соединения пользователей, соответствующие кэшированной информации о соединении. Второй идентификатор кэшированной информации о соединении - это текущий идентификатор соединения кэшированной информации о соединении. В случае изменения информации о соединении, соответствующей кэшированной информации о соединении, происходит соответствующее изменение второго идентификатора кэшированной информации о соединении по заранее заданному правилу изменения. Заранее заданное правило изменения может представлять собой любое правило с возможностью осуществления изменения второго идентификатора.
Например, устройства (устройства-отправители/получатели пакета), соответствующие кэшированной информации о соединении, это устройство 1, устройство 2, устройство 3 и устройство 4. Устройство 1 имеет идентификатор соединения 11, устройство 2 - идентификатор соединения 11, устройство 3 - идентификатор соединения 9, а устройство 4 - идентификатор соединения 13. Таким образом, определяют, что второй идентификатор кэшированной информации о соединении в текущий момент имеет значение 11, 11, 9, 13. Если произойдет изменение информации о соединении устройства 2 и обновление идентификатора соединения устройства 2 на значение 12, произойдет соответствующее изменение второго идентификатора кэшированной информации о соединении на значения 11, 12, 9, 13.
Например, пользователи, соответствующие кэшированной информации о соединении, это пользователь 1 и пользователь 2. Пользователь 1 имеет идентификатор соединения 6, а пользователь 2 - идентификатор соединения 13. Таким образом, определяют, что второй идентификатор кэшированной информации о соединении в текущий момент имеет значения 6, 13. Если произойдет изменение информации о соединении пользователя 1 и обновление идентификатора соединения пользователя 1 на значение 7, произойдет соответствующее изменение второго идентификатора кэшированной информации о соединении на значения 7, 13.
На шаге S205, если второй идентификатор тождествен первому идентификатору, подлежащий передаче пакет передают согласно кэшированной информации о соединении.
Например, первый идентификатор кэшированной информации о соединении имеет значения 11, 9, 13, а второй идентификатор кэшированной информации о соединении - значения 11, 9, 13. Первый идентификатор и второй идентификатор кэшированной информации о соединении тождественны, и подлежащий передаче пакет передают согласно пути передачи в кэшированной информации о соединении.
В варианте по настоящей заявке, если второй идентификатор тождествен первому идентификатору, это означает, что кэшированная информация о соединении не недействительна. Подлежащий передаче пакет передают согласно кэшированной информации о соединении, тем самым обеспечивая быстрый путь для передачи подлежащего передаче пакета, предотвращая сбой передачи пакета и обеспечивая высокую эффективность передачи пакетов.
Коммутатор хранит две таблицы данных, т.е. первую таблицу данных и вторую таблицу данных.
Первая таблица данных служит для записи кэшированной информации о соединении. Кэшированную информацию о соединении создают, когда соединение между устройствами-отправителями/получателями пакета происходит в первый раз. Кэшированная информация о соединении включает в себя путь для передачи пакета между устройствами-отправителями/получателями пакета и первый идентификатор кэшированной информации о соединении. Первый идентификатор характеризует информацию о соединении каждого устройства на пути передачи пакета. Например, имеется три устройства на пути передачи пакета, т.е. устройство 1, устройство 2 и устройство 3. Когда установлено соединение связи, идентификатор соединения, соответствующий информации о соединении устройства 1, имеет значение 7, идентификатор соединения, соответствующий информации о соединении устройства 2, имеет значение 6, а идентификатор соединения, соответствующий информации о соединении устройства 3, имеет значение 9. Таким образом, первый идентификатор кэшированной информации о соединении имеет значения 7, 6, 9.
Во второй таблице данных записана информация о соединении каждого устройства-отправителя/получателя пакета. Информация о соединении представляет собой информацию реального времени о соединении устройства-отправителя/получателя пакета (в случае изменения информации о соединении устройства-отправителя/получателя пакета, устройство-отправитель/получатель пакета активно сообщает измененную информацию о соединении).
Когда нужно передать пакет, коммутатор получает кэшированную информацию о соединении, соответствующую пакету, из первой таблицы данных (кэшированная информация о соединении определяют по устройству-отправителю пакета и устройству-получателю пакета для пакета. Если первая таблица данных не содержит кэшированную информацию о соединении, коммутатор будет работать, как показано на ФИГ. 1), и получает первый идентификатор кэшированной информации о соединении, соответствующей пакету. Коммутатор получает информацию о соединении, соответствующую кэшированной информации о соединении, соответствующей пакету, из второй таблицы данных (т.е. информацию о соединении каждого устройства на пути передачи пакета, записанную в кэшированной информации о соединении) и определяет второй идентификатор кэшированной информации о соединении по этой информации о соединении.
Если второй идентификатор тождествен первому идентификатору, это означает, что кэшированная информация о соединении не недействительна. Таким образом, подлежащий передаче пакет передают согласно кэшированной информации о соединении, тем самым обеспечивая быструю передачу подлежащего передаче пакета и предотвращая сбой передачи пакета. Если второй идентификатор отличен от первого идентификатора, это означает, что кэшированная информация о соединении недействительна. Поэтому необходимо определить путь для передачи пакета по способу на ФИГ. 1 и обновить кэшированную информацию о соединении в первой таблице данных.
Способ для передачи пакетов в одном из вариантов по настоящей заявке опционально предусматривает сохранение первой таблицы данных и второй таблицы данных в кэш-памяти. Первую таблицу данных и вторую таблицу данных сохраняют в виде кэшированных данных с возможностью быстрого доступа к ним, тем самым обеспечивая возможность быстрой и эффективной передачи пакета.
Опционально, способ для передачи пакетов по одному из вариантов по настоящей заявке дополнительно содержит следующие шаги.
На шаге 1 получают идентификатор соединения, отправленный устройством с обновленной конфигурацией, причем устройство с обновленной конфигурацией представляет собой устройство-отправитель/получатель пакета с измененной информацией о соединении.
Когда устройство-отправитель/получатель пакета обнаружит изменение в информации о своем соединении, устройство обновит идентификатор соединения по заранее заданному правилу обновления. Когда устройство-отправитель/получатель пакета выявляет изменение в информации о своем соединении, это означает, что устройство-отправитель/получатель пакета выявляет то, что произошло изменение конфигурации, влияющей на отправку или получение пакета. Например, может произойти изменение адреса устройства-отправителя/получателя пакета, изменение правила группы безопасности устройства-отправителя/получателя пакета или изменение интерфейса коммутатора, соответствующего устройству-отправителю/получателю пакета. В качестве другого примера, в ВЧО публичного облака может произойти изменение конфигурации плоскости управления, перемещение пользовательских служб, поддерживаемых устройством-отправителем/получателем пакета, или что-либо подобное.
На шаге 2 обновляют вторую таблицу данных с информацией о соединении, соответствующей идентификатору соединения, отправленному устройством, путем ввода обновленной конфигурации.
Во второй таблице данных, идентификатор соединения устройства или идентификатор соединения пользователя в информации о соединении, соответствующий идентификатору соединения, отправленному устройством с обновленной конфигурацией, обновляют на идентификатор соединения, отправленный устройством с обновленной конфигурацией. Например, виртуальный коммутатор получает пакет, отправленный устройством 1, указывающий, что идентификатор соединения устройства 1 имеет значение 3. Виртуальный коммутатор обновляет идентификатор соединения устройства 1, содержащийся в информации о соединении во второй таблице данных, на 3. В качестве другого примера, виртуальный коммутатор получает пакет, отправленный устройством 1, указывающий, что идентификатор соединения пользователя 4 имеет значение 3. Виртуальный коммутатор обновляет идентификатор соединения пользователя 4, содержащийся в информации о соединении во второй таблице данных, на 3.
В варианте по настоящей заявке информацию о соединении во второй таблице данных обновляют согласно соответствующему идентификатору соединения, что позволяет гарантировать постоянную тождественность каждой единицы информации о соединении, записанной во второй таблице данных, текущей фактической информации о соединении каждого устройства, и, тем самым, предотвратить сбой передачи пакетов.
После получения информации о соединении, соответствующей кэшированной информации о соединении, из второй таблицы данных и определения второго идентификатора кэшированной информации о соединении согласно информации о соединении, соответствующей кэшированной информации о соединении, способ опционально дополнительно содержит следующие шаги.
На шаге 1, если второй идентификатор кэшированной информации о соединении отличен от первого идентификатора кэшированной информации о соединении, кэшированную информацию о соединении, соответствующую подлежащему передаче пакету, удаляют из первой таблицы данных.
Например, первый идентификатор кэшированной информации о соединении имеет значения 9, 11, а второй идентификатор кэшированной информации о соединении - значения 11, 11. Тогда кэшированную информация о соединении удаляют из первой таблицы данных. Когда первый идентификатор и второй идентификатор одной и той же кэшированной информации о соединении отличны друг от друга, это указывает на то, что кэшированная информация о соединении стала недействительной. Если будет продолжена передача пакетов согласно этой кэшированной информации о соединении, произойдет сбой отправки пакетов. Недействительную кэшированную информацию о соединении удаляют из первой таблицы данных, и не передают пакеты согласно недействительной кэшированной информации о соединении, что позволит предотвратить сбой передачи пакетов.
На шаге 2 получают адрес назначения подлежащего передаче пакета и определяют путь передачи для подлежащего передаче пакета согласно адресу назначения. Адрес назначения представляет собой адрес пункта назначения подлежащего передаче пакета.
Если кэшированная информация о соединении недействительна, виртуальный коммутатор должен выполнить поиск в таблице МАС-адресов или таблице маршрутизации для определения пути передачи для подлежащего передаче пакета.
На шаге 3 используют путь передачи для подлежащего передаче пакета в качестве текущей кэшированной информации о соединении, получают информацию о соединении, соответствующую текущей кэшированной информации о соединении, из второй таблицы данных и записывают идентификатор соединения для текущей кэшированной информации о соединении согласно информации о соединении, соответствующей текущей кэшированной информации о соединении.
Во второй таблице данных виртуальный коммутатор получает текущий путь передачи и идентификаторы устройств-отправителей/получателей пакета на текущем пути передачи, используемые в качестве идентификатора соединения для текущей кэшированной информации о соединении.
На шаге 4 используют идентификатор соединения для текущей кэшированной информации о соединении в качестве первого идентификатора текущей кэшированной информации о соединении и записывают текущую кэшированную информацию о соединении и первый идентификатор текущей кэшированной информации о соединении в первую таблицу данных.
Виртуальный коммутатор использует идентификатор соединения для текущей кэшированной информации о соединении в качестве первого идентификатора текущей кэшированной информации о соединении и записывает текущую кэшированную информацию о соединении и первый идентификатор текущей кэшированной информации о соединении в первую таблицу данных. Изменение в информации о соединении обычно происходит из-за перемещения пользовательских служб. Например, если сервер работает с высокими нагрузками, пользовательские службы будут перемещены на другой сервер в сети 2-го уровня. В этом случае идентификатор соединения для текущей кэшированной информации о соединении представляет собой второй идентификатор удаленной кэшированной информации о соединении, при этом второй идентификатор удаленной кэшированной информации о соединении можно использовать в качестве первого идентификатора текущей кэшированной информации о соединении, а затем записать в первой таблице данных.
На шаге 5 передают подлежащий передаче пакет согласно пути передачи для данного подлежащего передаче пакета.
Виртуальный коммутатор отправляет, через интерфейс, на который указывает путь передачи, подлежащий передаче пакет к следующему транзитному устройству, которое должно принять подлежащий передаче пакет согласно пути передачи.
Кэшированная информация о соединении становится недействительной, в случае изменения информации о соединении или изменение конфигурации плоскости управления. Например, изменение информации о соединении возможно в случаях добавления или удаления устройства-отправителя/получателя пакета, изменения правила группы безопасности, изменения интерфейса или адреса устройства-отправителя/получателя пакета и т.п. Изменение конфигурации плоскости управления возможно, например, в случае перемещения службы передачи пакетов пользователя А от виртуального коммутатора А к виртуальному коммутатору В. Когда первый идентификатор и второй идентификатор кэшированной информации о соединении отличны друг от друга, кэшированную информацию о соединении удаляют, а путь передачи для подлежащего передаче пакета определяют, выполняя поиск в таблице МАС-адресов или таблице маршрутизации, В отличие от предшествующего уровня техники, на котором просматривают всю кэшированную информацию о соединении в первой таблице данных для удаления недействительной кэшированной информации о соединении всякий раз, когда выявляют изменение в информации о соединении устройства, настоящее решение позволяет значительно повысить скорость передачи пакетов, особенно если первая таблица данных содержит миллионы единиц кэшированной информации о соединении. Просмотр большого количества кэшированной информации о соединении в первой таблице данных займет много времени, что серьезно влияет на продолжительность обработки для исполнения команды из плоскости управления. Вариант осуществления по настоящей заявке может значительно повысить эффективность передачи пакетов за счет определения первого идентификатора и второго идентификатора.
В вариантах по настоящей заявке предложен способ для передачи пакетов в случае, когда кэшированная информация о соединении недействительна, а также способ для создания новой кэшированной информации о соединении для облегчения последующей передачи пакета согласно новой кэшированной информации о соединении, чтобы повысить скорость передачи пакетов и обеспечить высокую эффективность передачи пакетов.
В качестве необязательного варианта, можно получить адрес назначения подлежащего передаче пакета и определить путь передачи для подлежащего передаче пакета согласно адресу назначения следующим образом.
На шаге 1, если адрес назначения находится в том же самом сетевом сегменте, что и адрес текущего коммутатора, выполняют поиск в таблице МАС-адресов для определения информации о пути для подлежащего передаче пакета. Информация о пути включает в себя адрес(-а) передачи, представляющий(-ие) собой адрес(-а) следующего транзитного устройства (устройств) для получения подлежащего передаче пакета.
В модели ВОС (взаимосвязи открытых систем), в основе 2-го уровня, т.е. уровня канала данных, лежат МАС-адреса. Каждый хост или виртуальная машина на 2-ом уровне имеет постоянный МАС-адрес. В таблице МАС-адресов МАС-адреса увязаны с интерфейсами. Проверка таблицы МАС-адресов позволяет определить интерфейс(-ы), соответствующий адресу(-ам) назначения в подлежащем передаче пакете для определения пути передачи для подлежащего передаче пакета.
На шаге 2 определяют устройство, к которому должно быть применено правило группы безопасности, согласно адресу передачи в информации о пути, и применяют правило группы безопасности к устройству.
Виртуальный коммутатор использует устройство с адресом передачи в информации о пути в качестве устройства, к которому нужно применить правило группы безопасности, и отправляет пакет устройству, к которому нужно применить правило группы безопасности, через интерфейс, соответствующий адресу передачи, для проверки соответствия правилу группы безопасности.
На шаге 3 устройство, соответствующее правилу группы безопасности, используют в качестве получателя подлежащего передаче пакета, для определения пути передачи для подлежащего передаче пакета.
Правило группы безопасности служит для обеспечения информационной безопасности каждого устройства-отправителя/получателя пакета. В случае положительного результата проверки соответствия правилу группы безопасности, может быть установлено соединение связи между устройствами. Если результат проверки соответствия правилу группы безопасности будет отрицательным, соединение связи между устройствами запрещают. Правило группы безопасности настраивают согласно фактическим требованиям, которые могут представлять собой идентификационную политику безопасности, инструкционную политику безопасности или ролевую политику безопасности и т.п. Положительный результат проверки соответствия правилу группы безопасности означает, что указанная информация подлежащего передаче пакета соответствует заранее установленному правилу. Например, если IP-адрес источника подлежащего передаче пакета находится в указанном сегменте адресов, результат проверки соответствия правилу группы безопасности считается положительным.
В варианте по настоящей заявке предложен способ для передачи пакетов на основе МАС-адресов для осуществления передачи пакетов на 2-ом уровне.
В качестве необязательного варианта, получают адрес назначения подлежащего передаче пакета и определяют путь передачи для подлежащего передаче пакета согласно адресу назначения следующим образом.
На шаге 1, если адрес назначения не находится в том же самом сетевом сегменте, что и адрес текущего коммутатора, выполняют поиск в списке управления доступом.
В модели ВОС, если адрес назначения на находится в том же сетевом сегменте, что и адрес текущего виртуального коммутатора, передача пакетов будет происходить на 3-м уровне, т.е. сетевом уровне. Виртуальный коммутатор выполняет поиск в СУД (Списке управления доступом) для определения того, разрешить ли устройству для отправки подлежащего передаче пакета осуществлять связь с устройством для получения подлежащего передаче пакета, то есть, разрешить ли передачу подлежащего передаче пакета. Поиск в СУД также позволяет определить приоритет передачи подлежащего передаче пакета.
На шаге 2, если список управления доступом позволяет осуществить передачу подлежащего передаче пакета, выполняют поиск в таблице маршрутизации и таблице соседей для определения информации о пути для подлежащего передаче пакета, причем информация о пути включает в себя адрес передачи, представляющий собой адрес следующего транзитного устройства для получения подлежащего передаче пакета.
В таблице маршрутизации записаны маршруты от текущего виртуального коммутатора до других конкретных сетевых пунктов назначения, например, других коммутаторов или маршрутизаторов, не являющихся текущим виртуальным коммутатором. В таблице соседей записано соответствие между интерфейсами текущего виртуального коммутатора и соседних коммутаторов (коммутаторы в качестве следующего транзитного участка). Текущий виртуальный коммутатор сперва выполняет поиск в таблице маршрутизации для определения следующего транзитного коммутатора для получения подлежащего передаче пакета, а затем -поиск в таблице соседей для определения интерфейса для осуществления связи с коммутатором, который должен получить подлежащий передаче пакет. Так определяют информацию о пути подлежащего передаче пакета.
На шаге 3 определяют устройство, к которому должно быть применено правило группы безопасности, согласно адресу передачи в информации о пути, и применяют правило группы безопасности к устройству.
На шаге 4 устройство, соответствующее правилу группы безопасности, используют в качестве получателя подлежащего передаче пакета для определения пути передачи для подлежащего передаче пакета.
В варианте по настоящей заявке, предложен способ для передачи пакетов на основе таблицы маршрутизации и таблицы соседей для осуществления передачи пакетов на 3-м уровне.
В качестве необязательного варианта, получают первый идентификатор кэшированной информации о соединении из первой таблицы данных следующим образом.
На шаге 1 в первой таблице данных ищут ключ, соответствующий пятиэлементному кортежу подлежащего передаче пакета, если первая таблица данных содержит кэшированную информацию о соединении, соответствующую пакету, и используют этот ключ в качестве ключа подлежащего передаче пакета.
В одном из вариантов по настоящей заявке, первая таблица данных реализована в виде ячейки хэша, при этом ключ соответствующей ячейки хэша получают посредством пятиэлементного кортежа подлежащего передаче пакета. Пятиэлементный кортеж включает в себя IP-адрес источника, порт-источник, IP-адрес назначения, порт-адресат, и протокол транспортного уровня. Соответствующая ячейка хэша также хранит такую информацию, как IP-адрес источника, порт-источник, IP-адрес назначения, порт-адресат и протокол транспортного уровня. Ячейки хэша также хранят ключи, соответствующие кэшированной информации о соединении.
На шаге 2 из первой таблицы данных по ключу подлежащего передаче пакета получают головной указатель связанного списка в виде ячейки хэша.
На шаге 3 осуществляют поиск в связанном списке, на который указывает головной указатель связанного списка, для получения кэшированной информации о соединении и первого идентификатора кэшированной информации о соединении.
В связанном списке, на который указывает головной указатель связанного списка, записаны кэшированная информация о соединении, соответствующая этому связанному списку, и первый идентификатор кэшированной информации о соединении. Кэшированная информация о соединении, соответствующая этому связанному списку, это кэшированная информация о соединении с пятиэлементным кортежем, тождественным пятиэлементным кортежам в ячейке хэша, соответствующей связанному списку.
В варианте по настоящей заявке предложен способ поиска кэшированной информации о соединении и первого идентификатора устройства в первой таблице данных. Кэшированную информацию о соединении и первый идентификатор устройства находят с помощью ячеек хэша, что улучшает точность и эффективность поиска.
В одном случае реализации данного варианта по настоящей заявке опционально устанавливают блокировку чтения-записи для каждой ячейки хэша.
Блокировку чтения-записи применяют для каждой ячейки хэша. Блокировка чтения-записи позволяет осуществлять одновременные операции чтения в ячейке хэша, но не более одной операции записи в ячейке хэша. Блокировка чтения-записи не позволяет осуществлять одновременно операцию(-ии) чтения и операцию записи в ячейке хэша.
В варианте по настоящей заявке устанавливают блокировку чтения-записи для каждой ячейки хэша с возможностью применения для параллельных операций в многоядерных средах. Гранулярность блокировки чтения-записи достаточно мелкая, в связи с чем каждую блокировку чтения-записи реализуют для одной ячейки хэша, при этом разные потоки не приведут к возникновению ситуации "блокировка-ожидание".
Для удаления кэшированной информации о соединении с первым идентификатором, отличным от второго идентификатора, опционально используют способ "чтение - копирование - обновление", тем самым гарантируя то, что плоскость данных не разблокирует структуру данных до тех пор, пока подлежащий передаче пакет не будет обработан,
В одном из вариантов по настоящей заявке способ "чтение - копирование - обновление" используют для того, чтобы исходная кэшированная информация о соединении не была удалена до того, как будет обновлена текущая кэшированная информация о соединении, тем самым предотвращая сбой виртуального коммутатора из-за доступа к удаленным данным.
В качестве необязательного варианта, после определения того, содержит ли первая таблица данных кэшированную информацию о соединении, соответствующую подлежащему передаче пакету, способ дополнительно содержит следующие шаги.
На шаге 1, если первая таблица данных не содержит кэшированную информацию о соединении, соответствующую подлежащему передаче пакету, получают адрес назначения подлежащего передаче пакета, причем адрес назначения является адресом пункта назначения подлежащего передаче пакета.
На шаге 2, если адрес назначения находится в том же самом сетевом сегменте, что и адрес текущего коммутатора, выполняют поиск в таблице МАС-адресов для определения информации о пути для подлежащего передаче пакета, причем информация о пути включает в себя адрес передачи, являющийся адресом следующего транзитного устройства для получения подлежащего передаче пакета.
На шаге 3 определяют устройство, к которому должно быть применено правило группы безопасности, согласно адресу передачи в информации о пути, и применяют правило группы безопасности к устройству.
На шаге 4 устройство, соответствующее правилу группы безопасности используют в качестве получателя подлежащего передаче пакета для определения пути передачи для подлежащего передаче пакета.
На шаге 5 этот путь передачи для подлежащего передаче пакета используют в качестве текущей кэшированной информации о соединении.
На шаге 6 получают информацию о соединении, соответствующую текущей кэшированной информации о соединении, из второй таблицы данных, определяют идентификатор соединения для текущей кэшированной информации о соединении, используют идентификатор соединения текущей кэшированной информации о соединении в качестве первого идентификатора текущей кэшированной информации о соединении, и записывают текущую кэшированную информацию о соединении и первый идентификатор текущей кэшированной информации о соединении в первую таблицу данных.
Идентификатор соединения текущей кэшированной информации о соединении представляет собой второй идентификатор исходной кэшированной информации о соединении.
На шаге 7 передают подлежащий передаче пакет согласно пути передачи для подлежащего передаче пакета.
В варианте по настоящей заявке предложен способ для передачи пакетов на основе МАС-адресов для осуществления передачи пакетов по медленному пути на основе МАС-адресов на 2-ом уровне.
В качестве необязательного варианта, после определения того, содержит ли первая таблица данных кэшированную информацию о соединении, соответствующую подлежащему передаче пакету, способ дополнительно содержит следующие шаги.
На шаге 1, если первая таблица данных не содержит кэшированную информацию о соединении, соответствующую подлежащему передаче пакету, получают адрес назначения подлежащего передаче пакета, причем адрес назначения является адресом пункта назначения подлежащего передаче пакета.
На шаге 2, если адрес назначения не находится в том же самом сетевом сегменте, что и адрес текущего виртуального коммутатора, выполняют поиск в списке управления доступом.
На шаге 3, если список управления доступом позволяет передать пакет, выполняют поиск в таблице маршрутизации и таблице соседей для определения информации о пути для подлежащего передаче пакета, причем информация о пути включает в себя адрес(-а) передачи, являющийся(-щиеся) адресом(-ами) следующего транзитного устройства (устройств) для получения подлежащего передаче пакета.
На шаге 4 определяют устройство, к которому должно быть применено правило группв безопасности, согласно адресу передачи в информации о пути, и применяют правило группы безопасности к устройству.
На шаге 5 устройство, соответствующее правилу группы безопасности используют в качестве получателя подлежащего передаче пакета для определения пути передачи для подлежащего передаче пакета.
На шаге 6 этот путь передачи для подлежащего передаче пакета используют в качестве текущей кэшированной информации о соединении.
На шаге 7 получают информацию о соединении, соответствующую текущей кэшированной информации о соединении, из второй таблицы данных, определяют идентификатор соединения для текущей кэшированной информации о соединении, используют идентификатор соединения текущей кэшированной информации о соединении в качестве первого идентификатора текущей кэшированной информации о соединении, и записывают текущую кэшированную информацию о соединении и первый идентификатор текущей кэшированной информации о соединении в первой таблице данных.
Идентификатор соединения текущей кэшированной информации о соединении представляет собой второй идентификатор исходной кэшированной информации о соединении.
На шаге 8 передают подлежащий передаче пакет согласно пути передачи для подлежащего передаче пакета.
В варианте по настоящей заявке предложен способ для передачи пакетов с использованием таблицы маршрутизации и таблицы соседей для осуществления передачи пакетов по медленному пути по IP-адресу на 3-ем уровне.
В качестве необязательного варианта, для таких методик, как ОКВВВ (однокорневая визуализация ввода/вывода), возможна отправка кэшированной информации о соединении в сетевую плату для каждой виртуальной машины, отправляющей и принимающей пакеты, для обеспечения быстрой передачи на уровне сетевой платы. Для этой цели виртуальный коммутатор преобразуют в генератор правил передачи. Виртуальный коммутатор отправляет содержимое первой таблицы данных и второй таблицы данных в сетевую плату хоста, где расположена виртуальная машина, отправляющая и получающая пакеты. Для сетевой платы с возможностью передачи потока (потока пакетов) в конфигурации ОКВВВ, при осуществлении записи кэшированной информации о соединении могут быть сгенерированы правила в двух направлениях для обращения к интерфейсу для отправки правила потока (правила передачи), созданного физической сетевой платой. Последующий пакет данных будет передан непосредственно в сетевую плату. Когда подлежащий передаче пакет поступит в сетевую плату хоста, сетевая плата передает подлежащий передаче пакет способом для передачи пакетов согласно первой таблице данных и второй таблице данных. Например, сетевая плата получает подлежащий передаче пакет и выявляет, содержится ли кэшированная информация о соединении, соответствующая подлежащему передаче пакету, в первой таблице данных. Если первая таблица данных содержит кэшированную информацию о соединении, соответствующую подлежащему передаче пакету, сетевая плата получает первый идентификатор кэшированной информации о соединении в первой таблице данных. Сетевая плата получает информацию о соединении, относящуюся к кэшированной информации о соединении, во второй таблице данных и определяет второй идентификатор кэшированной информации о соединении. Если первый идентификатор и второй идентификатор кэшированной информации о соединении тождественны, сетевая плата передает подлежащий передаче пакет согласно кэшированной информации о соединении. При несоответствии правилу потока сетевой платы, пакет передают в виртуальный коммутатор для обработки. Пакеты передают непосредственно через сетевую плату для обеспечения передачи пакетов на физическом уровне, что позволяет дополнительно ускорить передачу пакетов.
В варианте по настоящей заявке скорость передачи пакетов дополнительно увеличивают тремя способами передачи, в основе которых лежит применение сетевой платы, быстрого пути виртуального коммутатора и медленного пути виртуального коммутатора, тем самым решая проблему низкой производительности передачи пакетов на виртуальном коммутаторе, приводимом в действие виртуальной сетевой платой на уровне виртуального ввода-вывода (virtio) (уровне абстракции над устройством в гипервизоре паравиртуализации), и проблему невозможности управления обработкой пакета виртуальным коммутатором из-за того, что виртуальная функция сетевой платы на основе ОКВВВ осуществляет непосредственный доступ к внутренним функциям виртуального коммутатора.
На ФИГ. 3, в одном из вариантов осуществления настоящей заявки, предложен способ для передачи пакетов, применимый к устройству-отправителю/-получателю пакета. Способ содержит шаги S301-S302.
На шаге S301 осуществляют мониторинг информации о соединении для соединения с текущей сетью и обновляют идентификатор соединения по заранее заданному правилу обновления в случае изменения информации о соединении для соединения с текущей сетью.
Изменение информации о соединении для соединения с текущей сетью означает, что устройство-отправитель/получатель пакета выявляет изменение конфигурации, влияющей на отправку или получение пакетов. Например, происходит изменение адреса устройства-отправителя/получателя пакета, изменение правила группы безопасности устройства-отправителя/получателя пакета или изменение интерфейса коммутатора, соответствующего устройству-отправителю/получателю пакета. В качестве другого примера, в ВЧО публичного облака происходит изменение конфигурации плоскости управления, перемещение пользовательской службы, реализованной на устройстве-отправителе/получателе пакета или нечто подобное.
Заранее заданное правило обновления может представлять собой любое правило с возможностью обновления идентификатора соединения без повтора. Например, идентификатор соединения каждого устройства-отправителя/получателя пакета или пользователя имеет установленное начальное значение 1. Если устройство-отправитель/получатель пакета выявит изменение информации о соединении, значение идентификатора соединения будет увеличено на 1 для получения обновленного идентификатора соединения. Всякий раз, в случае изменения информации о соединении устройства-отправителя/получателя пакета, будет происходить изменение его идентификатора соединения. Это облегчает определение коммутатором текущего состояния устройства-отправителя/получателя пакета и предотвращает обновление коммутатором второй таблицы данных по ошибке.
Если устройство-отправитель/получатель пакета выявит изменение своей информации о соединении с текущей сетью, устройство-отправитель/получатель пакета обновит соответствующий идентификатор соединения по заранее заданному правилу обновления. Например, устройство-отправитель/получатель 1 пакета имеет текущий идентификатор соединения 3. Если устройство-отправитель/получатель 1 пакета выявит изменение своего правила группы безопасности, устройство-отправитель/получатель 1 пакета обновит идентификатор соединения на значение 4. В качестве другого примера, пользователь 3, обслуживаемый устройством-отправителем/получателем 1 пакета, имеет текущий идентификатор соединения 2. При перемещении служб пользователя 3 на другое устройство-отправитель/получатель пакета 2, устройство-отправитель/получатель 1 пакета обновляет идентификатор соединения пользователя 3 на значение 3.
На шаге S302 обновленный идентификатор соединения отправляют коммутатору, чтобы коммутатор обновил вторую таблицу данных обновленным идентификатором соединения.
Например, устройство-отправитель/получатель 1 пакета отправляет виртуальному коммутатору информацию, указывающую что идентификатор соединения устройства-отправителя/получателя 1 пакета было обновлен на значение 4. Получив эту информацию, виртуальный коммутатор обновляет идентификатор соединения в информации о соединении устройства-отправителя/получателя 1 пакета во второй таблице данных на значение 4. В качестве другого примера, устройство-отправитель/получатель 1 пакета отправляет виртуальному коммутатору информацию, указывающую, что идентификатор соединения пользователя 3 был обновлен на значение 3. Получив эту информацию, виртуальный коммутатор обновляет идентификатор соединения в информации о соединении пользователя 3 во второй таблице данных на значение 3.
В качестве необязательного варианта, способ для передачи пакетов применимый к устройству-отправителю/-получателю пакета по указанному варианту осуществления настоящей заявки разъяснен ниже на примере. Идентификатор соединения user__age устройства-отправителя/получателя А пакета, обслуживающего пользователя В, имеет значение 7, т.е. user__age=7, По завершении обслуживания пользователя В, устройство-отправитель/получатель А пакета переходит к обслуживанию пользователя С, при этом устройство-отправитель/получатель А пакета обновляет идентификатор соединения на значение 8, т.е. user_age=8. Когда устройство-отправитель/получатель А пакета отправляет пакет виртуальному коммутатору, в пакет добавляют значение user_age=8, чтобы виртуальный коммутатор обновил идентификатор соединения устройства-отправителя/получателя А пакета во второй таблице данных после получения пакета.
В варианте по настоящей заявке, когда происходит изменение информации о соединении устройства-отправителя/получателя пакета, обновляют идентификатор соединения и отправляют обновленный идентификатор соединения коммутатору, чтобы коммутатор обновил вторую таблицу данных обновленным идентификатором соединения. Далее коммутатор передает подлежащий передаче пакет согласно первой таблице данных и второй таблице данных, что позволяет предотвратить сбой передачи пакетов и обеспечить высокую эффективность передачи пакетов.
В качестве необязательного варианта, обновленный идентификатор соединения отправляют коммутатору следующим образом.
Всякий раз, когда подлежащий передаче пакет отправляют коммутатору, к подлежащему передаче пакету добавляют обновленный идентификатор соединения.
Текущий идентификатор соединения добавляют к подлежащему передаче пакету всякий раз, когда отправляют подлежащий передаче пакет, что позволяет уменьшить сигнальные нагрузки по сравнению с теми, что имеют место при отдельной отправке обновленного идентификатора соединения всякий раз после того, как устройство-отправитель/получатель пакета обновит идентификатор соединения.
Обновленный идентификатор соединения опционально отправляют коммутатору следующим образом.
Всякий раз, когда происходит обновление идентификатора соединения, обновленный идентификатор соединения незамедлительно отправляют коммутатору.
Когда устройство-отправитель/получатель пакета изменяет идентификатор соединения, оно незамедлительно отправляет текущий идентификатор соединения виртуальному коммутатору. В отличие от варианта с добавлением идентификатора соединения к подлежащему передаче пакету, это позволяет гарантировать высокую степень согласованности между идентификатором соединения в информации о соединении, записанной во второй таблице данных, и текущим фактическим идентификатором соединения и, тем самым, предотвратить сбой передачи подлежащего передаче пакета из-за задержки.
На ФИГ. 4 раскрыта схема последовательности другого способа для передачи пакетов по одному из вариантов по настоящей заявке, применимого к коммутатору. Способ содержит следующие шаги.
На шаге S401 виртуальный коммутатор получает пакет.
Виртуальный коммутатор - обязательный компонент в ВЧО публичного облака и выполнен с возможностью обособления виртуальных машин, передачи пакетов на 2-ом уровне и 3-ем уровне в сети, а также для безопасной обработки и иных функций. В настоящее время известно множество решений для обособления при использовании технологии ВЧО. Наиболее распространенным решением является ВРЛВС (виртуальная расширяемая ЛВС). В ВРЛВС пакет инкапсулируют с заголовком протокола передачи пользовательских датаграмм - UDP-заголовком и заголовком ВРЛВС для осуществления естественной маршрутизации на 3-м уровне нижележащей сети. Получив пакет, виртуальный коммутатор, действующий как оконечное устройство ВРЛВС, декапсулирует полученный пакет ВРЛВС и передаст пакет виртуальной машине согласно соответствующей записи передачи. Когда виртуальная машина отправляет пакет вовне, коммутатор получает пакет, отправленный виртуальной машиной, инкапсулирует пакет с образованием инкапсуляции ВРЛВС, а затем определяет маршрут и отправляет пакет вовне. Таким образом, пакеты, передаваемые в нижележащей сети, являются инкапсулированными.
ВЧО (виртуальные частные облака, частные сети) публичного облака обеспечивают возможность совместного использования публичного облака несколькими пользователями, при этом каждый пользователь имеет идентификатор ВРЛВС, например, ИД ВРЛВС, для обособления пользователей друг от друга. Для каждого пользователя сохраняют независимую структуру данных на виртуальном коммутаторе для записи кэшированной информации о соединении в сети 2-го уровня и кэшированной информации о соединении в сети 3-го уровня. Виртуальный коммутатор передает полученный пакет по МАС-адресам в БДП (базе данных передачи) на 2-ом уровне и передает пакет согласно таблице маршрутизации и таблице соседей на 3-м уровне.
На шаге S402 виртуальный коммутатор выявляет, имеется ли кэшированная информация о соединении, соответствующая пакету. Если кэшированная информация о соединении, соответствующая пакету, имеется, способ переходит на шаг S403. Если кэшированная информация о соединении, соответствующая пакету, отсутствует, способ переходит на шаг S405.
Виртуальный коммутатор ищет ключ, соответствующий пятиэлементному кортежу подлежащего передаче пакета, в первой таблице данных, и используют данный ключ в качестве ключа пакета; получает в первой таблице данных головной указатель связанного списка в ячейке хэша, соответствующей ключу; ищет связанный список, на который указывает головной указатель связанного списка, для получения кэшированной информации о соединении и первого идентификатора conn_age кэшированной информации о соединении. Кэшированная информация о соединении включает в себя путь передачи для пакета. Если виртуальный коммутатор выявит кэшированную информацию о соединении, соответствующую пакету, в первой таблице данных, определяют, что в первой таблице данных содержится кэшированная информация о соединении, соответствующая пакету. Если виртуальный коммутатор не выявит какую-либо кэшированную информацию о соединении, соответствующую пакету, в первой таблице данных, определяют, что первая таблица данных не содержит кэшированную информацию о соединении, соответствующую пакету.
Идентификатор conn__age кэшированной информации о соединении представляет собой второй идентификатор thread__age пользователя, соответствующий кэшированной информации о соединении на момент создания кэшированной информации о соединении. В среде ВЧО публичного облака, идентификатор соединения user_age ведут для каждого пользователя. При отправке пакета, устройство-отправитель/получатель пакета, например, виртуальная машина, добавляет идентификатор пользователя user_age к пакету. Когда виртуальный коммутатор получает пакет, он считывает user__age пользователя и обновляет значение thread__age пользователя на значение user_age пользователя.
Первая таблица данных реализована в виде ячеек хэша. Ячейка хэша хранит пятиэлементный кортеж(-и) успешно переданного пакета(-ов) и соответствующий ключ. Смещение ключа соответствует головному указателю связанного списка, отсылающему к связанному списку, в котором записаны кэшированная информация о соединении и первый идентификатор каждого устройства, соответствующий кэшированной информации о соединении. Для каждой ячейки хэша ведут блокировку чтения-записи. Блокировка чтения-записи позволяет осуществлять одновременные операции чтения в ячейке хэша, но не более одной операции записи в ячейке хэша, при этом блокировка чтения-записи не позволяет осуществлять одновременно операцию(-ии) чтения и операцию записи в ячейке хэша. Блокировка чтения-записи можно применять для параллельных операций в многоядерных средах. Гранулярность блокировки чтения-записи достаточно мелкая, в связи с чем каждую блокировку чтения-записи реализуют для одной ячейки хэша, при этом разные потоки не приведут к операции "блокировка-ожидание".
На шаге S403 виртуальный коммутатор получает идентификаторы thread__age и conn_age кэшированной информации о соединении и определяет, тождественны ли conn__age и thread__age кэшированной информации о соединении. Если они отличны друг от друга, способ переходит на шаг S404; в противном случае способ переходит на шаг S412,
Виртуальный коммутатор осуществляет поиск в кэшированной второй таблице данных, где записаны идентификаторы пользователей и значения thread__age для пользователей. Вторая таблица данных может представлять собой хэш-таблицу или столбчатые данные и т.п.
Значение thread__age во второй таблице данных ведут в соответствии со значением user__age, отправленным устройством-отправителем/получателем пакета. В среде ВЧО публичного облака переменный идентификатор user_age ведут для каждого пользователя. Когда происходит изменение конфигурации, влияющей на кэшированную информацию о соединении пользователя, значение user_age пользователя увеличивают, чтобы указать плоскости данных о том, что произошло изменение конфигурации. Отправляя пакет, устройство-отправитель/получатель А пакета добавляет user_age пользователя к пакету. При получении пакета виртуальным коммутатором в плоскости данных, он считывает user__age пользователя. Если значение user_age пользователя отлично от значения thread__age пользователя, значение thread_age пользователя обновляют на значение user__age пользователя. Устройство-отправитель/получатель А пакета добавляет user__age к пакету, что позволяет уменьшить сигнальные нагрузки по сравнению с теми, что имеют место при отдельной отправке user__age.
На шаге S404 удаляют кэшированную информацию о соединении.
Если первый идентификатор и второй идентификатор кэшированной информации о соединении отличны друг от друга, это указывает на то, что кэшированная информация о соединении стала недействительной. Если пакет будет передан согласно недействительной кэшированной информации о соединении, произойдет сбой передачи пакета. Поэтому эта кэшированная информация о соединении подлежит удалению.
В качестве необязательного варианта, используют способ ЧКО ("чтение - копирование - обновление") для удаления кэшированной информации о соединении с первым идентификатором, отличным от второго идентификатора, тем самым гарантируя то, что плоскость данных не разблокирует структуру данных до тех пор, пока подлежащий передаче пакет не будет обработан. Способ ЧКО используют для того, чтобы исходная кэшированная информация о соединении не была удалена до того, как будет обновлена текущая кэшированная информация о соединении, тем самым предотвращая сбой виртуального коммутатора из-за доступа к удаленным данным.
На ФИГ. 5 представлена принципиальная схема удаления кэшированной информации о соединении способом ЧКО по одному из вариантов по настоящей заявке. При осуществлении передачи пакета, после того, как будет установлено соединение (т.е. после передачи пакета), сохраняют кэшированную информацию о соединении и conn_age (причем conn__age=1) текущего пользователя. Далее виртуальный коммутатор получает первый пакет, считывает user_age (причем user__age=1) текущего пользователя в первом пакете и записывает tbread__age (причем thread_age=1) текущего пользователя. Поскольку имеет место изменение конфигурации, user__age пользователя обновляют на 2. Затем виртуальный коммутатор получает второй пакет, при этом user_age текущего пользователя во втором пакете имеет значение 2. Так как для первого пакета thread__age и conn_age тождественны: conn_age=thread__age, можно осуществить быструю передачу, то есть виртуальный коммутатор передает пакет согласно кэшированной информации о соединении в кэш-памяти. Считывают user_age (причем user_age=2) текущего пользователя во втором пакете и обновляют thread__age текущего пользователя соответственно на значение 2. Так как для второго пакета conn__age не равен thread_age, нужно удалить кэшированную информацию о соединении в кэш-памяти и выполнить операцию медленной передачи, то есть виртуальный коммутатор передает пакет по результату поиска в таблице переадресации, например, таблице МАС-адресов или таблице маршрутизации, или в подобной таблице. При этом для первого пакета виртуальный коммутатор считывает кэшированную информация о соединении в кэш-памяти. Если в это время кэшированная информация о соединении будет сброшена, произойдет сбой виртуального коммутатора из-за попытки считывания им сброшенных данных. Поэтому при применении способа ЧКО текущая кэшированная информация о соединении в кэш-памяти не будет удалена до тех пор, пока не будет создана новая кэшированная информация о соединении. Первый пакет передают по быстрому пути согласно текущей кэшированной информации о соединении. Что касается второго пакета, его передают по медленному пути: осуществляют поиск по таблице МАС-адресов или таблице маршрутизации и т.п., создают новую кэшированную информацию о соединении и записывают conn_age текущего пользователя со значением 2.
Решение по передаче пакетов способом ЧКО и в комбинации с conn__age, thread__age и user__age гарантирует синхронное обновление кэшированной информации о соединении в плоскости данных и плоскости управления в процессе передачи пакета.
На шаге S405 определяют, находятся ли адрес источника и адрес назначения пакета в одном и том же сетевом сегменте. Если адрес источника и адрес назначения пакета находятся в одном и том же сетевом сегменте, способ переходит на шаг S406; в противном случае, способ переходит на шаг S407.
В модели ВОС, в основе 2-го уровня, т.е. уровня канала данных, лежат МАС-адреса, а в основе 3-го уровня, т.е. сетевого уровня, лежат IP-адреса. Если адрес источника и адрес назначения пакета находятся в одном и том же сетевом сегменте, пакет передают на 2-ом уровне. Если адрес источника и адрес назначения пакета не находятся в одном и том же сетевом сегменте, пакет передают на 3-м уровне.
На шаге S406 выполняют поиск в таблице МАС-адресов для определения пути передачи для пакета, а затем способ переходит на шаг S410.
В частности, таблица МАС-адресов представляет собой БДП, при этом БДП содержит МАС-адрес каждого устройства-отправителя/получателя пакета, осуществляющего связь с виртуальным коммутатором. Поиск МАС-адреса позволяет определить следующее транзитное устройство для получения пакета и интерфейс для связи между виртуальным коммутатором и следующим транзитным устройством.
На шаге S407 выполняют поиск в СУД.
СУД - это список инструкций, привязанных к интерфейсам маршрутизаторов или коммутаторов, используемый для управления входящими и исходящими через эти интерфейсы пакетами. Виртуальный коммутатор выполняет поиск в СУД для определения того, разрешить ли устройству-отправителю пакета доступ к устройству-получателю пакета, то есть разрешить ли передачу пакета. Поиск в СУД также позволяет определить приоритет передачи пакета.
На шаге S408 выполняют поиск в таблице маршрутизации.
В таблице маршрутизации записаны пути от текущего виртуального коммутатора к другим конкретным сетевым терминалам. Виртуальный коммутатор определяет маршрут для передачи пакета путем поиска в таблице маршрутизации.
На шаге S409 выполняют поиск в таблице соседей для определения пути передачи для пакета.
В таблице соседей записано соответствие между интерфейсами текущего виртуального коммутатора и соседними коммутаторами (коммутаторами, являющимися следующим транзитным участком). Виртуальный коммутатор выполняет поиск в таблице соседей для определения интерфейса для следующего транзитного устройства для получения пакета для определения пути передачи для пакета.
На шаге S410 применяют правило группы безопасности.
Правило группы безопасности служит для обеспечения безопасности информации каждого устройства-отправителя/получателя пакета. В случае соответствия правилу группы безопасности, соединение связи между устройствами может быть установлено, В случае несоответствия правилу группы безопасности, соединение связи между устройствами запрещают.
Каждая виртуальная машина может относиться к той или иной группе безопасности. Между виртуальными машинами одной и той же группы безопасности возможны доверительные отношения и связь. Когда виртуальные машины из разных групп безопасности осуществляют связь друг с другом или виртуальная машина осуществляет доступ к сети общего пользования, проверяют соответствие правилу группы безопасности. Если результат проверки соответствия правилу группы безопасности положительный, устанавливают соединение связи для обеспечения возможности непосредственной передачи ответного пакета. К каждой подсети второго уровня может относиться какое-либо правило СУД для проверки соответствия правилу без фиксации состояния. При необходимости передачи пакета между подсетями применяют правило СУД. Безопасность на двух уровнях обеспечивают путем создания группы безопасности и СУД.
На шаге S411 записывают кэшированную информацию о соединении.
После того, как будет определен путь передачи для пакета и получен положительный результат проверки соответствия правилу безопасности, виртуальный коммутатор кэширует кэшированную информацию о соединении, соответствующую пакету. Кэшированная информация о соединении включает в себя путь передачи и conn__age, и может включать в себя такую информацию, как пятиэлементный кортеж и т.п.
На шаге S412 передают пакет согласно пути передачи для пакета.
В варианте по настоящей заявке, если второй идентификатор тождествен первому идентификатору, это означает, что кэшированная информация о соединении не недействительна. Подлежащий передаче пакет передают согласно кэшированной информации о соединении, тем самым обеспечивая быстрый путь для передачи подлежащего передаче пакета и предотвращая сбой передачи пакета. В отличие от предшествующего уровня техники, на котором просматривают всю кэшированную информацию о соединении в первой таблице данных для удаления недействительной кэшированной информации о соединении всякий раз при выявлении изменения в информации о соединении устройства, настоящее решение позволяет значительно увеличить скорость передачи пакетов, особенно в случае, когда первая таблица данных содержит миллионы единиц кэшированной информации о соединении. Просмотр большого количества кэшированная информация о соединении в первой таблице данных займет много времени, что серьезно влияет на продолжительность обработки для исполнения команды из плоскости управления. Вариант по настоящей заявке позволяет значительно улучшить эффективность передачи пакетов за счет определения первого идентификатора и второго идентификатора. Эффективность передачи пакетов может быть значительно улучшена.
Что касается виртуальных коммутаторов, в настоящее время известны два основных решения: самостоятельно разработанные виртуальные коммутаторы и ОВК (открытые коммутаторы). Для самостоятельно разработанного виртуального коммутатора, передача пакета от виртуальной машины требует выполнения как минимум более двух операций поиска в таблице, на что уходит время. Изменение в плоскости управления может быть меньше, чем изменение плоскости данных. Для одинакового информационного обмена, результаты, полученные путем поисков в таблице при одинаковой конфигурации, являются одинаковыми. В большинстве сценариев, для того, чтобы соединение было установлено, необходимо соответствие группе безопасности. По настоящей заявке, соединение устанавливают в качестве первых процессов при получении пакета. Когда пакет передают, сначала происходит проверка наличия соответствующего соединения. Если оно имеется, пакет передают согласно кэшированной информации о соединении, что позволяет не выполнять поиск в таблице маршрутизации и повысить эффективность передачи пакетов. Для решения ОВК, если первый пакет сообщения находится в режиме ядра и не соответствует правилу, он будет переведен в режим пользователя, что приведет к обмену первого пакета между режимами ядра и пользователя. В целом, решение ОВК является слишком сложным, что не соответствует потребностям часто меняющейся среды публичного облака. Способ для передачи пакетов в варианте по настоящей заявке обеспечивает преимущества самостоятельно разработанного виртуального коммутатора и ОВК, простую и ясную логическую структуру и простое приспособление к изменениям. Он уменьшает задержку для обработки первого пакета и улучшает скорость передачи пакетов.
Способ для передачи пакетов в варианте по настоящей заявке также можно применять для ОВК. Получив пакет, ОВК выявляет, существует ли кэшированная информация о соединении, соответствующая пакету. Если кэшированная информация о соединении, соответствующая пакету, существует и соответствующие первый идентификатор и второй идентификатор кэшированной информации о соединении тождественны, пакет отправляют согласно кэшированной информации о соединении. В противном случае, первый пакет переводят в режим пользователя и отправляют согласно известному решению ОВК. Кэшированную информацию о соединении генерируют и записывают после отправки пакета. В варианте по настоящей заявке предложен способ для передачи пакетов при применении решения ОВК, позволяющий уменьшить ошибки передачи пакетов.
На ФИГ. 6, в одном из вариантов осуществления настоящей заявки предложен аппарат для передачи пакетов, применимый к коммутатору. Аппарат может содержать: модуль 601 получения пакета, детектирующий модуль 602, модуль 603 получения первого идентификатора, модуль 604 определения второго идентификатора и первый модуль 605 передачи пакетов.
Модуль 601 получения пакета выполнен с возможностью получения подлежащего передаче пакета.
Детектирующий модуль 602 выполнен с возможностью определения того, содержит ли первая таблица данных кэшированную информацию о соединении, соответствующую данному пакету.
Модуль 603 получения первого идентификатора выполнен с возможностью получения первого идентификатора кэшированной информации о соединении из первой таблицы данных, если первая таблица данных содержит кэшированную информацию о соединении, соответствующую пакету, причем первый идентификатор представляет собой идентификатор соединения, соответствующий кэшированной информации о соединении на момент создания кэшированной информации о соединении.
Модуль 604 определения второго идентификатора выполнен с возможностью получения информации о соединении, соответствующей кэшированной информации о соединении, из второй таблицы данных, и определения второго идентификатора кэшированной информации о соединении согласно информации о соединении, соответствующей кэшированной информации о соединении, причем второй идентификатор представляет собой текущий идентификатор соединения, соответствующий кэшированной информации о соединении, изменение которого происходит в случае изменения информации о соединении.
Первый модуль 605 передачи пакетов выполнен с возможностью передачи пакета согласно кэшированной информации о соединении, если второй идентификатор тождествен первому идентификатору.
В варианте по настоящей заявке, если второй идентификатор тождествен первому идентификатору, это означает, что кэшированная информация о соединении не недействительна. Подлежащий передаче пакет передают согласно кэшированной информации о соединении, что обеспечивает быстрый путь для передачи подлежащего передаче пакета, предотвращает сбой передачи пакета и обеспечивает высокую эффективность передачи пакетов.
Аппарат для передачи пакетов по указанному варианту осуществления настоящей заявки опционально дополнительно содержит модуль получения идентификатора соединения и модуль обновления идентификатора.
Модуль получения идентификатора соединения выполнен с возможностью получения идентификатора соединения, отправленного устройством с обновленной конфигурацией, причем устройство с обновленной конфигурацией представляет собой устройство-отправитель/получатель пакета с измененной информацией о соединении.
Модуль обновления идентификатора выполнен с возможностью обновления второй таблицы данных информацией о соединении, соответствующей идентификатору соединения, отправленному устройством с обновленной конфигурацией.
В варианте по настоящей заявке информацию о соединении во второй таблице данных обновляют согласно соответствующему идентификатору соединения, что позволяет обеспечить постоянную тождественность каждой единицы информации о соединении, записанной во второй таблице данных, текущей фактической информации о соединении каждого устройства и, тем самым, предотвратить сбой передачи пакетов.
Аппарат для передачи пакетов по указанному варианту осуществления настоящей заявки опционально дополнительно содержит модуль удаления информации о соединении, первый модуль определения пути передачи, первый модуль определения кэшированной информации, модуль обновления первой таблицы данных и второй модуль передачи пакетов.
Модуль удаления информации о соединении выполнен с возможностью удаления кэшированной информации о соединении, соответствующей пакету, из первой таблицы данных, если второй идентификатор отличен от первого идентификатора.
Первый модуль определения пути передачи выполнен с возможностью получения адреса назначения пакета и определения пути передачи для пакета согласно адресу назначения.
Первый модуль определения кэшированной информации выполнен с возможностью использования пути передачи для пакета в качестве текущей кэшированной информации о соединении, получения информации о соединении, соответствующей текущей кэшированной информации о соединении, из второй таблицы данных, и определения идентификатора соединения для текущей кэшированной информации о соединении согласно информации о соединении, соответствующей текущей кэшированной информации о соединении.
Модуль обновления первой таблицы данных выполнен с возможностью использования идентификатора соединения для текущей кэшированной информации о соединении в качестве первого идентификатора текущей кэшированной информации о соединении и записи текущей кэшированной информации о соединении и первого идентификатора текущей кэшированной информации о соединении в первую таблицу данных.
Второй модуль передачи пакетов выполнен с возможностью передачи пакета согласно пути передачи для пакета.
В варианте по настоящей заявке предложен способ для передачи пакетов, если кэшированная информация о соединении недействительна, а также способ для создания новой кэшированной информации о соединении для облегчения последующей передачи пакета согласно новой кэшированной информации о соединении с целью улучшения скорости передачи пакетов и обеспечения высокой эффективности передачи пакетов.
В качестве необязательного варианта, первый модуль определения пути передачи включает в себя первый подмодуль определения информации о пути, первый подмодуль проверки соответствия группе безопасности и первый подмодуль соединения с устройством.
Первый подмодуль определения информации о пути выполнен с возможностью поиска в таблице МАС-адресов для определения информации о пути для пакета, если адрес назначения находится в том же сетевом сегменте, что и адрес коммутатора, причем информация о пути содержит адрес передачи, при этом адрес передачи представляет собой адрес следующего транзитного устройства для получения пакета.
Первый подмодуль проверки соответствия группе безопасности выполнен с возможностью определения устройства, к которому должно быть применено правило группы безопасности согласно адресу передачи в информации о пути, и применения правила группы безопасности к этому устройству.
Первый подмодуль соединения с устройством выполнен с возможностью использования данного устройства, в случае соответствия правилу группы безопасности, в качестве получателя пакета для определения пути передачи для пакета.
В варианте по настоящей заявке предложен способ для передачи пакетов на основе МАС-адресов для осуществления передачи пакетов на 2-ом уровне.
В качестве необязательного варианта, первый модуль определения пути передачи включает в себя подмодуль поиска доступа, второй подмодуль определения информации о пути, второй подмодуль проверки соответствия группе безопасности и второй подмодуль соединения с устройством.
Подмодуль поиска доступа выполнен с возможностью поиска в списке управления доступом, если адрес назначения не находится в том же сетевом сегменте, что и адрес коммутатора.
Второй подмодуль определения информации о пути выполнен с возможностью поиска в таблице маршрутизации и таблице соседей для определения информации о пути для пакета, если список управления доступом позволяет передать пакет, причем информация о пути содержит адрес передачи, при этом адрес передачи представляет собой адрес следующего транзитного устройства для получения пакета.
Второй подмодуль проверки соответствия группе безопасности выполнен с возможностью определения устройства, к которому должно быть применено правило группы безопасности согласно адресу передачи в информации о пути, и применения правила группы безопасности к этому устройству.
Второй подмодуль соединения с устройством выполнен с возможностью использования данного устройства, в случае соответствия правилу группы безопасности, в качестве получателя пакета для определения пути передачи для пакета.
В варианте по настоящей заявке предложен способ для передачи пакетов на основе таблицы маршрутизации и таблицы соседей для осуществления передачи пакетов на 3-м уровне.
Модуль получения первого идентификатора опционально включает в себя подмодуль получения ключа, подмодуль получения указателя и подмодуль поиска идентификатора.
Подмодуль получения ключа выполнен с возможностью поиска в первой таблице данных ключа, соответствующего пятиэлементному кортежу пакета, если первая таблица данных содержит кэшированную информацию о соединении, соответствующую пакету, и использования данного ключа в качестве ключа пакета.
Подмодуль получения указателя выполнен с возможностью получения головного указателя связанного списка по ключу пакета в первой таблице данных в виде ячейки хэша.
Подмодуль поиска идентификатора выполнен с возможностью поиска в связанном списке, на который указывает головной указатель связанного списка, для получения кэшированной информации о соединении и первого идентификатора кэшированной информации о соединении,
В варианте по настоящей заявке предложен способ поиска кэшированной информации о соединении и первого идентификатора устройства в первой таблице данных. Кэшированную информацию о соединении и первый идентификатор устройства находят с помощью ячеек хэша, что улучшает точность и эффективность поиска.
Аппарат для передачи пакетов по указанному варианту осуществления настоящей заявки опционально дополнительно включает в себя первый модуль получения адреса назначения, первый модуль определения пути передачи, первый модуль проверки соответствия правилу, второй модуль определения пути передачи, второй модуль определения кэшированной информации, первый записывающий модуль и третий модуль передачи пакетов.
Первый модуль получения адреса назначения выполнен с возможностью получения адреса назначения пакета, если первая таблица данных не содержит кэшированную информацию о соединении, соответствующую пакету, причем адрес назначения представляет собой адрес пункта назначения пакета.
Первый модуль определения пути передачи выполнен с возможностью поиска в таблице МАС-адресов для определения информации о пути для пакета, если адрес назначения находится в том же сетевом сегменте, что и адрес коммутатора, причем информация о пути содержит адрес передачи, при этом адрес передачи представляет собой адрес следующего транзитного устройства для получения пакета.
Первый модуль проверки соответствия правилу выполнен с возможностью определения устройства, к которому должно быть применено правило группы безопасности согласно адресу передачи в информации о пути, и применения правила группы безопасности к этому устройству.
Второй модуль определения пути передачи выполнен с возможностью использования данного устройства, в случае соответствия правилу группы безопасности, в качестве получателя пакета для определения пути передачи для пакета.
Второй модуль определения кэшированной информации выполнен с возможностью использования пути передачи для пакета в качестве текущей кэшированной информации о соединении.
Первый записывающий модуль выполнен с возможностью получения информации о соединении, соответствующей текущей кэшированной информации о соединении, из второй таблицы данных, определения идентификатора соединения для текущей кэшированной информации о соединении, использования идентификатора соединения для текущей кэшированной информации о соединении в качестве первого идентификатора текущей кэшированной информации о соединении и записи текущей кэшированной информации о соединении и первого идентификатора текущей кэшированной информации о соединении в первую таблицу данных.
Третий модуль передачи пакетов выполнен с возможностью передачи пакета согласно пути передачи для пакета.
В варианте по настоящей заявке предложен способ для передачи пакетов на основе МАС-адресов для осуществления передачи пакетов по медленному пути на основе МАС-адресов на 2-ом уровне.
Аппарат для передачи пакетов по указанному варианту осуществления настоящей заявки опционально дополнительно содержит второй модуль получения адреса назначения, модуль поиска в списке управления, второй модуль определения пути передачи, второй модуль проверки соответствия правилу, третий модуль определения пути передачи, третий модуль определения кэшированной информации, второй записывающий модуль и четвертый модуль передачи пакетов.
Второй модуль получения адреса назначения выполнен с возможностью получения адреса назначения пакета, если первая таблица данных не содержит кэшированную информацию о соединении, соответствующую пакету, причем адрес назначения представляет собой адрес пункта назначения пакета.
Модуль поиска в списке управления выполнен с возможностью поиска в списке управления доступом, если адрес назначения не находится в том же сетевом сегменте, что и адрес коммутатора.
Второй модуль определения пути передачи выполнен с возможностью поиска в таблице маршрутизации и таблице соседей для определения информации о пути для пакета, если список управления доступом позволяет передать пакет, причем информация о пути содержит адрес передачи, при этом адрес передачи представляет собой адрес следующего транзитного устройства для получения пакета.
Второй модуль проверки соответствия правилу выполнен с возможностью определения устройства, к которому должно быть применено правило группы безопасности согласно адресу передачи в информации о пути, и применения правила группы безопасности к этому устройству.
Третий модуль определения пути передачи выполнен с возможностью использования данного устройства, в случае соответствия правилу группы безопасности, в качестве получателя пакета для определения пути передачи для пакета.
Третий модуль определения кэшированной информации выполнен с возможностью использования пути передачи для пакета в качестве текущей кэшированной информации о соединении.
Второй записывающий модуль выполнен с возможностью получения информации о соединении, соответствующей текущей кэшированной информации о соединении, из второй таблицы данных, определения идентификатора соединения для текущей кэшированной информации о соединении, использования идентификатора соединения для текущей кэшированной информации о соединении в качестве первого идентификатора текущей кэшированной информации о соединении и записи текущей кэшированной информации о соединении и первого идентификатора текущей кэшированной информации о соединении в первую таблицу данных.
Четвертый модуль передачи пакетов выполнен с возможностью отправки пакета согласно пути передачи для пакета.
На ФИГ. 7 предложен вариант осуществления аппарата для передачи пакетов, применимого к устройству-отправителю/-получателю пакета. Аппарат включает в себя модуль 701 мониторинга информации о соединении и модуль 702 отправки идентификатора соединения.
Модуль 701 мониторинга информации о соединении выполнен с возможностью мониторинга информации о соединении для соединения с текущей сетью и обновления идентификатора соединения по заранее заданному правилу обновления в случае изменения информации о соединении.
Модуль 702 отправки идентификатора соединения выполнен с возможностью отправки обновленного идентификатора соединения коммутатору, чтобы коммутатор обновил вторую таблицу данных обновленным идентификатором соединения.
В варианте по настоящей заявке, в случае изменения информации о соединении устройства-отправителя/получателя пакета, обновляют идентификатор соединения и отправляют обновленный идентификатор соединения коммутатору, чтобы коммутатор обновил вторую таблицу данных обновленным идентификатором соединения. Коммутатор затем передает подлежащий передаче пакет согласно первой таблице данных и второй таблице данных, что позволяет предотвратить сбой передачи пакетов и обеспечить передачу пакетов с высокой эффективностью.
В варианте по настоящей заявке дополнительно предложен коммутатор, содержащий процессор и машиночитаемый носитель информации. Машиночитаемый носитель информации хранит машиноисполняемые инструкции с возможностью исполнения их процессором, при этом машиноисполняемые инструкции побуждают процессор к выполнению шагов, включающих в себя:
шаг 1 - получают подлежащий передаче пакет;
шаг 2 - определяют, содержит ли первая таблица данных кэшированную информацию о соединении, соответствующую данному пакету;
шаг 3 - получают первый идентификатор кэшированной информации о соединении из первой таблицы данных, если первая таблица данных содержит кэшированную информацию о соединении, соответствующую пакету, причем первый идентификатор представляет собой идентификатор соединения, соответствующий кэшированной информации о соединении на момент создания кэшированной информации о соединении;
шаг 4 - получают информацию о соединении, соответствующую кэшированной информации о соединении, из второй таблицы данных, и определяют второй идентификатор кэшированной информации о соединении согласно информации о соединении, соответствующей кэшированной информации о соединении, причем второй идентификатор представляет собой текущий идентификатор соединения, соответствующий кэшированной информации о соединении, и, в случае изменения информации о соединении, соответствующей кэшированной информации о соединении, текущий идентификатор соединения для кэшированной информации о соединении, где произошло изменение информации о соединении, соответственно изменяют; и
шаг 5 - передают пакет согласно кэшированной информации о соединении, если второй идентификатор тождествен первому идентификатору.
В варианте по настоящей заявке, если второй идентификатор тождествен первому идентификатору, это означает, что кэшированная информация о соединении не недействительна. Подлежащий передаче пакет передают согласно кэшированной информации о соединении, что обеспечивает быстрый путь для передачи подлежащего передаче пакета, предотвращает сбой передачи пакета и обеспечивает высокую эффективность передачи пакетов.
Разумеется, процессор, будучи побужден машиноисполняемыми инструкциями, также может осуществлять любой шаг способа для передачи пакетов, применимого к коммутатору.
В одном из вариантов по настоящей заявке дополнительно предложено устройство-отправитель/получатель пакета, содержащее процессор и машиночитаемый носитель информации с хранимыми в нем машиноисполняемыми инструкциями, которые, при исполнении их процессором, побуждают процессор к выполнению шагов, включающих в себя:
шаг 1 - осуществляют мониторинг информации о соединении для соединения с текущей сетью и обновляют идентификатор соединения по заранее заданному правилу обновления в случае изменения информации о соединении;
шаг 2 - отправляют обновленный идентификатор соединения коммутатору, чтобы коммутатор обновил вторую таблицу данных обновленным идентификатором соединения.
В варианте по настоящей заявке, в случае изменения информации о соединении устройства-отправителя/получателя пакета, обновляют идентификатор соединения и отправляют обновленный идентификатор соединения коммутатору, чтобы коммутатор обновил вторую таблицу данных обновленным идентификатором соединения. Коммутатор затем передает подлежащий передаче пакет согласно первой таблице данных и второй таблице данных, что позволяет предотвратить сбой передачи пакетов и обеспечить передачу пакетов с высокой эффективностью.
Разумеется, процессор, исполняя машиноимполняемые инструкции, также может быть побужден к выполнению любого шага способа для передачи пакетов, применимого к устройству-отправителю/-получателю пакета.
Указанный читаемый носитель информации может включать в себя оперативное запоминающее устройство (ОЗУ), а также энергонезависимое запоминающее устройство (ЭНЗУ), например, по меньшей мере одно дисковое запоминающее устройство. Читаемый носитель информации также опционально может представлять собой как минимум одно запоминающее устройство, расположенное на удалении от процессора.
Вышеуказанный процессор может представлять собой процессор общего назначения, в том числе - центральное процессорное устройство (ЦПУ), сетевой процессор (СП) и т.п.; он также может представлять собой процессор обработки цифровых сигналов (ПОЦС), специализированную интегральную схему (СИС), программируемую пользователем вентильную матрицу (ППВМ) или иные программируемые логические устройства, логические элементы на дискретных компонентах или транзисторные логические устройства, дискретные аппаратные компоненты.
В одном из вариантов осуществления настоящей заявки предложен машиночитаемый носитель информации, хранящая компьютерную программу, которая, при исполнении ее процессором, побуждает процессор к выполнению любого способа для передачи пакетов, применимого к коммутатору.
В одном из вариантов осуществления настоящей заявки предложен машиночитаемый носитель информации, хранящая компьютерную программу, которая, при исполнении ее процессором, побуждает процессор к выполнению любого способа для передачи пакетов, применимого к устройству-отправителю/-получателю пакета.
В одном из вариантов осуществления настоящей заявки предложен компьютерный программный продукт, содержащий инструкции, которые, при исполнении их в компьютере, побуждают компьютер к выполнению любого способа для передачи пакетов, применимого к коммутатору.
В одном из вариантов осуществления настоящей заявки предложен компьютерный программный продукт, содержащий инструкции, которые, при исполнении их в компьютере, побуждают компьютер к выполнению любого способа для передачи пакетов, применимого к устройству-отправителю/-получателю пакета.
В одном из вариантов осуществления настоящей заявки предложена компьютерная программа, которая, при исполнении ее в компьютере, побуждает компьютер к выполнению любого способа для передачи пакетов, применимого к коммутатору.
В одном из вариантов осуществления настоящей заявки предложена компьютерная программа, которая, при исполнении ее в компьютере, побуждает компьютер к выполнению любого способа для передачи пакетов, применимого к устройству-отправителю/-получателю пакета.
Варианты осуществления аппарата для передачи пакетов / коммутатора / устройства-отправителя/получатель пакета / читаемого носителя информации / компьютерного программного продукта / компьютерной программы, поскольку они в своей основе схожи с вариантами осуществления способов, раскрыты относительно кратко, при этом можно обратиться к соответствующим частям раскрытия вариантов осуществления способа.
Следует отметить, что слова, обозначающие взаимосвязь, например, «первый», «второй» и т.п. служат исключительно для того, чтобы провести различие между одной и другой единицей или операцией, но не обязательно требуют или подразумевают наличие какой-либо фактической взаимосвязи между этими единицами или операциями или их порядка. Кроме того, слова «включать в себя», «содержать» и любые их варианты служат для обозначения случаев неисключительного вхождения в состав, а именно того, что процессы, способы, предметы или устройства, содержащие ряд элементов, содержат не только указанные элементы, но и те, что не указаны конкретно, или элементы, свойственные этим процессам, способам, предметам или устройствам. Без каких-либо дополнительных ограничений, выражения «содержат(-ит)» или «включают(-ет) в себя» применительно к каким-либо элементам не исключают наличия иных идентичных элементов в процессах, способах, предметах или устройствах, включающих в себя эти элементы.
Все варианты осуществления раскрыты соответствующим образом, при этом одинаковые или схожие части в каждом из вариантов могут иметь аналогичные обозначения, а особо указанные части отличаются от частей в других вариантах. В частности, вариант осуществления системы раскрыт вкратце, так как он по существу схож с вариантом осуществления способа, а описание относящихся к ней частей можно найти в соответствующем раскрытии варианта осуществления способа.
Раскрытые выше варианты осуществления представляют собой просто предпочтительные варианты по настоящей заявке и не предназначены для ограничения настоящей заявки. Любые модификации, альтернативные решения, улучшения и т.п. без оступления от существа и принципа изобретения по настоящей заявке должны быть включены в объем охраны по настоящей заявке.
Промышленная применимость
Предложенные способ, аппарат, коммутатор, устройство для передачи пакетов и носитель информации позволяют уменьшить ошибки передачи пакетов и предотвратить потерю пакетов. Кроме того, отсутствует необходимость просмотра всей кэшированной информации о соединении для удаления недействительного пути, что позволяет экономить ресурсы для обработки информации.