Abstract:
A system is arranged to a) monitor the flow of data communicated within a session between a mobile end-user device and a host via a connection which includes a wireless link established over a wireless network b) detect a disabled condition of the wireless link c) in response thereof, simulates a functioning mode of the session, and d) when the wireless link is restored, resume the session between the mobile end-user device and the host at the stage where the disabled condition occurred, as if a disconnect never occurred.

Description:
TECHNICAL FIELD 
     This invention relates to communication systems. More specifically, this invention relates to a system for providing wireless data communication services. 
     BACKGROUND OF THE INVENTION 
     Explosive growth in the market for portable computing devices, (laptop, palmtop, notebook, and personal digital assistants) coupled with the increasing popularity of wireless communications has provided the impetus for a greater demand for wireless data networking services. However, the introduction of the mobility factor in data networks brings into the networking equation challenging complexities, heretofore unknown in traditional wired data networks. For example, unlike a wired data network wherein a connection is fixed and relatively stable during a session, in wireless data networks, a connection that couples, for example, a mobile end-user device to a host connected to a wired network, may change frequently. These changes may be caused by a variety of factors including variations in the physical medium of the wireless link (e.g., Radio Frequency or Infra-Red signals) or by the effects of user mobility that require frequent reconfiguration of the connection. 
     Chief among those factors is the so-called &#34;hand-off&#34; procedure which allows mobile end-user devices, as they change their physical locations, to change their point of attachment with hardware (referred to as &#34;base station&#34;) in the data network. An equally important factor is the frequent occurrence of loss or degradation of wireless signals caused, for example, by a) Rayleigh fading, b) shadow fading due to obstruction from natural and man-made objects around the main transmission path of the mobile end-user devices, and c) interference between co-channels and adjacent channels of wireless networks serving mobile end-user devices. 
     One of the effects of the above factors is that the communication between the mobile device and the fixed network is sometimes disrupted which causes a disconnect to occur. Disconnects can also be caused by other factors, such as a user simply turning off the mobile end-user device. Thus, the duration of disconnects can be a fraction of a second (e.g., when the radio path is obstructed by an object), several seconds (e.g., when a mobile end-user device roams into an area with no radio coverage, such as in between two cells described below), and up to hours or days (e.g., when a mobile end-user device is turned off). 
     The frequency in which disconnects occur is likely to increase in the future because an increasing number of portable end-user devices are designed to operate in a &#34;disconnected&#34; or doze mode to conserve limited battery power in those devices. Another factor that may cause an increase in the number of disconnects in future wireless networks is the trend to reduce cells size (a cell being the area served by a single base station). This trend is motivated by increase in frequency spectrum reuse to conserve that precious resource. Thus, microcells, and picocells are being planned to replace today&#39;s macrocells. Unfortunately, the beneficial effect of increased spectrum reuse is achieved at the price of increased hand-offs and, consequently, higher chances of short-term disconnects. Thus, it is desirable to support disconnects in a manner that is, if not user-transparent at least, non-disruptive to the communications and computing operations of mobile end-user devices. 
     SUMMARY OF THE INVENTION 
     The present invention is directed to a system which a) monitors the flow of data during a communication session between a mobile end-user device and a host via a wireless link established over a wireless network b) detects an inoperative condition of the wireless link c) in response thereto, simulates the operative mode of the session, and d) when the wireless link is restored, resumes the session between the mobile end-user device and the host at the stage where the inoperative condition occurred, as if a disconnect never occurred. 
     As used in this disclosure the term &#34;session&#34; refers to an association between two processors. A session is not limited to a long-term virtual-circuit type of association. It also includes a short-term, transaction-oriented association. 
     In an embodiment of the principles of the invention, a session is initially established between a mobile end-user device and a host. As part of that session, a process called &#34;end-user application process (EAP)&#34; is invoked in the mobile end-user device while another process called &#34;host application process (HAP)&#34; is invoked in the host. Examples of application processes include communications transport protocol software, such as TCP, or a user application, such as a database query. The term &#34;application process&#34; as used in this disclosure does not necessarily refer to the Application layer of the ISO/OSI model. Application process in this disclosure includes the upper layers of the ISO/OSI model, i.e., transport through application layers. 
     In order for the session to remain active, the two application processes need to communicate since any disruption of the session communications may cause the two application processes to enter an unrecoverable state. To prevent this from happening, two special processes, termed &#34;Agents&#34;, are invoked when the application processes are invoked. One of the Agents (hereinafter called &#34;Local Agent&#34;) is executed in the mobile end-user device, while the other Agent (hereinafter referred to as &#34;Network-Based Agent&#34;) is executed in a processor in the wireless network or in the host. Specifically, when session communication is disrupted, the Local Agent is designed to simulate the behavior of the HAP such that the EAP &#34;believes&#34; that the session communication has not been disrupted. Similarly, when session communication is disrupted, the Network-Based Agent is arranged to simulate the behavior of the EAP such that the HAP &#34;believes&#34; that session communication has not been disrupted. 
     As long as the wireless link which supports the session communication is operational, the Local Agent and the Network-Based Agent silently monitor the packet flow between the EAP and the HAP. Upon detecting the inoperative condition of the wireless link, the Local Agent and the Network-Based Agent enter the disconnect-state. Specifically, the Network-Based Agent responds to control packets from the HAP, while the Local Agent responds to control packets from the EAP. The response is limited to transmitting signals indicating to the respective application processes on the other end of the connection is operational. However no application process (AP) functionality needs to be performed by the Agents. 
     When the communications facilities for the session are restored, synchronization takes place between the Local Agent and the Network-Based Agent to allow the EAP and the HAP to resume the session at the stage before the disconnect. The synchronization is necessary to avoid any loss of information that may have occurred during the disconnect stage. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     In the drawings: 
     FIG. 1 shows in block diagram form, an illustrative communication switching system which includes a wireless data network designed in accordance with the principles of the invention; 
     FIG. 2 is a flowchart which outlines a logical sequence of programmed instructions executed by the processing unit of a mobile end-user device; 
     FIG. 3 is a flowchart outlining the logical events that occur during a hand-off; 
     FIG. 4 presents in flow diagram format, different programmed instructions executed by the processor(s) of the communication switching system of FIG. 1 to provide data communications services to mobile end-users in accordance with the principles of the invention. 
     FIG. 5 displays a set of instructions stored in the memory of the mobile end-user device of FIG. 1; and 
     FIG. 6 shows a set of instructions stored in the memory of at least one processor of the data network of FIG. 1 to implement the principles of the invention. 
    
    
     DETAILED DESCRIPTION 
     FIG. 1 shows in block diagram form, an illustrative communication switching system which includes a data network 110 designed in accordance with the principles of the invention. Shown in the block diagram of FIG. 1 is a mobile end-user device 101 which is arranged to communicate, for example, with a stationary host 160 via a wireless network 104 and a land-line network 140. Mobile end-user device 101 includes a wireless transceiver 13 (optionally with a built-in modem not shown) and a processing unit 11 which executes the programmed instructions (stored in RAM 12) of an end-user communications software program called &#34;the Local Agent&#34;. Some of the instructions of the Local Agent are shown in FIGS. 2 and 5 and are described in detail below. 
     Also stored in RAM 12 are programmed instructions for one or more end-user application process (EAP) for access to the computing services of host 160. Those end-user application processes may be, for example, communications transport protocol software, such as TCP, or client/server access procedures. 
     When mobile end-user 101 is energized, it initiates a connection set-up procedure to establish a wireless communication link between itself and base-station 102 or 103. The connection set-up procedure is well known to those skilled in the art. When an end-user application process is invoked in mobile end-user device 101, the Local Agent is automatically invoked. The invocation of the Local Agent may be implemented, for example, as part of the Operating System running on processing unit 11. The Local Agent silently monitors data exchanged as part of a session between the mobile end-user device 101 and stationary host 160. EAP and HAP exchange signaling messages when the communications facilities that are used in the connection are idle. Those signaling messages take the form of control packets also known as &#34;keep-alive&#34; packets, and acknowledgement packets. When the Local Agent notices that a keep-alive packet transmitted by the EAP has not been acknowledged within a predetermined time window, the Local Agent &#34;infers&#34; that the session communication has been disrupted. Alternatively, when the Local Agent notices that no keep-alive packet has been transmitted by the HAP over an idle connection for a predetermined time window, the Local Agent &#34;infers&#34; that the session communication has been disrupted. When the session communication is disrupted, the Local Agent uses the instructions stored in area 501 and 502 to respond to keep-alive packets from the EAP. Similarly, the Network-Based Agent responds to keep-alive packets from the HAP. Accordingly, the HAP and the EAP &#34;infer&#34; that the wireless link is operative upon receiving either a keep-alive packet or acknowledgement of a previously transmitted keep-alive packet. 
     Each of the base stations 102 and 103 includes a transceiver which is arranged to wirelessly communicate with mobile end-user device 101 when the latter is located in the area of the base station. That area is referred in the art as a &#34;coverage area&#34; or &#34;cell&#34;. Base stations 102 and 103 are the points of access and egress for data transmitted to, and received from, cellular network 104. For call setup functions, base stations 102 and 103 perform initial attachment procedure and supervise the establishment of the wireless link. Base stations 102 and 103 also tear down the wireless link at the end of a data call. 
     Of particular significance is the function of base stations 102 and 103 to hand-off or transfer a data call from a channel of base station 102 to a channel of base station 103, as mobile end-user device 101 moves within the geographic area covered by wireless network 104. The hand-off function is described in further detail below. 
     Also shown as a hardware component of wireless network 104 is Mobile Switching Center (MSC) 108. The latter provides a seamless communications path for a data call by &#34;bridging&#34; a wireless channel and a &#34;wired&#34; channel that is established over land-line communications network 140. Specifically, MSC 108 selects a) an outgoing channel from trunk 130 to land-line network 140, and b) a wireless channel of the wireless transceivers of base station 102 or 103 and the wireless transceiver of mobile end-user device 101. Thereafter, MSC 108 sends a data message to the base station from which the connection setup signals were received, to instruct the mobile end-user device 101 to tune to the selected radio channel. MSC 108 also provides an interface to the support systems for Operations, Administration and Maintenance (OA&amp;M) functions. Furthermore, MSC 108 terminates the signaling links of a signaling network (not shown) that is used to exchange call handling messages from land-line network 140 to wireless network 104, according to a specific protocol, such as the well-known Signaling System 7 (SS7). 
     Of particular importance among the components of base station 102 (103) is processor 17 (19) which executes the programmed instructions (some of which are shown in FIGS. 3, 4 and 6 described below) of a network-based communications software program called &#34;Network-Based Agent&#34; that is stored in RAM 18 (20). FIG. 6 shows a memory area map of RAM 18 and 20. 
     When a connection which includes a wireless link, is established between mobile end-user device 101 and stationary host 160, the Network-Based Agent monitors exchange of data over that wireless link and registers in a file all information associated with that connection. As long as mobile end-user device 101 maintains connectivity to base station 102 or 103, the operation of the Network-Based Agent is limited to compensating for higher than usual delays that may occur on wireless network 104. Those delays may be due, for example, to excessive transmission errors or low available bandwidth. The delay-compensating function is performed by the Network-Based Agent executing the instructions stored in memory area 605, 603 and 601 to measure the delay in the wireless network 104 and to generate and transmit dummy packets to stationary host 160. Advantageously, this function allows higher effective throughput over the wireless link by preventing certain congestion control mechanisms to be automatically triggered due to delays in the network. For example, certain transport protocols, such as the widely used Transport Control Protocol (TCP) interpret long delays as affirmative signs of congestion or loss of packets and, accordingly, initiate congestion control or retransmission procedures resulting in decrease of effective throughput over the wireless link. The transmission of the dummy packets prevents the congestion control or retransmission mechanisms from being triggered. 
     When the Network-Based agent notices that no keep-alive packets or acknowledgment packets are being exchanged over an idle connection between the EAP and the HAP, the Network-Based Agent &#34;infers&#34; that the session communication has been disrupted. 
     When the wireless link is inoperative, the Network-Based Agent executes the instructions stored in memory area 604 to activate a timer and to emulate the operating mode (e.g. networking protocol and/or application) behavior of mobile end-user device 101 in order to maintain connectivity to stationary host 160 on behalf of the mobile end-user device 101. The behavior emulation procedure is described in further detail below. If the timer expires before the wireless link is restored, the Network-Based Agent moves all information associated with the connection and the current state of the Network-Based Agent to home server 109 which is a host arranged to emulate the communications protocol and application behavior of mobile-end user device 101. When the wireless link is restored, the Network-Based Agent migrates to a current base station and returns to its limited packet compensation role. 
     Although in this example, the programmed instructions of the Network-Based Agent are stored in RAM 18 (20) and executed in processor 17 (18) of base station 102 (103), it is to be understood that the programmed instructions of the Network-Based Agent can be executed by any processor of the data network 110, including host 160. 
     Referring to FIG. 2, the data communications services afforded by the invention are initiated in step 201, when mobile end-user device 101 is powered on, or enters into the coverage area of base station 102 or 103. The mobile end-user device 101, in step 202, initiates a connection set-up procedure to establish a communication link between itself and base station 102, for example. The connection set-up procedure is well known to those skilled in the art. When an end-user application process (EAP) is invoked on the mobile end-user device 101, in step 203, the two Agents are automatically invoked. Specifically, the Local Agent is invoked in mobile end-user device 101 while the Network-Based Agent is invoked, in step 204 on base station 102, for example. Invocation of the two Agents may be implemented, for example, as part of the Operating System running on processing unit 11 of mobile end-user device 101 and processor 17 (18) running on base-station 102 (103). 
     FIG. 3 illustrates a routine to handle hand-offs according to the principles of the invention. As mobile end-user device 101 travels across the geographical area served by wireless network 104 and signal strength measurements from base stations 102 and 103 indicate that hand-off is needed, mobile end-user device 101, as shown in step 301, initiates hands-off procedure from base station 102 to base station 103, for example. Prior art attachment procedures are performed, as indicated in step 302, to assign a new set of channels that are associated with base station 103 for access to the wireless network 104. When mobile end-user device 101 hands-off from base station 102 to base station 103, mobile end-user device 101 indicates to base station 103 that the Network-Based Agent is running on base-station 103. Accordingly, base station 103, as illustrated in step 303, requests from base station 102 all information associated with the connection, including the &#34;current state&#34; of the Network-Based Agent. Upon receiving that information, as indicated in step 304, base station 103 starts execution of a new version of the Network-Based Agent. When the Network-Based Agent running on processor 17 of base station 102 stops receiving packets from both mobile end-user 101 and stationary host 160, it terminates its operations. 
     FIG. 4 shows in flow diagram format, the instructions executed by base station 102 and mobile end-user device 101 when the wireless link connecting mobile end-user device 101 and base station 102 is inoperative. When mobile end-user device 101 is disconnected from the wireless network 104, as indicated in step 401, the Local Agent enters a disconnect state and, as shown in step 402, starts responding to local keep alive packets generated for example, by the End-user Application Process (EAP) running on processing unit 11 of mobile end-user device 101. Similarly, as illustrated in step 403, Network-Based Agent running on processor 17 of base station 102 enters a disconnect state and retrieves from memory area 604 instructions that are executed to activate a timer. Subsequently, the Network-Based Agent, as shown in step 404, responds to network keep alive packets received from a Host Application Process (HAP) running on stationary host 160. As an example, consider the case when the two Application Processes are two TCP instances. When the connection is broken, the Agents respond to the keep-alive packets from the TCP processes. The Agents may even reduce the window (used for flow-control) to zero in order to prevent any data packets from being sent. 
     A determination is made in step 405 as to whether the wireless link is restored before a predetermined time period clocked by the timer. If so, in step 406, the Local Agent and the Network-Based Agent resynchronize. The synchronization process is necessary to avoid any loss of information that may have occurred during the disconnect period. If mobile end-user device 101 reconnects to base station 102, from which it was disconnected, the Network-Based Agent returns to its delay-compensating function following synchronization. If mobile end-user device 101 is reconnected, for example, to base station 103, the Network-Based Agent is invoked in processor 19 and the current state of the Network-Based Agent that was running in processor 17 is downloaded to processor 19. Thereafter, the operations of the Network-Based Agent in processor 17 are terminated. 
     If the wireless link is not restored before the timer expires, base station 103, in step 407 forwards information associated with the connection, including the current state of Network-Based Agent to home server 109. When the wireless link is restored, as determined in step 408, the Network-Based Agent information associated with the connection that was stored in home server 109 is downloaded, in step 409 to the current base station. Thereafter, in step 410, resynchronization of Local Agent and Network-Based Agent occurs, as described above. 
     The foregoing is to be construed as only being an illustrative embodiment of this invention. Persons skilled in the art can easily conceive of alternative arrangements providing functionality similar to this embodiment without any deviation from the fundamental principles or the scope of this invention.