Patent ID: 12192840

DETAILED DESCRIPTION

FIGS.1A through8, discussed below, and the various embodiments used to describe the principles of the present disclosure in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the disclosure. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably arranged system or device.

It should be appreciated by those skilled in the art that any block diagrams herein represent conceptual views of illustrative systems embodying the principles of the present subject matter. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable medium and executed by a computer or processor, whether such computer or processor is explicitly shown.

In the present document, the word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment or implementation of the present subject matter described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments.

While the disclosure is susceptible to various modifications and alternative forms, specific embodiment thereof has been shown by way of example in the drawings and will be described in detail below. It should be understood, however that it is not intended to limit the disclosure to the specific forms disclosed, but on the contrary, the disclosure is to cover all modifications, equivalents, and alternative falling within the scope of the disclosure.

The terms “comprises,” “comprising,” “includes,” or any other variations thereof, are intended to cover a non-exclusive inclusion, such that a setup, device, or method that comprises a list of components or steps does not include only those components or steps but may include other components or steps not expressly listed or inherent to such setup or device or method. In other words, one or more elements in a system or apparatus proceeded by “comprises . . . a” does not, without more constraints, preclude the existence of other elements or additional elements in the system or method.

The terms “an embodiment,” “embodiment.” “embodiments,” “the embodiment,” “the embodiments,” “one or more embodiments,” “some embodiments,” and “one embodiment” mean “one or more (but not all) embodiments of the disclosure” unless expressly specified otherwise.

The terms “including,” “comprising,” “having” and variations thereof mean “including but not limited to,” unless expressly specified otherwise. The enumerated listing of items does not imply that any or all the items are mutually exclusive, unless expressly specified otherwise. The terms “a,” “an” and “the” mean “one or more,” unless expressly specified otherwise.

A description of an embodiment with several components in communication with each other does not imply that all such components are required. On the contrary, a variety of optional components are described to illustrate the wide variety of possible embodiments of the disclosure.

When a single device or article is described herein, it will be clear that more than one device/article (whether the device/article cooperate) may be used in place of a single device/article. Similarly, where more than one device or article is described herein (whether the device and article cooperate), it will be clear that a single device/article may be used in place of the more than one device or article or a different number of devices/articles may be used instead of the shown number of devices or programs. The functionality and/or the features of a device may be alternatively embodied by one or more other devices which are not explicitly described as having such functionality/features. Thus, other embodiments of the disclosure need not include the device itself.

Finally, the language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the disclosure be limited not by this detailed description, but rather by any claims that issue on an application based here on. Accordingly, the embodiments of the present disclosure are intended to be illustrative, but not limiting, of the scope of the disclosure, which is set forth in the following claims.

The present disclosure relates to a method and a network handover system for handling a data session in a user equipment (UE). Initially, the network handover system initiates a data session of at least one application from a plurality of applications with a first communication interface using a first socket of the UE having a first socket file descriptor (SOCKFD) for the data session. Further, the network handover system detects a deterioration in a network connection of the first communication interface. In an embodiment, when the deterioration in the network connection is detected, the network handover system identifies a second communication interface. Subsequently, the network handover system establishes a second socket having a second SOCKFD associated with the second communication interface and migrates the data session from the first communication interface to the second communication interface by mapping the first SOCKFD corresponding to the first socket to the second SOCKFD corresponding to the second socket Thereafter, the data session is continued and/or carried out on the second network communication interface using the second socket, thereby handling the data session on the UE.

In the following detailed description of the embodiments of the disclosure, reference is made to the accompanying drawings that form a part hereof, and in which are shown by way of illustration specific embodiments in which the disclosure may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the disclosure, and it is to be understood that other embodiments may be utilized and that changes may be made without departing from the scope of the present disclosure. The following description is, therefore, not to be taken in a limiting sense.

FIGS.1A and1Billustrate environment for handling a data session in a user equipment (UE)101in accordance with some embodiments of the present disclosure.

As shown inFIG.1A, the environment100may include a User Equipment (UE)101and a destination server111. In an embodiment, the UE101may be a computing device such as, without limitation, a smartphone, a laptop, a desktop computer or a similar computing device. In an embodiment, the UE101may be configured with the network handover system103for ensuring a seamless network connectivity to the UE101. Further, the UE101may comprise a first socket105and a second socket113, which are respectively interface with a first communication interface107and a second communication interface. The UE101may connect to the destination server111using at least one of the first socket105and the first communication interface107or the second socket113and the second communication interface.

