Структура драйверов сетевых фильтров и средства оперативного управления ими

Изобретение относится к фильтрации пакетов данных. Его использование в системах с набором фильтров позволяет получить технический результат в виде эффективной фильтрации пакетов данных с возможностью изменения операций фильтрации при экономии сетевых ресурсов и ресурсов обработки. Этот результат достигается благодаря тому, что осуществляют приостановку действия набора фильтров; выполняют операцию ввода или удаления экземпляра фильтра в набор фильтров таким образом, что может быть продолжена передача данных посредством по меньшей мере одного связанного набора протоколов; и приводят в действие набор фильтров. Набор фильтров связан с одним или более наборами протоколов, которые функционируют в каналах обмена между вычислительным устройством и сетью. Может быть осуществлен обход операций фильтрации, связанных с экземплярами фильтров, основываясь на направлении потока данных, потока управляющих команд и параметров пакетов. 10 н. и 58 з.п. ф-лы, 4 ил.

 

Область техники

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

Предшествующий уровень техники

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

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

Другим способом является использование модели взаимодействия открытых систем («ВОС») («OSI»), которая определяет сетевую структуру для реализации протоколов связи. В модели ВОС («OSI») операции передачи данных разделяют на семь отдельных «уровней», каждый из которых предназначен для выполнения определенных операций в процессе передачи данных. Несмотря на то, что некоторые сетевые приложения реализуют посредством каждого из уровней, многие приложения, используемые для передачи данных по сети, реализуют посредством только выборочных уровней. В состав большинства наборов протоколов входят два уровня - транспортный уровень и уровень канала передачи данных. Транспортный уровень обычно связан с операцией пакетирования данных. Примером протокола транспортного уровня является протокол управления передачей («TCP»). Уровень канала передачи данных обычно связан с операциями кодирования битов с преобразованием их в пакеты и декодирования пакетов с преобразованием их в биты.

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

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

В результате были разработаны другие способы выполнения операций с данными на уровне канала передачи данных набора протоколов. Одним из таких способов является «перехватчик брандмауэра (средства сетевой защиты) протокола сети Интернет» (IP firewall hook), который осуществляет «перехват» пакетов данных при их прохождении между уровнем канала передачи данных и транспортным уровнем набора протоколов. Преимущество перехвата пакетов состоит в простоте реализации функций текущего контроля данных, например проверки исходного адреса пакета для определения того, следует ли осуществлять обработку пакета или нет. Однако, с другой стороны, преимущества способа перехвата пакетов имеют ограничения, обусловленные тем, что пакеты не могут быть изменены и введены обратно в поток данных. Кроме того, были разработаны другие более современные способы организации сетей, которые являются несовместимыми с перехватом пакетов. Например, перехват, осуществляемый в брандмауэре протокола сети Интернет (IP), не способен обеспечивать взаимодействие с широко используемой технологией совместного использования доступа к сети Интернет (Internet Connection Sharing).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

На Фиг.3 изображена схема последовательности операций, на которой показан пример способа ввода экземпляра фильтра в состав набора фильтров.

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

ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ

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

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

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

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

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

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

Варианты осуществления настоящего изобретения могут содержать в себе специализированный или универсальный компьютер, который содержит в себе различные компоненты, более подробное описание которых приведено ниже. Варианты осуществления, подпадающие под объем патентных притязаний настоящего изобретения, могут также содержать в себе считываемые посредством компьютера носители, являющиеся носителями или содержащие сохраненные на них исполняемые компьютером команды или структуры данных. Эти считываемые компьютером носители могут представлять собой любые существующие носители, доступ к которым может быть осуществлен посредством специализированного или универсального компьютера. Например, такими считываемыми посредством компьютера носителями могут являться, в том числе, оперативные запоминающие устройства (ОЗУ), постоянные запоминающие устройства (ПЗУ), электрически-стираемые программируемые постоянные запоминающие устройства (ЭСППЗУ), постоянные запоминающие устройства на компакт-дисках (CD-ROM) или иные запоминающие устройства на оптических дисках, запоминающие устройства на магнитных дисках или другие запоминающие устройства на магнитных носителях, либо любой другой носитель, который может быть использован для переноса или запоминания желательного средства программного кода в виде исполняемых компьютером команд или структур данных, доступ к которым может быть осуществлен специализированным или универсальным компьютером.

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

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

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

На Фиг.1 изображен примерный вариант системы, посредством которой может быть реализовано изобретение, содержит в себе универсальное вычислительное устройство, представляющее собой обычный компьютер 120, содержащий в себе процессор 121, системную память 122 и системную шину 123, который соединяет различные компоненты системы, в том числе системную память 122 с процессором 121. Системная шина 123 может представлять собой любую из нескольких типов шин различной структуры, в том числе шину памяти или контроллер памяти, шину периферийных устройств и локальную шину, выполненную с использованием любой из множества конфигураций шины. Системная память может содержать в себе постоянное запоминающее устройство («ПЗУ») 124 и оперативное запоминающее устройство («ОЗУ») 125. Базовая система ввода-вывода («BIOS») 126, содержащая в себе основные подпрограммы, посредством которых осуществляют передачу информации между элементами компьютера 120, например при запуске, может быть запомнена в ПЗУ 124.

