Выгрузка потоков виртуальных машин в физические очереди

Изобретение относится к области сред виртуализации. Техническим результатом является выгрузка сетевых потоков виртуальных машин в физические очереди сетевого аппаратного обеспечения. Компьютерная система исполняет одну или несколько виртуальных машин и программирует физическое сетевое устройство одним или несколькими правилами, которые управляют сетевым трафиком для виртуальных машин. Компьютерная система также программирует сетевое устройство для управления сетевым трафиком с использованием этих правил. В частности, сетевое устройство программируется для определения доступности одной или нескольких физических очередей в сетевом устройстве, которые могут использоваться для обработки сетевых потоков для виртуальных машин. Сетевое устройство также программируется для идентификации сетевых потоков для виртуальных машин, включая идентификацию характеристик каждого сетевого потока. Сетевое устройство также программируется для назначения, на основе характеристик сетевых потоков и на основе правил, одного или нескольких из сетевых потоков по меньшей мере одной из физических очередей. 3 н. и 17 з.п. ф-лы, 5 ил.

 

1. Уровень техники и релевантная область техники

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

Некоторые компьютерные системы выполнены с возможностью обеспечения виртуализованных сред для размещения одной или нескольких виртуальных машин. Например, паравиртуализованные среды исполнения включают в себя гипервизоры. Гипервизоры обеспечивают родительский раздел (иногда называемый хостом) и один или несколько дочерних разделов. Родительский раздел связывается с и управляет физическим аппаратным обеспечением и выполнен с возможностью исполнения основной операционной системы (ОС) (ОС хоста) и управления стеком виртуализации. Каждый дочерний раздел выполнен как «виртуальная машина», которая исполняет соответствующую гостевую операционную систему.

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

Недавние разработки в виртуализации включают в себя I/O виртуализацию (виртуализацию ввода/вывода) с единственным корнем (SRIOV). SRIOV является расширением архитектуры PCIe–шин (PCI-Express), которая позволяет PCIe-устройствам непосредственно связываться с дочерними разделами. Как таковая, SRIOV позволяет PCIe-устройствам предоставлять себя для дочерних разделов/виртуальных машин через гипервизор. Например, совместимая со SRIOV физическая сетевая интерфейсная карта (NIC) или коммутатор может представлять некоторую физическую функцию для родительского раздела и представлять одну или несколько виртуальных функций для соответствующих дочерних разделов. Операционная система хоста может тогда включать в себя драйвер физической функции, который связывается с этой физической функцией, а каждая гостевая операционная система может исполнять драйвер виртуальной функции, который связывается с соответствующей виртуальной функцией. Физическая NIC может тогда передавать сетевые пакеты непосредственно при помощи гостевых операционных систем (обходя операционную систему хоста), что может значительно улучшить производительность сети.

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

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

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

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

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

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

Фиг. 3 иллюстрирует хост, на котором могут применяться принципы, описанные здесь.

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

Фиг. 5 иллюстрирует блок-схему примерного способа управления сетевым трафиком.

ПОДРОБНОЕ ОПИСАНИЕ

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

Сначала, некоторое вводное обсуждение, касающееся общих вычислительных систем и вычислительных сред, в которых или на которых могут применяться принципы, описанные здесь, будет приведено по отношению к фиг. 1-3. Затем базовые принципы для выгрузки сетевых потоков виртуальных машин в физические очереди сетевого аппаратного обеспечения будут описаны по отношению к фиг. 4 и 5.

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

Варианты осуществления, описанные здесь, могут содержать или использовать специализированный или универсальный компьютер, включающий в себя компьютерное аппаратное обеспечение, таких как, например, один или несколько процессоров и системная память. Например, фиг. 1 иллюстрирует примерную вычислительную систему 100. Как показано на фиг. 1, в ее наибольшей базовой конфигурации, вычислительная система 100 обычно включает в себя по меньшей мере один процессор 102 и память 104. Памятью 104 может быть физическая системная память, которая может быть энергозависимой, энергонезависимой или некоторой их комбинацией. Термин «память» может также использоваться здесь для ссылки на энергонезависимую массовую память, такую как физический носитель данных. Если вычислительная система 100 является распределенной, то обработка, память и/или способность сохранения могут быть также распределены. Как используется здесь, термин «модуль» или «компонент» может ссылаться на программные объекты или подпрограммы, которые исполняются в вычислительной системе 100. Различные компоненты, модули, подсистемы и службы, описанные здесь, могут быть реализованы как объекты или процессы, которые исполняются в вычислительной системе 100 (например, как отдельные потоки).