In an embodiment, the first socket105and the second socket113are the network sockets that enable the UE101to connect to an external entity, such as the destination server111, via a selected communication network. As an example, the first communication interface107may be Wi-Fi. Similarly, the second communication interface115may be long term evolution (LTE) cellular network interface. As another example, the first communication interface107may be LTE cellular network interface and the second communication interface115may be Wi-Fi. The first communication interface107and the second communication interface115may be different communication networks. The first communication network107and the second communication network115may be at least one of 2G, 3G, 4G, 5G, 6G, or a non-3GPP network.

In an embodiment, the network handover system103may be configured for effectively handling a data session109in the UE101. As an example, the data session109may include, without limiting to, a call service, a chat/messaging service, a live content streaming or an application running in the UE101. Suppose the data session109is being carried out between the UE101and the destination server111. Further, suppose that the default network interface for establishing the data session109is the first communication interface107accessed via the first socket105of the UE101, as shown inFIG.1A. Here, when the data session109is established through the first communication interface107, the second socket113and the second communication interface115may be maintained in an “inactive” state. In other words, the second socket113and the second communication interface115are operated as a fallback configuration to the first socket and the first communication interface.

As shown inFIG.1B, in an embodiment, the network handover system103may continuously monitor the data session109through the first communication interface107connecting the UE101and the destination server111for detect any abnormal and/or deteriorating network condition117in the first communication interface107.

In an embodiment, when a deteriorating network condition117is detected in the first communication interface107, the network handover system103may instantly map configuration details of the first communication interface107to the second network communication interface115to seamlessly switch/handover the data session109from the first communication interface107to the second communication interface115. In an embodiment, mapping the configuration details may include mapping a first socket File Descriptor (SOCKFD) corresponding to the first socket105to a second SOCKFD corresponding to the second socket113. Additionally, information stored in a socket buffer associated with the first communication interface107may be replicated on the second communication interface115to avoid any interruption to the data session109.

In an embodiment, handover of the data session109between the first communication interface107and the second communication interface115may be performed on an abstract network communication layer of the data session using communication protocols such as, without limiting to, user datagram protocol (UDP), transmission control protocol (TCP) and cross-layer quick UDP internet connections (C-QUIC) protocol. Handing over the data session109using the above communication protocols is explained in detail in the following sections of the instant disclosure.

FIGS.2A and2Billustrate a block diagram of a network handover system103in accordance with some embodiments of the present disclosure. Hereinafter the detailed block diagram of a network handover system103according to some embodiments of the present disclosure with reference toFIGS.2A and2B.

In an embodiment, the network handover system103may include an I/O interface201, a processor203, a memory205, a classifier module207, an event blocker module213, a layer 4 network handover (NH4) module215and a switchboard module217.

In an embodiment, the I/O interface201may include one or more input/output interfaces of the network handover system103that enable the network handover system103to interface with the first socket105and the second socket113and also monitor the data session109. The processor203may be configured to perform each function of the network handover system103in accordance with various methods and embodiments of the present disclosure. The memory205may be communicatively coupled to the processor203and may store data and modules required for performing various operations of the processor203. In an implementation, the network handover system103may have dedicated I/O interface201, processor203and memory205. In an alternative implementation, the network handover system103may use the I/O interface, processor/control unit and memory/storage space of the UE101in which the network handover system103is configured.

In an embodiment, the classifier module207may be configured for classifying various applications running on the UE101into different classes/categories based on runtime requirements and/or network connectivity information associated with the applications. In an embodiment, the classifier module207may comprise two sub-modules, namely, a whitelist classifier209and a protocol classifier211.

In an embodiment, the whitelist classifier209may be configured for classifying applications into a “whitelist” and a “blacklist”. In other words, the whitelist classifier209helps in deciding whether an application needs to be controlled or not. In an embodiment, when an application is blacklisted, the application may be allowed to use TCP or UDP. That is, the blacklisted applications may not use the multipath TCP (MPTCP) since kernel of the UE101does not support MPTCP as a default configuration. In an embodiment, after classifying the applications into “whitelist” and “blacklist”, the whitelist classifier209may communicate the classified list of applications to the NH4 module (layer 4 NH4 module)215. The classifier module207may classify a plurality of applications running on the UE101as at least one of handover-sensitive applications (i.e., whitelist applications) and handover insensitive applications (i.e., blacklist applications). The classification of the plurality applications running on the UE101as at least one of handover-sensitive applications and handover insensitive applications may be done based on at least one of nature of application, latency requirement and communication protocol used. The examples for handover sensitive applications may be, but not limited to, gaming applications, latency sensitive applications, UDP-based applications, vehicle-to-everything (V2X) related applications and applications having real-time updates. The examples handover insensitive application may be, but not limited to, messaging application, browsing applications, etc.

