WO2023140482A1 - Method and apparatus for managing a plurality of network in user equipment - Google Patents
Method and apparatus for managing a plurality of network in user equipment Download PDFInfo
- Publication number
- WO2023140482A1 WO2023140482A1 PCT/KR2022/018648 KR2022018648W WO2023140482A1 WO 2023140482 A1 WO2023140482 A1 WO 2023140482A1 KR 2022018648 W KR2022018648 W KR 2022018648W WO 2023140482 A1 WO2023140482 A1 WO 2023140482A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- application
- network
- determining
- user equipment
- requirement
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000004891 communication Methods 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000010025 steaming Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/15—Setup of multiple wireless link connections
- H04W76/16—Involving different core network technologies, e.g. a packet-switched [PS] bearer in combination with a circuit-switched [CS] bearer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/148—Migration or transfer of sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W48/00—Access restriction; Network selection; Access point selection
- H04W48/18—Selecting a network or a communication service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/02—Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
- H04W84/10—Small scale networks; Flat hierarchical networks
- H04W84/12—WLAN [Wireless Local Area Networks]
Definitions
- the present disclosure relates to a method and an apparatus for managing a plurality of networks in a user equipment.
- Figure 1 illustrates an example of a problem existing in the current state of art. As shown in fig. 1, all the foreground applications and background applications are running on Wi-Fi network, and none of these applications are using mobile data network. Due to this, the Wi-Fi network may be overwhelmed with issues like low latency, bad performance, and less throughput, whereas the mobile data network is free.
- an application either can be on Wi-Fi interface or mobile data interface. But there is no application type-based data interface selection simultaneously for two different apps at apparatus layer level. In other words, simultaneous use of one application on mobile data interface and another application on Wi-Fi data interface are not possible currently. This leads to overwhelmed interface in case of multiple data applications running on user device, impacting overall throughput, latency and application performance. This problem is experienced specially during heavy data usage applications like media steaming applications/online gaming/VOIP applications.
- a method for managing a plurality of networks by a user equipment may comprise detecting a plurality of networks available on the user equipment.
- the method may comprise determining current throughput of each of the detected plurality of networks.
- the method may comprise determining requirement of a first application running on the user equipment based on predetermined parameters, wherein the requirement includes at least one of a bandwidth, latency and application performance.
- the method may comprise connecting the first application to a first network among the plurality of the detected networks based on the requirement of the first application and the current throughput of the first network, if the first network supports the first application.
- the method may comprise connecting a second application to the first network and the first application to a second network of the detected plurality of networks, upon determining that the first network does not support the first application, or that the second application has lesser requirement than the first application.
- an apparatus of a user equipment for managing a plurality of networks may comprise a memory, and at least one processor coupled to the memory.
- the at least one processor may be configured to execute operations.
- the operations may comprise detecting a plurality of networks available on the user equipment.
- the operations may comprise determining current throughput of each of the detected plurality of networks.
- the operations may comprise determining requirement of a first application running on the user equipment based on predetermined parameters, wherein the requirement includes at least one of a bandwidth, latency and application performance.
- the operations may comprise connecting the first application to a first network among the plurality of the detected networks based on the requirement of the first application and the current throughput of the first network, if the first network supports the first application.
- the operations may comprise connecting a second application to the first network and the first application to a second network of the detected plurality of networks, upon determining that the first network does not support the first application, or that the second application has lesser requirement than the first application.
- non-transitory computer readable storage medium storing instructions which, when executed by at least one processor of a user equipment, cause the user equipment to execute operations.
- the operations may comprise detecting a plurality of networks available on the user equipment.
- the operations may comprise determining current throughput of each of the detected plurality of networks.
- the operations may comprise determining requirement of a first application running on the user equipment based on predetermined parameters, wherein the requirement includes at least one of a bandwidth, latency and application performance.
- the operations may comprise connecting the first application to a first network among the plurality of the detected networks based on the requirement of the first application and the current throughput of the first network, if the first network supports the first application.
- the operations may comprise connecting a second application to the first network and the first application to a second network of the detected plurality of networks, upon determining that the first network does not support the first application, or that the second application has lesser requirement than the first application.
- Figure 1 illustrates a problem existing in the current state of the art
- Figure 2 illustrates a flow diagram depicting method for maintaining a plurality of networks in a user equipment, in accordance with an embodiment of the present disclosure
- FIG. 3 illustrates a signal flow diagram for implementing the present disclosure, in accordance with an embodiment of the present application
- FIG. 4 illustrates an environment depicting the implementation of the present disclosure, in accordance with an embodiment of the present application
- Figure 5 illustrates a block diagram of an apparatus for maintaining a plurality of networks in a user equipment, in accordance with an embodiment of the present disclosure
- FIG. 6 illustrates comparison between the present disclosure and the existing art, in accordance with an embodiment of the present disclosure.
- Figure 7 illustrates another comparison between the present disclosure and the existing art, in accordance with an embodiment of the present disclosure.
- any terms used herein such as but not limited to “includes,” “comprises,” “has,” “consists,” and grammatical variants thereof do NOT specify an exact limitation or restriction and certainly do NOT exclude the possible addition of one or more features or elements, unless otherwise stated, and furthermore must NOT be taken to exclude the possible removal of one or more of the listed features and elements, unless otherwise stated with the limiting language “MUST comprise” or “NEEDS TO include.”
- user equipment refers to any electronic devices used by an user such as a mobile device, a desktop, a laptop, personal digital assistant (PDA) or similar devices.
- PDA personal digital assistant
- Fig. 2 illustrates a flow diagram depicting a method 200 for maintaining a plurality of networks in a user equipment, in accordance with an embodiment of the present disclosure.
- the method 200 comprises detecting if more than one network is available on the user equipment.
- the user equipment may be able to connect to a plurality of networks such as a mobile data network, a wi-fi network, a Bluetooth, near field communication (NFC) network, etc.
- the method 200 may detect if more than one of the plurality of networks is available on the user equipment, for example, if the mobile data network and the wi-fi network, both are available simultaneously on the user equipment.
- the method 200 comprises determining current throughput of each of the available network(s).
- the current throughput may include at least one of a bandwidth, latency and application performance.
- the current throughput may be determined using any technique known to a person skilled in the art.
- the bandwidth of the available network may be determined using a Received Signal Strength Indicator (RSSI) value received from the available network. If the RSSI value is greater than a predetermined threshold, then it is considered that an application on the user device may be connected to that network.
- RSSI Received Signal Strength Indicator
- other parameters of the current throughput may be determined using techniques known to a person skilled in the art.
- the method 200 may then at step 205, determine current requirement of a first application running on the user equipment based on predetermined parameters.
- the current requirement may include at least one of a bandwidth, latency and application performance.
- latency may be based on application data consumption stats. For example, a data usage entry for a video streaming app, is created in the application database and this entry is updated time to time for this application. If data receiving rate is lesser than previous observed data rate stats in same situation, the application can be switched to another interface provided another interface can offer desired bandwidth.
- the application performance may be impacted by latency and network error rates, if connection drop rate is high on one interface, another available interface is tried.
- the bandwidth requirement may refer to the bandwidth required to run the application.
- the predetermined parameters may comprise at least one of usage history of application, background status of the application, foreground status of the application, data consumption of the application and bandwidth requirement of the application.
- the current requirements may be determined based on the predetermined parameters.
- the predetermined parameters may be stored in an application database and said database may be updated upon detecting a change in any of the predetermined parameters. For example, if bandwidth requirement of one of the applications is changed, then the corresponding data in the database will be updated. Table 1 below shows an example of the application database:
- the App Id refers to an ID identifying application for which the data is being stored.
- the foreground up time refers to time duration for which the application has been running in foreground.
- the background up time refers to time duration for which the application has been running in background.
- the foreground data refers to data/bandwidth consumed in running that application in foreground.
- the background data refers to data/bandwidth consumed in running that application in background.
- Day refers to numbers of days, the application has been used for.
- the database may define a number of predetermined categories such as bank, finance, game, shopping, VOIP etc. and the column category in the database refers to the category to which the application belongs.
- the current requirements of the first application may be determined using the values in table 1.
- the method 200 comprises connecting the first application to a first network, from each of the available network(s), based on the current requirement of the first application and the current throughput of the first network, if the first network supports the first application.
- the bandwidth requirement of the first application is B1
- the available bandwidth of the first and second networks are B2 and B3, respectively. If B2>B1, then it means that the first network may support the first application and the first application will be connected to the first network provided that the first application is capable of running on the first network.
- the method 200 may connect the second application to the first network and the first application to the second network.
- B3 shall be greater than B1 in order to support the first application.
- the current requirement of the second application is not less than that of the first network, then the first application may be connected to the second network and the second application would not be connected to the first network.
- the first network is a Wi-Fi network and the second network is a data network which may include, but not limited to, one of a mobile data network, Bluetooth network, and near field communication (NFC) network.
- a Wi-Fi network and the second network is a data network which may include, but not limited to, one of a mobile data network, Bluetooth network, and near field communication (NFC) network.
- NFC near field communication
- the predetermined threshold is configurable and may be configured by the user or the network provider. For example, the predetermined threshold may be configured based on the data stored in the application database.
- an application running on the user equipment belongs to a predetermined category such as security, banking, personal, and that application is connected to the first network
- the said application may be switched to the second network, in accordance with embodiments as discussed above in reference to fig. 2. This way, the said application may be switched to a more private network and better security may be provided to the user.
- step 201 If it is determined at step 201, that more than one network is not available, i.e., only one network is available, then it may be determined if the available network is the first network. If yes, then PDN set up is initiated and the first application is connected with the first network. However, if the available network is not the first network, then the first application is connected to the available network.
- Fig. 3 illustrates a signal flow diagram for implementing the present disclosure, in accordance with an embodiment of the present application.
- An application may send a GetConnection() message to a HttpConnection. After receiving the GetConnection() message, the HttpConnection may send a SendConnectionRequest() message to a Http Engine. After receiving the SendConnectionRequest() message, the Http Engine may send a getInterfaceType() message to an interface management module. After receiving the getInterfaceType() message, the interface management module may send INTERFACE_TYPE to the Http Engine. After receiving the INTERFACE_TYPE, the Http Engine may send a newConnection(INTERFACE_TYPE) message to a connection pool. The connection may perform new socket connection based on the newConnection(INTERFACE_TYPE) message. After performing the new socket connection, the connection pool may send a Connection Complete message to the Http Engine. After receiving the Connection Complete message, the Http Engine may send a Connection Complete message to the HttpConnection.
- the HttpConnection may send a ReadResponse() message to the Http Engine.
- the HttpEnging may send a WriteRequestHeader(Secket_id) message to a Http Transport.
- the Http Transport may write output stream based on the received WriteRequestHeader(Secket_id) message.
- the Http Transport may send a return message indicating a success or a fail of writing the output stream, to the Http Engine.
- the Http Engine may send a ReadResponseHeader(Socket_id) message to the Http Transport.
- the Http Transport may read input stream based on the received ReadResponseHeader(Socket_id) message.
- the Http Transport may send a Return ResponseHeader message to the Http Engine.
- the The Http Transport may send a SetTransferStream () message to the HttpTransport.
- the Http Trasport may send a NewIOStreamRequest () message to an I/O(input/output) stream.
- the I/O stream may send a Return IOobject message to the Http Transport.
- the Http transport may send a Return IOobject message to the Http Engine.
- the Http Engine may send a Return response message to the HttpConnection.
- the Http Engine may send a Return connection info message to the application.
- the application may perform packet read/write on the I/O stream.
- Fig. 4 illustrates an exemplary environment depicting the implementation of the present disclosure, in accordance with an embodiment of the present application.
- it is determined if both the mobile data and Wi-Fi network are available at the user equipment. If not, then the application is connected to the only available network. If yes, then it is determined if the application belongs to a predetermined category (security, banking, personal). If the application belongs to a predetermined category, then the application is connected to the mobile data network (i.e., a preferred network for such predetermined category), if it is connected to the Wi-Fi network. If the application does not belong to the predetermined category, then the application is connected to the Wi-Fi network.
- a predetermined category security, banking, personal
- an application A1 is connected to Wi-Fi network and another application A2 is to be connected to Wi-Fi or mobile data network.
- current data usage (A) and previous data usage (B) of currently active application A1 are determined. If A>B, then current data usage (C) of a new application A2 and available bandwidth (D) of wi-fi are determined. If D>C, then A2 is connected to wi-fi. IF A ⁇ B or D ⁇ C, then the application which has highest bandwidth requirement is switched to mobile data network. If this switch is not successful, then another application may be switched to the mobile data network. This way, the available resources i.e., different networks may be efficiently utilized based on requirement and status of the applications.
- PAN Personal Area Network
- the user equipment may use the disclosed techniques to figure out best way to send this file to other user using other medium such as wi-fi Direct.
- PAN network is just an exemplary network used by the user.
- the user may also be using another network such as Wide Area Network (WAN), Local Area Network (LAN) etc.
- Fig. 5 illustrates a block diagram of an apparatus 500 for maintaining a plurality of networks in a user equipment, in accordance with an embodiment of the present disclosure.
- the apparatus 500 may comprise an interface management unit 501 which is configured to detect if more than one network is available on the user equipment, determine current throughput of the available network and determine current requirement of a first application running on the user equipment based on predetermined parameters, wherein the current requirement includes at least one of a bandwidth, latency and application performance.
- the apparatus 500 may further comprise a connection manager 503 connected to the interface management unit 501 and is configured to connect the first application to a first network based on the current requirement of the first application and the current throughput of the first network, if the first network supports the first application.
- the connection manager 503 is further configured to connect a second application to the first network and the first application to a second network, upon determining a condition based on the predetermined parameters at least one of: the first network does not support the first application and the second application has lesser current requirement than the first application.
- the apparatus 500 may also comprise a buffer manager 505 which stores the data related to the available networks and the applications. The said data may be used to determine if the application shall be switched to another network. In an embodiment, the apparatus 500 may be configured to perform the method as discussed in respect to figs. 2-4.
- the various units 501, 503 may be a single processing unit or a number of units, all of which could include multiple computing units.
- the units 501-505 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions.
- the units 501-505 may be configured to fetch and execute computer-readable instructions and data stored in a memory.
- the units 501-505 may include one or a plurality of processors.
- one or a plurality of processors may be a general-purpose processor, such as a central processing unit (CPU), an application processor (AP), or the like, a graphics-only processing unit such as a graphics processing unit (GPU), a visual processing unit (VPU), and/or an AI-dedicated processor such as a neural processing unit (NPU).
- processors control the processing of the input data in accordance with a predefined operating rule or artificial intelligence (AI) model stored in the non-volatile memory and the volatile memory.
- the predefined operating rule or artificial intelligence model is provided through training or learning.
- the units 501-505 can be implemented in hardware, instructions executed by a processing unit, or by a combination thereof.
- the processing unit can comprise a computer, a processor, a state machine, a logic array, or any other suitable devices capable of processing instructions.
- the processing unit can be a general-purpose processor which executes instructions to cause the general-purpose processor to perform the required tasks or, the processing unit can be dedicated to performing the required functions.
- the units 501-505 may be machine-readable instructions (software) which, when executed by a processor/processing unit, perform any of the described functionalities.
- Figs. 6-7 illustrate comparison between the present disclosure and the existing art, in accordance with an embodiment of the present disclosure.
- a user has connected a WhatsUp Voice call over a wi-fi network which is connected to various applications and is overloaded.
- no application is connected to mobile network of user device. Due to this, the user experiences bandwidth issues on his WhatsUp Voice call.
- the user device will connect with both interface via Wi-Fi and mobile data.
- the user device will assign interface based on application data uses. For example, few applications such as WhatsUp Voice call, gmail etc. may be switched to mobile data, Thus, the user device utilizes both interfaces effectively.
- the present application provide solution to poor WhatsUp Voice call and voice Lagging problem.
- fig. 7 also illustrates comparison between the present disclosure and the existing art, in accordance with an embodiment of the present disclosure.
- the disclosed techniques provide best utilization of available networks while maintaining high throughput with less latency.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
A method for managing a plurality of networks by a user equipment comprise detecting a plurality of networks available on the user equipment; determining current throughput of each of the detected plurality of networks; determining requirement of a first application running on the user equipment based on predetermined parameters, wherein the requirement includes at least one of a bandwidth, latency and application performance; connecting the first application to a first network among the plurality of the detected networks based on the requirement of the first application and the current throughput of the first network, if the first network supports the first application; and connecting a second application to the first network and the first application to a second network of the detected plurality of networks, upon determining that the first network does not support the first application, or that the second application has lesser requirement than the first application.
Description
The present disclosure relates to a method and an apparatus for managing a plurality of networks in a user equipment.
These days heavy data consumption applications are becoming common like media streaming apps, online gaming apps, and voice over internet protocol (VOIP) apps. With advent in technology, smartphones now can support multiple apps running simultaneously. Additionally, dual screen concept is now available in smartphones, which further allows users to use multiple apps. With the advent of more media streaming/gaming applications, remote work support, multiple media session support, internet data, and high throughput are now key needs for users.
However, there are many problems while browsing multiple heavy data applications simultaneously on devices, such as latency, buffering, and poor application performance. Figure 1 illustrates an example of a problem existing in the current state of art. As shown in fig. 1, all the foreground applications and background applications are running on Wi-Fi network, and none of these applications are using mobile data network. Due to this, the Wi-Fi network may be overwhelmed with issues like low latency, bad performance, and less throughput, whereas the mobile data network is free.
Accordingly, an application either can be on Wi-Fi interface or mobile data interface. But there is no application type-based data interface selection simultaneously for two different apps at apparatus layer level. In other words, simultaneous use of one application on mobile data interface and another application on Wi-Fi data interface are not possible currently. This leads to overwhelmed interface in case of multiple data applications running on user device, impacting overall throughput, latency and application performance. This problem is experienced specially during heavy data usage applications like media steaming applications/online gaming/VOIP applications.
Hence, there is a need to provide techniques which overcome the above discussed problems in the art.
This summary is provided to introduce a selection of concepts in a simplified format that are further described in the detailed description of the disclosure. This summary is not intended to identify key or essential inventive concepts of the disclosure, nor is it intended for determining the scope of the disclosure.
According to an embodiment of the present disclosure, a method for managing a plurality of networks by a user equipment is disclosed. The method may comprise detecting a plurality of networks available on the user equipment. The method may comprise determining current throughput of each of the detected plurality of networks. The method may comprise determining requirement of a first application running on the user equipment based on predetermined parameters, wherein the requirement includes at least one of a bandwidth, latency and application performance. The method may comprise connecting the first application to a first network among the plurality of the detected networks based on the requirement of the first application and the current throughput of the first network, if the first network supports the first application. The method may comprise connecting a second application to the first network and the first application to a second network of the detected plurality of networks, upon determining that the first network does not support the first application, or that the second application has lesser requirement than the first application.
According to an embodiment of the present disclosure, an apparatus of a user equipment for managing a plurality of networks is disclosed. The apparatus may comprise a memory, and at least one processor coupled to the memory. The at least one processor may be configured to execute operations. The operations may comprise detecting a plurality of networks available on the user equipment. The operations may comprise determining current throughput of each of the detected plurality of networks. The operations may comprise determining requirement of a first application running on the user equipment based on predetermined parameters, wherein the requirement includes at least one of a bandwidth, latency and application performance. The operations may comprise connecting the first application to a first network among the plurality of the detected networks based on the requirement of the first application and the current throughput of the first network, if the first network supports the first application. The operations may comprise connecting a second application to the first network and the first application to a second network of the detected plurality of networks, upon determining that the first network does not support the first application, or that the second application has lesser requirement than the first application.
According to an embodiment of the present disclosure, non-transitory computer readable storage medium storing instructions which, when executed by at least one processor of a user equipment, cause the user equipment to execute operations is disclosed. The operations may comprise detecting a plurality of networks available on the user equipment. The operations may comprise determining current throughput of each of the detected plurality of networks. The operations may comprise determining requirement of a first application running on the user equipment based on predetermined parameters, wherein the requirement includes at least one of a bandwidth, latency and application performance. The operations may comprise connecting the first application to a first network among the plurality of the detected networks based on the requirement of the first application and the current throughput of the first network, if the first network supports the first application. The operations may comprise connecting a second application to the first network and the first application to a second network of the detected plurality of networks, upon determining that the first network does not support the first application, or that the second application has lesser requirement than the first application.
To further clarify the advantages and features of the present disclosure, a more particular description of the disclosure will be rendered by reference to specific embodiments thereof, which is illustrated in the appended drawing. It is appreciated that these drawings depict only typical embodiments of the disclosure and are therefore not to be considered limiting its scope. The disclosure will be described and explained with additional specificity and detail with the accompanying drawings.
These and other features, aspects, and advantages of the present disclosure will become better understood when the following detailed description is read with reference to the accompanying drawings in which like characters represent like parts throughout the drawings, wherein:
Figure 1 illustrates a problem existing in the current state of the art;
Figure 2 illustrates a flow diagram depicting method for maintaining a plurality of networks in a user equipment, in accordance with an embodiment of the present disclosure;
Figure 3 illustrates a signal flow diagram for implementing the present disclosure, in accordance with an embodiment of the present application;
Figure 4 illustrates an environment depicting the implementation of the present disclosure, in accordance with an embodiment of the present application;
Figure 5 illustrates a block diagram of an apparatus for maintaining a plurality of networks in a user equipment, in accordance with an embodiment of the present disclosure;
Figure 6 illustrates comparison between the present disclosure and the existing art, in accordance with an embodiment of the present disclosure; and
Figure 7 illustrates another comparison between the present disclosure and the existing art, in accordance with an embodiment of the present disclosure.
Further, skilled artisans will appreciate that elements in the drawings are illustrated for simplicity and may not have been necessarily drawn to scale. For example, the flow charts illustrate the method in terms of the most prominent steps involved to help to improve understanding of aspects of the present disclosure. Furthermore, in terms of the construction of the apparatus, one or more components of the apparatus may have been represented in the drawings by conventional symbols, and the drawings may show only those specific details that are pertinent to understanding the embodiments of the present disclosure so as not to obscure the drawings with details that will be readily apparent to those of ordinary skill in the art having benefit of the description herein.
It should be understood at the outset that although illustrative implementations of the embodiments of the present disclosure are illustrated below, the present disclosure may be implemented using any number of techniques, whether currently known or in existence. The present disclosure should in no way be limited to the illustrative implementations, drawings, and techniques illustrated below, including the exemplary design and implementation illustrated and described herein, but may be modified within the scope of the appended claims along with their full scope of equivalents.
The term "some" as used herein is defined as "none, or one, or more than one, or all." Accordingly, the terms "none," "one," "more than one," "more than one, but not all" or "all" would all fall under the definition of "some." The term "some embodiments" may refer to no embodiments or to one embodiment or to several embodiments or to all embodiments. Accordingly, the term "some embodiments" is defined as meaning "no embodiment, or one embodiment, or more than one embodiment, or all embodiments."
The terminology and structure employed herein is for describing, teaching and illuminating some embodiments and their specific features and elements and does not limit, restrict or reduce the spirit and scope of the claims or their equivalents.
More specifically, any terms used herein such as but not limited to "includes," "comprises," "has," "consists," and grammatical variants thereof do NOT specify an exact limitation or restriction and certainly do NOT exclude the possible addition of one or more features or elements, unless otherwise stated, and furthermore must NOT be taken to exclude the possible removal of one or more of the listed features and elements, unless otherwise stated with the limiting language "MUST comprise" or "NEEDS TO include."
Whether or not a certain feature or element was limited to being used only once, either way it may still be referred to as "one or more features" or "one or more elements" or "at least one feature" or "at least one element." Furthermore, the use of the terms "one or more" or "at least one" feature or element do NOT preclude there being none of that feature or element, unless otherwise specified by limiting language such as "there NEEDS to be one or more . . . " or "one or more element is REQUIRED."
Unless otherwise defined, all terms, and especially any technical and/or scientific terms, used herein may be taken to have the same meaning as commonly understood by one having an ordinary skill in the art.
It should be noted that the term "user equipment" refers to any electronic devices used by an user such as a mobile device, a desktop, a laptop, personal digital assistant (PDA) or similar devices.
Embodiments of the present disclosure will be described below in detail with reference to the accompanying drawings.
Fig. 2 illustrates a flow diagram depicting a method 200 for maintaining a plurality of networks in a user equipment, in accordance with an embodiment of the present disclosure.
As shown in fig. 2, at step 201, the method 200 comprises detecting if more than one network is available on the user equipment. For example, the user equipment may be able to connect to a plurality of networks such as a mobile data network, a wi-fi network, a Bluetooth, near field communication (NFC) network, etc. In an embodiment, the method 200 may detect if more than one of the plurality of networks is available on the user equipment, for example, if the mobile data network and the wi-fi network, both are available simultaneously on the user equipment.
Thereafter, at step 203, the method 200 comprises determining current throughput of each of the available network(s). In an embodiment, the current throughput may include at least one of a bandwidth, latency and application performance. The current throughput may be determined using any technique known to a person skilled in the art. For example, the bandwidth of the available network may be determined using a Received Signal Strength Indicator (RSSI) value received from the available network. If the RSSI value is greater than a predetermined threshold, then it is considered that an application on the user device may be connected to that network. Similarly, other parameters of the current throughput may be determined using techniques known to a person skilled in the art.
After determining the current throughput of the available network(s), the method 200 may then at step 205, determine current requirement of a first application running on the user equipment based on predetermined parameters. In an embodiment, the current requirement may include at least one of a bandwidth, latency and application performance. In an embodiment, latency may be based on application data consumption stats. For example, a data usage entry for a video streaming app, is created in the application database and this entry is updated time to time for this application. If data receiving rate is lesser than previous observed data rate stats in same situation, the application can be switched to another interface provided another interface can offer desired bandwidth. In an embodiment, the application performance may be impacted by latency and network error rates, if connection drop rate is high on one interface, another available interface is tried. The bandwidth requirement may refer to the bandwidth required to run the application. In an embodiment, the predetermined parameters may comprise at least one of usage history of application, background status of the application, foreground status of the application, data consumption of the application and bandwidth requirement of the application. In other words, the current requirements may be determined based on the predetermined parameters. The predetermined parameters may be stored in an application database and said database may be updated upon detecting a change in any of the predetermined parameters. For example, if bandwidth requirement of one of the applications is changed, then the corresponding data in the database will be updated. Table 1 below shows an example of the application database:
App Id | Foreground UP time | Background Up Time |
Foreground Data |
Background | day | category | |
1 | 12 | 123 | 1234 | 2 | 1 | |
|
2 | 16 | 133 | 12 | 1 | 1 | |
|
1 | 12 | 13 | 1123 | 1 | 2 | |
|
1 | 168 | 1 | 1224 | 0.11 | 5 | |
|
2 | 145 | 12 | 11 | 0.12 | 5 | VOIP |
In table 1, the App Id refers to an ID identifying application for which the data is being stored. The foreground up time refers to time duration for which the application has been running in foreground. The background up time refers to time duration for which the application has been running in background. The foreground data refers to data/bandwidth consumed in running that application in foreground. Similarly, the background data refers to data/bandwidth consumed in running that application in background. Day refers to numbers of days, the application has been used for. The database may define a number of predetermined categories such as bank, finance, game, shopping, VOIP etc. and the column category in the database refers to the category to which the application belongs. In an embodiment, the current requirements of the first application may be determined using the values in table 1.
Thereafter, at step 207, the method 200 comprises connecting the first application to a first network, from each of the available network(s), based on the current requirement of the first application and the current throughput of the first network, if the first network supports the first application. In an exemplary embodiment, let us assume that the bandwidth requirement of the first application is B1, whereas the available bandwidth of the first and second networks are B2 and B3, respectively. If B2>B1, then it means that the first network may support the first application and the first application will be connected to the first network provided that the first application is capable of running on the first network.
However, if the first network does not support the first application and/or current requirement of a second application is less than that of the first network, then the method 200, at step 209, may connect the second application to the first network and the first application to the second network. In this case, B3 shall be greater than B1 in order to support the first application. However, if the current requirement of the second application is not less than that of the first network, then the first application may be connected to the second network and the second application would not be connected to the first network.
In an embodiment, the first network is a Wi-Fi network and the second network is a data network which may include, but not limited to, one of a mobile data network, Bluetooth network, and near field communication (NFC) network.
In a further embodiment of the present application, if at least one application running on the user equipment has been disconnected from the first network, then it is determined if another application shall be connected to the first network based on the bandwidth requirement of the first application and the current throughput of the first network. If the bandwidth requirement of another application is being able to be met by the first network, then another application is connected to the first network.
In a further embodiment of the present application, it is determined whether at least one application is running/executing in background and said application is connected to the first network. Then, the bandwidth requirement for the at least one application is determined. If the bandwidth requirement is less than a predetermined threshold, then the at least one application is disconnected from the first network and is connected to the second network. This way, the application may be switched between different networks automatically based on the bandwidth requirement. In an embodiment, the predetermined threshold is configurable and may be configured by the user or the network provider. For example, the predetermined threshold may be configured based on the data stored in the application database.
In yet another embodiment, if an application running on the user equipment belongs to a predetermined category such as security, banking, personal, and that application is connected to the first network, then the said application may be switched to the second network, in accordance with embodiments as discussed above in reference to fig. 2. This way, the said application may be switched to a more private network and better security may be provided to the user.
If it is determined at step 201, that more than one network is not available, i.e., only one network is available, then it may be determined if the available network is the first network. If yes, then PDN set up is initiated and the first application is connected with the first network. However, if the available network is not the first network, then the first application is connected to the available network.
Fig. 3 illustrates a signal flow diagram for implementing the present disclosure, in accordance with an embodiment of the present application.
An application may send a GetConnection() message to a HttpConnection. After receiving the GetConnection() message, the HttpConnection may send a SendConnectionRequest() message to a Http Engine. After receiving the SendConnectionRequest() message, the Http Engine may send a getInterfaceType() message to an interface management module. After receiving the getInterfaceType() message, the interface management module may send INTERFACE_TYPE to the Http Engine. After receiving the INTERFACE_TYPE, the Http Engine may send a newConnection(INTERFACE_TYPE) message to a connection pool. The connection may perform new socket connection based on the newConnection(INTERFACE_TYPE) message. After performing the new socket connection, the connection pool may send a Connection Complete message to the Http Engine. After receiving the Connection Complete message, the Http Engine may send a Connection Complete message to the HttpConnection.
After receiving the Connection Complete message, the HttpConnection may send a ReadResponse() message to the Http Engine. After receiving the ReadResponse() message the HttpEnging may send a WriteRequestHeader(Secket_id) message to a Http Transport. The Http Transport may write output stream based on the received WriteRequestHeader(Secket_id) message. The Http Transport may send a return message indicating a success or a fail of writing the output stream, to the Http Engine. The Http Engine may send a ReadResponseHeader(Socket_id) message to the Http Transport. The Http Transport may read input stream based on the received ReadResponseHeader(Socket_id) message. The Http Transport may send a Return ResponseHeader message to the Http Engine. After receiving Return ResponseHeader message, the The Http Transport may send a SetTransferStream () message to the HttpTransport. After receiving the SetTransferStream () message, the Http Trasport may send a NewIOStreamRequest () message to an I/O(input/output) stream. After receiving the NewIOStreamRequest () message, the I/O stream may send a Return IOobject message to the Http Transport. After receiving the Return IOobject message, the Http transport may send a Return IOobject message to the Http Engine. After receiving the Return IOobject message, the Http Engine may send a Return response message to the HttpConnection. After receiving the Return response message, the Http Engine may send a Return connection info message to the application. After receiving the Return connection info message, the application may perform packet read/write on the I/O stream.
Fig. 4 illustrates an exemplary environment depicting the implementation of the present disclosure, in accordance with an embodiment of the present application. As shown in fig. 4, it is determined if both the mobile data and Wi-Fi network are available at the user equipment. If not, then the application is connected to the only available network. If yes, then it is determined if the application belongs to a predetermined category (security, banking, personal). If the application belongs to a predetermined category, then the application is connected to the mobile data network (i.e., a preferred network for such predetermined category), if it is connected to the Wi-Fi network. If the application does not belong to the predetermined category, then the application is connected to the Wi-Fi network.
Now, let us assume that an application A1 is connected to Wi-Fi network and another application A2 is to be connected to Wi-Fi or mobile data network. Now, current data usage (A) and previous data usage (B) of currently active application A1 are determined. If A>B, then current data usage (C) of a new application A2 and available bandwidth (D) of wi-fi are determined. If D>C, then A2 is connected to wi-fi. IF A<B or D<C, then the application which has highest bandwidth requirement is switched to mobile data network. If this switch is not successful, then another application may be switched to the mobile data network. This way, the available resources i.e., different networks may be efficiently utilized based on requirement and status of the applications.
In another example, let us consider that the user is using Bluetooth connectivity to connect his/her phone to Bluetooth Speaker and listening music, when a Personal Area Network (PAN) session is ongoing. Now the user wants to send a file to another user in vicinity, then, the user equipment may use the disclosed techniques to figure out best way to send this file to other user using other medium such as wi-fi Direct. It should be noted that PAN network is just an exemplary network used by the user. The user may also be using another network such as Wide Area Network (WAN), Local Area Network (LAN) etc.
Fig. 5 illustrates a block diagram of an apparatus 500 for maintaining a plurality of networks in a user equipment, in accordance with an embodiment of the present disclosure. The apparatus 500 may comprise an interface management unit 501 which is configured to detect if more than one network is available on the user equipment, determine current throughput of the available network and determine current requirement of a first application running on the user equipment based on predetermined parameters, wherein the current requirement includes at least one of a bandwidth, latency and application performance. The apparatus 500 may further comprise a connection manager 503 connected to the interface management unit 501 and is configured to connect the first application to a first network based on the current requirement of the first application and the current throughput of the first network, if the first network supports the first application. The connection manager 503 is further configured to connect a second application to the first network and the first application to a second network, upon determining a condition based on the predetermined parameters at least one of: the first network does not support the first application and the second application has lesser current requirement than the first application. The apparatus 500 may also comprise a buffer manager 505 which stores the data related to the available networks and the applications. The said data may be used to determine if the application shall be switched to another network. In an embodiment, the apparatus 500 may be configured to perform the method as discussed in respect to figs. 2-4.
In an exemplary embodiment, the various units 501, 503 may be a single processing unit or a number of units, all of which could include multiple computing units. The units 501-505 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the units 501-505 may be configured to fetch and execute computer-readable instructions and data stored in a memory. The units 501-505 may include one or a plurality of processors. At this time, one or a plurality of processors may be a general-purpose processor, such as a central processing unit (CPU), an application processor (AP), or the like, a graphics-only processing unit such as a graphics processing unit (GPU), a visual processing unit (VPU), and/or an AI-dedicated processor such as a neural processing unit (NPU). One or a plurality of processors control the processing of the input data in accordance with a predefined operating rule or artificial intelligence (AI) model stored in the non-volatile memory and the volatile memory. The predefined operating rule or artificial intelligence model is provided through training or learning.
Further, the units 501-505 can be implemented in hardware, instructions executed by a processing unit, or by a combination thereof. The processing unit can comprise a computer, a processor, a state machine, a logic array, or any other suitable devices capable of processing instructions. The processing unit can be a general-purpose processor which executes instructions to cause the general-purpose processor to perform the required tasks or, the processing unit can be dedicated to performing the required functions. In another embodiment of the present disclosure, the units 501-505 may be machine-readable instructions (software) which, when executed by a processor/processing unit, perform any of the described functionalities.
Figs. 6-7 illustrate comparison between the present disclosure and the existing art, in accordance with an embodiment of the present disclosure. As shown in fig. 7, a user has connected a WhatsUp Voice call over a wi-fi network which is connected to various applications and is overloaded. On the other hand, no application is connected to mobile network of user device. Due to this, the user experiences bandwidth issues on his WhatsUp Voice call. However, with the use of the present application, the user device will connect with both interface via Wi-Fi and mobile data. The user device will assign interface based on application data uses. For example, few applications such as WhatsUp Voice call, gmail etc. may be switched to mobile data, Thus, the user device utilizes both interfaces effectively. As evident from fig. 6, the present application provide solution to poor WhatsUp Voice call and voice Lagging problem. Similarly, fig. 7 also illustrates comparison between the present disclosure and the existing art, in accordance with an embodiment of the present disclosure.
Hence, the disclosed techniques provide best utilization of available networks while maintaining high throughput with less latency.
While specific language has been used to describe the disclosure, any limitations arising on account of the same are not intended. As would be apparent to a person in the art, various working modifications may be made to the method in order to implement the inventive concept as taught herein.
The drawings and the forgoing description give examples of embodiments. Those skilled in the art will appreciate that one or more of the described elements may well be combined into a single functional element. Alternatively, certain elements may be split into multiple functional elements. Elements from one embodiment may be added to another embodiment. For example, orders of processes described herein may be changed and are not limited to the manner described herein.
Moreover, the actions of any flow diagram need not be implemented in the order shown; nor do all of the acts necessarily need to be performed. Also, those acts that are not dependent on other acts may be performed in parallel with the other acts. The scope of embodiments is by no means limited by these specific examples. Numerous variations, whether explicitly given in the specification or not, such as differences in structure, dimension, and use of material, are possible. The scope of embodiments is at least as broad as given by the following claims.
Benefits, other advantages, and solutions to problems have been described above with regard to specific embodiments. However, the benefits, advantages, solutions to problems, and any component(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential feature or component of any or all the claims.
Claims (13)
- A method (200) for managing a plurality of networks by a user equipment, comprising:detecting (201) a plurality of networks available on the user equipment;determining (203) current throughput of each of the detected plurality of networks;determining (205) requirement of a first application running on the user equipment based on predetermined parameters, wherein the requirement includes at least one of a bandwidth, latency and application performance;connecting (207) the first application to a first network among the plurality of the detected networks based on the requirement of the first application and the current throughput of the first network, if the first network supports the first application; andconnecting (209) a second application to the first network and the first application to a second network of the detected plurality of networks, upon determining that the first network does not support the first application, or that the second application has lesser requirement than the first application.
- The method (200) of claim 1, further comprising:connecting the first application to the second network, upon determining that the second application does not have lesser current requirement than the first application, if the first network does not support the first application.
- The method (200) of claim 1, wherein the predetermined parameters are at least one of usage history of application, background status of the first application, foreground status of the first application, data consumption of the first application and bandwidth requirement of the first application.
- The method (200) of claim 1, further comprising:determining whether the first network is available on the user equipment, upon determining that only one network is available on the user equipment;initiating PDN set up to connect the first application with the first network, upon determining that the first network is available; andconnecting the first application to an available network, upon determining that the first network is not available.
- The method (200) of claim 1, further comprising:determining that at least one application is disconnected from the first network;determining another application be connected to the first network based on bandwidth requirement of the first application and the current throughput of the first network; andconnecting the determined another application to the first network.
- The method (200) of claim 1, further comprising:determining that at least one application is running or executing in background and is connected to the first network;determining that bandwidth requirement for the at least one application is less than a predetermined threshold;connecting the least one application to the second network upon disconnecting from the first network.
- The method (200) of claim 1, further comprising:determining that at least one application running on the user equipment relates to a predetermined category; andconnecting the at least one application with the second network based upon determining that the at least one application running on the user equipment relates to the predetermined category, if the at least one application is connected to the first network.
- The method (200) of claim 7, wherein the predetermined category is at least one of banking and security related application.
- The method (200) of claim 1, wherein the first network is a Wi-Fi network and the second network is a data network.
- The method (200) of claim 9, wherein the data network includes at least one of mobile data, Bluetooth, near field communication (NFC) network.
- The method (200) of claim 1, wherein the current throughput includes at least one of a bandwidth, latency and application performance.
- An apparatus of a user equipment for managing a plurality of networks, the apparatus comprising:a memory; andat least one processor coupled to the memory, where in the at least one processor is configured to execute operations according to a method in one of claims 1 to 11.
- A non-transitory computer readable storage medium storing instructions which, when executed by at least one processor of a user equipment, cause the user equipment to execute operations according to a method in one of claims 1 to 11.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN202211003627 | 2022-01-21 | ||
IN202211003627 | 2022-01-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023140482A1 true WO2023140482A1 (en) | 2023-07-27 |
Family
ID=87348905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2022/018648 WO2023140482A1 (en) | 2022-01-21 | 2022-11-23 | Method and apparatus for managing a plurality of network in user equipment |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2023140482A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009260540A (en) * | 2008-04-15 | 2009-11-05 | Hitachi Ltd | Communicating system, communications terminal, and communication band control method |
US20110199989A1 (en) * | 2009-08-18 | 2011-08-18 | Qualcomm Incorporated | Method and apparatus for mapping applications to radios in a wireless communication device |
US20150358757A1 (en) * | 2014-06-10 | 2015-12-10 | Microsoft Corporation | Network selection for a given application or context |
JP2016165055A (en) * | 2015-03-06 | 2016-09-08 | 日本電気株式会社 | Communication terminal, communication method and program |
WO2018200438A1 (en) * | 2017-04-26 | 2018-11-01 | Veniam, Inc. | Fast discovery, service-driven, and context-based connectivity for networks of autonomous vehicles |
-
2022
- 2022-11-23 WO PCT/KR2022/018648 patent/WO2023140482A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009260540A (en) * | 2008-04-15 | 2009-11-05 | Hitachi Ltd | Communicating system, communications terminal, and communication band control method |
US20110199989A1 (en) * | 2009-08-18 | 2011-08-18 | Qualcomm Incorporated | Method and apparatus for mapping applications to radios in a wireless communication device |
US20150358757A1 (en) * | 2014-06-10 | 2015-12-10 | Microsoft Corporation | Network selection for a given application or context |
JP2016165055A (en) * | 2015-03-06 | 2016-09-08 | 日本電気株式会社 | Communication terminal, communication method and program |
WO2018200438A1 (en) * | 2017-04-26 | 2018-11-01 | Veniam, Inc. | Fast discovery, service-driven, and context-based connectivity for networks of autonomous vehicles |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11467646B2 (en) | Context data sharing | |
US7877091B2 (en) | Method and system for executing a container managed application on a processing device | |
WO2014079228A1 (en) | Method for automatic cleaning background application of electronic device, electronic device and storage medium | |
CN103945000B (en) | A kind of load-balancing method and load equalizer | |
CN114385304B (en) | Method for calling Linux screenshot tool by android application | |
CN110933075B (en) | Service calling method and device, electronic equipment and storage medium | |
CN110012095A (en) | A kind of system and method for mobile intelligent terminal connection cloud desktop server | |
CN105898085A (en) | Harassment communication account identification method and device | |
CN101895531A (en) | Client equipment, multimedia data unloading system and unloading method | |
US11720409B2 (en) | Resource processing method and apparatus, and storage medium | |
WO2023140482A1 (en) | Method and apparatus for managing a plurality of network in user equipment | |
CN102184076A (en) | Method and device for controlling input of mobile terminal specific to JAVA program | |
WO2018058730A1 (en) | Data flow control method, apparatus and terminal | |
CN114996186B (en) | Docking station video output method, device, terminal and computer readable storage medium | |
CN116244231A (en) | Data transmission method, device and system, electronic equipment and storage medium | |
JP2006277204A (en) | Portable communication terminal device | |
CN113079528B (en) | Network exception handling method, device and computer readable storage medium | |
CN113115400B (en) | Communication method and device | |
CN114546171A (en) | Data distribution method, data distribution device, storage medium and electronic equipment | |
CN106998386A (en) | Method and device for adding contact way and user terminal | |
WO2020080843A1 (en) | Method and apparatus for controlling packet flow | |
CN112383904A (en) | Pair-free quick peripheral calling method and device | |
CN110960858A (en) | Game resource processing method, device, equipment and storage medium | |
CN112312194B (en) | Screen recording data processing method, device and computer readable storage medium | |
CN101600211B (en) | Wireless communication system for shareable system resource and relative method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22922340 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |