SYSTEM, METHOD, AND APPARATUS FOR PREVENTING DATA PACKET OVERFLOW AT NODES IN WIRELESS PACKET DATA SERVICES NETWORK
Cross-reference to Related Applications
This application claims the priority benefit of U.S. Provisional Application for Patent, Serial No. 60/347,813, entitled "System, Method, And Apparatus For Preventing Data Packet Overflow At Plurality Of Nodes In Wireless Packet Data Services Network," filed on November 7, 2001 and claims the priority benefit of U.S. Provisional Application for Patent, Serial No. 60/374,594, entitled "System, Method, And Apparatus For Preventing Data Packet Overflow At Plurality Of Nodes In Wireless Packet Data Services Network," filed on April 22, 2002, all of which are hereby incorporated by reference for all purposes. Statement Regarding Federally Sponsored Research/Development Not Applicable. Field
The present application relates to wireless packet data services networks, and more particularly to a technique as well as associated systems, methods, and apparatuses for preventing data packet overflow in a wireless packet data services network.
causes subsequent packets to be discarded. When the packets are discarded, the congestion avoidance mechanism is again invoked.
Controlling the transmission rate of the sender in the foregoing manner is disadvantageous because bandwidth is wasted during the time that the nodes discards the data packets. Additionally, at the beginning of the ramping up time, the minimum transmission rate underutilizes the available bandwidth, which also results in wasted bandwidth.
Accordingly, it would be desirable if data packet overflow at the wireless network nodes is prevented.
Summary
A system, method, and apparatus are presented herein for preventing data overflow of wireless network nodes. The data transmission rate at a content server is dynamically limited to prevent transmission at a rate which would cause the memory at network nodes allocated for the wireless client to be exhausted. A signal transmitted from the wireless client indicating the amount of available memory at the wireless client is intercepted by a wireless content switch which monitors the nodes and estimates the available memory at the nodes which is allocated to the wireless client. The wireless content switch modifies the signal transmitted from the wireless client in a manner such that the total available memory indicated does not exceed the cumulative available memory allocated at the nodes.
Brief Description Of The Drawings
FIGURE 1 is a diagram of a wireless data services network;
FIGURE 2 is a diagram describing the operation of an exemplary wireless content switch; FIGURE 3 is a diagram of wireless data services network in accordance with
General Packet Radio Services specifications;
FIGURE 4 is a block diagram of an exemplary wireless content switch; and FIGURE 5 is a signal flow diagram describing the operation of the wireless content switch in the GPRS network.
Detailed Description Of The Drawings
In the descriptions that follow, like parts are marked throughout the specification and drawings with the same numerals, respectively. The drawing figures are not necessarily drawn to scale and certain figures may be shown in exaggerated or generalized form in the interest of clarity and conciseness.
Referring now to FIGURE 1, there is illustrated a diagram of a communication network, referenced generally by the numeric designation 100, for transmitting data packets to a wireless client 105 from a content server 110. The wireless client 105 is a mobile terminal generally associated with a user or subscriber to the communication network 100, and can comprise, but is not limited to, a mobile station, a personal digital assistant, or a lap top or palm top computer capable of engaging in wireless data communications.
The content server 110 is a server computer which can include, for example, a web server. The content server 110 is generally connected to a wired network 115. The wired network 115 can comprise, for example, a local area network, a wide area network, or the internet. Data is transmitted over the wired network 115 in a series of sequential partitions, known as data packets.
The wired network 115 is interfaced with a wireless network 120 associated with the wireless client 105. The wireless network 120 includes a network of nodes which are often overlay a cellular telephone network, such as the Global System for Mobile Telecommunications (GSM). The network of nodes routes the data packets to a geographic location within radio communication of the wireless client 105 and transmits the data packets over the wireless air interface to the wireless client 105. The wireless network 120 also includes a wireless content switch 125. The wireless content switch 125 is positioned in a
manner to receive communications transmitted to and from nodes of the wireless network 120 for the wireless client 105.
The amount of data that the wireless client 105 can receive is limited by the available memory at the wireless client 105. The data received by the wireless client 105 is temporarily stored for use by the wireless client 105. Storage of the data in temporary memory reduces the amount of available memory. Data received when memory is completely consumed is discarded. Therefore, it is important to dynamically limit the data rate delivered to the wireless client 105 to prevent exhausting the memory at the wireless client 105. The data rate is limited by transmitting a signal which indicates the available memory at the wireless client 105.
The amount of data that the wireless client 105 can receive is also limited by conditions in the wireless network 120. Available bandwidth for transmission of data packets over the wireless air interface is usually lower relative to other parts of the communication network 100. As a result, the data packets can be received by the wireless network 120 at a faster rate than the data packets are transmitted, resulting in a backlog of data packets awaiting transmission over the air interface. The foregoing backlog is partly accommodated by storing the backlog of data packets at different nodes in the network.
The wireless network 120 allocates a certain amount of memory at different nodes to each of any number of wireless clients 105 receiving service from the wireless network 120. The memory allocated to the wireless client 105 stores the bacldog of data packets for the wireless client 105 which await transmission over the wireless air interface. The amount of backlog which can be accommodated for a wireless client 105 is thereby limited by the amount of memory allocated to the wireless client 105 in the nodes. When the memory
allocated to the wireless client 105 is consumed by the backlog of data packets, additional data packets received from the content server 110 are discarded.
The discarding of data packets is prevented by dynamically limiting the amount of data transmitted by the content server 110. The wireless content switch 125 monitors the • available memory at the different nodes in the wireless network 120 which is allocated for the wireless client 105. When the wireless client 105 transmits the signal indicating the amount of memory available at the wireless client 105, the signal is also received by the wireless content switch 125. The wireless content switch 125 compares the amount of memory available at the wireless client 105 with the combined amount of allocated memory available at the nodes. Where the combined amount of allocated memory available at the node is less than the amount of memory available at the wireless client 105, the wireless content switch 125 replaces the signal value indicating the amount of memory available at the wireless client 105 with the combined amount of allocated memory available at the nodes. Referring now to FIGURE 2, there is illustrated a diagram describing the operation of an exemplary wireless content switch. As the content server 110 transmits data packets (signal 205) to the wireless client 105, the data packets are received by the wireless content switch 125. Based on the amount of data in the packets, the wireless content switch 125 estimates (action 210) the available memory allocated for the wireless client 105. As the wireless client 105 receives the data packets, the wireless client 105 transmits signals towards the content server 110 which indicate the amount of memory available at the wireless client (signal 215). The signals are received at the wireless content switch 125. The wireless content switch 125 compares the estimated available memory allocated for the wireless client
at the node with the available memory at the wireless client 105 which is indicated in signal 215. The lower of the two values is inserted into the signal 215 (action 220), and the signal 215' is transmitted to the content server 110
Referring now to FIGURE 3, there is illustrated a diagram of a wireless services network in accordance with the specifications of the General Packet Radio Services (GPRS) standard. It is noted that certain elements have been omitted for the purposes of simplicity, and therefore, the figure is not intended as an exhaustive illustration. Pursuant to GSM and GPRS specifications, the wireless network 120 is interfaced with the wired network 115 by any number of Gateway GPRS Support Nodes (GGSN) 305. Each GGSN 305 is associated with any number of IP addresses which the GGSN 305, in turn, allocates to wireless clients 105.
The wireless network 120 provides packet data services to geographical areas which are divided into routing areas. Each routing area is associated with a particular Service GPRS Support Node (SGSN) 310. Each SGSN 310 is associated with any number of base station controllers 312. Each base station controller 312 is associated with and controls one or more base transceiver stations 315. The base transceiver station 315 is the radio transceiver equipment which transmits and receives signals to and from the wireless client 105. Base transceiver stations 315 maintain radio frequency communications with a geographic area known as a cell 320. The SGSNs 310 and the GGSNs 305 are interconnected by a backbone network 325.
The backbone network 325 routes packet data between the SGSNs 310 and the GGSNs 305. During transmission from the content server 110 to the wireless client 105, the content server 110 transmits the data packets to an IP address associated with the GGSN 305. The GGSN
305 receives the data packet, determines the identity and location of the wireless client 105 associated with the IP address, and forwards the packet towards the wireless client 105.
The amount of data that the wireless client 105 can receive is limited by the available memory at the wireless client 105. The data rate is limited to prevent exhausting the memory at the wireless client 105 by transmission of a signal which indicates the available memory at the wireless client 105.
The amount of data that the wireless client 105 can receive is also limited by conditions in the wireless network 120. The data packets can be received by the wireless network 120 at a faster rate than the data packets are transmitted, resulting in a backlog of data packets awaiting transmission over the air interface. The foregoing backlog is accommodated by storing the backlog of data packets at the SGSN 310 and at the base station controller 312. The SGSN 310 and base station controller 312 allocate certain amounts of memory to each of any number of wireless clients 105 receiving service from the wireless communication network 120. The memory allocated to the wireless client 105 stores the backlog of data packets for the wireless client 105 which await transmission over the wireless air interface. When the memory allocated to the wireless client 105 is consumed by the backlog of data packets, additional data packets which are received from the content server 110 are discarded.
The foregoing is prevented by dynamically limiting the amount of data transmitted by the content server 110. The wireless content switch 125 is connected in a mamier surrounding the SGSN 310. For example, in one embodiment, the wireless content switch 125 can be connected directly to the SGSN 310, between the SGSN 310 and the backbone network 325, and have a second connection directly in front of the SGSN 310 between the
10
SGSN 310 and the base station controller 312. The interface between the SGSN 310 and the backbone network 325 is known as the Gn interface. The interface between the SGSN 310 and the BSC 312 is known as the Gb interface.
The wireless content switch 125 is connected between the SGSN 310 and the backbone network 325. Additionally, the Wireless Content Switch 125 is also connected between the BSC 312 and the SGSN 310, via connection 330. Therefore, the wireless content switch 125 receives all of the data transmitted to the SGSN 310 and all of the data transmitted from the SGSN 310. Accordingly, the wireless content switch 125 can monitor the amount of incoming data and outgoing data for wireless client 105 at the SGSN 310. In one exemplary embodiment, the wireless content switch 125 is an Intelligent Packet Control Node (IPCN) developed and manufactured by Cyneta Networks, Inc.
The wireless content switch 125 estimates the available memory at the SGSN 310. The available memory allocated to the wireless client at the SGSN 310 is estimated by determining the amount of memory allocated to the wireless client 105 and estimating the amount of data stored in the memory allocated to the wireless client 105. The amount of data stored in the memory allocated to the wireless client 105 is estimated by monitoring the incoming data and outgoing data for the wireless client 105 at the SGSN 310 and determining the difference.
Additionally, the wireless content switch 125 estimates the available memory at the base station controller 312. The available memory allocated to the wireless client 105 at the base station controller 312 is estimated by determining the amount of memory allocated to the wireless client 105 and estimating the amount of data stored in the memory allocated to the wireless client 105. The amount of data stored in the memory allocated to the wireless
11
client 105 is estimated by monitoring the incoming data at the base station controller 312 and the throughput rate for the wireless client 105, and determining the difference.
When the wireless client 105 transmits the signal indicating the amount of memory available at the wireless client 105, the signal is received by the wireless content switch 125. The wireless content switch 125 compares the amount of memory available at the wireless client 105 with the combined amount of allocated memory available at SGSN 310 and at the BSC 312. Where the combined amount of allocated memory available at the SGSN 310 and the BSC 312 is less than the amount of memory available at the wireless client 105, the wireless content switch 125 replaces the signal value indicating the combined amount of memory available at the wireless client 105 with a value indicating the amount of allocated memory available at the SGSN 310 and the BSC 312.
Referring now to FIGURE 4, there is illustrated a block diagram of an exemplary wireless content switch 125. The wireless content switch 125 includes any number of upstream ports 450 and downstream ports 450b. The upstream ports 450a facilitate connection of the wireless content switch 115 towards the content server 110 via a trunk line, such as, for example, a Tl, El, or an Ethernet connection, to name a few. In one embodiment, an upstream port 450a can be connected to the backbone network 325 via a trunk line. Similarly, the downstream ports 450b facilitate connection of the wireless content switch 125 towards the wireless client 105 via a trunk line. Connection of the ports permits receipt and transmission of data packets, acknowledgments, Quality of Service (QOS), and other signals between the wireless client 105 and the content server 110.
The downstream ports 450b include server side port 450b(l), which is connected to the SGSN 310 on the server side and a client side port 450b(2), which is connected to the
12
SGSN 310 on the client side. Connection of the ports 450b(l), 450b(2) permits monitoring the amount of data received at the SGSN 310 and the data sent by the SGSN 310, and the data received by the base station controller 312. The downstream ports 450b also permit the wireless content switch 125 to receive signals, such as signals which indicate the amount of memory available at the wireless client 105, the throughput rate at the wireless client 105 and transmit the data packets to the SGSN 310.
The wireless content switch 125 also includes memory 455 for storing a memory allocation table 460. The memory allocation table 460 includes any number of records 465, each of which are associated with a particular wireless client 105 receiving wireless packet data services from the SGSN 310. Each record contains a- client identifier 465a, an SGSN allocated memory indicator 465b, an SGSN received data indicator 465c, and an SGSN sent data indicator 465d, a BSC allocated memory indicator 465e, a BSC received data indicator 465f, a BSC sent indicator 465g, and a throughput rate indicator 465h. The client identifier 465a identifies the wireless client 105 associated with the record 465. The SGSN allocated memory indicator 465b stores the amount of memory allocated for the wireless client 105 at the SGSN 310. The SGSN received data indicator 465c stores the amount of data received for the wireless client 105 associated with the record 465 at the SGSN 310. The SGSN sent data indicator 465d stores the amount of data that has been sent for the wireless client 105 associated with record 465a from the SGSN 310. The BSC allocated memory indicator 465e stores the amount of memory allocated for the wireless client 105 at the BSC 312. The BSC received data indicator 465 f stores the amount of data received for the wireless client 105 associated with the record 465 at the BSC 312. The BSC sent indicator 465g indicates the
13
amount of data that the wireless client 105 has received. The throughput rate indicator 465h indicates the throughput rate at which data is received at the wireless client 105.
The memory 455 can also store a plurality of instructions executable by a processor 470. The foregoing instructions when executed by processor 470 to create and initialized each record 465 when a wireless client 105 commences data services from the SGSN 310. When a data packet for a wireless client 105 is transmitted by the server side port 450b(l) to the SGSN 310, the identity of the wireless client 105 is determined by the processor 470. Upon determination of the identity of the wireless client 105, the SGSN received data indicator 465c is incremented by the processor 470 by the amount of data in the data packet. When a data packet is received at client side port 450b(2) for a wireless client 105, the identity of the wireless client 105 is determined, and the SGSN sent data indicator 465 d and the BSC received data indicator are incremented by the processor 470 by the amount of data in the data packet. In the foregoing manner, the amount of data that is sent and received for each wireless client 105 via SGSN 310 is tracked, as well as the amount of data received at the BSC 312. When a Quality of Service Parameter is received from the wireless client 105, the processor 470 examines the parameter to determine the throughput rate at which the data is being received at the wireless client 105. Based on the throughput rate, the processor 470 determines the amount of data that has been received at the wireless client 105, and correspondingly, the amount of data transmitted from the base station controller 312. The BSC sent indicator 465g of the record associated with the wireless client 105 is then incremented.
The memory 455, processor 470, upstream ports 450a, and downstream ports 450b are interconnected by a bus 475 which facilitates the transmission of signals therebetween.
14
The wireless content switch 125 is discussed further in U.S. Patent Application Serial No. 09/839,830 entitled "System and Method for Wireless Packet Data Content Switch," which is commonly owned and assigned with the present application and in U.S. Patent Application Serial No. 09/884,663 entitled "Packet Retransmission in Wireless Packet Data Networks," which is commonly owned and assigned with the present application and both of which are hereby incorporated by reference.
Referring now to FIGURE 5, diere is illustrated a signal flow diagram describing the operation of the network described in FIGURE 3. When wireless client 105 initiates an internet session with SGSN 310, the SGSN 310 transmits a Link Layer Control signal (signal 505) to the wireless client 105. The Link Layer Control signal 405 includes a field which indicates the amount of buffer memory allocated at the SGSN 310 for the wireless client 105. The foregoing link layer control signal 405 is also received at the client side port 450a(2). Upon receipt of the link layer control signal 405, the field indicating the amount of buffer memory allocated to the SGSN 310 is stored at the memory allocated indicator 465b in the record 465 associated with the wireless client 105 (action 510) by wireless content switch 125.
Additionally, a packet flow control message (signal 511) is transmitted by the SGSN 310 to the BSC 312. The packet flow control message is received at the wireless content switch, client side port 450(2). The packet flow control message includes the amount of buffer memory that is allocated for the wireless client 105 at the BSC 312. The wireless content switch 125 stores the amount of buffer memory that is allocated for the wireless client 105 at the BSC memory allocated indicator 465e (action 512) in the record associated with the wireless client 105.
15
Additionally, a QOS negotiation occurs between the SGSN 310, BSC 312, and the wireless client 105 (signals 513). The foregoing signals are received by the wireless content switch 125, at the client side port 450b(2). During the QOS negotiation, the throughput rate at which data is transmitted from the BSC 312 to the wireless client 105 is transmitted, The throughput rate is stored (action 514) at the throughput rate indicator 465h of the record associated with the wireless client 105 by the wireless content switch 125.
As packets (signal 515) are transmitted towards the wireless client 105, the packets are received at the SGSN 310 via server side port 450b(l). Wireless content switch 125 determines the identity of the wireless client 105 and increments the data received indicator 465c in the record 465 associated with the wireless client 105 (action 525).
When the SGSN 310 transmits data packets (signal 530) to the wireless client 105, the packets are received at wireless content switch 125 via the client side port 450b(2). The wireless content switch 125 determines the identity of the wireless client 105 and increments the SGSN data sent indicator 465d and BSC data received indicator 465f in the record 465 associated with the wireless client 105 by the amount of data in the packets (action 535).
When the wireless client 105 receives the data packets, signal 430, the wireless client 105 transmits an acknowledgment (signal 540) towards the content server 110. The acknowledgment indicates the last contiguous packet received, as well as the amount of available memory at the wireless client 105. The signal is received at wireless content switch 125 at the server side port 450b(l). The wireless content switch 125 determines the identity of the wireless client 105 and compares the amount of memory available at the wireless client 105 with the combined estimated amount of available allocated memory at the SGSN 310 and BSC 312 for the wireless client 105.
16
The amount of available allocated memory at the SGSN 310 for the wireless client 105 is determined by subtracting the used allocated memory from the value in the allocated memory indicator 465b in the record 465 associated with the wireless client 105. The amount of used allocated memory is determined by subtracting the value in the sent data indicator 465d from the value in the received data indicator 465c in the record 465 associated with the wireless client 105.
The amount of available allocated memory at the BSC 312 for wireless client 105 is deteπnined by subtracting the used allocated memory from the value in the BSC allocated memory indicator 465e. The amount of used allocated memory is determined by subtracting the value in the BSC sent data indicator 465f from the value in the BSC sent indicator 465g in the record 465 associated with the wireless client 105.
The lesser of the amount of available allocated memory at the SGSN 310 and BSC 312 and the available memory at the wireless client 105 is inserted into the acknowledgment (action 545). The acknowledgment is then transmitted towards the content server 110 via an upstream port 450a (signal 540').
Although the foregoing detailed description describes certain embodiments with a degree of specificity, it should be noted that the foregoing embodiments are by way of example, and are subject to modifications, substitutions, or alterations without departing from the spirit or scope of the invention. For example, one embodiment can be implemented as sets of instructions resident in memory 455. In another embodiment, the wireless content switch 125 may be disposed between the SGSN 310 and the BSC 312. Those skilled in the art will recognize that physical storage of instructions physically changes the medium upon which it is stored electronically, magnetically, or chemically so that the medium carries
17
computer readable information. Accordingly, the inventions are only limited by the following claims, and equivalents, thereof.
18