In an embodiment, the protocol classifier211may be configured for checking or determining the communication protocol requirements associated with each of the whitelisted applications and forward or notify each of the whitelisted applications to the NH4 module215. As an example, if a whitelisted application is determined to operate over UDP, a data session for the whitelisted application may be established over 0UDP. Similarly, if the whitelisted application is determined to operate over TCP or quick UDP internet connections (QUIC), then the data session for the whitelisted application may be established over seamless TCP (S-TCP) or cross-layer QUIC (CQUIC) respectively. In an embodiment, the protocols 0UDP, S-TCP and CQUIC may be configured on the NH4 module215of the network handover system103. In brief, the protocol classifier211of the classifier module207may determine a communication protocol corresponding to the handover-sensitive applications and may notify the determined communication protocol to the NH4 module. The communication protocol may be at least one of UDP, TCP and C-QUIC protocol.

In an embodiment, the event blocker module213may be configured for controlling notifications from the system framework of the UE101to the whitelisted applications. In other words, the event blocker module213limits the number of system-generated notifications when the whitelisted application is being actively run on the UE101. By default, a connectivity manager (CM) in the UE101android framework may indicate the change in the connectivity (i.e., activities such as connecting, disconnecting or modification) to the applications via broadcast mechanism. However, if an application is looking for this connectivity broadcast event, the application may decide to provide pop-up or even try to reconnect with the modified interface. Further, if the applications, which are whitelisted, are reacting to this event, then, irrespective of the handover mechanism and the deployed network abstractions, the user might be notified with the network changes, which affects the user experience. Therefore, the event blocker module213is configured on top of the CM to restrict the broadcast of events to the whitelisted applications. This, in turn, helps the network handover system103to work smoothly and abstract only required events to the user. The event blocker module213may perform at least one of block sending of at least one notification from a plurality of notifications to a connection tracker module2151regarding the migration of the data session if the data session is for the handover sensitive application, and sending of at least one notification from a plurality of notifications to the connection tracker module2151regarding the migration of the data session if the data session is for the handover insensitive application. The at least one notification may indicate at least one of a disconnection with the first communication interface107, new connection establishment with the second communication interface115, socket change and signal strength deterioration. The at least of one notification of a plurality of notifications may be sent by one of the network, the first communication interface107, the second communication interface115, or lower layers of the UE101. The lower layers of the UE101may comprise service data adaptation protocol (SDAP), packet data convergence protocol (PDCP), radio link control (RLC), medium access control (MAC), and physical layer (PHY).

In an embodiment, the switchboard module217may be configured for detecting a deterioration in a network connection of the first communication interface107and for identifying a second communication interface115. The detection of the deterioration in the network connection may be based on at least one of low data throughput, low data rate, lost signal, frame loss, high jitter, and broken connectivity between the UE101and the destination server111. Here, the term “jitter” may refer to variance in the network connection i.e., pit and fall in network connection. For example, average speed may be 100 Mbps but suppose the speed is 1 Mbps for long time in between during the network connection, then it is considered to be high jitter network.

In an embodiment, the NH4 module215may be the core module of the network handover system103. The NH4 module215hosts the communication protocols like 0UDP, S-TCP and the CQUIC. Further, the NH4 module215uses one of the above communication protocols for establishing a data session109for the whitelisted application based on the application's preference on the communication protocol. Additionally, the NH4 module215may be configured with other network frameworks such as Netfiler® and Iptables® and program libraries such as “C” standard library (LIBC). In an embodiment, the NH4 module215may comprise a communication tracker module2151and a migrator module2153.