В нижеследующем описании, варианты осуществления описаны со ссылкой на действия, которые выполняются одной или несколькими вычислительными системами, такими как вычислительная система 100. Если такие действия реализованы в программном обеспечении, то один или несколько процессоров связанной с ним вычислительной системы, которая выполняет эти действия, направляет работу вычислительной системы в качестве реакции на исполнение машиноисполняемых команд. Пример такой работы включает в себя манипулирование данными. В пределах контекста вычислительной системы 100, машиноисполняемые команды (и манипулируемые данные) могут храниться в памяти 104. Вычислительная система 100 может также содержать каналы 108 связи, которые позволяют вычислительной системе 100 связываться с другими процессорами обработки сообщений, например, по сети 110.

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

Компьютерные носители данных включают в себя носители данных записываемого типа, такие как RAM (ОЗУ), ROM (ПЗУ), EEPROM, ПЗУ на компакт-диске (CD-ROM) или другую оптическую дисковую память, магнитную дисковую память или другие магнитные запоминающие устройства, или любой другой носитель, который может использоваться для хранения желаемых средств программного кода в форме исполняемых компьютером команд или структур данных и к которому может обращаться универсальный или специализированный компьютер.

«Сеть» задана как одна или несколько линий передачи данных, которые позволяют осуществлять транспортировку электронных данных между компьютерными системами и/или модулями и/или другими электронными устройствами. Когда информация передается или обеспечивается по некоторой сети или по другому коммуникационному подключению (либо проводному, беспроводному, либо комбинации проводного или беспроводного) к компьютеру, компьютер правильно «видит» это подключение как среду передачи. Среды передачи могут включать в себя некоторую сеть (например, сеть 110) и/или линии передачи данных, которые могут использоваться для несения или желаемого средства программного кода в форме исполняемых компьютером команд или структур данных, и которые могут быть доступны посредством универсального или специализированного компьютера. Комбинации вышеизложенных сред и носителей должны быть также включены в пределы понятия «считываемый компьютером носитель».

Далее, после достижения различных компонентов компьютерной системы, средства программного кода в форме исполняемых компьютером команд или структур данных могут быть автоматически переданы от сред передачи в компьютерные носители данных (или наоборот). Например, машиноисполняемые команды или структуры данных, принятые по сети или линии передачи данных, могут быть буферизованы в ОЗУ в пределах модуля сетевого интерфейса (например, “NIC”), а затем, в конечном счете, переданы в ОЗУ компьютерной системы и/или в менее энергозависимый компьютерный носитель данных в компьютерной системе. Таким образом, следует понимать, что компьютерные носители данных могут быть включены в компоненты компьютерной системы, которые также (или даже в основном) используют среды передачи.

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

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

Фиг. 2 абстрактно иллюстрирует среду 200, в которой могут применяться принципы, описанные здесь. Среда 200 включает в себя множественных клиентов 210, взаимодействующих с системой 210 с использованием интерфейса 202. Среда 200 показана как имеющая трех клиентов 201А, 201В и 201С, хотя овалы 201D представляют, что принципы, описанные здесь, не ограничены числом клиентов, сопрягающихся с системой 210 через интерфейс 202. Система 210 может обеспечить службы для клиентов 201 по требованию и, таким образом, число клиентов 201, принимающих службы от системы 210, может варьироваться со временем.

Один или несколько клиентов 201 могут быть, например, структурированы, как описано выше, в соответствии с вычислительной системой 100 по фиг. 1. Альтернативно или дополнительно, одним или несколькими клиентами 201 может быть приложение (прикладная программа) или другой программный модуль, который сопрягается с системой 210 через интерфейс 202. Интерфейсом 202 может быть интерфейс прикладного программирования (API), который задан таким образом, что любая вычислительная система или программный объект, которые приспособлены использовать API, могут связываться с системой 210.

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

В этом описании и нижеследующей формуле изобретения, «облачные вычисления» определены как модель для осуществления возможности сетевого доступа по требованию к совместно используемому объединению (пулу) настраиваемых вычислительных ресурсов (например, сетей, серверов, памяти, приложений и служб). Определение «облачные вычисления» не ограничено каким-либо из других многочисленных преимуществ, которые могут быть получены от такой модели при правильном развертывании.

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