Компьютер 120 может также содержать в себе накопитель 127 на жестких магнитных дисках, посредством которого осуществляют считывание данных с жесткого магнитного диска 139 или их запись на него, накопитель 128 на магнитных дисках, посредством которого осуществляют считывание данных со сменного магнитного диска 129 или их запись на него, и накопитель 130 на оптических дисках, посредством которого осуществляют считывание или запись данных на сменный оптический диск 131, представляющий собой, например, постоянное запоминающее устройство на компакт-диске (CD-ROM) или другой оптический носитель. Накопитель 127 на жестких магнитных дисках, накопитель 128 на магнитных дисках и накопитель 130 на оптических дисках соединяют с системной шиной 123 посредством, соответственно, интерфейса 132 накопителя на жестких дисках, интерфейса 133 накопителя на магнитных дисках и интерфейса 134 накопителя на оптических дисках. Накопители и их соответствующие считываемые посредством компьютера носители обеспечивают энергонезависимое хранение исполняемых посредством компьютера команд, структур данных, программных модулей и других данных для компьютера 120. Несмотря на то, что в описанном здесь примере вычислительной среды используют жесткий магнитный диск 139, сменный магнитный диск 129 и сменный оптический диск 131, для сохранения данных могут быть использованы и другие типы считываемых посредством компьютера носителей, в том числе магнитные кассеты, платы флэш-памяти, универсальные цифровые диски, картриджи Бернулли, ОЗУ, ПЗУ и т.п.

Средство программного кода, содержащего в себе один или большее количество программных модулей, в том числе операционную систему 135, одну или большее количество прикладных программ 136, другие программные модули 137 и данные 138 программы, может быть сохранено на жестком диске 139, магнитном диске 129, оптическом диске 131, в ПЗУ 124 или в ОЗУ 125. Пользователь может осуществлять ввод команд и информации в компьютер 120 посредством клавиатуры 140, координатно-указательного устройства 142 или других устройств ввода данных (не показаны), например микрофона, ручки управления курсором (джойстика), игровой клавишной панели, спутниковой антенны, сканирующего устройства и т.п. Эти и другие устройства ввода данных часто соединяют с процессором 121 через интерфейс 146 последовательного порта, соединенный с системной шиной 123. В альтернативном варианте подключение устройств ввода данных может быть осуществлено посредством других интерфейсов, например, через параллельный порт, через игровой порт или через универсальную последовательную шину («USB»). К системной шине 123 также подключен монитор 147 или другое устройство отображения через интерфейс, например через видеоконтроллер 148. Помимо монитора персональные компьютеры обычно содержат в себе другие периферийные устройства вывода (не показаны), например громкоговорители и принтеры.

Компьютер 120 может функционировать в сетевом окружении с использованием логических соединений с одним или с большим количеством удаленных компьютеров, например с удаленными компьютерами 149а и 149б. Каждый из удаленных компьютеров 149а и 149б может представлять собой другой персональный компьютер, сервер, маршрутизатор, сетевой персональный компьютер (ПК), равноправное устройство или другой общий узел сети. Несмотря на то что на Фиг.1 изображены только лишь запоминающие устройства 150а и 150б и соответствующие им прикладные программы 136а и 136б, удаленные компьютеры 149а и 149б могут содержать в себе многие или все элементы, описание которых было приведено выше применительно к компьютеру 120. Логические соединения, изображенные на Фиг.1, содержат в себе локальную сеть (ЛС) 151 и глобальную сеть (ГС) 152, которые приведены здесь лишь в качестве примера и не служат ограничивающим признаком. Подобные сетевые среды обычно используют в компьютерных сетях масштаба учреждения или предприятия, в интрасетях и в сети Интернет.

При использовании компьютера 120 в сетевой среде локальной сети его соединяют с локальной сетью 151 через сетевой интерфейсный адаптер 153 или аналогичный адаптер. При использовании компьютера 120 в сетевой среде глобальной сети он может содержать в себе модем 154, средство беспроводной связи или другое средство установления связи через глобальную сеть 152, например через сеть Интернет. Модем 154, который может быть внутренним или внешним, соединен с системной шиной 123 через интерфейс 146 последовательного порта. При наличии сетевого окружения сохранение программных модулей, которые изображены относящимися к компьютеру 120 или к его частям, может быть осуществлено в удаленном запоминающем устройстве. Понятно, что изображенные соединения с сетью приведены лишь в качестве примера, и что может быть использовано другое средство установления связи через глобальную сеть 152.

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

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

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

