СПОСОБ ПЕРЕКЛЮЧЕНИЯ КАНАЛОВ, ЭЛЕКТРОННОЕ УСТРОЙСТВО И НОСИТЕЛЬ ХРАНЕНИЯ ДАННЫХ Российский патент 2023 года по МПК H04W36/00 

Описание патента на изобретение RU2802678C1

Область техники, к которой относится изобретение

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

Уровень техники

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

Раскрытие сущности изобретения

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

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

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

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

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

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

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

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

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

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

В одном из возможных вариантов реализации, первый сетевой канал представляет собой канал Wi-Fi или канал сотовой связи, и второй сетевой канал представляет собой канал Wi-Fi или канал сотовой связи.

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

Согласно второму аспекту, один из вариантов настоящей заявки предлагает электронное устройство, содержащее:

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

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

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

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

Краткое описание чертежей

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

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

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

фиг. 3a представляет упрощенное изображение представления рабочего стола мобильного телефона на дисплее согласно одному из вариантов настоящей заявки;

фиг. 3b представляет упрощенное изображение интерфейса приложения согласно одному из вариантов настоящей заявки;

фиг. 3c представляет упрощенное изображение интерфейса приложения в мобильном телефоне с использованием первичного сетевого канала согласно одному из вариантов настоящей заявки;

фиг. 3d представляет упрощенное изображение интерфейса приложения в мобильном телефоне с использованием альтернативного сетевого канала согласно одному из вариантов настоящей заявки;

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

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

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

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

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

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

фиг. 10 представляет упрощенную структурную схему потока пакетов игрового потока согласно одному из вариантов настоящей заявки;

фиг. 11a – фиг. 11c представляют упрощенные схемы переключения потоков согласно одному из вариантов настоящей заявки;

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

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

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

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

фиг. 16a представляет упрощенную схему потока периодических контрольных пакетов с интервалом 1 с согласно одному из вариантов настоящей заявки;

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

фиг. 17a представляет упрощенную схему кодовой реализации регистрационной хук-функции согласно одному из вариантов настоящей заявки;

фиг. 17b представляет упрощенную схему кодовой реализации регистрационной хук-функции согласно одному из вариантов настоящей заявки;

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

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

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

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

Осуществление изобретения

Ниже технические решения согласно вариантам настоящей заявки описаны со ссылками на прилагаемые чертежи этих вариантов заявки. В описаниях вариантов настоящей заявки символ «/» означает «или», если не указано иное. Например, A/B может представлять A или B. Используемое здесь сочетание «and/or» указывает только соотношение ассоциирования для описания ассоциированных объектов и представляет, что могут существовать три соотношения. Например, A и/или B может представлять следующие три случая: Существует только A, существуют оба – и A, и B, и существует только B.

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

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

Сетевая карта Wi-Fi представляет собой устройство, поддерживающее доступ в Интернет через локальную сеть радиосвязи (Wireless Local Area Network, WLAN).

Сетевая карта сервиса передачи данных представляет собой устройство, поддерживающее доступ в Интернет с использованием технологий мобильной связи, таких как общий сервис радио передачи пакетов данных (General Packet Radio Service, GPRS), развитее стандарта GSM с увеличенной скоростью передачи данных (Enhanced Data Rate for GSM Evolution, EDGE), синхронная система многостанционного доступа с кодовым уплотнением и с разделением по времени (Time Division-Synchronous Code Division Multiple Access, TD-SCDMA), высокоскоростная пакетная передача в нисходящей линии (High Speed Downlink Packet Access, HSDPA), широкополосный многостанционный доступ с кодовым уплотнением (Wideband Code Division Multiple Access, WCDMA), долговременная эволюция (Long Term Evolution, LTE) и технология мобильной связи 5-го поколения (5th Generation Mobile Communication Technology, 5G).

Сетевой канал представляет собой любой маршрут между двумя или более узлами в сети связи или маршрут от адреса источника до адреса пункта назначения в сети связи.

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

В электронном устройстве могут быть предварительно конфигурированы несколько сетевых каналов. Например, эта совокупность нескольких сетевых каналов может содержать первичный канал Wi-Fi, вторичный канал Wi-Fi, первичный канал сотовой связи и вторичный канал сотовой связи. Первичный канал Wi-Fi и вторичный канал Wi-Fi могут работать в частотном диапазоне 2.4 ГГц или в частотном диапазоне 5 ГГц. Например, если первичный канал Wi-Fi работает в частотном диапазоне 2.4 ГГц, вторичный канал Wi-Fi работает в частотном диапазоне 5 ГГц; и если первичный канал Wi-Fi работает в частотном диапазоне 5 ГГц, вторичный канал Wi-Fi работает в частотном диапазоне 2.4 ГГц. В дополнение к этому, первичный канал сотовой связи и вторичный канал сотовой связи могут соответствовать сетям связи операторов. Например, первичный канал сотовой связи может использовать SIM-карту 1 (эта SIM-карта 1 принадлежит оператору A), а вторичный канал сотовой связи может использовать SIM-карту 2 (эта SIM-карта 2 принадлежит оператору B). В общем случае, приоритет первичного канала Wi-Fi выше приоритетов других трех каналов. Поэтому первичным сетевым каналом обычно является первичный канал Wi-Fi. В общем случае, учитывая потребление трафика данных электронного устройства, приоритет канала Wi-Fi выше приоритета канала сотовой связи. Можно понимать, что такие предварительно конфигурированные каналы являются только примерами для описания и не составляют ограничений для вариантов настоящей заявки. В некоторых вариантах, могут быть дополнительно включено большее или меньшее количество каналов. В дополнение к этому, использование первичного канала Wi-Fi в качестве первичного сетевого канала является только предпочтительным техническим решением и не составляет ограничения для вариантов настоящей заявки. В некоторых вариантах, другие сетевые каналы могут быть в качестве альтернативы выбраны первичными сетевыми каналами.

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

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

Один из вариантов настоящей заявки предлагает способ переключения каналов, для мониторинга качества работы сети для каждого потока приложения, работающего в текущий момент, и переключения, когда качество работы сети для какого-либо потока станет плохим, этого потока в альтернативный сетевой канал для передачи, тем самым повышая качество работы сети для этого потока. Например, как показано на фиг. 1, в качестве примера взято первое устройство, представляющее собой мобильный телефон. Приложение, работающее в этом мобильном телефоне, содержит поток A и поток B. Оба потока – поток A и поток B, сначала передают по каналу Wi-Fi, и для этого приложения нет потока, передаваемого по каналу сотовой связи. Когда качество работы сети для потока B становится плохим, мобильный телефон переключает поток B для передачи в канал сотовой связи. После переключения, поток A передают по каналу Wi-Fi, а поток B передают по каналу сотовой связи. Способ повышает качество работы сети для потока посредством переключения потока, качество работы сети для которого стало плохим, в альтернативный сетевой канал, уменьшает запаздывание сервиса, обусловленное плохим качеством работы сети, для этого потока и улучшает восприятие для пользователя.

Один из вариантов настоящей заявки далее предлагает другой способ переключения каналов. Когда приложение имеет по меньшей мере два потока, передаваемых по одному и тому же сетевому каналу, если качество работы сети для одного из потоков становится плохим, несколько потоков, включая этот поток, из одного и того же сетевого канала могут быть переключены в альтернативный сетевой канал, так что результат оценивания качества работы сети для одного потока может быть применен к нескольким потокам, включая и этот один поток, и может быть осуществлено переключение сетевого канала для нескольких потоков, уменьшая тем самым вероятность запаздывания сервисов для рассматриваемого приложения и улучшая восприятие для пользователя. На фиг. 2 представлена упрощенная схема переключения канала для потоков текущего приложения в одном из вариантов настоящей заявки. На фиг. 2, в качестве примера взяты поток A и поток B, являющиеся чувствительными к задержке потоками для рассматриваемого приложения. Эти поток A и поток B первоначально передают по каналу Wi-Fi. Если определено, что качество потока B становится плохим (например, вычислено, что статус задержки в сети связи для потока B становится плохим), поток A и поток B, передаваемые в одном и том же канале Wi-Fi, переключают в канал сотовой связи, так что результат оценивания качества работы сети для потока B применяют и к потоку A, и к потоку B, передаваемым по одному и тому же сетевому каналу. Быстрое определение качества работы сети для потока B гарантирует быстрое определение качества работы сети для всех потоков одного и того же типа (например, потоков, чувствительных к задержке), передаваемых в том же самом сетевом канале, и быстрое переключение сетевых каналов.