Модель облачных вычислений может состоять из различных характеристик, таких как самообслуживание по требованию, широкий сетевой доступ, объединение ресурсов, способность к быстрой адаптации, измеряемое обслуживание и т.д. Модель облачных вычислений может также прийти в форме различных служебных моделей, таких как, например, программное обеспечение как услуга (“SaaS”), платформа как услуга (“PaaS”) и инфраструктура как услуга (“IaaS”). Модель облачных вычислений может быть также развернута с использованием различных моделей развертывания, таких как частное облако, облако сообщества, общественное облако, гибридное облако и т.д. В этом описании и в формуле изобретения, «среда облачных вычислений» является средой, в которой применяются облачные вычисления.

Как изображено, система 210 включает в себя множественные хосты 211, каждый из которых способен исполнять виртуальные машины. Хотя система 200 могла бы включать в себя любое число хостов 211, имеется три хоста 211А, 211В и 211С, показанные на фиг. 2, где овалы 211D представляют, что принципы, описанные здесь, не ограничены точным числом хостов, которые находятся в пределах системы 210. Их вообще может быть один, без верхнего предела. Кроме того, число хостов может быть статическим или могло бы динамически изменяться со временем, когда новые хосты добавляются к системе 210 или когда хосты выбрасываются из системы 210. Каждый из хостов 211 может быть структурирован, как описано выше для вычислительной системы 100 фиг. 1.

Каждый хост способен исполнять одну или несколько, и потенциально много, виртуальных машин. Например, фиг. 3 абстрактно иллюстрирует хост 300 с дополнительными подробностями. В качестве примера, хост 300 мог бы представлять любой из хостов 211 по фиг. 2. В случае фиг. 3, хост 300 показан как эксплуатирующий три виртуальные машины 310, включающие в себя виртуальные машины 310А, 310В и 310С. Однако, овалы 310D, опять же представляют, что принципы, описанные здесь, не ограничены числом виртуальных машин, исполняемых на хосте 300. Вообще может ноль виртуальных машин, исполняемых на хосте с единственным верхним пределом, задаваемым физическими возможностями хоста 300.

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

Виртуальная машина генерирует изображение рабочего стола или другие команды визуализации и представляет текущее состояние рабочего стола, а затем передает эти изображение или команды в клиент для визуализации рабочего стола. Например, со ссылкой на фиг. 2 и 3, предположим, что хост 300 по фиг. 3 представляет хост 211А по фиг. 2 и что виртуальная машина 310А назначена клиенту 201А (это называется здесь «основным примером»), виртуальная машина 310А могла бы генерировать изображение рабочего стола или команды и направлять такие команды в соответствующий клиент 201А от хоста 211А через систему 213 координации служб и через системный интерфейс 202.

Поскольку пользователь взаимодействует с рабочим столом на клиенте, пользовательские вводы передаются от клиента к виртуальной машине. Например, в основном примере и со ссылкой на фиг. 2 и 3, пользователь клиента 201А взаимодействует с рабочим столом, и пользовательские вводы передаются от клиента 201 к виртуальной машине 310А через интерфейс 201, через систему 213 координации служб и через хост 211А.

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

Хост 300 включает в себя гипервизор 320, который эмулирует виртуальные ресурсы для виртуальных машин 310 с использованием физических ресурсов 321, которые абстрагированы от вида виртуальных машин 310. Гипервизор 321 также обеспечивает правильную изоляцию между виртуальными машинами 310. Таким образом, с точки зрения любой конкретной виртуальной машины, гипервизор 320 обеспечивает иллюзию, что эта виртуальная машина сопрягается с представлением (например, виртуальным ресурсом) физического ресурса, а не непосредственно с физическим ресурсом. На фиг. 3, физические ресурсы 321 абстрактно представлены как включающие в себя ресурсы 321А-321F. Примеры физических ресурсов 321 включают в себя функциональные возможности обработки, память, дисковое пространство, сетевую полосу частот, дисководы носителей и т.д.

Хост 300 может эксплуатировать хост-агент 302, который отслеживает работу хоста и выполняет другие операции, которые управляют хостом. Кроме того, хост 300 может включать в себя другие компоненты 303, такие как виртуальный коммутатор, описываемый далее.

