RU2802678C1 - Channel switching method, electronic device and storage medium - Google Patents
Channel switching method, electronic device and storage medium Download PDFInfo
- Publication number
- RU2802678C1 RU2802678C1 RU2023103974A RU2023103974A RU2802678C1 RU 2802678 C1 RU2802678 C1 RU 2802678C1 RU 2023103974 A RU2023103974 A RU 2023103974A RU 2023103974 A RU2023103974 A RU 2023103974A RU 2802678 C1 RU2802678 C1 RU 2802678C1
- Authority
- RU
- Russia
- Prior art keywords
- network
- channel
- application
- network channel
- data stream
- Prior art date
Links
Abstract
Description
Область техники, к которой относится изобретениеField of technology to which the invention relates
Настоящая заявка относится к области технологий связи, и в частности, к способу переключения каналов и носитель хранения данных.The present application relates to the field of communication technology, and in particular to a channel switching method and a data storage medium.
Уровень техникиState of the art
По мере быстрого развития электронных технологий и технологий Интернет мобильные устройства, такие как мобильные телефоны, все более широко используются в повседневной жизни людей. Например, посредством мобильных телефонов можно осуществлять мобильные платежи и играть в игры. Для обеспечения нормальной работы общеупотребительных сервисов (например, игр, вызовов и социального программного обеспечения), мобильные телефоны пользователей обычно соединяются с беспроводными (радио) сетями связи. Однако в некоторых сценариях современные сети радиосвязи не удовлетворяют потребности таких сервисов в достаточной степени (например, сигнал мобильного телефона становится слабым и недостаточного качества), что ведет к задержкам в работе сервисов и может ухудшить восприятие их пользователем.With the rapid development of electronic and Internet technologies, mobile devices such as mobile phones are increasingly used in people's daily lives. For example, mobile phones can be used to make mobile payments and play games. To enable common services (such as games, calls, and social software) to function properly, users' mobile phones are typically connected to wireless (radio) communications networks. However, in some scenarios, modern radio networks do not sufficiently meet the needs of such services (for example, the mobile phone signal becomes weak and of insufficient quality), which leads to delays in the operation of services and can degrade the user experience.
Раскрытие сущности изобретенияDisclosure of the invention
Настоящая заявка предлагает способ переключения каналов, электронное устройство и носитель хранения данных, которые могут уменьшить задержку в работе сервисов и улучшить восприятие их пользователем.The present application provides a channel switching method, an electronic device, and a storage medium that can reduce service latency and improve the user experience.
Согласно первому аспекту, один из вариантов настоящей заявки предлагает способ переключения каналов, применимый в электронном устройстве, где это электронное устройство имеет первый сетевой канал и второй сетевой канал, и этот способ содержит: запуск первого приложения, где это первое приложение содержит первый поток данных и второй поток данных, и эти первый поток данных и второй поток данных передают по первому сетевому каналу; и переключение сетевого канала, несущего первый поток данных и второй поток данных, во второй сетевой канал в случае определения, что качество работы сети для первого потока данных не удовлетворяет предварительно заданному условию. Согласно этому способу, когда определено, что качество работы сети для первого потока данных не удовлетворяет заданному условию, переключают во второй сетевой канал не только сетевой канал, несущий первый поток данных, но переключают в этот второй сетевой канал также сетевой канал, несущий второй поток данных, что не только решает проблему задержки операций сервиса, которая может быть вызвана плохим качеством работы сети для первого потока данных, но также решает проблему задержки операций сервиса, которая может быть вызвана плохим качеством работы сети для второго потока данных, тем самым уменьшая задержку операций сервиса и улучшая восприятие пользователем.According to a first aspect, one embodiment of the present application provides a channel switching method applicable to an electronic device, wherein the electronic device has a first network channel and a second network channel, and the method comprises: launching a first application, wherein the first application contains a first data stream and a second data stream, and the first data stream and the second data stream are transmitted over the first network channel; and switching the network channel carrying the first data stream and the second data stream to the second network channel if it is determined that the network performance of the first data stream does not satisfy a predetermined condition. According to this method, when it is determined that the quality of the network for the first data stream does not satisfy a given condition, not only the network channel carrying the first data stream is switched to the second network channel, but also the network channel carrying the second data stream is switched to this second network channel , which not only solves the service operation delay problem that may be caused by poor network performance for the first data flow, but also solves the service operation delay problem that may be caused by poor network performance for the second data flow, thereby reducing the service operation delay and improving the user experience.
В одном из возможных вариантов реализации, первый поток данных и второй поток данных представляют собой потоки данных, чувствительные к одному и тому же параметру, где этот параметр представляет собой по меньшей мере один из следующих параметров: задержку, коэффициент потери пакетов, скорость передачи данных или ширину полосы частот. Согласно рассматриваемому способу, первый поток данных и второй поток данных чувствительны к одному и тому же параметру, так что второй поток данных, который чувствителен к тому же самому параметру, что и первый поток данных, переключают во второй сетевой канал вместе с первым потоком.In one possible implementation, the first data stream and the second data stream are data streams sensitive to the same parameter, where the parameter is at least one of latency, packet loss rate, data rate, or frequency bandwidth. According to the present method, the first data stream and the second data stream are sensitive to the same parameter, such that the second data stream, which is sensitive to the same parameter as the first data stream, is switched to a second network channel along with the first stream.
В одном из возможных вариантов реализации, процедура определения, что качество работы сети для первого потока данных не удовлетворяет предварительно заданному условию, содержит: определение, в соответствии с параметром, к которому чувствителен первый поток данных, что качество работы сети для первого потока данных не удовлетворяет предварительно заданному условию.In one possible implementation, the procedure for determining that the network performance for the first data flow does not satisfy a predetermined condition comprises: determining, in accordance with a parameter to which the first data flow is sensitive, that the network performance for the first data flow does not satisfy pre-specified condition.
В одном из возможных вариантов реализации, процедура определения, в соответствии с параметром, к которому чувствителен первый поток данных, что качество работы сети для первого потока данных не удовлетворяет предварительно заданному условию, содержит: получение пакета данных из первого потока данных из множества пакетов данных, передаваемых по первому сетевому каналу; вычисление параметра, к которому чувствителен первый поток данных, в соответствии с полученным пакетом данных; и определение, что вычисленный параметр не удовлетворяет предварительно заданному условию, соответствующему этому параметру.In one possible embodiment, the procedure for determining, in accordance with a parameter to which the first data stream is sensitive, that the network quality of the first data stream does not satisfy a predetermined condition, comprises: obtaining a data packet from the first data flow from a plurality of data packets, transmitted over the first network channel; calculating a parameter to which the first data stream is sensitive in accordance with the received data packet; and determining that the calculated parameter does not satisfy a predetermined condition corresponding to the parameter.
В одном из возможных вариантов реализации, процедура получения пакета данных из первого потока данных из множества пакетов данных, передаваемых по первому сетевому каналу, содержит: получение пакетов данных, передаваемых по первому сетевому каналу; определение, что в этих пакетах данных присутствует идентификационная информация, соответствующая первому приложению; и определение, что эти пакеты данных содержат функцию согласования с первым потоком данных.In one possible implementation, a procedure for obtaining a data packet from a first data stream of a plurality of data packets transmitted over a first network channel comprises: obtaining data packets transmitted over a first network channel; determining that identification information corresponding to the first application is present in these data packets; and determining that the data packets include a matching function with the first data stream.
В одном из возможных вариантов реализации, прежде переключения сетевого канала, несущего первый поток данных и второй поток данных, во второй сетевой канал, способ дополнительно содержит: получение сетевых каналов, находящихся в доступном состоянии в электронном устройстве, помимо первого сетевого канала в случае определения изменений в окружающей обстановке; соответственное выполнение оценивания качества этих сетевых каналов, находящихся в доступном состоянии; выбор второго сетевого канала с наилучшим качеством как альтернативного сетевого канала в соответствии с результатами оценивания качества; и активизацию этого альтернативного сетевого канала.In one possible embodiment, before switching the network channel carrying the first data stream and the second data stream to the second network channel, the method further comprises: obtaining the network channels available in the electronic device, in addition to the first network channel, in the event of changes being detected in the environment; accordingly performing an assessment of the quality of these network channels that are in an available state; selecting a second network channel with the best quality as an alternative network channel in accordance with the results of quality evaluation; and activation of this alternative network channel.
В одном из возможных вариантов реализации, процедура переключения сетевого канала, несущего первый поток данных и второй поток данных, во второй сетевой канал содержит: переключение, если определено, что имеется второй сетевой канал, что он активизирован и используется в качестве альтернативного сетевого канала, сетевого канала, несущего первый поток данных и второй поток данных, в этот второй сетевой канал.In one possible implementation, a procedure for switching a network channel carrying a first data stream and a second data stream to a second network channel comprises: switching if it is determined that a second network channel is present, that it is activated and is being used as an alternative network channel, a network a channel carrying a first data stream and a second data stream to the second network channel.
В одном из возможных вариантов реализации, процедура переключения сетевого канала, несущего первый поток данных и второй поток данных, во второй сетевой канал далее содержит: получение сетевых каналов, находящихся в доступном состоянии в электронном устройстве, помимо первого сетевого канала в случае определения, что нет активизированного альтернативного сетевого канала; соответственное выполнение оценивания качества этих сетевых каналов, находящихся в доступном состоянии; выбор второго сетевого канала с наилучшим качеством как альтернативного сетевого канала в соответствии с результатами оценивания качества; активизацию второго сетевого канала, используемого в качестве альтернативного сетевого канала; и переключение сетевого канала, несущего первый поток данных и второй поток данных, во второй сетевой канал.In one possible embodiment, the procedure for switching a network channel carrying a first data stream and a second data stream to a second network channel further comprises: obtaining network channels that are available in an electronic device other than the first network channel if it is determined that there are no activated alternative network channel; accordingly performing an assessment of the quality of these network channels that are in an available state; selecting a second network channel with the best quality as an alternative network channel in accordance with the results of quality evaluation; activating a second network channel used as an alternative network channel; and switching the network channel carrying the first data stream and the second data stream to the second network channel.
В одном из возможных вариантов реализации, прежде определения, что качество работы сети для первого потока данных не удовлетворяет предварительно заданному условию, способ дополнительно содержит: определение, что указанное первое приложение представляет собой приложение из предварительно заданного белого списка.In one exemplary embodiment, before determining that the network quality of the first data flow does not satisfy a predetermined condition, the method further comprises: determining that the first application is an application from a predetermined white list.
В одном из возможных вариантов реализации, первый сетевой канал представляет собой канал Wi-Fi или канал сотовой связи, и второй сетевой канал представляет собой канал Wi-Fi или канал сотовой связи.In one possible embodiment, the first network channel is a Wi-Fi channel or a cellular channel, and the second network channel is a Wi-Fi channel or a cellular channel.
В одном из возможных вариантов реализации, указанное первое приложение представляет собой игровое приложение, первый поток данных представляет собой поток голосовых сообщений между игроками (далее – голосовой поток), а второй поток данных представляет собой поток игрового взаимодействия (игроки «сражаются» друг с другом) между игроками (далее – игровой поток); либо первое приложение представляет собой приложение для воспроизведения видео, и тогда первый поток данных представляет собой поток звукового сопровождения (далее – голосовой поток), а второй поток данных представляет собой поток видео.In one possible implementation, the first application is a gaming application, the first data stream is a stream of voice messages between players (hereinafter referred to as the voice stream), and the second data stream is a stream of game interaction (players "fight" with each other) between players (hereinafter referred to as the game flow); or the first application is a video playback application, in which case the first data stream is an audio stream (hereinafter referred to as a voice stream), and the second data stream is a video stream.
Согласно второму аспекту, один из вариантов настоящей заявки предлагает электронное устройство, содержащее:According to a second aspect, one embodiment of the present application provides an electronic device comprising:
процессор; и запоминающее устройство, где это запоминающее устройство конфигурировано для сохранения компьютерного программного кода, этот компьютерный программный код содержит команды, электронное устройство имеет несколько сетевых каналов, это электронное устройство имеет первый сетевой канал и второй сетевой канал, и это электронное устройство, когда оно считывает команды из запоминающего устройства, осуществляет способ согласно первому аспекту.CPU; and a storage device, where the storage device is configured to store computer program code, the computer program code contains instructions, the electronic device has multiple network channels, the electronic device has a first network channel and a second network channel, and the electronic device when it reads the commands from the storage device, implements the method according to the first aspect.
Согласно третьему аспекту, один из вариантов настоящей заявки предлагает читаемый компьютером носитель хранения данных, где этот читаемый компьютером носитель хранения данных сохраняет компьютерную программу, так что при выполнении компьютером этой компьютерной программы, этот компьютер осуществляет способ согласно первому аспекту.According to a third aspect, one embodiment of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program such that when a computer executes the computer program, the computer implements the method according to the first aspect.
Согласно четвертому аспекту, один из вариантов настоящей заявки предлагает компьютерную программу, так что эта компьютерная программа конфигурирована таким образом, чтобы при выполнении ее компьютером осуществлять способ согласно первому аспекту.According to a fourth aspect, one embodiment of the present application provides a computer program such that the computer program is configured to, when executed by a computer, implement the method of the first aspect.
В одном из возможных вариантов реализации, программа согласно четвертому аспекту может быть сохранена целиком или частично на носителе для хранения информации, расположенном в одном корпусе с процессором, либо она может быть сохранена целиком или частично в запоминающем устройстве, не расположенном в одном корпусе с процессором.In one possible embodiment, the program of the fourth aspect may be stored in whole or in part on a storage medium located in the same housing as the processor, or it can be stored in whole or in part in a storage device not located in the same housing as the processor.
Краткое описание чертежейBrief description of drawings
Для более четкого описания технических решений вариантов настоящей заявки далее кратко перечислены прилагаемые чертежи, требуемые для описания этих вариантов. Понятно, что прилагаемые чертежи в последующем описании показывают лишь некоторые варианты настоящего изобретения, и что даже рядовой специалист в рассматриваемой области сможет без особых творческих усилий получить другие чертежи на основе этих прилагаемых чертежей:To more clearly describe the technical solutions of the embodiments of this application, the accompanying drawings required to describe these embodiments are briefly listed below. It is understood that the accompanying drawings in the following description show only some embodiments of the present invention, and that even one of ordinary skill in the art will be able to derive other drawings from these accompanying drawings without much creative effort:
фиг. 1 представляет упрощенную схему переключения потоков в известной технике;fig. 1 represents a simplified flow switching diagram in the prior art;
фиг. 2 представляет упрощенную схему переключения потоков согласно одному из вариантов настоящей заявки;fig. 2 represents a simplified flow switching diagram according to one embodiment of the present application;
фиг. 3a представляет упрощенное изображение представления рабочего стола мобильного телефона на дисплее согласно одному из вариантов настоящей заявки;fig. 3a is a simplified view of a mobile phone desktop display according to one embodiment of the present application;
фиг. 3b представляет упрощенное изображение интерфейса приложения согласно одному из вариантов настоящей заявки;fig. 3b is a simplified view of the application interface according to one embodiment of the present application;
фиг. 3c представляет упрощенное изображение интерфейса приложения в мобильном телефоне с использованием первичного сетевого канала согласно одному из вариантов настоящей заявки;fig. 3c is a simplified view of an application interface on a mobile phone using a primary network channel according to an embodiment of the present application;
фиг. 3d представляет упрощенное изображение интерфейса приложения в мобильном телефоне с использованием альтернативного сетевого канала согласно одному из вариантов настоящей заявки;fig. 3d is a simplified view of an application interface on a mobile phone using an alternative network channel according to one embodiment of the present application;
фиг. 4 представляет упрощенную схему структуры оборудования электронного устройства согласно одному из вариантов настоящей заявки;fig. 4 is a simplified diagram of the hardware structure of an electronic device according to one embodiment of the present application;
фиг. 5 представляет упрощенную схему архитектуры программного обеспечения электронного устройства согласно одному из вариантов настоящей заявки;fig. 5 represents a simplified diagram of the software architecture of an electronic device according to one embodiment of the present application;
фиг. 6 представляет упрощенную схему другой архитектуры программного обеспечения электронного устройства согласно одному из вариантов настоящей заявки;fig. 6 is a simplified diagram of another electronic device software architecture according to one embodiment of the present application;
фиг. 7 представляет упрощенную логическую схему одного из вариантов способа переключения каналов согласно настоящей заявке;fig. 7 is a simplified logic diagram of one embodiment of a channel switching method according to the present application;
фиг. 8 представляет упрощенную структурную схему потока периодических контрольных пакетов согласно одному из вариантов настоящей заявки;fig. 8 is a simplified block diagram of a periodic control packet flow according to one embodiment of the present application;
фиг. 9 представляет упрощенную схему подсчета пакетов игрового потока согласно одному из вариантов настоящей заявки;fig. 9 represents a simplified scheme for counting game stream packets according to one embodiment of the present application;
фиг. 10 представляет упрощенную структурную схему потока пакетов игрового потока согласно одному из вариантов настоящей заявки;fig. 10 is a simplified block diagram of a game stream packet flow according to one embodiment of the present application;
фиг. 11a – фиг. 11c представляют упрощенные схемы переключения потоков согласно одному из вариантов настоящей заявки;fig. 11a - fig. 11c represent simplified flow switching circuits according to one embodiment of the present application;
фиг. 12 представляет схему последовательности операций взаимодействия между компонентами электронного устройства согласно одному из вариантов настоящей заявки;fig. 12 is a flow chart of interactions between components of an electronic device according to one embodiment of the present application;
фиг. 13 представляет другую схему последовательности операций взаимодействия между компонентами электронного устройства согласно одному из вариантов настоящей заявки;fig. 13 is another flow diagram of interactions between components of an electronic device according to one embodiment of the present application;
фиг. 14a и фиг. 14b представляют другую схему последовательности операций взаимодействия между компонентами электронного устройства согласно одному из вариантов настоящей заявки;fig. 14a and fig. 14b represents another flow diagram of interactions between components of an electronic device according to one embodiment of the present application;
фиг. 15 представляет упрощенную схему реализации принципа работы компонента для сообщений о трафике согласно одному из вариантов настоящей заявки;fig. 15 represents a simplified diagram of the operating principle of a traffic reporting component according to one embodiment of the present application;
фиг. 16a представляет упрощенную схему потока периодических контрольных пакетов с интервалом 1 с согласно одному из вариантов настоящей заявки;fig. 16a is a simplified diagram of a flow of periodic control packets at 1 s intervals according to one embodiment of the present application;
фиг. 16b представляет упрощенную схему способа вычисления времени прохождения сигнала в обоих направлениях для периодических контрольных пакетов;fig. 16b is a simplified diagram of a method for calculating round trip time for periodic control bursts;
фиг. 17a представляет упрощенную схему кодовой реализации регистрационной хук-функции согласно одному из вариантов настоящей заявки;fig. 17a represents a simplified code diagram for implementing a registration hook function according to one embodiment of the present application;
фиг. 17b представляет упрощенную схему кодовой реализации регистрационной хук-функции согласно одному из вариантов настоящей заявки;fig. 17b is a simplified code diagram for implementing a registration hook function according to one embodiment of the present application;
фиг. 18 представляет упрощенную схему кодовой реализации функции согласования согласно одному из вариантов настоящей заявки;fig. 18 represents a simplified diagram of the code implementation of the matching function according to one embodiment of the present application;
фиг. 19 представляет упрощенную схему кодовой реализации фильтрации пакетов данных согласно одному из вариантов настоящей заявки;fig. 19 represents a simplified diagram of a code implementation of filtering data packets according to one embodiment of the present application;
фиг. 20 представляет упрощенную схему кодовой реализации передачи целевого потока и результата оценивания качества работы сети для этого целевого потока согласно одному из вариантов настоящей заявки; иfig. 20 represents a simplified diagram of the code implementation of transmitting a target stream and the result of assessing the quality of network operation for this target stream according to one of the variants of this application; And
фиг. 21 представляет упрощенную схему кодовой реализации для получения потока, подлежащего переключению, согласно одному из вариантов настоящей заявки.fig. 21 shows a simplified code implementation diagram for obtaining a stream to be switched, according to one embodiment of the present application.
Осуществление изобретенияCarrying out the invention
Ниже технические решения согласно вариантам настоящей заявки описаны со ссылками на прилагаемые чертежи этих вариантов заявки. В описаниях вариантов настоящей заявки символ «/» означает «или», если не указано иное. Например, A/B может представлять A или B. Используемое здесь сочетание «and/or» указывает только соотношение ассоциирования для описания ассоциированных объектов и представляет, что могут существовать три соотношения. Например, A и/или B может представлять следующие три случая: Существует только A, существуют оба – и A, и B, и существует только B.Below, technical solutions according to variants of this application are described with reference to the attached drawings of these variants of the application. In the descriptions of embodiments of this application, the symbol "/" means "or" unless otherwise indicated. For example, A/B may represent A or B. The combination "and/or" used here specifies only an association relation to describe associated objects and represents that three relations may exist. For example, A and/or B could represent the following three cases: Only A exists, both A and B exist, and only B exists.
Термины «первый» и «второй», упоминаемые ниже предназначены только для целей описания, и их не следует понимать как указание или подразумевание относительной важности или как неявное обозначение количества обозначенных технических признаков. Поэтому элементы, определяемые как «первый» и «второй», могут явно или неявно содержать один или несколько элементов. В описании вариантов настоящей заявки «несколько из» означает два или более.The terms “first” and “second” mentioned below are for descriptive purposes only and should not be understood as indicating or implying relative importance or as implying the number of technical features identified. Therefore, the elements defined as "first" and "second" may explicitly or implicitly contain one or more elements. As used herein, "several of" means two or more.
Во-первых, термины, используемые в вариантах настоящей заявки, применяются в качестве примеров, а не ограничений.First, the terms used in the embodiments of this application are used as examples and not limitations.
Сетевая карта Wi-Fi представляет собой устройство, поддерживающее доступ в Интернет через локальную сеть радиосвязи (Wireless Local Area Network, WLAN).A Wi-Fi network card is a device that supports Internet access via a 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).A data service network card is a device that supports Internet access using mobile communications technologies such as General Packet Radio Service (GPRS), an evolution of the GSM standard with an increased data rate (Enhanced Data Rate for GSM). Evolution, EDGE), Time Division-Synchronous Code Division Multiple Access (TD-SCDMA), High Speed Downlink Packet Access (HSDPA), Wideband Multiple Access code division multiple access (WCDMA), long-term evolution (LTE) and 5th Generation Mobile Communication Technology (5G).
Сетевой канал представляет собой любой маршрут между двумя или более узлами в сети связи или маршрут от адреса источника до адреса пункта назначения в сети связи.A network link is any route between two or more nodes in a communications network, or a route from a source address to a destination address in a communications network.
Сетевой канал электронного устройства в вариантах настоящей заявки обозначает маршрут, установленный между устройством, использующим упомянутые выше сетевую карту Wi-Fi или сетевую карту сервиса передачи данных и т.п. для доступа в Интернет, и другим электронным устройством, таким как сервер. В вариантах настоящей заявки, сетевой канал, установленный с использованием сетевой карты Wi-Fi, называется каналом Wi-Fi, а сетевой канал, установленный с использованием сетевой карты сервиса передачи данных, называется каналом сотовой связи.A network link of an electronic device in embodiments of the present application refers to a route established between a device using the above-mentioned Wi-Fi network card or data service network card or the like. to access the Internet, and other electronic device such as a server. In embodiments of the present application, a network channel established using a Wi-Fi network card is called a Wi-Fi channel, and a network channel established using a data service network card is called a cellular channel.
В электронном устройстве могут быть предварительно конфигурированы несколько сетевых каналов. Например, эта совокупность нескольких сетевых каналов может содержать первичный канал 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 в качестве первичного сетевого канала является только предпочтительным техническим решением и не составляет ограничения для вариантов настоящей заявки. В некоторых вариантах, другие сетевые каналы могут быть в качестве альтернативы выбраны первичными сетевыми каналами.An electronic device may be pre-configured with several network channels. For example, this collection of multiple network channels may comprise a primary Wi-Fi channel, a secondary Wi-Fi channel, a primary cellular channel, and a secondary cellular channel. The primary Wi-Fi channel and secondary Wi-Fi channel can operate in the 2.4 GHz frequency range or in the 5 GHz frequency range. For example, if the primary Wi-Fi channel operates in the 2.4 GHz frequency range, the secondary Wi-Fi channel operates in the 5 GHz frequency range; and if the primary Wi-Fi channel operates in the 5 GHz frequency range, the secondary Wi-Fi channel operates in the 2.4 GHz frequency range. In addition, the primary cellular channel and the secondary cellular channel may correspond to carrier networks. For example, the primary cellular link may use SIM 1 (that SIM 1 belongs to Carrier A), and the secondary cellular link may use SIM 2 (that SIM 2 belongs to Carrier B). In general, the priority of the primary Wi-Fi channel is higher than the priorities of the other three channels. Therefore, the primary network channel is usually the primary Wi-Fi channel. In general, given the data traffic consumption of an electronic device, the priority of the Wi-Fi channel is higher than the priority of the cellular channel. It may be understood that such preconfigured channels are examples for description purposes only and are not limiting to the embodiments of the present application. In some embodiments, more or fewer channels may be additionally included. In addition, the use of the primary Wi-Fi channel as the primary network channel is only a preferred technical solution and does not constitute a limitation on the embodiments of the present application. In some embodiments, other network channels may alternatively be selected as the primary network channels.
По мере быстрого развития электронных технологий и технологий Интернет мобильные устройства, такие как мобильные телефоны, все более широко используются в повседневной жизни людей. Например, посредством мобильных телефонов можно осуществлять мобильные платежи и играть в игры. Для обеспечения нормальной работы общеупотребительных сервисов (например, игр, вызовов и социального программного обеспечения), мобильные телефоны пользователей обычно соединяются с беспроводными (радио) сетями связи. Однако в некоторых сценариях современные сети радиосвязи не удовлетворяют потребности таких сервисов в достаточной степени (например, сигнал мобильного телефона становится слабым и недостаточного качества), что ведет к задержкам в работе сервисов и может ухудшить восприятие их пользователем.With the rapid development of electronic and Internet technologies, mobile devices such as mobile phones are increasingly used in people's daily lives. For example, mobile phones can be used to make mobile payments and play games. To enable common services (such as games, calls, and social software) to function properly, users' mobile phones are typically connected to wireless (radio) communications networks. However, in some scenarios, modern radio networks do not sufficiently meet the needs of such services (for example, the mobile phone signal becomes weak and of insufficient quality), which leads to delays in the operation of services and can degrade the user experience.
Для решения указанной выше проблемы электронное устройство может открыть ускорительный канал, чтобы удовлетворить потребности сервиса. Этот ускорительный канал может представлять собой альтернативный сетевой канал.To solve the above problem, the electronic device can open the acceleration channel to meet the service needs. This accelerator channel may be an alternative network channel.
Один из вариантов настоящей заявки предлагает способ переключения каналов, для мониторинга качества работы сети для каждого потока приложения, работающего в текущий момент, и переключения, когда качество работы сети для какого-либо потока станет плохим, этого потока в альтернативный сетевой канал для передачи, тем самым повышая качество работы сети для этого потока. Например, как показано на фиг. 1, в качестве примера взято первое устройство, представляющее собой мобильный телефон. Приложение, работающее в этом мобильном телефоне, содержит поток A и поток B. Оба потока – поток A и поток B, сначала передают по каналу Wi-Fi, и для этого приложения нет потока, передаваемого по каналу сотовой связи. Когда качество работы сети для потока B становится плохим, мобильный телефон переключает поток B для передачи в канал сотовой связи. После переключения, поток A передают по каналу Wi-Fi, а поток B передают по каналу сотовой связи. Способ повышает качество работы сети для потока посредством переключения потока, качество работы сети для которого стало плохим, в альтернативный сетевой канал, уменьшает запаздывание сервиса, обусловленное плохим качеством работы сети, для этого потока и улучшает восприятие для пользователя.One embodiment of the present application provides a channel switching method for monitoring the network quality of each application stream currently running and switching, when the network quality for any stream becomes poor, that stream to an alternative network channel for transmission, thereby thereby increasing the quality of network operation for this flow. For example, as shown in FIG. 1, the first device, which is a mobile phone, is taken as an example. The application running on this mobile phone contains Stream A and Stream B. Both Stream A and Stream B are transmitted over the Wi-Fi channel first, and there is no stream transmitted over the cellular channel for this application. When the network quality for Stream B becomes poor, the mobile phone switches Stream B to the cellular channel. After switching, stream A is transmitted over the Wi-Fi channel, and stream B is transmitted over the cellular channel. The method improves network performance for a flow by switching a flow for which network performance has become poor to an alternative network channel, reduces service latency due to poor network performance for that flow, and improves the user experience.
Один из вариантов настоящей заявки далее предлагает другой способ переключения каналов. Когда приложение имеет по меньшей мере два потока, передаваемых по одному и тому же сетевому каналу, если качество работы сети для одного из потоков становится плохим, несколько потоков, включая этот поток, из одного и того же сетевого канала могут быть переключены в альтернативный сетевой канал, так что результат оценивания качества работы сети для одного потока может быть применен к нескольким потокам, включая и этот один поток, и может быть осуществлено переключение сетевого канала для нескольких потоков, уменьшая тем самым вероятность запаздывания сервисов для рассматриваемого приложения и улучшая восприятие для пользователя. На фиг. 2 представлена упрощенная схема переключения канала для потоков текущего приложения в одном из вариантов настоящей заявки. На фиг. 2, в качестве примера взяты поток A и поток B, являющиеся чувствительными к задержке потоками для рассматриваемого приложения. Эти поток A и поток B первоначально передают по каналу Wi-Fi. Если определено, что качество потока B становится плохим (например, вычислено, что статус задержки в сети связи для потока B становится плохим), поток A и поток B, передаваемые в одном и том же канале Wi-Fi, переключают в канал сотовой связи, так что результат оценивания качества работы сети для потока B применяют и к потоку A, и к потоку B, передаваемым по одному и тому же сетевому каналу. Быстрое определение качества работы сети для потока B гарантирует быстрое определение качества работы сети для всех потоков одного и того же типа (например, потоков, чувствительных к задержке), передаваемых в том же самом сетевом канале, и быстрое переключение сетевых каналов.One embodiment of the present application further proposes another method for switching channels. When an application has at least two streams carried on the same network channel, if the network quality for one of the streams becomes poor, multiple streams, including that stream, from the same network channel can be switched to an alternative network channel , so that the network performance result of one flow can be applied to multiple flows, including that one flow, and network channel switching can be implemented for multiple flows, thereby reducing the likelihood of service lag for the application in question and improving the user experience. In fig. 2 shows a simplified channel switching diagram for flows of the current application in one of the variants of this application. In fig. 2, we take thread A and thread B as an example, which are delay-sensitive threads for the application in question. These stream A and stream B are initially transmitted over the Wi-Fi channel. If the quality of Stream B is determined to be poor (e.g., the network latency status of Stream B is determined to be poor), Stream A and Stream B transmitted on the same Wi-Fi channel are switched to the cellular channel. so that the network performance result for stream B is applied to both stream A and stream B transmitted over the same network channel. Fast determination of network performance for flow B ensures rapid determination of network performance for all flows of the same type (eg, delay-sensitive flows) transmitted on the same network channel, and rapid switching of network channels.
Одно приложение обычно использует несколько потоков. Из-за различия характеристик передачи разных потоков трудно осуществлять мониторинг того, стало ли качество работы сети для некоторых потоков плохим. Поэтому, даже если электронное устройство осуществляет мониторинг качества работы сети для всех потоков рассматриваемого приложения в реальном времени, невозможно осуществлять своевременный мониторинг все потоков, качество работы сети для которых становится плохим. В рассматриваемом варианте настоящей заявки, когда качество работы сети для одного потока становится плохим, несколько потоков, включая этот поток, в том же самом сетевом канале, переключают в альтернативный сетевой канал. Эта совокупность нескольких потоков может содержать поток, мониторинг плохого качества работы сети для которого невозможно осуществлять своевременно. Это позволяет решить проблему запаздывания в работе сервиса, обусловленного потоками, мониторинг плохого качества работы сети для которых невозможно осуществлять своевременно. По-прежнему принимая упомянутый выше фиг. 2 в качестве примера, поток A и поток B передают по каналу Wi-Fi. Если имеется проблема с передачей по каналу Wi-Fi, ведущая к плохому качеству работы сети для потока A и потока B и к запаздыванию операций сервиса рассматриваемого приложения, но мобильный телефон своевременно осуществляет мониторинг только деградации качества работы сети для потока B и не может своевременно осуществлять мониторинг качества работы сети для потока A, поток A и поток B переключают в альтернативный сетевой канал (например, в канал сотовой связи), что решает проблему запаздывания операций сервиса, обусловленного деградацией качества работы сети для потока A, тем самым уменьшая запаздывание операций сервиса и улучшая восприятие для пользователя.One application typically uses multiple threads. Due to the different transmission characteristics of different streams, it is difficult to monitor whether the network performance of some streams has become poor. Therefore, even if an electronic device monitors the network performance of all flows of the application in question in real time, it is not possible to timely monitor all flows for which the network performance becomes poor. In the exemplary embodiment of the present application, when the network performance of one flow becomes poor, multiple flows including that flow on the same network channel are switched to an alternative network channel. This collection of multiple flows may contain a flow for which poor network quality monitoring cannot be performed in a timely manner. This allows us to solve the problem of delay in the service due to flows for which monitoring of poor network quality cannot be carried out in a timely manner. Still taking the above mentioned FIG. 2 as an example, stream A and stream B are transmitted over a Wi-Fi channel. If there is a problem with Wi-Fi transmission leading to poor network quality for stream A and stream B and delay in service operations of the application in question, but the mobile phone only monitors network quality degradation for stream B in a timely manner and cannot timely perform monitoring the quality of network operation for flow A, flow A and flow B are switched to an alternative network channel (for example, to a cellular communication channel), which solves the problem of delay in service operations caused by degradation of network quality for flow A, thereby reducing the delay of service operations and improving the experience for the user.
Следует отметить, что в рассматриваемом варианте настоящей заявки, когда работающее в текущий момент приложение имеет n (n – натуральное целое число больше 1) потоков, передаваемых по одному и том же сетевому каналу, если качество работы сети для одного из этих потоков становится плохим, эти n потоков или все потоки могут быть переключены в альтернативный сетевой канал, что в рассматриваемом варианте настоящей заявки не ограничивается.It should be noted that in the present embodiment, when a currently running application has n (n is a natural integer greater than 1) streams transmitted over the same network channel, if the network performance for one of these streams becomes poor, these n streams or all streams can be switched to an alternative network channel, which is not limited in the present embodiment.
Ниже подробно рассмотрена реализация другого способа переключения каналов, предлагаемого в рассматриваемом варианте настоящей заявки. Следует отметить, что для осуществления приведенного выше способа переключения каналов, предлагаемого в рассматриваемом варианте настоящей заявки, ссылки могут быть сделаны на последующее описание, и главное отличие состоит в том, что в ходе операции переключения потоков переключают только тот поток, качество которого стало плохим.Below we discuss in detail the implementation of another channel switching method proposed in the considered version of this application. It should be noted that in order to implement the above channel switching method proposed in the present embodiment, reference may be made to the following description, and the main difference is that during the stream switching operation, only the stream whose quality has become poor is switched.
Применимый сценарий другого способа переключения каналов, предлагаемого в рассматриваемом варианте настоящей заявки, иллюстрирован с использованием фиг. 3a – фиг. 3d.An applicable scenario of another channel switching method proposed in the present embodiment is illustrated using FIG. 3a - fig. 3d.
В качестве примера взято первое устройство, представляющее собой мобильный телефон. На фиг. 3a представлено упрощенное изображение рабочего стола мобильного телефона. Как показано на фиг. 3a, пользователь может прикоснуться к иконке приложения для видео на рабочем столе мобильного телефона, чтобы открыть приложение для видео, в результате чего на дисплее телефона появляется изображение, упрощенный вариант которого показан на фиг. 3b.The first device, a mobile phone, is taken as an example. In fig. Figure 3a shows a simplified image of a mobile phone desktop. As shown in FIG. 3a, the user can touch the video application icon on the desktop of the mobile phone to open the video application, causing an image to appear on the phone's display, a simplified version of which is shown in FIG. 3b.
На фиг. 3c представлено упрощенное изображение результата, когда мобильный телефон использует первичный сетевой канал (например, канал Wi-Fi). Как показано на фиг. 3c, после того, как мобильный телефон получит путь первичного сетевого канала, этот первичный сетевой канал может быть использован для просмотра видео.In fig. 3c shows a simplified image of the result when the mobile phone uses the primary network channel (eg, Wi-Fi channel). As shown in FIG. 3c, after the mobile phone receives the primary network channel path, this primary network channel can be used to watch video.
Можно понимать, что работающее в текущий момент сетевое приложение (например, приложение для видео, показанное на фиг. 3c) может содержать несколько потоков (например, потоки видео и потоки аудио), и эти несколько потоков могут передаваться по первичному сетевому каналу.It can be understood that a currently running network application (eg, the video application shown in FIG. 3c) may contain multiple streams (eg, video streams and audio streams), and these multiple streams may be transmitted over the primary network channel.
Как показано на фиг. 2, если качество одного потока (например, потока видео) из совокупности нескольких потоков (например, потоков видео и потоков аудио) становится плохим, эти несколько потоков переключают в альтернативный сетевой канал.As shown in FIG. 2, if the quality of one stream (eg, a video stream) among multiple streams (eg, video streams and audio streams) becomes poor, the multiple streams are switched to an alternative network channel.
На фиг. 3d представлено упрощенное изображение мобильного телефона, использующего альтернативный сетевой канал (например, канал сотовой связи). Как показано на фиг. 3d, когда принята команда переключения канала, мобильный телефон может переключить голосовые потоки и потоки видео из текущего первичного сетевого канала в альтернативный сетевой канал и может использовать этот альтернативный сетевой канал для просмотра видео, чтобы избежать «застывания» видео.In fig. 3d shows a simplified image of a mobile phone using an alternative network channel (for example, a cellular communication channel). As shown in FIG. 3d, when a channel switch command is received, the mobile phone can switch voice streams and video streams from the current primary network channel to an alternate network channel, and can use this alternate network channel to watch video to avoid video freezing.
Способ переключения каналов в вариантах настоящей заявки может быть применен к указанному первому устройству. Это первое устройство может представлять собой мобильный терминал, устройство терминала, пользовательское оборудование (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 может также представлять собой носимое устройство. Это носимое устройство может также называться носимым интеллектуальным устройством, и имеется коллективное название для носимых устройств, созданных посредством проектирования интеллектуальных предметов повседневного пользования на основе технологии носимых устройств, например, очков, перчаток, наручных часов, одежды и обуви. Носимое устройство представляет собой портативное устройство, носимое непосредственно на теле человека или интегрированное в одежду или аксессуар пользователя. Носимое устройство представляет собой нечто большее, чем просто аппаратное устройство, и оно может даже реализовать очень мощные функции при соответствующей программной поддержке, обмене данными и облачном взаимодействии. В широком смысле, к интеллектуальным носимым устройствам относятся, например, «умные» наручные часы или «умные» очки, которые могут иметь полный набор функций и большие размеры и которые могут осуществлять некоторые или все функции, не опираясь на смартфон, а также разного рода интеллектуальные обручи, повязки и браслеты, или интеллектуальные ювелирные украшения, которые сосредоточены на прикладных функциях какого-либо конкретного типа и должны использоваться во взаимодействии с другим устройством, таким как смартфон, и могут осуществлять мониторинг физических симптомов.The channel switching method in the embodiments of the present application may be applied to said first device. This first device may be a mobile terminal, terminal device, User Equipment (UE), access terminal, subscriber unit, subscriber station, mobile station, mobile console, remote station, remote terminal, mobile device, user terminal, radio communication device , user agent or user hardware. The first device may be a station (ST) on a WLAN network, may be a cellular telephone, a cordless telephone, a session initiation protocol (SIP) telephone, a wireless local loop (WLL) station ), personal digital assistant (PDA), handheld device having a radio communication function, computer device, other processing device connected to a wireless modem, vehicle-mounted device, vehicle Internet terminal, computer, laptop computer , hand-held communications device, hand-held computer device, satellite wireless device, wireless modem card, Set Top Box (STB), Customer Premise Equipment (CPE), and/or other radio communication devices and in next generation communications systems, for example, a mobile terminal in a 5G communication network or a mobile terminal in a future public land mobile network (PLMN). The first device 10 may also be a wearable device. This wearable device may also be called a wearable smart device, and there is a collective name for wearable devices created by designing smart everyday items based on wearable technology, such as glasses, gloves, wristwatches, clothing and shoes. A wearable device is a portable device worn directly on the human body or integrated into the wearer's clothing or accessory. A wearable device is more than just a hardware device and can even implement very powerful functions with the right software support, data sharing and cloud connectivity. In a broad sense, smart wearable devices include, for example, smart wristwatches or smart glasses, which can be full-featured and large in size and can perform some or all functions without relying on a smartphone, as well as various smart headbands, bands and bracelets, or smart jewelry that focus on a specific type of application function and are intended to be used in conjunction with another device, such as a smartphone, and can monitor physical symptoms.
Сначала, ниже будет рассмотрен пример электронного устройства, предлагаемого в следующем варианте настоящей заявки. На фиг. 4 представлена упрощенная структурная схема электронного устройства 100. Это электронное устройство 100 может представлять собой указанное выше первое устройство.First, an example of an electronic device proposed in the next version of this application will be discussed below. In fig. 4 is a simplified block diagram of an electronic device 100. The electronic device 100 may be the first device described above.
Электронное устройство 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 с костной проводимостью и другие подобные датчики.Electronic device 100 may include processor 110, external storage interface 120B, internal storage 120A, universal serial bus (USB) interface 130, charging control module 140A, power management module 140B, battery 140C, antenna 1, antenna 2 , mobile communication module 150, radio module 160, audio module 170, loudspeaker 170A, telephone speaker 170B, microphone 170C, headset jack 170D, sensor module 180, button 190, motor 191, indicator 192, video camera 193, display screen 194 , subscriber identification module (SIM) card interface 195 and other similar components. The sensor module 180 may include a pressure sensor 180A, a gyro sensor 180B, a barometric pressure sensor 180C, a magnetic sensor 180D, an acceleration sensor 180E, a distance sensor 180F, an optical proximity sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, a sensor 180L ambient light, 180M bone conduction sensor and other similar sensors.
Можно понимать, что упрощенная структура, показанная в рассматриваемом варианте настоящей заявки, не составляет каких-то специальных ограничений для электронного устройства 100. В некоторых других вариантах настоящей заявки электронное устройство 100 может содержать больше или меньше компонентов, чем показано на чертеже, либо комбинировать некоторые компоненты, либо разбивать некоторые компоненты, либо иметь другие расположения и соединения компонентов. Компоненты, показанные на чертеже, могут быть реализованы в виде оборудования, программного обеспечения или комбинации программного обеспечения и оборудования.It will be understood that the simplified structure shown in the exemplary embodiment of the present application is not particularly limiting to the electronic device 100. In some other embodiments of the present application, the electronic device 100 may contain more or fewer components than shown in the drawing, or combine some components, either breaking up some components, or having different arrangements and connections of components. The components shown in the drawing may be implemented as hardware, software, or a combination of software and hardware.
Процессор 110 может содержать один или несколько процессорных модулей. Например, процессор 110 может содержать процессор приложений (application processor, AP), процессор модема, графический процессор (graphics processing unit, GPU), процессор сигнала изображения (image signal processor, ISP), контроллер, видео кодек, цифровой процессор сигнала (digital signal processor, DSP), процессор видеодиапазона и/или процессорный модуль нейронной сети (neural-network processing unit, NPU). Различные процессорные модули могут быть независимыми устройствами или могут быть интегрированы в одном или нескольких процессорах. Контроллер может представлять собой нервный центр или командный центр электронного устройства 100. Этот контроллер может генерировать сигнал операционного управления на основе операционного кода команды и сигнала временной последовательности, а также считывать команду и управлять выполнением этой команды.Processor 110 may include one or more processor modules. For example, processor 110 may include an application processor (AP), a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, a video codec, a digital signal processor processor, DSP), video processor and/or neural-network processing unit (NPU). The different processor modules may be independent units or may be integrated into one or more processors. The controller may be the nerve center or command center of the electronic device 100. The controller may generate an operation control signal based on the command operation code and the time sequence signal, and read a command and control execution of the command.
Запоминающее устройство может быть далее конфигурировано в процессоре 110 для сохранения команд и данных. В некоторых вариантах, запоминающее устройство в процессоре 110 представляет собой кэш-память. Это запоминающее устройство может сохранять команды или данные, используемые в текущий момент или циклически используемые процессором 110. Если процессору 110 необходимо использовать такие команды или данные снова, этот процессор может напрямую вызвать команды или данные из запоминающего устройства, чтобы избежать операции повторного доступа и уменьшить время ожидания процессора 110 для повышения эффективности системы.The storage device may be further configured in the processor 110 to store instructions and data. In some embodiments, the storage device in the processor 110 is a cache memory. This memory device may store instructions or data currently used or cyclically used by the processor 110. If the processor 110 needs to use such instructions or data again, the processor may directly recall the instructions or data from the memory device to avoid re-access operation and reduce time waiting for the processor 110 to improve system efficiency.
Способ переключения каналов, предлагаемый в вариантах настоящей заявки, может быть осуществлен процессором 110 путем управления или вызова других компонентов, например, посредством вызова процессорной программы для вариантов настоящей заявки, сохраняемой во внутреннем запоминающем устройстве 120A, чтобы реализовать операцию переключения канала для пользователя и улучшить восприятие пользователем.The channel switching method proposed in the embodiments of the present application may be implemented by the processor 110 by controlling or calling other components, for example, by calling a processor program for the embodiments of the present application stored in the internal memory 120A, to implement the channel switching operation for the user and improve the experience user.
В некоторых вариантах процессор 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).In some embodiments, processor 110 may include one or more interfaces. Such interfaces can be an interface between integrated circuits (inter-integrated circuit, I2C), an audio interface between integrated circuits (inter-integrated circuit sound, I2S), an interface with pulse code modulation (PCM), an interface universal asynchronous transceiver (universal asynchronous receiver/transmitter, UART), mobile industry processor interface (MIPI), general-purpose input/output interface (GPIO), subscriber identification module interface module, SIM) and/or universal serial bus (USB) interface.
Такой интерфейс USB 130 представляет собой интерфейс, удовлетворяющий спецификациям стандарта USB, и может, в частности, представлять собой интерфейс mini-USB, интерфейс micro-USB, интерфейс USB Type C или другой подобный интерфейс. Интерфейс USB 130 может быть конфигурирован для соединения с зарядным устройством с целью заряжать аккумулятор электронного устройства 100, или может быть использован для передачи данных между электронным устройством 100 и периферийным устройством, либо может быть конфигурирован для соединения с головной гарнитурой с целью воспроизведения аудио с использованием этой головной гарнитуры. В качестве альтернативы такой интерфейс может быть конфигурирован для соединения с другим электронным устройством, таким как устройство дополненной реальности (AR).Such a USB interface 130 is an interface that satisfies the specifications of the USB standard, and may particularly be a mini-USB interface, a micro-USB interface, a USB Type C interface, or the like. The USB interface 130 may be configured to connect to a charger for the purpose of charging the battery of the electronic device 100, or may be used to transfer data between the electronic device 100 and a peripheral device, or may be configured to connect to a headset for the purpose of playing audio using it. headset. Alternatively, such an interface may be configured to connect to another electronic device, such as an augmented reality (AR) device.
Можно понять, что соединения между модулями через интерфейсы, упрощенно показанные в рассматриваемом варианте настоящей заявки, являются просто примером для описания и не составляют ограничений на структуру электронного устройства 100. В некоторых других вариантах настоящей заявки электронное устройство 100 может в качестве альтернативы использовать способ интерфейсного соединения, отличный от того, что изложено в приведенном выше варианте, или сочетание нескольких способов интерфейсного соединения.It will be understood that the connections between modules via interfaces illustrated in a simplified manner in the present embodiment are merely exemplary for description and do not constitute a limitation on the structure of the electronic device 100. In some other embodiments of the present application, the electronic device 100 may alternatively use an interface connection method , different from what is set out in the above embodiment, or a combination of several interface connection methods.
Функция радиосвязи в электронном устройстве 100 может быть реализована антенной 1, антенной 2, модулем 150 мобильной связи, модулем 160 радиосвязи, процессором модема, процессором видеодиапазона и другими подобными компонентами.The radio communication function in the electronic device 100 may be implemented by an antenna 1, an antenna 2, a mobile communication module 150, a radio communication module 160, a modem processor, a video processor, and other similar components.
Антенна 1 и антенна 2 конфигурированы для: передачи и приема сигналов электромагнитных волн. Каждая антенна в электронном устройстве 100 может быть использована для охвата одного или нескольких частотных диапазонов связи. Разные антенны могут быть далее мультиплексированы для увеличения степени использования антенн. Например, антенна 1 может быть мультиплексирована в качестве разнесенной антенны в локальной сети радиосвязи. В некоторых других вариантах антенна может быть использована в сочетании с переключателем настройки.Antenna 1 and Antenna 2 are configured to: transmit and receive electromagnetic wave signals. Each antenna in electronic device 100 may be used to cover one or more communication frequency bands. Different antennas can be further multiplexed to increase antenna utilization. For example, antenna 1 may be multiplexed as a diversity antenna in a radio local area network. In some other embodiments, the antenna may be used in combination with a tuning switch.
Модуль 150 мобильной связи может создать техническое решение радиосвязи в системах связи поколений 2G/3G/4G/5G, применяемое в электронном устройстве 100. Модуль 150 мобильной связи может содержать по меньшей мере один фильтр, переключатель, усилитель мощности, малошумящий усилитель (low noise amplifier, LNA) и другие подобные компоненты. Модуль 150 мобильной связи может принимать электромагнитные волны через антенну 1, осуществлять обработку, такую как фильтрация и усиление, принятых электромагнитных волн, и передавать обработанные электромагнитные волны процессору модема для демодуляции. Модуль 150 мобильной связи может далее усиливать сигнал, модулированный процессором модема и преобразовывать этот сигнал в электромагнитные волны для излучения через антенну 1. В некоторых вариантах, по меньшей мере некоторые функциональные модули из модуля 150 мобильной связи могут быть расположены в процессоре 110. В некоторых вариантах, по меньшей мере некоторые функциональные модули из модуля 150 мобильной связи и по меньшей мере некоторые модули из процессора 110 могут быть расположены в одном и том же устройстве.The mobile communication module 150 may provide a 2G/3G/4G/5G radio communication solution applied to the electronic device 100. The mobile communication module 150 may include at least one filter, switch, power amplifier, low noise amplifier , LNA) and other similar components. The mobile communication unit 150 may receive electromagnetic waves through the antenna 1, perform processing such as filtering and amplification on the received electromagnetic waves, and transmit the processed electromagnetic waves to the modem processor for demodulation. Mobile communication module 150 may further amplify the signal modulated by the modem processor and convert the signal into electromagnetic waves for radiation through antenna 1. In some embodiments, at least some functional modules from mobile communication module 150 may be located in processor 110. In some embodiments, , at least some functional modules from the mobile communication module 150 and at least some modules from the processor 110 may be located in the same device.
Процессор модема может содержать модулятор и демодулятор. Модулятор конфигурирован для модуляции подлежащего передаче низкочастотного сигнала видеодиапазона и преобразования его в сигнал средних и высоких частот. Демодулятор конфигурирован для демодуляции принятого сигнала электромагнитных волн и преобразования его в низкочастотный сигнал видеодиапазона. Затем демодулятор передает демодулированный низкочастотный сигнал видеодиапазона процессору видеодиапазона для обработки. Низкочастотный сигнал видеодиапазона обрабатывают посредством процессора видеодиапазона и затем передают процессору приложений. Процессор приложений передает звуковой сигнал на выход через аудио устройство (которое не исчерпывается громкоговорителем 170A, динамиком 170B телефона или другим подобным устройством) или представляет изображение или видео на экране 194 дисплея. В некоторых вариантах, процессор модема может представлять собой независимое устройство. В некоторых других вариантах, процессор модема может быть независимым от процессора 110, а также процессор модема и модуль 150 мобильной связи или другой функциональный модуль могут быть расположены в одном и том же компоненте.The modem processor may include a modulator and a demodulator. The modulator is configured to modulate a low frequency video signal to be transmitted and convert it into a medium and high frequency signal. The demodulator is configured to demodulate the received electromagnetic wave signal and convert it into a low frequency video signal. The demodulator then passes the demodulated low frequency video signal to the video processor for processing. The low frequency video signal is processed by the video processor and then transmitted to the application processor. The application processor outputs an audio signal through an audio device (which is not limited to speaker 170A, telephone speaker 170B, or the like) or presents an image or video on the display screen 194. In some embodiments, the modem processor may be an independent device. In some other embodiments, the modem processor may be independent of the processor 110, and the modem processor and the mobile communication module 150 or other functional module may be located in the same component.
Модуль 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.The radio communication module 160 may provide a radio communication solution applicable to the electronic device 100, such as wireless local area networks (WLAN) communications (e.g., a wireless fidelity (Wi-Fi) network), Bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), and infrared (IR) technology communications. The radio communication module 160 may be one or more devices integrating at least one communication processor module. This radio communication module 160 receives electromagnetic waves using the antenna 2, performs frequency modulation and filter processing of the electromagnetic wave signal, and transmits the processed signal to the processor 110. The radio communication module 160 may alternatively receive the signal to be transmitted from the processor 110, perform frequency modulation and amplification of the signal to be transmitted signal and convert this signal into electromagnetic waves for radiation using antenna 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).In some embodiments, in electronic device 100, antenna 1 is coupled to mobile communications module 150 and antenna 2 is coupled to radio communications module 160 so that electronic device 100 can communicate with a communications network and with another device using radio communications technology. This radio technology may be a global system for mobile communications (GSM), a general packet radio service (GPRS), a code division multiple access (CDMA), or a broadband wideband code division multiple access (WCDMA), synchronous time-division code division multiple access (TD-SCDMA), long term evolution system LTE), BT system, GNSS system, WLAN network, NFC communication, FM communication, IR technology and/or other similar technology. The GNSS system can be a global positioning system (GPS), a global navigation satellite system (GLONASS), a BeiDou satellite navigation system (BDS), a quasi-zenith satellite system (quasi -zenith satellite system, QZSS) and/or satellite based augmentation systems (SBAS).
Электронное устройство 100 реализует функцию дисплея с использованием графического процессора GPU, экрана 194 дисплея, процессора приложений и других подобных компонентов. Процессор GPU представляет собой микропроцессор для обработки изображений, соединенный с экраном 194 дисплеем и процессором приложений. Процессор GPU конфигурирован для осуществления математических и геометрических вычислений и конфигурирован для отображения графики. Процессор 110 может содержать один или несколько процессоров GPU и выполнять команды программы для генерации или изменения информации, представляемой на дисплее.The electronic device 100 implements a display function using a GPU, a display screen 194, an application processor, and other such components. The GPU is an image processing microprocessor coupled to a display screen 194 and an application processor. The GPU processor is configured to perform mathematical and geometric calculations and is configured to display graphics. Processor 110 may include one or more GPU processors and execute program instructions to generate or modify information presented on the display.
Экран 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.The display screen 194 is configured to present images, videos, and other such information. This display screen 194 includes a display panel. The display panel can be a liquid crystal display (LCD), organic light-emitting diode (OLED), active-matrix organic light emitting diode (AMOLED), flexible display flex light-emitting diode (FLED), mini-LED display, micro-LED display, micro-OLED display, quantum dot light emitting diode (QLED) display, or other similar panel. In some embodiments, electronic device 100 may include one or N display screens 194, where N is a positive integer greater than 1.
Электронное устройство 100 может осуществлять функцию фотографирования с использованием процессора ISP, видеокамеры 193, видео кодека, процессора GPU, экрана 194 дисплея, процессор приложений и других подобных компонентов. The electronic device 100 may perform the photography function using an ISP processor, a video camera 193, a video codec, a GPU processor, a display screen 194, an application processor, and other such components.
Процессор ISP конфигурирован для обработки данных, передаваемых в виде обратной связи видеокамерой 193. Например, в процессе фотографирования активизируется затвор. Свет проходит на фоточувствительный элемент видеокамеры через объектив, и оптический сигнал преобразуется в электрический сигнал. Фоточувствительный элемент видеокамеры передает электрический сигнал процессору ISP для обработки, и затем электрический сигнал преобразуют в изображение, видимое невооруженным глазом. Процессор ISP может также осуществлять алгоритмическую оптимизацию с точки зрения уменьшения шумов изображения, улучшения яркости и тона кожи. Процессор ISP может также оптимизировать параметры фотографирования сцены, такие как экспозиция и цветовая температура. В некоторых вариантах, процессор ISP может быть расположен в видеокамере 193.The ISP is configured to process data provided as feedback by the video camera 193. For example, the shutter is activated during photography. Light passes to the photosensitive element of the video camera through the lens, and the optical signal is converted into an electrical signal. The photosensitive element of the video camera transmits the electrical signal to the ISP for processing, and then the electrical signal is converted into an image visible to the naked eye. The ISP can also perform algorithmic optimization in terms of reducing image noise, improving brightness and skin tone. The ISP can also optimize scene photographing parameters such as exposure and color temperature. In some embodiments, the ISP may be located in the video camera 193.
Видеокамера 193 конфигурирована для захвата (съемки) статических изображений или видео. Объект проецируется на фоточувствительный элемент через оптическое изображение, генерируемое объективом. Фоточувствительный элемент может представлять собой прибор с зарядовой связью (ПЗС (charge coupled device, CCD)) или фототранзистор с комплементарной структурой металл-оксид-полупроводник (КМОП (complementary metal-oxide-semiconductor, CMOS)). Фоточувствительный элемент преобразует оптический сигнал в электрический сигнал и затем передает этот электрический сигнал процессору ISP, чтобы этот процессор ISP преобразовал электрический сигнал в цифровой сигнал изображения. Процессор ISP передает цифровой сигнал изображения процессору DSP для обработки. Процессор DSP преобразует цифровой сигнал изображения в сигнал изображения в таких форматах, как стандартные форматы RGB и YUV. В некоторых вариантах, электронное устройство 100 может содержать одну или N видеокамер 193, где N – положительное целое число больше 1.The video camera 193 is configured to capture still images or video. The object is projected onto the photosensitive element through an optical image generated by the lens. The photosensitive element can be a charge coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor. The photosensitive element converts the optical signal into an electrical signal and then transmits this electrical signal to the ISP processor so that the ISP processor converts the electrical signal into a digital image signal. The ISP transmits the digital image signal to the DSP for processing. The DSP processor converts the digital image signal into image signals in formats such as standard RGB and YUV formats. In some embodiments, electronic device 100 may include one or N video cameras 193, where N is a positive integer greater than 1.
Цифровой процессор сигнала (DSP) конфигурирован для обработки цифрового сигнала и может также обрабатывать другой цифровой сигнал в дополнение к цифровому сигналу изображения. Например, когда электронное устройство 100 осуществляет выбор частоты, цифровой процессор сигнала конфигурирован для выполнения преобразования Фурье и других подобных операций над сигналом в частотной области.A digital signal processor (DSP) is configured to process a digital signal and can also process another digital signal in addition to the digital image signal. For example, when the electronic device 100 performs frequency selection, the digital signal processor is configured to perform Fourier transform and other similar operations on the signal in the frequency domain.
Видео кодек конфигурирован для сжатия (компрессии) или расширения (декомпрессии) цифрового видео. Электронное устройство 100 может поддерживать один или несколько видео кодеков. При таком подходе, электронное устройство 100 может воспроизводить или записывать видео в нескольких форматах кодирования, например, форматах, разработанных Группой экспертов по кинематографии (moving picture experts group, MPEG) 1, MPEG 2, MPEG 3 и MPEG 4.A video codec is configured to compress (compress) or expand (decompress) digital video. Electronic device 100 may support one or more video codecs. With this approach, electronic device 100 can play or record video in multiple encoding formats, such as those developed by the moving picture experts group (MPEG) 1, MPEG 2, MPEG 3, and MPEG 4.
Процессор NPU представляет собой вычислительный процессор нейронной сети (neural-network, NN), быстро обрабатывающий входную информацию с использованием структуры биологической нейронной сети, например, путем использования режима передачи между нейронами в мозгу человека и может далее осуществлять непрерывное самообучение. Процессор NPU может реализовать такие приложения, как рациональное познание, в электронном устройстве 100, например, распознавание состояния пленки, восстановление изображения, распознавание изображения, распознавание лиц, распознавание речи и понимание текста.The NPU is a neural-network (NN) computational processor that quickly processes input information using a biological neural network structure, for example, by using the transmission mode between neurons in the human brain, and can then carry out continuous self-learning. The NPU may implement rational cognition applications in the electronic device 100, such as film state recognition, image restoration, image recognition, face recognition, speech recognition, and text understanding.
Интерфейс 120B внешнего запоминающего устройства может быть конфигурирован для присоединения внешней карты памяти, такой как микро SD карта, для расширения возможностей хранения информации в электронном устройстве 100. Внешняя карта памяти осуществляет связь с процессором 110 с использованием интерфейса 120B внешнего запоминающего устройства для реализации функции хранения данных, такой как сохранение на внешней карте памяти файлов, таких как музыкальные файлы или файлы видео.The external storage interface 120B may be configured to attach an external storage card, such as a micro SD card, to enhance the storage capabilities of the electronic device 100. The external storage card communicates with the processor 110 using the external storage interface 120B to implement a data storage function. , such as saving files such as music files or video files on an external memory card.
Внутреннее запоминающее устройство 120A может быть конфигурировано для сохранения выполняемого компьютером программного кода, где этот выполняемый программный код содержит команды. Это внутреннее запоминающее устройство 120A может содержать область хранения программ и область хранения данных. Область хранения программ может сохранять операционную систему, приложение, требуемое по меньшей мере одной функцией (например, функцией воспроизведения звука и функцией воспроизведения изображения), и другие подобные программы. Область хранения данных может сохранять данные (например, аудиоданные и адресную книгу) и другие подобные данные, создаваемые в процессе использования электронного устройства 100. В дополнение к этому, внутреннее запоминающее устройство 120A может содержать высокоскоростное запоминающее устройство с произвольной выборкой, и может далее содержать энергонезависимое запоминающее устройство, например, по меньшей мере одно запоминающее устройство на магнитном диске, устройство флэш-памяти или универсальное флэш-хранилище данных (universal flash storage, UFS). Процессор 110 выполняет команды, сохраняемые во внутреннем запоминающем устройстве 120A, и/или команды, сохраняемые в запоминающем устройстве, расположенном в процессоре, для осуществления различных функциональных приложении и обработки данных электронного устройства 100.Internal storage device 120A may be configured to store computer-executable program code, where the executable program code contains instructions. This internal storage device 120A may include a program storage area and a data storage area. The program storage area may store an operating system, an application required by at least one function (eg, a sound reproduction function and an image reproduction function), and other such programs. The data storage area may store data (eg, audio data and address book) and other such data generated during use of the electronic device 100. In addition, the internal storage device 120A may include a high-speed random access memory, and may further include a non-volatile a storage device, such as at least one magnetic disk storage device, a flash memory device, or universal flash storage (UFS). The processor 110 executes instructions stored in the internal memory 120A and/or instructions stored in a memory located in the processor to carry out various functional applications and process data of the electronic device 100.
Электронное устройство 100 может осуществлять аудио функцию с использованием аудио модуля 170, громкоговорителя 170A, динамика 170B телефона, микрофона 170C, гнезда 170D для подключения головной гарнитуры, процессора приложений и других подобных компонентов. Эта аудио функция представляет собой, например, воспроизведение или запись музыки.The electronic device 100 may perform an audio function using an audio module 170, a speaker 170A, a telephone speaker 170B, a microphone 170C, a headset jack 170D, an application processor, and other such components. This audio function is, for example, playing or recording music.
Датчик 180K прикосновения также называется «сенсорной панелью» («touch panel (TP)»). Этот датчик 180K прикосновения может быть расположен на экране 194 дисплея, образуя сенсорный экран, который также называется «тачскрин». Датчик 180K прикосновения конфигурирован для определения операции прикосновения, осуществляемой на поверхности датчика 180K прикосновения или рядом с ним. Датчик прикосновения может передать обнаруженную операцию прикосновения процессору приложений для определения типа события прикосновения. Датчик прикосновения может подать визуальный выходной сигнал относительно операции прикосновения с использованием экрана 194 дисплея. В некоторых других вариантах, датчик 180K прикосновения может также быть в качестве альтернативы расположен на поверхности электронного устройства 100 в позиции, отличной от экрана 194 дисплея.The 180K touch sensor is also called “touch panel (TP)”. This 180K touch sensor may be located on the display screen 194 to form a touch screen, also referred to as a touchscreen. The touch sensor 180K is configured to detect a touch operation performed on or adjacent to a surface of the touch sensor 180K. The touch sensor may transmit the detected touch operation to the application processor to determine the type of touch event. The touch sensor may provide a visual output regarding a touch operation using the display screen 194 . In some other embodiments, the touch sensor 180K may also alternatively be located on the surface of the electronic device 100 at a position other than the display screen 194.
В рассматриваемом варианте настоящей заявки данные, вводимые пользователем через сенсорный экран, могут быть получены через датчик 180K прикосновения, и эти вводимые через сенсорный экран данные могут быть переданы процессору 110 для обработки.In the exemplary embodiment of the present application, user input via the touch screen may be received through the touch sensor 180K, and the touch screen input may be transmitted to the processor 110 for processing.
Кнопка 190 может представлять собой кнопку включения питания, кнопку громкости или другую подобную кнопку. Кнопка 190 может быть механической кнопкой или может быть сенсорной кнопкой. Электронное устройство 100 может принимать кнопочный ввод и генерировать сигнал кнопочного ввода, в соответствии с настройками пользователя и управлением функциями электронного устройства 100.Button 190 may be a power button, a volume button, or another similar button. The button 190 may be a mechanical button or may be a touch button. The electronic device 100 may receive key input and generate a key input signal, in accordance with user settings and control of functions of the electronic device 100.
Двигатель 191 может генерировать вибрационный сигнал. Этот двигатель 191 может быть конфигурирован для генерации вибрационного сигнала в ответ на входящий вызов, и может быть далее конфигурирован для генерации вибрационной обратной связи в ответ на прикосновение. Например, операции прикосновения, осуществляемые в разных приложениях, (например, при фотографировании и при воспроизведении аудио) могут соответствовать разным эффектам вибрационной обратной связи. Для операций прикосновения, осуществляемых в разных областях экрана 194 дисплея, двигатель 191 также может соответственно генерировать разные эффекты вибрационной обратной связи. Разным сценариям применения (например, подсказке о времени, приему информации, будильнику и игре) также могут соответствовать разные эффекты вибрационной обратной связи. Эффект вибрационной обратной связи в ответ на прикосновения может быть дополнительно специализирован.The motor 191 may generate a vibration signal. This motor 191 may be configured to generate a vibration signal in response to an incoming call, and may be further configured to generate vibration feedback in response to touch. For example, touch operations performed in different applications (such as photography and audio playback) may correspond to different vibration feedback effects. For touch operations performed on different areas of the display screen 194, the motor 191 may also correspondingly generate different vibration feedback effects. Different application scenarios (such as time prompt, information reception, alarm clock and game) may also have different vibration feedback effects. The effect of vibration feedback in response to touch can be further specialized.
Индикатор 192 может представлять собой световой индикатор и может быть конфигурирован для индикации состояния зарядки или изменения уровня заряда аккумулятора, либо может быть дополнительно конфигурирован для индикации сообщения, пропущенного вызова, оповещения и других подобных событий.The indicator 192 may be an indicator light and may be configured to indicate charging status or a change in battery charge level, or may be further configured to indicate a message, missed call, alert, and other similar events.
Интерфейс 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.The SIM card interface 195 is configured to connect to the SIM card. Such a SIM card may be inserted into or removed from the SIM card interface 195 to be brought into contact with or separated from the electronic device 100. Electronic device 100 may support one or N SIM card interfaces. Here, N is a positive integer greater than 1. The SIM card interface 195 may support a nano SIM card, a micro SIM card, a regular SIM card, or the like. Multiple cards can be inserted into the same SIM card interface 195 together. These several cards may be of the same type or may be of different types. The SIM card interface 195 is also compatible with different types of SIM cards. This 195 SIM card interface is also compatible with external memory cards. Electronic device 100 interfaces with a communications network using a SIM card to perform functions such as calling and data transfer. In some embodiments, electronic device 100 uses an eSIM card, in other words, an embedded SIM card. Such an eSIM card may be embedded in an electronic device 100 and cannot be separated from the electronic device 100.
Ниже рассмотрена схема архитектуры системы приведенного выше первого устройства. Как показано на фиг. 5, первое устройство 10 содержит уровень 11 приложений, уровень 12 сервисов, уровень 13 политики и уровень 14 ядра.Below is a diagram of the system architecture of the first device above. As shown in FIG. 5, the first device 10 contains an application layer 11, a service layer 12, a policy layer 13, and a kernel layer 14.
Уровень 11 приложений может быть использован для предоставления разнообразных сетевых приложений, и эти сетевые приложения могут быть приложениями третьих сторон или системными приложениями, например, такие сетевые приложения как игры, музыка и видео. Типы сетевых приложений, предоставляемых уровнем 11 приложений, в настоящей заявке не ограничены. Сетевым приложением здесь называется приложение, которому необходим сетевой канал первого устройства 10 для получения ресурсов из сети связи.Application layer 11 can be used to provide a variety of network applications, and these network applications can be third party applications or system applications, such as network applications such as games, music and video. The types of network applications provided by application layer 11 are not limited in this application. A network application here refers to an application that requires a network link of the first device 10 to obtain resources from the communication network.
Уровень 12 сервисов может содержать компонент 121 определения среды, компонент 122 определения сети, компонент 123 управления путем на уровне канала, компонент 124 управления политикой на уровне приложения и компонент 125 оценивания качества канала и приложения. Компонент 121 определения среды может быть конфигурирован для определения состояния приложения. Например, совокупность состояний приложения может содержать такие состояния, как выход из приложения, открытие приложения, работа приложения, инсталлирование приложения и выгрузка приложения. Можно понимать, что перечисленные состояния являются только примерами для описания, так что могут существовать больше состояний. Подробности здесь снова описаны не будут. Компонент 122 определения сети может быть конфигурирован для определения открытого состояния сетевого канала. Компонент 123 управления путем на уровне канала может быть конфигурирован для запроса/закрытия сетевого канала, определения изменения состояния сетевого канала, обновления политики выбора сетевого канала и сохранения путей для нескольких сетевых каналов. Компонент 124 управления политикой на уровне приложения может генерировать различные исполнительные политики на основе введенной информации. Например, политика может быть направлена на функцию ускорения сетевого канала, активизацию измерения трафика (например, определения трафика в сетевом канале) или другие подобные функции. Компонент 125 оценивания качества канала и приложения может быть конфигурирован для оценивания качества сетевого канала. Уровень 12 сервисов может далее содержать: компонент 126 управления соединением с сетью, конфигурированный для активизации сетевого канала, иными словами, преобразования сетевого канала из спящего состояния в активное, «бодрствующее» состояние, в котором этот сетевой канал может быть сразу использован.The service layer 12 may include an environment determination component 121, a network determination component 122, a link-level path control component 123, an application-level policy control component 124, and a link and application quality evaluation component 125. The environment determination component 121 may be configured to determine the state of the application. For example, a set of application states may include states such as exiting the application, opening the application, running the application, installing the application, and unloading the application. It may be understood that the listed states are only examples for description purposes, so that more states may exist. The details will again not be described here. Network determination component 122 may be configured to determine the open state of a network channel. The link-level path control component 123 may be configured to query/close a network link, detect a change in the state of a network link, update a network link selection policy, and store paths for multiple network links. The application-level policy management component 124 may generate various enforcement policies based on the input information. For example, the policy may focus on a function to speed up a network link, enable traffic measurement (eg, detect traffic on a network link), or other similar features. The link and application quality estimation component 125 may be configured to estimate the quality of the network link. The service layer 12 may further comprise: a network connection control component 126, configured to wake up a network channel, in other words, convert a network channel from a sleep state to an active, "awake" state in which the network channel can be immediately used.
Уровень 13 политики может содержать компонент 131 управления путем на уровне потока, компонент 132 управления политикой на уровне потока и компонент 133 измерения трафика. Компонент 131 управления путем на уровне потока может быть конфигурирован для обновления выбора сетевого канала в соответствии с изменением политики на верхнем уровне, запуска процедуры определения качества сетевого канала, динамического выбора оптимального канала и сохранения путей для разных сетевых каналов, например, сохранения пути сетевого канала (например, первичного сетевого канала), используемого приложением в текущий момент, и пути альтернативного сетевого канала. Компонент 132 управления политикой на уровне потока может быть конфигурирован для подачи команды переключения сетевых каналов, и может быть дополнительно конфигурирован для сохранения политики переключения сетевых каналов для потоков в сетевом приложении. Компонент 133 измерения трафика может быть конфигурирован для сбора статистики по сообщениям о трафике и оценивания качества работы сети для каждого потока.The policy layer 13 may comprise a flow-level path control component 131, a flow-level policy control component 132, and a traffic measurement component 133. The flow-level path control component 131 may be configured to update the network link selection in accordance with a change in policy at the upper level, trigger a network link quality determination procedure, dynamically select the optimal link, and store paths for different network links, such as saving the network link path ( for example, the primary network link) currently used by the application, and the path of the alternate network link. Flow-level policy control component 132 may be configured to issue a network channel switching command, and may be further configured to store a network channel switching policy for flows in a network application. Traffic measurement component 133 may be configured to collect statistics on traffic reports and evaluate network performance for each flow.
Уровень 14 ядра может содержать компонент 141 для передачи сообщений о трафике и компонент 142 для исполнения политики. Компонент 141 для передачи сообщений о трафике может быть конфигурирован для сбора и передачи информации о трафике. Компонент 142 для исполнения политики может быть конфигурирован для переключения сетевых каналов.Core layer 14 may include a component 141 for traffic reporting and a component 142 for policy execution. The traffic reporting component 141 may be configured to collect and transmit traffic information. Policy execution component 142 may be configured to switch network channels.
Можно понимать, что соотношения интерфейсных соединений между компонентами, иллюстрируемые в рассматриваемом варианте настоящей заявки, являются просто примером для описания и не составляют ограничений для структуры первого устройства. В некоторых других вариантах настоящей заявки первое устройство может в качестве альтернативы использовать способ интерфейсного соединения, отличный от приведенного выше варианта, или использовать комбинацию нескольких способов интерфейсного соединения.It may be understood that the interface connections between components illustrated in the exemplary embodiment of the present application are merely exemplary for purposes of description and are not limiting to the structure of the first device. In some other embodiments of the present application, the first device may alternatively use an interface connection method different from the above embodiment, or use a combination of several interface connection methods.
Архитектура системы, показанная на фиг. 5, используется только с целью иллюстрировать реализацию многоуровневой архитектуры первого устройства. Эта архитектура системы, показанная на фиг. 5, может быть также реализована в виде части существующей многоуровневой архитектуры программного обеспечения. Принимая систему Андроид в качестве примера, на фиг. 6 представлена блок-схема структуры программного обеспечения электронного устройства на основе системы Андроид согласно одному из вариантов настоящей заявки. В многоуровневой архитектуре программное обеспечение разделено на несколько уровней, и каждый уровень имеет четко определенную роль и задачу. Уровни осуществляют связь один с другим через программный интерфейс. В варианте, показанном на фиг. 6 в настоящей заявке, система Андроид разбита на пять уровней, и в том числе сверху вниз – уровень приложений, уровень архитектуры приложений (или называемый также уровнем архитектуры системы), уровень системной библиотеки и работы Андроид, уровень аппаратной абстракции (hardware abstraction layer, HAL) и уровень ядра.The system architecture shown in FIG. 5 is used only for the purpose of illustrating the implementation of the layered architecture of the first device. This system architecture shown in FIG. 5 may also be implemented as part of an existing multi-tier software architecture. Taking the Android system as an example, FIG. 6 shows a block diagram of the software structure of an electronic device based on the Android system according to one of the variants of this application. In a layered architecture, software is divided into several layers, and each layer has a clearly defined role and task. The levels communicate with one another through a software interface. In the embodiment shown in FIG. 6 in this application, the Android system is divided into five layers, including from top to bottom - the application layer, the application architecture layer (or also called the system architecture layer), the Android system library and operation layer, the hardware abstraction layer (HAL). ) and kernel level.
Уровень приложений содержит несколько прикладных программ (ниже называемых приложениями), таких как видеокамера, галерея, календарь и сеть WLAN. В одном из возможных примеров, уровень приложений в архитектуре системы, показанной на фиг. 5, может соответствовать уровню приложений устройства. Уровень приложений электронного устройства, показанный на фиг. 6, может содержать сетевые приложения, описываемые в вариантах настоящей заявки, такие как приложение воспроизведения видео и игровое приложение.The application layer contains several application programs (hereinafter referred to as applications), such as video camera, gallery, calendar and WLAN. In one possible example, the application layer in the system architecture shown in FIG. 5, can match the device application layer. The electronic device application layer shown in FIG. 6 may include network applications described in embodiments of the present application, such as a video playback application and a gaming application.
Уровень архитектуры приложений представляет интерфейс программирования приложений (Application Programming interface, API) и архитектуру программирования приложений на уровне приложений. Уровень архитектуры приложений имеет некоторые предварительно заданные функции. Например, уровень архитектуры приложений может содержать администратор окон, провайдер контента, администратор ресурсов, сервис видеокамеры и другие подобные функции. В одном из возможных примеров, уровень сервисов и уровень политики в архитектуре системы, показанной на фиг. 5, могут быть расположены на уровне архитектуры приложений.The application architecture layer represents the Application Programming interface (API) and the application programming architecture at the application layer. The application architecture layer has some predefined functions. For example, the application architecture layer may contain a window manager, a content provider, a resource manager, a video camera service, and other similar functions. In one possible example, the service layer and policy layer in the system architecture shown in FIG. 5 can be located at the application architecture level.
Уровень системной библиотеки и выполнения Андроид содержит системную библиотеку и среду выполнения Андроид (Android Runtime). Системная библиотека может содержать несколько функциональных модулей, например, композитный менеджер окон, программу 2D графики, процессорную библиотеку 3D графики (например, OpenGL ES), библиотеку медиа и библиотеку шрифтов.The Android system library and runtime layer contains the Android system library and runtime. The system library may contain several functional modules, for example, a composite window manager, a 2D graphics program, a 3D graphics processor library (for example, OpenGL ES), a media library, and a font library.
Уровень HAL представляет собой уровень интерфейса между ядром операционной системы и схемами оборудования. Этот уровень HAL содержит, не ограничиваясь этим, уровень HAL аудио (Audio HAL) и уровень HAL видеокамеры (Camera HAL).The HAL is the interface layer between the operating system kernel and the hardware circuits. This HAL contains, but is not limited to, an Audio HAL and a Camera HAL.
Уровень ядра представляет собой уровень между оборудованием и программным обеспечением. Этот уровень ядра может содержать драйвер дисплея, драйвер видеокамеры, аудио драйвер, драйвер датчиков и другие подобные драйверы. В одном из возможных примеров, уровень ядра в архитектуре системы, показанной на фиг. 5, может соответствовать уровню ядра в архитектуре программного обеспечения, показанной на фиг. 6. В таком случае, как показано на фиг. 6, уровень ядра может содержать: компонент для передачи сообщений о трафике и компонент для исполнения политики.The kernel layer is the layer between hardware and software. This kernel layer may contain a display driver, a video camera driver, an audio driver, a sensor driver, and other similar drivers. In one possible example, the kernel level in the system architecture shown in FIG. 5 may correspond to the kernel level in the software architecture shown in FIG. 6. In such a case, as shown in FIG. 6, the kernel layer may contain: a component for transmitting traffic messages and a component for executing policy.
Способ переключения каналов согласно вариантам настоящей заявки ниже рассмотрен на примере со ссылками на первое устройство, показанное на фиг. 4 – фиг. 6.The channel switching method according to the embodiments of the present application is discussed below by way of example with reference to the first device shown in FIG. 4 – fig. 6.
Фиг. 7 представляет упрощенную логическую схему способа переключения каналов согласно одному из вариантов настоящей заявки. Этот способ содержит:Fig. 7 is a simplified logic diagram of a channel switching method according to one embodiment of the present application. This method contains:
Этап 301: Запуск сетевого приложения в ответ на операцию пользователя.Step 301: Launching a network application in response to a user operation.
В частности, пользователь может осуществить операцию открывания электронного устройства 100, чтобы открыть сетевое приложение. Например, пользователь может прикоснуться к иконке сетевого приложения в электронном устройстве 100. В ответ на эту операцию пользователя уровень 11 приложений в электронном устройстве 100 запускает сетевое приложение. Можно понять, что приведенный выше пример только иллюстрирует сценарий запуска сетевого приложения посредством прикосновения к иконке и не составляет ограничений для вариантов настоящей заявки. В некоторых вариантах, сетевое приложение может быть в качестве альтернативы запущено посредством других операций (например, двойное прикосновение или проведение пальцем по экрану). Сетевое приложение может представлять собой приложение сетевого типа, такое как онлайн игра, онлайн видео плеер или онлайн музыкальный плеер.In particular, the user may perform an opening operation of the electronic device 100 to open a network application. For example, a user may touch an icon for a network application on the electronic device 100. In response to this user operation, the application layer 11 in the electronic device 100 launches the network application. It can be understood that the above example only illustrates the scenario of launching a network application by touching an icon and does not constitute a limitation on the variations of the present application. In some embodiments, the network application may alternatively be launched through other operations (eg, double-tapping or swiping). The network application may be a network-type application such as an online game, an online video player, or an online music player.
На фиг. 3a представлено упрощенное изображение рабочего стола мобильного телефона. Как показано на фиг. 3a, пользователь может прикоснуться к иконке приложения для видео на рабочем столе мобильного телефона, чтобы открыть приложение для видео, получая в результате упрощенное изображение видео дисплея, как показано на фиг. 3b.In fig. Figure 3a shows a simplified image of a mobile phone desktop. As shown in FIG. 3a, the user can touch the video application icon on the desktop of the mobile phone to open the video application, resulting in a simplified video display image as shown in FIG. 3b.
Этап 302: Компонент 121 определения среды определяет, что сетевое приложение переключилось на передний план или произошло изменение в сети, и сообщает об этом компоненту 124 управления политикой на уровне приложения.Step 302: The environment determination component 121 determines that the network application has switched to the foreground or a change has occurred in the network and reports this to the application level policy management component 124.
В частности, компонент 121 определения среды на уровне 12 сервисов в электронном устройстве 100 может непрерывно определять статус сетевого приложение или сетевой среды. Когда компонент 121 определения среды обнаружит, что какое-либо сетевое приложение переключилось на передний план или изменилась сетевая среда, компоненту 124 управления политикой на уровне приложения может быть передано первое уведомительное сообщение, где это первое уведомительное сообщение может быть использовано для уведомления компонента 124 управления политикой на уровне приложения о том, что сетевое приложение переключилось на передний план или изменилась сетевая среда. Можно понимать, что это первое уведомительное сообщение может далее содержать идентификатор сетевого приложения (например, такой идентификатор сетевого приложения может представлять собой идентификатор UID), и этот идентификатор может быть использован для однозначной идентификации сетевого приложения.In particular, the environment determination component 121 at the service layer 12 in the electronic device 100 may continuously determine the status of a network application or network environment. When the environment determination component 121 detects that any network application has switched to the foreground or the network environment has changed, a first notification message may be sent to the application-level policy management component 124, where this first notification message may be used to notify the policy management component 124 at the application level that a network application has switched to the foreground or the network environment has changed. It may be understood that this first notification message may further comprise a network application identifier (eg, such network application identifier may be a UID), and this identifier may be used to uniquely identify the network application.
Например, идентификатор сетевого приложения может быть реализован посредством следующего кода:For example, a network application identifier could be implemented using the following code:
kuid_t sock_i_uid(struct sock *sk)kuid_t sock_i_uid(struct sock *sk)
{ kuid_t uid{ kuid_t uid
read_lock_bh(&sk->sk_callback_lock);read_lock_bh(&sk->sk_callback_lock);
uid=sk->sk_socket?SOCK_INODE(sk->sk_socket)->i_uid: GLOBAL_ROOT_UID;uid=sk->sk_socket?SOCK_INODE(sk->sk_socket)->i_uid: GLOBAL_ROOT_UID;
read_unlock_bh(&sk->sk_callback_lock);read_unlock_bh(&sk->sk_callback_lock);
return uid;return uid;
}}
EXPORT_SYMBOL(sock_i_uid).EXPORT_SYMBOL(sock_i_uid).
Этап 303: Компонент 124 управления политикой на уровне приложения принимает первое уведомительное сообщение переданное компонентом 121 определения среды, и определяет, удовлетворяет ли работающее в текущий момент сетевое приложение условиям для активизации ускорения.Step 303: The application-level policy control component 124 receives the first notification message sent by the environment determination component 121, and determines whether the currently running network application satisfies the conditions for enabling acceleration.
В частности, после того, как компонент 124 управления политикой на уровне приложения примет первое уведомительное сообщение, переданное компонентом 121 определения среды, может быть определено из первого уведомительного сообщения, что сетевое приложение переключилось на передний план. Компонент 124 управления политикой на уровне приложения может далее определить, входит ли это сетевое приложение в предварительно заданный белый список приложений.In particular, after the application-level policy control component 124 receives the first notification message sent by the environment determination component 121, it can be determined from the first notification message that the network application has switched to the foreground. The application-level policy management component 124 may further determine whether the network application is included in a predefined application whitelist.
В одном из конкретных вариантов реализации белый список приложений может быть предварительно задан в компоненте 124 управления политикой на уровне приложения, и этот белый список приложений может содержать несколько сетевых приложений. Каждое сетевое приложение может быть идентифицировано собственным идентификатором, а белый список приложений может быть использован для представления сетевых приложений, которые могут быть ускорены. Сетевые приложения в предварительно заданном белом списке могут содержать указания типов сервисов. Например, сетевые приложения в предварительно заданном белом списке приложений могут иметь чувствительные типы сервисов, и этими чувствительными сервисами могут быть сервисы, чувствительные к задержке, сервисы, чувствительные к коэффициенту потери пакетов, и другие подобные сервисы. Сравнивая идентификатор сетевого приложения из первого уведомительного сообщения с идентификаторами сетевых приложений из предварительно заданного белого списка, можно определить, включено ли сетевое приложение из первого уведомительного сообщения в предварительно заданный белый список приложений. Если сетевое приложение из первого уведомительного сообщения включено в предварительно заданный белый список приложений, можно определить, что это сетевое приложение удовлетворяет условиям для активизации ускорения; и если сетевое приложение из первого уведомительного сообщения не включено в предварительно заданный белый список приложений, можно определить, что это сетевое приложение не удовлетворяет условиям для активизации ускорения.In one particular embodiment, an application whitelist may be predefined in application-level policy management component 124, and the application whitelist may contain multiple network applications. Each network application can be identified by its own ID, and an application whitelist can be used to represent network applications that can be accelerated. Network applications in the predefined whitelist can contain indications of service types. For example, network applications in a predefined application whitelist may have sensitive service types, and these sensitive services may be latency-sensitive services, packet loss ratio-sensitive services, and other such services. By comparing the network application ID from the first notification message with the network application IDs from the predefined whitelist, it can be determined whether the network application from the first notification message is included in the predefined application whitelist. If the network application from the first notification message is included in the predefined application whitelist, it can be determined that this network application satisfies the conditions for enabling acceleration; and if the network application from the first notification message is not included in the predefined application whitelist, it can be determined that the network application does not satisfy the conditions for enabling acceleration.
Например, таблица 1 представляет белый список сетевых приложений.For example, Table 1 presents a whitelist of network applications.
Таблица 1Table 1
Можно понимать, что если работающее в текущий момент сетевое приложение не входит в предварительно заданный белый список приложений, иными словами, тип сервиса этого работающего в текущий момент сетевого приложения является нечувствительным сервисом, электронное устройство 100 может далее определить другие сетевые каналы с лучшим качеством, когда обнаружено, что качество первичного сетевого канала стало плохим, так что нечувствительный сервис может быть сразу переключен в найденные сетевые каналы с лучшим качеством.It can be understood that if the currently running network application is not included in the predefined application whitelist, in other words, the service type of the currently running network application is an insensitive service, the electronic device 100 can further determine other network channels with better quality when It is discovered that the quality of the primary network link has become poor, so that the insensitive service can be immediately switched to the found network links with better quality.
Этап 304: Компонент 124 управления политикой на уровне приложения передает сообщение активизации канала компоненту 131 управления путем на уровне потока для активизации сетевого канала.Step 304: The application-level policy control component 124 transmits a channel enable message to the flow-level path control component 131 to activate the network channel.
В частности, если компонент 124 управления политикой на уровне приложения определит, что работающее в текущий момент сетевое приложение удовлетворяет условиям для активизации ускорения, компоненту 131 управления путем на уровне потока может быть передано сообщение активизации канала, где это сообщение активизации канала используется для индикации, что компонент 131 управления путем на уровне потока может активизировать сетевой канал (например, первичный сетевой канал).In particular, if the application-level policy control component 124 determines that a currently running network application satisfies the conditions for enabling acceleration, a channel activation message may be sent to the flow-level path control component 131, where the channel activation message is used to indicate that Flow-level path control component 131 may activate a network channel (eg, a primary network channel).
Этап 305: Компонент 131 управления путем на уровне потока запрашивает путь первичного сетевого канала у компонента 123 управления путем на уровне канала.Step 305: The flow-level path control component 131 requests the path of the primary network link from the link-level path control component 123.
В частности, после приема сообщения активизации канала, переданного компонентом 124 управления политикой на уровне приложения, компонент 131 управления путем на уровне потока может передать запрос первичного сетевого канала компоненту 123 управления путем на уровне канала, где этот запрос первичного сетевого канала используется для запрашивания пути первичного сетевого канала. Например, первичный сетевой канал может представлять собой первичный канал Wi-Fi.In particular, upon receiving the link enable message sent by the application-level policy control component 124, the flow-level path control component 131 may transmit a primary network channel request to the link-level path control component 123, where the primary network channel request is used to request the path of the primary network channel. network channel. For example, the primary network channel may be a primary Wi-Fi channel.
Этап 306: Компонент 123 управления путем на уровне канала передает путь первичного сетевого канала компоненту 131 управления путем на уровне потока.Step 306: The link-level path control component 123 transmits the path of the primary network link to the flow-level path control component 131.
В частности, компонент 123 управления путем на уровне канала может предварительно конфигурировать пути нескольких сетевых каналов. Например, совокупность нескольких сетевых каналов может содержать первичный канал Wi-Fi, вторичный канал Wi-Fi, первичный канал сотовой связи и вторичный канал сотовой связи.In particular, the link-level path management component 123 may pre-configure the paths of multiple network links. For example, a collection of multiple network channels may comprise a primary Wi-Fi channel, a secondary Wi-Fi channel, a primary cellular channel, and a secondary cellular channel.
После того, как компонент 123 управления путем на уровне канала примет запрос первичного сетевого канала, переданный компонентом 131 управления путем на уровне потока, один сетевой канал может быть выбран из указанной совокупности нескольких сетевых каналов в качестве первичного сетевого канала (например, первичный сетевой канал представляет собой первичный канал Wi-Fi), и путь этого первичного сетевого канала может быть передан компоненту 131 управления путем на уровне потока.After the link-level path control component 123 receives the primary network channel request transmitted by the flow-level path control component 131, one network channel may be selected from the plurality of multiple network channels as the primary network channel (for example, the primary network channel represents is a primary Wi-Fi channel), and the path of this primary network channel may be passed to the flow-level path control component 131.
Этап 307: Компонент 131 управления путем на уровне потока сохраняет принятый путь первичного сетевого канала.Step 307: Flow-level path management component 131 stores the received path of the primary network link.
В частности, после того как компонент 131 управления путем на уровне потока примет путь первичного сетевого канала, переданный компонентом 123 управления путем на уровне канала, этот путь первичного сетевого канала может быть сохранен. Например, путь первичного сетевого канала может быть представлен каналом Wi-Fi 1.Specifically, after the flow-level path control component 131 receives the primary network link path transmitted by the link-level path control component 123, the primary network link path may be stored. For example, the primary network link path could be represented by Wi-Fi link 1.
На фиг. 3c представлено упрощенное изображение ситуации после того, как мобильный телефон использует первичный сетевой канал. Как показано на фиг. 3c, после получения мобильным телефоном пути первичного сетевого канала, этот первичный сетевой канал может быть использован для просмотра видео.In fig. 3c shows a simplified view of the situation after the mobile phone uses the primary network channel. As shown in FIG. 3c, after the mobile phone receives the primary network channel path, the primary network channel can be used to watch video.
Можно понимать, что работающее в текущий момент сетевое приложение (например, приложение для видео на фиг. 3c) может содержать несколько потоков (например, потоки видео и потоки аудио), и эти несколько потоков могут быть переданы по первичному сетевому каналу.It can be understood that a currently running network application (eg, the video application in FIG. 3c) may contain multiple streams (eg, video streams and audio streams), and these multiple streams may be transmitted over the primary network channel.
Этап 308: Компонент 124 управления политикой на уровне приложения передает запрос определения трафика компоненту 133 измерения трафика.Step 308: Application layer policy management component 124 transmits a traffic determination request to traffic measurement component 133.
В частности, запрос определения трафика может быть использован в качестве команды для компонента 133 измерения трафика, что следует начать подсчет статистики сетевых приложений в первичном сетевом канале. Такой запрос определения трафика может содержать идентификатор (например, идентификатор UID) сетевого приложения, трафик которого в текущий момент нужно определить, и использоваться в качестве требования определить характеристики потока сетевого приложения, соответствующего идентификатору UID, в первичном сетевом канале. Можно понимать, что поток этого сетевого приложения может быть в форме пакета.In particular, the traffic sensing request may be used to instruct traffic measurement component 133 to begin calculating network application statistics on the primary network channel. Such a traffic determination request may contain an identifier (eg, a UID) of the network application whose traffic is currently being determined, and be used as a request to determine the flow characteristics of the network application corresponding to the UID on the primary network channel. It can be understood that the flow of this network application may be in the form of a packet.
Следует отметить, что этот этап 308 может быть выполнен одновременно с этапом 304, либо может быть выполнен в любой момент после этапа 304, что в настоящей заявке ничем не ограничено.It should be noted that this step 308 may be performed concurrently with step 304, or may be performed at any time after step 304, which is not limited in any way herein.
Этап 309: Компонент 133 измерения трафика передает запрос сообщить о трафике компоненту 141 для передачи сообщений о трафике.Step 309: The traffic measurement component 133 transmits a request to report traffic to the traffic reporting component 141.
В частности, после приема такого запроса сообщить о трафике, переданного компонентом 124 управления политикой на уровне приложения, компонент 133 измерения трафика может передать запрос сообщить о трафике компоненту 141 для передачи сообщений о трафике, где этот запрос сообщить о трафике может быть использован в качестве команды для компонента 141 для передачи сообщений о трафике, что следует определить пакет сетевого приложения в текущем первичном сетевом канале и сообщить об этом определенном пакете. Можно понимать, что запрос определения трафика может содержать идентификатор (например, идентификатор UID) сетевого приложения.In particular, upon receiving such a report traffic request sent by the application-level policy management component 124, the traffic measurement component 133 may transmit the report traffic request to the traffic reporting component 141, where this report traffic request may be used as a command for the traffic reporting component 141 to determine the network application packet on the current primary network channel and report that specific packet. It can be understood that the traffic definition request may include an identifier (eg, a UID) of the network application.
Этап 310: Компонент 141 для передачи сообщений о трафике осуществляет определение трафика и сообщает об этом определенном пакете компоненту 133 измерения трафика.Step 310: The traffic reporting component 141 makes a traffic determination and reports this determined packet to the traffic measurement component 133.
В частности, после приема запроса сообщить о трафике, переданного компонентом 133 измерения трафика, компонент 141 для передачи сообщений о трафике может определить пакет сетевого приложения, соответствующего идентификатору сетевого приложения (например, идентификатору UID), указанному в запросе сообщить о трафике, так что можно получить пакет сетевого приложения в первичном сетевом канале, и об определенном пакете этого сетевого приложения может быть сообщено компоненту 133 измерения трафика.Specifically, upon receiving the report traffic request sent by the traffic measurement component 133, the traffic reporting component 141 may determine a network application packet corresponding to the network application identifier (e.g., UID) specified in the report traffic request, so that it can receive a network application packet on the primary network channel, and the specific packet of this network application may be reported to the traffic measurement component 133.
В конкретном варианте реализации, компонент 141 для передачи сообщений о трафике может вызвать компонент (например, компонент Netfilter системы Андроид) для получения пакета сетевого приложения в первичном сетевом канале. Можно понимать, что компонент Netfilter упомянут здесь только в качестве примера для описания и не составляет ограничения для вариантов настоящей заявки. В некоторых вариантах, определение пакета может быть в качестве альтернативы выполнено другими компонентами.In a specific implementation, the traffic reporting component 141 may call a component (eg, an Android system Netfilter component) to receive a network application packet on the primary network channel. It may be understood that the Netfilter component is mentioned herein by way of example only for description and is not limiting to the embodiments of the present application. In some embodiments, package determination may alternatively be performed by other components.
Например, параметры сетевого канала могут быть реализованы с использованием следующего кода:For example, network channel parameters could be implemented using the following code:
typedef struct{typedef struct{
bool available;bool available;
bool slowDevForbbiden;bool slowDevForbbiden;
uint64_t qoeBadTimeStamp;uint64_t qoeBadTimeStamp;
uint64_t chQoeBadStartTime;uint64_t chQoeBadStartTime;
uint32_t rcvRate;uint32_t rcvRate;
}}
Можно понимать, что определенный пакет, может быть пакетом из одного или нескольких характерных потоков в работающем в текущий момент сетевом приложении, где характерный поток может представлять собой наиболее чувствительный поток в рассматриваемом сетевом приложении, иными словами, поток, оказывающий относительно большое влияние на работающее в текущий момент сетевое приложение. В дополнение к этому, качество сетевого канала может быть оценено с использованием параметров этого сетевого канала.It can be understood that a particular packet may be a packet of one or more representative flows in a currently running network application, where the characteristic flow may represent the most sensitive flow in the network application in question, in other words, a flow that has a relatively large impact on the currently running current network application. In addition to this, the quality of a network channel can be assessed using the parameters of that network channel.
Этап 311: Компонент 133 измерения трафика принимает пакет, о котором сообщил компонент 141 для передачи сообщений о трафике, анализирует этот пакет, получает результаты анализа пакета и передает эти результаты анализа пакета компоненту 132 управления политикой на уровне потока.Step 311: The traffic measurement component 133 receives the packet reported by the traffic reporting component 141, analyzes the packet, obtains the packet analysis results, and passes the packet analysis results to the flow-level policy control component 132.
В частности, рассматриваемый пакет может представлять собой какой-либо пакет из каждого потока сетевого приложения в первичном сетевом канале. После приема пакета сетевого приложения, определенного компонентом 141 для передачи сообщений о трафике, компонент 133 измерения трафика может проанализировать этот пакет и получить тем самым результат анализа пакета. Указанный выше анализ пакета может быть произведен для идентификации нескольких характерных потоков на основе признаков пакета. Такими характерными потоками могут быть наиболее чувствительные потоки в сетевом приложении. Например, если взять игру «Элита мира» (Peace Elite) в качестве примера, характерным потоком этой игры может быть голосовой поток, иными словами, голосовой поток оказывает относительно большое влияние на игру и обладает наивысшей чувствительностью. Когда качество голосового потока недостаточно хорошее (например, задержка и коэффициент потери пакетов не удовлетворяют предъявляемым требованиям), восприятие игры пользователем сильно страдает. Поэтому необходимо идентифицировать голосовой поток и затем подсчитывать пакеты голосового потока среди всей совокупности пакетов. В одном из конкретных вариантов реализации может быть проведен анализ пакетов для подсчета коэффициента потери пакетов и/или задержки пакетов сетевого приложения, чтобы определить качество характерного потока и далее принять решение, следует ли переключить этот характерный поток. Например, можно подсчитывать коэффициент потери пакетов и/или задержку пакета в пределах заданного промежутка времени. Если подсчитанные коэффициент потери пакетов и/или задержка удовлетворяют заданным требованиям, переключение канала может не потребоваться. Если подсчитанные коэффициент потери пакетов и/или задержка не удовлетворяют заданным требованиям, может быть осуществлено переключение канала для рассматриваемого характерного потока.In particular, the packet in question may be any packet from each network application flow on the primary network channel. After receiving a network application packet determined by the traffic reporting component 141, the traffic measurement component 133 may analyze the packet and thereby obtain a packet analysis result. The above packet analysis can be performed to identify several characteristic flows based on the characteristics of the packet. These characteristic flows may be the most sensitive flows in a network application. For example, taking the game "Peace Elite" as an example, the characteristic thread of this game may be the voice thread, in other words, the voice thread has a relatively large impact on the game and has the highest sensitivity. When the quality of the voice stream is not good enough (for example, latency and packet loss ratio are not satisfactory), the user experience of the game suffers greatly. Therefore, it is necessary to identify the voice stream and then count the packets of the voice stream among the entire population of packets. In one particular implementation, packet analysis may be performed to calculate the packet loss rate and/or packet latency of a network application to determine the quality of a representative stream and then decide whether to switch the characteristic stream. For example, you can calculate the packet loss rate and/or packet delay within a given time period. If the calculated packet loss rate and/or delay meets the specified requirements, channel switching may not be necessary. If the calculated packet loss rate and/or delay do not meet the specified requirements, a channel switch may be performed for the representative flow in question.
В дополнение к этому, идентификация пакета голосового потока может быть реализована с использованием статистики периодических контрольных пакетов. Например, приняв протокол UDP (протокол дейтаграмм пользователя) в качестве примера, признак пакетов данных для голосового потока может быть представлен следующим образом:In addition to this, voice stream packet identification can be realized using periodic control packet statistics. For example, taking UDP (User Datagram Protocol) as an example, the data packets feature for a voice stream can be represented as follows:
uplink: udp.payload[6]=0x64; иuplink: udp.payload[6]=0x64; And
downlink: udp.payload[6]=0x65.downlink: udp.payload[6]=0x65.
На фиг. 8 представлена упрощенная схема периодического контрольного пакета в голосовом потоке согласно протоколу UDP.In fig. Figure 8 shows a simplified diagram of a periodic control packet in a voice stream according to the UDP protocol.
Иными словами, считывая предварительно заданное поле в полезной нагрузке пакета восходящей линии и нисходящей линии, можно идентифицировать, является ли рассматриваемый пакет пакетом голосового потока.In other words, by reading a predefined field in the payload of an uplink and downlink packet, it is possible to identify whether the packet in question is a voice stream packet.
Если совокупность характерных потоков содержит несколько потоков (например, голосовые потоки и потоки видео), статистика может быть определена на основе пакета какого-либо одного из этих характерных потоков (например, голосового потока), тем самым получая величины задержки и/или коэффициента потери пакетов на основе пакетов голосового потока. В одном из конкретных вариантов реализации, могут быть подсчитаны пакеты голосового потока в пределах промежутка времени предварительно заданной продолжительности. Предпочтительно, эта предварительно заданная продолжительность может составлять 5 с, так что можно насколько это возможно быстро определить, стало ли качество голосового потока плохим, и тогда этот голосовой поток может быть насколько это возможно быстро переключен в альтернативный сетевой канал для достижения лучшего восприятия игры. Например, если величина задержки и/или коэффициент потери пакетов для пакета голосового потока не могут удовлетворять требованиям, может быть определено, что качество голосового потока плохое. В таком случае можно запустить операцию переключения, чтобы переключить голосовой поток в альтернативный сетевой канал.If the collection of representative streams contains multiple streams (for example, voice streams and video streams), statistics can be determined based on the packet of any one of these representative streams (for example, a voice stream), thereby obtaining latency and/or packet loss ratio values based on voice stream packets. In one particular implementation, packets of a voice stream may be counted within a time span of a predetermined duration. Preferably, this preset duration may be 5 seconds, so that it can be determined as quickly as possible whether the quality of the voice stream has become poor, and then this voice stream can be switched as quickly as possible to an alternative network channel to achieve a better game experience. For example, if the delay value and/or packet loss ratio for a voice stream packet cannot meet the requirements, it may be determined that the quality of the voice stream is poor. In such a case, you can run a switch operation to switch the voice stream to an alternative network channel.
Следует отметить, что приведенный выше пример использует игру только в целях иллюстрации. В конкретном случае, также может быть использованы другие сетевые приложения, например, сетевой диск Байду. Характерным потоком для этого сетевого приложения является скачиваемый поток, иными словами, пакет скачиваемого потока может быть найден среди указанной выше совокупности пакетов, и фактором влияния пакета скачиваемого потока может быть скорость передачи данных. В дополнение к этому, совокупность сетевых приложений может далее содержать приложения для социальных сетей, такие как WeChat, и характерный поток для такого сетевого приложения представляет собой поток видео. Иными словами, пакет потока видео может быть найден среди указанной выше совокупности пакетов, и фактором влияния пакета потока видео может быть задержка и/или коэффициент потери пакетов.It should be noted that the above example uses the game for illustration purposes only. In a specific case, other network applications such as Baidu network drive can also be used. The characteristic stream for this network application is the download stream, in other words, the download stream packet can be found among the above set of packets, and the factor influencing the download stream packet can be the data transfer rate. In addition, the collection of network applications may further comprise social networking applications such as WeChat, and a typical stream for such a network application is a video stream. In other words, the video stream packet may be found among the above set of packets, and the influencing factor of the video stream packet may be latency and/or packet loss ratio.
Следует понимать, что в дополнение к голосовому потоку, характерный поток может далее представлять собой поток собственно игрового взаимодействия в игре. Принимая игру Peace Elite в качестве примера, является ли текущий поток пакетов потоком игрового взаимодействия, может быть определено посредством периодического подсчета количества UDP-пакетов. В настоящее время, продолжительность цикла, используемого игрой Peace Elite, составляет 500 мс. Поэтому, является ли поток пакетов игровым потоком, может быть определено посредством подсчета полного количества пакетов в цикле. Например, если полное количество пакетов в цикле с продолжительностью 500 мс больше 10, этот поток пакетов является игровым потоком. На фиг. 9 представлена упрощенная схема подсчета пакетов в игровом потоке согласно протоколу. Как показано на фиг. 7, по горизонтальной оси отложено время, а по вертикальной оси – общее количество пакетов. Поскольку количество пакетов в секунду в основном поддерживается на уровне 30, может посредством вычислений быть определено, что имеют место по 15 пакетов каждые 500 мс, и вследствие этого поток пакетов может быть определен как игровой поток.It should be understood that in addition to the voice stream, the feature stream may further represent the actual game interaction stream within the game. Taking the game Peace Elite as an example, whether the current packet flow is a game interaction flow can be determined by periodically counting the number of UDP packets. Currently, the loop duration used by Peace Elite is 500ms. Therefore, whether a packet stream is a game thread can be determined by counting the total number of packets in the loop. For example, if the total number of packets in a 500ms loop is greater than 10, that packet stream is a game thread. In fig. Figure 9 shows a simplified scheme for counting packets in a game stream according to the protocol. As shown in FIG. 7, the horizontal axis represents time, and the vertical axis represents the total number of packets. Since the number of packets per second is generally maintained at 30, it can be determined by calculation that 15 packets occur every 500 ms, and therefore the packet stream can be defined as a game stream.
Примем теперь игру «Царь славы» (King of Glory) в качестве примера, эта игра Царь славы использует номер протокола UDP фильтрации и полезную нагрузку признака заголовка пакета packet header feature payload=0x00010000 для фильтрации пакета игрового взаимодействия. На фиг. 10 представлена упрощенная схема периодического контрольного пакета для игрового потока по протоколу UDP.Now take the King of Glory game as an example, this King of Glory game uses the UDP filtering protocol number and packet header feature payload=0x00010000 to filter the game interaction packet. In fig. Figure 10 shows a simplified diagram of a periodic control packet for a game stream using the UDP protocol.
Этап 312: Компонент 132 управления политикой на уровне потока определяет, что следует осуществить переключение, на основе результата анализа пакетов и направляет запрос для получения пути альтернативного сетевого канала.Step 312: Flow-level policy control component 132 determines that a switch should be made based on the result of the packet analysis and sends a request to obtain the alternate network link path.
В частности, после приема результата анализа пакетов, компонент 132 управления политикой на уровне потока может определить, следует ли осуществить переключение. Если компонент 132 управления политикой на уровне потока определит, что следует осуществить переключение, может быть запрошен путь альтернативного сетевого канала.In particular, after receiving the packet analysis result, the flow-level policy control component 132 may determine whether a switch should be performed. If flow-level policy control component 132 determines that a switch should be made, an alternate network path path may be requested.
Например, упомянутый выше запрос пути альтернативного сетевого канала может быть реализован посредством следующего кода:For example, the alternative network link path request mentioned above could be implemented with the following code:
private boolean requestNetwork(){private boolean requestNetwork(){
Log.i(TAG, «requestNetwork, pathId=«+mChannelId+»slotId=«+mSlotId+»mSubId»)Log.i(TAG, "requestNetwork, pathId="+mChannelId+"slotId="+mSlotId+"mSubId")
If(mConnectivityManager==NULL{If(mConnectivityManager==NULL{
Log.e(TAG, «requestNetwork, mConnectivityManager is NULL»);Log.e(TAG, "requestNetwork, mConnectivityManager is NULL");
return false;return false;
}}
If(!Utils.isValidSubId(mSubId)){If(!Utils.isValidSubId(mSubId)){
Log.e(TAG, «requestNetwork, invalid subId: «+mSubId);Log.e(TAG, "requestNetwork, invalid subId: "+mSubId);
return false;return false;
}}
NetworkRequest.Builder builder=new NetworkRequest.Builder();NetworkRequest.Builder builder=new NetworkRequest.Builder();
builder.addCapability(NetworkCapabilities. NET_CAPABILITY_INTERNET);builder.addCapability(NetworkCapabilities. NET_CAPABILITY_INTERNET);
builder.addTransportType(NetworkCapabilities. Transport_CELLULAR);builder.addTransportType(NetworkCapabilities. Transport_CELLULAR);
builder.remove Capability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED);builder.remove Capability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED);
builder.setNetworkSpecifier(String.valueOf(mSubId));builder.setNetworkSpecifier(String.valueOf(mSubId));
NetworkRequest build=builder.build();NetworkRequest build=builder.build();
mConnectivityManager.requestNetwork(build, this, (int)GET_PATH_RESPONSE_TIMER_MS);mConnectivityManager.requestNetwork(build, this, (int)GET_PATH_RESPONSE_TIMER_MS);
return true;return true;
}}
В дополнение к этому, в одном из конкретных вариантов реализации, путь сетевого канала (например, этот путь может быть представлен номером устройства на сетевой карте или на SIM-карте) может быть определен в структуре данных, а пример кода может быть следующим:In addition, in one particular implementation, the path of the network link (for example, this path may be represented by the device number on the network card or SIM card) may be defined in the data structure, and the example code may be as follows:
struct sock{struct sock{
struct sock_common _sk_commonstruct sock_common _sk_common
#define sk_node _sk_common.skc node#define sk_node _sk_common.skc node
#define sk_nulls_node _sk_common.skc_nulls_node#define sk_nulls_node _sk_common.skc_nulls_node
#define sk_refcnt _sk_common.skc_crefcnt#define sk_refcnt _sk_common.skc_crefcnt
#define sk_tx_queue_mapping _sk_common.skc_tx_queue_mapping#define sk_tx_queue_mapping _sk_common.skc_tx_queue_mapping
#define sk_dontcopy_begin _sk_common.skc_dontcopy_begin#define sk_dontcopy_begin _sk_common.skc_dontcopy_begin
#define sk_ dontcopy_end _sk_common.skc_dontcopy_end#define sk_dontcopy_end _sk_common.skc_dontcopy_end
#define sk_hash _sk_common.skc_hash#define sk_hash _sk_common.skc_hash
#define sk_portpair _sk_common.skc_portpair#define sk_portpair _sk_common.skc_portpair
#define sk_num _sk_common.skc_num#define sk_num _sk_common.skc_num
#define sk_dport _sk_common.skc_dport#define sk_dport _sk_common.skc_dport
#define sk_addrpair _sk_common.skc_addrpair#define sk_addrpair _sk_common.skc_addrpair
#define sk_daddr _sk_common.skc_daddr#define sk_daddr _sk_common.skc_daddr
#define sk_rcv_saddr _sk_common.skc_saddr#define sk_rcv_saddr _sk_common.skc_saddr
#define sk_family _sk_common.skc_family#define sk_family _sk_common.skc_family
#define sk_state sk_common.skc_state#define sk_state sk_common.skc_state
#define sk_reuse _sk_common.skc_reuse#define sk_reuse _sk_common.skc_reuse
#define sk_reuseport _sk_common.skc_reuseport#define sk_reuseport _sk_common.skc_reuseport
#define sk_ipv6only _sk_common.skc_ipv6only#define sk_ipv6only _sk_common.skc_ipv6only
#define sk_net_refcnt _sk_common.skc_net_refcnt#define sk_net_refcnt _sk_common.skc_net_refcnt
#define sk_bound_dev_if _sk_common.skc_ bound_dev_if#define sk_bound_dev_if _sk_common.skc_ bound_dev_if
#define sk_bind_node _sk_common.skc_bind_node#define sk_bind_node _sk_common.skc_bind_node
#define sk_prot _sk_common.skc_prot#define sk_prot _sk_common.skc_prot
#define sk_net _sk_common.skc_net#define sk_net _sk_common.skc_net
#define sk_v6_daddr _sk_common.skc_v6_daddr#define sk_v6_daddr _sk_common.skc_v6_daddr
#define sk_v6_rcv_saddr _sk_common.skc_v6_rcv_saddr#define sk_v6_rcv_saddr _sk_common.skc_v6_rcv_saddr
#define sk_cookie _sk_common.skc_cookie#define sk_cookie _sk_common.skc_cookie
#define sk_incoming_cpu _sk_common.skc_incoming_cpu#define sk_incoming_cpu _sk_common.skc_incoming_cpu
#define sk_flags _sk_common.skc_net_flags#define sk_flags _sk_common.skc_net_flags
#define sk_rxhash _sk_common.skc_rxhash#define sk_rxhash _sk_common.skc_rxhash
#ifdef CONFIG_HW_DPIMARK_MODULE#ifdef CONFIG_HW_DPIMARK_MODULE
#define sk_hwdpi_mark _sk_common.skc_ hwdpi_mark#define sk_hwdpi_mark _sk_common.skc_ hwdpi_mark
}}
Как показывает код, sk_bound_dev_if представляет собой номер устройства для целевой сетевой карты или целевой SIM-карты, подлежащей переключению. Можно понимать, что пакет может быть принят через сетевую карту или SIM-карту, а код для приема пакета может соответствовать следующему примеру:As the code shows, sk_bound_dev_if represents the device number for the target NIC or target SIM card to be switched. It can be understood that the packet can be received through a network card or SIM card, and the code for receiving the packet can follow the following example:
Pktinfo.msg.flow_msg.dev_if=sk->sk_bound_dev_if, гдеPktinfo.msg.flow_msg.dev_if=sk->sk_bound_dev_if, where
pktinfo – принятый пакет и msg.flow_msg – название потока пакетов.pktinfo – received packet and msg.flow_msg – name of the packet flow.
В одном из конкретных вариантов реализации, способ запрашивания пути альтернативного сетевого канала может быть таким, что компонент 132 управления политикой на уровне потока передает запрос альтернативного сетевого канала компоненту 131 управления путем на уровне потока для запрашивания альтернативного сетевого канала. После приема запроса альтернативного сетевого канала, компонент 131 управления путем на уровне потока может направить этот запрос альтернативного сетевого канала компоненту 123 управления путем на уровне канала. После приема этого запроса альтернативного сетевого канала, компонент 123 управления путем на уровне канала может передать запрос статуса канала компоненту 122 определения сети, где этот запрос статуса канала может быть использован для запрашивания с целью получения статуса активизации каждого являющегося опцией сетевого канала. Можно понимать, что статус активизации может представлять собой статус доступности или статус недоступности. Статус доступности может быть использован для индикации, что рассматриваемый являющийся опцией сетевой канал может быть активизирован. Этот являющийся опцией сетевой канал может представлять собой вторичный канал Wi-Fi, первичный канал сотовой связи, вторичный канал сотовой связи или другой подобный канал.In one specific implementation, the method for requesting an alternative network channel path may be such that the flow-level policy control component 132 passes the alternative network channel request to the flow-level path control component 131 to request the alternative network channel. Upon receiving an alternative network channel request, the flow-level path control component 131 may forward the alternative network channel request to the link-level path control component 123. Upon receiving this alternative network channel request, the link layer path control component 123 may pass the link status request to the network determination component 122, where the link status request may be used to query to obtain the activation status of each optional network link. It can be understood that the activation status may be an available status or an unavailable status. The availability status can be used to indicate that the optional network channel in question can be activated. This optional network channel may be a secondary Wi-Fi channel, a primary cellular channel, a secondary cellular channel, or another similar channel.
После приема запроса статуса канала, переданного компонентом 123 управления путем на уровне канала, компонент 122 определения сети может определить статус активизации каждого из являющихся опциями сетевых каналов. В одном из конкретных вариантов реализации, компонент 122 определения сети может быть конфигурирован для управления переключением каждого из являющихся опциями сетевых каналов. Когда какой-либо являющийся опцией сетевой канал активизирован, этот являющийся опцией сетевой канал находится в состоянии доступности; а когда какой-либо являющийся опцией сетевой канал не активизирован, этот являющийся опцией сетевой канал находится в состоянии недоступности. Поэтому, после определения статусов активизации для всех являющихся опциями сетевых каналов, запрашиваемых компонентом 123 управления путем на уровне канала, компонент 122 определения сети может передать эти статусы активизации для всех являющихся опциями сетевых каналов компоненту 123 управления путем на уровне канала.After receiving the link status request sent by the link-level path control component 123, the network determination component 122 can determine the activation status of each of the network link options. In one particular embodiment, network determination component 122 may be configured to control switching of each of the option network channels. When any optional network channel is activated, that optional network channel is in an available state; and when any optional network channel is not activated, that optional network channel is in an unavailable state. Therefore, after determining the activation statuses for all of the option network channels requested by the link-level path control component 123, the network determination component 122 may transmit these activation statuses for all of the option network channels to the link-level path control component 123.
После приема статусов активизации для являющихся опциями сетевых каналов, компонент 123 управления путем на уровне канала может выбрать доступный сетевой канал (иными словами, являющийся опцией сетевой канал в состоянии доступности), и может далее передать запрос оценивания канала компоненту 125 оценивания качества канала и приложения, где запрос оценивания канала может быть использован для запрашивания оценивания качества доступных сетевых каналов.After receiving the activation statuses for the network channel options, the link-level path control component 123 may select an available network channel (in other words, being an option network channel in the available state), and may further transmit a channel evaluation request to the channel and application quality evaluation component 125. where a link estimation request can be used to request an assessment of the quality of available network links.
После приема запроса оценивания канала, переданного компонентом 123 управления путем на уровне канала, компонент 125 оценивания качества канала и приложения может оценить качество каждого доступного сетевого канала в соответствии с запросом оценивания канала. Например, показателями качества канала могут быть задержка, коэффициент потери пакетов, ширина полосы частот и скорость передачи данных по каналу. Процедура оценивания может содержать определение времени прохождения сигнала в обоих направлениях (Round-Trip time, RTT) по доступным сетевым каналам, и сетевой канал с наименьшим временем прохождения сигнала в обоих направлениях является наилучшим. В качестве опции, когда для доступного сетевого канала имеется запись предыстории выбора, иными словами, этот доступный сетевой канал уже был раньше выбран в качестве сетевого канала, в таком случае, качество канала можно оценить на основе сочетания времени RTT и записей предыстории. Эти записи предыстории могут содержать предысторию скорости приема, прошлое количество раз, когда качество канала было плохим, и другую подобную информацию. Способ оценивания качества канала ничем специально не ограничен в вариантах настоящей заявки. После того, как компонент 125 оценивания качества канала и приложения завершит оценивание качества все доступных сетевых каналов согласно запросу оценивания канала, результаты оценивания могут быть переданы компоненту 123 управления путем на уровне канала.After receiving the channel estimation request transmitted by the link layer path control component 123, the channel and application quality estimation component 125 can estimate the quality of each available network channel in accordance with the channel estimation request. For example, link quality metrics may include latency, packet loss rate, bandwidth, and link data rate. The estimation procedure may involve determining the round-trip time (RTT) of the available network links, and the network link with the shortest round-trip time is the best. Optionally, when an available network channel has a selection history record, in other words, the available network channel has already been previously selected as a network channel, then the quality of the channel can be assessed based on a combination of the RTT time and the history records. These history records may contain historical reception speed, the past number of times the channel quality was poor, and other similar information. The method for assessing channel quality is not particularly limited in the embodiments of the present application. After the link and application quality evaluation component 125 completes evaluating the quality of all available network channels according to the channel evaluation request, the evaluation results may be transmitted to the link-level path control component 123 .
После приема результатов оценивания компонент 123 управления путем на уровне канала может выбрать наилучший доступный сетевой канал в качестве альтернативного сетевого канала на основе этих результатов оценивания и может передать путь альтернативного сетевого канала компоненту 131 управления путем на уровне потока.After receiving the evaluation results, the link-level path control component 123 may select the best available network channel as an alternative network channel based on these evaluation results, and may transmit the path of the alternative network channel to the flow-level path control component 131.
После приема пути альтернативного сетевого канала, переданного компонентом 123 управления путем на уровне канала, этот компонент 131 управления путем на уровне потока может передать оповещение о переключении, где это оповещение о переключении содержит путь альтернативного сетевого канала.Upon receiving the alternate network link path transmitted by the link-level path control component 123, the flow-level path control component 131 may transmit a switch alert, where the switch alert includes the path of the alternate network link.
Выбор альтернативного сетевого канала описан с использованием мобильного телефона в качестве примера и со ссылками на фиг. 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.The selection of an alternative network channel is described using a mobile phone as an example and with reference to FIGS. 11a - fig. 11c. As shown in FIG. 11a, the mobile phone is capable of operating in four network channels, including a primary Wi-Fi channel (for example, Wi-Fi 1), a secondary Wi-Fi channel (for example, Wi-Fi 2), a primary cellular channel (for example, Mobile 1) and a secondary cellular channel (for example, Mobile 2). Suppose that the mobile phone is currently running a network application (for example, WeChat) on Wi-Fi channel 1 (primary network channel), and this network application contains a feature stream A (for example, a video stream), a feature stream B (for example, audio stream) and non-characteristic stream C. When the mobile phone determines that the quality of characteristic stream A has become poor and determines that a switch should be made, an alternative network channel may be determined, where this alternative network channel may be the best quality channel from the secondary Wi-Fi channel (for example, Wi-Fi 2), primary cellular channel (for example, Mobile 1), and secondary cellular channel (for example, Mobile 2). After selecting one network channel from the combination of a secondary Wi-Fi channel (e.g., Wi-Fi 2), a primary cellular channel (e.g., Mobile 1), and a secondary cellular channel (e.g., Mobile 2) as an alternative network channel (e.g., Mobile 1) channel can be switched. Next, both the feature stream A and the feature stream B can be switched to an alternative network channel, in other words, to the Mobile 1 channel. As shown in FIG. 11b, in such a case, non-characteristic channel C may continue to be transmitted on the primary network channel, in other words, the Wi-Fi channel, and the characteristic stream and A characteristic stream B may be transmitted on the alternative network channel, in other words, the Mobile 1 channel.
В качестве опции, когда мобильный телефон анализирует пакет и находит, что качество характерного потока A более не удовлетворяет требованиям, характерный поток A, характерный поток B, и нехарактерный поток C могут быть переключены в выбранный альтернативный сетевой канал, иными словами, в канал Mobile 1. Как показано на фиг. 11c, в таком случае, все потоки – характерный поток A, характерный поток B и нехарактерный поток C, передают по каналу Mobile 1.Optionally, when a mobile phone analyzes a packet and finds that the quality of feature stream A is no longer satisfactory, feature stream A, feature stream B, and non-signature stream C may be switched to the selected alternative network channel, in other words, to Mobile 1 channel. .As shown in Fig. 11c, in this case, all the streams feature stream A, feature stream B and non-feature stream C are transmitted on the Mobile 1 channel.
Этап 313: Компонент 131 управления путем на уровне потока передает путь альтернативного сетевого канала компоненту 132 управления политикой на уровне потока.Step 313: The flow-level path control component 131 transmits the path of the alternative network link to the flow-level policy control component 132.
Этап 314: Компонент 132 управления политикой на уровне потока передает команду переключения канала компоненту 142 для исполнения политики.Step 314: The flow-level policy control component 132 transmits a channel switch command to the policy execution component 142.
В частности, после приема пути альтернативного сетевого канала, переданного компонентом 131 управления путем на уровне потока, компонент 132 управления политикой на уровне потока может передать команду переключения канала компоненту 142 для исполнения политики, где эта команда переключения канала может быть использована для указания компоненту 142 для исполнения политики, что следует переключить несколько характерных потоков из текущего первичного сетевого канала в альтернативный сетевой канал, так что операция переключения каналов может быть завершена быстрее, задержка, вызванная переключением каналов, может быть уменьшена, и восприятие для пользователя может быть улучшено.In particular, upon receiving the alternate network link path transmitted by the flow-level path control component 131, the flow-level policy control component 132 may issue a link switch command to the policy execution component 142, where the link switch command may be used to instruct component 142 to execution policy that several representative flows should be switched from the current primary network channel to an alternative network channel, so that the channel switching operation can be completed faster, the delay caused by channel switching can be reduced, and the user experience can be improved.
Этап 315: Компонент 142 для исполнения политики осуществляет переключение каналов.Step 315: Policy execution component 142 performs channel switching.
В частности, после приема команды переключения канала, переданной компонентом 132 управления политикой на уровне потока, компонент 142 для исполнения политики может переключить несколько характерных потоков из текущего первичного сетевого канала в альтернативный сетевой канал. Иными словами, другие потоки рассматриваемого сетевого приложения могут продолжать передаваться и работать по первичному сетевому каналу, а несколько характерных потоков могут передаваться и работать по альтернативному сетевому каналу, так что переключение можно завершить быстро, тем самым обеспечивая качество сервиса и хорошее восприятие пользователем.In particular, upon receiving a channel switch command sent by the flow-level policy control component 132, the policy execution component 142 may switch multiple representative threads from the current primary network channel to an alternate network channel. In other words, other threads of the network application in question can continue to transmit and operate on the primary network channel, and a few representative threads can transmit and operate on the alternate network channel, so that the switchover can be completed quickly, thereby ensuring quality of service and a good user experience.
Способ переключения каналов согласно вариантам настоящей заявки будет ниже рассмотрен подробно со ссылками на схему архитектуры системы для первого устройства, показанную на фиг. 5, и схемы последовательности операций взаимодействия между компонентами первого устройства, показанные на фиг. 12 – фиг. 14b.The channel switching method according to embodiments of the present application will be discussed in detail below with reference to the system architecture diagram for the first device shown in FIG. 5, and the interaction flow diagrams between the components of the first device shown in FIG. 12 – fig. 14b.
На фиг. 12 представлена схема последовательности операций взаимодействия между компонентами первого устройства согласно одному из вариантов настоящей заявки. Как показано на фиг. 12, способ может содержать:In fig. 12 shows a diagram of the sequence of operations of interaction between the components of the first device according to one embodiment of the present application. As shown in FIG. 12, the method may contain:
Этап 1201: Запуск сетевого приложения в ответ на операцию пользователя.Step 1201: Launching a network application in response to a user operation.
Для реализации этого этапа ссылки могут быть сделаны на этап 301, так что подробности здесь снова описаны не будут.To implement this step, references may be made to step 301, so the details will not be described again here.
Этап 1202: Сетевое приложение осуществляет обмен потоками с сервером.Step 1202: The network application exchanges streams with the server.
Пользователь выбирает сервис в сетевом приложении, а сетевое приложение передает поток, требуемый этим сервисом, серверу в соответствии с характеристиками сервиса. Сетевое приложение может использовать сетевой канал (например, первичный сетевой канал) для передачи потока серверу. В одном из примеров, когда сетевое приложение представляет собой приложение для видео, а пользователь выбирает воспроизведение видео, поток, требуемый сервисом, может содержать поток видео и поток аудио, так что эти поток видео и поток аудио могут быть переданы по первичному сетевому каналу. Соответственно, мобильный телефон может использовать первичный сетевой канал для взаимодействия с сервером, получать поток видео и поток аудио от сервера и воспроизводить видео.The user selects a service from a network application, and the network application transmits the stream required by that service to the server according to the characteristics of the service. A network application can use a network channel (eg, a primary network channel) to transmit a stream to a server. In one example, when the network application is a video application and the user selects to play a video, the stream required by the service may comprise a video stream and an audio stream such that the video stream and audio stream can be transmitted over the primary network channel. Accordingly, the mobile phone can use the primary network channel to communicate with the server, receive the video stream and audio stream from the server, and play the video.
Следует отметить, что рассматриваемый вариант настоящей заявки сосредоточен на том, как осуществить переключение сетевого канала после того, как сетевое приложение начнет использовать первичный сетевой канал для взаимодействия с сервером, а как использовать первичный сетевой канал для начала взаимодействия с сервером после первоначального запуска сетевого приложения в рассматриваемом варианте настоящей заявки не ограничивается.It should be noted that the subject embodiment of the present application focuses on how to implement a network channel switch after a network application begins to use the primary network channel to communicate with the server, and how to use the primary network channel to begin communicating with the server after the network application is initially launched in the considered version of this application is not limited.
Этап 1203: Компонент 121 определения среды определяет, что сетевое приложение переключилось на передний план, и оповещает об этом компонент 124 управления политикой на уровне приложения.Step 1203: The environment determination component 121 determines that the network application has switched to the foreground and notifies the application level policy control component 124.
Для осуществления этого этапа ссылки могут быть сделаны на описание этапа 302, так что подробности здесь снова описаны не будут.To carry out this step, reference may be made to the description of step 302, so the details will not be described again here.
Этап 1204: Компонент 124 управления политикой на уровне приложения определяет, удовлетворяет ли сетевое приложение условиям для активизации ускорения.Step 1204: Application-level policy control component 124 determines whether the network application meets the conditions to enable acceleration.
Для осуществления этого этапа ссылки могут быть сделаны на описание этапа 303, так что подробности здесь снова описаны не будут.To carry out this step, reference may be made to the description of step 303, so the details will not be described again here.
Далее будет рассмотрена реализация белого списка сетевых приложений.Next, we will consider the implementation of a white list of network applications.
В рассматриваемом варианте настоящей заявки, взят пример, в котором данные сетевого приложения разбивают на потоки в соответствии с типами данных, так что один тип соответствует одному потоку сетевого приложения. Как показано в таблице 2 ниже, в дополнение к сетевым приложениям, которые нуждаются в ускорении, белый список сетевых приложений может далее содержать:In the exemplary embodiment of the present application, an example is taken in which network application data is divided into streams according to data types such that one type corresponds to one network application stream. As shown in Table 2 below, in addition to network applications that need acceleration, the network application whitelist may further contain:
тип целевого потока, мониторинг которого необходимо осуществлять в каждом сетевом приложении, например, как поле типа целевого потока, показанное в таблице 2;the target flow type that needs to be monitored in each network application, such as the target flow type field shown in Table 2;
модель потока, соответствующую типу каждого целевого потока, например, как поле модели потока, показанное в таблице 2 ниже;a thread model corresponding to the type of each target thread, such as the thread model field shown in Table 2 below;
параметр оценивания качества работы сети, используемый при оценивании качества работы сети для целевого потока, например, как поле параметра качества канала, показанное в таблице 2; иa network quality evaluation parameter used in evaluating the network quality of the target flow, for example, as the link quality parameter field shown in Table 2; And
политику осуществления переключения канала для потока сетевого приложения после того, как оценка показала, что качество работы сети для целевого потока стало плохим, что называется политикой переключения потоков, например, как поле политики переключения потоков, показанное в таблице 2 ниже.a policy for implementing channel switching for a network application flow after the evaluation shows that the network performance of the target flow has become poor, which is called a flow switching policy, such as the flow switching policy field shown in Table 2 below.
Таблица 2table 2
В качестве опции, целевой поток может представлять собой поток, изменение которого может быстро проявиться на одном или некоторых параметрах оценивания качества работы сети, когда качество сетевого канала, несущего целевой поток, станет плохим, например, это может быть один или несколько характерных потоков сетевого приложения.Optionally, the target stream may be a stream that may be quickly affected by one or more network quality metrics when the quality of the network link carrying the target stream becomes poor, for example, one or more representative network application streams .
В качестве опции, параметр оценивания качества работы сети для целевого потока может представлять собой параметр, который может быстро отражать, что качество работы сети для целевого потока стало плохим.Optionally, the network performance evaluation parameter for the target flow may be a parameter that can quickly indicate that the network performance for the target flow has become poor.
Политика переключения потоков записывает поток, сетевой канал для которого необходимо переключить вместе с целевым потоком. В качестве опции, поток, записанный в политике переключения потоков, представляет собой, в общем случае, поток, оказывающий относительно большое влияние на обработку сервиса в сетевом приложении, как это оказывают характерные потоки сетевых приложений в приведенном выше описании, потоки видео и потоки аудио в приложениях воспроизведения видео и игровые потоки и голосовые потоки в игровых приложениях.The stream switching policy records the stream whose network channel needs to be switched along with the target stream. As an option, the stream recorded in the stream switching policy is, in general, a stream that has a relatively large impact on the processing of a service in a network application, such as the typical network application streams in the above description, video streams and audio streams in video playback applications and game streams and voice streams in gaming applications.
В качестве опции, поток, который записан в политике переключения потоков и сетевой канал для которого необходимо переключить вместе с целевым потоком, может представлять собой поток, чувствительный к тому же самому параметру оценивания сети, как и целевой поток. Например, если целевой поток представляет собой поток, чувствительный к задержке, потоки в политике переключения потоков являются некоторыми или всеми чувствительными к задержке потоками, включая целевой поток в сетевом приложении. Если целевой поток представляет собой поток, чувствительный к коэффициенту потери пакетов, потоки в политике переключения потоков являются некоторыми или всеми чувствительными к коэффициенту потери пакетов потоками, включая целевой поток в сетевом приложении. Поэтому когда качество работы сети для целевого потока станет плохим, переключают сетевой канал для типа потоков, чувствительного к тому же самому параметру оценивания сети в сетевом приложении.Optionally, a flow that is recorded in the flow switching policy and whose network channel is to be switched along with the target flow may be a flow that is sensitive to the same network estimation parameter as the target flow. For example, if the target thread is a delay-sensitive thread, the threads in the thread switching policy are some or all of the delay-sensitive threads, including the target thread in the network application. If the target flow is a packet loss ratio sensitive flow, the flows in the flow switching policy are some or all of the packet loss ratio sensitive flows, including the target flow in the network application. Therefore, when the network performance for the target flow becomes poor, the network channel is switched for the flow type sensitive to the same network evaluation parameter in the network application.
В качестве опции, модель потока, соответствующая типу целевого потока, конфигурирована для записи информации о признаках пакета, мониторинг которых необходимо осуществлять в целевом потоке. Например, информация о признаках может представлять собой по меньшей мере одно из следующей информации: четверку или пятерку пакетов, номер протокола, строку в полезной нагрузке и другую подобную информацию.Optionally, a flow model corresponding to the target flow type is configured to record information about packet attributes that need to be monitored in the target flow. For example, the feature information may be at least one of the following information: a packet quan or quintet, a protocol number, a line in the payload, and other similar information.
Следует отметить, что в политике переключения потоков в вариантах настоящей заявки, когда качество конкретного потока сетевого приложения становится плохим, может быть осуществлено переключение сетевого канала для нескольких потоков сетевого приложения, включая поток в том же самом сетевом канале, так что указанные несколько потоков переключают из текущего сетевого канала в другие сетевые каналы с относительно лучшим качеством, чтобы избежать запаздывания сервисов сетевого приложения. Например, в таблице 2, если поток видео в приложении WeChat становится плохим, и поток видео и голосовой поток этого приложения WeChat находятся в одном и том же сетевом канале, осуществляют переключение сетевого канала для обоих потоков – потока видео и голосового потока приложения WeChat, чтобы переместить эти поток видео и голосовой поток из текущего сетевого канала в сетевой канал с относительно лучшим качеством, тем самым уменьшая вероятность запаздывания при воспроизведении видео и голоса в приложении WeChat.It should be noted that in the stream switching policy in embodiments of the present application, when the quality of a particular network application stream becomes poor, a network channel switch may be implemented for multiple network application streams, including a stream on the same network channel, so that the multiple streams are switched from the current network channel to other network channels with relatively better quality to avoid latency of network application services. For example, in Table 2, if the video stream of the WeChat application becomes bad, and the video stream and the voice stream of this WeChat application are in the same network channel, switch the network channel for both the video stream and the voice stream of the WeChat application to move these video stream and voice stream from the current network channel to a network channel with relatively better quality, thereby reducing the likelihood of lag when playing video and voice in the WeChat application.
Этап 1205: Компонент 124 управления политикой на уровне приложения передает сообщение активизации ускорения компоненту 131 управления путем на уровне потока.Step 1205: The application-level policy control component 124 transmits an acceleration enable message to the thread-level path control component 131.
В частности, если компонент 124 управления политикой на уровне приложения определит, что работающее в текущий момент сетевое приложение удовлетворяет условиям для активизации ускорения, может быть активизирован сервис ускорения для этого работающего приложения, и передано сообщение активизации ускорения компоненту 131 управления путем на уровне потока, где это сообщение активизации ускорения используется для индикации, что компонент 131 управления путем на уровне потока может активизировать сервис ускорения для рассматриваемого сетевого приложения.Specifically, if the application-level policy control component 124 determines that a currently running network application satisfies the conditions for enabling acceleration, an acceleration service for that running application may be activated and an acceleration-enable message is sent to the flow-level path control component 131, where this acceleration enable message is used to indicate that the flow-level path control component 131 can activate the acceleration service for the network application in question.
Сервис ускорения может содержать, не ограничиваясь этим:The acceleration service may contain, but is not limited to:
активизацию альтернативного сетевого канала, когда среда, где расположено электронное устройство, или системная среда электронного устройства изменяется, так что альтернативный сетевой канал переходит из спящего состояния в активное, «бодрствующее» состояние; и/илиactivating the alternate network channel when the environment in which the electronic device is located or the system environment of the electronic device changes such that the alternate network channel transitions from a dormant state to an active, “awake” state; and/or
мониторинг качества работы сети для нескольких потоков сетевого приложения, и переключение, когда электронное устройство в процессе мониторинга определит, что качество потоков сетевого приложения стало плохим, совокупности нескольких потоков сетевого приложения, содержащей поток с ухудшимся качеством, в альтернативный сетевой канал, так что совокупность нескольких потоков сетевого приложения всегда передают по сетевым каналам с относительно хорошим качеством, что обеспечивает качество передачи потоков, уменьшает вероятность запаздывания сервисов сетевого приложения и улучшает восприятие для пользователя. Следует отметить, что если электронное устройства активизировало альтернативный сетевой канал, то когда принято решение переключить указанные несколько потоков в альтернативный сетевой канал, эти несколько потоков переключают в активизированный сетевой канал. Если электронное устройство не активизировало альтернативный сетевой канал, когда принято решение переключить несколько потоков в альтернативный сетевой канал, это электронное устройство должно сначала активизировать альтернативный сетевой канал, а затем переключиться в активизированный альтернативный сетевой канал.monitoring the network quality of multiple network application streams, and switching, when the electronic device during monitoring determines that the quality of the network application streams has become poor, the aggregate of multiple network application streams containing the degraded stream to an alternative network channel, such that the aggregate of multiple Network application streams are always transmitted over network links with relatively good quality, which ensures the quality of stream transmission, reduces the likelihood of network application services being late, and improves the user experience. It should be noted that if the electronic device has activated an alternative network channel, then when a decision is made to switch the multiple streams to the alternative network channel, the multiple streams are switched to the activated network channel. If the electronic device has not activated the alternate network channel when the decision is made to switch multiple streams to the alternate network channel, the electronic device must first activate the alternate network channel and then switch to the activated alternate network channel.
В качестве опции, сообщение для активизации ускорения может содержать информацию, соответствующую идентификатору работающего в текущий момент сетевого приложения в белом списке сетевых приложений, например, идентификатор работающего в текущий момент сетевого приложения, тип целевого потока, модель потока, соответствующую типу целевого потока, информацию о параметрах оценивания качества работы сети и информацию о политике переключения потоков. За подробностями можно обратиться к приведенному выше соответствующему описанию, так что подробности здесь снова описаны не будут.Optionally, the acceleration enable message may contain information corresponding to the identifier of a currently running network application in the network application whitelist, e.g., the identifier of the currently running network application, the type of the target stream, the flow model corresponding to the type of the target stream, information about parameters for assessing the quality of network operation and information about the flow switching policy. For details, reference may be made to the above related description, so the details will not be described here again.
В качестве опции, компонент 131 управления путем на уровне потока может сохранить путь используемого в текущий момент сетевого канала, где этот путь также является путем сетевого канала, используемого сетевым приложением. В качестве альтернативы, если путь используемого в текущий момент сетевого канала не сохранен в компоненте 131 управления путем на уровне потока, иными словами, путь сетевого канала, используемого сетевым приложением, не сохранен в компоненте 131 управления путем на уровне потока, компонент 131 управления путем на уровне потока может запросить у компонента 123 управления путем на уровне канала информацию о пути сетевого канала, используемого сетевым приложением, а компонент 123 управления путем на уровне канала может передать путь сетевого канала, используемого сетевым приложением, компоненту 131 управления путем на уровне потока.Optionally, flow-level path management component 131 may store the path of a currently used network channel, where the path is also the path of a network channel used by the network application. Alternatively, if the path of the network channel currently used is not stored in the flow-level path control component 131, in other words, the path of the network channel used by the network application is not stored in the flow-level path control component 131, the path control component 131 The flow-level path control component 123 can query the link-level path control component 123 for information about the path of a network link used by the network application, and the link-level path control component 123 can pass the path of the network link used by the network application to the flow-level path control component 131 .
Этап 1206: Компонент 131 управления путем на уровне потока передает идентификатор сетевого приложения и информацию о политике переключения потоков компоненту 132 управления политикой на уровне потока и передает запрос определения трафика компоненту 133 измерения трафика, а компонент 133 измерения трафика передает запрос сообщить о трафике компоненту для передачи сообщений о трафике.Step 1206: The flow-level path control component 131 transmits the network application identifier and flow switching policy information to the flow-level policy control component 132 and transmits a traffic determination request to the traffic measurement component 133, and the traffic measurement component 133 transmits a request to report the traffic to the transmission component. traffic messages.
В качестве опции, запрос определения трафика может содержать первый конфигурационный файл для сетевого приложения, и этот первый конфигурационный файл может содержать: идентификатор сетевого приложения, указание типа целевого потока, указание модели потока, соответствующей этому типу целевого потока, и информацию о параметрах оценивания качества работы сети.Optionally, the traffic definition request may contain a first configuration file for the network application, and the first configuration file may contain: an identifier of the network application, an indication of the target flow type, an indication of the flow model corresponding to that target flow type, and performance evaluation parameter information networks.
В качестве опции, запрос сообщить о трафике может содержать второй конфигурационный файл для рассматриваемого сетевого приложения, и этот второй конфигурационный файл может содержать: идентификатор сетевого приложения, указание типа целевого потока и указание модели потока, соответствующей этому типу целевого потока.Optionally, the traffic report request may contain a second configuration file for the network application in question, and this second configuration file may contain: an identifier of the network application, an indication of the target flow type, and an indication of the flow model corresponding to that target flow type.
Следует отметить, что целью настоящего этапа является инициализация разнообразной относящейся к делу информации, касающейся работающего в текущий момент сетевого приложения, для компонента 132 управления политикой на уровне потока, компонента 133 измерения трафика и компонента 141 для передачи сообщений о трафике. Поэтому в других возможных вариантах реализации компонент 131 управления путем на уровне потока может в качестве альтернативы напрямую передать второй конфигурационный файл для рассматриваемого сетевого приложения компоненту 141 для передачи сообщений о трафике, что здесь никак не ограничивается.It should be noted that the purpose of the present step is to initialize various relevant information regarding the currently running network application for the flow-level policy control component 132, the traffic measurement component 133, and the traffic reporting component 141. Therefore, in other possible implementations, the flow-level path control component 131 may alternatively directly pass the second configuration file for the network application in question to the traffic reporting component 141, which is not limited in any way.
В результате выполнения этого этапа компонент для передачи сообщений о трафике может начать мониторинг потоков рассматриваемого сетевого приложения и тогда может быть запущена последующая процедура переключения сетевого канала для потока.As a result of this step, the traffic reporting component can begin monitoring the flows of the network application in question and the subsequent network channel switching procedure for the flow can then be initiated.
Процедура активизации альтернативного сетевого канала электронным устройством и процедура переключения каналов для потоков описаны ниже со ссылками на фиг. 13, и фиг. 14a и фиг. 14b соответственно.The procedure for activating an alternative network channel by an electronic device and the procedure for switching channels for streams are described below with reference to FIGS. 13, and fig. 14a and fig. 14b respectively.
На фиг. 13 представлена другая схема последовательности операций взаимодействия между компонентами первого устройства согласно одному из вариантов настоящей заявки. Как показано на фиг. 13, способ может содержать:In fig. 13 shows another diagram of the sequence of operations of interaction between the components of the first device according to one embodiment of the present application. As shown in FIG. 13, the method may contain:
Этап 1301: Компонент 121 определения среды осуществляет определение среды.Step 1301: The environment determination component 121 determines the environment.
В частности, среда, определяемая компонентом определения среды, может представлять собой физическую среду, где располагается первое устройство, или может представлять собой системную среду в первом устройстве. Например, физическая среда может содержать лифты, высокоскоростные поезда, гаражи и другие сцены с плохим качеством сети связи; а системная среда может характеризоваться: температурой устройства и другими подобными параметрами.In particular, the environment defined by the environment definition component may be a physical environment where the first device is located, or may be a system environment in the first device. For example, the physical environment may contain elevators, high-speed trains, parking garages, and other scenes with poor communication network quality; and the system environment can be characterized by: device temperature and other similar parameters.
Принимая сцену в лифте в качестве примера, когда пользователь входит в лифт, подъем или опускание лифта вызывает изменение силы тяжести, действующей на пользователя. Например, подъем лифта вызывает увеличение веса, а опускание лифта вызывает уменьшение веса. Поэтому определять среду можно с использованием датчика ускорения в первом устройстве. Когда датчик ускорения определит, что вес пользователя уменьшился или увеличился, иными словами, определит ускорение первого устройства в вертикальном направлении, можно принять решение, что пользователь находится в среде лифта.Taking the elevator scene as an example, when the user enters the elevator, the rise or fall of the elevator causes a change in the force of gravity acting on the user. For example, raising an elevator causes weight to increase, and lowering an elevator causes weight to decrease. Therefore, the environment can be determined using an acceleration sensor in the first device. When the acceleration sensor determines that the user's weight has decreased or increased, in other words, determines the acceleration of the first device in the vertical direction, it can be determined that the user is in an elevator environment.
В дополнение к этому, поскольку лифт останавливается в соответствии с потребностями разных пользователей (например, разные пользователи могут нажимать на кнопки разных этажей) во время подъема или опускания лифта, лифт может продолжать двигаться в вертикальном направлении, либо может останавливаться и затем двигаться снова. Поскольку первое устройство не определяет движение в горизонтальном направлении во время подъема или опускания лифта, все равно можно определить, что первое устройство находится в лифте, где движение в горизонтальном направлении может быть обнаружено датчиком ускорения в первом устройстве. Например, если датчик ускорения обнаружит ускорение в горизонтальном направлении, может быть определено, что имеет место движение в горизонтальном направлении.In addition, since the elevator stops according to the needs of different users (for example, different users may press buttons of different floors) while the elevator is ascending or descending, the elevator may continue to move in the vertical direction, or may stop and then move again. Since the first device does not detect movement in the horizontal direction during the raising or lowering of the elevator, it is still possible to determine that the first device is located in the elevator, where movement in the horizontal direction can be detected by an acceleration sensor in the first device. For example, if the acceleration sensor detects acceleration in the horizontal direction, it can be determined that motion in the horizontal direction is occurring.
Когда первое устройство определит, что оно испытывает ускорение в горизонтальном направлении, иными словами, когда первое устройство движется горизонтально, может быть определено, что пользователь вышел из лифта. Другими словами, первое устройство покинуло лифт. В таком случае, нет необходимости определять альтернативный сетевой канал заранее, и нет необходимости передавать уведомительное сообщение о смене сцены компоненту 124 управления политикой на уровне приложения, тем самым уменьшая потребление энергии электронным устройством на величину, связанную с определением альтернативного сетевого канала.When the first device determines that it is experiencing acceleration in the horizontal direction, in other words, when the first device is moving horizontally, it may be determined that the user has exited the elevator. In other words, the first device left the elevator. In such a case, there is no need to determine the alternative network channel in advance, and there is no need to transmit a scene change notification message to the application-level policy control component 124, thereby reducing the power consumption of the electronic device by the amount associated with determining the alternative network channel.
В качестве опции, электронное устройство может, как альтернативу, определить, изменилась ли сцена, где находится пользователь, посредством измерения уровня сигнала сети мобильной связи. Например, когда уровень сигнала сети мобильной связи становится слабым, можно определить, что пользователь вошел в среду с плохим качеством сети связи. В таком случае, первое устройство может определить, что сцена изменилась, и может передать уведомительное сообщение об изменении сцены компоненту 124 управления политикой на уровне приложения, где пакет используется для определения альтернативного сетевого канала заранее. Когда уровень сигнала сети мобильной связи становится сильнее, может быть определено, что пользователь вошел в среду с лучшим качеством сети связи. В таком случае, нет необходимости определять альтернативный сетевой канал заранее и нет необходимости передавать уведомительное сообщение об изменении сценария компоненту 124 управления политикой на уровне приложения, тем самым уменьшая потребление энергии электронным устройством на величину, связанную с определением альтернативного сетевого канала.Optionally, the electronic device may alternatively determine whether the scene where the user is located has changed by measuring the signal strength of the mobile network. For example, when the mobile network signal strength becomes weak, it can be determined that the user has entered an environment with poor communication network quality. In such a case, the first device may determine that the scene has changed and may transmit a scene change notification message to the application layer policy management component 124, where the packet is used to determine an alternative network channel in advance. When the signal strength of the mobile network becomes stronger, it can be determined that the user has entered an environment with better quality of the communication network. In such a case, there is no need to determine the alternative network channel in advance and there is no need to transmit a scenario change notification message to the application-level policy management component 124, thereby reducing the power consumption of the electronic device by the amount associated with determining the alternative network channel.
Этап 1302: Компонент 121 определения среды передает уведомительное сообщение об изменении среду компоненту 124 управления политикой на уровне приложения.Step 1302: The environment determination component 121 transmits an environment change notification message to the application level policy management component 124.
В частности, если компонент 121 определения среды обнаружит, что среда первого устройства изменилась (например, пользователь вошел в лифт), уведомительное сообщение об изменении среды может быть передано компоненту 124 управления политикой на уровне приложения, где это уведомительное сообщение об изменении среды используется для оповещения компонента 124 управления политикой на уровне приложения, что среда, где находится пользователь, изменилась, так что может произойти запуск компонента 124 управления политикой на уровне приложения для осуществления последующей обработки данных.In particular, if the environment determination component 121 detects that the environment of the first device has changed (for example, a user has entered an elevator), an environment change notification message may be sent to the application layer policy control component 124, where the environment change notification message is used to notify application-level policy management component 124 that the user's environment has changed, so that application-level policy management component 124 can be launched to perform subsequent data processing.
Этап 1303: Компонент 124 управления политикой на уровне приложения направляет уведомительное сообщение об изменении среды компоненту 131 управления путем на уровне потока.Step 1303: The application-level policy control component 124 forwards an environment change notification message to the flow-level path control component 131 .
Этап 1304: Компонент 131 управления путем на уровне потока запрашивает альтернативный сетевой канал от компонента 123 управления путем на уровне канала.Step 1304: The flow-level path control component 131 requests an alternative network channel from the link-level path control component 123.
В частности, поскольку в лифте сигнал обычно плохой, выбор, активизация и переключение сетевого канала после входа в лифт обычно вызывает большую задержку сервиса, результатом чего является плохое восприятие для пользователя. Поэтому, когда определено, что пользователь вошел в лифт, может быть предварительно выбран альтернативный сетевой канал, что ускоряет переключение канала и уменьшает задержку сервиса, обусловленную переключением канала.In particular, since the signal in an elevator is generally poor, selecting, activating, and switching a network channel after entering the elevator typically causes a large service delay, resulting in a poor experience for the user. Therefore, when it is determined that the user has entered the elevator, an alternative network channel can be preselected, which speeds up channel switching and reduces the service delay caused by channel switching.
Этап 1305: Компонент 123 управления путем на уровне канала принимает указанный запрос альтернативного сетевого канала, и запрашивает статус активизации каждого из являющихся опциями сетевых каналов.Step 1305: The link layer path control component 123 receives the specified alternative network link request, and requests the activation status of each of the option network links.
В частности, после приема запроса альтернативного сетевого канала, переданного компонентом 131 управления путем на уровне потока, компонент 123 управления путем на уровне канала может передать запрос статуса канала компоненту 122 определения сети, где этот запрос статуса канала может быть использован, чтобы затребовать получение статуса активизации каждого из являющихся опциями сетевых каналов. Можно понимать, что статус активизации может указывать состояние доступности и состояния недоступности. Состояние доступности может быть использован для индикации, что являющийся опцией сетевой канал может быть активизирован, и состояние недоступности может быть использовано для индикации того, что активизация этого являющегося опцией сетевого канала запрещена. Этот являющийся опцией сетевой канал может представлять собой вторичный канал Wi-Fi, первичный канал сотовой связи, вторичный канал сотовой связи или другой подобный канал.In particular, upon receiving an alternative network channel request sent by flow-level path control component 131, link-level path control component 123 may transmit a channel status request to network determination component 122, where this channel status request may be used to request acquisition of an activation status. each of the network channel options. It can be understood that the activation status may indicate an available state and an unavailable state. The available state can be used to indicate that an optional network channel can be activated, and the unavailable state can be used to indicate that activation of that optional network channel is prohibited. This optional network channel may be a secondary Wi-Fi channel, a primary cellular channel, a secondary cellular channel, or another similar channel.
Этап 1306: Компонент 122 определения сети определяет статус активизации каждого из являющихся опциями сетевых каналов, и передает этот статус активизации каждого из являющихся опциями сетевых каналов компоненту 123 управления путем на уровне канала.Step 1306: The network determination component 122 determines the activation status of each of the option network channels, and transmits the activation status of each of the option network channels to the path control component 123 at the link level.
В частности, после приема статуса канала, переданного компонентом 123 управления путем на уровне канала, компонент 122 определения сети может определить статус активизации каждого из являющихся опциями сетевых каналов. В одном из конкретных вариантов реализации, компонент 122 определения сети может быть конфигурирован для управления переключением каждого из являющихся опциями сетевых каналов. Когда какой-либо являющийся опцией сетевой канал активизирован, этот являющийся опцией сетевой канал находится в состояние доступности; и когда какой-либо являющийся опцией сетевой канал не активизирован, этот являющийся опцией сетевой канал находится в состоянии недоступности. Поэтому, после определения статусов активизации всех являющихся опциями сетевых каналов, запрашиваемых компонентом 123 управления путем на уровне канала, компонент 122 определения сети может передать эти статусы активизации всех являющихся опциями сетевых каналов компоненту 123 управления путем на уровне канала.In particular, after receiving the channel status transmitted by the link-level path control component 123, the network determination component 122 can determine the activation status of each of the network channel options. In one particular embodiment, network determination component 122 may be configured to control switching of each of the option network channels. When any optional network channel is activated, that optional network channel is in an available state; and when any optional network channel is not activated, that optional network channel is in an unavailable state. Therefore, after determining the activation statuses of all of the option network channels requested by the link-level path control component 123, the network determination component 122 may transmit these activation statuses of all of the option network channels to the link-level path control component 123.
Этап 1307: Компонент 123 управления путем на уровне канала запрашивает качество каждого из доступных сетевых каналов.Step 1307: Link layer path control component 123 queries the quality of each of the available network links.
В частности, после приема статусов активизации являющихся опциями сетевых каналов компонент 123 управления путем на уровне канала может выбрать один из доступных сетевых каналов (иными словами, являющийся опцией сетевой канал, находящийся в состоянии доступности), и может далее передать запрос оценивания канала компоненту 125 оценивания качества канала и приложения, где этот запрос оценивания канала может быть использован для запрашивания оценивания качества доступных сетевых каналов.In particular, upon receiving the activation statuses of the network channel options, the path control component 123 at the link level may select one of the available network channels (in other words, the option network channel being in the available state), and may further transmit a channel evaluation request to the evaluation component 125 link quality and application where this link estimation request can be used to request an estimate of the quality of available network links.
Этап 1308: Компонент 125 оценивания качества канала и приложения оценивает качество каждого из доступных сетевых каналов и передает результат оценивания компоненту 123 управления путем на уровне канала.Step 1308: The link and application quality evaluation component 125 evaluates the quality of each of the available network links and transmits the evaluation result to the link-level path control component 123.
В частности, после приема запроса оценивания канала, переданного компонентом 123 управления путем на уровне канала, компонент 125 оценивания качества канала и приложения может оценить качество каждого из доступных сетевых каналов в соответствии с запросом оценивания канала.In particular, after receiving the channel estimation request transmitted by the link layer path control component 123, the channel and application quality estimation component 125 can estimate the quality of each of the available network channels in accordance with the channel estimation request.
Например, качество сетевого канала может быть оценено в соответствии по меньшей мере с одним из параметров сетевого канала: задержкой, коэффициентом потери пакетов, шириной полосы частот и/или скоростью передачи данных в канале. Например, оценка качества может быть проведена для оценивания времени прохождения сигнала в обоих направлениях (Round-Trip time, RTT) для доступных сетевых каналов, так что сетевой канал с наименьшим временем прохождения сигнала в обоих направлениях является наилучшим.For example, the quality of a network link may be assessed in accordance with at least one of the network link parameters: latency, packet loss rate, bandwidth, and/or link data rate. For example, a quality assessment can be performed to estimate the round-trip time (RTT) for available network links, such that the network link with the shortest round-trip time is the best.
В качестве опции, когда какой-либо доступный сетевой канал имеет записанную предысторию выбора, иными словами, этот доступный сетевой канал уже был раньше выбран в качестве сетевого канала, в таком случае, качество этого канала можно оценить на основе комбинации времени RTT и записанной предыстории. Записанная предыстория может содержать предысторию скорости передачи данных в принимаемой информации, предысторию количества раз, когда качество канала было плохим, и другую подобную информацию. Способ оценивания качества канала в вариантах настоящей заявки ничем специально не ограничен.Optionally, when any available network channel has a recorded selection history, in other words, this available network channel has already been previously selected as a network channel, then the quality of that channel can be assessed based on the combination of the RTT time and the recorded history. The recorded history may include a history of the data rate of the received information, a history of the number of times the channel quality was poor, and other similar information. The method for assessing channel quality in the embodiments of the present application is not particularly limited.
После того, как компонент 125 оценивания качества канала и приложения завершит оценку качества всех доступных сетевых каналов по запросу оценивания каналов, результат оценивания может быть передан компоненту 123 управления путем на уровне канала.After the link and application quality evaluation component 125 completes assessing the quality of all available network channels at the link estimation request, the evaluation result may be transmitted to the link-level path control component 123 .
Этап 1309: Компонент 123 управления путем на уровне канала определяет альтернативный сетевой канал на основе результата оценивания.Step 1309: Link-level path control component 123 determines an alternative network link based on the evaluation result.
В частности, после приема результата оценивания компонент 123 управления путем на уровне канала может выбрать наилучший доступный сетевой канал в качестве альтернативного сетевого канала на основе результата оценивания.Specifically, after receiving the evaluation result, the link-level path control component 123 may select the best available network channel as an alternative network channel based on the evaluation result.
Этап 1310: Компонент 123 управления путем на уровне канала запрашивает компонент 126 управления соединением с сетью для активизации альтернативного сетевого канала.Step 1310: The link layer path control component 123 requests the network connection control component 126 to activate an alternative network link.
Этап 1311: Компонент 126 управления соединением с сетью активизирует альтернативный сетевой канал, и передает по обратной связи уведомительное сообщение, что альтернативный сетевой канал активизирован, компоненту 123 управления путем на уровне канала.Step 1311: The network connection control component 126 activates the alternative network channel, and feedbacks a notification message that the alternative network channel is activated to the path control component 123 at the link level.
Компонент 126 управления соединением с сетью активизирует альтернативный сетевой канал в ответ на запрос от компонента 123 управления путем на уровне канала, где активизация альтернативного сетевого канала означает активизацию перехода альтернативного сетевого канала из спящего состояния в активное, «бодрствующее» состояние, чтобы быстро переключиться из текущего сетевого канала в альтернативный сетевой канал, когда после этого потребуется переключение сетевого канала.The network connection control component 126 activates the alternate network channel in response to a request from the path control component 123 at the link level, where the activation of the alternative network channel means the activation of the transition of the alternative network channel from a sleep state to an active, "awake" state to quickly switch from the current network channel to an alternative network channel when a network channel switch is then required.
Следует понимать, что на этапе 1301 определяют только изменение сцены, иными словами, изменение текущей сцены может сделать качество работы сети плохим, что может также вызвать запаздывание сервисов. Однако условия переключения не удовлетворяются. В таком случае, электронное устройство не переключается в альтернативный сетевой канал, иными словами, это электронное устройство по-прежнему использует первоначальный сетевой канал для передачи потоков сетевого приложения.It should be understood that only a scene change is determined in step 1301, in other words, a change in the current scene may make the network performance poor, which may also cause services to lag. However, the switching conditions are not satisfied. In such a case, the electronic device does not switch to an alternate network channel, in other words, the electronic device still uses the original network channel to carry network application streams.
Этап 1312: Компонент 123 управления путем на уровне канала передает путь альтернативного сетевого канала компоненту 131 управления путем на уровне потока.Step 1312: The link-level path control component 123 transmits the path of the alternative network link to the flow-level path control component 131.
Поэтому компонент 131 управления путем на уровне потока может принять и сохранить путь альтернативного сетевого канала, переданный компонентом 123 управления путем на уровне канала. Therefore, the flow-level path control component 131 can receive and store the alternate network link path transmitted by the link-level path control component 123.
Посредством приведенной выше процедуры электронное устройство может активизировать альтернативный сетевой канал после обнаружения изменения среды, так что когда в дальнейшем будет определено, что следует переключить сетевой канал, переключение сетевого канала может быть выполнено быстро, и вероятность запаздывания сервисов сетевого приложения может быть уменьшена.Through the above procedure, the electronic device can activate an alternative network channel after detecting a change in the environment, so that when it is subsequently determined that the network channel should be switched, switching the network channel can be performed quickly, and the likelihood of network application services being delayed can be reduced.
На фиг. 14a и фиг. 14b представлена другая схема последовательности операций взаимодействия между компонентами в первом устройстве согласно одному из вариантов настоящей заявки. Как показано на фиг. 14a и фиг. 14b, способ может содержать:In fig. 14a and fig. 14b shows another flow diagram of interactions between components in a first device according to an embodiment of the present application. As shown in FIG. 14a and fig. 14b, the method may comprise:
Этап 1401: Компонент 141 для передачи сообщений о трафике осуществляет определение трафика и сообщает принятый пакет компоненту 133 измерения трафика.Step 1401: The traffic reporting component 141 performs traffic determination and reports the received packet to the traffic measurement component 133.
В частности, на основе приведенного выше этапа 1206, после приема запроса сообщить о трафике, компонент 141 для передачи сообщений о трафике может определить и принять пакет из целевого потока сетевого приложения в соответствии с запросом сообщить о трафике, и сообщает результат определения компоненту 133 измерения трафика. Указанный выше результат определения может содержать: пакет целевого потока, или пакет целевого потока и статистическую информацию о пакетах целевого потока, и т.п.Specifically, based on the above step 1206, after receiving the traffic report request, the traffic reporting component 141 can determine and receive a packet from the target flow of the network application in accordance with the traffic report request, and reports the determination result to the traffic measurement component 133 . The above determination result may contain: a packet of the target flow, or a packet of the target flow and statistical information about the packets of the target flow, etc.
В одном из конкретных вариантов реализации, компонент 141 для передачи сообщений о трафике может вызвать компонент (например, компонент Netfilter системы Андроид) для получения пакета из целевого потока сетевого приложения в текущем сетевом канале (например, первичном сетевом канале). Можно понимать, что компонент Netfilter является только примером для описания и не составляет ограничений для вариантов настоящей заявки. В некоторых вариантах, определение пакета может быть в качестве альтернативы выполнено другими компонентами.In one particular implementation, the traffic reporting component 141 may call a component (eg, an Android system Netfilter component) to obtain a packet from a target network application flow on a current network channel (eg, a primary network channel). It may be understood that the Netfilter component is only an example for description and is not limiting to the embodiments of the present application. In some embodiments, package determination may alternatively be performed by other components.
Например, параметры сетевого канала могут быть реализованы следующим кодом:For example, network channel parameters can be implemented with the following code:
typedef struct{typedef struct{
bool available;bool available;
bool slowDevForbbiden;bool slowDevForbbiden;
uint64_t qoeBadTimeStamp;uint64_t qoeBadTimeStamp;
uint64_t chQoeBadStartTime;uint64_t chQoeBadStartTime;
uint32_t rcvRate;uint32_t rcvRate;
}}
Можно понимать, что принятый для определения пакет может представлять собой пакет из одного или нескольких характерных потоков в работающем в текущий момент сетевом приложении, где этот характерный поток может быть наиболее чувствительным потоком в сетевом приложении, иными словами, потоком, оказывающим относительно большое влияние на работающее в текущий момент сетевое приложение. В дополнении к этому, качество сетевого канала может быть оценено с использованием параметров этого сетевого канала.It can be understood that the packet accepted for determination may be a packet of one or more representative flows in a currently running network application, where that characteristic flow may be the most sensitive flow in the network application, in other words, a flow having a relatively large impact on the running currently a network application. In addition to this, the quality of a network channel can be assessed using the parameters of that network channel.
В качестве опции, когда компонент 141 для передачи сообщений о трафике осуществляет определение трафика, в архитектуре ядра Netfilter может быть зарегистрирована хук-функция для получения пакета целевого потока. Общая блок-схема реализации показана на фиг. 15. Компонент Netfilter направляет пакет к функции nf_hook компонента для передачи сообщений о трафике. Этот пакет, передаваемый по текущему сетевому каналу, затем входит в компонент 141 для передачи сообщений о трафике. Этот компонент для передачи сообщений о трафике выполняет такие процедуры, как анализ пакетов, создание таблицы потоков и анализ контента пакета, и сохраняет этот пакет целевого потока в очереди SKB. Для пакета в очереди SKB в соответствии с политикой передачи сообщений о целевом потоке, которому принадлежит рассматриваемый пакет, данные, какие необходимо сообщать регулярно, (пакет или пакет и статистическую информацию) собирают по команде таймера и сообщают компоненту 133 измерения трафика, а пакет, который необходимо сообщать незамедлительно, сообщают компоненту 133 измерения трафика посредством потока NetLink.As an option, when the traffic reporting component 141 performs traffic detection, a hook function can be registered in the Netfilter core architecture to obtain the target flow packet. A general block diagram of the implementation is shown in FIG. 15. The Netfilter component forwards the packet to the component's nf_hook function to report traffic. This packet, transmitted over the current network link, then enters component 141 for transmitting traffic messages. This traffic reporting component performs procedures such as packet analysis, flow table creation, and packet content analysis, and stores that target flow packet in the SKB queue. For a packet in the SKB queue, in accordance with the reporting policy of the target flow to which the packet in question belongs, data that needs to be reported regularly (packet or packet and statistical information) is collected by a timer command and reported to the traffic measurement component 133, and the packet that must be reported immediately, traffic measurement component 133 is reported via the NetLink flow.
Следует отметить, что могут быть один или несколько целевых потоков; и когда компонент для передачи сообщений о трафике определяет пакеты целевого потока, все или некоторые пакеты целевого потока могут быть сообщены компоненту измерения трафика, что в рассматриваемом варианте настоящей заявки не ограничивается.It should be noted that there may be one or more target threads; and when the traffic reporting component determines packets of the target flow, all or some of the packets of the target flow may be reported to the traffic measurement component, which is not limited in the present embodiment.
Принимая определение (прием) и сообщения потока периодических контрольных пакетов из целевого потока в качестве примера, конкретная процедура реализации компонента для передачи сообщений о пакетах описана со ссылками на фиг. 15.Taking the determination (reception) and messages of a periodic control packet flow from a target flow as an example, a specific implementation procedure of a component for transmitting packet messages is described with reference to FIG. 15.
Периодический контрольный пакет в рассматриваемом варианте настоящей заявки может представлять собой пакет, появляющийся в целевом потоке через конкретные временные интервалы. Например, такой периодический контрольный пакет может представлять собой пакет, в котором фиксированная информация признака присутствует в фиксированной позиции полезной нагрузки, среди пакетов целевого потока. Временной интервал между периодическими контрольными пакетами в рассматриваемом варианте настоящей заявки не ограничен, и составляет, например, 1 с. На фиг. 16a представлена упрощенная схема потока периодических контрольных пакетов с интервалом 1 с. Соответственно, компонент 133 измерения трафика может вычислить время прохождения сигнала в обоих направлениях в соответствии с потоком периодических контрольных пакетов и использовать это время прохождения сигнала в обоих направлениях как параметр для оценивания качества работы сети для целевого потока, чтобы определить это качество работы сети для целевого потока.A periodic control packet in this embodiment may be a packet appearing in the target stream at specific time intervals. For example, such a periodic control packet may be a packet in which fixed attribute information is present at a fixed payload position among packets of the target flow. The time interval between periodic control packets in the considered version of this application is not limited, and is, for example, 1 s. In fig. 16a shows a simplified diagram of the flow of periodic control packets with an interval of 1 s. Accordingly, the traffic measurement component 133 may calculate the round trip time according to the periodic control packet flow and use this round trip time as a parameter for estimating the network performance of a target flow to determine the network performance of the target flow. .
Упомянутое выше время прохождения сигнала в обоих направлениях (Round-Trip time, RTT) является важным индикатором функционирования сети связи, представляющим общее время задержки от момента, когда передатчик осуществил передачу данных, до момента, когда этот передатчик принял квитанцию-подтверждение от приемника (приемник передает квитанцию-подтверждение сразу же после приема данных). На фиг. 16b представлена упрощенная схема способа вычисления времени прохождения сигнала в обоих направлениях для потока периодических контрольных пакетов. В схеме на фиг. 16b, в качестве примера принят поток периодических контрольных пакетов, передаваемый между мобильным телефоном пользователя и сервером. Время прохождения сигнала в обоих направлениях для потока периодических контрольных пакетов представляет собой общее время задержки, от момента, когда мобильный телефон пользователя начал передачу контрольного пакета запроса серверу, до момента, когда мобильный телефон пользователя принял контрольный пакет ответа, переданный сервером по обратной связи.The round-trip time (RTT) mentioned above is an important indicator of the performance of the communication network, representing the total delay time from the moment when the transmitter transmitted data until the moment that the transmitter received an acknowledgment receipt from the receiver (receiver sends a confirmation receipt immediately after receiving the data). In fig. 16b is a simplified diagram of a method for calculating round trip time for a stream of periodic control packets. In the diagram in Fig. 16b, a stream of periodic control packets transmitted between the user's mobile phone and the server is taken as an example. The round-trip time for a periodic heartbeat stream is the total latency from the time the user's mobile phone begins transmitting a request heartbeat to the server until the user's mobile receives the response heartbeat returned by the server.
Например, поток периодических контрольных пакетов, предлагаемый в рассматриваемом варианте настоящей заявки, может иметь следующие характеристики: (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 адресата, номер порта источника и номер порта адресата представляют четверку параметров потока периодических контрольных пакетов.For example, the stream of periodic control packets proposed in the present embodiment may have the following characteristics: (ip.src==100.100.3.90 && udp.srcport==60539 && ip.dst==58.217.244.144 && udp.dstport== 10126) && (data[6]==64). Here, ip.src represents the source ip, udp.srcport represents the source port number, ip.dst represents the destination ip, udp.dstport represents the destination port number, and data[6] represents the six bytes of the packet payload. Further, these source ip, destination ip, source port number and destination port number represent the four parameters of the periodic control packet flow.
В соответствии с фиг. 15, конкретная процедура реализации компонента для сообщений о пакетах может содержать:According to FIG. 15, a specific component implementation procedure for package messages may include:
Этап S1: Инициализация.Stage S1: Initialization.
Когда происходит запуск и загрузка сетевого приложения, компонент 141 для передачи сообщений о трафике принимает сообщение о запуске приложения (app launch) и регистрирует хук-функцию nf_hook. Примеры кода показаны на фиг. 17a и фиг. 17b.When a network application is launched and loaded, the traffic messaging component 141 receives an app launch message and registers the nf_hook function. Code examples are shown in Fig. 17a and fig. 17b.
Этап S2: Обработка пакетов.Stage S2: Packet processing.
Этот этап далее содержит три этапа синтаксического анализа пакетов, просмотр таблицы потоков и анализ пакетов. Таблица потоков записывает идентификационную информацию о потоке в каждом сетевом приложении и статистическую информацию для каждого потока. Эта статистическая информация для каждого потока может содержать: количество пакетов в принятом потоке, общее количество байтов пакетов в принятом потоке, количество ошибочных пакетов и другие подобные данные. Идентификационная информация потока данных может быть вычислена в соответствии с четверкой или пятеркой параметров пакетов в потоке, а указанные выше вычисления могут, в частности использовать алгоритм хэширования, так что идентификационная информация потока данных может представлять собой значение хеш-функции, вычисленное для четверки или пятерки параметров пакетов.This stage further contains three stages of packet parsing, flow table lookup, and packet parsing. The flow table records flow identification information in each network application and statistical information for each flow. This statistical information for each stream may include: the number of packets in the received stream, the total number of bytes of packets in the received stream, the number of error packets, and other similar data. The data flow identity may be calculated according to the quadruple or quintuple parameters of the packets in the stream, and the above calculations may particularly use a hashing algorithm so that the data flow identity may be a hash value calculated for the quadruple or quintuple parameters packages.
В ходе синтаксического анализа пакетов компонент 141 для передачи сообщений о трафике получает пакет и может провести синтаксический анализ для выяснения, присутствует ли в этом пакете идентификатор UID рассматриваемого сетевого приложения. Если идентификатор UID присутствует, это означает, что рассматриваемый пакет является пакетом рассматриваемого сетевого приложения, и тогда проводят синтаксический анализ четверки (или пятерки) параметров пакетов и заполняют таблицу потоков. Если идентификатор UID отсутствует, это указывает, что пакет не является пакетом рассматриваемого сетевого приложения, и процедура завершается.During packet parsing, traffic reporting component 141 receives the packet and can parse to determine whether the UID of the network application in question is present in the packet. If the UID is present, it means that the packet in question is a packet from the network application in question, and then the four (or five) packet parameters are parsed and the flow table is populated. If the UID is missing, this indicates that the packet is not that of the network application in question, and the procedure ends.
Указанная выше четверка параметров может содержать: IP-адрес источника, IP-адрес пункта назначения (адресата), порт источника и порт адресата. Пятерка параметров может содержать: IP-адрес источника, IP-адрес пункта назначения (адресата), порт источника, порт адресата и номер протокола.The above four parameters may contain: source IP address, destination (destination) IP address, source port and destination port. The five parameters may contain: source IP address, destination (destination) IP address, source port, destination port and protocol number.
В ходе просмотра таблицы потоков, идентификационная информация потока данных может быть вычислена в соответствии с четверкой (или пятеркой) параметров пакета. Вычисленная идентификационная информация может быть использована для поиска, была ли эта идентификационная информация уже записана в таблице потоков, и если да – обновляют статистическую информацию, соответствующую этой идентификационной информации в таблице потоков. Если нет, в таблице потоков создают узел потока в соответствии с этой идентификационной информацией потока данных, и вносят актуальную статистическую информацию о потоке в этот узел потока.By looking up the flow table, the data flow identification information can be calculated according to the quartet (or quintuplet) of packet parameters. The calculated identification information can be used to find whether this identification information has already been recorded in the flow table, and if so, update statistical information corresponding to this identification information in the flow table. If not, a flow node is created in the flow table according to this data flow identification information, and the current statistical information about the flow is entered into this flow node.
В ходе анализа пакета, компонент 141 для передачи сообщений о трафике может фильтровать принятый пакет с использованием предварительно заданной модели потока для получения всех или некоторых пакетов целевого потока. Например, если используется указанная выше модель потока, соответствующая потоку периодических контрольных пакетов, может быть получен поток периодических контрольных пакетов для целевого потока.During packet analysis, traffic reporting component 141 may filter the received packet using a predefined flow model to obtain all or some of the target flow's packets. For example, if the above flow model corresponding to a heartbeat flow is used, a heartbeat flow for a target flow can be obtained.
Указанная выше модель потока может быть конфигурирована в компоненте для передачи сообщений о трафике посредством конфигурационного файла, и этот конфигурационный файл может быть передан в запросе сообщить о трафике, переданном посредством компонента измерения трафика на этапе 1206. Модель потока записывает информацию о признаках, с которыми должен быть согласован пакет. Например, как показано на фиг. 18, указанный выше поток периодических контрольных пакетов может иметь информацию о признаках в шести байтах полезной нагрузки пакета. Например, информация о признаках в потоке периодических контрольных пакетов восходящей линии имеет вид 0x64, а информация о признаках в потоке периодических контрольных пакетов нисходящей линии имеет вид 0x65. В таком случае, в модели потока может быть предварительно задана функция согласования, filterStr, где 0x64 согласован с потоком восходящей линии, и 0x65 согласован с потоком нисходящей линии, где позиция согласования сдвинута на 6 байт от полезной нагрузки протокола UDP.The above flow model may be configured in the traffic reporting component through a configuration file, and this configuration file may be passed in a request to report traffic reported by the traffic measurement component at step 1206. The flow model records information about the attributes with which to package to be agreed upon. For example, as shown in FIG. 18, the above periodic control packet stream may have feature information in six bytes of the packet payload. For example, the feature information in the uplink heartbeat stream is 0x64, and the feature information in the downlink heartbeat stream is 0x65. In such a case, the flow model may be pre-specified with a matching function, filterStr, where 0x64 is matched to the uplink flow, and 0x65 is matched to the downlink flow, where the matching position is offset by 6 bytes from the UDP protocol payload.
Как показано на фиг. 19, кодовая логика может использовать функцию memcmp для сравнения, согласован ли контент пакета с конфигурированной функцией согласования, filterStr. Конкретный код имеет вид: if (memcmp(rpt_cfg->filter_str[i], payload + filter_str_offset, rpt_cfg->filter_str_len[i]) == 0), где функция memcmp сравнивает и получает пакет, согласованный с функцией согласования, filterStr, тем самым отфильтровывая поток периодических контрольных пакетов из целевого потока.As shown in FIG. 19, the code logic may use the memcmp function to compare whether the content of the packet matches the configured matching function, filterStr. The specific code looks like: if (memcmp(rpt_cfg->filter_str[i], payload + filter_str_offset, rpt_cfg->filter_str_len[i]) == 0), where the memcmp function compares and receives the packet matched with the matching function, filterStr, so thereby filtering out the stream of periodic control packets from the target stream.
Этап S3: Сообщение согласованного целевого потока и статистической информации об этом целевом потоке в соответствии с политикой сообщения о потоках.Step S3: Reporting a consistent target thread and statistical information about that target thread according to the thread reporting policy.
В частности, фильтрованные пакеты целевого потока могут быть сохранены в очереди SKB, и сообщения о них будут передаваться периодически или незамедлительно в соответствии с политикой сообщений о целевом потоке.In particular, the filtered packets of the target flow can be stored in the SKB queue and reported periodically or immediately according to the target flow message policy.
Если о пакетах сообщают периодически, о части или о некоторых пакетах, принятых целевым потоком в этом периоде (например, последний пакет целевого потока, принятый в этом периоде) может быть сообщено компоненту 133 измерения трафика в конце каждого периода. В качестве опции, статистическая информация о пакетах (например, количество пакетов и общее количество байтов в пакетах) целевого потока в текущем периоде может быть далее сообщена компоненту 133 измерения трафика.If packets are reported periodically, a portion or some of the packets received by the target flow in that period (eg, the last packet of the target flow received in that period) may be reported to traffic measurement component 133 at the end of each period. Optionally, packet statistical information (eg, the number of packets and the total number of bytes in the packets) of the target flow in the current period can be further reported to the traffic measurement component 133 .
Если о пакетах сообщают незамедлительно, согласованные пакеты могут быть напрямую сообщены компоненту измерения трафика.If packets are reported immediately, matched packets can be directly reported to the traffic measurement component.
Посредством указанной выше процедуры пакеты целевого потока могут быть точно согласованы и фильтрованы в компоненте для передачи сообщений о трафике, и сообщенные пакеты могут быть использованы в компоненте измерения трафика для оценивания качества работы сети.Through the above procedure, packets of the target flow can be precisely matched and filtered in the traffic reporting component, and the reported packets can be used in the traffic measurement component to evaluate the performance of the network.
Этап 1402: Компонент 133 измерения трафика анализирует пакеты, сообщенные компонентом 141 для передачи сообщений о трафике, с целью получения результатов анализа пакетов.Step 1402: Traffic measurement component 133 analyzes packets reported by traffic reporting component 141 to obtain packet analysis results.
На этом этапе, компонент 133 измерения трафика может осуществить оценивание качества работы сети на уровне потоков. В отношении параметра оценивания качества работы сети, используемого при оценке качества работы сети для каждого целевого потока, ссылки могут быть сделаны на примеры в таблице 2. Параметр для оценивания качества работы сети для каждого целевого потока может быть передан компоненту 133 измерения трафика на этапе 1206.At this point, the traffic measurement component 133 can perform a flow-level assessment of network performance. With respect to the network performance parameter used in assessing the network performance for each target flow, references may be made to the examples in Table 2. The parameter for assessing the network performance for each target flow may be passed to the traffic measurement component 133 at step 1206.
На этом этапе, полученный результат анализа пакетов может представлять собой результат анализа на уровне потоков, например, является ли качество целевого потока хорошим или плохим.At this point, the resulting packet analysis result may be a flow-level analysis result, such as whether the quality of the target flow is good or bad.
Для реализации оценивания качества работы сети для каждого потока ссылки могут быть сделаны на соответствующее описание этапа 311, так что подробности здесь снова описаны не будут.To implement the network quality assessment for each flow, references may be made to the corresponding description of step 311, so the details will not be described again here.
Этап 1403: Компонент 133 измерения трафика передает результат анализа пакетов компоненту 131 управления путем на уровне потока.Step 1403: The traffic measurement component 133 transmits the packet analysis result to the flow-level path control component 131.
В частности, указанный выше результат анализа пакетов может содержать: идентификационную информацию для целевого потока и информацию для описания, является ли качество целевого потока хорошим или плохим.In particular, the above packet analysis result may include: identification information for the target stream and information for describing whether the quality of the target stream is good or bad.
На фиг. 20 показана, принимая в качестве примера сетевое приложение, являющееся игровым приложением, возможная реализация кода для передачи целевого потока и результата оценивания качества работы сети для этого целевого потока компоненту 131 управления путем на уровне потока для планирования переключения нескольких потоков.In fig. 20 shows, taking as an example a network application that is a gaming application, a possible implementation of code for transmitting a target stream and a network performance evaluation result for that target stream to a thread-level path control component 131 for scheduling multi-stream switching.
Этап 1404: Компонент 131 управления путем на уровне потока определяет, что следует переключить канал, на основе результата анализа пакетов, и определяет, имеется ли альтернативный сетевой канал. Если да, выполняют этап 1414; и если нет, выполняют этап 1405.Step 1404: Flow-level path control component 131 determines that a channel should be switched based on the result of the packet analysis and determines whether an alternative network channel is available. If yes, perform step 1414; and if not, perform step 1405.
Для реализации этапов 1405 – 1413, ссылки могут быть сделаны на этапы 1304 – 1312, так что подробности здесь снова описаны не будут.To implement steps 1405 - 1413, reference may be made to steps 1304 - 1312, so the details will not be described again here.
Этап 1414: Компонент 131 управления путем на уровне потока передает идентификационную информацию целевого потока с низким качеством и путь альтернативного сетевого канала компоненту 132 управления политикой на уровне потока.Step 1414: The flow-level path control component 131 transmits the identification information of the target low-quality flow and the alternate network path path to the flow-level policy control component 132.
В частности, при определении, что качество целевого потока является плохим в соответствии с результатами анализа пакетов каждого целевого потока, компонент 131 управления путем на уровне потока может передать идентификационную информацию о целевом потоке с низким качеством и путь альтернативного сетевого канала компоненту 132 управления политикой на уровне потока.Specifically, when determining that the quality of the target flow is poor according to the packet analysis results of each target flow, the flow-level path control component 131 may transmit identification information of the target flow with poor quality and the path of the alternative network channel to the flow-level policy control component 132 flow.
Этап 1415: Компонент 132 управления политикой на уровне потока передает команду переключения канала компоненту 142 для исполнения политики.Step 1415: The flow-level policy control component 132 transmits a channel switch command to the policy execution component 142.
В частности, после приема идентификационной информации о целевом потоке с плохим качеством и пути альтернативного сетевого канала, переданном компонентом 131 управления путем на уровне потока, компонент 132 управления политикой на уровне потока может определить политику переключения потоков, соответствующую целевому потоку с плохим качеством, определить подлежащий переключению поток сетевого приложения из совокупности потоков, передаваемых в том же самом сетевом канале, как и целевой поток с плохим качеством, в соответствии с политикой переключения потоков, и передать команду переключения канала компоненту 142 для исполнения политики, где эта команда переключения канала может быть использована для указания компоненту 142 для исполнения политики, что следует переключить поток, подлежащий переключению, из текущего первичного сетевого канала (например, первичного сетевого канала) в альтернативный сетевой канал (например, канал сотовой связи), так что переключение канала может быть выполнено быстрее, задержка, вызванная переключением канала, может быть уменьшена, и восприятие для пользователя может быть улучшено.Specifically, after receiving the identification information of the target poor quality flow and the alternate network path path transmitted by the flow level path control component 131, the flow level policy control component 132 can determine a flow switching policy corresponding to the target poor quality flow to determine the switching the network application stream from the set of streams carried on the same network channel as the target poor quality stream, in accordance with the stream switching policy, and transmitting the channel switching command to component 142 to execute the policy, where the channel switching command can be used to instruct the policy execution component 142 to switch the stream to be switched from the current primary network channel (eg, a primary network channel) to an alternative network channel (eg, a cellular channel) so that the channel switch can be performed faster, latency , caused by channel switching, can be reduced, and the experience for the user can be improved.
Например, как показано на фиг. 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.For example, as shown in FIG. 11a, all streams - stream A, stream B and stream C - of the network application are transmitted on Wi-Fi channel 1, stream A is the target stream, and the stream switching policy corresponding to stream A is: stream A and stream B. In this case , if the network performance of flow A becomes poor, it can be determined that flow A and flow B of the network application in question are flows to be switched according to the flow switching policy corresponding to flow A. Therefore, as shown in FIG. 11b, the flow-level policy control component 132 may cause, through a channel switch command, the policy execution component 142 to switch stream A and stream B to an alternative network channel, in other words, to the Mobile 1 channel shown in FIG. 11b. Continuing with this example, suppose that the flow switching policy corresponding to flow A is: flow A, flow B and flow C. In such a case, if the network performance for flow A has become poor, it can be determined that flow A, flow B and thread C of the network application in question are threads to be switched according to the thread switching policy corresponding to thread A. Therefore, as shown in FIG. 11c, the flow-level policy control component 132 may cause, through a channel switch command, the policy execution component 142 to switch stream A, stream B, and stream C to an alternative network channel, in other words, to the Mobile 1 channel shown in FIG. 11c.
На фиг. 21 показана, приняв в качестве примера, что сетевое приложение представляет собой игровое приложение, возможная реализация кода для получения потока, подлежащего переключению, в сетевом приложении посредством компонента 132 управления политикой на уровне потока путем просмотра всех типов потоков сервиса.In fig. 21 shows, taking as an example that the network application is a gaming application, a possible code implementation for obtaining a stream to be switched in the network application through the flow-level policy control component 132 by viewing all types of service streams.
Этап 1416: Компонент 142 для исполнения политики осуществляет переключение канала.Step 1416: The policy execution component 142 performs a channel switch.
В частности, после приема команды переключения канала, переданной компонентом 132 управления политикой на уровне потока, компонент 142 для исполнения политики может переключить несколько подлежащих переключению потоков сетевого приложения из текущего сетевого канала в альтернативный сетевой канал. Иными словами, другие потоки сетевого приложения могут продолжать передаваться и функционировать в текущем сетевом канале, и несколько подлежащих переключению потоков могут передаваться и функционировать в альтернативном сетевом канале, так что переключение может быть совершено быстро, тем самым обеспечивая качество сервиса и восприятие для пользователя.In particular, upon receiving a channel switch command sent by the thread-level policy control component 132, the policy execution component 142 may switch multiple network application threads to be switched from the current network channel to an alternative network channel. In other words, other threads of the network application can continue to transmit and operate on the current network channel, and multiple streams to be switched can transmit and operate on an alternative network channel, so that the switch can be accomplished quickly, thereby ensuring quality of service and experience for the user.
В приведенном выше способе переключения каналов, показанном на фиг. 12 – фиг. 14b, расширено планирование переключения каналов на уровне потоков, и планирование одного потока расширено до планирования нескольких потоков. В некоторых вариантах, результат оценивания качества работы сети для одного потока сетевого приложения может быть получен быстро, и этот результат оценивания может быть применен к типу потока (например, поток, чувствительный к задержке) сетевого приложения, тем самым уменьшая вероятность запаздывания операций сервиса, обусловленного потоком этого типа, и улучшая восприятие для пользователя.In the above channel switching method shown in FIG. 12 – fig. 14b, thread-level channel switching scheduling is extended, and single-thread scheduling is extended to multiple-thread scheduling. In some embodiments, a network performance assessment result for a single thread of a network application can be obtained quickly, and this assessment result can be applied to the type of flow (for example, a latency-sensitive flow) of the network application, thereby reducing the likelihood of service operation lag caused by flow of this type, and improving the experience for the user.
ПримерExample
В голосовом потоке игры Peace Elite присутствует поток периодических контрольных пакетов с периодом в 1 с. Этот голосовой поток может быть использован в качестве целевого потока игрового приложения. Компонент для передачи сообщений о трафике может определить поток периодических контрольных пакетов в голосовом потоке. Время прохождения сигнала в обоих направлениях в сети для голосового потока может быть вычислено компонентом измерения трафика в соответствии с потоком периодических контрольных пакетов в голосовом потоке, для оценивания качества работы сети для голосового потока. Когда качество работы сети становится плохим, результат оценивания может быть применен ко всем чувствительным к задержке потокам в пределах всей игры целиком (например, к игровым потокам и к голосовым потокам), и переключение сетевого канала осуществляется для всех чувствительных к задержке потоков этой игры.The voice stream of the game Peace Elite contains a stream of periodic control packets with a period of 1 second. This voice stream can be used as a target stream for a gaming application. The traffic reporting component may determine a stream of periodic control packets in the voice stream. The round trip time of the network for the voice stream may be calculated by the traffic measurement component according to the flow of periodic control packets in the voice stream to evaluate the performance of the network for the voice stream. When network performance becomes poor, the evaluation result can be applied to all latency-sensitive streams within the entire game (eg, game streams and voice streams), and network channel switching is performed for all latency-sensitive streams of that game.
Используя способ переключения каналов согласно вариантам настоящей заявки, нет необходимости точно получать пакет из каждого потока в сетевом приложении и оценивать качество работы сети для каждого потока, что может уменьшить количество потоков, мониторинг и оценивание которых электронному устройству необходимо осуществлять, и тем самым уменьшить объем обработки данных в электронном устройстве. Кроме того, когда качество сетевого канала становится плохим, переключение канала осуществляется для нескольких потоков (например, одного типа потоков) вовремя, что уменьшает вероятность запаздывания операций сервиса, обусловленного плохим качеством работы сети для нескольких потоков, тем самым снижая проявления задержки операций сервиса и улучшая восприятие для пользователя.By using the channel hopping method of embodiments of the present application, there is no need to accurately obtain a packet from each flow in a network application and evaluate the network performance of each flow, which can reduce the number of flows that an electronic device needs to monitor and evaluate, and thereby reduce the amount of processing. data in an electronic device. In addition, when the quality of the network channel becomes poor, channel switching is performed for multiple flows (for example, the same type of flows) in time, which reduces the possibility of service operation delay caused by poor network quality for multiple flows, thereby reducing the manifestation of service operation delay and improving perception for the user.
Один из вариантов настоящей заявки далее предлагает электронное устройство, где это устройство содержит носитель хранения данных и центральный процессор, носитель хранения данных может представлять собой энергонезависимый носитель, и на этом носителе для хранения информации сохраняют выполняемую компьютером программу. Центральный процессор соединен с энергонезависимым носителем для хранения информации и выполняет указанную выполняемую компьютером программу для осуществления способа, предлагаемого каким-либо из вариантов настоящей заявки, показанных на фиг. 7 – фиг. 15.One embodiment of the present application further provides an electronic device, where the device includes a storage medium and a central processing unit, the storage medium may be a non-volatile medium, and a computer-executable program is stored on the storage medium. The central processing unit is coupled to the nonvolatile storage medium and executes said computer-executable program for implementing the method of any of the embodiments of the present application shown in FIG. 7 – fig. 15.
Один из вариантов настоящей заявки далее предлагает электронное устройство, содержащее: один или несколько процессоров; запоминающее устройство; и одну или несколько компьютерных программ, где эти одна или несколько компьютерных программ сохранены в запоминающем устройстве, эти одна или несколько компьютерных программ содержат команды, при выполнении которых устройство осуществляет способ, предлагаемый каким-либо из вариантов настоящей заявки, показанных на фиг. 7 – фиг. 15.One embodiment of the present application further provides an electronic device comprising: one or more processors; Memory device; and one or more computer programs, wherein the one or more computer programs are stored in a storage device, the one or more computer programs comprising instructions that cause the device to carry out the method of any of the embodiments of the present application shown in FIG. 7 – fig. 15.
Один из вариантов настоящей заявки далее предлагает читаемый компьютером носитель хранения данных, где этот читаемый компьютером носитель хранения данных сохраняет компьютерную программу, так что когда эта компьютерная программа работает в компьютере, такой компьютер осуществляет способ, предлагаемый каким-либо из вариантов настоящей заявки, показанных на фиг. 7 – фиг. 15.One embodiment of the present application further provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program such that when the computer program runs on a computer, such computer implements the method provided by any of the embodiments of the present application illustrated in fig. 7 – fig. 15.
Один из вариантов настоящей заявки далее предлагает компьютерный программный продукт, где этот компьютерный программный продукт содержит компьютерную программу, так что при выполнении этой компьютерной программы компьютер осуществляет способ, предлагаемый каким-либо из вариантов настоящей заявки, показанных на фиг. 7 – фиг. 15.One embodiment of the present application further provides a computer program product, wherein the computer program product comprises a computer program such that, when executing the computer program, the computer implements the method provided by any of the embodiments of the present application shown in FIG. 7 – fig. 15.
Следует понимать, что для осуществления приведенных выше функций электронное устройство или другое подобное устройство содержит структуры оборудования и/или модули программного обеспечения для выполнения разнообразных соответствующих функций. Специалист в рассматриваемой области должен легко понять, что в сочетании с модулями и этапами алгоритмов примеров, рассмотренных в вариантах, приведенных в настоящем описании, варианты настоящей заявки могут быть реализованы посредством оборудования или комбинации оборудования и компьютерного программного обеспечения. Реализована ли какая-то функция посредством оборудования или компьютерного программного обеспечения, управляющего этим оборудованием, зависит от конкретных приложений и проектных ограничений технических решений. Специалист в рассматриваемой области может использовать различные способы для реализации описываемых функций для каждого конкретного приложения, но не следует считать, что такие реализации выходят за пределы объема вариантов настоящей заявки.It should be understood that in order to perform the above functions, an electronic device or other similar device contains hardware structures and/or software modules to perform a variety of related functions. One of ordinary skill in the art will readily appreciate that, in combination with the modules and steps of the example algorithms discussed in the embodiments provided herein, embodiments of the present application may be implemented by hardware or a combination of hardware and computer software. Whether a function is implemented by hardware or by computer software that controls that hardware depends on the specific application and design constraints of the hardware. One skilled in the art may employ various techniques to implement the described functionality for each specific application, but such implementations should not be considered beyond the scope of the embodiments of this application.
В вариантах настоящей заявки, разбиение электронного устройства на функциональные модули может быть осуществлено в соответствии с примерами способов. Например, разбиение на различные функциональные модули может быть выполнено согласно соответствующим функциям, либо две или более функции могут быть интегрированы в одном процессорном модуле. Такой интегрированный модуль может быть реализован в форме оборудования или в форме функционального модуля программного обеспечения. Следует отметить, что разбиение на модули, показанное в рассматриваемом варианте настоящей заявки, представляет собой только пример и является просто разбиением логических функций, так что в реальном приложении могут быть применены другие способы разбиения.In embodiments of the present application, the division of an electronic device into functional modules can be carried out in accordance with example methods. For example, partitioning into different function modules can be done according to the respective functions, or two or more functions can be integrated in one processor module. Such an integrated module may be implemented in the form of hardware or in the form of a software functional module. It should be noted that the modularization shown in the subject embodiment of the present application is only an example and is simply a partitioning of logical functions, so other partitioning methods may be used in an actual application.
На основе описания приведенных выше вариантов реализации специалист в рассматриваемой области может ясно понимать, что в целях удобства и краткости описания разбиение на упомянутые выше функциональные модули использовано только в качестве примера. В фактическом приложении упомянутые выше функции могут быть назначены и выполнены различными функциональными модулями согласно конкретным требованиям. Иными словами, внутренняя структура аппаратуры разбита на различные функциональные модули для выполнения всех или некоторых функций, рассмотренных выше. За информацией о конкретных рабочих процедурах системы, аппаратуры и модулей, упомянутых выше, можно обратиться к соответствующим процедурам или приведенных выше вариантов способа, так что подробности здесь снова описаны не будут.Based on the description of the above embodiments, one skilled in the art can clearly understand that for the sake of convenience and brevity of the description, the breakdown into the above-mentioned functional modules is used as an example only. In an actual application, the above functions can be assigned and executed by various function modules according to specific requirements. In other words, the internal structure of the equipment is divided into various functional modules to perform all or some of the functions discussed above. For information about the specific operating procedures of the system, apparatus and modules mentioned above, reference may be made to the corresponding procedures or method variations above, so the details will not be described again here.
Функциональные модули в вариантах настоящей заявки могут быть интегрированы в одном процессорном модуле, либо каждый из этих модулей может существовать физически отдельно, либо два или более модулей могут быть интегрированы в одном модуле. Интегрированный модуль может быть реализован в форме оборудования, либо может быть реализован в форме функционального модуля программного обеспечения.The functional modules in embodiments of the present application may be integrated within a single processor module, or each of these modules may exist physically separately, or two or more modules may be integrated within a single module. An integrated module may be implemented in the form of hardware, or may be implemented in the form of a functional software module.
Когда интегрированный модуль реализован в форме функционального модуля программного обеспечения и продается или используется как независимый продукт, этот интегрированный модуль может быть сохранен на читаемом компьютером носителе для хранения информации. На основе такого понимания, технические решения вариантов настоящей заявки в основном или в части, соответствующей близким областям техники, либо все или часть таких технических решений могут быть реализованы в форме компьютерного программного продукта. Этот компьютерный программный продукт сохраняется на носителе для хранения информации и содержит ряд команд для управления компьютерным устройством (это может быть персональный компьютер, сервер или сетевое устройство) или процессором для осуществления некоторых или всех этапов способа, описываемого в вариантах настоящей заявки. Указанный носитель хранения данных может представлять собой какой-либо носитель, способный сохранять программный код, такой как устройство флэш-памяти, сменный жесткий диск, постоянное запоминающее устройство, запоминающее устройство с произвольной выборкой, магнитный диск или оптический диск.When an integrated module is implemented in the form of a software function module and is sold or used as an independent product, the integrated module may be stored on a computer-readable storage medium. Based on this understanding, the technical solutions of the embodiments of the present application, mainly or in part corresponding to related fields of technology, or all or part of such technical solutions, can be implemented in the form of a computer program product. The computer program product is stored on a storage medium and contains a number of instructions for controlling a computer device (which may be a personal computer, a server, or a network device) or a processor to carry out some or all of the steps of the method described in the embodiments of this application. Said storage medium may be any medium capable of storing program code, such as a flash memory device, a removable hard disk, a read only memory, a random access memory, a magnetic disk, or an optical disk.
Приведенное выше описание просто относится к конкретным вариантам настоящей заявки и не имеет целью ограничить объем защиты этой заявки. Любые вариации или замены в пределах технического объема настоящей заявки попадут в объем защиты заявки. Поэтому объем защиты настоящей заявки соответствует объему защиты Формулы изобретения.The foregoing description merely relates to specific embodiments of this application and is not intended to limit the scope of protection of this application. Any variations or substitutions within the technical scope of this application will fall within the scope of the application. Therefore, the scope of protection of the present application corresponds to the scope of protection of the Claims.
Claims (34)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110666663.7 | 2021-06-16 | ||
CN202111135331.2 | 2021-09-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2802678C1 true RU2802678C1 (en) | 2023-08-30 |
Family
ID=
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110222466A1 (en) * | 2010-03-10 | 2011-09-15 | Aleksandar Pance | Dynamically adjustable communications services and communications links |
CN107580345A (en) * | 2017-09-07 | 2018-01-12 | 新华三技术有限公司 | Wireless channel switching method and device and wireless channel determining method and device |
CN108200588A (en) * | 2017-12-27 | 2018-06-22 | 南昌黑鲨科技有限公司 | A kind of network optimized approach, device, computer readable storage medium and mobile terminal |
CN108449771A (en) * | 2018-06-29 | 2018-08-24 | Oppo(重庆)智能科技有限公司 | Method for switching network, device, terminal and storage medium |
RU2677693C2 (en) * | 2013-06-18 | 2019-01-21 | Сони Корпорейшн | Communication device and communication method |
CN110798868A (en) * | 2018-08-02 | 2020-02-14 | 华为技术有限公司 | Network switching method, electronic equipment and chip subsystem |
CN111182595A (en) * | 2019-12-30 | 2020-05-19 | Oppo广东移动通信有限公司 | Network switching method and device, storage medium and electronic equipment |
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110222466A1 (en) * | 2010-03-10 | 2011-09-15 | Aleksandar Pance | Dynamically adjustable communications services and communications links |
RU2677693C2 (en) * | 2013-06-18 | 2019-01-21 | Сони Корпорейшн | Communication device and communication method |
CN107580345A (en) * | 2017-09-07 | 2018-01-12 | 新华三技术有限公司 | Wireless channel switching method and device and wireless channel determining method and device |
CN108200588A (en) * | 2017-12-27 | 2018-06-22 | 南昌黑鲨科技有限公司 | A kind of network optimized approach, device, computer readable storage medium and mobile terminal |
CN108449771A (en) * | 2018-06-29 | 2018-08-24 | Oppo(重庆)智能科技有限公司 | Method for switching network, device, terminal and storage medium |
CN110798868A (en) * | 2018-08-02 | 2020-02-14 | 华为技术有限公司 | Network switching method, electronic equipment and chip subsystem |
CN111182595A (en) * | 2019-12-30 | 2020-05-19 | Oppo广东移动通信有限公司 | Network switching method and device, storage medium and electronic equipment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4135405A1 (en) | Channel switching method, and electronic device and storage medium | |
US11736224B2 (en) | Data transmission method and electronic device | |
CN114172791B (en) | Channel switching method, electronic device and storage medium | |
CN115484648B (en) | Channel switching method, electronic device and storage medium | |
US20240089822A1 (en) | Channel switching method, electronic device, and storage medium | |
WO2022083386A1 (en) | Screen projection method and system, and electronic device | |
WO2020019533A1 (en) | Data transmission method and electronic device | |
CN113890905B (en) | Channel switching method, electronic device and storage medium | |
CN113498108A (en) | Chip, equipment and method for adjusting data transmission strategy based on service type | |
US11997736B2 (en) | Connection establishment method and terminal device | |
CN113810965B (en) | Channel switching method, electronic device and storage medium | |
RU2802678C1 (en) | Channel switching method, electronic device and storage medium | |
CN113141637B (en) | Multipath transmission control method and control device | |
WO2020124447A1 (en) | Multi-sim facing network management | |
RU2811567C1 (en) | Channel switching method, electronic device and data media | |
CN116709368B (en) | Network acceleration method and device | |
CN116405960B (en) | Network quality detection method and related electronic equipment | |
WO2024082811A1 (en) | Network acceleration method and apparatus | |
WO2024001773A1 (en) | Data migration method, electronic device and networking system | |
CN116155729A (en) | Network acceleration method based on user traffic portrayal and related electronic equipment | |
CN116744329A (en) | Network acceleration method and electronic equipment | |
CN117915356A (en) | Network acceleration method and device |