Одно приложение обычно использует несколько потоков. Из-за различия характеристик передачи разных потоков трудно осуществлять мониторинг того, стало ли качество работы сети для некоторых потоков плохим. Поэтому, даже если электронное устройство осуществляет мониторинг качества работы сети для всех потоков рассматриваемого приложения в реальном времени, невозможно осуществлять своевременный мониторинг все потоков, качество работы сети для которых становится плохим. В рассматриваемом варианте настоящей заявки, когда качество работы сети для одного потока становится плохим, несколько потоков, включая этот поток, в том же самом сетевом канале, переключают в альтернативный сетевой канал. Эта совокупность нескольких потоков может содержать поток, мониторинг плохого качества работы сети для которого невозможно осуществлять своевременно. Это позволяет решить проблему запаздывания в работе сервиса, обусловленного потоками, мониторинг плохого качества работы сети для которых невозможно осуществлять своевременно. По-прежнему принимая упомянутый выше фиг. 2 в качестве примера, поток A и поток B передают по каналу Wi-Fi. Если имеется проблема с передачей по каналу Wi-Fi, ведущая к плохому качеству работы сети для потока A и потока B и к запаздыванию операций сервиса рассматриваемого приложения, но мобильный телефон своевременно осуществляет мониторинг только деградации качества работы сети для потока B и не может своевременно осуществлять мониторинг качества работы сети для потока A, поток A и поток B переключают в альтернативный сетевой канал (например, в канал сотовой связи), что решает проблему запаздывания операций сервиса, обусловленного деградацией качества работы сети для потока A, тем самым уменьшая запаздывание операций сервиса и улучшая восприятие для пользователя.

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

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

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

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

На фиг. 3c представлено упрощенное изображение результата, когда мобильный телефон использует первичный сетевой канал (например, канал Wi-Fi). Как показано на фиг. 3c, после того, как мобильный телефон получит путь первичного сетевого канала, этот первичный сетевой канал может быть использован для просмотра видео.

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

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

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

Способ переключения каналов в вариантах настоящей заявки может быть применен к указанному первому устройству. Это первое устройство может представлять собой мобильный терминал, устройство терминала, пользовательское оборудование (User Equipment, UE), терминал доступа, абонентский модуль, абонентскую станцию, мобильную станцию, мобильную консоль, удаленную станцию, удаленный терминал, мобильное устройство, пользовательский терминал, устройство радиосвязи, пользовательский агент или пользовательскую аппаратуру. Первое устройство может представлять собой станцию (ST) в сети WLAN, может представлять собой сотовый телефон, беспроводной телефон, телефон, работающий с использованием протокола инициирования сеанса (session initiation protocol (SIP)), станцию беспроводного абонентского шлейфа (wireless local loop (WLL)), персональный цифровой помощник (personal digital assistant (PDA)), ручное устройство, имеющее функцию радиосвязи, компьютерное устройство, другое процессорное устройство, соединенное с беспроводным модемом, установленное на автомобиле устройство, терминал Интернет транспортных средств (автомобилей), компьютер, портативный компьютер, ручное устройство связи, ручное компьютерное устройство, спутниковое беспроводное устройство, карту беспроводного модема, телевизионную приставку (Set Top Box, STB), аппаратуру для установки в помещении пользователя (Customer Premise Equipment, CPE) и/или другие устройства для связи в системах радиосвязи и в системах связи следующего поколения, например, мобильный терминал в сети связи 5G или мобильный терминал в будущей развитой наземной сети мобильной связи общего пользования (public land mobile network (PLMN)). Первое устройство 10 может также представлять собой носимое устройство. Это носимое устройство может также называться носимым интеллектуальным устройством, и имеется коллективное название для носимых устройств, созданных посредством проектирования интеллектуальных предметов повседневного пользования на основе технологии носимых устройств, например, очков, перчаток, наручных часов, одежды и обуви. Носимое устройство представляет собой портативное устройство, носимое непосредственно на теле человека или интегрированное в одежду или аксессуар пользователя. Носимое устройство представляет собой нечто большее, чем просто аппаратное устройство, и оно может даже реализовать очень мощные функции при соответствующей программной поддержке, обмене данными и облачном взаимодействии. В широком смысле, к интеллектуальным носимым устройствам относятся, например, «умные» наручные часы или «умные» очки, которые могут иметь полный набор функций и большие размеры и которые могут осуществлять некоторые или все функции, не опираясь на смартфон, а также разного рода интеллектуальные обручи, повязки и браслеты, или интеллектуальные ювелирные украшения, которые сосредоточены на прикладных функциях какого-либо конкретного типа и должны использоваться во взаимодействии с другим устройством, таким как смартфон, и могут осуществлять мониторинг физических симптомов.

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

Электронное устройство 100 может содержать процессор 110, интерфейс 120B внешнего запоминающего устройства, внутреннее запоминающее устройство 120A, интерфейс 130 универсальной последовательной шины (universal serial bus, USB), модуль 140A управления зарядкой, модуль 140B управления питанием, аккумулятор 140C, антенну 1, антенну 2, модуль 150 мобильной связи, модуль 160 радиосвязи, аудио модуль 170, громкоговоритель 170A, динамик 170B телефона, микрофон 170C, гнездо 170D для подключения головной гарнитуры, модуль 180 датчиков, кнопку 190, двигатель 191, индикатор 192, видеокамеру 193, экран 194 дисплея, интерфейс 195 карты модуля идентификации абонента (subscriber identification module, SIM) и другие подобные компоненты. Модуль 180 датчиков может содержать датчик 180A давления, гироскопический датчик 180B, датчик 180C барометрического давления, магнитный датчик 180D, датчик 180E ускорения, датчик 180F расстояния, оптический датчик 180G близости, датчик 180H отпечатков пальцев, датчик 180J температуры, датчик 180K прикосновения, датчик 180L окружающей освещенности, датчик 180M с костной проводимостью и другие подобные датчики.

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

Процессор 110 может содержать один или несколько процессорных модулей. Например, процессор 110 может содержать процессор приложений (application processor, AP), процессор модема, графический процессор (graphics processing unit, GPU), процессор сигнала изображения (image signal processor, ISP), контроллер, видео кодек, цифровой процессор сигнала (digital signal processor, DSP), процессор видеодиапазона и/или процессорный модуль нейронной сети (neural-network processing unit, NPU). Различные процессорные модули могут быть независимыми устройствами или могут быть интегрированы в одном или нескольких процессорах. Контроллер может представлять собой нервный центр или командный центр электронного устройства 100. Этот контроллер может генерировать сигнал операционного управления на основе операционного кода команды и сигнала временной последовательности, а также считывать команду и управлять выполнением этой команды.

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

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

В некоторых вариантах процессор 110 может содержать один или несколько интерфейсов. Такими интерфейсами могут быть интерфейс между интегральными схемами (inter-integrated circuit, I2C), звуковой интерфейс между интегральными схемами (inter-integrated circuit sound, I2S), интерфейс с импульсно-кодовой модуляцией (ИКМ) (pulse code modulation, PCM), интерфейс универсального асинхронного приемопередатчика (universal asynchronous receiver/transmitter, UART), процессорный интерфейс мобильных устройств (mobile industry processor interface, MIPI), интерфейс ввода/вывода общего назначения (general-purpose input/output, GPIO), интерфейс модуля идентификации абонента (subscriber identification module, SIM) и/или интерфейс универсальной последовательной шины (universal serial bus, USB).

Такой интерфейс USB 130 представляет собой интерфейс, удовлетворяющий спецификациям стандарта USB, и может, в частности, представлять собой интерфейс mini-USB, интерфейс micro-USB, интерфейс USB Type C или другой подобный интерфейс. Интерфейс USB 130 может быть конфигурирован для соединения с зарядным устройством с целью заряжать аккумулятор электронного устройства 100, или может быть использован для передачи данных между электронным устройством 100 и периферийным устройством, либо может быть конфигурирован для соединения с головной гарнитурой с целью воспроизведения аудио с использованием этой головной гарнитуры. В качестве альтернативы такой интерфейс может быть конфигурирован для соединения с другим электронным устройством, таким как устройство дополненной реальности (AR).

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

Функция радиосвязи в электронном устройстве 100 может быть реализована антенной 1, антенной 2, модулем 150 мобильной связи, модулем 160 радиосвязи, процессором модема, процессором видеодиапазона и другими подобными компонентами.

Антенна 1 и антенна 2 конфигурированы для: передачи и приема сигналов электромагнитных волн. Каждая антенна в электронном устройстве 100 может быть использована для охвата одного или нескольких частотных диапазонов связи. Разные антенны могут быть далее мультиплексированы для увеличения степени использования антенн. Например, антенна 1 может быть мультиплексирована в качестве разнесенной антенны в локальной сети радиосвязи. В некоторых других вариантах антенна может быть использована в сочетании с переключателем настройки.

Модуль 150 мобильной связи может создать техническое решение радиосвязи в системах связи поколений 2G/3G/4G/5G, применяемое в электронном устройстве 100. Модуль 150 мобильной связи может содержать по меньшей мере один фильтр, переключатель, усилитель мощности, малошумящий усилитель (low noise amplifier, LNA) и другие подобные компоненты. Модуль 150 мобильной связи может принимать электромагнитные волны через антенну 1, осуществлять обработку, такую как фильтрация и усиление, принятых электромагнитных волн, и передавать обработанные электромагнитные волны процессору модема для демодуляции. Модуль 150 мобильной связи может далее усиливать сигнал, модулированный процессором модема и преобразовывать этот сигнал в электромагнитные волны для излучения через антенну 1. В некоторых вариантах, по меньшей мере некоторые функциональные модули из модуля 150 мобильной связи могут быть расположены в процессоре 110. В некоторых вариантах, по меньшей мере некоторые функциональные модули из модуля 150 мобильной связи и по меньшей мере некоторые модули из процессора 110 могут быть расположены в одном и том же устройстве.