Согласно настоящему изобретению может быть осуществлено сохранение программных модулей, в том числе абстрактных интерфейсов, наборов фильтров, экземпляров фильтров и драйверов фильтров, которые используют для осуществления фильтрации пакетов данных, а также соответствующих данных программ, а доступ к ним может быть осуществлен из любого из считываемых компьютером носителей, связанных с компьютерной системой 120. Например сохранение части абстрактных интерфейсов, наборов фильтров, экземпляров фильтров, драйверов фильтров и соответствующих данных программ, входящих в состав операционной системы 135, прикладных программ 136, других программных модулей 137 и/или данных 138 программ осуществляют на жестком магнитном диске 139. Как описано выше, выполнение программных модулей, связанных с фильтрацией пакетов данных, может быть выполнено в распределенной среде. Например, ввод экземпляра фильтра в набор фильтров, содержащийся в локальном устройстве обработки, например в компьютере 120, может быть осуществлен посредством драйвера фильтра, содержащегося в удаленном вычислительном устройстве, например в удаленном компьютере 149а или 149б, или наоборот.

На Фиг.2А показаны некоторые из функциональных узлов, которые могут быть использованы для осуществления ввода экземпляра фильтра в состав набора фильтров. Как изображено на чертеже, компьютер 201 соединен и поддерживает связь с сетью 205. Пакеты, передачу которых осуществляют между компьютером 201 и сетью 205, могут проходить через канал связи, который содержит в себе протоколы 202 транспортного уровня, через абстрактный интерфейс 203 и драйвер 204 канала передачи данных. Компьютер 201 может содержать в себе любой из узлов, указанных в описании Фиг.1. Сеть 205 может содержать в себе любую из сетевых сред, указанных в описании к Фиг.1.

Абстрактный интерфейс 203 может осуществлять обмен информацией с набором 206 фильтров и с драйвером 210 фильтра. При приеме пакета данных абстрактный интерфейс 203 может осуществлять передачу пакета данных в каждый экземпляр фильтра, входящий в состав набора 206 фильтров. В том случае, если пакет данных принят из протоколов 202 транспортного уровня, абстрактный интерфейс 203 может передать пакет данных в экземпляр фильтра 207а, а затем - в другие модули фильтра, последовательно более близкие к драйверу 204 канала передачи данных. В том случае, если пакет данных принят из драйвера 204 канала передачи данных, абстрактный интерфейс 203 может передать пакет данных в экземпляр фильтра 211а, а затем - в другие модули фильтра, последовательно более близкие к протоколам 202 транспортного уровня.

Абстрактный интерфейс 203 может осуществлять обмен информацией с драйвером 210 фильтра, посредством чего осуществляют ввод экземпляра фильтра в состав набора 206 фильтров или удаление экземпляра фильтра из него. Драйвер 210 фильтра содержит в себе модуль 220 ввода фильтра, модуль 221 запуска и модуль 222 приостановки действия фильтра. На Фиг.2Б показан пример некоторых операций взаимодействия, которые могут иметь место между функциональными узлами, изображенными на Фиг.2А, посредством которых осуществляют ввод экземпляра фильтра в состав набора фильтров. На Фиг.3 изображена схема последовательности операций, на которой продемонстрирован способ ввода экземпляра фильтра в состав набора фильтров. Описание способа из Фиг.3 приведено со ссылкой на функциональные узлы, входящие в состав Фиг.2А и 2Б.

Как показано на Фиг.3, ввод экземпляра фильтра может быть начат с операции приостановки действия набора фильтров (операция 301). Она может содержать в себе операцию приостановки действия отдельных экземпляров фильтров из набора фильтров, которые являются действующими в текущий момент времени. Действие экземпляров фильтров может быть приостановлено путем вызова соответствующего модуля приостановки действия. Например, посредством модуля 222 приостановки действия фильтра может быть осуществлена приостановка действия тех экземпляров фильтров, которые были введены в состав набора фильтров драйвером 210 фильтра. В наборы протоколов может быть послано уведомление о намерении приостановить действие набора фильтров.

Как показано на Фиг.2А, набор 206 фильтров содержит в себе экземпляр фильтра 210а, который, возможно, был ранее введен в состав набора 206 фильтров посредством драйвера 210 фильтра. Абстрактный интерфейс 203 может передать данные в модуль 222 приостановки действия фильтра для перевода экземпляра фильтра 210а (или других экземпляров фильтров, введенных в состав набора 206 фильтров драйвером 210 фильтра) в состояние приостановки действия. При переводе экземпляра фильтра в состояние приостановки действия драйвер фильтра может выполнять определенные операции. Например, драйвер фильтра может вызывать удаление находящихся в очереди пакетов, связанных с экземпляром фильтра, может прекращать выполнение других текущих операций, связанных с экземпляром фильтра, и может осуществлять задержку перевода экземпляра фильтра в состояние приостановки действия до тех пор, пока посредством экземпляра фильтра не будет выполнена обработка пакетов и запросов, находящихся в очереди на обработку.