Со ссылкой опять на фиг. 2, система 200 также включает в себя службы 212. В показанном примере, службы 212 включают в себя пять отдельных служб 212А, 212В, 212С, 212D и 212Е, хотя овалы 212F представляют, что принципы, описанные здесь, не ограничены этим числом служб в системе 210. Система 213 координации служб связывается с хостами 211 и со службами 212, чтобы тем самым обеспечить сервисы, запрошенные клиентами 201, и другие сервисы (такие как аутентификация, биллинг и т.д.), которые могут быть изначально необходимы для запрашиваемого сервиса.

С обращением теперь к фиг. 4, фиг. 4 иллюстрирует примерную компьютерную архитектуру 400, которая обеспечивает выгрузку потоков виртуальных машин в физические очереди. Как изображено, компьютерная архитектура 400 включает в себя хост 402, одну или несколько виртуальных машин 412 (включающих в себя виртуальную машину 412а) и одно или несколько физических сетевых устройств 416 (включающих в себя физическое сетевое устройство 416а).

Хост 402 выполнен с возможностью обеспечения среды виртуализации. В некоторых вариантах осуществления, хост 402 может соответствовать хосту 300 по фиг. 3. Например, хост 402 может включать в себя родительский раздел (который исполняет операционную систему хоста) и один или несколько дочерних разделов. Каждый дочерний раздел может рассматриваться как обеспечивающий виртуализованную аппаратную среду для исполнения соответствующей виртуальной машины, такой как виртуальная машина 412а. Хост 402 может использоваться как часть среды облачных вычислений, которая вмещает виртуальные машины от имени владельцев.

Каждая из виртуальных машин 412 (включающих в себя виртуальную машину 412а) исполняет одно или несколько виртуализованных приложений, таких как операционная система, прикладное программное обеспечение и т.д. Каждая из виртуальных машин 412 способна посылать и принимать сетевые пакеты. Например, каждая из виртуальных машин 412 включает в себя сетевой стек (например, ТСР/IP стек) и способна посылать и/или принимать сетевые пакеты и другую информацию через хост 402 по пути 432 передачи данных и/или через физические сетевые устройства 416 по пути 430 передачи данных. Как таковые, виртуальные машины 412 могут создавать сетевые потоки.

Каждое физическое сетевое устройство 416 подключено к другим компьютерным системам и/или сетям с использованием одного или нескольких внешних интерфейсов. Фиг. 4 показывает, что физическое сетевое устройство 416а подключено к сети 434 с использованием внешнего интерфейса 426. Физические сетевые устройства 416 могут включать в себя любой подходящий тип физического сетевого аппаратного обеспечения, такого как NIC, коммутаторы и т.д.

Кроме того, каждое физическое сетевое устройство 416 содержит физическое аппаратное обеспечение, которое совместимо с виртуализованной средой. Например, фиг. 4 показывает, что физическое сетевое устройство 416а представляет виртуальные функции 424 для виртуальных машин 412. В частности, физическое сетевое устройство 416а может представлять одну или несколько виртуальных функций для каждой из виртуальных машин 412. Например, фиг. 4 показывает, что физическое сетевое устройство 416а представляет виртуальную функцию 424а для виртуальной машины 412а. Каждая из виртуальных машин 412, в свою очередь, включает в себя соответствующий драйвер виртуальных функций. Например, фиг. 4 показывает, что виртуальная машина 412а включает в себя драйвер 414 виртуальных функций. Как таковая, каждая из виртуальных машин 412 может осуществлять доступ к соответствующей ей виртуальной функции 424 по пути 430 передачи данных и может использовать путь 430 передачи данных для обмена сетевыми пакетами с физическим сетевым устройством 416а без маршрутизации сетевых пакетов через хост 402. Осуществление этого может уменьшить использование процессора и сетевую задержку по сравнению с маршрутизацией сетевых пакетов через хост 402.

Кроме того, фиг. 4 также показывает, что физическое сетевое устройство 416а представляет физическую функцию 418 для хоста 402. Фиг. 4 также показывает, что хост 402 включает в себя соответствующий драйвер 410 физических функций и что путь 428 передачи данных соединяет физическую функцию 418 в физическом сетевом устройстве 416а и драйвер 410 физических функций в хосте 402. Как таковая, физическая функция 418 и драйвер 410 физических функций могут работать для обмена сетевыми пакетами между физическим сетевым устройством 416а и хостом 402.

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