Процессор модема может содержать модулятор и демодулятор. Модулятор конфигурирован для модуляции подлежащего передаче низкочастотного сигнала видеодиапазона и преобразования его в сигнал средних и высоких частот. Демодулятор конфигурирован для демодуляции принятого сигнала электромагнитных волн и преобразования его в низкочастотный сигнал видеодиапазона. Затем демодулятор передает демодулированный низкочастотный сигнал видеодиапазона процессору видеодиапазона для обработки. Низкочастотный сигнал видеодиапазона обрабатывают посредством процессора видеодиапазона и затем передают процессору приложений. Процессор приложений передает звуковой сигнал на выход через аудио устройство (которое не исчерпывается громкоговорителем 170A, динамиком 170B телефона или другим подобным устройством) или представляет изображение или видео на экране 194 дисплея. В некоторых вариантах, процессор модема может представлять собой независимое устройство. В некоторых других вариантах, процессор модема может быть независимым от процессора 110, а также процессор модема и модуль 150 мобильной связи или другой функциональный модуль могут быть расположены в одном и том же компоненте.

Модуль 160 радиосвязи может предоставлять техническое решение для радиосвязи, применимое к электронному устройству 100, например, связь в локальной сети радиосвязи (wireless local area networks, WLAN) (например, сеть «беспроводной достоверности» (wireless fidelity, Wi-Fi) network), Bluetooth (Bluetooth, BT), глобальная спутниковая навигационная система (global navigation satellite system, GNSS), система с частотной модуляцией (frequency modulation, FM), связь в ближней зоне (near field communication, NFC) и технология инфракрасной (infrared, IR) связи. Модуль 160 радиосвязи может представлять собой одно или несколько устройств, интегрирующих по меньшей мере один процессорный модуль связи. Этот модуль 160 радиосвязи принимает электромагнитные волны с использованием антенны 2, осуществляет частотную модуляцию и фильтрационную обработку сигнала электромагнитных волн и передает обработанный сигнал процессору 110. Модуль 160 радиосвязи может в качестве альтернативы принимать подлежащий передаче сигнал от процессора 110, осуществлять частотную модуляцию и усиление подлежащего передаче сигнала и преобразовывать этот сигнал в электромагнитные волны для излучения с использованием антенны 2.

В некоторых вариантах, в электронном устройстве 100, антенна 1 соединена с модулем 150 мобильной связи, а антенна 2 соединена с модулем 160 радиосвязи, так что это электронное устройство 100 может осуществлять связь с сетью связи и с другим устройством с использованием технологии радиосвязи. Такая технология радиосвязи может представлять собой глобальную систему мобильной связи (global system for mobile communications, GSM), систему пакетной радиосвязи общего пользования (general packet radio service, GPRS), систему многостанционного доступа с кодовым уплотнением (code division multiple access, CDMA), широкополосную систему многостанционного доступа с кодовым уплотнением (wideband code division multiple access, WCDMA), синхронную систему многостанционного доступа с кодовым уплотнением и с разделением по времени (time-division code division multiple access, TD-SCDMA), систему долговременной эволюции (long term evolution, LTE), систему BT, систему GNSS, сеть WLAN, связь NFC, связь FM, технологию ИК (IR) и/или другую подобную технологию. Система GNSS может представлять собой систему глобального местоопределения (global positioning system, GPS), глобальную навигационную спутниковую систему (global navigation satellite system, GLONASS), навигационную спутниковую система БайДу (BeiDou) (BeiDou navigation satellite system, BDS), квазизенитную спутниковую систему (quasi-zenith satellite system, QZSS) и/или спутниковые системы контроля и коррекции (satellite based augmentation systems, SBAS).

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

Экран 194 дисплея конфигурирован для представления изображения, видео и другой подобной информации. Этот экран 194 дисплея содержит панель дисплея. Панель дисплея может представлять собой жидкокристаллический дисплей (liquid crystal display, LCD), дисплей на органических светодиодах (organic light-emitting diode, OLED), дисплей на органических светодиодах с активной матрицей (active-matrix organic light emitting diode, AMOLED), гибкий дисплей на светодиодах (flex light-emitting diode, FLED), дисплей мини-LED, дисплей микро-LED, дисплей микро-OLED, дисплей на светодиодах типа квантовых точек (quantum dot light emitting diodes, QLED) или другую подобную панель. В некоторых вариантах, электронное устройство 100 может содержать один или N экранов 194 дисплеев, где N – положительное целое число больше 1.

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

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

Видеокамера 193 конфигурирована для захвата (съемки) статических изображений или видео. Объект проецируется на фоточувствительный элемент через оптическое изображение, генерируемое объективом. Фоточувствительный элемент может представлять собой прибор с зарядовой связью (ПЗС (charge coupled device, CCD)) или фототранзистор с комплементарной структурой металл-оксид-полупроводник (КМОП (complementary metal-oxide-semiconductor, CMOS)). Фоточувствительный элемент преобразует оптический сигнал в электрический сигнал и затем передает этот электрический сигнал процессору ISP, чтобы этот процессор ISP преобразовал электрический сигнал в цифровой сигнал изображения. Процессор ISP передает цифровой сигнал изображения процессору DSP для обработки. Процессор DSP преобразует цифровой сигнал изображения в сигнал изображения в таких форматах, как стандартные форматы RGB и YUV. В некоторых вариантах, электронное устройство 100 может содержать одну или N видеокамер 193, где N – положительное целое число больше 1.

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

Видео кодек конфигурирован для сжатия (компрессии) или расширения (декомпрессии) цифрового видео. Электронное устройство 100 может поддерживать один или несколько видео кодеков. При таком подходе, электронное устройство 100 может воспроизводить или записывать видео в нескольких форматах кодирования, например, форматах, разработанных Группой экспертов по кинематографии (moving picture experts group, MPEG) 1, MPEG 2, MPEG 3 и MPEG 4.

Процессор NPU представляет собой вычислительный процессор нейронной сети (neural-network, NN), быстро обрабатывающий входную информацию с использованием структуры биологической нейронной сети, например, путем использования режима передачи между нейронами в мозгу человека и может далее осуществлять непрерывное самообучение. Процессор NPU может реализовать такие приложения, как рациональное познание, в электронном устройстве 100, например, распознавание состояния пленки, восстановление изображения, распознавание изображения, распознавание лиц, распознавание речи и понимание текста.

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

Внутреннее запоминающее устройство 120A может быть конфигурировано для сохранения выполняемого компьютером программного кода, где этот выполняемый программный код содержит команды. Это внутреннее запоминающее устройство 120A может содержать область хранения программ и область хранения данных. Область хранения программ может сохранять операционную систему, приложение, требуемое по меньшей мере одной функцией (например, функцией воспроизведения звука и функцией воспроизведения изображения), и другие подобные программы. Область хранения данных может сохранять данные (например, аудиоданные и адресную книгу) и другие подобные данные, создаваемые в процессе использования электронного устройства 100. В дополнение к этому, внутреннее запоминающее устройство 120A может содержать высокоскоростное запоминающее устройство с произвольной выборкой, и может далее содержать энергонезависимое запоминающее устройство, например, по меньшей мере одно запоминающее устройство на магнитном диске, устройство флэш-памяти или универсальное флэш-хранилище данных (universal flash storage, UFS). Процессор 110 выполняет команды, сохраняемые во внутреннем запоминающем устройстве 120A, и/или команды, сохраняемые в запоминающем устройстве, расположенном в процессоре, для осуществления различных функциональных приложении и обработки данных электронного устройства 100.

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

Датчик 180K прикосновения также называется «сенсорной панелью» («touch panel (TP)»). Этот датчик 180K прикосновения может быть расположен на экране 194 дисплея, образуя сенсорный экран, который также называется «тачскрин». Датчик 180K прикосновения конфигурирован для определения операции прикосновения, осуществляемой на поверхности датчика 180K прикосновения или рядом с ним. Датчик прикосновения может передать обнаруженную операцию прикосновения процессору приложений для определения типа события прикосновения. Датчик прикосновения может подать визуальный выходной сигнал относительно операции прикосновения с использованием экрана 194 дисплея. В некоторых других вариантах, датчик 180K прикосновения может также быть в качестве альтернативы расположен на поверхности электронного устройства 100 в позиции, отличной от экрана 194 дисплея.

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

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

Двигатель 191 может генерировать вибрационный сигнал. Этот двигатель 191 может быть конфигурирован для генерации вибрационного сигнала в ответ на входящий вызов, и может быть далее конфигурирован для генерации вибрационной обратной связи в ответ на прикосновение. Например, операции прикосновения, осуществляемые в разных приложениях, (например, при фотографировании и при воспроизведении аудио) могут соответствовать разным эффектам вибрационной обратной связи. Для операций прикосновения, осуществляемых в разных областях экрана 194 дисплея, двигатель 191 также может соответственно генерировать разные эффекты вибрационной обратной связи. Разным сценариям применения (например, подсказке о времени, приему информации, будильнику и игре) также могут соответствовать разные эффекты вибрационной обратной связи. Эффект вибрационной обратной связи в ответ на прикосновения может быть дополнительно специализирован.

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