Приостановка действия экземпляров фильтров может быть осуществлена последовательным образом. Например, сначала может быть приостановлено действие экземпляра фильтра, наиболее близкого к протоколам 202 транспортного уровня. Первым экземпляром фильтра из Фиг.2А, действие которого приостанавливают, является экземпляр фильтра 207а. После успешной приостановки действия экземпляра фильтра, наиболее близкого к протоколам 202 транспортного уровня, может быть приостановлено действие следующего наиболее близкого к ним экземпляра фильтра (то есть экземпляра фильтра 208а). В этом примере в случае необходимости приостановки действия всего набора фильтров приостановку действия остальных экземпляров фильтров осуществляют в следующем порядке: 208б, 209а, 210а и 211а. После того, как будет благополучно достигнуто состояние приостановки действия экземпляра фильтра 211а, то есть экземпляра фильтра, наиболее близкого к уровню канала передачи данных, можно полагать, что набор 206 фильтров также находится в состоянии приостановки его действия. Затем в наборы протоколов может быть послано уведомление об успешной приостановке действия набора 206 фильтров.

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

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

Например, предположим, что все изображенные на Фиг.2А экземпляры фильтров из набора 206 фильтров являются в текущий момент времени действующими. В том случае, если экземпляр фильтра 208б должен осуществить прием параметров конфигурации, действие экземпляра фильтра 207а может быть приостановлено, затем может быть приостановлено действие фильтра 208а, после чего может быть приостановлено действие экземпляра фильтра 208б. Однако при настройке конфигурации экземпляра фильтра 208б другие экземпляры фильтров, расположенные ближе к уровню канала передачи данных, в том числе экземпляр фильтра 209а, экземпляр фильтра 210а и экземпляр фильтра 211а, могут продолжать функционирование.

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

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

Операция ввода экземпляра фильтра в состав набора фильтров может содержать в себе операцию приема драйвером фильтра параметров из абстрактного интерфейса. На Фиг.2Б стрелкой 1 показана операция передачи параметра из абстрактного интерфейса 203 в драйвер 210 фильтра. Параметры, которые передают в драйвер 210 фильтра, могут содержать в себе дескриптор фильтра, который может быть использован для обращения к созданному экземпляру фильтра. Например, в том случае, если параметры, содержащиеся в стрелке 1, были использованы для создания экземпляра фильтра 210б, драйвер 210 фильтра может использовать дескриптор фильтра для передачи данных, соответствующих экземпляру фильтра 210б, в абстрактный интерфейс 203. Параметры могут также содержать в себе то место в наборе фильтров, в которое должен быть введен экземпляр фильтра. В примере на Фиг.2Б возможна ситуация, при которой драйвер 210 фильтра принимает параметр, посредством которого указывают, что экземпляр фильтра 210б должен быть введен между экземплярами фильтров 208б и 209а.

Операция ввода экземпляра фильтра в состав набора фильтров может содержать в себе операцию создания контекста экземпляра фильтра. На Фиг.2Б стрелкой 2 обозначена операция создания контекста экземпляра фильтра для экземпляра фильтра 210б посредством модуля 230 создания контекста. В состав набора фильтров может быть введено множество экземпляров фильтра. Например, на Фиг.2Б показаны экземпляры фильтра 208а и 208б. Ввод экземпляров фильтра 208а и 208б в состав набора 206 фильтров может быть осуществлен посредством одного и того же драйвера фильтра. Однако экземпляры фильтра 208a и 208б могут быть различными, что зависит от параметров, использованных для их создания. Контекст экземпляра фильтра может быть использован для установления различий между экземплярами фильтра, например между экземплярами фильтра 208а и 208б, которые были созданы посредством одного и того же драйвера фильтра.

Операция ввода экземпляра фильтра в состав набора фильтров может содержать в себе операцию распределения ресурсов для экземпляра фильтра. На Фиг.2Б стрелкой 3 обозначена операция распределения ресурсов для экземпляра фильтра 210б, выполняемая посредством модуля 231 распределения ресурсов. Эта операция может содержать в себе операцию распределения памяти для обеспечения функционирования экземпляра фильтра и операцию распределения памяти для очереди пакетов данных, обрабатываемых посредством экземпляра фильтра. Эти ресурсы приведены только лишь в качестве примеров ресурсов, распределение которых может быть осуществлено при вводе экземпляра фильтра в состав набора фильтров. После ознакомления с данным описанием для специалиста в данной области техники очевидно, что для экземпляра фильтра может быть осуществлено распределение различных типов ресурсов.

Операция ввода экземпляра фильтра в состав набора фильтров может содержать в себе операцию передачи контекста экземпляра фильтра в абстрактный интерфейс. На Фиг.2Б стрелкой 4 обозначена операция передачи контекста экземпляра фильтра для экземпляра фильтра 210б в абстрактный интерфейс 203, выполняемая посредством драйвера 210 фильтра. Абстрактный интерфейс 203 может использовать контекст экземпляра фильтра для обращения к экземпляру фильтра 210б. Например, в том случае, когда абстрактный интерфейс 203 передает в драйвер 210 фильтра данные, соответствующие экземпляру фильтра 210б, абстрактный интерфейс 203 может содержать в себе контекст экземпляра фильтра. Абстрактный интерфейс 203 может использовать контекст экземпляра фильтра для того, чтобы в драйвер фильтра 210 поступили сведения о том, что принятые данные связаны с экземпляром фильтра 210б.