Каждое из физических сетевых устройств 416 может включать в себя одну или несколько физических очередей, которые могут использоваться физическими сетевыми устройствами 416 при обработке сетевых потоков, которые связаны с виртуальными машинами 412. Например, фиг. 4 показывает, что физическое сетевое устройство 416а включает в себя физические очереди 422, включая очередь 422а и любое дополнительное количество (т.е. ноль или большее количество) дополнительных физических очередей, как представлено горизонтальными овалами и очередью 422n. Согласно одному или нескольким вариантам осуществления, хост 402 конфигурирует одно или несколько из физических сетевых устройств 416 для управления использованием их физических очередей при обработке сетевых потоков для виртуальных машин 412. Как показано, например, виртуальный коммутатор 404 в хосте 402 может включать в себя правила 406. С использованием правил 406, виртуальный коммутатор может запрограммировать физическое сетевое устройство 416а при помощи правил 420 и может запрограммировать физическое сетевое устройство 416а для управления назначениями сетевых потоков физическим очередям 422 на основе этих правил. Правила 420 могут быть идентичными правилам 406, могут быть изменены некоторым образом и/или могут включать в себя некоторое подмножество правил 406. Как таковое, физическое сетевое устройство 416а может быть выполнено с возможностью эффективного управления сетевыми потоками от виртуальных машин 412, включая осуществление назначений сетевых потоков физическим очередям 422 без вовлечения хоста 402 для каждого сетевого потока.

Правила 420 могут включать в себя правила, которые позволяют физическому сетевому устройству 416а назначать физическим очередям 422 некоторое количество сетевых потоков, которое является большим, чем число очередей, присутствующих в физических очередях 422. В одном простом примере, сетевой трафик от виртуальных машин 412 может включать в себя восемь активных сетевых потоков, но физическое сетевое устройство 416а может использовать правила 420 для назначения этих восьми потоков только четырем доступным очередям в физических очередях 422. Физическое сетевое устройство 416а может быть выполнено с возможностью создания сетевого потока для назначений очередей на основе характеристик потоков и/или на основе классификаций потоков. В некоторых вариантах осуществления, физическое сетевое устройство 416а помещает сетевой поток в различные классификации на основе характеристик потоков и на основе правил 420. В некоторых дополнительных или альтернативных вариантах осуществления, физическое сетевое устройство 416а помещает сетевые потоки в различные классификации на основе предложений, осуществляемых виртуальными машинами 412. Например, виртуальная машина 412а может приписать некоторый атрибут к некоторому потоку или может сообщить предложенную классификацию физической функции 418 отдельно от этого потока.

Правила 420 могут дать возможность осуществить различные типы алгоритмов назначения очередей. Например, правила 420 могут задавать, что множество сетевых потоков, имеющих относительно низкий уровень трафика, могут быть назначены вместе на одну и ту же физическую очередь, тогда как каждый из потоков, имеющих относительно высокий уровень трафика, должен быть назначен исключительно соответствующей физической очереди. В другом примере, правила 420 могут задавать, что множество потоков, имеющих подобные или совместимые требования, должны быть скомбинированы на одной и той же очереди. Например, если сетевые пакеты множества потоков должны идти (скорость ограничена) со схожей скоростью, то эти потоки могут быть назначены вместе на одну и ту же физическую очередь. Другие подобные или совместимые требования могут включать в себя приоритет (например, группирование потоков низкого приоритета вместе на одной очереди), качество обслуживания (QoS) (например, группирование потоков с низкими требованиями по QoS вместе на одной очереди) и т.д. Правила 420 могут также задавать, что потоки от одной и той же виртуальной машины должны быть сгруппированы на одной физической очереди или группе физических очередей. Как таковые, варианты осуществления, представленные здесь, здесь могут обеспечить разделение аппаратных ресурсов среди виртуальных машин 412.

В некоторых вариантах осуществления, физические сетевые устройства 416 и виртуальный коммутатор 404 могут работать вместе для уравновешивания выполнения сетевых потоков между ними. Например, фиг. 4 показывает, что виртуальный коммутатор 404 может включать в себя основанные на программном обеспечении виртуальные очереди 408 (включающие в себя очередь 408а и любое дополнительное количество (т.е. ноль или больше) дополнительных очередей, как представлено посредством горизонтальных овалов и очередью 408n). Как таковые, некоторые сетевые потоки могут быть назначены физическим очередям 422, а некоторые потоки могут быть назначены виртуальным очередям 408. Будет ясно, что физические очереди 422 могут обеспечить более быстрое, более детальное и/или более надежное выполнение, чем виртуальные очереди 408. Как таковые, сетевые потоки могут быть классифицированы на потоки, которые должны быть назначены физическим очередям 422 для использования преимущества более быстрого, более детального и/или более надежного выполнения в физическом сетевом устройстве 416а, и потоки, которые могут быть назначены виртуальным очередям 408 в хосте 402, так как быстрое, детальное и/или надежное выполнение может быть не столь важным для этих потоков. Такое назначение может быть предложено посредством виртуальных машин 412 и/или может быть сделано посредством физических сетевых устройств 416 и/или виртуального коммутатора 404.