Интерфейс 195 SIM-карты конфигурирован для соединения с SIM-картой. Такая SIM-карта может быть вставлена в интерфейс 195 SIM-карты или извлечена из интерфейса 195 SIM-карты для приведения в контакт с электронным устройством 100 или отделения от него. Электронное устройство 100 может поддерживать один или N интерфейсов SIM-карты. Здесь N положительное целое число больше 1. Интерфейс 195 SIM-карты может поддерживать нано-SIM-карту, микро-SIM-карту, обычную SIM-карту или другой подобный компонент. Несколько карт могут быть вставлены в один и тот же интерфейс 195 SIM-карты вместе. Эти несколько карт могут быть однотипными или могут быть разных типов. Интерфейс 195 SIM-карты также совместим с SIM-картами разных типов. Этот интерфейс 195 SIM-карты также совместим с внешними картами памяти. Электронное устройство 100 взаимодействует с сетью связи с использованием SIM-карты для осуществления таких функций как вызовы (телефонные переговоры) и передача данных. В некоторых вариантах, электронное устройство 100 использует eSIM-карту, иными словами, встроенную SIM-карту. Такая eSIM-карта может быть встроена в электронное устройство 100 и не может быть отделена от этого электронного устройства 100.

Ниже рассмотрена схема архитектуры системы приведенного выше первого устройства. Как показано на фиг. 5, первое устройство 10 содержит уровень 11 приложений, уровень 12 сервисов, уровень 13 политики и уровень 14 ядра.

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

Уровень 12 сервисов может содержать компонент 121 определения среды, компонент 122 определения сети, компонент 123 управления путем на уровне канала, компонент 124 управления политикой на уровне приложения и компонент 125 оценивания качества канала и приложения. Компонент 121 определения среды может быть конфигурирован для определения состояния приложения. Например, совокупность состояний приложения может содержать такие состояния, как выход из приложения, открытие приложения, работа приложения, инсталлирование приложения и выгрузка приложения. Можно понимать, что перечисленные состояния являются только примерами для описания, так что могут существовать больше состояний. Подробности здесь снова описаны не будут. Компонент 122 определения сети может быть конфигурирован для определения открытого состояния сетевого канала. Компонент 123 управления путем на уровне канала может быть конфигурирован для запроса/закрытия сетевого канала, определения изменения состояния сетевого канала, обновления политики выбора сетевого канала и сохранения путей для нескольких сетевых каналов. Компонент 124 управления политикой на уровне приложения может генерировать различные исполнительные политики на основе введенной информации. Например, политика может быть направлена на функцию ускорения сетевого канала, активизацию измерения трафика (например, определения трафика в сетевом канале) или другие подобные функции. Компонент 125 оценивания качества канала и приложения может быть конфигурирован для оценивания качества сетевого канала. Уровень 12 сервисов может далее содержать: компонент 126 управления соединением с сетью, конфигурированный для активизации сетевого канала, иными словами, преобразования сетевого канала из спящего состояния в активное, «бодрствующее» состояние, в котором этот сетевой канал может быть сразу использован.

Уровень 13 политики может содержать компонент 131 управления путем на уровне потока, компонент 132 управления политикой на уровне потока и компонент 133 измерения трафика. Компонент 131 управления путем на уровне потока может быть конфигурирован для обновления выбора сетевого канала в соответствии с изменением политики на верхнем уровне, запуска процедуры определения качества сетевого канала, динамического выбора оптимального канала и сохранения путей для разных сетевых каналов, например, сохранения пути сетевого канала (например, первичного сетевого канала), используемого приложением в текущий момент, и пути альтернативного сетевого канала. Компонент 132 управления политикой на уровне потока может быть конфигурирован для подачи команды переключения сетевых каналов, и может быть дополнительно конфигурирован для сохранения политики переключения сетевых каналов для потоков в сетевом приложении. Компонент 133 измерения трафика может быть конфигурирован для сбора статистики по сообщениям о трафике и оценивания качества работы сети для каждого потока.

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

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

Архитектура системы, показанная на фиг. 5, используется только с целью иллюстрировать реализацию многоуровневой архитектуры первого устройства. Эта архитектура системы, показанная на фиг. 5, может быть также реализована в виде части существующей многоуровневой архитектуры программного обеспечения. Принимая систему Андроид в качестве примера, на фиг. 6 представлена блок-схема структуры программного обеспечения электронного устройства на основе системы Андроид согласно одному из вариантов настоящей заявки. В многоуровневой архитектуре программное обеспечение разделено на несколько уровней, и каждый уровень имеет четко определенную роль и задачу. Уровни осуществляют связь один с другим через программный интерфейс. В варианте, показанном на фиг. 6 в настоящей заявке, система Андроид разбита на пять уровней, и в том числе сверху вниз – уровень приложений, уровень архитектуры приложений (или называемый также уровнем архитектуры системы), уровень системной библиотеки и работы Андроид, уровень аппаратной абстракции (hardware abstraction layer, HAL) и уровень ядра.

Уровень приложений содержит несколько прикладных программ (ниже называемых приложениями), таких как видеокамера, галерея, календарь и сеть WLAN. В одном из возможных примеров, уровень приложений в архитектуре системы, показанной на фиг. 5, может соответствовать уровню приложений устройства. Уровень приложений электронного устройства, показанный на фиг. 6, может содержать сетевые приложения, описываемые в вариантах настоящей заявки, такие как приложение воспроизведения видео и игровое приложение.

Уровень архитектуры приложений представляет интерфейс программирования приложений (Application Programming interface, API) и архитектуру программирования приложений на уровне приложений. Уровень архитектуры приложений имеет некоторые предварительно заданные функции. Например, уровень архитектуры приложений может содержать администратор окон, провайдер контента, администратор ресурсов, сервис видеокамеры и другие подобные функции. В одном из возможных примеров, уровень сервисов и уровень политики в архитектуре системы, показанной на фиг. 5, могут быть расположены на уровне архитектуры приложений.

Уровень системной библиотеки и выполнения Андроид содержит системную библиотеку и среду выполнения Андроид (Android Runtime). Системная библиотека может содержать несколько функциональных модулей, например, композитный менеджер окон, программу 2D графики, процессорную библиотеку 3D графики (например, OpenGL ES), библиотеку медиа и библиотеку шрифтов.

Уровень HAL представляет собой уровень интерфейса между ядром операционной системы и схемами оборудования. Этот уровень HAL содержит, не ограничиваясь этим, уровень HAL аудио (Audio HAL) и уровень HAL видеокамеры (Camera HAL).

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

Способ переключения каналов согласно вариантам настоящей заявки ниже рассмотрен на примере со ссылками на первое устройство, показанное на фиг. 4 – фиг. 6.

Фиг. 7 представляет упрощенную логическую схему способа переключения каналов согласно одному из вариантов настоящей заявки. Этот способ содержит:

Этап 301: Запуск сетевого приложения в ответ на операцию пользователя.

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

На фиг. 3a представлено упрощенное изображение рабочего стола мобильного телефона. Как показано на фиг. 3a, пользователь может прикоснуться к иконке приложения для видео на рабочем столе мобильного телефона, чтобы открыть приложение для видео, получая в результате упрощенное изображение видео дисплея, как показано на фиг. 3b.

Этап 302: Компонент 121 определения среды определяет, что сетевое приложение переключилось на передний план или произошло изменение в сети, и сообщает об этом компоненту 124 управления политикой на уровне приложения.

В частности, компонент 121 определения среды на уровне 12 сервисов в электронном устройстве 100 может непрерывно определять статус сетевого приложение или сетевой среды. Когда компонент 121 определения среды обнаружит, что какое-либо сетевое приложение переключилось на передний план или изменилась сетевая среда, компоненту 124 управления политикой на уровне приложения может быть передано первое уведомительное сообщение, где это первое уведомительное сообщение может быть использовано для уведомления компонента 124 управления политикой на уровне приложения о том, что сетевое приложение переключилось на передний план или изменилась сетевая среда. Можно понимать, что это первое уведомительное сообщение может далее содержать идентификатор сетевого приложения (например, такой идентификатор сетевого приложения может представлять собой идентификатор UID), и этот идентификатор может быть использован для однозначной идентификации сетевого приложения.

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

kuid_t sock_i_uid(struct sock *sk)

{ kuid_t uid

read_lock_bh(&sk->sk_callback_lock);

uid=sk->sk_socket?SOCK_INODE(sk->sk_socket)->i_uid: GLOBAL_ROOT_UID;

read_unlock_bh(&sk->sk_callback_lock);

return uid;

}

EXPORT_SYMBOL(sock_i_uid).

Этап 303: Компонент 124 управления политикой на уровне приложения принимает первое уведомительное сообщение переданное компонентом 121 определения среды, и определяет, удовлетворяет ли работающее в текущий момент сетевое приложение условиям для активизации ускорения.

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

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

Например, таблица 1 представляет белый список сетевых приложений.

Таблица 1

Название приложения Тип характерного потока Параметр качества канала Сетевой диск Байду Поток скачивания Скорость передачи данных WeChat Поток видео Задержка/Потери пакетов Игра Игровой поток Задержка/Потери пакетов

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

Этап 304: Компонент 124 управления политикой на уровне приложения передает сообщение активизации канала компоненту 131 управления путем на уровне потока для активизации сетевого канала.

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

Этап 305: Компонент 131 управления путем на уровне потока запрашивает путь первичного сетевого канала у компонента 123 управления путем на уровне канала.