Операция ввода экземпляра фильтра в состав набора фильтров может содержать в себе операцию считывания конфигурируемых параметров из системного реестра. На Фиг.2Б стрелкой 5 обозначена операция считывания конфигурируемых параметров из системного реестра 223, выполняемая посредством модуля 233 доступа к конфигурируемым параметрам. Для осуществления доступа к системному реестру модуль 233 доступа к конфигурируемым параметрам может использовать заранее принятый дескриптор конфигурации. Дескриптор конфигурации может представлять собой указатель или иное средство адресации, который направляет модуль 233 доступа к конфигурируемым параметрам в ту часть системного реестра, в которой могут находиться параметры, соответствующие экземпляру фильтра 210б. Операция считывания из системного реестра может содержать в себе операцию считывания идентификационного номера, посредством которого отображают экземпляр фильтра.

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

Операция ввода экземпляра фильтра в состав набора фильтров может содержать в себе операцию настройки конфигурации экземпляра фильтра на основании принятых параметров. Принятые параметры могут быть переданы из абстрактного интерфейса или считаны из системного реестра. На Фиг.2Б стрелкой 6 обозначена операция передачи параметров для настройки конфигурации экземпляра фильтра 210б, выполняемая посредством модуля 220 ввода фильтра. Конфигурация экземпляров фильтров может быть настроена таким образом, чтобы посредством них выполнять множество различных операций фильтрации, например: текущий контроль пакетов данных; удаление, ввод и/или изменение данных, содержащихся в пакетах данных; проверку адресов, которые соответствуют пакетам данных; сжатие пакетов данных; шифровку пакетов данных или любые совокупности этих операций.

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

Конфигурация экземпляров фильтров может быть также настроена таким образом, чтобы в точку входа поступали данные управления режимом электропитания (УРЭ) («PM») и/или данные об устройствах, имеющих автоматическую настройку конфигурации («PnP»). Передача соответствующих данных управления режимом электропитания в экземпляры фильтров может быть осуществлена при переходе вычислительного устройства в режим ожидания вследствие отсутствия активности. Аналогичным образом передача соответствующих данных в экземпляры фильтров может быть осуществлена в случае вставки в вычислительное устройство периферийного устройства, которое может оказать воздействие на поток пакетов данных, например, сетевой интерфейсной платы.

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

Операция настройки конфигурации экземпляра фильтра может также содержать в себе операцию «привязки» экземпляра фильтра к множеству протоколов транспортного уровня. В том случае, когда экземпляр фильтра привязан к протоколу транспортного уровня, посредством него может быть осуществлена фильтрация пакетов данных, соответствующих протоколу транспортного уровня. Например, настройка конфигурации экземпляра фильтра 210б может быть выполнена таким образом, чтобы посредством него осуществлять фильтрацию пакетов данных как средства А транспортировки, так и средства Б транспортировки, которые показаны на Фиг.2А.

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

Операция ввода экземпляра фильтра в состав набора фильтров может содержать в себе операцию проверки того, что ввод экземпляра фильтра в состав набора фильтров осуществлен надлежащим образом. Она может содержать в себе операцию передачи данных о состояния ввода в абстрактный интерфейс. На Фиг.2Б стрелками 7 и 8 обозначены операции приема данных проверки состояния ввода экземпляра фильтра 210б и передачи данных о состоянии ввода в абстрактный интерфейс 203, выполняемые посредством модуля 232 состояния ввода.

Возвращаясь к Фиг.3, операция ввода экземпляра фильтра в состав набора фильтров может содержать в себе операцию приведения набора фильтров в действие (операция 303). Она может содержать в себе операцию приведения в действие отдельных экземпляров фильтров, действие которых в текущий момент времени приостановлено. Приведение экземпляров фильтров в действие может быть осуществлено путем вызова соответствующего модуля запуска. Например, посредством модуля 221 запуска фильтра могут быть приведены в действие те экземпляры фильтров, которые были введены в состав набора фильтров драйвером 210 фильтра, например экземпляры фильтров 210а и 210б. В наборы протоколов может быть послано уведомление о намерении привести в действие набор фильтров.

