This application is based on and claims priority under 35 U.S.C. § 119 to Indian Patent Application Serial No. 202241047883 (CS), filed on Aug. 23, 2022, in the Indian Patent Office, the disclosure of which is hereby incorporated by reference herein in its entireties.
Certain example embodiments relate to a method for detecting lost Transmission Control Protocol (TCP) connection packets and/or recovering the old connection. For example, a method for managing no network and/or limited connectivity state for the communication session in the device by auto recovering an old connection thereby avoiding or reducing retransmission of the lost TCP packets.
Transmission Control Protocol (TCP) is a connection-oriented, dependable, byte-based transport layer communication protocol that serves as the underlying protocol foundation for many widely known applications such as Hyper Text Transfer Protocol (HTTP), File Transfer Protocol (FTP), Secure Shell (SSH), and Simple Mail Transfer Protocol (SMTP), whereas some applications prefer User Datagram Protocol (UDP) for transmission to avoid delays, but this can result in packet loss, which can lead to call drops. The TCP protocol provides the necessary functionality for reliable communications, such as flow control, packet loss detection, lost packet retransmission, and congestion avoidance. TCP establishes a secure connection with a three-way handshake. Both sides synchronize (SYN) and acknowledge (ACK) each other on a full duplex connection.
TCP can detect if a packet goes missing and resend it, accordingly, ensuring reliable transmission of data. Retransmissions are required in the event of lost packets, which takes time, slows down applications and has a significant impact on application performance. However, one of the biggest challenges is determination of lost connection and avoidance of any packet loss retransmission which may lead to call drop and call fails.
Various attempts have been made for improving the reliability of the TCP connection. One solution is to modify the TCP implementation of one or both of the participants. However, this is frequently not a viable option, such as when the source code is unavailable or there are too many endpoints to manage conveniently.
For instance, US Patent Application No. U.S. Pat. No. 8,411,560B2 titled “TCP selection acknowledgements for communicating delivered and missing data packets” discloses a method for detection and retransmission of lost packets over a network, wherein a sorted list comprising an index of consecutive sets of continuous ranges of sequence numbers identifying data packets received by the receiver are maintained, generating identified selective acknowledgment (SACK) packet. A receiver or a proxy acting therefor receives the SACK packets and infers that a set of data packets between the consecutive ranges have not been received. Based on this, the sender retransmits data packets according to any of a number of schemes. However, “U.S. Pat. No. 8,411,560B2” merely discloses the method for detecting and retransmitting the lost packets over network and does not disclose details pertaining to auto recovery of the old TCP connection, and/or avoidance or reduction of packets loss retransmission.
For instance, US Patent Application No. US20060171318A1 titled “Active queue management methods and devices” discloses receiving an incoming packet, estimating an overall occupancy level 0 of an input buffer, determining a number N of active virtual output queues (“VOQs”) of the input buffer, computing a probability P based on the overall occupancy level and the number of VOQs, generating a random number R; and setting a flag when R is less than P. However, US20060171318A1 merely discloses the method to control overall buffer occupancy and protecting uncongested individual VOQS, and further to detect packet drop by computing the probability which is based on buffer occupancy, but does not disclose details pertaining to auto recovery of the old TCP connection, and/or avoidance or reduction of packets loss retransmission.
For instance, US Patent Application No. U.S. Pat. No. 7,969,876B2 titled “Method of determining path maximum transmission unit” discloses increasing a size of a path maximum transmission unit (PMTU) by a predetermined amount for transmitting network packets between a client and a server via the first proxy, repacketizing network packets received from the client for transmission to the server into packet sizes in accordance with the size of the PMTU, determining a first network packet of the repacketized network packets with a round trip time greater than a previous round trip time for networks packets transmitted to the server, and increasing the size of the PMTU by the predetermined amount responsive to receiving an acknowledgement for the first network packet without a fragmentation indication. However, U.S. Pat. No. 7,969,876B2 merely discloses the method to detect the maximum transmission unit of a path to avoid IP fragmentation, and does not disclose details pertaining to auto recovery of the old TCP connection, and/or avoidance or reduction of packets loss retransmission.
Hence, there exists a need for a method to detect a connection lost, for example to avoid and/or reduce any packet loss retransmissions, and/or to recover the lost TCP connection.
Certain example embodiments relate to a method for managing a connection by a server. The method may comprise monitoring a state of a Transmission Control Protocol (TCP) connection for a communication session of a receiver device by Internet Protocol Multimedia Subsystem (IMS) stack, based on a plurality of signal parameters and connection context information for a defined period in absence of packet communication. The method may comprise based on the state of the TCP connection for the communication session being suspended, closing the TCP connection. The method may comprise based on the state of the TCP connection for the communication session being registered, selecting one or more Session Initiation Protocol (SIP) timers for resetting and routing the communication session of the receiver device.
Certain example embodiments relate to a server for managing a connection by a server. The server may comprise communication circuitry and at least one processor coupled to the communication circuitry. The at least one processor may be configured to monitor a state of a Transmission Control Protocol (TCP) connection for a communication session of a receiver device by Internet Protocol Multimedia Subsystem (IMS) stack, based on a plurality of signal parameters and connection context information for a defined period in absence of packet communication. The at least one processor may be configured to based on the state of the TCP connection for the communication session being suspended, close the TCP connection. The at least one processor may be configured to based on the state of the TCP connection for the communication session being registered, select one or more Session Initiation Protocol (SIP) timers for resetting and routing the communication session of the receiver device
Certain example embodiments provide a method to detect lost TCP packets and automatically recover the old connection at least by resetting. Additionally, the method may also help in handling no network and/or limited connectivity state for the communication session thereby avoiding or reducing retransmission of lost packets. Certain example embodiments may offer less connectivity issues and customer satisfaction.
The foregoing and other features of embodiments will become more apparent from the following detailed description of embodiments when read in conjunction with the accompanying drawings. In the drawings, like reference numerals refer to like elements.
Reference will now be made in detail to the description of the present subject matter, one or more examples of which are shown in figures. Each example is provided to explain the subject matter and not a limitation. Various changes and modifications are deemed to be within the spirit, scope and contemplation herein.
In any network environment, data is sent and received across the network in small units called packets. The failure of packets to reach their destination on a network is referred to as packet loss. Packet loss is usually caused by network equipment dropping, ignoring, misdelivering, or discarding packets as a result of network congestion. Packet loss affects different applications in different ways. Delays can be exacerbated if the packet loss rate is high or there is high latency. If a packet is dropped, or not acknowledged, TCP connections can detect lost packets using a timeout, more particularly after sending off a packet, the sender starts a timer (of about 128 seconds) and places the packet in a retransmission queue, if the timer runs out and the sender has not yet received an ACK (acknowledgement) from the recipient, it sends the packet again leading to retransmission. Sometimes packet drop could go unnoticed by several network nodes, causing them to wait forever. Due to some nodes' potential for silent packet drops, all nodes could get out of sync and the device loses contact, necessitating for a new connection. The present disclosure provides a method for resetting the old TCP connection thereby avoiding retransmission of lost TCP packets.
Referring now to
In step (102), the TCP connection thus established between the sender and the receiver device is managed by a communication processor (CP) protocol layer. In an embodiment, the communication processor protocol layer follows Long Term Evolution (LTE) protocol for latching the receiver device to at least one of the communication networks. Subsequently, in step (103) a communication session between the receiver device and at least one communication network may be configured, wherein the communication session may be an IMS session between the receiver device and the sender device. In an example embodiment, the communication session between the receiver device and at least one communication network may be facilitated by a transport layer.
In an example embodiment, the transport layer protocols are typically in charge of point-to-point communication. In other words, the transport layer protocols manage, establish, and terminate communication between two specific networked devices. The transport layer essentially allows multiple networking applications that reside above the transport layer to establish client-server, point-to-point communication links to other devices via functionality such as flow control. Furthermore, the transport layer ensures that packets sent are received and assembled in the correct order acknowledging the transmitter after receiving an error-free packet and when a defective packet is received, the request for re-transmission to the transmitter is made.
In step (104), a handling ID for every user agent (209), is created and returned to a connectivity framework (203) by an IP Multimedia Subsystem (IMS) stack (211). In an example embodiment, the communication Session Initiation Protocol (SIP) may be routed and managed by the user agent (209), wherein the communication SIP may be responsible for the signaling operations of the communication session. Furthermore, the IMS stack (211) is responsible for receiving IMS registration information of the receiver device and registering the receiver device in an IMS server by using at least some of the received IMS registration information of the receiver device. Each server herein, and each receiver device herein, comprises a processor comprising processing circuitry. Each of the steps/operations herein may be performed by at least one processor, and communications herein may be utilized in conjunction with communication circuitry. Moreover, each “module” herein may comprise circuitry.
In step (105), of the method, a plurality of signal properties, and the connection context information are monitored by a network monitoring module (202) required for monitoring the health of the TCP connection. In an embodiment, the plurality of signal properties may include strength and position of the signal received by the RF antenna of the receiver device and a Reference Signal Received Power (RSRP), a Reference Signal Received Quality (RSRQ), a Received Signal Strength Indicator (RSSI), a Signal to Interference Noise Ratio (SINR), and a Channel Quality Indicator (CQI). In an embodiment, the connection context information may include the time spent by the receiver device at low strength signal and it may further include within the same time span, the TCP connection is released and a cell ID for a defined period of time. Furthermore, a request for monitoring the health of the TCP connection, the plurality of signal properties and the connection context information may be received from an IP Multimedia Subsystem (IMS) stack (211).
In step (106) of the method (100), a check may be performed to determine whether TCP connection resetting is required or not. If at step (106), it is determined that the TCP connection resetting is not required, the method (100) may proceed to the step (107) “No path”, where all the modules interact with the IMS stack (211) through the IMS interface layer and further the method (100) continues towards step (108) which redirects the call to the IMS interface (204) or the CP protocol layer depending on the type of underlying physical transport.
In step (109), of the method (100) the call may be redirected to the call application on the receiver's device user interface. In an embodiment, the calling application user interface allows users to receive or place audio or video calls or data calls on their device. Calling applications use their own user interface for the calls instead of using the default device application interface. However, if at step (106), it is determined that the TCP connection resetting is required, the method (100) may proceed to step (110) (“Yes” path). At step (110), the request to delete the stale TCP connections may be redirected towards the transport rectifying module (314). In an embodiment, a request to delete the stale TCP connection may be received by the transport rectifying module (314) from the IMS interface (204), and further, the method (100) may continue to repeat the steps (107)-(109), wherein IMS services may resume without any retransmission by selectively choosing one or more Session Initiation Protocol (SIP) timers via TCP port.
Meanwhile, the above-described method (100) performed by the electronic device may be performed using an artificial intelligence model. According to the disclosure, in a method (100) for packet loss detection with automatic recovery while maintaining a physical connection of an electronic device (such as mobile, or tablet) with the network operator, a method for recognizing a user's speech and interpreting the user's intent, the device may receive a speech signal, which is an analog signal, via a microphone and convert the speech part into computer readable text using an automatic speech recognition (ASR) model. The user's intent of utterance may be obtained by interpreting the converted text using a natural language understanding (NLU) model. The ASR model or NLU model may be an artificial intelligence model. The artificial intelligence model may be processed by an artificial intelligence-dedicated processor designed in a hardware structure specified for artificial intelligence model processing. The artificial intelligence model may be obtained by training. Here, “obtained by training” may indicate that a predefined operation rule or artificial intelligence model configured to perform a desired feature (or purpose) is obtained by training a basic artificial intelligence model with multiple pieces of training data by a training algorithm. The artificial intelligence model may include a plurality of neural network layers. Each of the plurality of neural network layers includes a plurality of weight values and performs neural network computation by computation between a result of computation by a previous layer and the plurality of weight values.
Language understanding is a technique for recognizing and applying/processing human language/text and includes, e.g., natural language processing, machine translation, dialog system, question answering, or speech recognition/synthesis.
Referring now to
In order to perform the above functions, in an example embodiments, the IMS interface (204) may include various components, for example, service module manager (205) with subcomponents namely VoLTE service component (205a), SMS service component (205b) and UT service component (205c). And the other components of the IMS interface (204) may include VoLTE handler (206), SMS handler (207), and ReSIP VoLTE handler (208). In an embodiment, the ReSIP VoLTE handler (208) may be responsible for making a call (208a) and processing a call (208b).
Various components of the IMS interface (204) may provide a standard-based networking architecture for multimedia services provided on the user device. The service module manager (205) may provide a single point of access for communication using an IMS registration, with the user agent (209) for handling Session Initiation Protocol (SIP) messaging and more particularly directs, routes messages and request to the IMS stack (211). The SIP is used by the IMS to establish and control calls or sessions between user terminals (or user terminals and application servers). SIP employs a network proxy server infrastructure to locate other users, to which users can send registrations, invitations to sessions, and other requests via their terminals.
In an embodiment, the service module manger (205) of the IMS interface (204) may be configured to receive the notification regarding the monitored health of the TCP connection based on the plurality of signal properties, and the connection context information by the network monitoring module (202). The service module manager (205) may further be configured to redirect the state of the monitored variables to the VoLTE handler (206). The VoLTE handler (206) further redirects the monitored value to the ReSIP VoLTE handler (208). The ReSIP VoLTE handler (208) may be configured to handle IMS session during the call. As will be appreciated by those skilled in the art, all the changes during the duration of the call are responsible for deleting the TCP connection after the network monitoring module (202) notifies the monitored state of the variables to the IMS interface (204). In an embodiment, Stack IF (210) acts as an interface between the IMS Interface (204) and the IMS Stack (211).
In an embodiment, IMS registration generally involves the exchange of SIP messages to control communication sessions supporting voice, data and video calls over IP, LTE, and other data networks. SIP may be used for establishing, modifying, and terminating communications sessions and the sessions may be used for a plurality of media streams that support certain applications including VoIP, UT, and SMS, etc.
Referring now to
In order to perform the above functions, in an example embodiments, the IMS stack (211) may include various components, for example, a JAVA Native Interface (JNI) wrapper (301), a Security IMS (SecIMS) (302), a request router (303), a routing table (303a), the IMS core (304) with an IMS command (304a), an IMS notify (304b), a user profile (305), a transaction user handler (306), a registration session land 2 (307a, 307b), and a call session 1 and 2 (308a, 308b).
An IMS command (304a) comprising a request to delete the stale TCP connection is dispatched from the IMS Interface (204) to the request router (303). In an embodiment, the IMS command (304a) may be written using any programming language and may be directed towards the JNI wrapper (301) which allows Java applications to interoperate with native applications and libraries written in different programming languages. In other words, the JNI wrapper (301) provides access to software programs associated with the transceiver that are written in a language other than Java. The interpolated IMS command (304a) may then be redirected towards the request router (303) after passing through the (SecIMS) (302) to enable security. The request router (303) allows to route a SIP request directly to the server.
In an embodiment, the request router (303) examines destination IP address of a received packet and makes routing decisions accordingly. The request routers (303) use routing tables (303a) to determine which interface the packet will be sent and further sends the packet to the registration manager of the directed IP address of a particular registration session such as registration session 1,2 (307a, 307b). Registration manager manages the registration session and thereafter, the session sends the request to delete TCP connection to a security transport interface (313) which further transmits the requests to the TCP rectifying module (314) to delete the TCP connection, wherein the security transport interface (313) acts as an interface between IMS Stack (211) and TCP rectifying module (314).
In an embodiment, the routing table (303a) contains the information necessary to forward a packet along the best path toward its destination for e.g., the routing table lists all networks for which routes are known. Each packet contains information about its origin and destination. The routing table (303a) provides the device with instructions for sending the packet to the next hop on its route across the network. Each router's routing table (303a) is unique and stored in the RAM of the device.
Referring now to
In an embodiment, the connectivity framework (203) has an interface which keeps track of each incoming/outgoing request that has been sent/receive to a Radio Interface Layer (RIL) (407). More particularly the connectivity framework (203) forms socket connection with the RIL (407). The radio interface layer acts as a bridge between the connectivity framework (203) services and the hardware such as a modem (410). In other words, it is the protocol stack for the device such as smartphone, tablet, laptop and so on. In an embodiment the receiver device may be a wireless communication device and includes modem (410), which can also be referred to as a transceiver. In an example embodiments, the sending and receiving of communication signals occur wirelessly and are facilitated by one or more RF antennas coupled to the modem (410).
In an embodiment, the RIL (407) comprises of two components namely, RIL daemon and vendor RIL. The RIL daemon links the connectivity framework (203) to the vendor RIL. When the device process starts and the connectivity framework (203) is initialized, the connectivity framework (203) makes socket connection to RIL daemon, and the RIL daemon finds the path of vendor RIL library from system properties and loads vendor RIL in form of so found library.
In an embodiment, two types of commands are used in RIL (407) interaction commands and events. The commands are originated by the application framework and include their responses. The events are indications originating from the hardware device such as modem (410). For example, the indication of incoming call is received as an event. In another embodiment, the modem tracks the values of RSRP, RSRQ, RSSI, SINR and CQI from the sensor and notifies the values to the RIL (407) and thereafter the RIL (407) notifies same to the network monitoring module (202).
In an embodiment, the network monitoring module (202) further comprises a network state listener (406), a registration manger handler (405), and a registration event handler (404). The network state listener (406) defines the changes in the state of the network and returns a true value if there is a connection, and otherwise returns a false value. Further, the registration manager handler (405) is a handler that registers observers and acts as receivers for the event. After receiving the network event corresponding to the response received from the network state listener (406), the registration manager handler (405) sends the event of network type change to the registration events handler (404) and further, based on the network type change event, the registration event handler (404) processes and starts the network event controller (202a). Furthermore, the network event controller (202a), along with its subcomponents notifies the health of the TCP connection to the IMS interface (204).
In an embodiment, Reference Signal Received Power (RSRP) and Reference Signal Received Quality (RSRQ) are key measures of signal level and quality for modern LTE networks. In cellular networks, when a mobile moves from cell to cell and performs cell selection/reselection and handover, it has to measure the signal strength/quality of the neighbor cells. In an LTE network, a user device measures two parameters on reference signal: and RSRQ, wherein RSRP is the power of the LTE Reference Signals spread over the full bandwidth and narrowband and RSRQ is a C/I type of measurement, and it indicates the quality of the received reference signal. The RSRQ measurement provides additional information when RSRP is not sufficient to make a reliable handover or cell reselection decision.
In an embodiment, Received Signal Strength Indicator (RSSI) is an estimated measurement of how well a device can hear, detect and receive signals from any wireless access point or Wi-Fi router. In other words, RSSI is an indication of the power level being received by the receiving radio after the antenna and possible cable loss. In an embodiment, Signal to Interference Noise Ratio (SINR) also known as the signal-to-noise-plus-interference ratio (SNIR) is a quantity used to give theoretical upper bounds on channel capacity (or the rate of information transfer) in wireless communication systems such as networks. SINR is widely used in wireless communication to assess the quality of wireless connections. In wireless networks, the energy of a signal typically fades with distance, which is referred to as path loss. In wired networks, the presence of a wired path between the sender or transmitter and the receiver determines data reception. In an embodiment, expressed as a data rate that terminal User Equipment (UE) can support under the actual radio conditions. In an embodiment, the channel quality information (CQI) is a 4-bit value that indicates the highest modulation and code rate for a received transport block that meets a block error rate target of at most 10% (as estimated by the UE).
Referring now to
In an embodiment, the IMS TCP rectifying module (314) act as an interface between the transaction layer and the transaction user layer. The appropriate transaction user (503) is chosen by a transaction user selector (501) based on the transaction ID, and the transaction message is added to a transport message queue (504) by a transaction controller (502). The transaction state machine (505) processes the message requests from the transport message queue (504) and adds messages to be sent to the network to the transport message queue (507) within the TCP rectifying module (314). For example, a call request or a registration request. More particularly, all the message to be sent to the network are added to the transport message queue (507). For e.g., IMS stack layer may add the request to delete the stale TCP connection into the transport message queue (507). Further, the transport selector selects the transport and connection from connection manager and process the socket scheduling to the transport layer (511). The transport layer (511) maintains an association between a socket and transport layer (511) addressing with the help of file descriptors (510). For e.g., it needs to identify the socket that corresponds to a particular <address, port> tuple for incoming data and generate TCP headers with appropriate addresses and port numbers for outbound packets. Furthermore, when any Socket is ready for WRITE/READ or when some exception is there, then the RIL (407) notifies to the TCP rectifying module (314).
The IMS interface (204), the IMS stack (211), the network monitoring module (202) and the transport rectifying module (314) may be implemented in an electronic device (e.g. a server, or an IMS server) through at least one processor of the electronic device.
Referring now to
Referring now to
Referring now to
Each embodiment herein may be used in combination with any other embodiment(s) described herein. “Based on” as used herein covered based at least on.
Certain example embodiments provide a method to improve the stability of the TCP connection, less connectivity issues and minimum obstacles standing in the way of clear communication. Additionally, Certain example embodiments offers high customer satisfaction and reduced voice over customers.
While at least one exemplary embodiment has been presented in the foregoing detailed description, it should be appreciated that a vast number of variations exist.
While the disclosure has been illustrated and described with reference to various embodiments, it will be understood that the various embodiments are intended to be illustrative, not limiting. It will further be understood by those skilled in the art that various changes in form and detail may be made without departing from the true spirit and full scope of the disclosure, including the appended claims and their equivalents. It will also be understood that any of the embodiment(s) described herein may be used in conjunction with any other embodiment(s) described herein.
Number | Date | Country | Kind |
---|---|---|---|
202241047883 | Aug 2022 | IN | national |