In an embodiment, 0UDP protocol ensures that the stateless properties of the UDP are leveraged while establishing a data session109for the whitelisted application. Similarly, S-TCP ensures seamless TCP handover. S-TCP may make use of an abstraction layer over the user application layer during handover of the data session. The abstraction network communication layer may be a software layer that logically resides between application layer and transport layer of the communication interface. The abstraction layer may manage the establishment of connection and data activities (i.e., addition/deletion/modification) of applications (APPs). The abstraction network communication layer may, also, be referred as an abstraction layer. Further, CQUIC makes use of a unique connection ID (CID) to uniquely identify the connection. In the case of CQUIC, any changes in the internet protocol (IP) number does not affect QUIC configuration. That is, CQUIC serves as a cross layer technique to handover the QUIC improving the latency. The connection tracker module2151of the NH4 module215may initiate a data session of at least one application from a plurality of applications with the first communication interface107using the first socket105of the UE101having a first socket file descriptor (SOCKFD) for the data session. When the switchboard module217identifies the second communication interface115due to detection of deterioration in a network connection of the first communication interface107, the NH4 module215may establish the second socket113having a second SOCKFD associated with the second communication interface115. In the subsequent step, the migrator module2153of the NH4 module215may migrate the data session from the first communication interface107to the second communication interface115by mapping the first SOCKFD corresponding to the first socket105to the second SOCKFD corresponding to the second socket113. The mapping of the first SOCKFD of the first socket105to the second SOCKFD of the second socket113may be on an abstract network communication layer for the data session. The mapping of the first SOCKFD corresponding to the first socket105to the second SOCKFD corresponding to the second socket113may be based on the communication protocol determined by the classifier module207corresponding to the handover-sensitive applications. One or more applications, running on the UE101and using the data session, may not be aware of the migration of the data session. The migrator module2153of the NH4 module215may migrate the data session back to the first communication interface107upon detecting a deterioration in a network connection in the second communication interface115.

In detail, the initiation of a data session of at least one application from a plurality of applications by the NH4 module215may include following steps. The connection tracker module2151may receive a socket establishment request from the at least one application from among a plurality of handover-sensitive application on the UE101. In the next step, the connection tracker module2151may request a network by the first communication interface107for a plurality of network resources based on the received socket establishment request. In subsequent step, the NH4 module215may establish a socket having the first SOCKFD on receiving the requested network resources. The connection tracker module2151may initiate the data session on the requested network resources by transmitting a plurality of data packets via the first socket105having a first SOCKFD on the first communication interface107to the network.

In detail, the migration of the data session from the first communication interface107to the second communication interface115by mapping the first SOCKFD corresponding to the first socket105to the second SOCKFD corresponding to the second socket113by the NH4 module215may include following steps. The connection tracker module2151may detect the first socket105being used by a handover-sensitive application and may migrate the first socket105from the first communication interface107to the second communication interface115. The NH4 module215may detect the data session is for one of the handover-sensitive application and the handover insensitive application.

In an embodiment, when the migration of the data session is using UDP, the NH4 module215may receive a notification from the protocol classifier211indicating communication protocol to be UDP. In the next step, the NH4 module215may determine application data pending for transmission on the first communication interface107and may fetch the application data from a socket buffer associated with the first socket105of the UE101and clone header information of the application data. In subsequent step, the NH4 module215may map the cloned header information to the second socket113of the UE101for continuing the data session through the second communication interface115.

In an embodiment, when the migration of the data session is using TCP, the NH4 module215may receive a notification from the protocol classifier211indicating communication protocol to be TCP. In the next step, the NH4 module215may create an abstract network communication layer corresponding to the first socket105of the UE101. In subsequent step, the NH4 module215may map SOCKFD associated with the first socket105to a pseudo socket corresponding to the abstract network communication layer and may continue the data session through the pseudo socket file descriptor.

In an embodiment, the NH4 module215may be configured for managing network services with the network sockets and the communication interfaces of the UE101. In an embodiment, the NH4 module215may include network manager frameworks such as a network connectivity manager, a telephony service, a Wi-Fi manager and a radio interface layer.

In an embodiment, the network handover system103may be set-up in communication with the kernel of the UE101while managing the data session on the UE101. In an embodiment, in addition to having control over all the hardware and software components of the UE101, the kernel space219of the UE101may allow the network handover system103to access the communication protocols like TCP, TCP/IP stack221and the UDP223while handing over data sessions for the whitelisted applications.

In an embodiment, the handover operation performed using the network handover system103may be different from the handover on MPTCP in the following ways. In an embodiment, network handover system103is a client-only solution. That is, the network handover system does not require any server-side modifications to initiate the handover. As a result, the network handover system103only requires simpler changes in the user-space only. Whereas handover over MPTCP requires kernel-level changes and hence, takes a lot of time. In other words, the provided network handover is a light-weight approach when compared to that of the MPTCP. Moreover, the network handover system103not only enhances TCP, but also enhances UDP and other protocols like QUIC. Also, the provided handover introduces a transient layer, where LTE is brought up and/or engaged only when the Wi-Fi is predicted to be weak. This saves power consumption on the UE101. On the other hand, in the existing implementation of the MPTCP, both LTE and Wi-Fi are engaged and running always.