Абстрактный интерфейс 203 может осуществлять передачу в модуль 221 запуска фильтра данных о приведении экземпляров фильтров 210а, 210б или других экземпляров фильтров, введенных в состав 206 набора фильтров драйвером 210 фильтра, в рабочее состояние. Приведение экземпляров фильтров в действие может быть осуществлено последовательно. Например, первым может быть приведен в действие тот экземпляр фильтра, который является наиболее близким к драйверу 204 канала передачи данных (то есть экземпляр фильтра 211а). После того как экземпляр фильтра, наиболее близкий к драйверу 204 канала передачи данных, успешно приведен в действие, может быть приведен в действие следующий наиболее близкий к нему экземпляр фильтра. На Фиг.2Б таким экземпляром фильтра является экземпляр фильтра 210а. В этом примере приведение в действие остальных экземпляров фильтров осуществляют в следующем порядке: 209а, 210б, 208б, 208а и 207а. После того как экземпляр фильтра 207а успешно приведен в рабочее состояние, можно полагать, что набор 206 фильтров также находится в рабочем состоянии. Операция приведения в действие набора фильтров может также содержать в себе операцию замены фиктивных подпрограмм обработчиками подпрограмм, посредством чего обеспечивают возможность надлежащей обработки пакетов данных набором 206 фильтров. Затем в наборы протоколов может быть послано уведомление о том, что набор 206 фильтров является действующим.

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

Например, предположим, что в текущий момент времени действие всех изображенных на Фиг.2А экземпляров фильтров из набора 206 фильтров приостановлено. При необходимости возобновления действия экземпляра фильтра 209а первым может быть возобновлено действие экземпляра фильтра 211а, затем - экземпляра фильтра 210а, а затем - экземпляра фильтра 209б. Действие остальных экземпляров фильтров, расположенных ближе к транспортному уровню, в том числе экземпляра фильтра 208б, экземпляра фильтра 208а и экземпляра фильтра 207а, может оставаться приостановленным.

Следует понимать, что модули и стрелки, изображенные на Фиг.2А и 2Б, приведены лишь в качестве примера. Различные модули и соответствующие функции могут быть объединены, что не выходит за пределы сущности и объема настоящего изобретения. Например, драйвер 210 фильтра может содержать в себе единственный модуль, который выполняет операции, связанные с добавлением экземпляра фильтра в набор фильтров. Также может существовать вариант, в котором драйвер 210 фильтра входит в состав абстрактного интерфейса 203 в качестве его части. Аналогичным образом, порядок выполнения функций, соответствующих стрелкам, которые изображены на Фиг.2Б, также приведен лишь в качестве примера. Порядок выполнения функций, соответствующих стрелкам, которые изображены на Фиг.2Б, может быть различным, что не выходит за пределы сущности и объема настоящего изобретения. После ознакомления с данным описанием для специалиста в данной области техники очевидно, что модули, а также соответствующие им функции могут быть объединены множеством способов.

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

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

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

На Фиг.2В показан экземпляр фильтра 210б, который входит в состав набора 206 фильтров. Экземпляр фильтра 210б содержит в себе модуль 215 управления, а также операции 216а, 216б и 216в фильтрации. На Фиг.2В показан канал связи, посредством которого осуществляют передачу пакетов из транспортного уровня в уровень канала передачи данных. Однако настоящее изобретение также может быть реализовано таким образом, что оно содержит в себе канал связи, посредством которого осуществляют передачу пакетов из уровня канала передачи данных в транспортный уровень. Канал связи может содержать в себе канал передачи данных, посредством которого осуществляют передачу пакетов данных через набор протоколов, или канал управления, посредством которого осуществляют передачу управляющих пакетов через набор протоколов.

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

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

Способ из Фиг.4 может содержать в себе операцию обработки входного пакета (операция 401). Он может содержать в себе операцию приема пакета 240а экземпляром фильтра 210б. На Фиг.2В показано, что передачу пакета 240а осуществляют из экземпляра фильтра 208б. В варианте осуществления изобретения, изображенном на этом чертеже, передачу пакета 240а осуществляют по каналу передачи данных из протоколов 202 транспортного уровня в драйвер 204 канала передачи данных. Однако, этот вариант приведен лишь в качестве иллюстративного примера, поскольку фильтрация пакетов данных может быть также осуществлена при их передаче по каналу передачи данных из драйвера 204 канала передачи данных в протоколы 202 транспортного уровня. Также может иметь место ситуация, в которой осуществляют фильтрацию пакетов, передаваемых по каналу управления. Также может иметь место ситуация, в которой фильтрацию пакетов экземплярами фильтров не осуществляют в каком-либо конкретном порядке. Например, передача пакета может быть осуществлена из экземпляра фильтра 208а в экземпляр фильтра 210а. К тому же входной пакет может представлять собой пакет, созданный посредством экземпляра фильтра.

В ином варианте осуществления может быть выполнена обработка пакета 240в. При обработке пакета 240в может быть установлено, что пакет 240в передают по такому каналу передачи данных или каналу управления, который полностью обходит операции фильтрации посредством экземпляра фильтра 210б. Как показано на Фиг.2В, передачу пакета 240в осуществляют по пунктирной стрелке из экземпляра фильтра 208б непосредственно в экземпляр фильтра 209а. Пакет 240в может быть направлен в обход экземпляра фильтра 210б, поскольку конфигурация экземпляра фильтра 210б была настроена таким образом, чтобы для канала передачи данных или канала управления он функционировал в режиме «обхода».

