АРХИТЕКТУРА СИСТЕМЫ ОБСЛУЖИВАНИЯ ПОЛИТИК ДЛЯ СЕАНСОВ, СОЗДАВАЕМЫХ С ИСПОЛЬЗОВАНИЕМ STUN
POLICY SERVICE SYSTEM ARCHITECTURE FOR SESSIONS CREATED USING STUN

Уровень техники
Вследствие продолжения расширения технологии связи может потребоваться свести вместе много разных видов связи, например, службы коротких сообщений (SMS), службы передачи мультимедийных сообщений (MMS), электронный обмен сообщениями (электронная почта, e-mail), мгновенный обмен сообщениями (IM), статус присутствия в режиме он-лайн, а также передачу голоса и видео по сети. Одним таким типом связи, который приобретает все большую популярность, являются сеансы передачи голоса по IP-протоколу (VoIP). Обычно системы VoIP взаимодействуют с обычными коммутируемыми телефонными сетями общего пользования (PSTN) для обеспечения возможности пользователям осуществлять телефонные вызовы с использованием обычных телефонов наземной линии связи, мобильных телефонов и других устройств связи. Однако другие устройства связи, например, микрофоны и камеры, подключенные к различным вычислительным устройствам, например персональным компьютерам, также обеспечивают возможность установления сеансов VoIP.
Одним недостатком VoIP является то, что, когда голосовые данные и/или видеоданные передаются по сети с коммутацией пакетов, эта технология конкурирует с другими сетевыми ресурсами, которые используются обычными приложениями передачи данных. Если сеть перегружена, то может не существовать достаточного количества ширины полосы пропускания для каждого приложения. В результате это повлияет не только на доступ к данным и передачу данных обычными приложениями, но также может быть снижено качество обслуживания сеанса VoIP.
Варианты осуществления настоящего изобретения выполнены с учетом этих и других соображений. Кроме того, несмотря на то, что рассмотрены относительно конкретные проблемы, должно быть понятно, что варианты осуществления настоящего изобретения не ограничиваются решением конкретных проблем, обозначенных в Уровне техники.
Сущность изобретения
В этом разделе «Сущность изобретения» в упрощенном виде предоставлен набор идей, которые описаны ниже в разделе «Подробное описание». В этом разделе «Сущность изобретения» нет намерения обозначать основные или существенные признаки заявленного предмета изобретения, также нет намерения использовать его при определении объема заявленного предмета изобретения.
Описанные в этом документе варианты осуществления предназначены для задания политик соединения для множества сетевых путей из первой оконечной точки во вторую оконечную точку, управления ими и осуществления текущего контроля над ними. В вариантах осуществления принимается набор адресов-кандидатов из первой оконечной точки и набор адресов-кандидатов из второй оконечной точки. Каждый адрес-кандидат первой оконечной точки объединяется в пару с каждым адресом-кандидатом второй оконечной точки для создания множества пар адресов-кандидатов. Каждая пара адресов-кандидатов имеет ассоциированный сетевой путь. Сетевой путь является маршрутом, по которому потоки данных передаются в различные оконечные точки и из них. После определения всех сетевых путей между каждой парой адресов-кандидатов для каждой пары сетевых адресов и ассоциированных сетевых путей задается политика соединения.
Варианты осуществления могут быть реализованы как компьютерный процесс, вычислительная система или как изделие, например, компьютерный программный продукт или машиночитаемый носитель информации. Компьютерный программный продукт может быть компьютерным носителем данных, читаемым компьютерной системой и кодирующим компьютерную программу, состоящую из машинных команд, для исполнения компьютерного процесса. Компьютерный программный продукт может также быть сигналом, передаваемым на несущей, читаемым вычислительной системой и кодирующим компьютерную программу, состоящую из машинных команд, для исполнения компьютерного процесса.
Краткое описание чертежей
Варианты осуществления настоящего раскрытия могут быть наиболее быстро описаны со ссылкой на прилагаемые чертежи, в которых используется сквозная нумерация и в которых:
на фиг.1 изображена блок-схема системы для задания политик соединения для множества сетевых путей согласно одному варианту осуществления.
Фиг.2 - последовательность операций для задания политик соединения для множества сетевых путей согласно одному варианту осуществления.
На фиг.3A и фиг.3B изображены типовые списки адресов-кандидатов и получающийся в результате пары адресов-кандидатов согласно одному варианту осуществления.
На фиг.4 изображены типовые сетевые пути между первой оконечной точкой и второй оконечной точкой согласно одному варианту осуществления.
На фиг.5 изображена вычислительная среда для реализации вариантов осуществления, раскрытых в этом описании.
Подробное описание
Ниже более полно описаны различные варианты осуществления со ссылкой на прилагаемые чертежи, которые являются частью этого описания и на которых изображены конкретные варианты осуществления для осуществления изобретения на практике. Однако варианты осуществления могут быть реализованы во многих различных формах, и не следует считать, что они ограничены вариантами осуществления, изложенными в этом документе, наоборот, эти варианты осуществления предоставлены для полного и завершенного раскрытия предмета изобретения и передачи в полном объеме изобретения специалистам в данной области техники. Варианты осуществления могут быть осуществлены на практике в виде способов, систем или устройств. Соответственно, варианты осуществления могут быть реализованы аппаратными средствами, полностью реализованы программными средствами или в виде комбинации аспектов аппаратных и программных средств.
Варианты осуществления в целом относятся к заданию политик соединения для сетевых путей между двумя или несколькими оконечными точками, управлению ими и осуществлению текущего контроля над ними. Согласно вариантам осуществления каждая оконечная точка имеет один или несколько адресов-кандидатов. Каждый адрес-кандидат из каждой из разных оконечных точек объединены в пары друг с другом для создания пар адресов-кандидатов. После этого определяется сетевой путь, который соединяет оконечные точки через пары адресов-кандидатов, и каждому сетевому пути назначается политика. Эти сетевые пути могут использоваться для передачи данных между двумя оконечными точками. В вариантах осуществления передачей данных между оконечными точками управляют посредством политики. Например, политика может предписывать то, какие данные могут передаваться по некоторому сетевому пути, или политика может предписывать то, какая ширина полосы пропускания может использоваться для этой передачи данных.
На фиг.1 изображена система для задания политики соединения, поддерживания ее и осуществления текущего контроля над ней для различных сетевых путей, которые существуют между двумя оконечными точками, согласно вариантам осуществления. Как изображено на фиг.1, система может содержать оконечную точку-отправитель 110 и оконечную точку 130 приема. В одном варианте осуществления оконечная точка-отправитель 110 пытается установить сетевой сеанс с оконечной точкой 130 приема. Оконечная точка-отправитель 110 и оконечная точка 130 приема могут быть одним из телефона, мобильного или малогабаритного устройства, персонального компьютера или ноутбука или любого другого вычислительного устройства, которое может передавать и/или принимать данные по сети (не изображено). Сеанс может быть сеансом телефонной связи для передачи голоса по IP-протоколу (VoIP). Как кратко рассмотрено выше, VoIP обеспечивает возможность передачи голосовой связи, а также других данных, например видео, по интернету или другим сетям в различные оконечные точки. Оконечные точки могут быть локальными оконечными точками или удаленными оконечными точками. Несмотря на то, что в этом описании конкретно упоминается сеанс телефонной связи VoIP, настоящее описание изобретения не ограничивается такими сеансами. Предполагается, что при любом типе передачи данных между оконечными точками могут использоваться способы настоящего раскрытия предмета изобретения.
Оконечная точка-отправитель 110 может иметь один или несколько адресов-кандидатов (например, адресов Интернет-протокола (IP)), которые она может использовать для установления сеанса передачи данных со второй оконечной точкой. Каждая оконечная точка может иметь множество адресов-кандидатов при наличии нескольких доступных локальных IP-адресов, которые находятся за преобразователем сетевых адресов (NAT), или с использованием услуг сервера STUN. Как известно в данной области техники, IP-адресом является числовой идентификатор, назначаемый устройству, которое участвует в сетевом сеансе. IP-адрес однозначно идентифицирует конкретное устройство, в которое отправляются данные и из которого принимаются данные.
В вариантах осуществления при попытке установить сеанс с удаленной оконечной точкой, например, оконечной точкой 130 приема, оконечная точка-отправитель 110 передает запрос 111, или сеанс сигнализации, через уровень сетевой сигнализации сети. Запрос включает в себя данные для установления сеанса и его согласования между оконечной точкой-отправителем 110 и оконечной точкой 130 приема. Запрос 111 может быть направлен по маршруту через сервер 120. Согласно одному варианту осуществления сервер 120 может включать в себя сервер сигнализации, выполненный с возможностью направлять запрос по определенному маршруту между оконечной точкой-отправителем 110 и оконечной точкой 130 приема. Сервер 120 также может включать в себя сервер ретрансляции, выполненный с возможностью предоставления дополнительного адреса-кандидата одной из двух оконечных точек, который может использоваться для обмена данными в пределах сеанса. В другом варианте осуществления сервер ретрансляции и сервер сигнализации могут быть отдельными объектами. Сервер 120 пересылает запрос 111 в оконечную точку 130 приема. Получающийся в результате сеанс сигнализации для согласования между двумя оконечными точками может основываться на сеансе протокола уровня сетевой сигнализации, например, протокола инициации сеансов (SIP).
Информация, отправляемая оконечной точкой-отправителем 110, также включает в себя, с запросом 111, список адресов-кандидатов 112. Адреса-кандидаты 112 являются IP-адресами, ассоциированными с оконечной точкой-отправителем 110. В одном варианте осуществления оконечная точка-отправитель 110 выполняет фазу обнаружения кандидатов, во время которой оконечная точка-отправитель 110 обнаруживает IP-адреса, которые она может использовать для установления сетевого сеанса с другой оконечной точкой. Каждый адрес-кандидат может использоваться для установления сетевого сеанса с локальными и удаленными оконечными точками и для передачи данных в/из них.
Как рассмотрено вкратце, система может также включать в себя сервер 120. Согласно вариантам осуществления сервер 120 может включать в себя сервер сигнализации, выполненный с возможностью пересылки запроса 111, вместе с адресами-кандидатами 112 оконечной точки-отправителя 110, в оконечную точку 130 приема. В вариантах осуществления оконечная точка 130 приема может быть оконечной точкой, находящейся в одной частной сети с оконечной точкой-отправителем 130. В качестве альтернативы, оконечная точка приема может быть вне сети оконечной точки-отправителя 110. Соответственно, запрос 111, возможно, должен сделать несколько скачков по сетевому пути до того, как он поступит в оконечную точку 130 приема. В одном варианте осуществления сервер 120 может также включать в себя сервер ретрансляции, выполненный с возможностью предоставления дополнительных адресов-кандидатов либо оконечной точке-отправителю 110 или оконечной точке 130 приема. В зависимости от того, какая оконечная точка принимает дополнительные адреса, эти дополнительные адреса добавляются в список адресов-кандидатов одной из двух оконечных точек.
После приема запроса 111 сеанса и адресов-кандидатов 112 оконечной точки-отправителя 110 оконечной точкой 130 приема оконечная точка 130 приема вступает в фазу обнаружения кандидатов. В фазе обнаружения кандидатов оконечная точка 130 приема определяет свои собственные локальные адреса-кандидаты 132. Как часть фазы обнаружения кандидатов, оконечная точка 130 приема может обнаруживать дополнительные адреса-кандидаты, которые она может использовать. Эти дополнительные адреса-кандидаты могут быть предоставлены сервером 120 или другим сервером в системе.
После выхода из фазы обнаружения кандидатов оконечная точка 130 приема передает запрос, список адресов-кандидатов 112 из оконечной точки-отправителя 110 и свои собственные адреса-кандидаты 132 на сервер 140. Запрос может быть запросом 111 сеанса, сначала переданным оконечной точкой-отправителем 110. Запрос может также включать в себя запрос на выделение адресов-кандидатов 132 оконечной точки 130 приема на сервере 140.
Согласно вариантам осуществления сервер 140 может быть сервером STUN (Простое прохождение UDP через серверы NAT (Преобразователь сетевых адресов)). В вариантах осуществления сервер STUN выполнен с возможностью приема обоих наборов адресов-кандидатов (например, адресов-кандидатов 112 из оконечной точки-отправителя, а также адресов-кандидатов 132 оконечной точки 130 приема) и формирования набора пар 142 адресов-кандидатов. Пары 142 адресов-кандидатов формируются посредством комбинирования одного из адресов-кандидатов 112 из оконечной точки-отправителя 110 с одним из локальных адресов-кандидатов 132 оконечной точки 130 приема. В вариантах осуществления каждый адрес-кандидат оконечной точки-отправителя 110 объединяется в пару с каждым локальным адресом-кандидатом оконечной точки 130 приема. Это далее раскрывается ниже со ссылкой на фиг.3A и фиг.3B.
В вариантах осуществления сервер 140 STUN может также иметь пул своих собственных локальных адресов. При запросе сервер 140 STUN выделяет несколько или все свои адреса сервера STUN запрашивающей оконечной точке 130. В ответ на запрос адреса сервера STUN добавляются в список локальных адресов-кандидатов 132 оконечной точки-отправителя 130. Следовательно, когда между оконечной точкой-отправителем 110 и оконечной точкой 130 приема сеанс установлен, адреса, известные серверу 140 STUN, могут также использоваться как адреса-кандидаты оконечной точки 130 приема. В еще одних вариантах осуществления сервер 140 STUN может также добавлять любые адреса NAT в список адресов-кандидатов 132 оконечной точки 130 приема. Когда запрос 111, передаваемый из оконечной точки 130 приема на сервер 140 STUN проходит через любые NAT, каждый адрес NAT также рассматривается как часть адресов-кандидатов 132 оконечной точки 130 приема.
В других вариантах осуществления может требоваться, чтобы оконечная точка 130 приема передавала данные 134 сеанса на сервер 140 STUN. Данные 134 сеанса содержат информацию относительно запрашиваемого типа сеанса между оконечной точкой-отправителем 110 и оконечной точкой 130 приема. Между оконечными точками может быть запрошено много разных типов сеанса. Возможные варианты включают в себя, например, сеанс VoIP, видеосеанс или комбинацию сеансов VoIP/видео.
Данные 134 сеанса могут также включать в себя запрос ширины полосы пропускания. В зависимости от типа запрашиваемого сеанса (например, VoIP, видео и т.д.) либо оконечная точка-отправитель 110 или оконечная точка 130 приема могут запрашивать выделение определенной величины ширины полосы пропускания на сетевом пути для запрашиваемого сеанса. Например, если запрашиваемым типом сеанса является сеанс VoIP, то данные 134 сеанса могут включать в себя запрос ширины полосы пропускания на 50 Кбит/с. Если, однако, запрашиваемым типом сеанса является сеанс VoIP с соответствующими видеоданными, то запрашиваемой шириной полосы пропускания может являться 100 Кбит/с.
После завершения формирования пары 142 адресов-кандидатов список пар 142 адресов-кандидатов передается на сервер 150 политик. На основе информации о конфигурации, соответствующей каждой паре адресов-кандидатов, сервер 150 политик может определять подсеть, которой принадлежит каждый адрес-кандидат каждой пары адресов-кандидатов. Сервер 150 политик может отображать каждую подсеть в различные местоположения и определять сетевой путь, который соединяет оконечные точки, представленные парой адресов-кандидатов.
В альтернативном варианте осуществления оконечная точка 130 приема может связываться с сервером 140 STUN для обнаружения адресов сервера сервера 140 STUN, а также любых адресов NAT, известных серверу 140 STUN. После приема этих дополнительных адресов оконечной точкой 130 приема она может отправлять эти адреса непосредственно на сервер 150 политик с игнорированием фазы формирования адресов-кандидатов. Сервер 150 политик может после этого определять сетевые пути, которые соединяют каждую оконечную точку и определять политику для каждого пути, как описано ниже.
В вариантах осуществления сервер 150 политик задает одну или несколько политик для каждого сетевого пути, ассоциированного с каждой из пар 142 адресов-кандидатов. Согласно вариантам осуществления политиками являются политики использования сети. Например, в политиках может указываться общая величина ширины полосы пропускания, допустимая на каждом сетевом пути, максимальная величина ширины полосы пропускания, выделенной для каждого сеанса, использующего упомянутый сетевой путь, общее количество передач данных или телефонных вызовов, разрешенных на конкретном сетевом пути, или любая их комбинация. Варианты осуществления обеспечивают конфигурирование каждой политики, осуществление текущего контроля над ней и ее поддерживание IT-администратором.
В вариантах осуществления данные 134 сеанса могут также передаваться из сервера 140 STUN на сервер 150 политик. Как раскрыто выше, данные 134 сеанса могут включать в себя тип сеанса, запрашиваемую величину ширины полосы пропускания или их комбинацию. Сервер 150 политик может быть выполнен с возможностью анализа запрошенного типа сеанса и определения того, какие пары адресов-кандидатов и ассоциированных политик допускают запрошенный тип сеанса. Сервер 150 политик также определяет то, допускает ли каждый сетевой путь, ассоциированный с парами адресов-кандидатов, выделение запрашиваемой величины ширины полосы пропускания. В еще одном варианте осуществления политика может запрещать использование определенных пар адресов-кандидатов. В таких случаях эти пары адресов-кандидатов заранее отклоняются при всех проверках возможности соединения, которые выполняются оконечной точкой 130 приема, как будет более подробно рассмотрено ниже.
Когда эти определения выполнены, сервер 150 политик передает данные 152 политики на сервер 140 STUN. Сервер 140 STUN после этого передает, в ответном сообщении, данные 152 политики в оконечную точку 130 приема.
В вариантах осуществления данные 152 политики включают в себя пары 142 адресов-кандидатов, ассоциированные сетевые пути и политики использования сети для каждого пути. Поскольку каждая оконечная точка может иметь несколько адресов-кандидатов, то при установлении сеанса как оконечная точка-отправитель, так и оконечная точка приема могут иметь несколько сетевых путей для выбора. Наличие множества доступных сетевых путей обеспечивает механизм возврата в ситуациях, в которых один из сетевых путей отклоняется, когда политика одного из сетевых путей не разрешает запрошенный тип соединения или когда один из сетевых путей не имеет доступных запрашиваемых ресурсов. Например, если запрашиваемая величина ширины полосы пропускания не доступна на одном сетевом пути, то может быть выбран другой сетевой путь с доступной шириной полосы пропускания.
В другом варианте осуществления данные 152 политики могут включать в себя только пары адресов-кандидатов, имеющие политики, которые допускают запрашиваемый тип сеанса, указываемый в данных 152 политики. Например, если запрашиваемый тип сеанса включает в себя сеанс для передачи как аудио, так и видеоданных, то сервер 150 политик включает в себя только пары адресов-кандидатов, имеющие политики, которые допускают передачу как аудио, так и видеоданных по всему сетевому пути.
Другие варианты осуществления обеспечивают то, что сервер 150 политик может формировать маркер 154 авторизации. Маркер 154 авторизации передается, вместе с данными 152 политики, на сервер 120 (например, сервер сигнализации). Маркер авторизации обеспечивает то, что оконечные точки не могут разрушать политику и продолжать установление сеанса без действительного маркера. Для завершения сеанса согласования между оконечными точками может требоваться признание маркера 154 авторизации одной из оконечных точек. В вариантах осуществления маркер 154 авторизации передается в оконечную точку-отправитель 110 из оконечной точки 130 приема как часть ответа на запрос 111 сигнализации.
Когда оконечная точка 130 приема принимает ответ, включающий в себя данные 152 политики из сервера 140 STUN, она может выполнять проверку возможности соединения STUN. Как часть проверки возможности соединения, все сетевые пути, которые имеют политику, которая не допускает запрашиваемый сеанс, автоматически отклоняются. Кроме того, если политика запрещает использование конкретной пары кандидатов, то эта конкретная пара адресов-кандидатов уже заранее отклоняется при проверке возможности соединения. Оконечная точка 130 приема передает только допустимые адреса 136 (например, пары сетевых адресов и ассоциированные сетевые пути, которые допускают запрашиваемый тип сеанса) в оконечную точку-отправитель 110. Соответственно, сеанс может быть согласован между этими двумя оконечными точками с использованием только сетевых путей, которые поддерживают запрашиваемый тип сеанса.
В еще одних вариантах осуществления каждая из оконечной точки 130 приема и оконечной точки-отправителя 110 может выполнять проверки возможности соединения. Поскольку каждая оконечная точка может выполнять проверки возможности соединения, могут возникнуть ситуации, когда одна оконечная точка (например, оконечная точка-отправитель 110) не знает, что конкретная пара адресов-кандидатов заранее отклонена при проверке возможности соединения, выполненной в другой оконечной точке (например, оконечной точке 130 приема). В таких случаях оконечная точка-отправитель 110 может все еще пытаться осуществить проверку возможности соединения с использованием заранее отклоненной пары адресов-кандидатов. При выполнении проверки возможности соединения с заранее отклоненной парой адресов-кандидатов в оконечной точке-отправителе 110 оконечная точка 130 приема игнорирует эту предпринятую проверку возможности соединения, ассоциированную с заранее отклоненной парой адресов-кандидатов. Поскольку проверка возможности соединения была проигнорирована на конце приема, оконечная точка-отправитель 110 рассматривает заранее отклоненную пару адресов-кандидатов как отклоненную при проверке возможности соединения. Соответственно, заранее отклоненная пара адресов-кандидатов не будет использоваться для сеанса.
Варианты осуществления обеспечивают то, что либо оконечная точка-отправитель 110 или оконечная точка 130 приема могут выбирать то, какой сетевой путь из множества сетевых путей должен использоваться для сеанса. Определение может выполняться на основе первого идентифицированного сетевого пути, который разрешает запрашиваемый сеанс. В качестве альтернативы может быть реализована система рейтинговых оценок, в которой сервером политик сетевым путям дается рейтинговая оценка качества обслуживания. Факторы рейтинговой оценки могут включить в себя показатели качества сеанса, измеряемые системным модулем. В еще одних вариантах осуществления рейтинговая оценка может быть основана на том, допускает ли каждый сетевой путь запрашиваемый тип сеанса, и/или имеет ли доступную запрашиваемую ширину полосы пропускания. В еще одних вариантах осуществления система рейтинговых оценок может быть комбинацией любых из вышеупомянутых.
Также предполагается, что некоторые запрашиваемые типы сеанса могут быть недопустимыми на сетевом пути из-за ограничений политики, или на любом из сетевых путей просто не доступна запрашиваемая ширина полосы пропускания. Например, в данных 134 сеанса может указываться то, что запрашиваемым типом сеанса является аудио/видеосеанс. Кроме того, данные 134 сеанса могут запрашивать, чтобы на сетевом пути для аудио/видеосеанса была выделена скорость передачи 100 Кбит/с. После оценки всех пар адресов и определения их соответствующих политик может быть обнаружено, что ни одна из получающихся в результате пар адресов-кандидатов, ни их ассоциированные сетевые пути либо не допускают запрашиваемый тип сеанса (например, аудио/видеосеанс), или не имеют доступную запрашиваемую ширину полосы пропускания (например, 100 Кбит/с).
В таком случае варианты осуществления обеспечивают то, что либо оконечная точка 130 приема или оконечная точка-отправитель 110 могут модифицировать запрашиваемый тип сеанса и/или запрашиваемую ширину полосы пропускания для осуществления запроса в пределах параметров, по меньшей мере, одной из политик, ассоциированной с одним из сетевых путей. В продолжение вышеупомянутого возможного варианта оконечная точка 130 приема может модифицировать тип сеанса до только аудиосеанса. В результате оконечная точка 130 приема передает в оконечную точку-отправитель 110 допустимые адреса 136 (например, пары адресов-кандидатов), имеющих политики, которые допускают выполнение запрашиваемого аудиосеанса.
Другие варианты осуществления обеспечивают то, что система по фиг.1 также включает в себя модуль 160 текущего контроля. Модуль 160 текущего контроля выполнен с возможностью осуществления текущего контроля над каждым сетевым путем между оконечными точками и сообщения о показателях качества сеанса серверу 150 политик. Модуль 160 текущего контроля может быть выполнен с возможностью приема сообщений из оконечных точек, вовлеченных в сеанс, о качестве практической работы. Другие варианты осуществления обеспечивают то, что модуль текущего контроля может также принимать сообщения относительно того, соблюдается ли политика для сетевого пути, качества обслуживания (QoS) на сетевом пути, того, установлен ли все еще сеанс между оконечными точками, величины ширины полосы пропускания, используемой для каждого сеанса, использующего сетевой путь, доступной ширины полосы пропускания на сетевом пути и общего количества сеансов, в настоящее время использующих сетевой путь. Модуль 160 обеспечивает возможность серверу 150 политик принимать обоснованные решения при задании политик для новых сеансов, которые должны быть установлены между новым набором оконечных точек, имеющих адреса-кандидаты, которые будут использовать идентичные сетевые пути или пересекаться с ними.
На фиг.2 изображена последовательность 200 операций для задания политик соединения для множества сетевых путей согласно одному варианту осуществления. Последовательность 200 операций может быть выполнена в любой подходящей вычислительной среде. Например, последовательность операций может быть исполнена системами, например, системой, изображенной на фиг.1. Следовательно, описание последовательности 200 операций может относиться, по меньшей мере, к одному из компонентов по фиг.1. Однако любая такая ссылка на компоненты по фиг.1 делается только для описания.
Последовательность 200 операций начинается на этапе 210, в котором оконечная точка 130 приема (фиг.1) принимает запрос сигнализации из оконечной точки-отправителя 110. В запрос сигнализации включено множество адресов-кандидатов, доступных для оконечной точки-отправителя 110. Согласно вариантам осуществления запрос сигнализации может быть передан из оконечной точки-отправителя 110 в оконечную точку 130 приема посредством протокола уровня сетевой сигнализации, например протокола инициации сеансов (SIP).
После приема запроса сигнализации и адресов-кандидатов этап 220 обеспечивает то, что оконечная точка 130 приема вступает в фазу обнаружения кандидатов. В фазе обнаружения кандидатов оконечная точка 130 приема идентифицирует все локальные адреса-кандидаты, известные оконечной точке 130 приема.
Этап 230 обеспечивает то, что адреса-кандидаты, принятые из оконечной точки-отправителя 110, и адреса-кандидаты из оконечной точки 130 приема принимаются на сервере. Согласно вариантам осуществления сервер является сервером 140 STUN. Оконечная точка-отправитель 130, как часть фазы обнаружения кандидатов, может передавать запрос на сервер 140 STUN, на выделение сервером 140 STUN IP-адресов, хранящихся на сервере STUN, как адресов-кандидатов оконечной точки 130 приема. Соответственно, при установлении сеанса оконечная точка 130 приема может использовать как свои собственные локальные адреса-кандидаты, так и IP-адреса, хранящиеся на сервере 140 STUN. Кроме того, этап 230 обеспечивает то, что в случае запроса, передаваемого из оконечной точки 130 приема на сервер 140 STUN, проходящего через NAT, сервер STUN также включает адрес NAT как адрес-кандидат оконечной точки-отправителя 130. В результате окончательный список адресов-кандидатов оконечной точки 130 приема может содержать локальные адреса-кандидаты оконечной точки приема, локально хранящиеся IP-адреса сервера STUN, а также любые адреса NAT, через который проходит запрос.
Этап 230 также предусматривает формирование списка пар адресов-кандидатов. Согласно вариантам осуществления каждый адрес-кандидат в списке адресов-кандидатов из оконечной точки-отправителя 110 объединяется в пару с каждым адресом-кандидатом из списка адресов-кандидатов оконечной точки 130 приема. Как раскрыто выше, адреса-кандидаты из оконечной точки-отправителя 110 могут также быть объединены в пары с адресами, выделенными из сервера STUN, адресами из сервера ретрансляции и/или любыми возможными адресами NAT, которые были включены как адреса-кандидаты оконечной точки 130 приема. Получающиеся в результате пары адресов-кандидатов являются матрицей n×n адресов-кандидатов, где каждый адрес-кандидат из одной оконечной точки объединен в пару с каждым одним адресом из второй оконечной точки.
В вариантах осуществления сервер STUN может требовать, чтобы данные сеанса, соответствующие запрашивающему типу сеанса, принимались из одной из оконечных точек. Данные сеанса могут также включать в себя запрашиваемую величину ширины полосы пропускания для сеанса, несмотря на то, что это может не требоваться.
В вариантах осуществления, в которых требуются данные сеанса, последовательность может переходить к этапу 235. На этапе 235 определяется, приняты ли данные сеанса на сервере 140 STUN. Если данные сеанса, в которых указывается, по меньшей мере, запрашиваемый тип сеанса, не приняты, то запрос сеанса завершается, и сеанс между оконечными точками не устанавливается. В других вариантах осуществления, если данные сеанса, в которых указывается, по меньшей мере, тип сеанса, приняты, то последовательность может перейти к этапу 240. В вариантах осуществления, в которых запрос на ширину полосы пропускания не был включен в данные сеанса, сеанс может использовать максимальную величину ширины полосы пропускания, выделяемую политикой для этого конкретного типа сеанса.
Например, если в данных сеанса указывается, что запрашиваемым типом сеанса является аудиосеанс, но запрос ширины полосы пропускания не был включен, то запрашиваемый тип сеанса будет установлен на сетевом пути, имеющем политику, которая допускает запрашиваемый сеанс, но система выделит для сеанса только заданную по умолчанию величину ширины полосы пропускания (например, 50 Кбит/с). В еще одних вариантах осуществления сервер STUN может требовать, чтобы как тип сеанса, так и запрашиваемая/требуемая ширина полосы пропускания содержались в данных сеанса, иначе запрос будет отклонен.
На этапе 240 пары адресов-кандидатов передаются на сервер 150 политик. Этап 250 обеспечивает то, что сетевой путь для каждой пары адресов-кандидатов определяется сервером 150 политик. Сервер политик после этого определяет и/или задает политику для каждого сетевого пути и ассоциированной с ним пары адресов-кандидатов. Согласно вариантам осуществления политика может задавать максимальную величину ширины полосы пропускания, допустимую для запрашиваемого типа сеанса. В других вариантах осуществления политики могут задавать максимальное количество сеансов или максимальное количество вызовов на конкретном сетевом пути. Однако другие политики могут управлять тем, какие типы сеанса могут быть установлены на различных сетевых путях.
Когда политики для каждого сетевого пути заданы, этап 260 обеспечивает то, что пары адресов-кандидатов, ассоциированные сетевые пути вместе с ассоциированными политиками возвращаются на сервер 140 STUN. В вариантах осуществления сервер 140 STUN может сравнивать запрашиваемый тип сеанса, указанный в данных сеанса, с каждой из пар сетевых адресов и ассоциированными политиками. Если некоторые из сетевых путей не поддерживают запрашиваемый тип сеанса, или некоторые из сетевых путей не имеют доступную необходимую/запрашиваемую ширину полосы пропускания, или сетевые пути в настоящее время являются недоступными, то эти конкретные сетевые пути отклоняются при проверке возможности соединения сервером STUN. В результате эти конкретные сетевые пути удаляются из пар адресов-кандидатов (например, данных 152 политики) до возвращения в оконечную точку 130 приема. В альтернативных вариантах осуществления все пары сетевых адресов возвращаются в оконечную точку 130 приема, и проверки возможности соединения выполняются оконечной точкой 130 приема. Получающиеся в результате допустимые адреса 136 могут после этого быть переданы в оконечную точку-отправитель 110.
Когда пары адресов-кандидатов переданы в оконечную точку 130 приема из сервера 140 STUN, оконечная точка 130 приема может отправлять каждый допустимый адрес 136 в оконечную точку-отправитель 110. Допустимые адреса 136 могут включать в себя каждую пару сетевых адресов и ассоциированную политику, которая разрешает запрашиваемый тип сеанса. Допустимые адреса 136 могут быть включены как ответ на сеанс сигнализации, который был сначала передан оконечной точкой-отправителем 110. После приема запрашиваемый сеанс устанавливается с использованием, по меньшей мере, одного из сетевых путей и ассоциированной с ним политики.
На фиг.3A и фиг.3B изображены типовые списки адресов-кандидатов и получающийся в результате пары адресов-кандидатов согласно одному варианту осуществления. Оконечная точка-отправитель может передавать адреса-кандидаты 310 оконечной точки-отправителя в оконечную точку приема. Как изображено на фиг.3A, оконечная точка-отправитель имеет три доступных для нее адреса-кандидата при попытке установить сеанс. Несмотря на то, что адреса-кандидаты изображены как адреса IPv4, предполагается, что адреса IPv6 могут также использоваться. Кроме того, предполагается, что некоторые из адресов-кандидатов могут быть IP-адресами в частной сети и направляться по определенному маршруту через маршрутизатор или концентратор. Запросы сеанса могут отправляться из одной оконечной точки в другую оконечную точку в идентичной частной сети.
В продолжение вышеупомянутого возможного варианта, адреса-кандидаты 320 оконечной точки приема могут также включать в себя три разных адреса-кандидата. Как и в случае с адресами-кандидатами 310 оконечной точки-отправителя, адреса-кандидаты оконечной точки приема могут также быть адресами IPv6 и/или IPv4.
Согласно вариантам осуществления как адреса-кандидаты 310 оконечной точки-отправителя, так и адреса-кандидаты 320 оконечной точки приема передаются на сервер, например, сервер 140 STUN (фиг.1). При приеме адресов-кандидатов сервером 140 STUN сервер 140 STUN формирует пары 330 адресов-кандидатов. Как изображено, каждый адрес-кандидат из адресов-кандидатов 310 оконечной точки-отправителя объединен в пару с каждым адресом-кандидатом из (адресов)-кандидатов 320 оконечной точки приема. Получающиеся в результате пары 320 адресов-кандидатов содержат взаимно-однозначное отображение всех адресов-кандидатов как из оконечной точки-отправителя, так и из оконечной точки приема.
На фиг.3B изображен сценарий, в котором адреса-кандидаты 320 оконечной точки приема расширены и включают в себя адрес-кандидат (127.133.0.5), который хранился локально на сервере, например, на сервере 140 STUN (фиг.1). Адреса-кандидаты 320 оконечной точки приема могут также включать в себя любые адреса NAT, который запрос может пересекать, когда его отправляют из оконечной точки приема на сервер STUN. Во многом аналогично объединениям в пары адресов-кандидатов, раскрытым выше, каждый адрес-кандидат из адресов-кандидатов 310 оконечной точки-отправителя объединяется в пару с каждым адресом-кандидатом из адресов-кандидатов 320 оконечной точки приема в создаваемые пары 330 адресов-кандидатов. Пары адресов-кандидатов 330 могут после этого быть переданы на сервер политик, как описано выше.
На фиг.4 изображены типовые сетевые пути 400 и 420. Согласно вариантам осуществления каждый сетевой путь 400 и 420 состоит из одной из множества пар 330 адресов-кандидатов (фиг.3A-фиг.3B). Например, сетевой путь 400 содержит адрес-кандидат 208.77.188.166 из оконечной точки-отправителя и адрес-кандидат 172.184.5.10 из оконечной точки приема. Как изображено, сетевой путь может быть должен совершить некоторое количество скачков для прохождения по нему из оконечной точки-отправителя в оконечную точку приема и наоборот.
В вариантах осуществления каждый из сетевых путей 400 и 420 может иметь ассоциированную политику (например, политику 410 и 430 соответственно). Политика задается сервером политик. При задании политик для каждого сетевого пути пары адресов-кандидатов возвращаются в оконечную точку приема, и принимается решение относительно того, какой сетевой путь будет использоваться для сеанса. Это решение может быть принято частично на основе политики, ассоциированной с каждым из сетевых путей.
Например, в данных сеанса может указываться то, что запрашивается тип сеанса аудио/видео. В данных сеанса может также указываться запрос на использование ширины полосы пропускания в 150 Кбит/с. Когда пары адресов-кандидатов, сетевые пути и политики заданы, как описано выше, получающиеся в результате пары адресов-кандидатов возвращаются в оконечные точки. Принимается решение относительно того, какой сетевой путь будет использоваться для запрашиваемого сеанса.
В продолжение вышеупомянутого возможного варианта, сервер политик может возвращать сетевой путь 400 и ассоциированную с ним политику 410 в оконечную точку приема. Политика 410 может ограничивать сеансы на сетевом пути 400 до только аудиосеансов. Однако в политике может также указываться то, что сеансам, использующим этот конкретный сетевой путь, выделена ширина полосы пропускания в 150 Кбит/с. Напротив, политика 430 для сетевого пути 420 может допускать аудио/видеосеансы, но ограничивать ширину полосы пропускания для упомянутого сеанса до 100 Кбит/с.
Если ни один сетевой путь не предусматривает запрашиваемый тип сеанса или запрашиваемую ширину полосы пропускания, то запрос сеанса может быть приведен в соответствие с ограничениями либо политики 410 или 430. Например, если качество обслуживания в основном представляет интерес для аудиочасти сеанса, а видеоданные не обязательно требуются, то запрос сеанса может быть модифицирован до согласования только аудиопередач из каждой оконечной точки. В результате на сетевом пути 400 может быть установлен аудиосеанс. Если, однако, видео требуется для сеанса, то может быть выбран сетевой путь 420, и запрос сеанса может быть модифицирован так, чтобы удовлетворять требованию по ширине полосы пропускания в 100 Кбит/с, задаваемому политикой 430. В еще одних вариантах осуществления запрос сеанса может требоваться только для задания типа сеанса. В таких вариантах осуществления для сеанса может быть выбран любой сетевой путь, который допускает заданный тип сеанса, и нет необходимости модифицировать запрос сеанса.
Когда сеанс установлен между оконечной точкой-отправителем и оконечной точкой приема по конкретному сетевому пути (например, сетевому пути 400), то может осуществляться текущий контроль над этим сетевым путем за использованием ширины полосы пропускания, качеством обслуживания и другими показателями качества сеанса. Эти данные передаются на сервер политик. (Сервер) политик обеспечивает возможность принятия обоснованных решений относительно того, какие политики устанавливать на различных сетевых путях, когда принимаются новые запросы сеансов, и сервер политик задает новые политики, в свете любых существующих сеансов с использованием каждого сетевого пути.
Согласно фиг.5 вариант осуществления вычислительной среды для реализации различных вариантов осуществления, описанных в этом документе, включает в себя компьютерную систему, например, компьютерную систему 500. Любые компоненты описанных вариантов осуществления могут исполняться как клиентская компьютерная система, серверная компьютерная система, комбинация клиентской и серверной компьютерных систем, оконечные точки-отправители и оконечные точки приема и другие возможные вычислительные среды или системы, описанные в этом документе или в них. Например, базовая компьютерная система, применимая ко всем этим средам, описана далее в этом документе.
В своей наиболее существенной конфигурации компьютерная система 500 содержит, по меньшей мере, один блок обработки данных или процессор 504 и системную память 506. Наиболее существенная конфигурация компьютерной системы 500 изображена на фиг.5 пунктирной линией 502. В некоторых вариантах осуществления один или несколько компонентов описанной системы загружаются в системную память 506 и исполняются блоком 504 обработки данных из системной памяти 506. В зависимости от точной конфигурации и типа компьютерной системы 500 системная память 506 может быть энергозависимой (например, RAM), энергонезависимой (например, ROM, флэш-память и т.д.) или их некоторой комбинацией.
Кроме того, компьютерная система 500 может также иметь дополнительные признаки/функциональные возможности. Например, компьютерная система 500 включает в себя дополнительные носители информации 508, например, съемное и/или несъемное запоминающее устройство, включающее в себя, например, магнитные или оптические диски или магнитную ленту. В некоторых вариантах осуществления программное обеспечение или исполняемый код и любые данные, используемые для описанной системы, постоянно хранятся на носителях информации 508. Носители информации 508 включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители информации, реализованные любым способом или технологией для хранения информации, например, машиночитаемых команд, структур данных, программных модулей или других данных.
Системная память 506 и носители информации 508 являются возможными вариантами компьютерного носителя данных. Компьютерные носители данных включают в себя оперативное запоминающее устройство (RAM, ОЗУ), постоянное запоминающее устройство (ROM, ПЗУ), электрически-стираемое программируемое ПЗУ (EEPROM), электрически перепрограммируемое постоянное запоминающее устройство (FLASH) или другую технологию памяти, компакт-диск (CD-ROM), универсальные цифровые диски (“DVD”) или другой накопитель на оптических дисках, магнитофонные кассеты (МК), магнитную ленту (МЛ), накопитель на магнитных дисках (НМД), другие магнитные запоминающие устройства или любой другой носитель информации, который используется для хранения требуемой информации и к которому получают доступ посредством компьютерной системы 500 и процессора 504. Любые такие компьютерные носители данных могут быть частью компьютерной системы 500. В вариантах осуществления системная память 506 и/или носители информации 508 хранят данные, используемые для выполнения способов или формирования систем(ы), раскрытых в этом описании. В вариантах осуществления системная память 506 хранит информацию, например, данные 514 политик и/или адреса-кандидаты 516.
Компьютерная система 500 может также содержать соединение(я) 510 связи, которые обеспечивают возможность устройству обмениваться информацией с другими устройствами. В вариантах осуществления соединение(я) 510 связи может использоваться для передачи и приема сообщений между устройствами отправителя, посредническими устройствами и устройствами получателя. Соединение(я) 510 связи является возможным вариантом средств связи. Среды связи могут воплощать модулированный сигнал передачи данных, например несущую, или другой транспортный механизм и включают в себя любые среды доставки информации, которые могут воплощать машиночитаемые команды, структуры данных, программные модули или другие данные в модулированном сигнале передачи данных. Термин "модулированный сигнал данных" означает сигнал, одну или несколько характеристик которого установили или изменили таким образом, чтобы закодировать в этом сигнале данных информацию или сообщение. В качестве примера среды связи включают в себя проводные среды, например, проводную сеть или прямое проводное соединение, и беспроводные среды, например, акустические, радиочастотные, инфракрасные и другие беспроводные среды. В одном варианте осуществления способы, описанные выше, могут быть переданы по соединению(ям) 510 связи.
В некоторых вариантах осуществления компьютерная система 500 также включает в себя входные или выходные соединения 512 и интерфейсы и периферийные устройства, например, графический интерфейс пользователя. Устройство(а) ввода также называют интерфейсными указательными устройствами пользователя, и они включают в себя, например, клавиатуру, мышь, стилус, устройство речевого ввода, сенсорное устройство ввода и т.д. Устройство(а) вывода также называют дисплеями, и они включают в себя, например, дисплеи с электронно-лучевой трубкой, плазменные панели, жидкокристаллические панели, динамики, принтеры и т.д. Эти устройства, либо отдельно или в комбинации, соединенные с входными или выходными соединениями 512, используются для вывода на экран информации, как описано в этом документе. Все эти устройства известны в данной области техники, и нет необходимости подробно рассматривать их в данном описании.
В некоторых вариантах осуществления компонент, описанный в этом документе, содержит такие модули или машинные команды, исполняемые компьютерной системой 500, которые могут быть сохранены на компьютерном носителе данных и других материальных носителях информации и переданы в средах связи. Компьютерные носители данных включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители информации, реализованные любым способом или технологией для хранения информации, например, машиночитаемых команд, структур данных, программных модулей или других данных. Комбинации любых приведенных выше носителей и сред также следует относить к читаемым носителям информации. В некоторых вариантах осуществления компьютерная система 500 является частью сети, которая хранит данные на удаленных носителях информации для использования компьютерной системой 500.
В этом раскрытии предмета изобретения описаны некоторые варианты осуществления настоящего раскрытия предмета изобретения со ссылкой на прилагаемые чертежи, на которых изображены только некоторые из возможных вариантов осуществления. Однако могут быть воплощены другие аспекты во многих других формах, и они не должны рассматриваться как ограничения вариантов осуществления или возможных вариантов, изложенных в этом описании. Напротив, эти варианты осуществления и возможные варианты предоставлены для полноты и законченности этого раскрытия изобретения и передачи возможных вариантов осуществления в полном объеме специалистам в данной области техники.
Несмотря на то, что варианты осуществления сформулированы конкретно для структурных признаков, методологических действий и машиночитаемых носителей информации, содержащих такие действия, следует понимать, что возможные варианты осуществления, как определено в прилагаемой формуле изобретения, не обязательно ограничены конкретными описанными структурой, действиями или носителями информации. Специалисту в данной области техники будут очевидны другие варианты осуществления или усовершенствования, которые находятся в пределах объема и существа настоящего раскрытия предмета изобретения. Следовательно, конкретные структура, действия или носители информации раскрыты только как иллюстративные варианты осуществления. Раскрытие предмета изобретения определяется прилагаемой формулой изобретения.