In an embodiment, the network handover system103also uses the event blocker module213to effectively block the events from connectivity manager to the application. On the other hand, MPTCP lacks this framework component, and may react to connectivity events while the application layer is still looking for a handover. Thus, the provided network handover system103is more effective and optimized than the handover using MPTCP.

FIG.3illustrates a flowchart of a method for a network handover using user datagram protocol (UDP) in accordance with some embodiments of the present disclosure.

In an embodiment, step301indicates start of a data session109between the UE101and the destination server111through a first channel consisting the first socket105and the first communication interface107. During the data session109, the network handover system103continuously monitors the data session109and wait for a “handover signal”, as shown in step303. The “handover signal” may be generated when the UE101experiences a deteriorating network condition117during the data session109. When a “handover signal” is received, the network handover system103, at step305, checks whether there are any data packets pending for transmission in the data session109. For example, if handover signal received, the 0UDP checks for previous data queued. Generally, the handover may happen when: a) the application has sent the packet out and b) application has sent the packets to the kernel, but the kernel has not placed those packets to the external network. So, at step305, the network handover system103checks whether the kernel still holds some packets to be sent to the external server.

In an embodiment, if there are pending data packets, then, at step307, the network handover system103fetches the pending data packets from a socket buffer associated with the first socket105and copies them on to the socket buffer or a memory space associated with a second socket113. However, if there are no pending packets, then the network handover system103may simply create a UDP socket buffer with “0” Bytes to be used for the rest of the data session, as indicated in step309. Thereafter, at step311, the UDP header may be copied and rehashed for using in the re-established data session. Once the UDP header and the socket buffer are ready, the network handover system103, at step313, checks whether the destination (i.e., the destination server111) is still reachable for completing the data session.

Sometimes, due to firewall, the destination may not be reachable. So, the network handover system103checks whether the destination is still reachable for completing the data session. For example, LTE packet may reach a server A. The UDP header changes and checks if a packet may reach the server A when the network handover system103move from LTE to Wi-Fi.

If the destination is reachable, the network handover system103may map the file descriptor of the application to a new file descriptor corresponding to the UDP socket and continue the data session, as indicated in step315. However, if the destination is not reachable, then the handover process may be terminated, as indicated in step317. The aforesaid process is repeated each time the UE101experiences a deteriorating network condition117during a data session109.

FIGS.4A and4Billustrate a network handover using user datagram protocol (UDP) in accordance with some embodiments of the present disclosure.

FIG.4Aillustrates a data session109between the UE101and the destination server111using the first socket “56” and the first communication interface107. Here, the first communication interface107may be Wi-Fi, such that the UE101connects to the destination server111over Wi-Fi. At this instance, the second socket “61” and the second network communication interface115may be configured and available but placed in a “wait” state. That is, the second socket “61” and the second network communication interface115takeover the data session only when there is a deteriorating network condition117on the first communication interface107.

FIG.4Billustrates the scenario in which there is a deteriorating network condition117on first communication interface107and the data session between the UE101and the destination server111has been interrupted. As an example, the deteriorating network condition117may include without limiting to, low data throughput, low data rate, lost signal or broken connectivity between the UE101and the destination server111. Further, as indicated inFIG.4B, the deteriorating network condition117may arise at the first socket “56,” an interface between the first socket “56” and the first communication interface107or on the communication channel connecting to the destination server111.

In an embodiment, the destination server111may attempt to push one or more data packets to the UE101even in the deteriorated network condition, until the destination server111becomes aware of the deteriorating network condition117on the first communication interface107. At this point, the network handover system103detects the deteriorating network condition117and transmits a 0-UDP handover message to the destination server111, indicating the destination server111that a deteriorating network condition117has occurred on the first communication interface107. Simultaneously, the network handover system103may map and/or replicate the pending packets and socket buffer information related to the first communication interface107on the second socket “61” and the second communication interface115and handovers the data session to the second communication interface115. By doing so, the application running on the UE101is unaware of the socket migrations. Thereafter, the data session109is re-established over the UDP-driven second communication interface115and the second socket “61.” Here, the destination server111continues to participate in the data session109as if the destination server is communicating with the UE101over the first communication interface107.