Настройка конфигурации экземпляра фильтра посредством абстрактного интерфейса 203 может быть осуществлена таким образом, чтобы он функционировал в режиме его обхода. Настройка конфигурации экземпляра фильтра для функционирования в режиме обхода может быть выполнена при первоначальном приведении его в действие или во время его работы. То есть экземпляр фильтра, для которого не был изначально установлен режим обхода, может быть переведен в режим обхода позже. При инициализации драйвер фильтра указывает, что был приведен в действие режим обхода экземпляра фильтра для одного или более каналов передачи данных или каналов управления путем указания обработчика NULL (пустой) во время процесса приведения его в действие для этого канала передачи данных.

После инициализации и во время работы для драйвера фильтра может оказаться желательным перевести экземпляр фильтра в режим его обхода для некоторых каналов передачи данных или некоторых каналов управления. В этом случае драйвер фильтра передает в абстрактный интерфейс просьбу осуществить перезапуск экземпляра фильтра. После этого абстрактный интерфейс приостанавливает действие экземпляра фильтра и возобновляет его действие в соответствии со способами, которые были продемонстрированы в предыдущей части настоящего описания. После возобновления действия экземпляра фильтра драйвер фильтра может указать, что экземпляр фильтра должен функционировать в режиме обхода для некоторых каналов передачи данных или каналов управления путем предоставления НУЛЕВЫХ (NULL) обработчиков для обходимых каналов.

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

Аналогичным образом, настройка конфигурации экземпляра фильтра, который в текущий момент времени находится в режиме обхода для канала передачи данных или канала управления, может быть осуществлена в динамическом режиме таким образом, чтобы в него поступали пакеты для канала передачи данных или канала управления. В этих случаях драйвер фильтра может передать в абстрактный интерфейс 203 просьбу о перезапуске экземпляра фильтра. После этого абстрактный интерфейс 203 приостанавливает действие экземпляра фильтра и возобновляет его действие в соответствии со способами, которые были продемонстрированы в предыдущей части настоящего описания. После возобновления действия экземпляра фильтра драйвер фильтра может указать, что экземпляр фильтра должен осуществлять прием пакетов из каналов передачи данных или каналов управления путем предоставления НЕНУЛЕВОГО (non-NULL) обработчика для приведенных в действие каналов передачи данных.

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

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

Операция обхода одной или большего количества операций, связанных с экземпляром фильтра (операция 402), может содержать в себе операцию обхода одной или более операций фильтрации, содержащихся в экземпляре фильтра 210б. При приеме экземпляром фильтра 210б пакета 240а данных модуль 215 управления может производить анализ параметров пакета 240а данных. Операция анализа может содержать в себе операцию определения направления потока данных входного пакета. Направления потока данных могут быть следующими: из драйвера канала передачи данных в протокол транспортного уровня или из протокола транспортного уровня в драйвер канала передачи данных. Анализ может также содержать в себе операцию определения протокола, соответствующего входному пакету данных, например протокола сети Интернет (IP), протокола управления передачей данных (TCP), протокола межсетевого обмена пакетами («IPX»), других протоколов транспортного уровня или других протоколов, соответствующих уровням модели взаимодействия открытых систем («OSI»). В том случае, если модуль 215 управления определяет, что пакет данных 240а соответствует протоколу межсетевого обмена пакетами (IPX), может быть осуществлен обход операций 216а и 216в фильтрации. Однако, если модуль 215 управления определяет, что пакет данных 240а соответствует протоколу сети Интернет (IP), то может быть осуществлен обход операции 216б фильтрации.

В альтернативном варианте может иметь место ситуация, в которой конфигурация экземпляра фильтра 210б настроена таким образом, что пакеты, передаваемые по каналу передачи данных или по каналу управления, полностью направляют в обход экземпляра фильтра 210б. Как показано на Фиг.2В, настройка конфигурации экземпляра фильтра 210б может быть выполнена таким образом, что пакеты, передаваемые по каналу передачи данных из транспортного уровня в уровень канала передачи данных, будут направлены в обход экземпляра фильтра 210б. В том случае, если пакет 240в представляет собой пакет данных, его направляют из экземпляра фильтра 208б в экземпляр фильтра 209а в обход экземпляра фильтра 210б, что показано пунктирной стрелкой.

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

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

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

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

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

осуществляют приостановку действия набора фильтров;

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

приводят в действие набор фильтров.

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

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

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

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

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

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

5. Способ по п.1, в котором операция ввода экземпляра фильтра в набор фильтров содержит следующую операцию:

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

6. Способ по п.1, в котором операция ввода экземпляра фильтра в набор фильтров содержит следующую операцию:

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

7. Способ по п.1, в котором операция ввода экземпляра фильтра в набор фильтров содержит следующую операцию:

посредством драйвера фильтра осуществляют распределение ресурсов для экземпляра фильтра.

8. Способ по п.1, в котором операция ввода экземпляра фильтра в набор фильтров содержит следующую операцию:

