close

Вход

Забыли?

вход по аккаунту

?

Патент РФ 2336652

код для вставки
РОССИЙСКАЯ ФЕДЕРАЦИЯ
(19)
RU
(11)
2 336 652
(13)
C2
(51) МПК
H04L 29/02 (2006.01)
G06F 13/00 (2006.01)
ФЕДЕРАЛЬНАЯ СЛУЖБА
ПО ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ,
ПАТЕНТАМ И ТОВАРНЫМ ЗНАКАМ
(12)
ОПИСАНИЕ ИЗОБРЕТЕНИЯ К ПАТЕНТУ
(21), (22) За вка: 2003112727/09, 29.04.2003
(72) Автор(ы):
ПИНКЕРТОН Джеймс (US),
ГБАДЕГЕСИН Аболаде (US),
КАНИЙАР Санджай (US),
СРИНИВАС Н.К. (US)
(24) Дата начала отсчета срока действи патента:
29.04.2003
(73) Патентообладатель(и):
МАЙКРОСОФТ КОРПОРЕЙШН (US)
(43) Дата публикации за вки: 27.11.2004
R U
(30) Конвенционный приоритет:
30.04.2002 US 10/135,630
(45) Опубликовано: 20.10.2008 Бюл. № 29
2 3 3 6 6 5 2
(56) Список документов, цитированных в отчете о
поиске: US 2001027496 A1, 04.10.2001. WO
0227519 A1, 04.04.2002. RU 2121709 C1,
10.11.1998.
2 3 3 6 6 5 2
R U
(54) СПОСОБ СИНХРОНИЗАЦИИ И ПЕРЕДАЧИ ВЫГРУЖЕННОГО СОЕДИНЕНИЯ СЕТЕВОГО
СТЕКА В СЕТЕВОЙ СТЕК
(57) Реферат:
Изобретение
относитс к
области
распределени вычислительных ресурсов сетевого
оборудовани ,
в
частности
способам
синхронизации и управлени распределением
ресурсов по передаче данных между хостом и
периферийным
устройством.
Технический
результат заключаетс в передаче управл ющих
функций по поддержанию активного сетевого
подключени в периферийное сетевое устройство,
достигаетс за счет того, что периферийному
устройству дл каждого уровн в стеке посылаетс объект состо ни , который включает в себ переменные
состо ни ,
которые
классифицируютс как константа, кэшируема переменна , котора обрабатываетс хостом, или
делегированна переменна ,
котора обрабатываетс устройством. Состо ние, которое
должно модифицироватьс сетевым стеком и
периферийным
устройством,
полностью
раздел етс . Например, статистические данные
отслеживаютс хостом, устройством или хостом и
устройством. Статистическа информаци , котора отслеживаетс и хостом, и периферийным
устройством, делитс на непересекающиес части,
и они объедин ютс дл генерации статистической
информации. При инициации загрузки устройство
достигает непротиворечивого состо ни и
передает делегированные состо ни стеку. Каждый
уровень в стеке берет под свое управление
делегированное состо ние и ресурсы в устройстве,
когда они освобождаютс . 5 н. и 23 з.п. ф-лы, 9 ил.
Страница: 1
RU
C 2
C 2
Адрес дл переписки:
129090, Москва, ул. Б.Спасска , 25, стр.3,
ООО "Юридическа фирма Городисский и
Партнеры", пат.пов. Ю.Д.Кузнецову, рег.№ 595
C 2
C 2
2 3 3 6 6 5 2
2 3 3 6 6 5 2
R U
R U
Страница: 2
RUSSIAN FEDERATION
RU
(19)
(11)
2 336 652
(13)
C2
(51) Int. Cl.
H04L 29/02 (2006.01)
G06F 13/00 (2006.01)
FEDERAL SERVICE
FOR INTELLECTUAL PROPERTY,
PATENTS AND TRADEMARKS
(12)
ABSTRACT OF INVENTION
(21), (22) Application: 2003112727/09, 29.04.2003
(72) Inventor(s):
PINKERTON Dzhejms (US),
GBADEGESIN Abolade (US),
KANIJAR Sandzhaj (US),
SRINIVAS N.K. (US)
(24) Effective date for property rights: 29.04.2003
(30) Priority:
30.04.2002 US 10/135,630
(45) Date of publication: 20.10.2008 Bull. 29
(54) METHOD OF UPLOADED NETWORK STACK CONNECTION TIMING AND TRANSFER TO
2 3 3 6 6 5 2
and transfers delegated condition to a stack.
Each stack level takes delegated condition and
device resources under control when they are free.
EFFECT:
transfer
of
control
functions
maintaining
active
network
connection
to
peripheral network device.
28 cl, 8 dwg
R U
(57) Abstract:
FIELD: physics, communications.
SUBSTANCE: invention concerns computation
resource
distribution
of
network
equipment,
particularly methods of timing and resource
distribution control in data transfer between
host and peripheral device. The objective is
achieved by sending condition object to each
stack level of peripheral device, the object
containing condition variables classified as a
constant, cashable variable processed by host, or
delegated
variable
processed
by
peripheral
device. Condition to be modified by the network
stack
and
peripheral
device
is
completely
divided. E.g., statistic data is tracked by host,
device, or host and device. Statistic data
tracked by both host and device is divided into
non-overlapping parts, which are combined to
generate
statistic
information.
At
launch
initiation, device reaches consistent condition
Страница: 3
EN
C 2
C 2
NETWORK STACK
2 3 3 6 6 5 2
Mail address:
129090, Moskva, ul. B.Spasskaja, 25, str.3,
OOO "Juridicheskaja firma Gorodisskij i
Partnery", pat.pov. Ju.D.Kuznetsovu, reg.№ 595
R U
(73) Proprietor(s):
MAJKROSOFT KORPOREJShN (US)
(43) Application published: 27.11.2004
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
ОБЛАСТЬ ТЕХНИКИ
Насто щее изобретение относитс в целом к способам увеличени эффективности,
скорости и/или производительности компьютерной системы, а более конкретно - к
способам синхронизации и загрузки вычислительных задач, которые обычно выполн ютс главным процессором (хост-процессором) и которые были выгружены в определенный
аппаратный компонент.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Усложнение и совершенствование операционных систем, прикладного программного
обеспечени , организации сетей, сетевых коммуникаций и т.п. продолжают увеличиватьс значительными темпами. Одним из результатов усложнени и совершенствовани вл етс по вление расширенных функциональных возможностей приложений и систем.
Эти расширенные функциональные возможности часто привод т к увеличению
непроизводительного использовани центрального процессора из-за дополнительных
об занностей, которые должны выполн тьс центральным процессором дл выполнени расширенных функций системы и приложений.
Одной из областей, где увеличение непроизводительного использовани центрального
процессора вл етс очевидным, вл етс область сетевых приложений, где сетевые
скорости увеличиваютс из-за увеличени количества сред передачи данных с высокой
пропускной способностью. Сетевые скорости часто соответствуют, а все чаще превышают
скоростные возможности центрального процессора и пропускную способность пам ти
главных компьютеров. Эти сетевые приложени дополнительно нагружают главный
процессор из-за многоуровневой архитектуры, используемой большинством операционных
систем, такой как семиуровнева модель открытых систем международной организации по
стандартизации (ISO), или многоуровнева модель, используема операционной системой
Windows. Как известно, така модель используетс дл описани потока данных между
физическим подключением (соединением) к сети и приложением конечного пользовател .
Основные функции, такие как размещение битов данных в сетевом кабеле, выполн ютс в
нижних уровн х, в то врем как функции, обращающиес к подробност м приложений - в
верхних уровн х. По существу целью каждого уровн вл етс обеспечение услуг
следующему более высокому уровню, огражда более высокий уровень от подробностей
того, как эти услуги фактически осуществл ютс . Уровни вл ютс абстрактными в том
смысле, что каждый уровень считает, что он поддерживает св зь с тем же самым уровнем
на другом компьютере.
Различные функции, которые выполн ютс с пакетом данных, когда он переходит между
уровн ми, могут интенсивно использовать программное обеспечение и часто требуют
значительного количества ресурсов центрального процессора и пам ти. Например,
некоторые функции, которые выполн ютс с пакетом на различных уровн х, потребл ют
чрезвычайно много ресурсов центрального процессора, например вычисление и проверка
контрольной суммы пакета, шифрование и расшифровка данных (например, шифрование
протокола безопасных соединений (SSL) и шифрование протокола IP Security), вычисление
профил сообщени , сегментаци TCP, обработка повторной передачи TCP и
подтверждени (ACK), фильтраци пакета дл защиты от атак отказа в обслуживании и
фрагментаци пакета протокола пользовательских дейтаграмм (UDP). Когда кажда из этих
функций выполн етс , результирующие требовани к центральному процессору могут
сильно повли ть на производительность и работу всей компьютерной системы.
Хот спрос на ресурсы центрального процессора растет, возможности и
производительность компьютерных периферийных устройств, например сетевых
интерфейсных плат (СИП, NIC) и т.п., также увеличиваютс . Эти внешние устройства
часто оборудуютс специализированным процессором и пам тью, которые способны
выполн ть многие из задач и функций, которые иначе выполн ютс центральным
процессором.
Компьютерна промышленность распознала эту возможность и разработала способы,
как разгрузить ЦП от задач и функций, потребл ющих много ресурсов центрального
Страница: 4
DE
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
процессора, которые ранее выполн лись центральным процессором. Например, патент
США № 6141705 Anand et al., и патентные за вки № 09/657510 «Method and Computer
Program Product for Offloading Processing Tasks from Software to Hardware», поданна 7 сент бр 2000 г., и № 09/726 082 «Method and Computer Program Product for
Offloading Processing Tasks from Software to Hardware», поданна 29 но бр 2000,
обеспечивают решени , необходимые дл того, чтобы сделать запрос периферийных
устройств и выгрузить определенные задачи процессора на периферийные устройства,
которые способны выполн ть ресурсоемкие задачи и функции. Обычно также
специфические выгружаемые задачи включают в себ такие задачи, как вычисление
контрольной суммы TCP (протокола управлени передачей) и/или IP (межсетевого
протокола), сегментаци TCP, например, при выгрузке от посылки больших пакетов (РПБП,
LSO), и шифрование и расшифровка протокола обеспечени безопасности Интернет
(IPSEC).
Эти механизмы выгрузки ограничены тем, что они имеют вторичное требование,
заключающеес в том, что в сетевом стеке должно быть сделано минимальное количество
изменений. В результате этого вторичного требовани возникает другое ограничение то, что выгрузки имеют длинный путь кода, потому что весь сетевой стек передаетс с
разгруженными задачами и функци ми, не доступными дл периферийного устройства.
Дополнительное ограничение - отсутствие интеграции с сетевым стеком. Нет хорошо
определенного интерфейса дл сетевого стека, чтобы сделать запрос или установить
параметры на периферийном устройстве, или интерфейса дл периферийного устройства,
чтобы сообщить сетевому стеку о любом оповещении или изменени х возможностей.
Например, если маршрут измен етс , когда обрабатываетс запрос РПБП, то механизм
нейтрализации неисправности дл стека должен ждать окончани перерыва и повторно
передавать запрос РПБП.
Другой подход, который пробовали осуществить изготовители периферийных устройств,
состо л в том, чтобы разгрузить все TCP-соединение от основного стека к сетевой
интерфейсной плате (СИП). Этот подход обходит весь стек протоколов, использу собственный интерфейс, и он требует, чтобы периферийное устройство обрабатывало все
сообщени TCP, сообщени IP (межсетевого протокола), сообщени протокола
управл ющих сообщений в сети Интернет (ПУСИ, ICMP), сообщени сервера доменных
имен (СДИ, DNS) и сообщени протокола маршрутной информации (ПМИ, RIP), требу ,
чтобы СИП обрабатывала все. Дополнительно, этот подход не обращаетс к многосетевым
средам и не вполне интегрируетс с утилитами управлени сетью операционной системы
хоста. Когда состо ние измен етс , разгруженное подключение может легко выйти из
стро .
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Насто щее изобретение обеспечивает способ разгрузки соединени сетевого стека,
такого как стек, основанный на протоколе TCP. Данные, которые обычно посылаютс через
путь спецификации интерфейса сетевых драйверов (СИСД, NDIS), который имеет
многочисленные программные уровни, на периферийное устройство, выгружаютс в путь
(маршрут) от уровн коммутатора на периферийное устройство. Поддерживаетс жестка синхронизаци с сетевым стеком и обрабатывающим блоком (процессором). Запрос на
разгрузку стека посылают через путь СИСД к периферийному устройству. Запрос включает
в себ список требований к ресурсам так, чтобы периферийное устройство имело
информацию, необходимую дл распределени ресурсов. Каждый уровень в пути СИСД
добавл ет свои требовани к ресурсам в список. Если периферийное устройство
принимает запрос, то периферийное устройство распредел ет ресурсы и посылает
дескриптор разгрузки каждому из программных уровней так, чтобы программные уровни
могли св затьс с периферийным устройством. Состо ние дл каждого программного
уровн посылаетс периферийному устройству, как только программному уровню
сообщаетс о том, что периферийное устройство принимает разгрузку (выгружаемые
данные). Альтернативно состо ние посылаетс с запросом на разгрузку, и только
Страница: 5
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
изменени в состо нии посылаютс периферийному устройству. Каждое состо ние имеет
переменные состо ни , и кажда переменна состо ни классифицируетс как посто нна переменна , кэшируема переменна или делегированна переменна . Посто нные
переменные не измен ютс во врем выгрузки стека протоколов. Кэшируемые переменные
обрабатываютс с помощью центрального процессора, и делегированные переменные
обрабатываютс с помощью периферийного устройства.
Насто щее изобретение также обеспечивает способ загрузки (передачи данных)
сетевого соединени от периферийного устройства к хосту (хост-компьютеру). Загрузка
инициируетс или периферийным устройством, или уровнем коммутатора. Как только
загрузка (передача данных) инициирована, периферийное устройство завершает все
невыполненные запросы и передает делегированное состо ние уровню коммутатора
(переключени ). После того как делегированное состо ние было прин то хостом, ресурсы
состо ни в периферийном устройстве освобождаютс .
Во врем выполнени выгрузки или загрузки может произойти модификаци (обновление информации) (например, модификаци протокола преобразовани адресов
(ППА, ARP) или модификаци протокола маршрутной информации (ПМИ)). Дл гарантировани того, что используетс самое последнее сообщение модификации, если
многочисленные сообщени модификации принимаютс периферийным устройством,
примен етс присвоение пор дкового номера дл того, чтобы периферийное устройство не
использовало устаревшие данные.
Дополнительные признаки и преимущества изобретени будут очевидны из
последующего подробного описани иллюстративных вариантов осуществлени , которое
выполнено со ссылкой к сопроводительным чертежам.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Хот прилагаема формула изобретени конкретно формулирует признаки насто щего
изобретени , данное изобретение вместе с его задачами и преимуществами может быть
лучше всего пон то из следующего подробного описани , приведенного вместе с
сопроводительными чертежами, на которых:
Фиг. 1 - структурна схема, в общем виде иллюстрирующа типичную компьютерную
систему, в которой примен етс насто щее изобретение;
Фиг. 2 - структурна схема, иллюстрирующа функциональные уровни сетевого стека и
пути обхода в соответствии с насто щим изобретением;
Фиг. 3 - структурна схема, иллюстрирующа функциональные уровни маршрута СИСД и
пути обхода в соответствии с насто щим изобретением;
Фиг. 4 - многоступенчата схема, иллюстрирующа механизм выгрузки согласно
насто щему изобретению;
Фиг. 5a-5c - диаграммы, иллюстрирующие обращенное дерево насто щего изобретени ;
Фиг. 6 - структурна схема, иллюстрирующа синхронизацию между главным
компьютером и периферийным устройством;
Фиг. 7 - многоступенчата схема, иллюстрирующа механизм загрузки насто щего
изобретени ;
Фиг. 8 - многоступенчата схема, иллюстрирующа механизм выгрузки безопасного
соединени стека протоколов в соответствии с раскрытием насто щего изобретени ; и
Фиг. 9 - многоступенчата схема, иллюстрирующа механизм загрузки безопасного
разгруженного соединени стека протоколов в соответствии с раскрытием насто щего
изобретени .
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Обраща сь к чертежам, на которых одинаковые ссылочные номера соответствуют
одинаковым элементам, данное изобретение показано как осуществл емое в
соответствующей вычислительной среде. Хот это не требуетс , изобретение описано в
общем контексте выполн емых компьютером команд, таких как модули программ,
выполн емые персональным компьютером. В общем случае модули программ включают в
себ подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые
Страница: 6
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
выполн ют конкретные задачи или воплощают определенные абстрактные типы данных.
Кроме того, специалисты должны признать, что изобретение может использоватьс с
другими конфигураци ми компьютерной системы, которые включают в себ карманные
устройства, многопроцессорные системы, программируемую или основанную на
микропроцессорах бытовую электронику, сетевые ПК, миникомпьютеры, универсальные
компьютеры, св занные в сеть внешние устройства (например, св занные в сеть принтеры)
и т.п. Изобретение может также использоватьс в распределенных вычислительных
средах, где задачи выполнены удаленными устройствами обработки, которые св заны
через коммуникационную сеть. В распределенной вычислительной среде модули программ
могут быть расположены и в местных, и в удаленных запоминающих устройствах.
Фиг. 1 иллюстрирует пример соответствующей вычислительной системной среды 100, в
которой изобретение может быть осуществлено. Вычислительна системна среда 100
вл етс только одним из примеров соответствующей вычислительной среды, и она не
накладывает какие-либо ограничени на применение или функциональные возможности
изобретени . Вычислительна среда 100 не должна интерпретироватьс как имеюща какую-либо зависимость или требовани , относ щиес к какому-нибудь одному компоненту
или их комбинации, которые показаны в примере рабочей среды 100.
Изобретение работает с многочисленными другими универсальными или специальными
вычислительными системными средами или конфигураци ми. Примеры известных
вычислительных систем, сред и/или конфигураций, которые могут быть подход щими дл использовани с изобретением, включают в себ персональные компьютеры, компьютерысерверы, карманные или портативные компьютеры, многопроцессорные системы, системы
на основе микропроцессора, телеприставки, программируемую бытовую электронику,
сетевые ПК, миникомпьютеры, универсальные компьютеры, св занные в сеть внешние
устройства (например, св занные в сеть принтеры), распределенные вычислительные
среды, которые включают в себ любую из вышеупом нутых систем или устройств и т.п.,
но не ограничены ими. Изобретение может быть описано в общем контексте выполн емых
компьютером команд, например, выполн емых компьютером модулей программ. В общем
случае модули программ включают в себ подпрограммы, программы, объекты,
компоненты, структуры данных и т.д., которые выполн ют определенные задачи или
воплощают определенные абстрактные типы данных. Изобретение может также
примен тьс в распределенных вычислительных средах, где задачи выполн ютс удаленными устройствами обработки, которые св заны через коммуникационную сеть. В
распределенной вычислительной среде модули программ могут быть расположены и в
местных, и в удаленных компьютерных носител х данных, которые включают в себ запоминающие устройства.
Обраща сь к фиг.1, примерна система дл осуществлени данного изобретени включает в себ универсальное вычислительное устройство в виде компьютера 110.
Компоненты компьютера 110 могут включать в себ процессор 120, системную пам ть 130
и системную шину 121, соедин ющую различные системные компоненты, которые
включают в себ системную пам ть процессора 120, но не ограничены ими. Системна шина 121 может быть любой из нескольких типов шинных структур, которые включают в
себ шину пам ти или контроллер пам ти, периферийную шину, перекрещивающиес магистрали, коммутируемую шинную св зную архитектуру и локальную шину, которые
используют любую из разнообрази шинной архитектуры. Системна шина 121 может
также быть иерархией шин. Дл примера, а не в качестве ограничени така архитектура
включает в себ шину архитектуры промышленного стандарта (ISA), шину микроканальной
архитектуры (MCA), шину расширенной стандартной архитектуры дл промышленного
применени (EISA), локальную шину Ассоциации по стандартам в области
видеоэлектроники (VESA), шину архитектуры с некэшируемым доступом к неоднородной
оперативной пам ти (NC-NUMA), шину архитектуры с кэш-когерентным доступом к
неоднородной оперативной пам ти (CC-NUMA) и шину соединени периферийных
устройств (PCI), также известную как шина расширени .
Страница: 7
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
Компьютер 110 типично включает в себ разнообразие считываемых компьютером
носителей. Считываемые компьютером носители могут быть любыми доступными
носител ми, к которым может обращатьс компьютер 110, и они включают в себ и
энергозависимые, и энергонезависимые носители, съемные и несъемные носители. Дл примера, а не в качестве ограничени считываемые компьютером носители могут
содержать компьютерные носители данных и средства св зи. Компьютерные носители
данных включают в себ и энергозависимые, и энергонезависимые, съемные и несъемные
носители, воплощенные любым способом или технологией дл хранени информации,
такой как считываемые компьютером команды, структуры данных, модули программ или
другие данные. Компьютерные носители данных включают в себ оперативную пам ть
(ОП), посто нное запоминающее устройство (ПЗУ), стираемое программируемое
посто нное запоминающее устройство (СППЗУ), флэш-пам ть или пам ть другой
технологии, компакт-диск (CD-ROM), цифровые многофункциональные диски (DVD) или
другое запоминающее устройство на оптическом диске, магнитные кассеты, магнитную
ленту, запоминающее устройство на магнитном диске или другие магнитные
запоминающие устройства или любой другой носитель, который может использоватьс дл хранени требуемой информации и к которому может обращатьс компьютер 110, но не
ограничены ими. Средства св зи типично воплощают считываемые компьютером команды,
структуры данных, модули программ или другие данные в модулированном сигнале
данных, таком как несуща , или используют другой механизм транспортировки и включают
в себ любые средства доставки информации. Термин «модулированный сигнал данных»
означает сигнал, который имеет одну или более из своих характеристик, которые
устанавливаютс или измен ютс таким образом, чтобы кодировать информацию в
сигнале. Дл примера, а не в качестве ограничени средства св зи включают в себ проводные каналы св зи, такие как проводные сети или пр мое проводное подключение, и
беспроводные каналы св зи, такие как акустические, радиочастотные (РЧ), инфракрасные
и другие беспроводные каналы св зи. Считываемые компьютером носители могут также
включать в себ комбинации любого из вышеупом нутых носителей и средств св зи.
Системна пам ть 130 включает в себ компьютерные носители данных в форме
энергозависимой и/или энергонезависимой пам ти, такой как посто нное запоминающее
устройство (ПЗУ) 131 и оперативна пам ть (ОП) 132. Базова система ввода-вывода 133
(BIOS), содержаща основные подпрограммы, которые помогают перемещать информацию
между элементами в пределах компьютера 110, например во врем запуска, типично
хранитс в ПЗУ 131. ОП 132 обычно содержит данные и/или модули программ, которые
мгновенно доступны дл обработки и/или в данный момент обрабатываютс процессором
120. Дл примера, а не в качестве ограничени фиг. 1 показывает операционную систему
134, прикладные программы 135, другие модули 136 программ и данные 137 программ.
Компьютер 110 может также включать в себ другие съемные/несъемные,
энергозависимые/энергонезависимые компьютерные носители данных. Только дл примера фиг. 1 показывает накопитель 141 на жестком диске, который считывает
информацию или записывает информацию на несъемный энергонезависимый магнитный
носитель, накопитель 151 на магнитном диске, который считывает информацию или
записывает информацию на съемный энергонезависимый магнитный диск 152, и привод
155 оптического диска, который считывает информацию или записывает информацию на
съемный энергонезависимый оптический диск 156, такой как компакт-диск или другой
оптический носитель. Другие съемные/несъемные, энергозависимые/энергонезависимые
компьютерные носители, которые могут использоватьс в типичной рабочей среде,
включают в себ кассеты с магнитной лентой, платы флэш-пам ти, цифровые
многофункциональные диски, цифровую видеоленту, полупроводниковую ОП,
полупроводниковое ПЗУ и т.п., но не ограничены ими. Накопитель 141 на жестком диске
типично подключаетс к системной шине 121 через интерфейс (средство сопр жени ) с
несъемным запоминающим устройством, например через средство 140 сопр жени с
накопителем на магнитном диске 151, и привод 155 оптического диска типично
Страница: 8
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
подключаетс к системной шине 121 через средство сопр жени со съемным
запоминающим устройством, например через средство 150 сопр жени .
Накопители и св занные с ними компьютерные носители данных, описанные выше и
показанные на фиг. 1, обеспечивают хранение считываемых компьютером команд, структур
данных, модулей программ и других данных дл компьютера 110. На фиг. 1, например,
жесткий диск 141 показан в качестве устройства хранени операционной системы 144,
прикладных программ 145, других модулей 146 программ и данных 147 программ. Следует
обратить внимание, что эти компоненты могут совпадать с или отличатьс от
операционной системы 134, прикладных программ 135, других модулей 136 программ и
данных 137 программ. Операционной системе 144, прикладным программам 145, другим
модул м 146 программ и данным 147 программ присвоены другие номера дл того, чтобы
показать, что они, как минимум, вл ютс различными копи ми.
Пользователь может вводить команды и информацию в компьютер 110 через устройства
ввода данных, такие как клавиатура 162 и устройство позиционировани 161, обычно
называемое «мышь», шаровой манипул тор («трекбол») или сенсорна панель. Другие
устройства ввода данных (не показаны) могут включать в себ микрофон, джойстик,
игровую клавиатуру, спутниковую антенну, сканер, устройство ввода видеоинформации или
подобные им. Эти и другие устройства ввода данных часто подключаютс к процессору 120
через входной пользовательский интерфейс 160, который присоединен к системной шине,
но могут быть св заны через другой интерфейс и шинные структуры, такие как
параллельный порт, игровой порт или универсальна последовательна шина (УПШ, USB).
Монитор 191 или другой тип устройства отображени также св зан с системной шиной 121
через интерфейс, такой как видео интерфейс 190. В дополнение к монитору компьютеры
могут также включать в себ другие периферийные устройства вывода, такие как динамики
197, принтер 196 и устройство видеовывода, которые могут быть св заны через средство
195 сопр жени с периферийными устройствами вывода информации.
Компьютер 110 может работать в сетевой среде, использу логические подключени к
одному или более удаленному компьютеру, такому как удаленный компьютер 180.
Удаленный компьютер 180 может быть другим персональным компьютером, сервером,
маршрутизатором, сетевым периферийным устройством (например, принтером), сетевым
ПК, одноранговым маршрутизатором или другим обычным сетевым узлом, и типично
включает в себ многие или все элементы, описанные выше относительно персонального
компьютера 110, хот только запоминающее устройство 181 показано на фиг. 1.
Логические подключени (соединени ), изображенные на фиг. 1, включают в себ локальную сеть (ЛС) 171 и глобальную сеть (ГС) 173, но могут также включать в себ другие сети. Такие сетевые среды вл ютс обычными в офисах, компьютерных сет х в
масштабах предпри ти , корпоративных сет х (интранет) и Интернет.
Когда используетс сетева среда с ЛС, персональный компьютер 110 соедин етс с ЛС
171 через сетевой интерфейс или адаптер (например, через сетевую интерфейсную плату
(СИП)) 170. Когда используетс сетева среда с ГС, компьютер 110 типично включает в
себ модем 172 или другие средства дл установлени св зи по ГС 173, такой как
Интернет. Модем 172, который может быть внутренним или внешним, может быть св зан с
системной шиной 121 через пользовательский входной интерфейс 160 или другой
соответствующий механизм. В сетевой среде модули программ, изображенные
относительно персонального компьютера 110 или его частей, могут хранитьс в удаленном
запоминающем устройстве. Дл примера, а не в качестве ограничени фиг. 1 показывает
удаленные прикладные программы 185 как наход щиес в запоминающем устройстве 181.
Следует признать, что показанные сетевые подключени вл ютс примером и что могут
использоватьс другие средства установлени св зи между компьютерами.
В последующем описании изобретение будет описано со ссылкой к действи м и
символическим представлени м операций, которые выполн ютс одним или более
компьютерами, если не обозначено иначе. Также следует понимать, что такие действи и
операции, которые временами упоминаютс как выполн емые компьютером, включают в
Страница: 9
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
себ обработку процессором компьютера электрических сигналов, представл ющих
данные в структурированной форме. Эта обработка преобразовывает данные или хранит
их в чейках в системе пам ти компьютера, котора реконфигурирует, или иначе,
измен ет работу компьютера способом, хорошо пон тным специалистам. Структуры
данных, где данные хран тс , вл ютс физическими чейками пам ти, которые имеют
определенные свойства, которые определ ютс форматом данных. Однако хот изобретение описываетс в предварительно указанном контексте, оно не вл етс ограничением, поскольку специалисты должны признать, что различные описанные в
дальнейшем действи и операции также могут быть осуществлены в аппаратных
средствах.
Фиг.2 иллюстрирует взаимосв зь некоторых из компонентов, которые составл ют
сетевую модель, и компонентов насто щего изобретени . Во врем нормальной работы
сетевые сообщени посылаютс приложением 200 через сетевой стек 202 на
периферийное устройство 204, откуда сообщени посылаютс другим устройствам и
приложени м в сети и принимаютс от других устройств и приложений. Сетевой стек 202
включает в себ один или более промежуточных программных уровней 206. Данные,
посылаемые от приложени 200, перемещаютс через промежуточный программный
уровень (ни) 206, где с данными могут выполн тьс определенные операции, такие как
упаковка данных, надежна передача данных, шифрование данных и вычисление профил сообщени .
Коммутатор (переключатель) 208 используетс дл разгрузки (освобождени )
процессора 120 от выполнени сетевым стеком операций дл промежуточного
программного уровн (ней) 206. Хот коммутатор 208 показан отдельно, следует
отметить, что коммутатор 208 может быть интегрирован в верхний промежуточный уровень
сетевого стека 202. Данные посылаютс периферийному устройству 204 через обходной
тракт 210 к периферийному устройству 204 дл выполнени операций сетевого стека. В
этой иерархии промежуточные программные уровни не должны исключительно посто нно
находитьс в хосте или периферийном устройстве, и это позвол ет любому из
промежуточных уровней быть или полностью выгруженным, или оставатьс в хосте, или
быть их комбинацией (например, выгружать одно или более из определенных соединений).
Дополнительно, одни обходные тракты могут наслаиватьс поверх других обходных
трактов (например, обходной тракт протокола IPSEC может быть расположен поверх
обходного тракта протокола TCP). Подключение (соединение) может быть комбинацией
надежной и ненадежной передачи данных, одноадресной или многоадресной передачи
данных. Если промежуточный уровень остаетс в хосте, то хост модифицирует
кэшируемые переменные (как описано ниже) в периферийном устройстве 204. Например,
элемент (запись) состо ни блока управлени транспортировкой (TCB) дл соединени может быть выгружен(а) дл транспортного уровн с помощью элемента кэша маршрута
(ЭКМ, RCE) дл сетевого уровн , выгруженного на периферийное устройство 204.
Коммутатор 208 продолжает посылать трафик дл различных TCB через сетевой стек 202,
который совместно использует тот же самый ЭКМ, когда коммутатор 208 посылает трафик
через обходной тракт 210 дл выгруженного TCB.
Коммутатор 208 инициирует выгрузку, посыла промежуточному уровню 206 запрос на
выгрузку. Запрос на выгрузку включает в себ информацию о ресурсах, котора помогает
периферийному устройству 204 решить, может ли оно успешно выгрузить соединение.
Каждый промежуточный уровень 206 или отказываетс от запроса на выгрузку, или
добавл ет информацию о ресурсах к запросу на выгрузку и посылает запрос на выгрузку к
смежному программному уровню в сетевом стеке 202. Когда периферийное устройство 204
принимает запрос на выгрузку, оно вычисл ет, имеет ли оно ресурсы, доступные дл выгрузки соединени . Периферийное устройство 204 отказываетс от запроса на выгрузку,
если выгрузка невозможна. Иначе, периферийное устройство 204 принимает запрос
на выгрузку и распредел ет ресурсы дл соединени (подключени ). Периферийное
устройство 204 завершает запрос на выгрузку, посыла сообщение завершени , имеющее
Страница: 10
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
список параметров, св занный с промежуточным программным уровнем(н ми) 206.
Св занный список параметров обеспечивает передачу информации к промежуточному
программному уровню(н м) 206 и коммутатору (переключателю) 208 дл того, чтобы дать
возможность промежуточному программному уровню(н м) 206 и коммутатору 208
св зыватьс с периферийным устройством. Каждый промежуточный программный уровень
206 удал ет информацию дл своего уровн из св занного списка параметров.
Когда промежуточный уровень 206 принимает сообщение завершени выгрузки,
промежуточный уровень 206 передает свое состо ние на периферийное устройство 204.
Каждое состо ние может иметь три типа переменных: КОНСТАНТА, КЭШИРУЕМАЯ и
ДЕЛЕГИРОВАННАЯ. Состо ние может иметь все три типа переменных или подмножества
из трех типов переменных. Переменные КОНСТАНТА - константы, которые никогда не
измен ютс в течение продолжительности жизни выгруженного подключени . Они не
считываютс назад к уровн м, когда подключение (данные соединени ) загружаетс .
Главный процессор 120 поддерживает монопольное использование КЭШИРУЕМЫХ
переменных и гарантирует, что любые изменени в КЭШИРУЕМОЙ переменной в главном
процессоре 120 модифицируютс в периферийном устройстве 204. Управл ющие
сообщени , которые измен ют КЭШИРУЕМОЕ состо ние, обрабатываютс сетевым стеком
202. В результате хост записывает, но не должен считывать назад КЭШИРУЕМЫЕ
переменные при загрузке (данных) подключени . Главный процессор 120 передает
монопольное использование ДЕЛЕГИРОВАННЫХ переменных периферийному устройству
204. ДЕЛЕГИРОВАННЫЕ переменные записываютс один раз, когда происходит выгрузка,
и считываютс назад, когда выгрузка прекращаетс . Из-за того что только
ДЕЛЕГИРОВАННЫЕ переменные возвращаютс обратно, минимизируетс непроизводительна нагрузка возвращени подключени к хосту. Состо ние, которое
должно иметь совместный доступ (например управление) от сетевого стека 202 и
периферийного устройства 204, которое по различным причинам производительности
выгружаетс (т.е. делегируетс ), просто раздел етс между сетевым стеком 202 и
обходным трактом 210 (например, идентификатор IP при выгрузках TCP) таким образом,
что и сетевой стек 202, и периферийное устройство 204 владеет эксклюзивной частью
состо ни . Главный процессор 120 запрашивает от периферийного устройства 204
ДЕЛЕГИРОВАННЫЕ переменные, когда это необходимо (например, дл статистической
информации). Главный процессор 120 может также запросить переменные КОНСТАНТА
или КЭШИРУЕМЫЕ переменные дл диагностики. Деление состо ни на три категории
дает возможность сетевому стеку 202 хорошо сосуществовать с обходным трактом 210.
Следует отметить, что запрос на выгрузку может включать в себ состо ние. Это может
быть сделано, если состо ние или не содержит делегированные переменные состо ни ,
или содержит делегированные переменные состо ни , которые не будут измен тьс между
началом запроса на выгрузку и завершением запроса на выгрузку.
Периферийное устройство 204 или хост решают, когда выгруженное подключение
должно быть загружено. Загрузка (передача) инициируетс или периферийным
устройством 204, или коммутатором 208. Как только загрузка (передача) инициирована,
периферийное устройство 204 завершает все невыполненные запросы с соответствующим
состо нием и передает делегированное состо ние самого верхнего промежуточного уровн к коммутатору 208. Коммутатор 208 ставит в очередь все дальнейшие передаваемые
запросы и прекращает отправл ть (содержимое) буфера приема. Коммутатор 208 дает
команду самому верхнему промежуточному уровню, чтобы он вз л под свое управление
делегированное состо ние. Самый верхний промежуточный уровень берет под свое
управление делегированное состо ние и посылает сообщение завершени коммутатору
208. После того как коммутатор 208 принимает сообщение завершени , коммутатор 208
подтверждает загрузку периферийному устройству 204, что дает возможность
периферийному устройству 204 освободить ресурсы, которые больше не используютс .
Следует отметить, что самый верхний промежуточный уровень посылает вход щие
пакеты данных дл выгруженного соединени к периферийному устройству 204 дл Страница: 11
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
обработки, пока оно не вз ло под свой контроль делегированное состо ние. Пакеты
данных могут прибывать между временем, когда периферийное устройство 204 передает
делегированное состо ние к коммутатору 208, и временем, когда самый верхний
промежуточный уровень вз л под свое управление делегированное состо ние. После того
как периферийное устройство 204 передало делегированное состо ние к коммутатору 208,
оно больше не может обрабатывать вход щие пакеты данных. Периферийное устройство
204 посылает сообщение об ошибках самому верхнему промежуточному уровню, указыва ,
что происходит загрузка (передача), когда оно принимает вход щие данные. Сообщение об
ошибках сообщает самому верхнему промежуточному уровню, чтобы оно прекратило
отправл ть вход щие данные и буферизовало дальнейшие данные, пока самый верхний
промежуточный уровень не примет делегированное состо ние. Альтернативно за счет
дополнительной буферной пам ти на периферийном устройстве 204 вход щие данные
могут направл тьс периферийному устройству 204, чтобы периферийное устройство 204
буферизировало данные.
Многочисленные подключени (соединени ) могут выгружатьс промежуточным
программным уровнем 206 на периферийное устройство 204. Промежуточным
программным уровнем 206 поддерживаетс счетчик обращений дл количества объектов
состо ни верхнего уровн (т.е. объектов состо ни уровней, расположенных выше
промежуточного программного уровн 206), которые обращаютс к объекту состо ни промежуточного программного уровн дл выгрузки. В данной работе считаетс , что
объект состо ни - это совокупность переменных состо ни дл конкретного уровн ,
которые категоризируютс как переменные КОНСТАНТА, КЭШИРУЕМАЯ или
ДЕЛЕГИРОВАННАЯ. Если выгруженный объект состо ни промежуточного уровн не
имеет обращений к нему от уровн , расположенного выше его, то промежуточный уровень
206 посылает сообщение периферийному устройству 204, чтобы загрузить объект
состо ни дл промежуточного уровн и послать делегированные переменные состо ни промежуточному уровню 206. Периферийное устройство 204 удал ет объект состо ни дл промежуточного уровн 206, и промежуточный уровень 206 посылает сообщение
завершени коммутатору 208.
Обраща сь к фиг.3 теперь, когда описана полна концепци , подробности изобретени будут описаны в варианте осуществлени , где периферийное устройство 204 - СИП 170,
коммутатор 208 - коммутатор (переключатель) интерфейса транспортного уровн (ИТУ,
TLI) 306, и сетевой стек 202 содержит транспортный уровень 300, сетевой уровень 302 и
уровень 304 создани кадра. Сетевой уровень 302 также известен как уровень пути
(маршрута), и уровень 304 создани кадра также известен как соседний уровень.
Во врем работы сетевые сообщени посылаютс приложением 200 через сетевой стек
202 к СИП 170. Данные, посылаемые от приложени 200, перемещаютс через коммутатор
306 ИТУ, который управл ет тем, идут ли данные в расположенный в хосте сетевой стек
202, или в обходной тракт 308. Следует обратить внимание, что коммутатор 306 ИТУ
может быть внедрен в верхний уровень сетевого стека 202. Программные уровни в сетевом
стеке 202 принимают данные от приложени 200, упаковывают его в пакет и посылают его
аппаратным средствам периферийного устройства 314 через минидрайвер 310 СИСД.
Другие задачи, которые может выполн ть сетевой стек 202, когда пакет данных проходит
через стек 202, включают в себ шифрование данных, надежную передачу данных и
вычисление профил сообщени (например, контрольной суммы или циклического
избыточного кода (ЦИК, CRC) дл пакета данных). Многие из этих задач выполн ютс процессором 120 и потребл ют много ресурсов процессора.
Коммутатор 306 ИТУ используетс дл разгрузки процессора 120 от выполнени операций стека, отправл данные дл подключений к СИП 170 через обходной тракт 308
(и драйвер 312 обходного тракта). Специалисты должны признать, что верхней границей
минидрайвера 310 СИСД и драйвера обходного тракта 312 вл етс СИСД интерфейс
прикладного программировани (ИПП, API) в операционной системе корпорации Microsoft.
Дл целей объ снени будет использоватьс стек протоколов, основанный на протоколе
Страница: 12
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
управлени передачей (TCP). Однако специалисты должны признать, что могут
использоватьс множество видов периферийных устройств и другие сетевые стеки могут
выгружатьс , использу раскрытие насто щего изобретени . Например, могут выгружатьс стеки протоколов, основанные на потоковом протоколе передачи управлени (ПППУ,
SCTP) или протоколе пользовательских дейтаграмм (ППД, UDP). Дополнительно,
изобретение может также использоватьс дл выгрузки протоколов более высокими
функциональными возможност ми, например, интерфейс малых вычислительных систем
дл доступа к Интернет (iSCSI), сетева файлова система (NFS) или файлова система
общего интерфейса (SIFS).
Существует много причин, почему происходит выгрузка. Дл примера, а не в качестве
ограничени , некоторые из причин представлены ниже. Системный администратор может
выбрать определенную услугу (службу), котора должна быть выгружена. Определенное
соединение может быть выгружено, если трафик (в терминах количества байтов или
пакетов) через соединение потребл ет существенное количество ресурсов. Могут
выгружатьс разные типы услуг (служб). Например, могут выгружатьс протоколы защиты,
такие как IPSEC. Выгрузка может управл тьс политикой. Например, администратор может
иметь такую политику, что сначала выгружаютс все соединени внутри организации.
Используемые системные ресурсы (например, использование центрального процессора,
использование кэша данных, использование кэша таблицы страниц, пропускна способность пам ти) могут привести главный процессор к выгрузке подключений.
Фиг. 4 иллюстрирует этапы, предприн тые дл выгрузки подключени TCP.
Используетс процесс, состо щий из трех стадий. В общем случае, процесс, состо щий из
трех стадий, должен распредел ть ресурсы, требуемые дл выгрузки подключени TCP,
обеспечивать дескрипторы к каждому из уровней 300, 302, 304, 306 и выгружать
состо ние дл каждого из уровней 300, 302 304, 306 к СИП 170. Во врем выполнени выгрузки, ИТУ коммутатор 306 буферизирует все сообщени , посланные от приложени 200. Альтернативно, транспортный уровень 300 буферизирует данные. Когда выгрузка
закончена, буферизированные данные перемещаютс к СИП 170, использу тот же самый
механизм, как передача данных выгрузки. Когда вход щие пакеты принимаютс во врем выполнени выгрузки, СИП 170 продолжает продвигать данные вверх через уровни 300,
302, 304, 306, пока делегированное состо ние транспортного уровн не будет передано
СИП 170.
ИТУ коммутатор 306 инициирует выгрузку, посыла транспортному уровню 300 запрос
на выгрузку (лини 400). Запрос на выгрузку включает в себ указатель на местное
состо ние следующего уровн (например, указатель TCB (блока управлени транспортировкой) дл транспортного уровн 300, указатель ЭКМ (элемента кэша
маршрута) дл сетевого уровн 302, указатель таблицы ППА (протокола преобразовани адресов) дл уровн 304 создани кадра или указател СИСД минипорта дл СИСД
минидрайвера 310), тип выгрузки (например, протокол TCP дл ИТУ коммутатора 306,
протокол IPv6 дл сетевого уровн 302 и т.д.) и информацию о ресурсах, котора помогает СИП 170 решать, может ли она успешно выгрузить подключение TCP. ИТУ
коммутатор 306 может также обеспечивать таблицы диспетчеризации к СИП 170.
Транспортный уровень 300 или отказываетс от запроса на выгрузку, или посылает запрос
на выгрузку к сетевому уровню 302 с информацией о ресурсах TCP, котора добавл етс к
информации о ресурсах ИТУ коммутатора (лини 402).
Сетевой уровень 302 принимает запрос на выгрузку и/или отказываетс выгружать
соединение, или посылает запрос на выгрузку к уровню 304 создани кадра с
требовани ми к сетевым ресурсам, которые добавл ютс к информации о ресурсах TCP и
информации о ресурсах ИТУ коммутатора (лини 404). Сетевой уровень 302 может также
обеспечивать таблицы диспетчеризации к СИП 170. Уровень 304 создани кадра или
отказываетс выгружать подключение, или посылает запрос на выгрузку к СИП 170 с
требовани ми к ресурсам дл создани кадра, которые добавл ютс к требовани м к
сетевым ресурсам, информации о ресурсах TCP и информации о ресурсах ИТУ
Страница: 13
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
коммутатора (лини 306).
СИП 170 принимает запрос на выгрузку и вычисл ет, имеет ли она ресурсы, доступные
дл выгрузки подключени TCP. Если СИП решает, что выгрузка не возможна, то она
отказываетс от запроса на выгрузку. Если СИП решает, что выгрузка возможна, то она
принимает запрос на выгрузку и распредел ет ресурсы (например, TCB, элемент кэша
маршрута (ЭКМ), ATE (элемент таблицы протокола преобразовани адресов (ППА)) дл соединени . СИП 170 создает св занный список параметров и таблиц диспетчеризации дл передачи уровн м 300, 302, 304 и 306 и завершает запрос на выгрузку, посыла сообщение завершени , которое содержит св занный список параметров дл уровн 304
создани кадра (лини 408). Параметры включают в себ дескриптор выгрузки и таблицу
диспетчеризации дл каждого из уровней 300, 302, 304, 306. В данном документе
полагаетс , что дескриптор выгрузки означает механизм, который дает возможность
программному уровню св зыватьс с периферийным устройством. Дл примера, а не в
качестве ограничени дескриптор выгрузки может быть дескриптором на основе указател ,
целочисленным значением, используемым дл поиска в массиве, хеш-таблицей (например,
хеш-функцией), каналом св зи между программным уровнем (или сетевым стеком) и
периферийным устройством, или набором параметров, передаваемых программным
уровнем, который используетс периферийным устройством дл поиска объекта состо ни .
Таблицы диспетчеризации используютс дл отправки данных непосредственно к СИП
170 или приема данных непосредственно от СИП 170. Таблицы диспетчеризации могут
также использоватьс дл обеспечени диагностики. Например, может быть добавлен
программный уровень дл контролировани системы и внесени ошибки дл того, чтобы
удостоверитьс , что система функционирует должным образом. Дополнительно таблица
диспетчеризации может быть исправлена программными уровн ми, которые при
необходимости могут добавл ть дополнительные функциональные возможности.
Например, может быть добавлен программный уровень дл обеспечени функциональных
возможностей драйвера фильтра. Внесение исправлений типично происходит посредством,
захвата указател на первоначальную функцию, где добавленна функци вставл етс и
переадресовывает ее (т.е. указыва на нее) к добавленной функции. Вс кий раз, когда
вызываетс первоначальна функци , после того как исправление было вставлено,
добавленна функци выполн ет свою функцию и затем вызывает первоначальную
функцию.
Уровень 304 создани кадра сохран ет дескриптор выгрузки и таблицу диспетчеризации
дл уровн создани кадра в его элементе таблицы ППА дл простой модификации, если
измен етс МАК-адрес назначени или измен етс тип инкапсул ции (формировани пакета). Затем уровень 304 создани кадра модифицирует состо ние СИП 170, св занное с
ATE (лини 410). Уровень 304 создани кадра удал ет свое состо ние из св занного
списка и посылает оставшуюс в св занном списке информацию к сетевому уровню 302
(лини 412).
Сетевой уровень 302 сохран ет дескриптор выгрузки и таблицу диспетчеризации дл сетевого уровн 302. Сетевой уровень 302 также посылает свое состо ние к СИП 170
(лини 414). Сетевой уровень 302 удал ет информацию сетевого уровн из св занного
списка и посылает сообщение завершени , содержащее св занный список параметров и
таблиц диспетчеризации, к транспортному уровню 300 (лини 416). Сетевой уровень 302
может посылать фрагменты IP, которые он принимает дл выгруженного состо ни , к СИП
170 дл обработки, или он может обрабатывать фрагменты IP в сетевом уровне и посылать
их к транспортному уровню 300.
В дополнительном варианте осуществлени объект состо ни уровн посылаетс с
запросом на выгрузку. Например, объект состо ни уровн создани кадра и объект
состо ни сетевого уровн посылаютс с запросом на выгрузку и состо ние
модифицируетс , только если кэшируемое состо ние измен етс между запросом на
выгрузку и событием завершени . Объект состо ни всего уровн может посылатьс только с запросом на выгрузку, если делегированное состо ние или отсутствует, или не
Страница: 14
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
может измен тьс между запросом на выгрузку и завершением запроса на выгрузку.
Однако переменные состо ни , классифицируемые как КОНСТАНТА, могут посылатьс с
запросом на выгрузку, даже если делегированное состо ние присутствует и может
измен тьс между запросом на выгрузку и завершением запроса на выгрузку.
Транспортный уровень 300 сохран ет дескриптор выгрузки дл транспортного уровн и
посылает свое состо ние к СИП 170 (лини 418). Если есть какое-либо невыполненное
ожидание обслуживани буферов отправлени или приема, то транспортный уровень 300
возвращает содержимое буферов к ИТУ коммутатору 306. Как только транспортный
уровень 300 начинает возвращать (содержимое) буферов к ИТУ коммутатору 306, ИТУ
коммутатор 306 прекращает посылать содержимое буферов транспортному уровню 300 и
ставит их в очередь и ждет, когда транспортный уровень 300 пошлет сообщение
завершени , содержащее св занный список параметров и таблицы диспетчеризации, к ИТУ
коммутатору 204. Транспортный уровень 300 возвращает все содержимое буферов и затем
посылает сообщение завершени (лини 420). Как только ИТУ коммутатор 306 принимает
сообщение завершени , ИТУ коммутатор 306 перемещает содержимое буферов
отправлени и приема к СИП 170 (лини 422). ИТУ коммутатор 306 использует таблицу
диспетчеризации дл отправлени содержимого всех необработанных буферов и тех
буферов, которые будут приниматьс в будущем, и посылает к СИП 170 дл обработки. В
течение времени, которое требуетс дл завершени запроса на выгрузку, каждый уровень
300, 302, 304 или отказываетс от новых запросов на выгрузку дл выгруженного объекта
состо ни (т.е. объекта состо ни , св занного с уровнем), или ставит их в очередь,
пока выгрузка не закончитс .
Транспортный уровень 300 все еще имеет возможность обрабатывать вход щие данные
TCB и передавать эти данные ИТУ коммутатору 306, если транспортное состо ние не было
выгружено в СИП 170. Если данные TCB прибывают в середине процесса выгрузки, то
транспортный уровень 300 может или задержать данные, или обработать данные и
передать их ИТУ коммутатору 306. Между временем, когда транспортный уровень 300
посылает свое состо ние к СИП 170 (лини 418), и временем, когда ИТУ коммутатор
перемещает содержимое буфера к СИП 170 (лини 422), вход щие TCB данные, которые
приход т через сетевой стек 202, посылаютс к СИП 170.
При последующих запросах на выгрузку сетевой уровень 302 и уровень 304 создани кадра передают дескрипторы выгрузки, которые они прин ли от СИП 170 от
предшествующей выгрузки, к СИП 170. Это сигнализирует СИП 170, что ресурсы дл сетевого уровн 302 и уровн 304 создани кадра уже были распределены, что сохран ет
ресурсы СИП и ускор ет выгрузку.
Как предварительно показано, уровни 300, 302, 304 передают свое состо ние к СИП
170. Каждое состо ние имеет три типа переменных: КОНСТАНТА, КЭШИРУЕМАЯ и
ДЕЛЕГИРОВАННАЯ. Переменные КОНСТАНТА вл ютс константами, которые никогда не
измен ютс во врем работы выгруженного соединени . Они не считываютс назад к
уровн м, когда соединение завершено. Главный процессор 120 поддерживает
монопольное использование КЭШИРУЕМЫХ переменных и гарантирует, что любые
изменени КЭШИРУЕМОЙ переменной в главном процессоре 120 модифицируютс в СИП
170. В результате хост будет записывать, но никогда не будет считывать назад
КЭШИРУЕМЫЕ переменные (если этого не запросит системна диагностика). Главный
процессор 120 перемещает монопольное использование ДЕЛЕГИРОВАННЫХ переменных
к СИП 170. ДЕЛЕГИРОВАННЫЕ переменные записываютс один раз, когда происходит
выгрузка, и считываютс назад, когда выгрузка закончена. С помощью возвращени только
ДЕЛЕГИРОВАННЫХ переменных минимизируетс непроизводительное использование
ресурсов при возвращении данных соединени к хосту. Главный процессор 120
запрашивает от СИП 170 ДЕЛЕГИРОВАННЫЕ переменные тогда, когда это необходимо
(например, дл статистической информации).
Переменные КОНСТАНТА дл транспортного уровн 300 включают в себ порт
назначени , исходный порт, флажок указани , что существует случай «Mobile IP», когда
Страница: 15
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
адрес, о котором «забот тс », может измен тьс , коэффициенты масштабировани окна
«SEND» и «RECV» и дескриптор СИП дл сетевого уровн 302. КЭШИРУЕМЫМИ
переменными дл транспортного уровн 300 вл ютс переменные TCP и переменные IP.
Переменные TCP включают в себ «Effective MSS», количество байтов, которые будут
скопированы при приеме, указанное СИП 170, флажок дл выключени «Nagling»
(алгоритма Нагла), флажок дл указани того, что необходима эмул ци де тельности
(работы) («Keep-Alive»), и параметры настройки дл «Keep-Alive» (т.е. интервал,
количество элементов и "дельта" (разброс)). Переменные IP включают в себ TOS и TTL.
ДЕЛЕГИРОВАННЫЕ переменные включают в себ текущее состо ние TCP, пор дковый
номер дл следующего «RECV» (т.е. RCV.NEXT), размер принимаемого окна (RCV.WND),
пор дковый номер дл «First Un-Acked Data» (SND.UNA), пор дковый номер дл следующего «SEND» (SND.NEXT), максимальный пор дковый номер, который когда-либо
посылалс (SND.MAX), максимальное значение «Send Window» (MAX_WIN), текущее окно
перегрузки (CWIN), порог медленного старта (SSTHRESH), сглаженный RTT (8*A), дельта
(8*D), текущий счетчик повторной передачи, врем , оставшеес до «Next Retransmit»
(повторной передачи), и временна метка, котора будет отображатьс на экране.
Переменные КОНСТАНТА дл сетевого уровн 302 включают в себ адрес IP
назначени (или дл протокола IPv4, или дл протокола IPv6) и исходный адрес IP
адресата (или дл протокола IPv4, или дл протокола IPv6). КЭШИРУЕМЫЕ переменные
дл сетевого уровн 302 включают в себ дескриптор СИП дл уровн 304 создани кадра.
ДЕЛЕГИРОВАННЫЕ переменные дл сетевого уровн 302 включают в себ начальное
значение IP идентификатора пакета. КЭШИРУЕМЫЕ переменные дл уровн 304 создани кадра включают в себ адрес ППА и флажок дл указани формата заголовка (например,
LLC/SNAP [управление логическим звеном/протокол доступа к подсети] или DIX [Digital,
Intel, Xerox]).
Состо ние транспортного уровн включает в себ дескриптор дл сетевого уровн , и
состо ние сетевого уровн включает в себ дескриптор дл состо ни создани кадра,
потому что состо ние сетевого уровн может совместно использоватьс многочисленными
соединени ми, и состо ние уровн создани кадра может совместно использоватьс многочисленными пут ми (например, псевдонимами IP). Эта иерархи поддерживаетс по
нескольким причинам. Соединение требует дескриптор СИП дл сетевого уровн , потому
что пространство имен идентификатора IP должно управл тьс по всем выгруженным
соединени м на основе маршрута. Маршрут требует дескриптор СИП дл уровн создани кадра, потому что модификаци маршрута может изменить адрес следующего перехода
(прыжка), таким образом указыва на новый МАС-адрес. Данна иерархи также уплотн ет
количество состо ний, требуемых дл поддержки СИП. Например, модификаци ППА
(протокола преобразовани адресов) дл протокола IPv4 может изменить отображение
адреса IP на МАС-адрес (например, отказавший интерфейс на сервер). Хост поддерживает
МАС-адрес как кэшируемую переменную, таким образом, необходимо только сделать
единственную модификацию кэшируемого состо ни и всех подключений, которые
отказали, к новому интерфейсу.
Когда подключение (соединение) TCP выгружено, СИП 170 отвечает за назначение
идентификаторов пакета (например, идентификаторов IP) дл посылаемых пакетов.
Идентификатор IP выгружаетс или на основе интерфейса, или на основе объекта
состо ни уровн . Дл СИП 170 назначают часть пространства имен идентификатора IP. В
одном из вариантов осуществлени дл СИП 170 назначают половину всего пространства
имен идентификатора IP и задают начальное значение идентификатора пакета IP дл использовани , когда сетевое состо ние передаетс к СИП 170. СИП 170 использует
следующую формулу дл генерации идентификатора IP пакетов IP, которые она посылает:
Cur_IPID = [(Start_IPID_For_This_Path) + (Counter_For_This_Path)mod32K]mod 64K
Counter_For_This_Path = Counter_For_This_Path + 1
Когда выгруженное подключение или загружаетс , или становитс недействительным,
СИП 170 перемещает следующее значение идентификатора IP, которое она будет
Страница: 16
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
использовать, к сетевому уровню дл хранени дл следующей выгрузки и главный
процессор 120 продолжает использовать часть пространства имен идентификатора IP,
котора была назначена. Главный процессор 120 может использовать все пространство
имен идентификатора IP, но счетчик должен устанавливатьс каждый раз, когда
происходит выгрузка.
СИП 170 располагает данные в буфере приема в пор дке прин ти данных и заполн ет
буфера приложени в том пор дке, в котором они отправл ютс дл выгруженного
подключени . Многие приложени ожидают индикации приема перед отправлением буфера
приема. В одном из вариантов осуществлени СИП 170 имеет глобальный пул буферов
дл использовани , если данные прибывают дл подключени , и данные буфера приема
приложени не были отправлены. Глобальный пул буферов используетс дл выгруженных
подключений и может использоватьс дл осуществлени : 1) обработки передач TCP с
изменением последовательности; 2) дефрагментации дейтаграмм IP; 3) алгоритма
копировани буфера вместо алгоритма нулевого копировани , если приложение
отправл ет содержимое буферов, которые слишком малы дл алгоритма нулевого
копировани . Альтернативно пул буферов на каждое соединение может использоватьс ,
если не беспоко тс об эффективном использовании ресурсов. Однако глобальный пул
буферов используетс , если СИП не поддерживает пул буферов на каждое соединение или
из-за отсутстви системных ресурсов (например, недостаточно ресурсов дл размещени буфера приложени в пам ти).
Обраща сь теперь к фиг. 5a-5d, СИП 170 имеет обращенное (инвертированное) дерево
500, которое представл ет выгрузку, когда выгрузка произошла. На данных чертежах
пунктирные линии представл ют новые состо ни , распределенные СИП 170. На фиг. 5a
СИП 170 имеет элемент 502 ППА, присоединенный к элементу 504 кэша маршрута,
который присоединен к элементу 506 TCP. Если, например, весь трафик идет к
маршрутизатору, то следующий переход всегда будет к тому же самому элементу 502 ППА.
Если элемент 504 кэша маршрута должен использоватьс дл следующей выгрузки
подключени TCP, то единственным новым ресурсом вл етс новый выгруженный TCB.
Таким образом, когда выгрузка инициируетс вниз по сетевому стеку 202, промежуточные
программные уровни, которые уже выгрузили свое состо ние (например, сетевой уровень
302 и уровень 304 создани кадра), будут просто вставл ть сгенерированный СИП
дескриптор выгрузки, который был распределен при предыдущем запросе выгрузки. СИП
170 должен только распределить новые ресурсы (например, элемент 508 TCP) и послать
дескрипторы выгрузки дл новых ресурсов обратно к сетевому стеку 202. Обращенное
дерево 500 теперь имеет элемент 508 TCP, присоединенный к элементу 504 кэша
маршрута (см. фиг. 5b). Этот подход сохран ет ресурсы СИП и ускор ет выгрузку.
Дополнительно, если состо ние кэшируемой переменной измен етс , то только одна
структура должна модифицироватьс . Если все состо ни дл различных программных
уровней в обходном тракте были выгружены как один элемент, то люба модификаци состо ни , расположенного ниже верхнего программного уровн , будет требовать
многочисленных модификаций.
Фиг.5C показывает обращенное дерево 500 с более сложной конфигурацией.
Существуют два элемента кэша маршрута, 504 и 510, которые проход т через элемент 502
таблицы ППА. Подключени TCP 506 и 508 используют элемент 504 кэша маршрута.
Подключени TCP 512 и 514 обращаютс к элементу 510 кэша маршрута. Если происходит
люба модификаци ППА (например, отказ интерфейса многосетевого сервера), то должен
модифицироватьс только элемент 502. Это дает возможность потенциально тыс чам или
сотн м тыс ч подключений при отказе перейти к новому интерфейсу только с единственной
требуемой модификацией СИП 170. Фиг. 5d показывает два независимых обращенных
дерева (элементы 502-508 и элементы 510-516), объединенных в одно обращенное дерево
500 после того, как происходит модификаци маршрута. Перед модификацией маршрута
элемент следующего ППА перехода дл элемента 510 кэша маршрута вл етс элементом
516 таблицы ППА. После модификации маршрута элемент следующего перехода таблицы
Страница: 17
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
ППА вл етс элементом 502 таблицы ППА. Таким образом, использование обращенного
дерева дает возможность обрабатывать модификации маршрута как одну передачу к СИП
170 вместо тыс ч или дес тков тыс ч модификаций, если бы состо ние сетевого стека
было выгружено как один элемент.
Обраща сь теперь к фиг. 6, когда подключение выгружено в СИП 170, существуют два
пути к СИП 170. Первый путь - через СИСД минидрайвер 310, через уровень 304 создани кадра, через сетевой уровень 302 и через транспортный уровень 300. Второй путь через выгруженное подключение 608, который называют обходным трактом. С точки зрени главного компьютера дл этих двух путей все остаетс тем же самым в терминах
осуществлени св зи. Кэшируемые переменные состо ни синхронизируют эти два пути с
помощью процессора 120, обновл кэшируемые переменные состо ни в СИП 170, как
показано ранее. Обновление кэшируемых переменных обозначено стрелками 602, 604, 606.
Когда прибывает вход щий пакет данных, СИП 170 определ ет, проходит ли вход щий
пакет данных через выгруженный путь или через невыгруженный путь (т.е. через СИСД
путь, состо щий из минидрайвера 310 СИСД и уровней 304, 302, 300). В одном из
вариантов осуществлени СИП 170 определ ет, каким путем послать вход щий пакет
данных, выполн хеш-функцию номера порта TCP источника и адресата, адреса IP
источника и адресата и типа протокола. Если результат хэшировани соответствует
выгруженным параметрам подключени (т.е. обходитс цепь блока хэшировани , и
происходит точное соответствие всех кортежей подключени ), то используетс обходной
тракт 608. Если результат хэшировани не соответствует индексу хэшировани , то
используетс невыгруженный путь через сетевой стек 202. Сообщени управлени ,
которые обновл ют кэшируемые состо ни , обрабатываютс хостом. Это приводит к тому,
что СИП 170 не должна обрабатывать сообщени управлени вне выгруженного
подключени , такие как сообщени ПУСИ (протокола управл ющих сообщений сети
Интернет), СДИ (службы доменных имен) и ПМИ (протокола маршрутной информации).
Насто щее изобретение обеспечивает пользовател возможностью получать
статистическую информацию, использу существующее инструментальные средства, такие
как Netstat, дл отыскани разнообразной информации, котора включает в себ все
подключени к хосту, параметры подключени , такие как тип протокола, местный и
удаленный порт и прив зка адреса IP, состо ние подключени , идентификатор процесса и
т.д. Статистическа информаци в насто щем изобретении собираетс или на основе
уровн , или на основе объекта состо ни уровн . В пределах уровн объекты состо ни уровн могут группироватьс дл сбора статистической информации по многочисленным
объектам состо ни уровн . Например, статистическа информаци дл сетевого уровн может быть разделена таким образом, что статистическа информаци существует дл каждого используемого протокола (например, IPv4 и IPv6). Статистическа информаци ,
св занна с переменными состо ни КОНСТАНТА и КЭШИРУЕМАЯ, обеспечиваетс хостом, а статистическа информаци , св занна с ДЕЛЕГИРОВАННЫМИ переменными
состо ни , обеспечиваетс периферийным устройством 204. Когда делаетс запрос,
статистическа информаци , св занна с ДЕЛЕГИРОВАННЫМИ переменными состо ни ,
добавл етс к статистической информации, св занной с переменными состо ни КОНСТАНТА и КЭШИРУЕМАЯ.
Существует также класс статистической информации, котора суммируетс по всей
группе состо ни уровн хоста (хост-компьютера) и состо ни уровн периферийного
устройства, например счетчик пакетов. Другой тип статистической информации - листинг
состо ни функции в системе (например, листинг состо ни каждого TCB в системе).
Статистическа информаци дл TCB вл етс комбинацией статистической информации,
отслеживаемой хостом, и статистической информации, отслеживаемой периферийным
устройством. Точно так же статистическа информаци дл счетчика пакетов вл етс суммой статистической информации состо ни уровн хоста и статистической информации
состо ни уровн периферийного устройства.
Пример разделени статистической информации между хостом и периферийным
Страница: 18
RU 2 336 652 C2
5
10
15
20
устройством 204 дл базы управл ющей информации (БУИ, MIB) протокола TCP показан
ниже в таблице 1, и статистическа информаци дл БУИ протокола IPv4 представлена
ниже в таблице 2. В этих таблицах первый столбец - поле, второй столбец определ ет,
периферийное устройство или сетевой стек хоста отвечает за отслеживание
статистической информации, и треть область указывает, как отслеживаетс это поле.
Статистическа информаци , за которую отвечает периферийное устройство,
отслеживаетс на основе объекта состо ни уровн или на основе уровн . В данной
работе считаетс , что термин «на основе уровн » означает, что статистическа информаци отслеживаетс через уровень, через периферийное устройство, через
протокол. Однако следует обратить внимание, что когда статистическа информаци синтезируетс из состо ни хоста и состо ни от периферийного устройства, она в общем
случае представлена на основе протокола. Статистическа информаци , которую сетевой
стек хоста может сгенерировать, не запрашива периферийное устройство,
категоризируетс как «стек имеет полную информацию» или «сделано только стеком».
Категори «стек имеет полную информацию» указывает, что периферийное устройство
знает о статистической информации, но не отслеживает ее. Статистическа информаци категории «сделано только стеком» указывает, что периферийное устройство не знает о
статистической информации. Статистическа информаци адаптера запрашиваетс через
регул рный интерфейс СИСД. Статистическа информаци адаптера включает в себ такие переменные, как посланные байты, прин тые байты и т.д.
Таблица 1
Разделение статистической информации дл БУИ (базы управл ющей информации) дл протокола TCP
25
30
35
40
45
50
Структура пол TCPStats
Ответственность
Как поле отслеживаетс ts_RtoAlgorithm
Сетевой стек хоста
Стек имеет полную информацию
ts_toMin
Сетевой стек хоста
Стек имеет полную информацию
ts_RtoMax
Сетевой стек хоста
Стек имеет полную информацию
Стек имеет полную информацию
ts_MaxConn
Сетевой стек хоста
ts_ActiveOpens
Сетевой стек хоста
Сделано только стеком
ts_PassiveOpens
Сетевой стек хоста
Сделано только стеком
ts_AttemptFails
Сетевой стек хоста
Сделано только стеком
ts_EstabResets
Сетевой стек хоста
Стек имеет полную информацию
ts_CurrEstab
Сетевой стек хоста и периферийное устройство
Уровнем
Ts_InSegs
Сетевой стек хоста и периферийное устройство
Уровнем
ts_OutSegs
Сетевой стек хоста и периферийное устройство
Уровнем
ts_RetransSegs
Сетевой стек хоста и периферийное устройство
Уровнем
ts_InErrs
Сетевой стек хоста и периферийное устройство
Уровнем
ts_OutRsts
Сетевой стек хоста и периферийное устройство
Уровнем
ts_NumCons
Сетевой стек хоста
Стек имеет полную информацию
Параметр ts_RtoAlgoithm - значение дл алгоритма, использующеес дл определени значени тайм-аута (истечени времени ожидани ), используемого дл повторной
передачи неподтвержденных октетов. Параметр ts_Rto_Min - минимальное значение,
разрешенное реализацией TCP дл тайм-аута (истечени времени ожидани ) повторной
передачи, измеренное в миллисекундах. Параметр ts_Rto_Min - максимальное значение,
разрешенное реализацией TCP дл тайм-аута (истечени времени ожидани ) повторной
передачи, измеренное в миллисекундах. Параметр ts_MaxConn - общее количество
соединений TCP, которое поддерживаетс . Параметр ts_ActiveOpens - сколько раз
соединени TCP сделали пр мой переход в состо ние «SYN_SENT» из состо ни «CLOSED» (ЗАКРЫТО). Параметр ts_PassiveOpens - сколько раз соединени TCP сделали
пр мой переход в состо ние «SYN_RCVD» из состо ни «LISTEN» (СЛУШАЕТ). Параметр
ts_AttemptFails - сколько раз соединени TCP сделали пр мой переход в состо ние
«CLOSED» (ЗАКРЫТО) или из состо ни «SYN_SENT», или из состо ни «SYN_RCVD»,
плюс сколько раз соединени TCP сделали пр мой переход в состо ние «LISTEN»
(СЛУШАЕТ) из состо ни «SYN-RCVD». Параметр ts_EstabResets - сколько раз соединени TCP сделали пр мой переход в состо ние «CLOSED» (ЗАКРЫТО) или из состо ни «ESTABLISHED» (УСТАНОВЛЕНО), или из состо ни «CLOSE-WAIT» (БЛИЗКОЕ
Страница: 19
RU 2 336 652 C2
5
10
ОЖИДАНИЕ). Параметр ts_CurrEstab - количество соединений TCP, дл которых текущим
состо нием вл етс или «ESTABLISHED» (УСТАНОВЛЕНО), или «CLOSE-WAIT»
(БЛИЗКОЕ ОЖИДАНИЕ). Параметр ts_InSegs - общее количество прин тых сегментов,
которое включает в себ прин тые по ошибке. Параметр ts_OutSegs - общее количество
посланных сегментов, которое включают в себ текущие соединени , но исключают те,
которые содержат только повторно переданные октеты. Параметр ts_RetransSegs - общее
количество повторно переданных сегментов. Параметр ts_InErrs - общее количество
сегментов, прин тых по ошибке (например, неправильные контрольные суммы TCP).
Параметр ts_OutRsts - количество посланных сегментов TCP, которые содержит в себе
флажок RST. Параметр ts_NumCons - общее количество соединений TCP, которое в
насто щее врем существуют.
Таблица 2.
Разделение статистической информации дл БУИ (базы управл ющей информации) дл протокола IPv4
15
20
25
30
35
40
45
50
Структура пол IPSNMPInfo
Ответственность
ipsi_Forwarding
Сетевой стек хоста
Как поле отслеживаетс Сделано только стеком
ipsi_DefaultTTL
Сетевой стек хоста
Стек имеет полную информацию
ipsi_InReceives
Сетевой стек хоста и периферийное устройство
Уровнем
ipsi_InHdrErrors
Сетевой стек хоста и периферийное устройство
Уровнем
Сделано только стеком
ipsi_InAddrErrors
Сетевой стек хоста
ipsi_Forwdatagrams
Сетевой стек хоста
Сделано только стеком
ipsi_UnknownProtos
Сетевой стек хоста
Сделано только стеком
ipsi_INDIScards
Сетевой стек хоста и периферийное устройство
Уровнем
ipsi_InDelivers
Сетевой стек хоста и периферийное устройство
Уровнем
ipsi_OutRequests
Сетевой стек хоста и периферийное устройство
Уровнем
ipsi_RoutingDiscards
Сетевой стек хоста и периферийное устройство
Сделано только стеком
ipsi_OutDiscards
Сетевой стек хоста и периферийное устройство
Уровнем
ipsi_OutNooutes
Сетевой стек хоста и периферийное устройство
Уровнем
ipsi_ReasmTimeout
Сетевой стек хоста
Стек имеет полную информацию
ipsi_ReasmReqds
Сетевой стек хоста и периферийное устройство
Уровнем
ipsi_ReasmOKs
Сетевой стек хоста и периферийное устройство
Уровнем
ipsi_ReasmFails
Сетевой стек хоста и периферийное устройство
Уровнем
ipsi_FragOKs
Сетевой стек хоста
Сделано только стеком
ipsi_FragFails
Сетевой стек хоста
Сделано только стеком
ipsi_FragCreates
Сетевой стек хоста
Сделано только стеком
ipsi_NumIf
Сетевой стек хоста
Сделано только стеком
ipsi_NumAddr
Сетевой стек хоста
Сделано только стеком
ipsi_NumRoutes
Сетевой стек хоста
Сделано только стеком
Параметр ipsi_Forwarding - значение, которое обеспечивает индикацию того, действует
ли хост как маршрутизатор IP по отношению к отправлению дейтаграмм, прин тых хостом,
но не адресованных ему. Параметр ipsi_DefaultTTL - значение по умолчанию, помещаемое
в поле «Time-To-Live» заголовка IP дейтаграмм, создаваемых в этом объекте, вс кий
раз, когда значение TTL не доставл етс с помощью протокола транспортного уровн .
Параметр ipsi_InReceives - общее количество вход щих дейтаграмм, прин тых от
интерфейса, включает в себ прин тые по ошибке. Параметр ipsi_InHdrErrors количество вход щих дейтаграмм, отвергнутых из-за ошибок в их заголовках IP, включает
в себ неправильные контрольные суммы, несовпадение номеров версий, другие ошибки
формата, превышение значени параметра «time-to-live», ошибки, обнаруженные при
обработке их опций IP, и т.д. Параметр ipsi_InAddrErrors - количество вход щих
дейтаграмм, отвергнутых из-за того, что адрес IP в их поле назначени заголовка IP не
был допустимым адресом дл приема в хосте. Параметр ipsi_ForwDatagrams - количество
вход щих дейтаграмм, дл которых хост не был их конечным адресатом IP, в результате
чего была сделана попытка найти маршрут дл передачи их конечному адресату. Параметр
ipsi_UnknownProtos - количество локально адресован??ых дейтаграмм, которые прин ты
успешно, но отвергнуты из-за неизвестного или неподдерживаемого протокола. Параметр
ipsi_INDIScards - количество вход щих дейтаграмм IP, дл которых не обнаружено
никаких проблем, которые бы мешали их дальнейшей обработке, но которые были
отвергнуты (например, из-за недостатка объема буфера). Параметр ipsi_InDelivers Страница: 20
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
общее количество вход щих дейтаграмм, успешно доставленных пользовательским
протоколам IP. Параметр ipsi_OutRequests - общее количество дейтаграмм IP, которые
локальный пользователь IP - протоколов (которые включают в себ ПУСИ) доставил к IP в
запросах о передаче. Параметр ipsi_RoutingDiscards - количество элементов
маршрутизации, которые были выбраны, чтобы отвергнуть, даже при том, что они
допустимы. Параметр ipsi_OutDiscards - количество выходных дейтаграмм IP, дл которых
не обнаружено никаких проблем, которые бы мешали их передаче адресату, но которые
были отвергнуты (например, из-за недостатка объема буфера). Параметр ipsi_OutNoRoutes
- количество дейтаграмм IP, отвергнутых из-за того, что не был найден маршрут дл их
передачи адресату. Параметр ipsi_ReasmTimeout - максимальное количество секунд,
которое прин тые фрагменты хран тс , когда они ждут повторную сборку в хосте.
Параметр ipsi_ReasmReqds - количество прин тых фрагментов IP, которые должны быть
повторно собраны в хосте. Параметр ipsi_ReasmOKs - количество дейтаграмм IP, успешно
повторно собранных. Параметр ipsi_ReasmFails - количество отказов, обнаруженных
алгоритмом повторной сборки IP (например, превышение времени ожидани , ошибки и т.д).
Параметр ipsi_FragOKs - количество дейтаграмм IP, которые были успешно
фрагментированы в хосте. Параметр ipsi_FragFails - количество дейтаграмм IP, которые
были отвергнуты из-за того, что они должны были фрагментироватьс в хосте, но не
смогли, например, потому что был установлен флажок «не фрагментировать». Параметр
ipsi_FragCreates - количество фрагментов дейтаграммы IP, которые были созданы в
результате фрагментации в хосте. Параметр ipsi_NumIf - общее количество используемых
интерфейсов. Параметр ipsi_NumAddr - общее количество уникальных адресов IP в
системе. Параметр ipsi_NumRoutes - общее количество активных в насто щее врем маршрутов.
Насто щее изобретение также обеспечивает способ загрузки выгруженного сетевого
подключени от периферийного устройства к хосту. Существует много причин, почему
происходит загрузка. Дл примера, а не в качестве ограничени некоторые из причин
представлены ниже. Маршрут может изменитьс , требу , чтобы трафик посылалс по
другому интерфейсу. Поведение трафика подключени может изменитьс так, что он
больше не вл етс подход щим дл выгрузки. Например, может быть недостаточный
трафик, недостаток активности или подключение может находитс под потоковым
управлением дольше, чем установленное врем (например, не принимаютс никакие
модификации окна). Дополнительно периферийное устройство может не поддерживать
определенные функции, поведение трафика может быть неподход щим дл выгрузки, если
существует слишком много фрагментов IP, слишком большой трафик с измененной
последовательностью, используютс дополнительные данные слишком многих повторных
передач, истечение времени «keep-alive» (эмул ции де тельности), безопасное
соединение становитс недопустимым и не возобновл етс , или слишком много данных
отправлено периферийному устройству. Другие причины дл загрузки выгруженного
подключени возникают из-за проблем с ресурсами. Например, периферийное устройство
может испытывать недостаток в ресурсах дл продолжени обработки подключени .
Другое подключение (соединение) может иметь более высокий приоритет, чем
выгруженное подключение, и загрузка подключени , когда доступность ресурсов
периферийного устройства находитс ниже порога, может дать возможность подключению
с более высоким приоритетом продолжить использовать ресурсы периферийного
устройства.
Системные ресурсы могут изменитьс таким образом, что главный процессор будет
иметь ресурсы дл обработки выгруженного подключени . Обходной тракт может
потребовать других ресурсов, чем те, которые были первоначально выгружены (например,
изменение фильтра защиты и т.д.). Хост может определить, когда ресурсы периферийного
устройства приближаютс к пороговым уровн м, когда выгруженное подключение могло бы
обрабатыватьс более эффективно главным процессором. Например, пороги могут
включать в себ величину трафика (количество байтов или пакетов), количество
Страница: 21
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
фрагментов, размер окна и тип выгрузки.
Обраща сь теперь к фиг. 7, загрузка инициируетс периферийным устройством 204
(например, СИП 170) или ИТУ коммутатором 306. Подключение может загружатьс из-за
разных причин. Причины включают в себ перемещение подключени на другое
периферийное устройство, по вление разъединени канала св зи, слишком много
ошибочных сегментов, слишком много данных отправлено периферийному устройству 204,
приложение 200 предварительно не отправл ет содержимое буферов, слишком много
фрагментов IP, низка производительность подключени и слишком много повторных
передач.
Фиг.7 показывает загрузку (передачу), инициируемую ИТУ коммутатором 306 (лини 700). Следует обратить внимание, что если СИП 170 инициирует загрузку (передачу), то
лини 700 не присутствует. Как только загрузка инициирована, СИП 170 завершает все
невыполненные запросы с соответствующим состо нием и передает делегированное
состо ние транспортного уровн к уровню коммутатора (лини 702). СИП 170 может не
завершить передачу или не заполнить полностью буфер приема. СИП 170 только
гарантирует, что все состо ни передачи и приема синхронизированы с делегированным
состо нием, возвращенным к транспортному уровню 300. ИТУ коммутатор 306 ставит в
очередь любые дополнительные запросы на передачу и прекращает отправл ть буфера
приема. ИТУ коммутатор 306 дает команду транспортному уровню вз ть под свое
управление делегированное транспортное состо ние (лини 704). Транспортный уровень
300 останавливает передачу к СИП 170 любых сегментов, которые он принимает, и берет
под свое управление делегированное состо ние и посылает сообщение завершени ИТУ
коммутатору 306 (лини 706). После того как ИТУ коммутатор 306 принимает
подтверждение, что транспортный уровень 300 вз л под свое управление делегированное
транспортное состо ние, ИТУ коммутатор 306 передает СИП 170 подтверждение загрузки
(лини 708), что дает возможность СИП 170 освободить ресурсы. Транспортный уровень
300 также информирует сетевой уровень 302 о загружаемом подключении до или после
того, как сообщение завершени посылаетс к ИТУ коммутатору 306 (лини 710).
Следует отметить, что транспортный уровень 300 передает вход щие пакеты данных
дл выгруженного подключени к СИП 170 дл обработки, пока он не вз л под свое
управление делегированное состо ние (лини 706). Пакеты данных могут прибывать между
временем, когда СИП 170 передал делегированное состо ние к ИТУ коммутатору 306
(лини 702), и временем, когда транспортный уровень 300 вз л под свое управление
делегированное состо ние (лини 706). Когда СИП 170 передал делегированное состо ние
к ИТУ коммутатору 306, он больше не может обрабатывать вход щие пакеты данных. Когда
СИП 170 принимает вход щий пакет дл загружаемого подключени , он посылает
сообщение об ошибках транспортному уровню 300, индициру , что происходит загрузка, и
может отказатьс от вход щего пакета. Сообщение об ошибках сообщает транспортному
уровню 300, чтобы он прекратил отправл ть вход щие данные. В одном из вариантов
осуществлени транспортный уровень 300 буферизирует дополнительные данные, пока он
не примет делегированное состо ние.
Многочисленные соединени могут выгружатьс промежуточными программными
уровн ми на периферийное устройство. Промежуточным программным уровнем
поддерживаетс счетчик обращений количества подключений, выгруженных от
промежуточного программного уровн на периферийное устройство. Если счетчик
обращений обнул етс , то запрос на загрузку генерируетс к следующему промежуточному
программному уровню. Это заставл ет уменьшать счетчик обращений следующего уровн .
Запрос на загрузку продолжаетс вниз по сетевому стеку 202, если счетчик обращений
следующего уровн доходит до нул . Этот процесс повтор етс до тех пор, пока или
счетчик обращений промежуточного программного уровн не обнулен или периферийное
устройство не примет запрос на загрузку. Сетевой уровень 302 уменьшает счетчик
обращений количества выгруженных объектов состо ни , св занных с СИП 170. Если
счетчик обращений обнул етс , то никакие TCB не используют ресурсы, распределенные в
Страница: 22
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
СИП 170 дл сетевого уровн 302. Когда счетчик обращений обнул етс , то сетевой
уровень 302 посылает сообщение СИП 170, чтобы передать объект состо ни сетевому
уровню 302 и послать делегированные сетевые переменные состо ни сетевому уровню
302 (лини 712). СИП 170 удал ет данное состо ние и посылает делегированные сетевые
переменные состо ни и следующее значение идентификатора IP, которые СИП 170 будет
использовать, к сетевому уровню 302 (лини 714). Сетевой уровень 302 хранит эту
информацию дл использовани в качестве начального значени , если подключение снова
выгружаетс . Сетевой уровень 302 также посылает сообщение уровню 304 создани кадра,
чтобы заставить уровень 304 создани кадра уменьшить счетчик обращений (лини 716).
Уровень 304 создани кадра также поддерживает счетчик обращений, и он уменьшает
счетчик обращений, когда принимаетс сообщение от сетевого уровн 302. Если счетчик
обращений дл уровн 304 создани кадра доходит до нул , то уровень создани кадра
посылает сообщение СИП 170 дл удалени состо ни уровн создани кадра (лини 718).
СИП 170 удал ет переменные состо ни в СИП 170 и посылает любые делегированные
переменные состо ни , которые она имеет, к уровню создани кадра (лини 720). Уровень
304 создани кадра посылает сообщение завершени сетевому уровню 302 (лини 722), и
сетевой уровень 302 посылает сообщение завершени транспортному уровню (лини 724).
Соединение TCP может быть об зано использовать безопасное подключение, использу протоколы защиты, такие как IPSEC, в любом пункте в его продолжительности жизни
(времени работы). Если подключение выполн етс по безопасному IP протоколу и
периферийное устройство 204 не может обрабатывать защиту, то подключение не может
быть выгружено. Когда безопасное соединение IP выгружено, состо ние безопасного
соединени делитс на КОНСТАНТЫ, КЭШИРОВАННЫЕ и ДЕЛЕГИРОВАННЫЕ
переменные и они обрабатываютс , как описано выше. Главный процессор 120 управл ет
сообщени ми управлени , такими как повторное согласование ключей. Периферийное
устройство 204 выполн ет все необходимые операции с данными протокола IPSEC,
использу переменные состо ни безопасного соединени .
Обраща сь теперь к фиг. 8, там показаны этапы выгрузки безопасного подключени . В
последующем описании предварительно описанные этапы, которые показаны на фиг. 4,
остаютс теми же самыми и не будут повторены. IPSEC подключение (соединение),
работающее в транспортном режиме, будет использоватьс дл целей иллюстрации.
Выгрузка уровн IPSEC начинаетс , когда транспортный уровень 300 посылает запрос на
выгрузку к уровню 800 IPSEC с информацией о ресурсах TCP, котора добавл етс к
информации о ресурсах ИТУ коммутатора (лини 402). Уровень 800 IPSEC посылает
запрос на выгрузку к сетевому уровню 302 с IPSEC требовани ми к ресурсам, которые
добавл ют к информации о ресурсах TCP и информации о ресурсах ИТУ коммутатора
(лини 802). Требовани к ресурсам включают в себ количество безопасных соединений,
которые хочет выгрузить IPSEC уровень. Если СИП принимает запрос на выгрузку, она
распредел ет ресурсы дл обработки безопасного соединени . Сетевой уровень 302
посылает сообщение завершени , имеющее св занный список параметров и таблицы
диспетчеризации, к уровню IPSEC вместо транспортного уровн 300 (лини 804).
Когда уровень 800 IPSEC принимает сообщение завершени , он посылает состо ни уровн IPSEC к СИП 170 как часть вход щих дескрипторов и отправл емых дескрипторов,
если состо ние не было предварительно выгружено, и перемещает монопольное
использование делегированного состо ни в безопасном соединении к СИП 170 (лини 806). Если состо ние было предварительно выгружено, то уровень IPSEC увеличивает
счетчик обращений. Как только монопольное использование было перемещено, СИП 170
расшифровывает и зашифровывает все пакеты. Уровень 700 IPSEC посылает сообщение
завершени , имеющее св занный список параметров и таблицы диспетчеризации, к
транспортному уровню (лини 414').
Переменные состо ни КОНСТАНТА, которые приход т к СИП 170 от IPSEC уровн 800,
состо т из информации, требуемой дл классификации пакетов к определенному
безопасному подключению и информации, определенной дл вход щих и отправл емых
Страница: 23
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
безопасных соединений. Переменные КОНСТАНТА включают в себ порт источника и
назначени , тип протокола и переменные безопасного соединени .
КЭШИРУЕМЫЕ переменные состо ни содержат коэффициенты дл определени "продолжительности жизни" безопасного соединени и информацию, относ щуюс к
вход щим и отправл емым безопасным соединени м. КЭШИРУЕМЫЕ переменные
включают в себ м гкий предел (например, ретрансл ци по счетчику байтов) и жесткий
предел (например, останов по счетчику байтов), которые основаны на зашифрованных
байтах, м гкий предел (например, ретрансл ци при предопределенном импульсе сигнала
времени) и жесткий предел (например, останов при предопределенном импульсе сигнала
времени), которые основаны на максимальном времени, в течение которого безопасное
соединение может использоватьс , и жесткий предел (например, максимальное количество
импульсов сигнала времени просто ) максимального времени просто , в течение которого
может использоватьс безопасное соединение. СИП 170 действует в соответствии с
м гкими и жесткими пределами. Когда достигаетс м гкий предел, СИП 170 сообщает
главному процессору 120. Когда достигаетс жесткий предел, СИП 170 отвергает
безопасное соединение.
ДЕЛЕГИРОВАННЫЕ переменные содержат информацию о выполнении и информацию,
относ щуюс к вход щим и отправл емым безопасным соединени м. ДЕЛЕГИРОВАННЫЕ
переменные включают в себ счетчик байтов, зашифрованных или расшифрованных с
помощью безопасного соединени , продолжительность жизни (врем работы) безопасного
соединени и врем просто безопасного соединени .
Обраща сь к фиг. 9, там показана загрузка (передача данных) выгруженного сетевого
подключени с IPSEC от периферийного устройства в хост. В последующем описании
предварительно описанные этапы, показанные на фиг. 7, остаютс тем же самыми и не
будут повтор тьс . Транспортный уровень 300 сообщает уровню 800 IPSEC о загрузке
соединени до того или после того, как сообщение завершени посылаетс уровню 306
коммутатора (лини 710'). Счетчик обращений, св занный со всеми безопасными
соединени ми, уменьшаетс . Если никакой счетчик обращений не обнул етс , то уровень
800 IPSEC посылает сообщение завершени транспортному уровню 300 (лини 724'). Если
выгруженное подключение вл етс последним подключением, использующим
определенное безопасное соединение, то уровень 800 IPSEC посылает сообщение к СИП
170, чтобы она передала делегированные переменные состо ни к уровню 800 IPSEC
(лини 900). СИП 170 возвращает делегированные переменные состо ни к уровню 800
IPSEC (лини 902). СИП 170 прекращает использовать безопасное соединение и посылает
пакеты, которые принадлежат безопасному соединению, к уровню 800 IPSEC через стек
202. Уровень 800 IPSEC посылает сообщение завершени к СИП 170, и СИП 170
освобождает ресурсы, распределенные дл безопасного соединени (лини 904).
Если счетчик обращений безопасного соединени обнул етс , то уровень 800 IPSEC
также посылает сообщение сетевому уровню 302, информиру сетевой уровень 302 о
загруженном состо нии (лини 906). После того как уровень 304 создани кадра посылает
сообщение завершени сетевому уровню 302 (лини 722), сетевой уровень 302 посылает
сообщение завершени уровню IPSEC (лини 908). Уровень 800 IPSEC посылает
сообщение завершени транспортному уровню (лини 724').
Когда состо ни дл транспортного уровн 300, сетевого уровн 302, уровн 304
создани кадра или уровн 800 IPSEC выгружаютс , возможно, что может прибыть
модификаци (например, модификаци ППА или модификаци ПМИ). Если модификаци происходит прежде, чем сообщение завершени прин то, то местное состо ние просто
модифицируетс и флажок устанавливаетс дл указани того, что состо ние изменилось,
если объекту состо ни послали запрос на выгрузку.
Возможные «гонки» существуют, если модификаци происходит, когда вызывают
подпрограмму модификации СИП дл модификации кэшируемых состо ний. Если
отдельное сообщение затем модифицирует состо ние, что приводит к вызову
подпрограммы модификации СИП, то возможно, что СИП сначала увидит второй запрос изСтраница: 24
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
за проблем планировани и прекратит использовать устаревшие данные, когда прибудет
первоначальна модификаци . Если используютс устаревшие данные, то неправильный
элемент будет использоватьс до тех пор, пока не прибудет следующа модификаци , что
может привести к тому, что большое количество данных будет или посылатьс в
неправильное место, или удал тьс . Существуют два возможных решени этого услови «гонки». Первое возможное решение состоит в том, чтобы сообщение завершени всегда
выполн ло вторую модификацию, что может привести к проблемам рекурсии, если
приходит большое количество модификаций. Второе возможное решение состоит в том,
чтобы добавл ть пор дковый номер к модификации, чтобы гарантировать, что всегда
используетс самый последний пор дковый номер.
Другим рабочим режимом, который поддерживает IPSEC, вл етс туннелирование,
когда пакеты данных инкапсулируютс в новый пакет как часть безопасного подключени .
Туннель выступает как виртуальный интерфейс к сетевому стеку 202. Этапы выгрузки
IPSEC туннел подобны этапам выгрузки IPSEC подключени в транспортном режиме. В
транспортном режиме заголовок IPSEC помещаетс между заголовком IP и заголовком
TCP. В туннельном режиме UDP используетс дл обеспечени туннел . Цепочка
заголовков - от заголовка TCP к заголовку IPSEC, к заголовку UDP, к заголовку IP, к
заголовку уровн создани кадра. Дл того чтобы установить туннель, вход щий
дескриптор и отправл емый дескриптор, которые описывают согласованные подключени защиты, посылаютс периферийному устройству. Дескрипторы содержат переменные
состо ни дл подключени и другую информацию, требуемую дл установлени подключени . КЭШИРУЕМЫЕ и ДЕЛЕГИРОВАННЫЕ переменные состо ни дл туннел вл ютс теми же самыми, как КЭШИРУЕМЫЕ и ДЕЛЕГИРОВАННЫЕ переменные
состо ни дл транспортного режима. Переменные состо ни КОНСТАНТА дл туннел включают в себ порт источника и порт назначени , локальный адрес, удаленный адрес,
тип протокола и переменные безопасного соединени .
Был описан способ выгрузки и загрузки (передачи данных) подключений (соединений)
сетевого стека к периферийному устройству, которое поддерживает жесткую
синхронизацию с главным процессором. Способ может использоватьс со многими
протоколами. Например, протоколы, которые могут использоватьс , включают в себ TCP,
SCTP и т.д.
Поскольку существует много возможных вариантов осуществлени , к которым могут
примен тьс принципы данного изобретени , следует признать, что вариант
осуществлени , описанный со ссылками на чертежи, вл етс только иллюстративным и не
должен использоватьс дл ограничени объема изобретени . Например, специалисты
должны признать, что элементы иллюстрированного варианта осуществлени , показанного
в программном обеспечении, могут быть осуществлены в аппаратных средствах, и
наоборот, что иллюстрированный вариант осуществлени может измен тьс в
расположении и детал х, не отступа от объема изобретени . Поэтому описанное
изобретение рассматривает все подобные варианты осуществлени как наход щиес в
пределах следующей формулы изобретени и эквивалентны ей.
Формула изобретени 1. Способ распределени ресурсов управлени операци ми сетевого стека по передаче
данных между хостом и периферийным устройством, способным выполн ть сетевые
задачи и функции хоста, посредством выгрузки совокупности переменных состо ни сетевого стека, наход щейс в уровне коммутатора под управлением хоста, дл передачи
управлени передачей данных из первого пути, проход щего от периферийного устройства
к уровню коммутатора, во второй путь, проход щий от упом нутого периферийного
устройства через множество программных уровней сетевого стека к упом нутому уровню
коммутатора, причем множество программных уровней включает в себ промежуточный
уровень, при этом упом нута совокупность переменных состо ни сетевого стека имеет
по меньшей мере одну кэшируемую переменную состо ни и по меньшей мере одну
Страница: 25
CL
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
делегированную переменную состо ни , причем способ содержит этапы
посылают посредством хоста к периферийному устройству запрос на выгрузку,
содержащий требовани к ресурсам, которые необходимы дл соединени с
периферийным устройством,
в ответ посылают из периферийного устройства на упом нутый промежуточный уровень
информацию о распределении ресурсов дл соединени ,
выгружают совокупность переменных состо ни сетевого стека из уровн коммутатора
во второй путь посредством выдачи хостом команды промежуточному уровню прин ть
управление над упом нутой по меньшей мере одной делегированной переменной
состо ни , и
передают посредством промежуточного уровн значение упом нутой по меньшей мере
одной делегированной переменной состо ни к периферийному устройству, причем
упом нутое значение по меньшей мере одной делегированной переменной состо ни управл етс промежуточным уровнем по врем выгрузки совокупности переменных
сетевого стека, и
посылают данные по второму пути согласно распределенным ресурсам на основании, по
меньшей мере частично, значений упом нутой по меньшей мере одной делегированной
переменной состо ни и значений по меньшей мере одной кэшированной переменной
состо ни .
2. Способ по п.1, дополнительно содержащий этап: инициируют выгрузку упом нутой
совокупности переменных состо ни сетевого стека.
3. Способ по п.1, в котором множество программных уровней также включает в себ сетевой уровень, причем периферийное устройство имеет делегированную переменную
состо ни упом нутого сетевого уровн , данный способ дополнительно содержит этапы:
уменьшают счетчик множества выгруженных транспортных соединений сетевого уровн дл делегированной переменной состо ни сетевого уровн , и
если значение упом нутого счетчика уменьшено до нул :
посылают сообщение на периферийное устройство дл того, чтобы оно послало
делегированную переменную состо ни сетевого уровн к сетевому уровню.
4. Способ по п.1, в котором множество программных уровней также включает в себ уровень создани кадра, при этом периферийное устройство имеет делегированную
переменную состо ни уровн создани кадра, данный способ дополнительно содержит
этапы:
уменьшают счетчик множества выгруженных транспортных соединений уровн создани кадра дл делегированной переменной состо ни уровн создани кадра, и
если значение упом нутого счетчика уменьшено до нул :
посылают сообщение на периферийное устройство дл того, чтобы оно послало
делегированную переменную состо ни уровн создани кадра к уровню создани кадра.
5. Способ по п.2, дополнительно содержащий этап определени , должна ли быть
инициирована выгрузка.
6. Способ по п.5, в котором на этапе определени , должна ли быть инициирована
выгрузка, принимают решение об инициировании выгрузки в результате по меньшей мере
одного из этапов:
определени , что количество данных, отправл емых периферийному устройству,
превышает максимальный порог,
определени , что периферийное устройство может обработать функцию,
определени , что приложение предварительно не отправило содержимое буферов, и
определение, что количество данных, отправл емых периферийному устройству,
находитс ниже минимального порога.
7. Считываемый компьютером носитель, имеющий выполн емые компьютером команды
дл выполнени этапов по п.1.
8. Считываемый компьютером носитель по п.7, дополнительно имеющий выполн емые
компьютером команды дл выполнени этапа определени , на котором принимают
Страница: 26
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
решение об инициировании выгрузки в результате по меньшей мере одного из этапов:
определени , что количество данных, отправл емых периферийному устройству,
превышает максимальный порог,
определ ют, что периферийное устройство может обработать функцию,
определ ют, что приложение предварительно не отправило содержимое буферов, и
определ ют, что количество данных, отправл емых периферийному устройству,
находитс ниже минимального порога.
9. Считываемый компьютером носитель по п.7, в котором множество программных
уровней включает в себ сетевой уровень и уровень создани кадра, причем
периферийное устройство имеет делегированную переменную состо ни сетевого уровн и делегированную переменную состо ни уровн создани кадра, при этом считываемый
компьютером носитель дополнительно имеет выполнимые компьютером команды дл выполнени этапов:
уменьшают счетчик количества выгруженных транспортных соединений сетевого уровн дл делегированной переменной состо ни сетевого уровн , и
если упом нутый счетчик уменьшен до нул :
посылают сообщение на периферийное устройство дл того, чтобы оно послало
делегированную переменную состо ни сетевого уровн на сетевой уровень,
уменьшают счетчик количества выгруженных транспортных соединений состо ний
уровн создани кадра дл делегированной переменной состо ни уровн создани кадра,
и
если значение упом нутого счетчика уменьшено до нул :
посылают сообщение на периферийное устройство дл того, чтобы оно послало
делегированную переменную состо ни уровн создани кадра на уровень создани кадра.
10. Способ распределени ресурсов управлени операци ми сетевого стека по
передаче данных между хостом и периферийным устройством, способным выполн ть
сетевые задачи и функции хоста, посредством загрузки совокупности переменных
состо ни сетевого стека, имеющей по меньшей мере одну кэшированную переменную
состо ни и по меньшей мере одну делегированную переменную состо ни , из первого
пути, проход щего от периферийного устройства к уровню коммутатора, наход щегос под
управлением хоста, во второй путь, проход щий от упом нутого периферийного устройства
через множество программных уровней сетевого стека к упом нутому уровню коммутатора,
причем множество программных уровней включает в себ промежуточный уровень, при
этом способ содержит этапы:
завершают периферийным устройством невыполненные запросы, имеющие статус
передачи, передают значение делегированной переменной состо ни от периферийного
устройства к уровню коммутатора, причем значение делегированной переменной
состо ни управл етс периферийным устройством во врем упом нутой передачи,
дают команду от уровн коммутатора промежуточному уровню прин ть управление над
делегированной переменной состо ни ;
освобождают ресурсы в периферийном устройстве дл промежуточного уровн , и
распредел ют ресурсы, на основании, по меньшей мере частично, значени упом нутой
делегированной переменной состо ни и значени кэшированной переменной состо ни ,
дл посылки данных через второй путь.
11. Способ по п.10, дополнительно содержащий этап инициации загрузки совокупности
переменных состо ни сетевого стека.
12. Способ по п.10, в котором множество программных уровней включает в себ сетевой
уровень, периферийное устройство имеет делегированную переменную состо ни сетевого
уровн , данный способ дополнительно содержит этап: посылают делегированную
переменную состо ни сетевого уровн к сетевому уровню, если все выгруженные
соединени от транспортного уровн были загружены.
13. Способ по п.10, в котором множество программных уровней также включает в себ уровень создани кадра, периферийное устройство имеет делегированную переменную
Страница: 27
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
состо ни уровн создани кадра, данный способ дополнительно содержит этап: посылают
делегированную переменную состо ни уровн создани кадра к уровню создани кадра,
если все выгруженные соединени от сетевого уровн были загружены.
14. Способ по п.11, дополнительно содержащий этап определени , должна ли быть
инициирована загрузка.
15. Способ по п.14, в котором этап определени , должна ли быть инициирована
загрузка, включает в себ по меньшей мере один из этапов:
определ ют, что количество данных, отправл емых из уровн коммутатора на
периферийное устройство, превышает максимальный порог,
определ ют, что существует недостаток активности выгруженного соединени сетевого
стека,
определ ют, что периферийное устройство не может обработать функцию,
определ ют, что поведение соединени вл етс неподход щим дл выгрузки,
определ ют, что загрузка даст возможность соединени м с более высоким приоритетом
использовать ресурсы периферийного устройства, если доступность ресурсов
периферийного устройства находитс ниже порога,
определ ют, что приложение предварительно не отправл ет содержимое буферов, и
определ ют, что количество данных, отправл емых периферийному устройству,
превышает максимальный порог.
16. Считываемый компьютером носитель, имеющий выполн емые компьютером
команды дл выполнени этапов по п.10.
17. Считываемый компьютером носитель по п.16, дополнительно имеющий
выполн емые компьютером команды дл выполнени этапа, содержащего определение
того, что должна быть инициирована загрузка, причем данный этап определени , что
должна быть инициирована загрузка, включает в себ по меньшей мере одно из:
определ ют, что количество данных, отправл емых от уровн коммутатора на
периферийное устройство, превышает максимальный порог,
определ ют, что существует недостаток активности на выгруженном сетевом
соединении стека,
определ ют, что периферийное устройство не может обработать функцию,
определ ют, что поведение соединени вл етс неподход щим дл выгрузки,
определ ют, что загрузка даст возможность соединени м с более высоким приоритетом
использовать ресурсы периферийного устройства, если доступность ресурсов
периферийного устройства находитс ниже порога,
определ ют, что приложение предварительно не отправл ет содержимое буферов, и
определ ют, что количество данных, отправл емых периферийному устройству,
находитс выше максимального порога.
18. Способ распределени ресурсов управлени операци ми сетевого стека по
передаче данных между хостом и периферийным устройством, способным выполн ть
сетевые задачи и функции хоста, посредством выгрузки совокупности переменных
состо ни сетевого стека, имеющего множество программных уровней, причем каждый
программный уровень имеет по меньшей мере одну переменную состо ни , данный способ
содержит этапы:
дл каждого программного уровн в множестве программных уровней:
классифицируют по меньшей мере одну переменную состо ни , чтобы она была одной
из посто нной переменной состо ни , кэшируемой переменной состо ни и
делегированной переменной состо ни ,
посылают упом нутую по меньшей мере одну переменную состо ни на периферийное
устройство, и
если во врем выгрузки совокупности переменных состо ни сетевого стека, по
меньшей мере одна переменна состо ни была классифицирована как кэшируема переменна состо ни , то:
с помощью хоста управл ют обработкой значени упом нутой кэшируемой переменной
Страница: 28
RU 2 336 652 C2
5
10
15
20
25
30
35
40
45
50
и управл ют обновлением значени кэшируемой переменной в периферийном устройстве,
если кэшируема переменна изменилась, и
если во врем выгрузки объекта совокупности переменных состо ни сетевого стека по
меньшей мере одна переменна состо ни была классифицирована как делегированна переменна , то:
с помощью периферийного устройства управл ют значением упом нутой
делегированной переменной и измен ют значение упом нутой по меньшей мере одной
переменной состо ни ,
передают данные между хостом и периферийным устройством на основании
упом нутого управлени значени ми переменных состо ни .
19. Способ по п.18, в котором одним из множества программных уровней вл етс транспортный уровень, и в котором по меньшей мере одна переменна состо ни классифицируетс как посто нна переменна , причем упом нута по меньшей мере одна
переменна состо ни включает в себ по меньшей мере одно из: порт места назначени ,
порт источника, коэффициент масштабировани окна и дескриптор выгрузки.
20. Способ по п.18, в котором одним из множества программных уровней вл етс сетевой уровень, и в котором по меньшей мере одна переменна состо ни классифицируетс как посто нна переменна , причем упом нута по меньшей мере одна
переменна состо ни включает в себ по меньшей мере одно из: IP адрес места
назначени и IP адрес источника.
21. Способ по п.18, в котором одним из множества программных уровней вл етс уровень TCP, и в котором по меньшей мере одна переменна состо ни классифицируетс как кэшируема переменна , причем упом нута по меньшей мере одна переменна состо ни включает в себ по меньшей мере одно из: переменна TCP и переменна IP.
22. Способ по п.18, в котором одним из множества программных уровней вл етс сетевой уровень, и в котором по меньшей мере одна переменна состо ни классифицируетс как кэшируема переменна , причем упом нута по меньшей мере одна
переменна состо ни включает в себ дескриптор выгрузки.
23. Способ по п.18, в котором одним из множества программных уровней вл етс уровень создани кадра, и в котором по меньшей мере одна переменна состо ни классифицируетс как кэшируема переменна , причем упом нута по меньшей мере одна
переменна состо ни включает в себ адрес ППА (протокола преобразовани адресов).
24. Способ по п.18, в котором одним из множества программных уровней вл етс уровень защиты IP, и в котором посто нна переменна включает в себ по меньшей мере
одно из: порт источника, порт места назначени , тип протокола и переменные
безопасного соединени .
25. Способ по п.18, в котором одним из множества программных уровней вл етс уровень защиты IP, и в котором упом нута кэшируема переменна включает в себ по
меньшей мере одно из: ретрансл ци по счетчику байтов, останов по счетчику байтов,
ретрансл ци при заранее определенном импульсе сигнала времени, останов при заранее
определенном импульсе сигнала времени и максимальное врем просто , в течение
которого может использоватьс безопасное соединение.
26. Способ по п.18, в котором одним из множества программных уровней вл етс уровень TCP и в котором по меньшей мере одна переменна состо ни классифицируетс как делегированна переменна состо ни , причем упом нута по меньшей мере одна
переменна состо ни включает в себ по меньшей мере одно из: текущее состо ние TCP,
размер принимаемого окна, пор дковый номер дл следующего «RECV», максимальное
посылаемое окно, текущее окно перегрузки, максимальный посылаемый пор дковый номер
и пор дковый номер дл следующего «SEND».
27. Способ по п.18, в котором одним из множества программных уровней вл етс сетевой уровень, и в котором по меньшей мере одна переменна состо ни классифицируетс как делегированна переменна состо ни , причем упом нута по
меньшей мере одна переменна состо ни включает в себ начальное значение
Страница: 29
RU 2 336 652 C2
5
идентификатора IP-пакета.
28. Способ по п.18, в котором одним из множества программных уровней вл етс уровень защиты IP, и в котором делегированна переменна включает в себ по меньшей
мере одно из: счетчик байтов, зашифрованный или расшифрованный с помощью
безопасного соединени , врем работы безопасного соединени и врем просто безопасного соединени .
10
15
20
25
30
35
40
45
50
Страница: 30
RU 2 336 652 C2
Страница: 31
DR
RU 2 336 652 C2
Страница: 32
RU 2 336 652 C2
Страница: 33
RU 2 336 652 C2
Страница: 34
RU 2 336 652 C2
Страница: 35
?есату. Параметр
ipsi_UnknownProtos - количество локально адресован?
Документ
Категория
Без категории
Просмотров
0
Размер файла
632 Кб
Теги
1/--страниц
Пожаловаться на содержимое документа