That is, the network handover system103seamlessly hands over the data session from the first communication interface107to the second communication interface115. Here, it may be noted that 0-UDP is a client-only solution that detects the need for handover and intelligently handovers the server connection without any changes in the server. Suppose the application running on the UE101opens a file descriptor “X.” During handover, “X” may be first mapped to a default file descriptor, say “Y” Subsequently, when a new connection is opened using the second communication interface115, if all the requisite conditions are met, a new file descriptor “Z” may be created and mapped to the original application descriptor “X.” That is, X→Z. Here, the original file descriptor “X” is not aware of “Y” and “Z.” Hence, the handover may be seamless.

In an embodiment, the data session may be handed over back to the first communication interface107upon determining a deteriorating network condition117on the second communication interface115. That is, the network handover system103may dynamically decide which of the available communication interfaces (i.e., either first or second) is best suited for carrying out the data session.

FIGS.5A and5Billustrate a network handover using transmission control protocol (TCP) in accordance with some embodiments of the present disclosure.

In an embodiment, the S-TCP protocol may create an abstraction layer for carrying out the handover. Further, during the handover, the file descriptor of the application may be mapped to the abstraction layer. The abstraction layer may be always up and running, and the application would be unaware of the connectivity changes (i.e., the handover) and failures in the communication channel. In an embodiment, the S-TCP may open multiple sockets and map file descriptors of one of the sockets to the file descriptor of the application. The socket mapping may be dynamic and changed anytime during the data session as well. Essentially, the S-TCP may identify the best interface based on the network parameters and use the best interface for the handover at any point of time. This ensures that the application is enriched with seamless connectivity experience even during weak network conditions. The network parameters may include, but not limited to, received signal strength indicator (RSSI), reference signal received power/quality (RSRP/RSPQ), signal to interference noise ratio (SINR), current data rate, peak data rate, current latency, probability of packet loss and round-trip-time (RTT).

As indicated inFIG.5A, suppose, the first communication interface107be the default communication interface for the UE101and the data session between the UE101and the destination server111may be established on the first communication interface107. At this point, the application socket “48” of the application running on the UE101may be mapped to the first socket “56” associated with the first communication interface107. At the same time, the second socket “61” and the second communication interface may be set-up and put in the “wait” state.

Further, as indicated in theFIG.5B, suppose the strength of the Wi-Fi signal on the first communication interface107gets weaker during the data session109, resulting in an increase in the latency. At this point, the network handover system103detects a deteriorating network condition117on the first communication interface107and may dynamically decide to handover the data session to the second communication interface115. Consequently, the network handover system103in the UE101may map the application socket “48” to the second socket “61” through the abstraction layer. In other words, the abstraction layer maps to the LTE socket on the UE101. Once the second communication interface is up and running, the data session109continues on the second communication interface. In addition, the data session may be returned to the first communication interface107when there is a deteriorating network condition117on the second communication interface115. The application running on the UE101and the destination server111are unaware of the handover and continue to participate in the data session seamlessly.

The series of actions that take place during the handover are illustrated in detail in the sequence diagram ofFIG.6. In an embodiment, the network handover system103is an intermediary between the application600running on the UE101and the network interfaces (i.e., the first communication interface107and the second communication interface115). First, the application600queries the DNS to the DNS server113. In steps591and592, the application600inquires of the DNS server113address information (i.e., IP address) via the network handover system103(i.e., the NH4 module). In step593, the DNS server113returns list of IP addresses. In steps594&595, the network handover system103stores the server details and returns the list to the application600. The application600tries to establish the connection with the end server using CONNECT system call (FD48). The network handover system103taps the CONNECT system call and check if the IP address (DESTINATION) is from the list of previously saved address.

Step601indicated start and/or running instance of the application600, where the application600has to connect with the destination server111. Accordingly, at step601, the application600transmits a “connect” request to the network handover system103. At step603, the network handover system103fetches details of the connection requested by the application600and transmits the connection requested by the application to the default first communication interface107, which is Wi-Fi. At step605, the first communication interface107connects to the destination server111. The destination server111, upon receiving the “connect” request, validates the request and returns a “success” message to the first communication interface107after a successful validation of the “connect” request at step607. Further, at step609, the first communication interface107forwards the “success” signal to the network handover system103. At this point, the first communication interface107also notifies a socket identifier of the first socket (i.e.,56) to the network handover system103, which in turn, maps the first socket “56” to the application socket “48” of the application600. Further, at step611, the network handover system103returns details of the mapped application socket “48” to the application600, indicating successful connection with the destination server111. Consequently, the application600initiates a data session109with the destination server111at steps613,615, and617.