В частности, после приема сообщения активизации канала, переданного компонентом 124 управления политикой на уровне приложения, компонент 131 управления путем на уровне потока может передать запрос первичного сетевого канала компоненту 123 управления путем на уровне канала, где этот запрос первичного сетевого канала используется для запрашивания пути первичного сетевого канала. Например, первичный сетевой канал может представлять собой первичный канал Wi-Fi.

Этап 306: Компонент 123 управления путем на уровне канала передает путь первичного сетевого канала компоненту 131 управления путем на уровне потока.

В частности, компонент 123 управления путем на уровне канала может предварительно конфигурировать пути нескольких сетевых каналов. Например, совокупность нескольких сетевых каналов может содержать первичный канал Wi-Fi, вторичный канал Wi-Fi, первичный канал сотовой связи и вторичный канал сотовой связи.

После того, как компонент 123 управления путем на уровне канала примет запрос первичного сетевого канала, переданный компонентом 131 управления путем на уровне потока, один сетевой канал может быть выбран из указанной совокупности нескольких сетевых каналов в качестве первичного сетевого канала (например, первичный сетевой канал представляет собой первичный канал Wi-Fi), и путь этого первичного сетевого канала может быть передан компоненту 131 управления путем на уровне потока.

Этап 307: Компонент 131 управления путем на уровне потока сохраняет принятый путь первичного сетевого канала.

В частности, после того как компонент 131 управления путем на уровне потока примет путь первичного сетевого канала, переданный компонентом 123 управления путем на уровне канала, этот путь первичного сетевого канала может быть сохранен. Например, путь первичного сетевого канала может быть представлен каналом Wi-Fi 1.

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

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

Этап 308: Компонент 124 управления политикой на уровне приложения передает запрос определения трафика компоненту 133 измерения трафика.

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

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

Этап 309: Компонент 133 измерения трафика передает запрос сообщить о трафике компоненту 141 для передачи сообщений о трафике.

В частности, после приема такого запроса сообщить о трафике, переданного компонентом 124 управления политикой на уровне приложения, компонент 133 измерения трафика может передать запрос сообщить о трафике компоненту 141 для передачи сообщений о трафике, где этот запрос сообщить о трафике может быть использован в качестве команды для компонента 141 для передачи сообщений о трафике, что следует определить пакет сетевого приложения в текущем первичном сетевом канале и сообщить об этом определенном пакете. Можно понимать, что запрос определения трафика может содержать идентификатор (например, идентификатор UID) сетевого приложения.

Этап 310: Компонент 141 для передачи сообщений о трафике осуществляет определение трафика и сообщает об этом определенном пакете компоненту 133 измерения трафика.

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

В конкретном варианте реализации, компонент 141 для передачи сообщений о трафике может вызвать компонент (например, компонент Netfilter системы Андроид) для получения пакета сетевого приложения в первичном сетевом канале. Можно понимать, что компонент Netfilter упомянут здесь только в качестве примера для описания и не составляет ограничения для вариантов настоящей заявки. В некоторых вариантах, определение пакета может быть в качестве альтернативы выполнено другими компонентами.

Например, параметры сетевого канала могут быть реализованы с использованием следующего кода:

typedef struct{

bool available;

bool slowDevForbbiden;

uint64_t qoeBadTimeStamp;

uint64_t chQoeBadStartTime;

uint32_t rcvRate;

}

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

Этап 311: Компонент 133 измерения трафика принимает пакет, о котором сообщил компонент 141 для передачи сообщений о трафике, анализирует этот пакет, получает результаты анализа пакета и передает эти результаты анализа пакета компоненту 132 управления политикой на уровне потока.

В частности, рассматриваемый пакет может представлять собой какой-либо пакет из каждого потока сетевого приложения в первичном сетевом канале. После приема пакета сетевого приложения, определенного компонентом 141 для передачи сообщений о трафике, компонент 133 измерения трафика может проанализировать этот пакет и получить тем самым результат анализа пакета. Указанный выше анализ пакета может быть произведен для идентификации нескольких характерных потоков на основе признаков пакета. Такими характерными потоками могут быть наиболее чувствительные потоки в сетевом приложении. Например, если взять игру «Элита мира» (Peace Elite) в качестве примера, характерным потоком этой игры может быть голосовой поток, иными словами, голосовой поток оказывает относительно большое влияние на игру и обладает наивысшей чувствительностью. Когда качество голосового потока недостаточно хорошее (например, задержка и коэффициент потери пакетов не удовлетворяют предъявляемым требованиям), восприятие игры пользователем сильно страдает. Поэтому необходимо идентифицировать голосовой поток и затем подсчитывать пакеты голосового потока среди всей совокупности пакетов. В одном из конкретных вариантов реализации может быть проведен анализ пакетов для подсчета коэффициента потери пакетов и/или задержки пакетов сетевого приложения, чтобы определить качество характерного потока и далее принять решение, следует ли переключить этот характерный поток. Например, можно подсчитывать коэффициент потери пакетов и/или задержку пакета в пределах заданного промежутка времени. Если подсчитанные коэффициент потери пакетов и/или задержка удовлетворяют заданным требованиям, переключение канала может не потребоваться. Если подсчитанные коэффициент потери пакетов и/или задержка не удовлетворяют заданным требованиям, может быть осуществлено переключение канала для рассматриваемого характерного потока.

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

uplink: udp.payload[6]=0x64; и

downlink: udp.payload[6]=0x65.

На фиг. 8 представлена упрощенная схема периодического контрольного пакета в голосовом потоке согласно протоколу UDP.

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

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

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

Следует понимать, что в дополнение к голосовому потоку, характерный поток может далее представлять собой поток собственно игрового взаимодействия в игре. Принимая игру Peace Elite в качестве примера, является ли текущий поток пакетов потоком игрового взаимодействия, может быть определено посредством периодического подсчета количества UDP-пакетов. В настоящее время, продолжительность цикла, используемого игрой Peace Elite, составляет 500 мс. Поэтому, является ли поток пакетов игровым потоком, может быть определено посредством подсчета полного количества пакетов в цикле. Например, если полное количество пакетов в цикле с продолжительностью 500 мс больше 10, этот поток пакетов является игровым потоком. На фиг. 9 представлена упрощенная схема подсчета пакетов в игровом потоке согласно протоколу. Как показано на фиг. 7, по горизонтальной оси отложено время, а по вертикальной оси – общее количество пакетов. Поскольку количество пакетов в секунду в основном поддерживается на уровне 30, может посредством вычислений быть определено, что имеют место по 15 пакетов каждые 500 мс, и вследствие этого поток пакетов может быть определен как игровой поток.

Примем теперь игру «Царь славы» (King of Glory) в качестве примера, эта игра Царь славы использует номер протокола UDP фильтрации и полезную нагрузку признака заголовка пакета packet header feature payload=0x00010000 для фильтрации пакета игрового взаимодействия. На фиг. 10 представлена упрощенная схема периодического контрольного пакета для игрового потока по протоколу UDP.

Этап 312: Компонент 132 управления политикой на уровне потока определяет, что следует осуществить переключение, на основе результата анализа пакетов и направляет запрос для получения пути альтернативного сетевого канала.

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

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

private boolean requestNetwork(){

Log.i(TAG, «requestNetwork, pathId=«+mChannelId+»slotId=«+mSlotId+»mSubId»)

If(mConnectivityManager==NULL{

Log.e(TAG, «requestNetwork, mConnectivityManager is NULL»);

return false;

}

If(!Utils.isValidSubId(mSubId)){

Log.e(TAG, «requestNetwork, invalid subId: «+mSubId);

return false;

}

NetworkRequest.Builder builder=new NetworkRequest.Builder();

builder.addCapability(NetworkCapabilities. NET_CAPABILITY_INTERNET);

builder.addTransportType(NetworkCapabilities. Transport_CELLULAR);

builder.remove Capability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED);

builder.setNetworkSpecifier(String.valueOf(mSubId));

NetworkRequest build=builder.build();

mConnectivityManager.requestNetwork(build, this, (int)GET_PATH_RESPONSE_TIMER_MS);

return true;

}

В дополнение к этому, в одном из конкретных вариантов реализации, путь сетевого канала (например, этот путь может быть представлен номером устройства на сетевой карте или на SIM-карте) может быть определен в структуре данных, а пример кода может быть следующим:

struct sock{

struct sock_common _sk_common

#define sk_node _sk_common.skc node

#define sk_nulls_node _sk_common.skc_nulls_node

#define sk_refcnt _sk_common.skc_crefcnt

#define sk_tx_queue_mapping _sk_common.skc_tx_queue_mapping

#define sk_dontcopy_begin _sk_common.skc_dontcopy_begin

#define sk_ dontcopy_end _sk_common.skc_dontcopy_end

#define sk_hash _sk_common.skc_hash

#define sk_portpair _sk_common.skc_portpair

#define sk_num _sk_common.skc_num

#define sk_dport _sk_common.skc_dport

#define sk_addrpair _sk_common.skc_addrpair

#define sk_daddr _sk_common.skc_daddr

#define sk_rcv_saddr _sk_common.skc_saddr

#define sk_family _sk_common.skc_family

#define sk_state sk_common.skc_state

#define sk_reuse _sk_common.skc_reuse

#define sk_reuseport _sk_common.skc_reuseport

#define sk_ipv6only _sk_common.skc_ipv6only

#define sk_net_refcnt _sk_common.skc_net_refcnt

#define sk_bound_dev_if _sk_common.skc_ bound_dev_if

#define sk_bind_node _sk_common.skc_bind_node

#define sk_prot _sk_common.skc_prot

#define sk_net _sk_common.skc_net

#define sk_v6_daddr _sk_common.skc_v6_daddr

#define sk_v6_rcv_saddr _sk_common.skc_v6_rcv_saddr

#define sk_cookie _sk_common.skc_cookie

#define sk_incoming_cpu _sk_common.skc_incoming_cpu

#define sk_flags _sk_common.skc_net_flags

#define sk_rxhash _sk_common.skc_rxhash

#ifdef CONFIG_HW_DPIMARK_MODULE

#define sk_hwdpi_mark _sk_common.skc_ hwdpi_mark

}