В некоторых вариантах осуществления, поток может проходить через множество физических сетевых устройств 416 (например, NIC или коммутатор), и хост 402 может запрограммировать каждое физическое сетевое устройство для независимого управления этим потоком. Например, одно физическое сетевое устройство может быть запрограммировано для назначения данного потока одной физической очереди в устройстве, тогда как другое физическое сетевое устройство может быть запрограммировано назначать комбинацию этого потока с другими потоками в одной физической очереди в устройстве.

Фиг. 5 иллюстрирует блок-схему способа 500 управления сетевым трафиком. Способ 500 будет описан по отношению к компонентам и данным компьютерной архитектуры 400.

Способ 500 предусматривает операцию исполнения одной или нескольких виртуальных машин (этап 502). Например, хост 402 может исполнять виртуальные машины 412, которые могут включать в себя виртуальную машину 412а. В некоторых вариантах осуществления, этап 502 может включать в себя исполнение виртуальной машины (машин) паравиртуализованным способом, включающим в себя использование одного или нескольких SRIOV-совместимых физических сетевых устройств. Как таковое, по меньшей мере одно физическое сетевое устройство (например, физическое сетевое устройство 418) может представлять некоторую виртуальную функцию (например, виртуальную функцию 424а) для виртуальной машины 412а, и виртуальная машина 412а может включать в себя соответствующий драйвер виртуальной функции (например, драйвер 414 виртуальных функций) для обмена сетевыми пакетами непосредственно с этим физическим сетевым устройством.

Способ 500 также предусматривает операцию программирования физического сетевого устройства одним или несколькими правилами, причем эти одно или несколько правил сконфигурированы для управления сетевым трафиком для одной или нескольких виртуальных машин (этап 504). Например, виртуальный коммутатор 404 может запрограммировать физическое сетевое устройство 416а при помощи правил 420. Правила 420 могут быть копией правил 406 в виртуальном коммутаторе 404 или могут быть основаны на них. Правила 404 могут быть сконфигурированы для обеспечения физическому сетевому устройству 416а возможности осуществления назначений между сетевыми потоками, связанными с виртуальными машинами 412, и физическими очередями 422 в физическом сетевом устройстве 416а.

Способ 500 также предусматривает операцию программирования этого физического сетевого устройства для управления сетевым трафиком (этап 506). Например, виртуальный коммутатор 404 может сконфигурировать физическое сетевое устройство 416а для осуществления назначений потоков на основе правил 420. В некоторых вариантах осуществления, программирование физического сетевого устройства 416а для управления сетевым трафиком происходит как следствие программирования физического сетевого устройства 416а при помощи правил 420. В других вариантах осуществления, программирование физического сетевого устройства 416а для управления сетевым трафиком специально включает в себя программирование физического сетевого устройства 416а при помощи дополнительных исполняемых компьютером команд и/или дополнительных параметров конфигурации.

Этап 506 включает в себя программирование физического сетевого устройства для определения доступности одной или нескольких физических очередей в физическом сетевом устройстве, причем эти одна или несколько физических очередей могут использоваться для обработки сетевых потоков для одной или нескольких виртуальных машин (этап 508). Например, физическое сетевое устройство 416а может быть выполнено с возможностью идентификации физических очередей 422, включая текущую доступность физических очередей 422.

Этап 506 включает в себя программирование физического сетевого устройства для идентификации множества сетевых потоков для одной или нескольких виртуальных машин, включая идентификацию одной или нескольких характеристик каждого из множества сетевых потоков (этап 510). Например, физическое сетевое устройство 416а может быть выполнено с возможностью идентификации сетевых потоков, которые связаны с виртуальными машинами 412. Физическое сетевое устройство 416а может быть также выполнено с возможностью анализа характеристик потоков, предложений классификации от виртуальных машин 412 или любой другой соответствующей информации для классификации потоков.