посредством драйвера фильтра создают контекст экземпляра фильтра для экземпляра фильтра.

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

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

10. Способ по п.1, в котором операция ввода экземпляра фильтра в набор фильтров содержит следующую операцию:

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

11. Способ по п.1, в котором операция ввода экземпляра фильтра в набор фильтров содержит следующую операцию:

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

12. Способ по п.1, в котором операция ввода экземпляра фильтра в набор фильтров содержит следующую операцию:

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

13. Способ по п.1, в котором операция ввода экземпляра фильтра в набор фильтров содержит следующую операцию:

осуществляют ввод экземпляра фильтра в заранее заданное место в наборе фильтров.

14. Способ по п.1, в котором операция ввода экземпляра фильтра в набор фильтров содержит следующую операцию:

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

15. Способ по п.1, в котором операция ввода экземпляра фильтра в набор фильтров содержит следующую операцию:

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

16. Способ по п.1, в котором операция ввода экземпляра фильтра в набор фильтров содержит следующую операцию:

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

17. Способ по п.1, в котором операция ввода экземпляра фильтра в набор фильтров содержит следующую операцию:

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

18. Способ по п.1, в котором операция ввода экземпляра фильтра в набор фильтров содержит в себе следующую операцию:

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

19. Способ по п.1, в котором операция ввода экземпляра фильтра в набор фильтров содержит в себе следующую операцию:

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

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

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

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

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

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

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

23. Способ по п.1, дополнительно содержащий следующую операцию:

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

24. Способ по п.1, дополнительно содержащий следующую операцию:

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

25. Способ по п.1, дополнительно содержащий следующую операцию:

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

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

осуществляют приостановку действия набора фильтров;

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

приводят в действие набор фильтров.

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

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

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

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

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

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

30. Способ по п.26, в котором операция удаления экземпляра фильтра из набора фильтров содержит следующую операцию:

осуществляют приостановку действия экземпляра фильтра.

31. Способ по п.26, в котором операция удаления экземпляра фильтра из набора фильтров содержит следующую операцию:

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

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

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

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

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

34. Способ по п.26, дополнительно содержащий следующую операцию:

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

35. Способ по п.26, дополнительно содержащий следующую операцию:

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

36. Способ по п.26, дополнительно содержащий следующую операцию:

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

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

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

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

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

осуществляют обработку входного пакета;

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

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

39. Способ по п.38, в котором операция обработки входного пакета содержит следующую операцию:

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

40. Способ по п.38, в котором операция обработки соответствующего входного пакета содержит следующую операцию:

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

41. Способ по п.38, в котором операция обработки входного пакета содержит следующую операцию:

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

42. Способ по п.41, в котором операция обработки входного пакета, соответствующего протоколу транспортного уровня, содержит следующую операцию:

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

43. Способ по п.41, в котором операция обработки входного пакета, соответствующего протоколу транспортного уровня, содержит следующую операцию:

осуществляют обработку входного пакета данных, соответствующего протоколу сети Интернет (IP).

44. Способ по п.41, в котором операция обработки входного пакета, соответствующего протоколу транспортного уровня, содержит следующую операцию:

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

45. Способ по п.38, в котором операция обработки входного пакета содержит следующую операцию:

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

46. Способ по п.38, в котором операция обработки входного пакета содержит следующую операцию:

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

47. Способ по п.38, в котором операция обработки входного пакета содержит следующую операцию:

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

48. Способ по п.38, в котором операция обработки входного пакета содержит следующую операцию:

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

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

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

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

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

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

входной пакет полностью обходит экземпляр фильтра.

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

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

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

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

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

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

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

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

осуществляют прием входного пакета, соответствующего протоколу;

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

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

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

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

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

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

59. Способ по п.57, в котором канал обмена представляет собой канал передачи данных.

60. Способ по п.57, в котором канал обмена представляет собой канал управления.

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

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

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

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

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

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

63. Способ по п.62, дополнительно содержащий следующую операцию:

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

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

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

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

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

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

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

осуществляют приостановку действия набора фильтров;

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

приводят в действие набор фильтров.

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

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

осуществляют приостановку действия набора фильтров;

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

приводят в действие набор фильтров.

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

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

осуществляют обработку входного пакета;

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

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



 

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

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

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

Изобретение относится к передаче данных по радиоканалам стандарта Bluetooth. .

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

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

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

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

Изобретение относится к реализации услуги передачи сообщений, в которой пользовательские данные могут быть переданы между передачей сигнализации, такой как служба коротких сообщений в соответствии с протоколом управления радиоканалом/управления доступом к среде передачи (RLC/MAC) в системе мобильной связи.

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

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

Изобретение относится к системам передачи данных

Изобретение относится к области передачи пакетных данных в системе связи

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

Изобретение относится к адаптивному вычислению скорости кодирования при использовании протокола передачи RTP/RTCP

Изобретение относится к способам идентификации изменений в неоднократно вещаемой базе данных
Наверх