Как показывает код, sk_bound_dev_if представляет собой номер устройства для целевой сетевой карты или целевой SIM-карты, подлежащей переключению. Можно понимать, что пакет может быть принят через сетевую карту или SIM-карту, а код для приема пакета может соответствовать следующему примеру:

Pktinfo.msg.flow_msg.dev_if=sk->sk_bound_dev_if, где

pktinfo – принятый пакет и msg.flow_msg – название потока пакетов.

В одном из конкретных вариантов реализации, способ запрашивания пути альтернативного сетевого канала может быть таким, что компонент 132 управления политикой на уровне потока передает запрос альтернативного сетевого канала компоненту 131 управления путем на уровне потока для запрашивания альтернативного сетевого канала. После приема запроса альтернативного сетевого канала, компонент 131 управления путем на уровне потока может направить этот запрос альтернативного сетевого канала компоненту 123 управления путем на уровне канала. После приема этого запроса альтернативного сетевого канала, компонент 123 управления путем на уровне канала может передать запрос статуса канала компоненту 122 определения сети, где этот запрос статуса канала может быть использован для запрашивания с целью получения статуса активизации каждого являющегося опцией сетевого канала. Можно понимать, что статус активизации может представлять собой статус доступности или статус недоступности. Статус доступности может быть использован для индикации, что рассматриваемый являющийся опцией сетевой канал может быть активизирован. Этот являющийся опцией сетевой канал может представлять собой вторичный канал Wi-Fi, первичный канал сотовой связи, вторичный канал сотовой связи или другой подобный канал.

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

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

После приема запроса оценивания канала, переданного компонентом 123 управления путем на уровне канала, компонент 125 оценивания качества канала и приложения может оценить качество каждого доступного сетевого канала в соответствии с запросом оценивания канала. Например, показателями качества канала могут быть задержка, коэффициент потери пакетов, ширина полосы частот и скорость передачи данных по каналу. Процедура оценивания может содержать определение времени прохождения сигнала в обоих направлениях (Round-Trip time, RTT) по доступным сетевым каналам, и сетевой канал с наименьшим временем прохождения сигнала в обоих направлениях является наилучшим. В качестве опции, когда для доступного сетевого канала имеется запись предыстории выбора, иными словами, этот доступный сетевой канал уже был раньше выбран в качестве сетевого канала, в таком случае, качество канала можно оценить на основе сочетания времени RTT и записей предыстории. Эти записи предыстории могут содержать предысторию скорости приема, прошлое количество раз, когда качество канала было плохим, и другую подобную информацию. Способ оценивания качества канала ничем специально не ограничен в вариантах настоящей заявки. После того, как компонент 125 оценивания качества канала и приложения завершит оценивание качества все доступных сетевых каналов согласно запросу оценивания канала, результаты оценивания могут быть переданы компоненту 123 управления путем на уровне канала.

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

После приема пути альтернативного сетевого канала, переданного компонентом 123 управления путем на уровне канала, этот компонент 131 управления путем на уровне потока может передать оповещение о переключении, где это оповещение о переключении содержит путь альтернативного сетевого канала.

Выбор альтернативного сетевого канала описан с использованием мобильного телефона в качестве примера и со ссылками на фиг. 11a – фиг. 11c. Как показано на фиг. 11a, мобильный телефон способен работать в четырех сетевых каналах, включая первичный канал Wi-Fi (например, Wi-Fi 1), вторичный канал Wi-Fi (например, Wi-Fi 2), первичный канал сотовой связи (например, Mobile 1) и вторичный канал сотовой связи (например, Mobile 2). Предположим, что в текущий момент в мобильном телефоне работает сетевое приложение (например, WeChat) в канале Wi-Fi 1 (первичный сетевой канал), и это сетевое приложение содержит характерный поток A (например, поток видео), характерный поток B (например, поток аудио) и нехарактерный поток C. Когда мобильный телефон определит, что качество характерного потока A стало плохим, и определит, что следует произвести переключение, может быть определен альтернативный сетевой канал, где этот альтернативный сетевой канал может быть каналом с наилучшим качеством из совокупности вторичного канала Wi-Fi (например, Wi-Fi 2), первичного канала сотовой связи (например, Mobile 1) и вторичного канала сотовой связи (например, Mobile 2). После выбора одного сетевого канала из совокупности вторичного канала Wi-Fi (например, Wi-Fi 2), первичного канала сотовой связи (например, Mobile 1) и вторичного канала сотовой связи (например, Mobile 2) в качестве альтернативного сетевого канала (например, канала Mobile 1) может быть произведено переключение. Далее оба потока – характерный поток A и характерный поток B, могут быть переключены в альтернативный сетевой канал, иными словами, в канал Mobile 1. Как показано на фиг. 11b, в таком случае, нехарактерный канал C может продолжать передаваться по первичному сетевому каналу, иными словами, по каналу Wi-Fi, а характерный поток и A характерный поток B могут передаваться по альтернативному сетевому каналу, иными словами, по каналу Mobile 1.

В качестве опции, когда мобильный телефон анализирует пакет и находит, что качество характерного потока A более не удовлетворяет требованиям, характерный поток A, характерный поток B, и нехарактерный поток C могут быть переключены в выбранный альтернативный сетевой канал, иными словами, в канал Mobile 1. Как показано на фиг. 11c, в таком случае, все потоки – характерный поток A, характерный поток B и нехарактерный поток C, передают по каналу Mobile 1.

Этап 313: Компонент 131 управления путем на уровне потока передает путь альтернативного сетевого канала компоненту 132 управления политикой на уровне потока.

Этап 314: Компонент 132 управления политикой на уровне потока передает команду переключения канала компоненту 142 для исполнения политики.

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

Этап 315: Компонент 142 для исполнения политики осуществляет переключение каналов.

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

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

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

Этап 1201: Запуск сетевого приложения в ответ на операцию пользователя.

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

Этап 1202: Сетевое приложение осуществляет обмен потоками с сервером.

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

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

Этап 1203: Компонент 121 определения среды определяет, что сетевое приложение переключилось на передний план, и оповещает об этом компонент 124 управления политикой на уровне приложения.

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

Этап 1204: Компонент 124 управления политикой на уровне приложения определяет, удовлетворяет ли сетевое приложение условиям для активизации ускорения.

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

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

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

тип целевого потока, мониторинг которого необходимо осуществлять в каждом сетевом приложении, например, как поле типа целевого потока, показанное в таблице 2;

модель потока, соответствующую типу каждого целевого потока, например, как поле модели потока, показанное в таблице 2 ниже;

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

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

Таблица 2

Название приложения Тип целевого потока Модель характерного потока Параметр качества канала Политика переключения потоков Сетевой диск Байду Поток скачивания видео Четверка 1 Скорость передачи данных Скачивание потока видео, скачивание голосового потока WeChat Поток видео Четверка 2 Задержка/потеря пакетов Поток видео, голосовой поток Игра Поток игрового взаимодействия Четверка 3 Задержка/потеря пакетов Поток игрового взаимодействия, голосовой поток

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

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

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

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

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

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

Этап 1205: Компонент 124 управления политикой на уровне приложения передает сообщение активизации ускорения компоненту 131 управления путем на уровне потока.

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

Сервис ускорения может содержать, не ограничиваясь этим:

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

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

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

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

Этап 1206: Компонент 131 управления путем на уровне потока передает идентификатор сетевого приложения и информацию о политике переключения потоков компоненту 132 управления политикой на уровне потока и передает запрос определения трафика компоненту 133 измерения трафика, а компонент 133 измерения трафика передает запрос сообщить о трафике компоненту для передачи сообщений о трафике.

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

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

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

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

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

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

Этап 1301: Компонент 121 определения среды осуществляет определение среды.

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

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

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

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

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

Этап 1302: Компонент 121 определения среды передает уведомительное сообщение об изменении среду компоненту 124 управления политикой на уровне приложения.

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

Этап 1303: Компонент 124 управления политикой на уровне приложения направляет уведомительное сообщение об изменении среды компоненту 131 управления путем на уровне потока.

Этап 1304: Компонент 131 управления путем на уровне потока запрашивает альтернативный сетевой канал от компонента 123 управления путем на уровне канала.

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

Этап 1305: Компонент 123 управления путем на уровне канала принимает указанный запрос альтернативного сетевого канала, и запрашивает статус активизации каждого из являющихся опциями сетевых каналов.

