RU2365046C2 - Подсказки о маршруте - Google Patents

Подсказки о маршруте Download PDF

Info

Publication number
RU2365046C2
RU2365046C2 RU2006104109/09A RU2006104109A RU2365046C2 RU 2365046 C2 RU2365046 C2 RU 2365046C2 RU 2006104109/09 A RU2006104109/09 A RU 2006104109/09A RU 2006104109 A RU2006104109 A RU 2006104109A RU 2365046 C2 RU2365046 C2 RU 2365046C2
Authority
RU
Russia
Prior art keywords
session
host
identifier
message
client
Prior art date
Application number
RU2006104109/09A
Other languages
English (en)
Other versions
RU2006104109A (ru
Inventor
Джон А. БЕЙНС (US)
Джон А. БЕЙНС
Джозеф М. ДЖОЙ (US)
Джозеф М. ДЖОЙ
Дэвид Р. МАУЭРС (US)
Дэвид Р. МАУЭРС
Сем ПАЙЯ (US)
Сем ПАЙЯ
Фэн СУН (US)
Фэн СУН
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/639,727 external-priority patent/US8266294B2/en
Priority claimed from US10/639,516 external-priority patent/US7882251B2/en
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2006104109A publication Critical patent/RU2006104109A/ru
Application granted granted Critical
Publication of RU2365046C2 publication Critical patent/RU2365046C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1017Server selection for load balancing based on a round robin mechanism
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1019Random or heuristic server selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1027Persistence of sessions during load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

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

Description

Область техники, к которой относится изобретение
Настоящее описание относится, в основном, к подсказкам о маршруте и, в частности, в качестве примера, но не ограничения, к предоставлению подсказок о маршруте от хостов, чтобы использовать такие подсказки о маршруте на сетевом шлюзе, чтобы способствовать маршрутизации по интрасети.
Уровень техники
На передачу данных в значительной степени оказывает влияние возможности Интернета. Интернет предоставляет возможность передавать информацию между двумя людьми или другими субъектами быстро и относительно легко с использованием пакетов. Интернет включает в себя многочисленные узлы сети, которые связаны между собой, так что содержащие информацию пакеты могут передаваться между ними и среди них. Некоторыми узлами сети могут быть маршрутизаторы, которые распространяют пакет от одной линии передачи данных на другую, другими могут быть индивидуальные клиентские компьютеры, еще другими могут быть целые персональные сети (например, для заданных субъектов), и т.д.
Передача данных по Интернету между первым субъектом и вторым субъектом осуществляется посредством выполнения соединения между ними. Эти соединения иногда включают в себя сеансы. Сеансы устанавливаются для предоставления контекста для обмена данными передачи, который происходит по соответствующему соединению или соединениям. Установление сеанса обычно включает в себя односторонний или двусторонний обмен информацией между первым и вторым субъектами. Сложность и продолжительность фазы установления сеанса обычно изменяется, основываясь на типе сеанса.
Каждое установление сеанса использует обработку ресурсов и занимает период времени, который превращается в задержку, которая воспринимается пользователями. После фазы установления сеанса первый и второй субъекты передают данные в соответствии с установленным контекстом сеанса. Передача данных, а также соединение, может прерваться без завершения сеанса. В некоторых случаях такие существующие сеансы могут быть после этого продолжены, используя информацию, которая ранее была передана между двумя субъектами во время предыдущей фазы установления сеанса, когда такая информация сохраняется ими.
Другими словами, ранее переданная информация используется для продолжения существующего сеанса. Таким образом, продолжение существующего сеанса, в основном, относится к тем ситуациям, в которых одни и те же первые и вторые субъекты, которые ранее установили сеанс, пытаются продолжить его. Следовательно, проблемы могут возникать, когда первый субъект пытается продолжить существующий сеанс, если второй субъект неизвестен, и/или его трудно идентифицировать, или с ним трудно установить контакт.
Следовательно, существует потребность в схемах и/или методах, которые улучшают, упрощают и/или способствуют продолжению сеанса между двумя субъектами.
Раскрытие изобретения
В первой примерной реализации носителя один или несколько доступных для процессора носителей включают в себя исполняемые процессором инструкции, которые, когда они исполняются, ориентируют устройство на выполнение действий, включающих в себя: создание идентификатора сеанса, используя идентификатор хоста, и формулирование сообщения инициирования сеанса хоста с созданным идентификатором сеанса.
В первой примерной реализации устройства устройство включает в себя: по меньшей мере один процессор и один или несколько носителей, включающих в себя исполняемые процессором инструкции, которые могут исполняться по меньшей мере одним процессором, причем исполняемые процессором инструкции предназначены для того, чтобы ориентировать устройство на выполнение действий, включающих в себя: формулирование сообщения сеанса хоста с идентификатором сеанса, который создается зависимым от идентификатора хоста; и посылку сформулированного сообщения сеанса хоста, которое включает в себя идентификатор сеанса, от устройства.
Во второй примерной реализации носителя один или несколько доступных для процессора носителей включают в себя структуру данных, причем структура данных включает в себя: сообщение, включающее в себя поле идентификатора сеанса, по меньшей мере часть поля идентификатора сеанса, включающего в себя идентификатор хоста.
Во второй примерной реализации устройства устройство включает в себя: идентификатор хоста; и создатель идентификатора сеанса, который предназначен для создания идентификатора сеанса, использующего идентификатор хоста.
В примерной реализации сетевого шлюза сетевой шлюз может принимать относящееся к сеансу сообщение, имеющее поле идентификатора сеанса; сетевой шлюз предназначен для извлечения идентификатора хоста из значения, заполняющего поле идентификатора сеанса, и сетевой шлюз дополнительно предназначен для выполнения операции маршрутизации для относящегося к сеансу сообщения, используя идентификатор хоста.
В третьей примерной реализации носителя один или несколько доступных для процессора носителей включают в себя исполняемые процессором инструкции, которые, когда они исполняются, ориентируют аппарат на выполнение действий, включающих в себя: выяснение идентификатора хоста из поля идентификатора сеанса сообщения сеанса и маршрутизацию сообщения сеанса, зависимого от выясненного идентификатора хоста.
В примерной реализации аппарата аппарат включает в себя: по меньшей мере один процессор и один или несколько носителей, включающих в себя исполняемые процессором инструкции, которые могут исполняться по меньшей мере одним процессором, причем исполняемые процессором инструкции предназначены для того, чтобы ориентировать аппарат на выполнение действий, включающих в себя: прием сообщения сеанса, имеющего идентификатор сеанса, включающий в себя идентификатор хоста, и маршрутизацию сообщения сеанса, зависимого от идентификатора хоста.
В данном документе описываются другие реализации способа, системы, подхода, аппарата, интерфейса прикладного программирования (ИПП), устройства, носителя, процедуры, средства и т.д.
Краткое описание чертежей
Одинаковые позиции используются на чертежах для ссылки на аналогичные и/или соответствующие аспекты, отличительные признаки и компоненты.
Фиг.1 представляет собой примерную среду передачи данных, которая иллюстрирует первое соединение, которое устанавливает сеанс, и второе соединение, которое продолжает сеанс.
Фиг.2 иллюстрирует примерный подход предоставления и использования подсказок о маршруте с сообщениями сеанса.
Фиг.3 иллюстрирует примерное сообщение сеанса, которое может включать в себя подсказку о маршруте.
Фиг.4 представляет собой блок-схему последовательности операций, которая иллюстрирует примерный способ для предоставления подсказок о маршруте.
Фиг.5 иллюстрирует другой примерный подход предоставления и использования подсказок о маршруте с сообщениями сеанса.
Фиг.6А и 6В представляют собой примерные таблицы, которые иллюстрируют связывание идентификатора хоста и сетевого адреса для использования с подсказками о маршруте.
Фиг.7 представляет собой блок-схему последовательности операций, которая иллюстрирует примерный способ использования подсказок о маршруте.
Фиг.8 иллюстрирует примерную вычислительную операционную среду (или обычного устройства), которая может (полностью или частично) реализовывать по меньшей мере один аспект подсказок о маршруте, как описано в данном описании.
Осуществление изобретения
Фиг.1 представляет собой примерную среду 100 передачи данных, которая иллюстрирует первое соединение 114(1), которое устанавливает сеанс, и второе соединение 114(2), которое продолжает сеанс. Как изображено, примерная среда 100 передачи данных включает в себя многочисленные клиенты 102(1), 102(2) … 102(m) и многочисленные хосты 108(1), 108(2) … 108(n), а также сеть 104 и сетевой шлюз (NG) 106. Сетевой шлюз 106 служит в качестве шлюза между сетью 104 и интрасетью 110. Хосты 108 связаны с интрасетью 110.
В описываемой реализации клиенты 102(1), 102(2) … 102(m) соответствуют адресам «С1», «С2», … «Сm», соответственно. Каждым клиентом 102 может быть любое устройство, которое может выполнять передачу данных по сети, такое как компьютер, мобильная станция, развлекательный прибор, другая сеть и т.п. Клиенты 102 также могут соответствовать человеку или другому субъекту, который работает за клиентским устройством. Другими словами, клиенты 102 могут содержать логические клиенты, которыми являются пользователи и/или машины.
Сеть 104 может быть образована из одной или нескольких сетей, таких как Интернет, другая интрасеть, проводная или беспроводная телефонная сеть, беспроводная широкополосная сеть и т.п. Дополнительные примеры устройств для клиентов 102 и типов/топологий сети для сети 104 описываются ниже с ссылкой на фиг.8. Индивидуальные клиенты 102 могут передавать данные одному или нескольким хостам 108, и наоборот, по сети 104 через сетевой шлюз 106.
Хосты 108(1), 108(2) … 108(n) соответствуют адресам «Н1», «Н2» … Нn», соответственно. Адреса Н1, Н2 … Нn хостов присутствуют в интрасети 110. Хосты 108 обычно хостируют одно или несколько приложений (не показаны). Эти приложения (i) предоставляют службы для взаимодействия и/или передачи данных клиентам 102, (ii) предназначены для использования клиентами 102 и т.п. Только в качестве примера, такие приложения могут включать в себя программы доставки файлов, программы серверов/управления веб-сайтами, программы удаленного доступа, программы электронной почты, программы доступа к базе данных и т.п.
Каждый хост 108 может соответствовать серверу и/или устройству, многочисленным серверам и/или многочисленным устройствам, части сервера и/или части устройства, некоторой их комбинации и т.п. Конкретные примерные реализации для хостов 108 описаны подробно ниже с ссылкой на фиг.2, 4 и 5. Кроме того, дополнительные примерные реализации устройств для хостов 108 описаны ниже с ссылкой на фиг.8.
Сетевой шлюз 106 может быть вызван или локализован через сеть 104 по одному или нескольким адресам «NGN», и сетевой шлюз 106 также присутствует в интрасети 110 по меньшей мере с одним адресом «NGI». Передачи данных от клиентов 102 (или других узлов), которые направляются по адресу NGN сетевого шлюза 106, принимаются сетевым шлюзом 106 и после этого маршрутизируются на хост 108 из хостов 108(1), 108(2) … 108(n). Сетевой шлюз 106 состоит из одного или нескольких элементов сетевого шлюза (не показаны отдельно на фиг.1). Каждый элемент 106 сетевого шлюза может содержать все или часть из маршрутизатора, модуля-посредника, выравнивателя нагрузки, устройства брандмауэра, некоторой их комбинации и т.п. Примерные реализации устройства общего назначения для элементов 106 сетевого шлюза также описываются ниже с ссылкой на фиг.8.
В общих чертах, соединения 114 выполняются между клиентами 102 и хостами 108 по сети 104 через сетевой шлюз 106. Клиенты 102 обычно инициируют соединения 114, но хосты 108 могут, альтернативно, быть инициаторами. Конкретно в данном примере, клиент 102(1) инициирует соединение 114(1) с хостом 108(2). Однако клиент 102(1) не осведомлен об адресе Н2 хоста 108(2). Вместо этого клиент 102(1) направляет соединение (например пакет, запрашивающий соединение) на адрес NGN сетевого шлюза 106.
Сетевой шлюз 106 затем выполняет операцию 116(1) маршрутизации по соединению 114(1) в соответствии с некоторой политикой по умолчанию (например, правилом). В результате сетевой шлюз 106 маршрутизирует соединение 114(1) по интрасети 110 на хост 108(2) для данного примера. В основном, сетевой шлюз 106 не может просто послать пакеты соединения 114 от клиента 102(1) «как есть» хосту 108(2) по сетевому адресу Н2, так как пакеты по назначению адресованы на адрес NGN сетевого шлюза 106. Вместо этого сетевой шлюз 106 обычно применяет один или несколько из следующих примерных вариантов для маршрутизации пакетов по интрасети 110: преобразование сетевых адресов (ПСА), половинное ПСА, туннелирование, некоторые их комбинации и т.п.
В среде протокола управления передачей/протокола Интернета (ПУП/ПИ), ПСА выполняется посредством (i) перезаписи адреса С1 ПИ получателя (т.е. клиента 102(1)) и номера порта адресом NGI ПИ и сгенерированным ПСА номером порта сетевого шлюза 106 и (ii) перезаписи адреса NGN ПИ получателя адресом Н2 ПИ хоста 108(2). Половинное ПСА выполняется посредством перезаписи адреса NGN ПИ получателя адресом Н2 ПИ хоста 108(2), так что сохраняются адрес С1 ПИ отправителя и номер порта. Туннелирование выполняется посредством инкапсуляции каждого пакета в новый пакет ПИ, который адресуется на адрес Н2 хоста 108(2), и передачи инкапсулированных пакетов от сетевого шлюза 106 хосту 108(2), где они могут деинкапсулироваться.
Во время соединения 114(1) сеанс устанавливается между клиентом 102(1) и хостом 108(2). Для установленного сеанса соединения 114(1) контекст 112 сеанса создается на хосте 108(2). Аналогичный, подобный и/или эквивалентный контекст сеанса (не показан) также обычно создается на клиенте 102(1). Контекст 112 сеанса способствует передаче данных между клиентом 102(1) и хостом 108(2).
Таким образом, соединение 114(1) может быть или может установить на нем любой один или несколько из многих различных типов сеансов. Примерные типы сеансов включают в себя: (i) сеанс уровня защищенных сокетов (УЗС); (ii) сеанс безопасности транспортного уровня (БТУ); (iii) сеанс защищенного протокола Интернета (ЗПИ); (iv) основанный на куки-файлах сеанс протокола передачи гипертекста (ППГТ); (v) сеанс протокола туннелирования между узлами (ПТМУ); (vi) сеанс ЗПИ/протокола туннелирования на втором уровне; (vii) частный сеанс; (viii) сеанс терминального сервера, (ix) определяемый администратором сеанс; (x) и т.п. Эти примеры различных типов сеансов также освещают, как могут устанавливаться и использоваться уровни сеансов.
Содержимое контекста 112 сеанса может изменяться, по меньшей мере частично, в зависимости от типа сеанса, для которого он был создан. Например, конкретный контекст 112 сеанса может включать в себя одно или несколько из следующего: кортеж из 4 элементов ПУП (например, для сеансов, установленных соединением ПУП); идентификатор сеанса; расположение одной или нескольких записей базы данных, которые сопровождают тупиковое состояние для соответствующего сеанса; открытый ключ клиента 102(1), который предоставляется хосту 108(2); согласованный секретный криптографический ключ(и); другой относящийся к безопасности параметр(ы); и т.п. Кортеж из 4 элементов ПУП включает в себя адрес ПИ отправителя, порт ПУП отправителя, адрес ПИ получателя и порт ПУП получателя. В качестве примера для сеанса УЗС по современным стандартам, длина идентификатора сеанса может быть до 32 байтов.
Как описано выше, после выполнения соединения 114(1) устанавливается сеанс между клиентом 102(1) и хостом 108(2) в текущем примере. Клиент 102(1), более конкретно, устанавливает сеанс с по меньшей мере одним приложением, которое является резидентным и/или выполняющимся на хосте 108(2). Однако, для ясности, такие приложения, в основном, могут включаться при ссылке на хост 108(2).
Фаза установления сеанса создает или приводит к контексту 112 сеанса. Контекст 112 сеанса предоставляет контекст для обмена данными при передаче между клиентом 102(1) и хостом 108(2). Контекст 112 сеанса может включать в себя информацию, которая, фактически, является критической, просто полезной или иным образом относящейся так или иначе к этому обмену(ам) данными при передаче.
В связи с тем, что клиент 102(1) может быть логическим клиентом, контекст 112 сеанса может относиться к обменам данными при передаче между (i) определенным устройством и/или определенным пользователем устройства и (ii) хостом 108(2). Следовательно, контекст 112 сеанса, который ассоциируется с клиентом 102(1) пользователя, может продолжаться быть ассоциированным с ним даже тогда, когда клиент 102(1) пользователя обращается к хостам 108 с различных устройств. Устройства могут отличаться на локальном уровне для клиента 102(1), на уровне сети 104 и т.п. Примеры таких различных сценариев устройств включают в себя сценарий модуля-посредника (например, сценарии некоторых провайдеров услуг Интернета (ПУИ)), сценарий сеанса терминального сервера и т.п.
Контекст 112 сеанса хранится на хосте 108(2) и/или может быть доступен с него. Когда соединение 114(1) завершается или иным образом прерывается, контекст 112 сеанса не может снова использоваться. В противоположность этому контекст 112 сеанса может быть снова полезным, если клиент 102(1) предпринимает попытку инициировать другое соединение с хостами 108 для или этого же, или подобного, или связанного с ним и т.п. сеанса. Если это другое соединение не маршрутизируется на этот же хост 108(2), который хранит контекст 112 сеанса, тогда клиенту 102(1) необходимо установить новый сеанс, что может требовать много времени, быть интенсивным в отношении данных/обработки и/или разочаровывающим для пользователей (особенно для пользователя, соответствующего клиенту 102(1)). Без некоторого механизма сохранения сходства сеансов на сетевом шлюзе 106 обычно нет вероятности большей, чем случайность, что второе соединение также маршрутизируется на хост 108(2).
Механизм или функциональная возможность сохранения сходства сеансов предназначена для маршрутизации соединений (включая запросы пакетного уровня и логического уровня) обратно на хост 108, который ассоциируется с контекстом 112 сеанса для существующего сеанса, который должен быть продолжен с соединением. Например, функциональная возможность сохранения сходства сеансов предпринимает попытку сделать возможным, чтобы соединение 114(2) для клиента 102(1) маршрутизировалось обратно на хост 108(2), с которым ассоциируется контекст 112 сеанса. Такие механизмы сохранения сходства сеансов могут быть реализованы в соответствии с одной или несколькими примерными стратегиями. Хотя эти примерные стратегии, в основном, применимы к сетевым шлюзам 106, они описываются с точки зрения реализации выравнивания нагрузки.
Первая стратегия относится к выравниванию нагрузки с режимом «с приклеиванием», в котором большинство, если не все, запросы, которые поступают с данного адреса, например, ПИ, маршрутизируются на единственный хост 108. Однако эта стратегия основывается на предположении, что данный адрес ПИ представляет единственного клиента 102, что, очевидно, является неверным для модулей-посредников. Модуль-посредник выглядит как единственный адрес ПИ для выравнивателя нагрузки, но он, фактически, представляет запросы для многих, потенциально тысяч клиентов 102. В результате маршрутизация всех этих запросов на единственный хост 108 может привести к очень неравномерному выравниванию нагрузки между/среди устройств. Обычно устройствам, которые принимают входящие запросы от модуля-посредника, последовательно назначаются значительно большее количество клиентов 102. Кроме того, запросы от клиента 102, который имеет изменяющиеся адреса ПИ, также маршрутизируются неправильно, используя эту первую стратегию. Адреса ПИ могут изменяться в мобильной среде, когда адреса временно распределяются из пула адресов ПИ, и т.п.
Вторая стратегия включает в себя применение эвристики выравнивания нагрузки, которая использует идентификатор сеанса. Запросы на продолжение существующего сеанса маршрутизируются на хост 108, который ранее установил (например, согласовал) этот сеанс, используя определенный индивидуальный идентификатор сеанса. При работе, после того как конкретный сеанс будет установлен между конкретным клиентом 102 и конкретным хостом 108, хранится отображение, которое связывает конкретный хост 108 с этим конкретным сеансом, причем сеанс идентифицируется конкретным идентификатором сеанса. Когда принимается запрос, включающий в себя конкретный идентификатор сеанса от этого конкретного клиента 102, запрос может маршрутизироваться обратно на этот конкретный хост 108, используя отображение. Эта вторая стратегия, поэтому делает возможным сохранение сходства сеансов.
Однако вторая стратегия вызывает ряд относительных недостатков с точки зрения эффективности. Во-первых, выравниватель нагрузки сопровождает таблицу этих отображений между идентификаторами сеанса и хостами 108. Размер этой таблицы может быть огромным, так как имеется отдельная запись для каждого существующего сеанса. Например, если каждый хост 108 кэширует 10 000 сеансов, и существует 500 хостов 108, таблица использует 5 миллионов записей для маршрутизации запросов для этих сеансов с оптимальной эффективностью. Во-вторых, для каждого вновь установленного сеанса выравниватель нагрузки контролирует фазу установления сеанса до тех пор, пока не будет обнаружен идентификатор сеанса, и не будет добавлена запись в таблицу. В-третьих, каждый раз, когда принимается запрос на возобновление сеанса, выравниватель нагрузки обращается к (вероятно очень большой) таблице для выполнения маршрутизации.
В-четвертых, так как сеансы имеют время существования и активно подвергаются старению или удаляются из кэшей хоста 108 вследствие переполнения, таблица выравнивателя нагрузки также реализует некоторый механизм старения для отражения того, что индивидуальные хосты 108 выполняют или, как ожидается, будут выполнять со своими собственными кэшами. Если хост 108 и механизмы старения выравнивателя нагрузки не синхронизированы, выравниватель нагрузки может преждевременно удалить информацию о состоянии для сеансов, которые все еще являются действительными на хосте 108, или, наоборот, он может сохранять информацию о состоянии для сеансов, которые больше не присутствуют ни на каком хосте 108.
Третья стратегия для функциональной возможности сохранения сходства сеансов может достигать сохранения сходства сеансов на сетевом шлюзе 106 посредством селективного создания/определения идентификаторов сеанса для сеансов, которые вновь устанавливаются и без таблицы, которая требует записи для каждого индивидуального сеанса. При определении идентификаторов сеанса хосты 108 внедряют в них идентификатор хоста.
Сетевой шлюз 106 извлекает идентификатор хоста из идентификатора сеанса и маршрутизирует трафик для сеанса, для которого идентификатор сеанса назначается зависимым от идентификатора хоста. Третья стратегия, поэтому, может применять подход относительно без сохранения информации, который маршрутизирует запросы продолжения сеанса, используя таблицу с ограниченным количеством записей (например, количество записей, которое равно количеству хостов 108), и/или который маршрутизирует запросы продолжения сеанса без использования таблицы, которая имеет такие записи на каждый сеанс. Аспекты этой третьей стратегии описываются подробно в этом описании.
В примере среды 100 передачи данных, после того как будет завершена фаза установления сеанса в качестве части соединения 114(1), создается контекст 112 сеанса на хосте 108(2). После этого прерывается соединение 114(1). Когда поступает запрос на соединение 114(2) на сетевой шлюз 106, на нем выполняется операция 116(2) маршрутизации. Это соединение 114(2), как указывается, является предназначенным для продолжения раннее установленного сеанса, который соответствует контексту 112 сеанса посредством идентификатора сеанса, назначенного для него. Идентификатор сеанса включает в себя идентификатор хоста 108(2) в соответствии с третьей стратегией. Использование идентификатора хоста для хоста 108(2), который извлекается из идентификатора сеанса запроса продолжения сеанса, соединение 114(2) маршрутизируется операцией 116(2) маршрутизации на хост 108(2), который ассоциируется с контекстом 112 сеанса.
Элементы 114(1) и 114(2) также могут представлять относящиеся к сеансу сообщения (например, запросы), которые происходят во время единственного соединения, а также те, которые происходят во время двух или более соединений. Кроме того, определенные передачи данных между клиентами 102 и хостами 108 описываются в данном описании как сообщения. Сообщения обычно распространяются от клиентов 102 на хосты 108, и, наоборот, в виде одного или нескольких пакетов. Сообщения клиентов посылаются от клиентов 102, и сообщения хоста посылаются от хостов 108. Сообщения сеансов представляют собой те сообщения, которые относятся к сеансам (например, те, которые относятся к установлению, продолжению/возобновлению, разрыву и т.д. сеансов). Примерное сообщение сеанса описывается подробно ниже с ссылкой на фиг.3.
Сообщения инициирования сеанса представляют собой сообщения, посылаемые клиентами 102 и/или хостами 108, которые относятся к инициированию сеанса. Сообщения продолжения сеанса представляют собой сообщения, посылаемые клиентами 102 и/или хостами 108, которые относятся к продолжению существующего сеанса. Сообщения инициирования сеанса и сообщения продолжения сеанса могут иметь явно различные форматы, подобные форматы, идентичные форматы и т.п. Однако в описываемой реализации сообщения инициирования сеанса и сообщения продолжения сеанса имеют по меньшей мере подобные форматы, в которых присутствие идентификатора сеанса указывает, что сообщение сеанса клиента представляет собой сообщение продолжения сеанса клиента, и отсутствие идентификатора сеанса указывает, что сообщение сеанса клиента представляет собой сообщение инициирования сеанса клиента.
Хотя описание в данном документе не настолько ограничено, реализации, описанные ниже, время от времени придают большое значение или концентрируются на реализациях выравнивания нагрузки для сетевого шлюза 106. Также, хотя применимы другие протоколы и комбинации протоколов, и они могут использоваться альтернативно, описание ниже использует, главным образом, соединения ПУП/ПИ и сеансы УЗС/БТУ для ясности.
В качестве примера, но не ограничения, сообщением инициирования сеанса клиента или сообщением продолжения сеанса клиента может быть сообщение «Client Hello» согласно Спецификации протокола БТУ версии 1.0 (январь 1999 г.). Если сообщение Client Hello включает в себя идентификатор сеанса, тогда оно может быть сообщением продолжения сеанса клиента, иначе оно может быть сообщением инициирования сеанса клиента. Аналогично, сообщением инициирования сеанса хоста или сообщением продолжения сеанса хоста может быть сообщение «Server Hello» согласно Спецификации протокола БТУ версии 1.0. Если сообщение Server Hello включает в себя идентификатор сеанса, представленный клиентом в сообщении Client Hello, на который отвечает сообщение Server Hello, тогда оно может быть сообщением продолжения сеанса хоста. Если сообщение Server Hello отвечает на сообщение Client Hello, которое не включает в себя идентификатор сеанса, тогда оно может быть сообщением инициирования сеанса хоста. Создание идентификатора сеанса для и формулирование такого сообщения инициирования сеанса хоста описывается подробно ниже.
Фиг.2 иллюстрирует примерный подход для предоставления и использования подсказок о маршруте с сообщениями сеансов. Сообщения 202, 204 и 206 сеансов посылаются от клиента 102 хосту 108, или, наоборот, по сети 104 через элемент 106 сетевого шлюза. Элемент 106 сетевого шлюза представляет элемент сетевого шлюза 106 (по фиг.1). Хотя каждое из сообщений 202, 204 и 206 сеансов показано как маршрутизируемое элементом 106 сетевого шлюза, каждое индивидуальное сообщение сеанса может, альтернативно, маршрутизироваться различными индивидуальными элементами сетевого шлюза 106.
Как изображено, хост 108 включает в себя обработчик 208 сообщений, который обрабатывает сообщения, которые посылаются клиентам 102 и принимаются от них. Обработчик 208 сообщений включает в себя часть 208IC обработчика входящих сообщений и часть 208OG обработчика исходящих сообщений. Хост 108 ассоциируется с идентификатором 214 хоста, который хранится на хосте 108 или иным образом доступен с него. Примеры идентификатора 214 хоста описываются подробно ниже с ссылкой на фиг.3. Хост 108 также включает в себя создатель 212 идентификаторов сеанса, который создает идентификаторы сеанса (например, идентификатор 210 сеанса), используя идентификатор 214 хоста.
В описываемой реализации клиент 102 имеет адрес «С», и элемент 106 сетевого шлюза имеет адреса NGN и NGI, причем адреса С и NGN расположены в сети 104. Хост 108 имеет адрес «Н», который располагается в интрасети 110 вместе с адресом NGI. Сообщения сеанса от клиента 102 принимаются по сети 104 элементом 106 сетевого шлюза. Элемент 106 сетевого шлюза затем маршрутизирует эти сообщения сеанса вперед на хост 108 по интрасети 110 при помощи операций 216 маршрутизации. На обратном пути сообщения сеанса от хоста 108 посылаются/передаются по интрасети 110 на элемент 106 сетевого шлюза, который маршрутизирует их обратно клиенту 102 при помощи операций 216 маршрутизации.
Конкретно, клиент 102 посылает сообщение 202 инициирования сеанса (СИС) клиента по сети 104 элементу 106 сетевого шлюза. Сообщение 202 инициирования сеанса клиента не включает в себя идентификатор сеанса, так как оно содержит запрос нового сеанса. Так как сообщение 202 инициирования сеанса клиента не предназначено для существующего сеанса, элемент 106 сетевого шлюза маршрутизирует сообщение 202 инициирования сеанса клиента на хост 108, используя общую политику в операции 216(А) маршрутизации. Например, элемент 106 сетевого шлюза может маршрутизировать сообщение 202 инициирования сеанса клиента в соответствии с текущей и/или имеющей отношение политикой выравнивания нагрузки (например, циклическое распределение входящих запросов нового сеанса).
Хост 108 принимает сообщение 202 инициирования сеанса клиента по интрасети 110 частью 208IC обработчика входящих сообщений. Без идентификатора сеанса часть 208 IC обработчика входящих сообщений распознает сообщение 202 инициирования сеанса клиента как предназначенное для нового сеанса. Создатель 212 идентификатора сеанса активизируется для создания идентификатора нового сеанса для запрашиваемого нового сеанса. Создатель 212 идентификатора сеанса выясняет/извлекает идентификатор 214 хоста.
Создатель 212 идентификатора сеанса использует идентификатор 214 хоста для создания идентификатора 210 сеанса. Например, создатель 212 идентификатора сеанса вставляет идентификатор 214 хоста в идентификатор 210 сеанса. Идентификатор 210 сеанса также может включать в себя другие значения, кроме значения идентификатора 214 хоста. Могут создаваться дополнительные значения идентификатора 210 сеанса, используя любой один или несколько методов. Такие методы включают в себя, но не ограничиваются ими, случайно выбранное значение, значение из счетчика с накоплением значений, связанное с безопасностью значение, хешированное значение, некоторую их комбинацию и т.п.
В описываемой реализации первая часть (т.е. идентификатор 214 хоста) идентификатора 210 сеанса отводится для идентификации хоста 108, который в данный момент владеет соответствующим сеансом. Эта первая часть является уникальной среди хостов 108 данного кластера (т.е. никакой хост 108 не использует совместно свой идентификатор 214 хоста ни с каким любым другим хостом 108 в одном и том же кластере). Первой частью может быть адрес ПИ, принадлежащий хосту 108, целое число, которое назначается администратором, и т.п. Вторая часть идентификатора 210 сеанса может повышать уникальность (и невозможность прогнозирования) идентификатора 210 сеанса. Множество методов могут использоваться для этой второй части, такой как комбинация использования глобального счетчика, который получает приращение один раз для каждого нового сеанса (с опрокидыванием в 0), и использования псевдослучайного метода и/или метода хеширования.
Создатель 212 идентификатора сеанса предоставляет идентификатор 210 сеанса обработчику 208 сообщений. Часть 208OG обработчика исходящих сообщений готовит/формулирует сообщение 204 инициирования сеанса хоста, которое включает в себя идентификатор 210 сеанса. Сообщение 204 инициирования сеанса хоста посылается по интрасети 110 на элемент 106 сетевого шлюза. Элемент 106 сетевого шлюза затем использует операцию 216(В) маршрутизации по обратному маршруту для посылки сообщения 204 инициирования сеанса хоста по сети 104 клиенту 102. Хотя это не изображено, сообщение 204 инициирования сеанса хоста может, альтернативно, маршрутизироваться обратно по пути, который не включает в себя элемент 106 сетевого шлюза, особенно ввиду того, что элемент 106 сетевого шлюза может маршрутизировать последующие сообщения клиента без собирания информации о состоянии для каждого сеанса.
Клиент 102 извлекает идентификатор 210 сеанса из сообщения 204 инициирования сеанса хоста и сохраняет идентификатор 210 сеанса для возможного будущего использования для продолжения установленного сеанса (и для любого текущего использования с установленным сеансом). В некоторый момент прерывается фактическое использование установленного сеанса (например, соединение завершается). Чтобы продолжить установленный и существующий сеанс с хостом 108, клиент 102 формулирует сообщение 206 продолжения сеанса (СПС) клиента. Клиент 102 включает сохраненный идентификатор 210 сеанса в сообщение 206 продолжения сеанса клиента. Сообщение 206 продолжения сеанса клиента затем посылается по сети 104 от клиента 102 элементу 106 сетевого шлюза.
Когда элемент 106 сетевого шлюза принимает сообщение 206 продолжения сеанса клиента, он обнаруживает, что клиент 102 пытается продолжить существующий сеанс, что указывается посредством включенного идентификатора 210 сеанса. В операции 216(С) маршрутизации элемент 106 сетевого шлюза маршрутизирует сообщение 206 продолжения сеанса клиента, используя идентификатор 210 сеанса. Более конкретно, элемент 106 сетевого шлюза маршрутизирует сообщение 206 продолжения сеанса клиента, используя идентификатор 214 хоста, который составляет часть идентификатора 210 сеанса и извлекается из него.
Идентификатор 214 хоста идентифицирует хост 108, с которым он ассоциируется. Следовательно, элемент 106 сетевого шлюза маршрутизирует сообщение 206 продолжения сеанса клиента в операции 216(С) маршрутизации, используя идентификацию хоста 108, указываемую посредством идентификатора 214 хоста. Сообщение 206 продолжения сеанса клиента, поэтому, посылается по интрасети 110 от элемента 106 сетевого шлюза хосту 108. На хосте 108 часть 208IC обработчика входящих сообщений принимает сообщение 206 продолжения сеанса клиента и может начинать продолжение ранее установленного сеанса, используя хранимый контекст сеанса (например, контекст 112 сеанса, как показано на фиг.1).
Идентификатор 214 хоста может идентифицировать хост 108, с которым он ассоциируется, многочисленным образом. Например, идентификатор 214 хоста может содержать сетевой адрес Н (интрасети) хоста 108. В этом случае элемент 106 сетевого шлюза может маршрутизировать сообщение 206 продолжения сеанса клиента на хост 108 без использования связанной с сеансом таблицы или таблицы идентификаторов хоста. Другими словами, сообщение 206 продолжения сеанса клиента может продвигаться к хосту 108, используя идентификатор 214 хоста, или по меньшей мере часть его, в качестве адреса получателя одного или нескольких пакетов, которые посылаются в интрасеть 110 для сообщения 206 продолжения сеанса клиента.
Альтернативно, идентификатор 214 хоста может отображаться на адрес Н для хоста 108. Хотя такой метод отображения включает в себя таблицу (или вычисление), количество записей «n» в таблице может быть равно количеству хостов 108 в кластере серверов, в интрасети 110, в веб-ферме и т. п. Таким образом, эта таблица имеет ограниченное количество записей и не включает в себя информацию о состоянии для каждого сеанса. С ссылкой например, используемый выше, если каждый хост 108 кэширует 10 000 сеансов, и имеется 500 хостов 108, таблица может использовать 500 записей (вместо 5 миллионов) для эффективной маршрутизации запросов для этих сеансов.
Таблица ниже представляет собой примерную структуру данных связывания, которая связывает идентификаторы 214 хоста с хостами 108 посредством адресов хостов 108.
Структура данных для отображения идентификаторов 214 хоста на адреса Н хоста
Номер записи Идентификатор [214] хоста Адрес [H] хоста
1 идентификатор 214(1) хоста адрес Н1 хоста
2 идентификатор 214(2) хоста адрес Н2 хоста
: : :
n идентификатор 214(n) хоста адрес Hn хоста
В работе элемент 106 сетевого шлюза извлекает идентификатор 214(#) хоста из идентификатора 210 сеанса сообщения 206 продолжения сеанса клиента, принимаемого от клиента 102. Элемент 106 сетевого шлюза затем обращается к структуре данных связывания, такой как в таблице 1, используя идентификатор 214(#) хоста, для выяснения адреса H# хоста, который связан с ним. Этот адрес H# хоста соответствует адресу хоста 108(#) в интрасети 110 и используется в качестве адреса получателя для маршрутизации сообщения 206 продолжения сеанса клиента на хост 108(#). Примерные таблицы связывания идентификатора хоста с сетевым адресом описываются подробно ниже с ссылкой на фиг.6А и 6В.
Фиг.3 иллюстрирует примерное сообщение 302 сеанса, которое может включать в себя подсказку о маршруте. Сообщение 302 сеанса представляет собой сообщение, которое относится к одному или нескольким сеансам. Как изображено, сообщение 302 сеанса включает в себя многочисленные поля. Эти многочисленные поля включают в себя идентификатор 210 сеанса и одно или несколько других полей, представленных другим полем(ями) 304.
Идентификатор 210 сеанса включает в себя по меньшей мере один идентификатор 214 хоста. Идентификатор 214 хоста включает в себя идентификатор 306 устройства и, необязательно, идентификатор 308 приложения. Идентификатор 306 устройства может содержать сетевой адрес 310 или ключ 312(А). Альтернативно, идентификатор 214 хоста может включать в себя ключ 312(В).
В описываемой реализации формат или форматы сообщений 302 сеанса определяются стандартом или протоколом сети или передачи данных, таким как УЗС/БТУ. Идентификатор 210 сеанса может располагаться где угодно в сообщении 302 сеанса, главным образом, как определяется применяемым стандартом или протоколом. Другие поля 304 могут включать в себя адрес отправителя и/или получателя, общую информацию заголовка, информацию о типе защиты, другую относящуюся к сеансу информацию, данные, некоторую их комбинацию и т. п. В качестве примера, сообщением 302 сеанса может быть сообщение Client Hello или Server Hello, как определено стандартом протокола БТУ версии 1.0, и идентификатор 210 сеанса может соответствовать полю «SessionID» (идентификатор сеанса) любого сообщения БТУ Hello. Примером поля 304, которое включает в себя информацию о типе защиты, является поле шифра, которое указывает, какие дополнительные криптографические средства поддерживаются участником сеанса (например, клиентом или хостом), который формулирует сообщение 302 сеанса.
Идентификатор 210 сеанса включает в себя идентификатор 214 хоста и, необязательно, другие значения, которые вместе формируют идентификатор сеанса. Этот идентификатор сеанса заполняет поле идентификатора 210 сеанса сообщения 302 сеанса. Идентификатор 214 хоста может располагаться в любом месте в поле для идентификатора 210 сеанса, включая разделение, рассредоточение и/или распространение по полю идентификатора 210 сеанса.
В описываемой реализации для легкости извлечения подполе идентификатора 210 сеанса, которое соответствует идентификатору 214 хоста, реализуется в виде непрерывной последовательности байтов. Непрерывная последовательность байтов размещается с фиксированным смещением от старшего байта идентификатора 210 сеанса. Однако фиксированное смещение, вместо этого, может быть от младшего байта.
Для дополнительной гибкости идентификатор 214 хоста может конфигурироваться внешним образом, вместо выбора, например, компонентом УЗС/БТУ. Например, идентификатор 214 хоста может конфигурироваться внешним образом посредством считывания в качестве значения из раздела реестра. Как отмечено выше, администратор может определить идентификаторы 214 хоста, например, посредством установки значения раздела реестра или при помощи некоторого другого механизма.
Идентификатор 214 хоста, альтернативно, может встраиваться в поле, отличное от поля идентификатора 210 сеанса. Например, может использоваться конкретное поле, которое посылается клиенту 102 и возвращается неизмененным от этого клиента 102, когда он запрашивает возобновление существующего сеанса. Эта альтернатива особенно применима, если формат сообщения и лежащий в основе протокол позволяют или требуют, чтобы хост 108 с требуемым контекстом 112 сеанса создавал/выбирал значение для этого конкретного поля. Для этого альтернативного решения элемент 106 сетевого шлюза выполняет операции 216 маршрутизации, используя по меньшей мере часть содержимого этого конкретного поля.
Идентификатор 214 хоста включает в себя идентификатор 306 устройства и также может включать в себя идентификатор 308 приложения. Идентификатор 306 устройства соответствует устройству хоста 108/для хоста 108, с которым ассоциируется идентификатор 214 хоста. Как изображено, идентификатор 306 устройства содержит сетевой адрес 310 или ключ 312(А), который идентифицирует устройство хоста 108.
Сетевой адрес 310 представляет собой сетевой адрес в интрасети 110 устройства для хоста 108. Таким образом, если идентификатор 306 устройства содержит сетевой адрес 310, элемент 106 сетевого шлюза может вставлять идентификатор 306 устройства в поле получателя для пакета или пакетов, продвигаемых хосту 108.
Ключ 312(А) представляет собой значение, которое отображается на сетевой адрес в интрасети 110 устройства для хоста 108. Это отображение может осуществляться посредством поиска сетевого адреса в таблице, посредством выполнения вычисления (например, подчиняясь формуле, реализуя алгоритм и т.д.) и т.п. Например, ключ 312(А) может быть связан с адресом Н хоста в структуре данных, такой как та, которая описана выше с ссылкой на таблицу 1. Примерная таблица, в которой ключи 312(А) связаны с сетевыми адресами 310, описана подробно ниже с ссылкой на фиг.6А.
Когда идентификатор 214 хоста включает в себя идентификатор 306 устройства и идентификатор 308 приложения, идентификатор 214 хоста содержит конечную точку приложения. Идентификатор 308 приложения идентифицирует определенное приложение на устройстве хоста, которое идентифицируется идентификатором 306 устройства. Таким образом, идентификатор 214 хоста, который включает в себя идентификатор 306 устройства и идентификатор 308 приложения, может идентифицировать определенное приложение из числа многочисленных приложений, которые находятся на одном хосте 108 и/или которые реплицируются по многочисленным хостам 108.
Идентификатор 214 хоста, который включает в себя идентификатор 306 устройства, но не включает в себя идентификатор 308 приложения, также может содержать конечную точку приложения. Например, это особенно вероятно, когда устройство имеет только одно приложение, когда устройство является многосетевым, когда сетевая интерфейсная плата (СИП) устройства имеет два адреса ПИ и т.п. В любом случае идентификатор 214 хоста служит для идентификации конкретного приложения, а также конкретного хоста 108. Следовательно, маршрутизация сообщения 206 продолжения сеанса клиента может быстро выполняться к требуемому приложению, которое имеет сходство сеансов с запрашивающим клиентом 102.
Идентификатор 214 хоста, альтернативно, может включать в себя ключ 312(В). Ключ 312(В) представляет собой значение, которое отображается (i) на сетевой адрес в интрасети 110 устройства для хоста 108 и (ii) на определенное приложение на нем. Такое отображение делает возможным отображать ключ 312(В) на конечную точку приложения без использования отдельного идентификатора 308 приложения. Это отображение может осуществляться посредством поиска пары сетевого адреса/идентификатора приложения в таблице, посредством выполнения вычисления (например, подчиняясь формуле, реализуя алгоритм и т.д.) и т.п. Например, ключ 312(В) может быть связан с сетевым адресом 310 и идентификатором 308 приложения в структуре данных. Примерная таблица, в которой ключи 312(В) связаны с сетевыми адресами 310 и идентификаторами 308 приложения, описывается подробно ниже с ссылкой на фиг.6В.
В другой альтернативной реализации код может встраиваться в поле для идентификатора 210 сеанса сообщения 302 сеанса. Код может занимать часть или все поле идентификатора 210 сеанса. Код может использоваться для передачи информации (например, данных, команд и т.д.) от хоста 108 элементу 106 сетевого шлюза и/или клиенту 102. Поле идентификатора сеанса сообщения 302 сеанса может заполняться самим кодом и/или идентификатором 210 сеанса, который создается с использованием кода. Клиент 102 и/или элемент 106 сетевого шлюза может извлекать код и использовать переданную информацию как есть, после отображения (например, поиска, вычисления и т.д.) кода и т.п.
Фиг.4 представляет собой блок-схему 400 последовательности операций, которая иллюстрирует примерный способ для предоставления подсказок о маршруте. Блок-схема 400 последовательности операций включает в себя семь блоков 402-414. Хотя действия блок-схемы 400 последовательности операций могут выполняться в других средах и с многочисленными архитектурами аппаратных средств и схемами программного обеспечения, фиг.1-3 (и 5) используются, в частности, для иллюстрации некоторых аспектов и примеров способа. Например, хост 108 может выполнять описанные действия.
В блоке 402 принимается сообщение сеанса клиента. Например, хост 108 может принимать сообщение 202 или 206 сеанса клиента (например, частью 208IC обработчика входящих сообщений обработчика 208 сообщений) от клиента 102. В блоке 404 определяется, включает ли принятое сообщение сеанса клиента идентификатор сеанса. Например, принятое сообщение 202 или 206 сеанса клиента (например, в формате, таком как сообщение 302 сеанса) может инспектироваться с целью определения, имеет ли оно идентификатор 210 сеанса в поле идентификатора сеанса.
Если принятое сообщение сеанса клиента включает в себя идентификатор 210 сеанса, тогда принятое сообщение сеанса клиента является сообщением 206 продолжения сеанса (СПС) клиента, и способ продолжается в блоке 412. Если, с другой стороны, принятое сообщение сеанса клиента не включает в себя идентификатор 210 сеанса, тогда принятое сообщение сеанса клиента является сообщением 202 инициирования сеанса (СИС) клиента, и способ продолжается в блоке 406.
В блоке 406 создается идентификатор сеанса с идентификатором хоста. Например, идентификатор 214 хоста для хоста 108 используется создателем 212 идентификатора сеанса для создания идентификатора 210 сеанса. Создатель 212 идентификатора сеанса может вставить идентификатор 214 хоста в идентификатор 210 сеанса вместе с его другими значениями.
В блоке 408 сообщение инициирования сеанса хоста формулируется с созданным идентификатором сеанса. Например, часть 208OG обработчика исходящих сообщений может формулировать (например, используя формат, такой как формат сообщения 302 сеанса) сообщение 204 инициирования сеанса хоста, которое заполняется идентификатором 210 сеанса, который включает в себя идентификатор 214 хоста. В блоке 410 посылается сообщение инициирования сеанса хоста. Например, хост 108 может передавать сообщение 204 инициирования сеанса хоста клиенту 102 по сети 104 при помощи элемента 106 сетевого шлюза.
Если, с другой стороны, определяется (в блоке 404), что принятое сообщение сеанса клиента не включает в себя идентификатор сеанса, тогда сообщение продолжения сеанса хоста формулируется с принятым идентификатором сеанса в блоке 412. Например, часть 208OG обработчика исходящих сообщений может формулировать (например, используя формат, такой как формат сообщения 302 сеанса) сообщение продолжения сеанса хоста (не показано конкретно на фиг.2), которое заполняется принятым идентификатором 210 сеанса (который может включать в себя ранее встроенный идентификатор 214 хоста). В блоке 414 посылается сообщение продолжения сеанса хоста. Например, хост 108 может передавать сообщение продолжения сеанса хоста клиенту 102 по сети 104 при помощи элемента 106 сетевого шлюза.
Фиг.5 иллюстрирует другой примерный подход к предоставлению и использованию подсказок о маршруте с сообщениями сеанса. Этот примерный подход сосредотачивается на использовании подсказок о маршруте на элементе 106 сетевого шлюза. Как изображено, клиенты 102(1), 102(2) … 102(m) представляют запросы, которые адресуются элементу 106 сетевого шлюза по NGN по сети 104.
Элемент 106 сетевого шлюза маршрутизирует эти запросы хостам 108(1), 108(2) … 108(n). Каждый хост 108(1), 108(2) … 108(n) ассоциируется с соответствующим идентификатором 214(1), 214(2) … 214(n) хоста. Идентификаторы 214 хоста, например, могут уникально идентифицировать конечную точку приложения из числа набора конечных точек, к которым может потенциально направляться конкретный вид сеанса.
В описываемой реализации элемент 106 сетевого шлюза относится к выравниванию сетевой нагрузки. С выравниванием сетевой нагрузки (или с другими сетевыми шлюзами с функциональной возможностью маршрутизации) может применяться одна или несколько политик 508 маршрутизации. Политики 508 маршрутизации могут включать в себя, например, те политики маршрутизации, которых администратор может написать сценарий или которые он может установить, чтобы вызвать маршрутизацию выравнивателем сетевой нагрузки входящих пакетов и/или запросов предписанным образом. Политики 508 маршрутизации также могут включать в себя более гибкие и/или расширительные политики маршрутизации, которые зависят от параметров реального времени, таких как информация о состоянии и нагрузки для хостов 108.
Реализация выравнивания сетевой нагрузки для элемента 106 сетевого шлюза может реализовываться с интегрированной функциональной возможностью выравнивания сетевой нагрузки. Эта реализация описывается в отношении сообщения 206(А) продолжения сеанса клиента и операции 216(С) маршрутизации. Реализация выравнивания сетевой нагрузки для элемента 106 сетевого шлюза также может реализовываться с отдельной функциональной возможностью выравнивания сетевой нагрузки. Эта реализация описывается в отношении сообщения 206(В) продолжения сеанса клиента и операции 512 маршрутизации.
В этой примерной реализации выравнивания сетевой нагрузки с отдельной функциональной возможностью элемент 106 сетевого шлюза включает в себя механизм 502 продвижения данных, классификатор 504 и таблицу 506 связывания идентификатора хоста (ИХ) с сетевым адресом (СА). Механизм 502 продвижения данных продвигает пакеты между клиентами 102 и хостами 108, используя сеть 104 и интрасеть 110, соответственно. Классификатор 504 классифицирует пакеты, запросы, соединения и т.д. для выполнения операций маршрутизации, чтобы осуществлять функциональную возможность выравнивания сетевой нагрузки и/или функциональную возможность сохранения сходства сеансов.
Механизм 502 продвижения данных и классификатор 504 могут быть резидентными и могут исполняться на различных устройствах сетевого шлюза 106 или на его одном устройстве. Кроме того, каждый из механизма 502 продвижения данных и классификатора 504 могут распределяться по более, чем одному устройству. Кроме того, может быть множество компонентов механизма 502 продвижения данных и/или компонентов классификатора 504 в сетевом шлюзе 106. Как изображено, каждый классификатор 504 включает в себя таблицу 506 связывания идентификатора хоста с сетевым адресом. Альтернативно, сетевой шлюз 106 может иметь только одну таблицу 506 связывания идентификатора хоста с сетевым адресом. Таблица 506 связывания идентификатора хоста с сетевым адресом также может располагаться и/или может ассоциироваться с разным функциональным компонентом(ами).
При работе интегрированной реализации выравнивания сетевой нагрузки клиент 102(1) посылает сообщение 206(А) продолжения сеанса клиента по сети 104 элементу 106 сетевого шлюза по адресу NGN. Клиент 102(1) раннее установил сеанс на хосте 108(1) и сохранил идентификатор 210(1) сеанса, который был назначен раннее установленному сеансу. Этот идентификатор 210(1) сеанса включает в себя идентификатор 214(1) хоста, который ассоциируется с хостом 108(1). Сообщение 206(А) продолжения сеанса клиента включает в себя идентификатор 210(1) сеанса.
В реализации с интегрированной функциональной возможностью выравнивания сетевой нагрузки элемент 106 сетевого шлюза выполняет операцию 216(С) маршрутизации для сообщения 206(А) продолжения сеанса клиента. Так как сообщение 206(А) продолжения сеанса клиента имеет идентификатор 210(1) сеанса, который включает в себя идентификатор 214(1) хоста, элемент 106 сетевого шлюза маршрутизирует сообщение 206(А) продолжения сеанса клиента, используя часть идентификатора 214(1) хоста идентификатора 210(1) сеанса. В основном, элемент 106 сетевого шлюза маршрутизирует сообщение 206(А) продолжения сеанса клиента на хост 108(1), используя идентификатор 214(1) хоста, извлеченный из идентификатора 210(1) сеанса.
Конкретно, элемент 106 сетевого шлюза может вставить идентификатор 214(1) хоста в поле адреса получателя пакета(ов) для сообщения 206(А) продолжения сеанса клиента, которые маршрутизируются на хост 108(1). Этот подход эффективен тогда, когда идентификатор 214(1) хоста содержит сетевой адрес Н1 для хоста 108(1).
Альтернативно, элемент 106 сетевого шлюза также может выполнять отображение идентификатора 214(1) хоста на сетевой адрес Н1. Например, операция вычисления или операция поиска может выполняться для такого отображения. Для операции вычисления идентификатор 214(1) хоста отображается на сетевой адрес Н1 при помощи некоторой формулы, алгоритма и т.п. Для операции поиска идентификатор 214(1) хоста отображается на сетевой адрес Н1 посредством обращения к таблице идентификатор хоста - сетевой адрес, которая включает в себя запись, связывающую идентификатор 214(1) хоста с сетевым адресом Н1, такой как таблица 506 связывания идентификатора хоста с сетевым адресом. Пример такой таблицы описывается подробно ниже с ссылкой на фиг.6А.
При работе отдельной реализации выравнивания сетевой нагрузки клиент 102(2) посылает сообщение 206(В) продолжения сеанса клиента по сети 104 элементу 106 сетевого шлюза по адресу NGN. Клиент 102(2) раннее установил сеанс на хосте 108(2) и сохранил идентификатор 210(2) сеанса, который был назначен раннее установленному сеансу. Этот идентификатор 210(2) сеанса включает в себя идентификатор 214(2) хоста, который ассоциируется с хостом 108(2). Сообщение 206(В) продолжения сеанса клиента включает в себя идентификатор 210(2) сеанса.
В реализации с отдельной функциональной возможностью выравнивания сетевой нагрузки механизм 502 продвижения данных принимает сообщение 206(В) продолжения сеанса клиента. Так как сообщение 206(В) продолжения сеанса клиента предназначено для сеанса, который не известен механизму 502 продвижения данных (и, возможно, также для нового соединения), механизм 502 продвижения данных продвигает сообщение 206(В) продолжения сеанса клиента на классификатор 504 при обмене 510 данных при передаче. Сообщение 206(В) продолжения сеанса клиента имеет идентификатор 210(2) сеанса, который включает в себя идентификатор 214(2) хоста, поэтому классификатор 504 классифицирует сообщение 206(В) продолжения сеанса клиента, используя часть идентификатора 214(2) хоста идентификатора 210(2) сеанса в операции 512 маршрутизации. Также при обмене 510 данных при передаче классификатор 504 возвращает сообщение 206(В) продолжения сеанса клиента и/или добавляет запись маршрутизации в механизм 502 продвижения данных для указания, что сообщения/пакеты для этого сеанса должны продвигаться на хост 108(2).
Таким образом, классификатор 504 и механизм 502 продвижения данных совместно маршрутизируют сообщение 206(В) продолжения сеанса клиента на хост 108(2), используя идентификатор 214(2) хоста, извлеченный из идентификатора 210(2) сеанса. Как описано выше, в отношении операции 216(С) маршрутизации механизм 502 продвижения данных и классификатор 504 (i) могут вставить идентификатор 214(2) хоста в поле адреса получателя, (ii) могут выполнить отображение (например, вычисление, поиск и т.п.) идентификатора 214(2) хоста на сетевой адрес Н2 и т.п.
Таблица 506 связывания идентификатора хоста с сетевым адресом описывается как часть классификатора 504 или иным образом связанная с ним. Хотя таблица 506 связывания идентификатора хоста с сетевым адресом показана расположенной на элементе 106 сетевого шлюза, она, вместо этого, может быть резидентной на другом устройстве (например, устройстве модуля-посредника). Когда она расположена на таком устройстве модуля-посредника, элемент 106 сетевого шлюза, который имеет отдельную или интегрированную функциональную возможность (например, связанную с выравниванием сетевой нагрузки), может обращаться из него к таблице 506 связывания идентификатора хоста с сетевым адресом.
Фиг.6А и 6В представляют собой примерные таблицы 506(А) и 506(В), соответственно, которые иллюстрируют связывание идентификатора 214 хоста и сетевого адреса 310 для использования с подсказками о маршруте. Таблица 506(А) связывания идентификатора хоста с сетевым адресом соответствует, в основном, реализациям, в которых идентификаторы 214 хоста отображаются на устройства. Таблица 506(В) связывания идентификатора хоста с сетевым адресом соответствует, в основном, реализациям, в которых идентификаторы 214 хоста отображаются на конечные точки приложений. Однако таблица 506(А) связывания идентификатора хоста с сетевым адресом также может отображаться на конечные точки приложений, как описано выше в отношении фиг.3.
Как изображено, таблица 506(А) связывания идентификатора хоста с сетевым адресом связывает соответствующие идентификаторы 214 хоста с соответствующими сетевыми адресами 310. Таблица 506(А) включает в себя многочисленные записи 602(1А), 602(2А) … 602(nА). Каждая соответствующая запись 602(1А), 602(2А) … 602(nA) включает в себя соответствующий идентификатор 214(1), 214(2) … 214(n) хоста и соответствующий сетевой адрес 310(1), 310(2) … 310(n), который связан с ним.
В описываемой реализации таблица 506(А) включает в себя «n» записей, где n равно количеству хостов 108, и каждый идентификатор 214(1), 214(2) … 214(n) хоста соответствует ключу 312(А) (по фиг.3). В такой реализации сетевые адреса 310(1), 310(2) … 310(n) соответствуют адресам Н1, Н2 … Нn хоста, соответственно (например, по фиг.5). При работе элемент 106 сетевого шлюза обращается к таблице 506(А) с идентификатором 214(#) хоста для локализации записи 602(#A), которая ассоциируется с ним. Из этой записи 602(#A) сетевой адрес 310(#), который связан с идентификатором 214(#) хоста, извлекается для использования при маршрутизации сообщения 206(А) или 206(В) продолжения сеанса клиента на хост 108(#).
Как изображено, таблица 506(В) связывания идентификатора хоста с сетевым адресом связывает соответствующие идентификаторы 214 хоста с соответствующими сетевыми адресами 310 и идентификаторами 308 приложений. Таблица 506(В) включает в себя многочисленные записи 602(1В), 602(2В), 602(3В) … 602(wB). Каждая соответствующая запись 602(1В), 602(2В), 602(3В) … 602(wB) включает в себя (i) соответствующий идентификатор 214(1*), 214(2*), 214(3*) … 214(w) хоста и (ii) соответствующий сетевой адрес 310(1), 310(2), 310(3) … 310(n), а также соответствующий идентификатор 308(1), 308(2), 308(3) … 308(z) приложения, который связан с идентификаторами 214 хоста.
В описываемой реализации таблица 506(В) включает в себя «w» записей, где w равно количеству конечных точек приложений на хостах 108, и каждый идентификатор 214(1*), 214(2*), 214(3*) … 214(w) хоста соответствует ключу 315(В) (по фиг.3). В качестве объяснения и с ссылкой на фиг.5, изображенная таблица 506(В) связывания идентификатора хоста с сетевым адресом может использоваться в следующем примерном случае: хост 108(1) ассоциируется с идентификатором 214(1*) хоста и имеет одно приложение, которое соответствует идентификатору 308(1) приложения, и адрес Н1 соответствует сетевому адресу 310(1). Хост 108(2) ассоциируется с идентификаторами 214(2*) и 214(3*) хоста и имеет два приложения, которые соответствуют идентификаторам 308(2) и 308(3) приложения, и адрес Н2 соответствует сетевому адресу 310(2).
Кроме того, хост 108(n) ассоциируется с идентификатором 214(w) хоста и имеет одно приложение, которое соответствует идентификатору 308(z) приложения, и адрес Hn соответствует сетевому адресу 310(n). Переменная «z» может равняться w, количеству конечных точек приложений, если каждый идентификатор 308 приложения является уникальным для каждой установки приложения. Если, с другой стороны, идентификаторы 308 приложения разделяются по установкам приложений одного и того же типа приложения, z может быть меньше w.
Фиг.7 представляет собой блок-схему 700 последовательности операций, которая иллюстрирует примерный способ для использования подсказок о маршруте. Блок-схема 700 последовательности операций включает в себя восемь блоков 702-716. Хотя действия блок-схемы 700 последовательности операций могут выполняться в других средах и с многочисленными архитектурами аппаратных средств и схемами программного обеспечения, фиг.1-3 и 5-6 используются, в частности, для иллюстрации некоторых аспектов и примеров способа. Например, один или несколько элементов 106 сетевого шлюза могут выполнять описанные действия.
В блоке 702 принимается сообщение клиента. Например, элемент 106 сетевого шлюза может принимать сообщение клиента от клиента 102 по сети 104. В блоке 704 инспектируется содержимое принятого сообщения клиента. Например, элемент 106 сетевого шлюза может инспектировать одно или несколько полей сообщения 302 сеанса, такое как поле для идентификатора 210 сеанса.
В блоке 706 определяется, является принятое сообщение клиента относящимся к сеансу. Например, если принятое сообщение клиента содержит сообщение 302 сеанса, имеющее поле для идентификатора 210 сеанса, тогда принятое сообщение клиента относится к сеансу. Если, с другой стороны, принятое сообщение клиента не имеет поля для идентификатора 210 сеанса, тогда принятое сообщение сеанса не относится к сеансу, и способ продолжается в блоке 708.
В блоке 708 принятое сообщение клиента маршрутизируется с использованием политики по умолчанию. Например, элемент 106 сетевого шлюза может маршрутизировать принятое сообщение клиента с использованием общей политики маршрутизации из политик 508 маршрутизации, такой как политика выравнивания сетевой нагрузки по умолчанию. Как указано пунктирной стрелкой 718А, элемент 106 сетевого шлюза затем может ожидать приема следующего сообщения клиента.
Если, с другой стороны, определяется (в блоке 706), что принятое сообщение клиента является относящимся к сеансу, тогда в блоке 710 инспектируется поле идентификатора сеанса. Например, элемент 106 сетевого шлюза может инспектировать поле идентификатора сеанса принятого сообщения 302 сеанса клиента. В блоке 712 определяется, задал ли клиент идентификатор сеанса, используя поле идентификатора сеанса. Например, элемент 106 сетевого шлюза может определить, заполняет ли идентификатор 210 сеанса поле идентификатора сеанса сообщения 302 сеанса.
Если определяется (в блоке 712), что не был задан идентификатор сеанса, тогда принятое сообщение 202 инициирования сеанса клиента может маршрутизироваться с использованием политики по умолчанию в блоке 708. Если, с другой стороны, определяется (в блоке 712), что идентификатор сеанса был задан клиентом, тогда идентификатор хоста извлекается из заданного идентификатора сеанса в блоке 714. Например, элемент 106 сетевого шлюза может извлекать идентификатор 214 хоста из идентификатора 210 сеанса, заданного в принятом сообщении 206 продолжения сеанса клиента.
В блоке 716 принятое сообщение клиента маршрутизируется с использованием извлеченного идентификатора хоста. Например, принятое сообщение 206 продолжения сеанса клиента может маршрутизироваться элементом 106 сетевого шлюза на хост 108, который ассоциируется с идентификатором 214 хоста. Эта маршрутизация может вызывать немодифицированную вставку идентификатора 214 хоста в поле получателя для пакета или пакетов, продвигаемых на хост 108, или отображение идентификатора 214 хоста на по меньшей мере сетевой адрес 310. Отображение может осуществляться посредством поиска сетевого адреса 310 в таблице 506, используя идентификатор 214 хоста, посредством выполнения вычисления (например, подчиняясь формуле, реализуя алгоритм и т.п.) идентификатора 214 хоста, который приводит к сетевому адресу 310, и т.д.
Особенно для реализаций, в которых элемент 106 сетевого шлюза представляет собой выравниватель сетевой нагрузки, элемент 106 сетевого шлюза может иметь доступ к информации о состоянии и/или нагрузке, относящейся к многочисленным хостам 108. Эта информация о состоянии и/или нагрузке может указывать, что получатель (например, хост 108 и/или его конечная точка приложения), который ассоциирован с извлеченным идентификатором 214 хоста, является неподходящим или неспособным обработать продолжение сеанса по причинам состояния и/или нагрузки. В таком случае элемент 106 сетевого шлюза может выполнить действие(я) блока 708 в отношении политик маршрутизации по умолчанию, даже когда клиент 102 задал идентификатор 210 сеанса, который включает в себя идентификатор 214 хоста.
После действия(й) блока 716, как указано пунктирной стрелкой 718В, элемент 106 сетевого шлюза может ожидать приема следующего сообщения клиента. Элемент 106 сетевого шлюза может маршрутизировать принятое сообщение 206 продолжения сеанса клиента, используя извлеченный идентификатор 214 хоста, многочисленным образом в зависимости от типа идентификатора 214 хоста, который был извлечен.
Например, элемент 106 сетевого шлюза может маршрутизировать принятое сообщение 206 продолжения сеанса клиента непосредственно предназначенному приложению, если идентификатор 214 хоста включает в себя идентификатор 306 устройства и идентификатор 308 приложения, или если ключ 312(В) отображается на устройство и приложение для хоста 108. Кроме того, элемент 106 сетевого шлюза может быть способен маршрутизировать принятое сообщение 206 продолжения сеанса клиента на схожий хост 108, используя реализацию с сетевым адресом 310 идентификатора 306 устройства идентификатора 214 хоста, в которой сетевой адрес 310 используется в качестве адреса получателя для маршрутизируемого пакета или пакетов.
Альтернативно, элемент 106 сетевого шлюза может использовать реализацию с ключом 312(А) идентификатора 306 устройства идентификатора 214 хоста для поиска сетевого адреса 310 для устройства схожего хоста 108. Например, ключ 312(#) может использоваться для обращения к таблице 506(А) (например, структуре данных), которая отображает ключи 312(А) на сетевые адреса 310 хостов 108. Локализуется запись 602(#A), имеющая ключ 312(#), в структуре данных. Сетевой адрес 310(#), который связан с ключом 312(#) в этой локализованной записи 602(#A), извлекается и используется для маршрутизации сообщения 206 продолжения сеанса клиента на схожий хост 108.
Кроме того, элемент 106 сетевого шлюза может использовать реализацию характерного для конечной точки приложения ключа 312(В) идентификатора 306 устройства и идентификатора 308 приложения идентификатора 214 хоста для поиска сетевого адреса 310 для устройства схожего хоста 108 и идентификатора 308 приложения для его приложения. Например, ключ 312(#) может использоваться для обращения к таблице 506(В) (например, структуре данных), которая отображает ключи 312(В) на конечные точки приложения хостов 108. Локализуется запись 602(#B), имеющая ключ 312(#), в структуре данных. Конечная точка приложения (например, сетевой адрес 310(#) и идентификатор 308(#) приложения), которая связана с ключом 312(#) в этой локализованной записи 602(#B), извлекается и используется для маршрутизации сообщения 206 продолжения сеанса клиента конкретному приложению на конкретном устройстве схожего хоста 108 или для него.
Действия, аспекты, отличительные признаки, компоненты и т.д. по фиг.1-7 иллюстрируются на схемах, которые разделены на множество блоков. Однако порядок, количество, размещение, взаимосвязи, компоновка и т.д., в которых эти многочисленные блоки по фиг.1-7 описываются и/или изображаются, как предполагается, не истолковывается как ограничение, и любое количество блоков может объединяться, переупорядочиваться, добавляться, исключаться и т.д. любым образом для реализации одной или нескольких систем, способов, устройств, процедур, носителей, интерфейсов прикладного программирования (ИПП), аппаратов, средств и т.д. для подсказок о маршруте. Кроме того, хотя описание в данном документе включает в себя ссылки на характерные реализации (и примерную операционную среду по фиг.8), изображенные и/или описанные реализации могут быть реализованы любыми подходящими аппаратными средствами, программными средствами, программно-аппаратными средствами или их комбинацией и использованием любой подходящей сетевой организации(й), протокола(ов) передачи/связи, архитектуры (архитектур) клиент-сервер и т.п.
Фиг.8 изображает примерную вычислительную операционную среду 800 (или общего устройства), которая может (полностью или частично) реализовывать по меньшей мере одну систему, устройство, аппарат, компонент, средство, протокол, подход, способ, процедуру, носитель, ИПП, некоторую их комбинацию и т.п. для подсказок о маршруте, как описано в данном документе. Операционная среда 800 может использоваться в компьютере и сетевых архитектурах, описанных ниже, или в автономной ситуации.
Примерная операционная среда 800 представляет собой только один пример среды и, как предполагается, не предполагает никакого ограничения в отношении области использования или функциональных возможностей применяемых архитектур устройств (включая компьютер, сетевой узел, устройство развлечения, мобильный прибор, обычное электронное устройство и т.п.). Операционная среда 800 (или ее устройства) не должны интерпретироваться как имеющие какую-либо зависимость или необходимое условие, относящиеся к любому одному или к любой комбинации компонентов, изображенных на фиг.8.
Дополнительные подсказки о маршруте могут быть реализованы с многочисленными другими средами или конфигурациями устройств (включая вычислительную систему) общего назначения или специального назначения. Примеры общеизвестных устройств, систем, сред и/или конфигураций, которые могут быть подходящими для использования, включают в себя, но не ограничиваются ими, персональные компьютеры, серверные компьютеры, тонкие клиенты, толстые клиенты, персональные цифровые помощники (ПЦП) или мобильные телефоны, часы, карманные или переносные устройства, мультипроцессорные системы, микропроцессорные системы, телевизионные приставки, программируемую бытовую электронику, видеоигровые машины, игровые консоли, портативные или карманные игровые блоки, сетевые персональные компьютеры (ПК), мини-компьютеры, мэйнфреймы, сетевые узлы, распределенные или многопроцессорные вычислительные среды, которые включают в себя любые из вышеупомянутых систем или устройств, некоторые их комбинации и т.п.
Реализации для подсказок о маршруте могут описываться в общем контексте исполняемых процессором инструкций. В общих чертах, исполняемые процессором инструкции включают в себя подпрограммы, программы, протоколы, объекты, интерфейсы, компоненты, структуры данных и т.д., которые выполняют и/или делают возможным конкретные задачи и/или реализуют конкретные абстрактные типы данных. Подсказки о маршруте, как раскрыто в некоторых реализациях данного описания, также могут осуществляться на практике в средах распределенной обработки, где задачи выполняются дистанционно связанными устройствами обработки, которые соединяются при помощи линии и/или сети передачи данных. Особенно в среде распределенной обработки исполняемые процессором инструкции могут располагаться на отдельных носителях данных, исполняться различными процессорами, и/или распространяться по среде передачи.
Примерная операционная среда 800 включает в себя вычислительное устройство общего назначения в виде компьютера 802, который может содержать любое (например, электронное) устройство с возможностями вычисления/обработки. Компоненты компьютера 802 могут включать в себя, но не ограничиваются ими, один или несколько процессоров или блоков 804 обработки, системную память 806 и системную шину 808, которая соединяет различные системные компоненты, включая процессор 804 с системной памятью 806.
Процессоры 804 не ограничиваются материалами, из которых они изготовлены, или механизмами обработки, используемыми в них. Например, процессоры 804 могут состоять из полупроводника(ов) и/или транзисторов (например, электронных интегральных схем (ИС)). В таком контексте исполняемыми процессором инструкциями могут быть исполняемые электронным образом инструкции. Альтернативно, механизмы процессоров 804 или для них, и, таким образом, компьютера 802 или для него, могут включать в себя, но не ограничиваются ими, квантовые вычисления, оптические вычисления, механические вычисления (например, используя нанотехнологию) и т.п.
Системная шина 808 представляет один или несколько из любых из множества типов проводных или беспроводных шинных структур, включая шину памяти или контроллер памяти, соединение «точка-точка», коммутационное поле, периферийную шину, ускоренный графический порт и процессор или локальную шину, используя любую из множества шинных архитектур. В качестве примера, такие архитектуры могут включать в себя шину архитектуры промышленного стандарта (АПС), шину микроканальной архитектуры (МКА), шину расширенной АПС (РАПС), локальную шину Ассоциации по стандартам в области видеоэлектроники (АСВЭ), шину межсоединений периферийных компонентов (МПК), также известную как шина расширения, некоторые их комбинации и т.п.
Компьютер 802 обычно включает в себя множество доступных для процессора носителей. Такими носителями могут быть любые доступные носители, к которым может обращаться компьютер 802 или другое (например, электронное) устройство, и он включает в себя как энергозависимые, так и энергонезависимые носители, как съемные, так и несъемные носители, и носители данных и среду передачи.
Системная память 806 включает в себя доступные для процессора носители данных в виде энергозависимой памяти, такой как оперативное запоминающее устройство (ОЗУ) 810, и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ПЗУ) 812. Базовая система 814 ввода-вывода (БСВВ), содержащая базовые подпрограммы, которые способствуют переносу информации между элементами внутри компьютера 802, например, во время запуска, обычно хранится в ПЗУ 812. ОЗУ 810 обычно содержит данные и/или программные модули/инструкции, которые мгновенно доступны для блока 804 обработки и/или в данный момент выполняются при помощи его.
Компьютер 802 также может включать в себя другие съемные/несъемные и/или энергозависимые/энергонезависимые носители данных. В качестве примера, фиг.8 иллюстрирует накопитель на жестком диске или массив 816 накопителей на дисках для считывания и записи на (обычно) несъемный, энергонезависимый магнитный носитель (не показан отдельно); накопитель 818 на магнитных дисках для считывания и записи на (обычно) съемный, энергонезависимый магнитный диск 820 (например, «флоппи-диск»); и накопитель 822 на оптических дисках для считывания и/или записи на (обычно) съемный, энергонезависимый оптический диск 824, такой как компакт-диск, цифровой многофункциональный диск (ЦМД) или другой оптический носитель. Каждый из накопителя 816 на жестком диске, накопителя 818 на магнитных дисках и накопителя 822 на оптических дисках соединен с системной шиной 808 при помощи одного или нескольких интерфейсов 826 носителей данных. Альтернативно, накопитель 816 на жестком диске, накопитель 818 на магнитных дисках и накопитель 822 на оптических дисках может быть соединен с системной шиной 808 при помощи одного или нескольких других отдельных или комбинированных интерфейсов (не показаны).
Накопители на дисках и связанные с ними доступные для процессора носители обеспечивают энергонезависимое хранение исполняемых процессором инструкций, таких как структуры данных, программные модули и другие данные для компьютера 802. Хотя примерный компьютер 802 иллюстрирует жесткий диск 816, съемный магнитный диск 820 и съемный оптический диск 824, необходимо понять, что другие типы доступных для процессора носителей могут хранить инструкции, которые являются доступными при помощи устройства, таких как магнитные кассеты или другие магнитные запоминающие устройства, флэш-память, компакт-диски, цифровые многофункциональные диски (ЦМД) или другие оптические запоминающие устройства, ОЗУ, ПЗУ, электрически стираемые программируемые постоянные запоминающие устройства (ЭСППЗУ) и т.п. Такие носители также могут включать в себя так называемые специализированные или жестко смонтированные кристаллы ИС. Другими словами, любые доступные для процессора носители могут использоваться для реализации носителей данных примерной операционной среды 800.
Любое количество программных модулей (или других блоков или наборов инструкций/кода) может храниться на жестком диске 816, магнитном диске 820, оптическом диске 824, в ПЗУ 812 и/или ОЗУ 810. Эти программные модули могут включать в себя, в качестве общего примера, операционную систему 828, одну или несколько программ 830 приложений, другие программные модули 832 и программные данные 834.
Пользователь может вводить команды и/или информацию в компьютер 802 при помощи устройств ввода, таких как клавиатура 836 и указательное устройство 838 (например, «мышь»). Другие устройства 840 ввода (не показаны конкретно) могут включать в себя микрофон, джойстик, игровой планшет, антенну спутниковой связи, последовательный порт, сканер и/или т.п. Эти и другие устройства ввода подсоединяются к блоку 804 обработки при помощи интерфейсов 842 ввода-вывода, которые подсоединены к системной шине 808. Однако устройства ввода и/или устройства вывода, вместо этого, могут подсоединяться при помощи других интерфейсов и шинных структур, таких как параллельный порт, игровой порт, порт универсальной последовательной шины (УПШ), инфракрасный порт, интерфейс IEEE 1394 («FireWire»), беспроводный интерфейс IEEE 802.11, беспроводный интерфейс Bluetooth® и т.п.
Монитор/экран 844 для просмотра или другой тип устройства отображения также может подсоединяться к системной шине 808 при помощи интерфейса, такого как видеоадаптер 846. Видеоадаптер 846 (или другой компонент) может быть или может включать в себя графическую карту для обработки интенсивных в отношении графики вычислений и для обработки высоких требований к отображению. Обычно графическая карта включает в себя блок обработки графики (БОГ), видеоОЗУ (ВОЗУ) и т.д., способствуя быстрому отображению графики и производительности графических операций. В дополнение к монитору 844 другие периферийные устройства вывода могут включать в себя компоненты, такие как громкоговорители (не показаны) и принтер 848, которые могут подсоединяться к компьютеру 802 при помощи интерфейсов 842 ввода-вывода.
Компьютер 802 может работать в сетевой среде, используя логические подключения к одному или нескольким удаленным компьютерам, таким как удаленное вычислительное устройство 850. В качестве примера, удаленным вычислительным устройством 850 может быть персональный компьютер, портативный компьютер (например, носимый компьютер, планшетный компьютер, ПЦП, мобильная станция и т.п.), наладонный или карманный компьютер, часы, игровое устройство, сервер, маршрутизатор, сетевой компьютер, одноранговое устройство, другой узел сети или другой тип устройства, в отличие от перечисленных выше, и т.п. Однако удаленное вычислительное устройство 850 иллюстрируется как портативный компьютер, который может включать в себя многие или все из элементов и отличительных признаков, описанных в данном документе, в отношении компьютера 802.
Логические подключения между компьютером 802 и удаленным компьютером 850 изображаются как локальная сеть (ЛС) 852 и общая глобальная сеть (ГС) 854. Такие сетевые среды являются общепринятыми в офисах, компьютерных сетях масштаба предприятия, интрасетях, Интернете, стационарных и мобильных телефонных сетях, специальных и инфраструктурных беспроводных сетях, других беспроводных сетях, игровых сетях, некоторых их комбинациях и т.п. Такие сети и соединения передачи данных являются примерами сред передачи.
При реализации в сетевой среде ЛС компьютер 802 обычно подключается к ЛС 852 при помощи сетевого интерфейса или адаптера 856. При реализации в сетевой среде ГС компьютер 802 обычно включает в себя модем 858 или другое средство для установления передачи данных по ГС 854. Модем 858, который может быть внутренним или внешним для компьютера 802, может подключаться к системной шине 808 при помощи интерфейсов 842 ввода-вывода или любого другого соответствующего механизма(ов). Необходимо понять, что изображенные сетевые подключения являются примерными, и что может применяться другое средство установления линии(й) передачи данных между компьютерами 802 и 850.
Кроме того, могут применяться другие аппаратные средства, которые специально предназначены для серверов. Например, платы ускорения УЗС могут использоваться для разгрузки от вычислений УЗС. Кроме того, особенно в операционной среде выравнивания сетевой нагрузки аппаратные средства разгрузки ПУП и/или классификаторы пакетов на сетевых интерфейсах или адаптерах 856 (например, на сетевых интерфейсных платах) могут устанавливаться и использоваться на серверных устройствах.
В сетевой среде, такой как среда, изображенная с операционной средой 800, программные модули или другие инструкции, которые описываются в отношении компьютера 802, или его частей, могут полностью или частично храниться на удаленном устройстве хранения на носителях. В качестве примера, программы 860 удаленных приложений постоянно находятся на компоненте памяти удаленного компьютера 850, но могут быть используемыми или доступными иным образом при помощи компьютера 802. Также, с целью иллюстрации, программы 830 приложений и другие исполняемые процессором инструкции, такие как операционная система 828, изображаются в данном документе в виде дискретных блоков, но понятно, что такие программы, компоненты и другие инструкции постоянно находятся в различные моменты времени в различных компонентах хранения вычислительного устройства 802 (и/или удаленного вычислительного устройства 850) и исполняются процессором(ами) 804 компьютера 802 (и/или процессором(ами) удаленного вычислительного устройства 850).
Хотя системы, носители, устройства, способы, процедуры, аппараты, методы, схемы, подходы, средства и другие реализации были описаны на языке, характерном для конструктивных, логических, алгоритмических и функциональных отличительных признаков и/или схем, необходимо понять, что изобретение, определенное в прилагаемой формуле изобретения, не ограничивается непременно заданными и описанными отличительными признаками или схемами. Скорее, заданные отличительные признаки и схемы описываются в качестве примерных форм реализации заявленного изобретения.

Claims (60)

1. Машиночитаемый носитель, содержащий исполняемые процессором инструкции, которые, когда они исполняются, управляют хостом для выполнения действий, содержащих:
создание идентификатора сеанса, используя идентификатор хоста;
формулирование и сохранение сообщения инициирования сеанса хоста с созданным идентификатором сеанса;
посылку сформулированного и сохраненного сообщения инициирования сеанса хоста, которое включает в себя созданный идентификатор сеанса, от устройства;
прием сообщения клиента, содержащего информацию о типе сеанса; и
определение, включает ли принятое сообщение клиента, содержащее информацию о типе сеанса, принятый идентификатор сеанса.
2. Машиночитаемый носитель по п.1, содержащий исполняемые процессором инструкции, которые, когда они исполняются, управляют хостом для выполнения также действия, содержащего:
если определяется, что принятое сообщение клиента, содержащее информацию о типе сеанса, не включает в себя принятый идентификатор сеанса, выполнение действий создания и формулирования.
3. Машиночитаемый носитель по п.1, содержащий исполняемые процессором инструкции, которые, когда они исполняются, управляют хостом для выполнения также действий, содержащих:
если определяется, что принятое сообщение клиента, содержащее информацию о типе сеанса, включает в себя принятый идентификатор сеанса, тогда выполнение действий:
формулирования и сохранения сообщения хоста о продолжении сеанса с принятым идентификатором сеанса; и
посылки сформулированного и сохраненного сообщения продолжения сеанса хоста, которое включает в себя принятый идентификатор сеанса.
4. Машиночитаемый носитель по п.1, в котором указанное формулирование сообщения о продолжении сеанса включает:
вставку созданного идентификатора сеанса в поле идентификатора сеанса сообщения клиента, содержащего информацию о типе сеанса, хоста для генерирования сформулированного сообщения инициирования сеанса хоста.
5. Машиночитаемый носитель по п.4, в котором указанное формулирование сообщения о продолжении сеанса включает:
заполнение множества других полей сообщения клиента, содержащего информацию о типе сеанса, хоста для генерирования сформулированного сообщения инициирования сеанса хоста.
6. Машиночитаемый носитель по п.1, в котором указанное формулирование сообщения о продолжении сеанса включает:
создание идентификатора сеанса посредством включения идентификатора хоста в качестве по меньшей мере части созданного идентификатора сеанса.
7. Машиночитаемый носитель по п.1, в котором указанное формулирование сообщения о продолжении сеанса включает:
создание идентификатора сеанса посредством включения идентификатора хоста в качестве части созданного идентификатора сеанса, причем идентификатор хоста содержит идентификатор устройства клиента.
8. Машиночитаемый носитель по п.7, в котором идентификатор устройства содержит по меньшей мере сетевой адрес и/или ключ, который отображается на сетевой адрес.
9. Машиночитаемый носитель по п.1, в котором указанное формулирование сообщения о продолжении сеанса включает:
создание идентификатора сеанса посредством включения идентификатора хоста в качестве части созданного идентификатора сеанса, причем идентификатор хоста содержит идентификатор устройства и идентификатор приложения.
10. Машиночитаемый носитель по п.1, в котором указанное формулирование сообщения о продолжении сеанса включает:
создание идентификатора сеанса посредством включения идентификатора хоста в качестве части созданного идентификатора сеанса, причем идентификатор хоста содержит ключ, который отображается на сетевой адрес, и идентификатор приложения.
11. Машиночитаемый носитель по п.1, в котором указанное формулирование сообщения о продолжении сеанса включает:
создание идентификатора сеанса посредством вставки идентификатора хоста с предопределенным смещением от старшей или младшей части созданного идентификатора сеанса.
12. Машиночитаемый носитель по п.1, в котором указанное формулирование сообщения о продолжении сеанса включает:
создание идентификатора сеанса посредством, по меньшей мере, рассредоточения идентификатора хоста по созданному идентификатору сеанса.
13. Машиночитаемый носитель по п.1, в котором по меньшей мере часть исполняемых процессором инструкций содержит по меньшей мере часть программы сервера.
14. Машиночитаемый носитель по п.1, в котором по меньшей мере часть исполняемых процессором инструкций содержит по меньшей мере часть программы операционной системы.
15. Машиночитаемый носитель по п.1, в котором машиночитаемый носитель содержит по меньшей мере одно из: (i) одного или нескольких машиночитаемых носителей данных и (ii) одной или нескольких сред передачи.
16. Устройство предоставления клиенту подсказок о маршруте, содержащее:
по меньшей мере один процессор и
машиночитаемый носитель, включающий в себя исполняемые процессором инструкции, которые могут исполняться по меньшей мере одним процессором, причем исполняемые процессором инструкции предназначены для того, чтобы управлять хостом для выполнения действий, содержащих:
формулирование и сохранение сообщения хоста, содержащего информацию об идентификаторе сеанса, с идентификатором сеанса, который создается зависимым от идентификатора хоста;
посылку сформулированного и сохраненного сообщения хоста, содержащего информацию об идентификаторе сеанса, которое включает в себя идентификатор сеанса, от устройства;
прием сообщения клиента и
определение, включает ли принятое сообщение сеанса клиента принятый идентификатор сеанса.
17. Устройство по п.16, в котором сообщение хоста, содержащее информацию об идентификаторе сеанса, содержит сообщение инициирования сеанса хоста.
18. Устройство по п.16, в котором сообщение хоста, содержащее информацию об идентификаторе сеанса, содержит сообщение хоста о продолжении сеанса.
19. Устройство по п.16, в котором идентификатор хоста ассоциируется с устройством.
20. Устройство по п.16, в котором исполняемые процессором инструкции предназначены для того, чтобы ориентировать устройство на выполнение дополнительного действия, содержащего:
создание идентификатора сеанса, зависимого от идентификатора хоста.
21. Устройство по п.20, в котором указанное формулирование сообщения о продолжении сеанса включает:
создание идентификатора сеанса, используя идентификатор хоста и по меньшей мере одно значение, выбранное из группы, содержащей: случайно выбранное значение, значение из счетчика с накоплением, связанное с безопасностью значение и хешированное значение.
22. Устройство по п.16, в котором указанное формулирование сообщения о продолжении сеанса включает:
посылку сформулированного и сохраненного сообщения сеанса хоста, которое включает в себя идентификатор сеанса, от устройства к клиенту.
23. Устройство по п.16, в котором указанное формулирование сообщения о продолжении сеанса включает:
посылку сформулированного и сохраненного сообщения сеанса хоста, которое включает в себя идентификатор сеанса, от устройства к клиенту при помощи сетевого шлюза и по интрасети, к которой подключено устройство.
24. Устройство по п.16, в котором исполняемые процессором инструкции предназначены для того, чтобы ориентировать устройство на выполнение дополнительного действия, содержащего:
если определяется, что принятое сообщение сеанса клиента не включает в себя принятый идентификатор сеанса, выполнение действий формулирования, сохранения и посылки.
25. Устройство по п.16, в котором исполняемые процессором инструкции предназначены для того, чтобы ориентировать устройство на выполнение дополнительных действий, содержащих:
если определяется, что принятое сообщение сеанса клиента включает в себя принятый идентификатор сеанса, тогда выполнение действий:
формулирования и сохранения сообщения хоста о продолжении сеанса с принятым идентификатором сеанса; и
посылки сформулированного и сохраненного сообщения хоста о продолжении сеанса, которое включает в себя принятый идентификатор сеанса, от устройства.
26. Устройство по п.16, в котором указанное формулирование сообщения о продолжении сеанса включает:
вставку идентификатора сеанса в поле идентификатора сеанса сообщения хоста, содержащего информацию об идентификаторе сеанса, для генерирования сформулированного сообщения сеанса хоста.
27. Устройство по п.16, в котором устройство содержит устройство хоста и/или устройство сервера.
28. Устройство по п.16, в котором машиночитаемый носитель хранит идентификатор хоста.
29. Устройство по п.16, в котором сформулированное сообщение сеанса хоста соответствует по меньшей мере стандарту уровня защищенных сокетов (УЗС) и/или стандарту безопасности транспортного уровня (БТУ).
30. Устройство предоставления клиенту подсказок о маршруте, содержащее:
по меньшей мере один процессор и
машиночитаемый носитель, включающий в себя исполняемые процессором инструкции, которые могут исполняться по меньшей мере одним процессором, причем исполняемые процессором инструкции предназначены для того, чтобы управлять хостом для выполнения действий, содержащих:
прием сообщения инициирования сеанса хоста от хоста, причем сообщение инициирования сеанса хоста имеет поле идентификатора сеанса, которое включает в себя идентификатор хоста;
сохранение идентификатора сеанса, который включает в себя идентификатор хоста; и
посылку сообщения продолжения сеанса клиента хосту, причем сообщение продолжения сеанса клиента имеет поле идентификатора сеанса, которое включает в себя идентификатор хоста,
причем поле идентификатора сеанса заполняется идентификатором сеанса, который включает в себя идентификатор хоста.
31. Устройство по п.30, в котором исполняемые процессором инструкции предназначены для того, чтобы управлять хостом для выполнения дополнительного действия, содержащего:
посылку сообщения инициирования сеанса клиента хосту перед действием приема.
32. Устройство по п.30, в котором машиночитаемый носитель хранит сохраненный идентификатор сеанса, который включает в себя идентификатор хоста.
33. Устройство по п.30, в котором устройство содержит устройство клиента.
34. Способ подсказок о маршруте, причем способ содержит:
прием сообщения клиента, содержащего информацию о типе сеанса, которое не включает в себя принятый идентификатор сеанса, от клиента;
создание в ответ на принятое сообщение клиента, содержащее информацию о типе сеанса, идентификатора сеанса, используя идентификатор хоста;
установление сеанса, с которым ассоциирован созданный идентификатор сеанса; и
формулирование и сохранение сообщения клиента, содержащего информацию о типе сеанса, которое включает в себя созданный идентификатор сеанса;
посылку сформулированного и сохраненного сообщения клиента, содержащего информацию о типе сеанса, которое включает в себя созданный идентификатор сеанса, клиенту при помощи сетевого шлюза.
35. Способ по п.34, который также содержит:
посылку сообщения клиента, содержащего информацию о типе сеанса, которое не включает в себя принятый идентификатор сеанса, от клиента;
прием сформулированного и сохраненного сообщения клиента, содержащего информацию о типе сеанса, которое включает в себя созданный идентификатор сеанса, клиентом;
сохранение созданного идентификатора сеанса на компьютере клиента и
посылку сообщения клиента, содержащего информацию о типе сеанса, которое включает в себя созданный и сохраненный идентификатор сеанса, от клиента.
36. Способ по п.34, который также содержит:
прием сообщения клиента, содержащего информацию о типе сеанса, которое включает в себя созданный идентификатор сеанса, от клиента;
возобновление сеанса, которому назначен созданный и принятый идентификатор сеанса;
формулирование и сохранение сообщения клиента, содержащего информацию о типе сеанса, которое включает в себя созданный и принятый идентификатор сеанса, в ответ на принятое сообщение сеанса, которое включает в себя созданный идентификатор сеанса; и
посылку сформулированного и сохраненного сообщения клиента, содержащего информацию о типе сеанса, которое включает в себя созданный и принятый идентификатор сеанса, клиенту при помощи сетевого шлюза для указания, что сеанс может быть продолжен.
37. Машиночитаемый носитель, содержащий исполняемые процессором инструкции, которые, когда они исполняются, управляют хостом для выполнения способа по п.34.
38. Устройство формирования идентификатора сеанса, содержащее:
идентификатор хоста;
устройство формирования идентификатора сеанса, которое предназначено для создания идентификатора сеанса, используя идентификатор хоста;
обработчик сообщений, который выполнен с возможностью приема входящих сообщений сеанса и определения, включают ли входящие сообщения сеанса идентификаторы существующего сеанса для существующих сеансов, причем обработчик сообщений предназначен для активизирования устройства формирования идентификатора сеанса, когда определяется, что во входящем сообщении сеанса отсутствует идентификатор существующего сеанса.
39. Устройство по п.38, в котором обработчик сообщений также предназначен для формулирования и сохранения по меньшей мере частично сообщения инициирования сеанса хоста посредством вставки созданного идентификатора сеанса в поле идентификатора сеанса для сообщения инициирования сеанса хоста.
40. Устройство по п.38, которое также содержит:
контекст сеанса, которому назначен созданный идентификатор сеанса.
41. Машиночитаемый носитель, содержащий исполняемые процессором инструкции, которые, когда они исполняются, управляют хостом для выполнения действий, содержащих:
выяснение идентификатора хоста из поля идентификатора сеанса сообщения клиента, содержащего информацию о типе сеанса;
маршрутизацию сообщения клиента, содержащего информацию о типе сеанса, зависимого от выясненного идентификатора хоста; и
формулирование сообщения о продолжении сеанса, которое включает в себя:
обращение к таблице с выясненным идентификатором хоста для локализации записи, включающей в себя выясненный идентификатор хоста; и
определение сетевого адреса, который связан с выясненным идентификатором хоста в локализованной записи.
42. Машиночитаемый носитель по п.41, в котором указанное формулирование сообщения о продолжении сеанса включает:
извлечение идентификатора хоста из поля идентификатора сеанса сообщения сеанса в виде непрерывного блока.
43. Машиночитаемый носитель по п.41, в которых указанное формулирование сообщения о продолжении сеанса включает:
обращение к таблице с выясненным идентификатором хоста для локализации записи, включающей в себя выясненный идентификатор хоста; и
определение сетевого адреса и идентификатора приложения, который связан с выясненным идентификатором хоста в локализованной записи.
44. Машиночитаемый носитель по п.41, в котором по меньшей мере часть исполняемых процессором инструкций содержит по меньшей мере часть программного обеспечения маршрутизации, брандмауэра и/или выравнивания сетевой нагрузки.
45. Машиночитаемый носитель по п.41, в котором указанное формулирование сообщения о продолжении сеанса включает:
отображение выясненного идентификатора хоста по меньшей мере на сетевой адрес.
46. Машиночитаемый носитель по п.41, в котором указанное формулирование сообщения о продолжении сеанса включает:
поиск сетевого адреса в таблице, используя выясненный идентификатор хоста.
47. Машиночитаемый носитель по п.41, в котором указанное формулирование сообщения о продолжении сеанса включает:
вычисление сетевого адреса из выясненного идентификатора хоста.
48. Машиночитаемый носитель по п.47, в котором указанное формулирование сообщения о продолжении сеанса включает:
подчинение формуле для вычисления сетевого адреса из выясненного идентификатора хоста.
49. Машиночитаемый носитель по п.47, в котором указанное формулирование сообщения о продолжении сеанса включает:
реализацию алгоритма для вычисления сетевого адреса из выясненного идентификатора хоста.
50. Устройство предоставления клиенту подсказок о маршруте, содержащее:
по меньшей мере один процессор и
машиночитаемый носитель, включающий в себя исполняемые процессором инструкции, которые могут исполняться по меньшей мере одним процессором, причем исполняемые процессором инструкции предназначены для того, чтобы управлять хостом для выполнения действий, содержащих:
прием сообщения клиента, содержащего информацию о типе сеанса, имеющего идентификатор сеанса, включающий в себя идентификатор хоста, причем сообщение клиента, содержащее информацию о типе сеанса, принадлежит контексту сеанса, ассоциированному с хостом, при этом хост ассоциируется с идентификатором хоста;
маршрутизацию сообщения клиента, содержащего информацию о типе сеанса, зависимого от идентификатора хоста; и
посылку сообщения клиента, содержащего информацию о типе сеанса, от устройства, основываясь на маршрутизации, на хост, ассоциированный с идентификатором хоста.
51. Устройство по п.50, в котором исполняемые процессором инструкции предназначены для того, чтобы управлять хостом для выполнения дополнительного действия, содержащего:
посылку сообщения сеанса от устройства, основываясь на маршрутизации, на хост по интрасети, причем хост ассоциируется с идентификатором хоста.
52. Устройство по п.50, в котором исполняемые процессором инструкции предназначены для того, чтобы управлять хостом для выполнения дополнительного действия, содержащего:
определение, включает ли принятое сообщение клиента, содержащее информацию о типе сеанса, принятый идентификатор сеанса.
53. Устройство по п.52, в котором исполняемые процессором инструкции предназначены для того, чтобы управлять хостом для выполнения дополнительного действия, содержащего:
если определяется, что принятое сообщение клиента, содержащее информацию о типе сеанса, включает в себя принятый идентификатор сеанса, тогда маршрутизацию принятого сообщения клиента, содержащего информацию о типе сеанса, зависимого от принятого идентификатора хоста, который включен в качестве по меньшей мере части принятого идентификатора сеанса.
54. Устройство по п.52, в котором исполняемые процессором инструкции предназначены для того, чтобы управлять хостом для выполнения дополнительных действий, содержащих:
если определяется, что принятое сообщение клиента, содержащее информацию о типе сеанса, не включает в себя принятый идентификатор сеанса, тогда маршрутизацию принятого сообщения сеанса в соответствии с по меньшей мере одной политикой маршрутизации по умолчанию.
55. Устройство по п.50, в котором машиночитаемый носитель также включает в себя одну или несколько таблиц, которые связывают соответствующие идентификаторы хоста с по меньшей мере соответствующими сетевыми адресами; и в котором маршрутизация осуществляется по меньшей мере частично посредством обращения к одной или нескольким таблицам.
56. Устройство по п.50, которое воплощено в виде множества блоков.
57. Сетевой шлюз, который выполнен с обеспечением возможности приема сообщения клиента, содержащего информацию о типе сеанса, имеющего поле идентификатора сеанса; причем сетевой шлюз предназначен для извлечения идентификатора хоста из значения, заполняющего поле идентификатора сеанса, и содержащего идентификатор сеанса; сетевой шлюз также предназначен для выполнения операции маршрутизации для сообщения клиента, содержащего информацию о типе сеанса, используя идентификатор хоста;
причем сетевой шлюз содержит по меньшей мере один из маршрутизатора, устройства брандмауэра, модуля-посредника и устройства выравнивания сетевой нагрузки.
58. Сетевой шлюз по п.57, в котором сетевой шлюз также предназначен для выполнения операции маршрутизации, используя по меньшей мере одну таблицу связывания идентификатора хоста с сетевым адресом.
59. Сетевой шлюз по п.57, в котором сетевой шлюз также предназначен для выполнения операции маршрутизации с отображением идентификатора хоста на сетевой адрес.
60. Сетевой шлюз по п.57, в котором сетевой шлюз также предназначен для выполнения операции маршрутизации посредством вставки идентификатора хоста в поле адреса получателя одного или нескольких пакетов.
RU2006104109/09A 2003-08-13 2003-08-18 Подсказки о маршруте RU2365046C2 (ru)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/639,516 2003-08-13
US10/639,727 US8266294B2 (en) 2003-08-13 2003-08-13 Routing hints
US10/639,727 2003-08-13
US10/639,516 US7882251B2 (en) 2003-08-13 2003-08-13 Routing hints

Publications (2)

Publication Number Publication Date
RU2006104109A RU2006104109A (ru) 2006-07-27
RU2365046C2 true RU2365046C2 (ru) 2009-08-20

Family

ID=34221832

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2006104109/09A RU2365046C2 (ru) 2003-08-13 2003-08-18 Подсказки о маршруте

Country Status (14)

Country Link
EP (1) EP1654665A4 (ru)
JP (2) JP2007521684A (ru)
KR (1) KR101026600B1 (ru)
AU (1) AU2003263873B2 (ru)
BR (1) BR0318416A (ru)
CA (1) CA2532185A1 (ru)
IL (1) IL173157A (ru)
MX (1) MXPA06001530A (ru)
MY (1) MY144263A (ru)
NO (1) NO20060471L (ru)
NZ (1) NZ544663A (ru)
RU (1) RU2365046C2 (ru)
TW (1) TWI337822B (ru)
WO (1) WO2005020085A1 (ru)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266294B2 (en) 2003-08-13 2012-09-11 Microsoft Corporation Routing hints
US7882251B2 (en) 2003-08-13 2011-02-01 Microsoft Corporation Routing hints
US7340744B2 (en) * 2005-04-08 2008-03-04 Cisco Technology, Inc. System and method for optimizing sessions and network resources in a loadbalancing environment
KR100825724B1 (ko) * 2005-12-08 2008-04-29 한국전자통신연구원 직접접속방식을 적용하는 고속 전송이 가능한PMEM(PCI Memory)를 이용한 객체 기반저장시스템 및 그 시스템에서의 전송 방법
KR100892609B1 (ko) 2007-03-22 2009-04-09 주식회사 올앳 보안 통신 시스템, 방법, 및 상기 방법을 실행시키기 위한컴퓨터 프로그램을 기록한 매체
CN101296176B (zh) * 2007-04-25 2010-12-22 阿里巴巴集团控股有限公司 一种基于群集的数据处理方法和装置
US8447881B2 (en) * 2008-09-02 2013-05-21 Microsoft Corporation Load balancing for services
JP5218323B2 (ja) * 2009-08-07 2013-06-26 富士通株式会社 中継装置及び転送ルールに関連する情報処理方法並びにプログラム
TWI396089B (zh) * 2009-10-16 2013-05-11 Moxa Inc 以參數提供多通道傳輸串列資料之裝置及其方法
EP2501107B1 (en) * 2011-03-15 2014-01-22 Amadeus S.A.S. Method and system for providing a session in a heterogeneous environment
JP2013239045A (ja) * 2012-05-15 2013-11-28 Hitachi Ltd シンクライアントシステム及びリモートアクセス方法
KR102043658B1 (ko) * 2013-08-30 2019-11-12 한국전력공사 일방향 데이터 전송 장치 및 그 방법
CN111385377B (zh) * 2020-03-03 2022-08-09 深信服科技股份有限公司 一种ip地址冲突处理方法、设备及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05327704A (ja) * 1992-05-15 1993-12-10 Oki Electric Ind Co Ltd 一斉同報通信システム及びメッセージ生成装置
JPH1051459A (ja) * 1996-07-31 1998-02-20 Oki Electric Ind Co Ltd Atm交換機およびatmネットワークならびにマルチキャスト設定方法
US6085247A (en) * 1998-06-08 2000-07-04 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers
US6539494B1 (en) * 1999-06-17 2003-03-25 Art Technology Group, Inc. Internet server session backup apparatus
US6374300B2 (en) 1999-07-15 2002-04-16 F5 Networks, Inc. Method and system for storing load balancing information with an HTTP cookie
JP2001265680A (ja) * 2000-03-15 2001-09-28 Fujitsu Ltd 複数メディアのセッションを管理する装置および方法
US6947992B1 (en) * 2000-05-01 2005-09-20 International Business Machines Corporation Maintaining HTTP session affinity in a cluster environment
US7193980B2 (en) * 2000-07-06 2007-03-20 Nortel Networks Limited Continuation session attribute
JP2002176432A (ja) * 2000-12-05 2002-06-21 Sony Corp 通信中継装置、通信中継方法、および通信端末装置、並びにプログラム記憶媒体
JP2002189646A (ja) * 2000-12-22 2002-07-05 Matsushita Electric Ind Co Ltd 中継装置
JP3963690B2 (ja) * 2001-03-27 2007-08-22 富士通株式会社 パケット中継処理装置
JP2002351760A (ja) * 2001-05-30 2002-12-06 Mitsubishi Electric Corp サーバ負荷分散装置、サーバ負荷分散方法およびその方法をコンピュータに実行させるプログラム
US7406524B2 (en) 2001-07-26 2008-07-29 Avaya Communication Isael Ltd. Secret session supporting load balancer
US7243366B2 (en) * 2001-11-15 2007-07-10 General Instrument Corporation Key management protocol and authentication system for secure internet protocol rights management architecture
US7644434B2 (en) * 2002-04-25 2010-01-05 Applied Identity, Inc. Computer security system
US7373423B2 (en) * 2002-09-11 2008-05-13 Trend Micro Incorporated Network infrastructure management and data routing framework and method thereof

Also Published As

Publication number Publication date
IL173157A (en) 2011-10-31
EP1654665A4 (en) 2010-06-30
TWI337822B (en) 2011-02-21
JP4828619B2 (ja) 2011-11-30
EP1654665A1 (en) 2006-05-10
RU2006104109A (ru) 2006-07-27
BR0318416A (pt) 2006-08-01
AU2003263873A1 (en) 2005-03-10
JP2007521684A (ja) 2007-08-02
KR101026600B1 (ko) 2011-04-04
MY144263A (en) 2011-08-29
MXPA06001530A (es) 2006-05-15
NO20060471L (no) 2006-03-16
WO2005020085A1 (en) 2005-03-03
KR20060070529A (ko) 2006-06-23
JP2009260988A (ja) 2009-11-05
TW200507548A (en) 2005-02-16
NZ544663A (en) 2008-09-26
AU2003263873B2 (en) 2010-04-08
IL173157A0 (en) 2006-06-11
CA2532185A1 (en) 2005-03-03

Similar Documents

Publication Publication Date Title
US8918525B2 (en) Routing hints
US8266294B2 (en) Routing hints
JP4828619B2 (ja) ルーティングヒント
US7245622B2 (en) Allowing IPv4 clients to communicate over an IPv6 network when behind a network address translator with reduced server workload
US7415536B2 (en) Address query response method, program, and apparatus, and address notification method, program, and apparatus
Apostolopoulos et al. Design, implementation and performance of a content-based switch
US7149803B2 (en) Method for content distribution in a network supporting a security protocol
US8737210B2 (en) Load balancing SCTP associations using VTAG mediation
KR101779029B1 (ko) 콘텐트-중심 네트워크들을 통한 서비스 가상화
US11202252B2 (en) Inclusion of a message proxy in a service based architecture
CN1917512B (zh) 一种建立对等直连通道的方法
WO2023116165A1 (zh) 网络负载均衡方法、装置、电子设备、介质和程序产品
US20120233240A1 (en) Sctp association endpoint relocation in a load balancing system
US20210226815A1 (en) Communications bridge
WO2023071522A1 (zh) 建立连接的方法、装置、存储介质及电子装置
WO2022083385A1 (en) Network nodes and methods therein for providing backup network function
JP2002354048A (ja) ルータ装置
JP2011166312A (ja) 仮想プライベートネットワークシステム、通信方法及びコンピュータプログラム
JP2005045678A (ja) ネットワークを介したホスト間の通信方法
Knight et al. Using multicast communications to distribute code and data in wide area networks
CN117318974A (zh) 用于代理设备的非转换端口超额订阅
Andersson Network Address Translator Traversal for the Peer-to-Peer Session Initiation Protocol on Mobile Phones
Andersson Osoitteenmuuntajien läpäisy vertaisverkon istunnonaloitusprotokollaa käyttävälle matkapuhelimelle

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20130819