Suppose, at step619, the signal on the first communication interface107gets weaker during the data session. This condition may be treated as a deteriorating network condition117and the same may be notified to the network handover system103and the network interfaces107and109. Consequently, at step621, the network handover system103fetches details such as socket identifier and pending data packets in the socket buffer from the first communication interface107. Further, at step625, the network handover system103initiates the handover by trying to establish the connection over the second communication interface115. At steps625and627, the second communication interface115complete validation with the destination server111by exchanging the “connect” and success” signals. Once the validation is complete, at step629, the second communication interface115returns the ID of the second socket “61” to the network handover system103. Then the network handover system103maps the second socket “61” to the application socket “48” and establishes a connection with the destination server111using the second communication interface115. Thereafter, the application600seamlessly completes the data session with the destination server111using the second communication interface115as indicated in steps631,633and635. Here, the application600is unaware of the migration of the data session from Wi-Fi to LTE, since for the application600, the socket48still remains undisturbed and does not feel disconnected.

FIG.7illustrates a flowchart of a method for handling a data session in a user equipment (UE)101in accordance with some embodiments of the present disclosure.

As illustrated inFIG.7, the method700may include one or more steps illustrating a method for handling data session in the UE101. The order in which the method700is described is not intended to be construed as a limitation, and any number of the described method steps can be combined in any order to implement the method. Additionally, individual steps may be deleted from the methods without departing from the scope of the subject matter described herein. Furthermore, the method can be implemented in any suitable hardware, software, firmware, or combination thereof.

At step701, the method700includes initiating, by the connection tracker module of the2151network handover system103, a data session109of at least one application from a plurality of applications with the first communication interface107using the first socket105of the UE101having a first socket file descriptor (SOCKFD) for the data session. In an embodiment, the data session109may be a communication session that connects the UE101with a first communication interface107, and in turn with a destination server111, using a first socket105of the UE101. As an example, the first communication interface107may be Wi-Fi.

At step703, the method700includes detecting, by the switchboard module217of the network handover system103, a deterioration in a network connection (or network condition)117of the first communication interface107during the data session109. In an embodiment, the deteriorating network connection117may interrupt or disrupt the data session109. The detection of the deterioration in the network connection may be based on at least one of low data throughput, low data rate, lost signal, frame loss, high jitter, and broken connectivity between the UE101and the destination server111. In an implementation, the deteriorating network condition117may be detected by at least one of the UE101and the abstract network communication layer. Here, the abstract network communication layer may be transport layer in between application layer and transport layer of the communication interface. A connection notification or broadcast events indicating the deterioration in the network connection may be sent to the abstract network communication layer by the switchboard module217.

At step705, the method700includes identifying, by the switchboard module217of the network handover system103, a second communication interface115.

At step707, the method700includes establishing, by the layer 4 Network Handover (NH4) module215of the network handover system103, a second socket113having a second SOCKFD associated with the second communication interface115. Here, the second socket113may be network socket corresponding to the second communication interface115. In an embodiment, the second communication interface115may be different from the first communication interface107. As, an example, the second communication interface115may be long term evolution (LTE) cellular network interface.

At step709, the method700includes migrating, by the NH4 migrator module2153network handover system103, the data session from the first communication interface107to the second communication interface115by mapping the first SOCKFD corresponding to the first socket105to the second SOCKFD corresponding to the second socket113for seamlessly handing over or migration of the data session109to the second communication interface115. In an embodiment, the mapping of the first SOCKFD of the first socket105to the second SOCKFD of the second socket113may be performed on an abstract network communication layer for the data session. Also, in an implementation, an application, running on the UE101and using the data session, may not be aware of the migration of the data session109.

The network handover system103may continue the data session109on the second communication interface115using the second socket113, thereby handling the data session on the UE101. Thereafter, the data session may be concluded as if the data session was originally carried out on the first communication interface107.

In an embodiment, prior to migration of the data session, the network handover system103may perform one or more actions in the UE101. Initially, the classifier module207of the network handover system103may classify, a plurality of applications running on the UE101as at least one of handover-sensitive applications (i.e., whitelist applications) and handover insensitive applications (i.e., blacklist applications). The classification of the plurality applications running on the UE101as at least one of handover-sensitive applications and handover insensitive applications may be done based on at least one of nature of application and latency requirement of the application. Further, a communication protocol corresponding to the handover-sensitive applications may be determined by the classifier module207and the determined communication protocol may be notified to the NH4 module215by the classifier module207. Subsequently, the first SOCKFD corresponding to the first socket105of the UE101may be mapped to the second SOCKFD corresponding to the second socket113of the UE101based on the determined communication protocol by the NH4 migrator module2153. After mapping, a plurality of notifications related to the handover-sensitive applications may be controlled during migration of the data session by the event blocker module213.