В частности, после приема запроса альтернативного сетевого канала, переданного компонентом 131 управления путем на уровне потока, компонент 123 управления путем на уровне канала может передать запрос статуса канала компоненту 122 определения сети, где этот запрос статуса канала может быть использован, чтобы затребовать получение статуса активизации каждого из являющихся опциями сетевых каналов. Можно понимать, что статус активизации может указывать состояние доступности и состояния недоступности. Состояние доступности может быть использован для индикации, что являющийся опцией сетевой канал может быть активизирован, и состояние недоступности может быть использовано для индикации того, что активизация этого являющегося опцией сетевого канала запрещена. Этот являющийся опцией сетевой канал может представлять собой вторичный канал Wi-Fi, первичный канал сотовой связи, вторичный канал сотовой связи или другой подобный канал.

Этап 1306: Компонент 122 определения сети определяет статус активизации каждого из являющихся опциями сетевых каналов, и передает этот статус активизации каждого из являющихся опциями сетевых каналов компоненту 123 управления путем на уровне канала.

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

Этап 1307: Компонент 123 управления путем на уровне канала запрашивает качество каждого из доступных сетевых каналов.

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

Этап 1308: Компонент 125 оценивания качества канала и приложения оценивает качество каждого из доступных сетевых каналов и передает результат оценивания компоненту 123 управления путем на уровне канала.

В частности, после приема запроса оценивания канала, переданного компонентом 123 управления путем на уровне канала, компонент 125 оценивания качества канала и приложения может оценить качество каждого из доступных сетевых каналов в соответствии с запросом оценивания канала.

Например, качество сетевого канала может быть оценено в соответствии по меньшей мере с одним из параметров сетевого канала: задержкой, коэффициентом потери пакетов, шириной полосы частот и/или скоростью передачи данных в канале. Например, оценка качества может быть проведена для оценивания времени прохождения сигнала в обоих направлениях (Round-Trip time, RTT) для доступных сетевых каналов, так что сетевой канал с наименьшим временем прохождения сигнала в обоих направлениях является наилучшим.

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

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

Этап 1309: Компонент 123 управления путем на уровне канала определяет альтернативный сетевой канал на основе результата оценивания.

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

Этап 1310: Компонент 123 управления путем на уровне канала запрашивает компонент 126 управления соединением с сетью для активизации альтернативного сетевого канала.

Этап 1311: Компонент 126 управления соединением с сетью активизирует альтернативный сетевой канал, и передает по обратной связи уведомительное сообщение, что альтернативный сетевой канал активизирован, компоненту 123 управления путем на уровне канала.

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

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

Этап 1312: Компонент 123 управления путем на уровне канала передает путь альтернативного сетевого канала компоненту 131 управления путем на уровне потока.

Поэтому компонент 131 управления путем на уровне потока может принять и сохранить путь альтернативного сетевого канала, переданный компонентом 123 управления путем на уровне канала.

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

На фиг. 14a и фиг. 14b представлена другая схема последовательности операций взаимодействия между компонентами в первом устройстве согласно одному из вариантов настоящей заявки. Как показано на фиг. 14a и фиг. 14b, способ может содержать:

Этап 1401: Компонент 141 для передачи сообщений о трафике осуществляет определение трафика и сообщает принятый пакет компоненту 133 измерения трафика.

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

В одном из конкретных вариантов реализации, компонент 141 для передачи сообщений о трафике может вызвать компонент (например, компонент Netfilter системы Андроид) для получения пакета из целевого потока сетевого приложения в текущем сетевом канале (например, первичном сетевом канале). Можно понимать, что компонент Netfilter является только примером для описания и не составляет ограничений для вариантов настоящей заявки. В некоторых вариантах, определение пакета может быть в качестве альтернативы выполнено другими компонентами.

Например, параметры сетевого канала могут быть реализованы следующим кодом:

typedef struct{

bool available;

bool slowDevForbbiden;

uint64_t qoeBadTimeStamp;

uint64_t chQoeBadStartTime;

uint32_t rcvRate;

}

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

В качестве опции, когда компонент 141 для передачи сообщений о трафике осуществляет определение трафика, в архитектуре ядра Netfilter может быть зарегистрирована хук-функция для получения пакета целевого потока. Общая блок-схема реализации показана на фиг. 15. Компонент Netfilter направляет пакет к функции nf_hook компонента для передачи сообщений о трафике. Этот пакет, передаваемый по текущему сетевому каналу, затем входит в компонент 141 для передачи сообщений о трафике. Этот компонент для передачи сообщений о трафике выполняет такие процедуры, как анализ пакетов, создание таблицы потоков и анализ контента пакета, и сохраняет этот пакет целевого потока в очереди SKB. Для пакета в очереди SKB в соответствии с политикой передачи сообщений о целевом потоке, которому принадлежит рассматриваемый пакет, данные, какие необходимо сообщать регулярно, (пакет или пакет и статистическую информацию) собирают по команде таймера и сообщают компоненту 133 измерения трафика, а пакет, который необходимо сообщать незамедлительно, сообщают компоненту 133 измерения трафика посредством потока NetLink.

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

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

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

Упомянутое выше время прохождения сигнала в обоих направлениях (Round-Trip time, RTT) является важным индикатором функционирования сети связи, представляющим общее время задержки от момента, когда передатчик осуществил передачу данных, до момента, когда этот передатчик принял квитанцию-подтверждение от приемника (приемник передает квитанцию-подтверждение сразу же после приема данных). На фиг. 16b представлена упрощенная схема способа вычисления времени прохождения сигнала в обоих направлениях для потока периодических контрольных пакетов. В схеме на фиг. 16b, в качестве примера принят поток периодических контрольных пакетов, передаваемый между мобильным телефоном пользователя и сервером. Время прохождения сигнала в обоих направлениях для потока периодических контрольных пакетов представляет собой общее время задержки, от момента, когда мобильный телефон пользователя начал передачу контрольного пакета запроса серверу, до момента, когда мобильный телефон пользователя принял контрольный пакет ответа, переданный сервером по обратной связи.

Например, поток периодических контрольных пакетов, предлагаемый в рассматриваемом варианте настоящей заявки, может иметь следующие характеристики: (ip.src==100.100.3.90 && udp.srcport==60539 && ip.dst==58.217.244.144 && udp.dstport== 10126) && (data[6]==64). Здесь ip.src представляет ip источника, udp.srcport представляет номер порта источника, ip.dst представляет ip адресата, udp.dstport представляет номер порта адресата, и data[6] представляет шесть байтов полезной нагрузки пакета. Далее, эти ip источника, ip адресата, номер порта источника и номер порта адресата представляют четверку параметров потока периодических контрольных пакетов.

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

Этап S1: Инициализация.

Когда происходит запуск и загрузка сетевого приложения, компонент 141 для передачи сообщений о трафике принимает сообщение о запуске приложения (app launch) и регистрирует хук-функцию nf_hook. Примеры кода показаны на фиг. 17a и фиг. 17b.

Этап S2: Обработка пакетов.

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

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

Указанная выше четверка параметров может содержать: IP-адрес источника, IP-адрес пункта назначения (адресата), порт источника и порт адресата. Пятерка параметров может содержать: IP-адрес источника, IP-адрес пункта назначения (адресата), порт источника, порт адресата и номер протокола.

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

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

Указанная выше модель потока может быть конфигурирована в компоненте для передачи сообщений о трафике посредством конфигурационного файла, и этот конфигурационный файл может быть передан в запросе сообщить о трафике, переданном посредством компонента измерения трафика на этапе 1206. Модель потока записывает информацию о признаках, с которыми должен быть согласован пакет. Например, как показано на фиг. 18, указанный выше поток периодических контрольных пакетов может иметь информацию о признаках в шести байтах полезной нагрузки пакета. Например, информация о признаках в потоке периодических контрольных пакетов восходящей линии имеет вид 0x64, а информация о признаках в потоке периодических контрольных пакетов нисходящей линии имеет вид 0x65. В таком случае, в модели потока может быть предварительно задана функция согласования, filterStr, где 0x64 согласован с потоком восходящей линии, и 0x65 согласован с потоком нисходящей линии, где позиция согласования сдвинута на 6 байт от полезной нагрузки протокола UDP.

Как показано на фиг. 19, кодовая логика может использовать функцию memcmp для сравнения, согласован ли контент пакета с конфигурированной функцией согласования, filterStr. Конкретный код имеет вид: if (memcmp(rpt_cfg->filter_str[i], payload + filter_str_offset, rpt_cfg->filter_str_len[i]) == 0), где функция memcmp сравнивает и получает пакет, согласованный с функцией согласования, filterStr, тем самым отфильтровывая поток периодических контрольных пакетов из целевого потока.

Этап S3: Сообщение согласованного целевого потока и статистической информации об этом целевом потоке в соответствии с политикой сообщения о потоках.

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

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

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

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

Этап 1402: Компонент 133 измерения трафика анализирует пакеты, сообщенные компонентом 141 для передачи сообщений о трафике, с целью получения результатов анализа пакетов.

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

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

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

Этап 1403: Компонент 133 измерения трафика передает результат анализа пакетов компоненту 131 управления путем на уровне потока.

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

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

Этап 1404: Компонент 131 управления путем на уровне потока определяет, что следует переключить канал, на основе результата анализа пакетов, и определяет, имеется ли альтернативный сетевой канал. Если да, выполняют этап 1414; и если нет, выполняют этап 1405.