Этап 506 включает в себя программирование физического сетевого устройства для назначения, на основе одной или нескольких характеристик каждого из множества сетевых потоков и на основе одного или нескольких правил, одного или нескольких из множества сетевых потоков по меньшей мере одной из одной или нескольких физических очередей (этап 512). Например, на основе правил 420 и на основе характеристик и классификаций, идентифицированных на этапе 510, физическое сетевое устройство 416а может назначать потоки физическим очередям 422. При осуществлении этого, физическое сетевое устройство 416а может назначить физическим очередям 422 количество потоков, которое превышает число физических очередей. Например, физическое сетевое устройство 416а может назначить потоки, имеющие схожие характеристики, совместимые приоритеты, нагрузки трафика и т.д., одной и той же физической очереди. Дополнительно или альтернативно, физическое сетевое устройство 416а может работать с виртуальным коммутатором 404 для назначения первого подмножества потоков виртуальным очередям 408 в виртуальном коммутаторе 404 и второго подмножества потоков физическим очередям 422 в физическом сетевом устройстве 416а.

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

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

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

один или более процессоров;

одно или более физических сетевых устройств и

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

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

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

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

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

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

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

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

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

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

8. Компьютерная система хоста виртуализации по п. 1, в которой по меньшей мере два из первого подмножества сетевых потоков одновременно выгружаются в одну физическую очередь на основе того, что эти по меньшей мере два из первого подмножества сетевых потоков имеют одинаковое качество обслуживания (QoS).

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

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

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

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

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

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

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

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

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

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

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

14. Способ по п. 9, в которой по меньшей мере два из первого подмножества сетевых потоков одновременно выгружаются в одну физическую очередь на основе того, что эти по меньшей мере два из первого подмножества сетевых потоков имеют одинаковое качество обслуживания (QoS).

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

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

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

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

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

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

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

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

20. Машиночитаемый носитель информации по п. 15, при этом по меньшей мере два из первого подмножества сетевых потоков одновременно выгружаются в одну физическую очередь на основе того, что эти по меньшей мере два из первого подмножества сетевых потоков имеют одинаковое качество обслуживания (QoS).



 

Похожие патенты:

Изобретение относится к средствам управления трафиком. Техническим результатом является экономия ресурсов хранения, требуемых для буферизации информации связанного списка, и улучшение рабочих характеристик системы управления трафиком.

Изобретение относится к области радиотехники. Техническим результатом является повышение достоверности оценки результатов моделирования сетевой атаки типа "человек посередине" (MITM), за счет учета особенностей распространения передаваемых пакетов в единой сети электросвязи ЕСЭ и оценки необходимого ресурса для проведения эффективной сетевой атаки типа MITM.

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

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

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

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

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

Группа изобретений относится к области управления проектами и обеспечению визуализации и взаимодействия с цифровыми модулями информационного моделирования зданий (BIM).

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

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

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

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

Изобретение относится к способу функционирования защищенной операционной системы (SecureOS) на многопроцессорных системах в мобильных устройствах. Технический результат заключается в повышении производительности SecureOS.

Изобретение относится к сети высокопроизводительного межсоединения периферийных компонентов (PCIe), а именно к технологии для управления междоменным выделением ресурсов в PCIe сети.

Изобретение относится к сети высокопроизводительного межсоединения периферийных компонентов (PCIe), а именно к технологии для управления междоменным выделением ресурсов в PCIe сети.

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

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

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

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

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

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

Изобретение относится к области сред виртуализации. Техническим результатом является выгрузка сетевых потоков виртуальных машин в физические очереди сетевого аппаратного обеспечения. Компьютерная система исполняет одну или несколько виртуальных машин и программирует физическое сетевое устройство одним или несколькими правилами, которые управляют сетевым трафиком для виртуальных машин. Компьютерная система также программирует сетевое устройство для управления сетевым трафиком с использованием этих правил. В частности, сетевое устройство программируется для определения доступности одной или нескольких физических очередей в сетевом устройстве, которые могут использоваться для обработки сетевых потоков для виртуальных машин. Сетевое устройство также программируется для идентификации сетевых потоков для виртуальных машин, включая идентификацию характеристик каждого сетевого потока. Сетевое устройство также программируется для назначения, на основе характеристик сетевых потоков и на основе правил, одного или нескольких из сетевых потоков по меньшей мере одной из физических очередей. 3 н. и 17 з.п. ф-лы, 5 ил.

Наверх