In an embodiment, the communication protocol may be at least one of user datagram protocol (UDP), transmission control protocol (TCP) and cross-layer quick UDP internet Connections (C-QUIC) protocol. In an implementation, handing over the data session using the UDP may include determining application data pending for transmission on the first communication interface107. Once the pending data has been determined, the application data may be fetched from a socket buffer associated with the first socket105of the UE101and header information of the application data may be cloned. Thereafter, the cloned header information may be mapped to the second socket113of the UE101for continuing the data session through the second communication interface115.

On the other hand, handing over the data session using the TCP may follow a slightly different procedure and may comprise creating an abstraction layer corresponding to the first socket105of the UE101and mapping SOCKFD associated with the first socket105to a pseudo socket corresponding to the abstraction layer. Thereafter, the data session may be continued and/or re-established through the pseudo socket file descriptor.

In an embodiment, during handover using the QUIC, the CQUIC model dynamically predicts the signal-to-interference-noise-ratio (SINR) and models the handover decision pro-actively. This helps in improving the latency by initiating handover well-ahead of the possible connection termination or deteriorating condition in the interface.

In an embodiment, with the configuration of the network handover system103in the UE101, a transient layer may be introduced in the network configurations of the UE101. In the transient layer, the Wi-Fi and the mobile data/LTE may be enabled only when—a) it is predicted that Wi-Fi has a weak signal and/or b) when there is a probability that the Wi-Fi may be disconnected. The above operation of the transient layer in the network handover system103is different from the way it is operated in the existing default network management strategy or the MPTCP. A comparison in the behavior of the handover in each of these techniques is illustrated in Table A below.

TABLE ANetworkDefaultProvided networkconditionmechanismMPTCPhandoverWeak Wi-FiNo action;Both Wi-Fi and LTEEnable transient layer forOnly Wi-Fi is upare upLTE and Wi-Fi;LTE is made default forwhitelisted applicationsStrong Wi-FiNo action;Both Wi-Fi and LTEBoth “Whitelist” andOnly Wi-Fi is upare up;“Blacklist” applicationsCauses battery drainuse Wi-Fi;since LTE is upLTE is not enabled. Hence,power consumption isoptimizedWi-Fi“Wi-Fi disconnect”“Wi-Fi disconnect”“Whitelist” applicationsdisconnectedevent is triggered;event is triggered;already use LTE;LTE is connectedLTE is connectedNow all the applicationsstart using LTE as a default.

FIG.8illustrates a comparison between existing handover techniques and the provided handover method in accordance with some embodiments of the present disclosure.

FIG.8provides an exemplary overview of the network handover in the Android® framework, MPTCP and using the provided network handover system103. In the case of Android®, the handover may not be seamless. Thus, the application and/or the users go through a poor quality of experience during the handover, specifically, when there is a handover from weak and/or disconnected Wi-Fi to the LTE and vice-versa. In the case of MPTCP, both the LTE and the Wi-Fi are always up and running. Though the handover is seamless in MPTCP, it is a resultant of higher power consumption and higher data consumption. On the other hand, the handover on the provided network handover system103is both seamless and optimized. This is because, the network handover system103pro-actively classifies the applications into “whitelist” and “blacklist” applications and ensures that only the “whitelist” applications switch to the LTE in case of an interruption on the Wi-Fi network. Also, as explained in the earlier sections, the handover using the network handover system103is seamless and optimized since only the whitelisted applications use the LTE.

In an embodiment, one or more computer-readable storage media may be utilized in implementing embodiments consistent with the present disclosure. A computer-readable storage medium refers to any type of physical memory on which information or data readable by a processor may be stored. Thus, a computer-readable storage medium may store instructions for execution by one or more processors, including instructions for causing the processor(s) to perform steps or stages consistent with the embodiments described herein. The term “computer-readable medium” should be understood to include tangible items and exclude carrier waves and transient signals, i.e., non-transitory. Examples include random access memory (RAM), read-only memory (ROM), volatile memory, nonvolatile memory, hard drives, compact disc (CD) ROMs, digital video disc (DVDs), flash drives, disks, and any other known physical storage media.

Although the present disclosure has been described with various embodiments, various changes and modifications may be suggested to one skilled in the art. It is intended that the present disclosure encompass such changes and modifications as fall within the scope of the appended claims.