Для реализации этапов 1405 – 1413, ссылки могут быть сделаны на этапы 1304 – 1312, так что подробности здесь снова описаны не будут.

Этап 1414: Компонент 131 управления путем на уровне потока передает идентификационную информацию целевого потока с низким качеством и путь альтернативного сетевого канала компоненту 132 управления политикой на уровне потока.

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

Этап 1415: Компонент 132 управления политикой на уровне потока передает команду переключения канала компоненту 142 для исполнения политики.

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

Например, как показано на фиг. 11a, все потоки – поток A, поток B и поток C, сетевого приложения передают по каналу Wi-Fi 1, поток A является целевым потоком, а политика переключения потоков, соответствующая потоку A имеет вид: поток A и поток B. В таком случае, если качество работы сети для потока A становится плохим, можно определить, что поток A и поток B рассматриваемого сетевого приложения являются потоками, подлежащими переключению, согласно политике переключения потоков, соответствующей потоку A. Поэтому, как показано на фиг. 11b, компонент 132 управления политикой на уровне потока может побудить, посредством команды переключения канала, компонент 142 для исполнения политики переключить поток A и поток B в альтернативный сетевой канал, иными словами, в канал Mobile 1, показанный на фиг. 11b. Продолжая этот пример, предположим, что политика переключения потоков, соответствующая потоку A, имеет вид: поток A, поток B и поток C. В таком случае, если качество работы сети для потока A стало плохим, может быть определено, что поток A, поток B и поток C рассматриваемого сетевого приложения являются потоками, подлежащими переключению, в соответствии с политикой переключения потоков, соответствующей потоку A. Поэтому, как показано на фиг. 11c, компонент 132 управления политикой на уровне потока может побудить, посредством команды переключения канала, компонент 142 для исполнения политики переключить поток A, поток B и поток C в альтернативный сетевой канал, иными словами, в канал Mobile 1, показанный на фиг. 11c.

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

Этап 1416: Компонент 142 для исполнения политики осуществляет переключение канала.

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

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

Пример

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

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

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

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

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

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

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

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

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

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

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

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

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

название год авторы номер документа
СПОСОБ ПЕРЕКЛЮЧЕНИЯ КАНАЛОВ, ЭЛЕКТРОННОЕ УСТРОЙСТВО И НОСИТЕЛЬ ДАННЫХ 2022
  • Ван, Цзиньсян
RU2811567C1
КОНФИГУРИРОВАНИЕ ИНФОРМАЦИИ О КАЧЕСТВЕ ОБСЛУЖИВАНИЯ 2008
  • Ван Цзюнь
  • Улупинар Фатих
  • Цзинь Хайпэн
  • Агаше Параг Арун
  • Тиннакорнсрисупхап Пирапол
  • Хсу Рэймонд Тах-Шенг
  • Махендран Арунгундрам К.
RU2454012C2
УСТАНОВКА ПОЛИТИКИ МАРШРУТИЗАЦИИ НА ОСНОВЕ ПРИЛОЖЕНИЙ В МНОГОРЕЖИМНОМ ОКОНЕЧНОМ УСТРОЙСТВЕ 2013
  • Гупта Вивек Дж.
RU2605364C2
УСТАНОВКА ПОЛИТИКИ МАРШРУТИЗАЦИИ НА ОСНОВЕ ПРИЛОЖЕНИЙ В МНОГОРЕЖИМНОМ ОКОНЕЧНОМ УСТРОЙСТВЕ 2013
  • Гупта Вивек Дж.
RU2656715C1
СПОСОБЫ И УСТРОЙСТВА ДЛЯ ИНТЕГРАЦИИ БЕСПРОВОДНЫХ СЕТЕЙ ШИРОКОГО ОХВАТА С БЕСПРОВОДНЫМИ ЛОКАЛЬНЫМИ СЕТЯМИ 2014
  • Викберг Яри
  • Тейеб Оумер
  • Статтин Магнус
  • Йоханссон Никлас
  • Линдхеймер Кристофер
RU2693686C2
СИСТЕМА И СПОСОБ УЛУЧШЕНИЯ КАЧЕСТВА ОБСЛУЖИВАНИЯ ПЛАНИРОВЩИКОМ В СЕТИ 2022
  • Чаудхури Саптарахи
  • Нетхи Шекар
  • Мохандосс Чандрасекаран
RU2802372C1
ИСПОЛЬЗОВАНИЕ ОБЪЕКТА УПРАВЛЕНИЯ OMA ДЛЯ ПОДДЕРЖКИ ЗАВИСЯЩЕГО ОТ ПРИЛОЖЕНИЙ УПРАВЛЕНИЯ ЗАТОРАМИ В МОБИЛЬНЫХ СЕТЯХ 2015
  • Цаус Роберт
  • Кольде Мартин
  • Паррон Жером
  • Пинейро Ана Лючия А.
  • Мартинез Тарраделл Марта
  • Чой Хьюнг-Нам
  • Гупта Вивек
  • Чинь Чэнь-Хо
  • Бербидж Ричард К.
  • Иу Кэнди
RU2643449C1
КОНФИГУРАЦИЯ УСТРОЙСТВА НА ОСНОВЕ СЕАНСОВ СВЯЗИ 2015
  • Менесес Паскаль Ф.
  • Хассан Амер А.
  • Либ Гунтер
  • Хоген Тодд
RU2689194C2
СПОСОБ И УСТРОЙСТВО ДЛЯ МЕЖСЕТЕВОГО ВЗАИМОДЕЙСТВИЯ БЕСПРОВОДНЫХ ГЛОБАЛЬНЫХ СЕТЕЙ И БЕСПРОВОДНЫХ ЛОКАЛЬНЫХ СЕТЕЙ ИЛИ БЕСПРОВОДНЫХ ПЕРСОНАЛЬНЫХ ЛОКАЛЬНЫХ СЕТЕЙ 2006
  • Дравида Субрахманиам
  • Уолтон Джей Родни
  • Нанда Санджив
  • Суринени Шраван К.
RU2417539C2
ГЕНЕРИРОВАНИЕ И ВЫБОР МЕДИАПОТОКОВ 2007
  • Уолкер Гордон Кент
  • Равииндран Виджаялакшми Р.
RU2404519C2

Иллюстрации к изобретению RU 2 802 678 C1

Реферат патента 2023 года СПОСОБ ПЕРЕКЛЮЧЕНИЯ КАНАЛОВ, ЭЛЕКТРОННОЕ УСТРОЙСТВО И НОСИТЕЛЬ ХРАНЕНИЯ ДАННЫХ

Изобретение относится к области технологий связи и, в частности, к способу переключения каналов. Технический результат заключается в уменьшении задержки в работе сервисов. Согласно способу переключения каналов осуществляют запуск первого приложения, которое содержит первый, второй и третий потоки данных, передаваемые по первому сетевому каналу. В случае определения, что качество работы сети для первого потока данных не удовлетворяет предварительно заданному условию, осуществляют переключение сетевого канала, несущего первый поток данных и второй поток данных, во второй сетевой канал, и сохраняют третий поток данных переносимым первым сетевым каналом неизменным. 3 н. и 10 з.п. ф-лы, 29 ил., 2 табл., 1 пр.

Формула изобретения RU 2 802 678 C1

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

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

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

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

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

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

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

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

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

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

5. Способ по п. 4, в котором этап получения пакета из первого потока данных из множества пакетов, передаваемых по первому сетевому каналу, содержит подэтапы, на которых:

получают пакеты, передаваемые по первому сетевому каналу;

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

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

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

получают сетевые каналы в состоянии доступности в электронном устройстве за исключением первого сетевого канала в случае изменения среды;

осуществляют соответствующую оценку качества сетевых каналов в состоянии доступности;

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

осуществляют активизацию альтернативного сетевого канала.

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

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

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

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

осуществляют соответствующую оценку качества указанных сетевых каналов в состоянии доступности;

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

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

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

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

определяют, что первое приложение представляет собой приложение из заданного белого списка.

10. Способ по п. 1, в котором сетевой канал представляет собой канал Wi-Fi или канал сотовой связи, при этом второй сетевой канал представляет собой канал Wi-Fi или канал сотовой связи.

11. Способ по п. 1, в котором указанное первое приложение представляет собой игровое приложение, первый поток данных представляет собой голосовой поток, а второй поток данных представляет собой игровой поток; или

первое приложение представляет собой приложение для воспроизведения видео, первый поток данных представляет собой голосовой поток, а второй поток данных представляет собой поток видео.

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

13. Машиночитаемый носитель данных, содержащий компьютерные команды, вызывающие, при исполнении, электронным устройством, выполнение способа по любому из пп. 1–11.

Документы, цитированные в отчете о поиске Патент 2023 года RU2802678C1

CN 110798868 A, 14.02.2020
CN 107580345 A, 12.01.2018
CN 111182595 A, 19.05.2020
CN 108200588 A, 22.06.2018
CN 108449771 A, 24.08.2018
УСТРОЙСТВО СВЯЗИ И СПОСОБ СВЯЗИ 2014
  • Цинь Чжунбинь
RU2677693C2
US 20110222466 A1, 15.09.2011.

RU 2 802 678 C1

Авторы

Ян, Цзинци

Даты

2023-08-30Публикация

2022-04-13Подача