Claims
- 1. A wireless content switch for transmitting and receiving data packets and acknowledgments, said wireless content switch comprising:
an upstream port for receiving one or more data packets and for transmitting one or more acknowledgments to a content source; a downstream port for transmitting the one or more data packets and for receiving one or more acknowledgments from a mobile station; at least one processing unit coupled to the upstream and down stream ports; memory for storing the one or more data packets responsive to receiving the data packets; and optimization code stored in the memory, the optimization code, when executed, performing the steps of:
receiving at least one data packet at the upstream port; transmitting the data packet via the downstream port; calculating a data packet round trip time; determining if expiration of round trip time occurred prior to reception of acknowledgment for data packet; if expiration of round trip time occurred, transmit a probe via the downstream port; determine if receive probe acknowledgment; and if no probe acknowledgment received, retransmit probe at fixed interval.
- 2. The wireless content switch of claim 1 wherein the step of retransmitting the probe at a fixed interval includes retransmitting the probe at the retransmission timeout expiry.
- 3. The wireless content switch of claim 1, further comprising optimization code, when executed, performing the step of:
if probe acknowledgment received, transmit requested data packet.
- 4. The wireless content switch of claim 3 wherein the step of transmitting requested data packet includes the following steps:
determining if the probe acknowledgment acknowledges a byte less than the probe sequence number; if the byte acknowledged is less than the probe sequence number, retransmit the data packet; and if the byte acknowledged is not less than the probe sequence number, transmit the next data packet received.
- 5. The wireless content switch of claim 4 wherein the step of determining if the probe acknowledgment acknowledges a byte less than the probe sequence number includes determining if the probe acknowledgment acknowledges the entire data packet.
- 6. The wireless content switch of claim 1 wherein the step of calculating the round trip time includes calculating the wireless round trip time (WRTT).
- 7. The wireless content switch of claim 6 wherein the step of calculating the WRTT includes calculating the measured round trip times multiplied by a queuing delay.
- 8. The wireless content switch of claim 1 wherein the step of transmitting a probe includes transmitting a small probe.
- 9. In a packet data network comprising a wired network and a mobile station, a method of optimizing retransmission functions, the method comprising:
receiving at least one data packet from the wired network; storing the data packet; transmitting the data packet to the mobile station; calculating a round trip time for the data packet; determining if the acknowledgment for the data packet is received prior to the expiration of the round trip time; if the acknowledgment is not received, transmitting a probe to the mobile station; and responsive to receiving an acknowledgment to the transmitted probe, transmitting the requested data packet.
- 10. The method of claim 9 wherein the step of calculating the round trip time includes calculating the wireless round trip time (WRTT).
- 11. The method of claim 10 wherein the step of calculating the wireless round trip time includes calculating the round trip time multiplied by a queuing delay.
- 12. The method of claim 9 wherein the step of transmitting a probe to the mobile station includes transmitting a probe with a sequence number equal to the last sent sequence number.
- 13. The method of claim 12 wherein the step of step of transmitting a probe to the mobile station includes transmitting a small probe.
- 14. The method of claim 9, further comprising the step of:
if no acknowledgment is received for the probe, retransmitting the probe at a fixed interval.
- 15. The method of claim 14 wherein the step of retransmitting the probe at the fixed interval includes retransmitting the probe at the expiry of the retransmission timeout.
- 16. The method of claim 9, wherein the step of transmitting the requested data packet includes retransmitting the data packet.
- 17. The method of claim 16, wherein the step of retransmitting the data packet includes retransmitting the data packet in response to a probe acknowledgment of a byte less than the probe sequence number.
- 18. The method of claim 9, wherein the step of transmitting the requested data packet includes transmitting the next data packet.
- 19. The method of claim 18, wherein the step of transmitting the next data packet includes transmitting the next data packet in response to a probe acknowledgment of the data packet.
- 20. A wireless content switch for persisting a content source during periods of a mobile station unavailability, said wireless content switch comprising:
an upstream port for receiving one or more data packets and for transmitting one or more acknowledgments to the content source; a downstream port for transmitting the one or more data packets and for receiving one or more acknowledgments from the mobile station; at least one processing unit coupled to the upstream and down stream ports; memory for storing the one or more data packets responsive to receiving the data packets; and persist code stored in the memory, the persist code, when executed, performing the steps of:
receiving at least one data packet at the upstream port; transmitting the data packet via the downstream port; calculating a data packet round trip time; determining if expiration of round trip time occurred or an external mobile unavailable message is received; if expiration of round trip time occurred or the mobile is unavailable, transmitting a persist acknowledgment via the upstream port; calculating and executing a dead timer; determining if a dead timer event has occurred; and if a dead timer event has occurred, transmitting an open acknowledgment via the upstream port.
- 21. The wireless content switch of claim 20 wherein the step of calculating the round trip time includes calculating the wireless round trip time (WRTT).
- 22. The wireless content switch of claim 21 wherein the step of calculating the WRTT includes calculating the measured round trip times multiplied by a queuing delay.
- 23. The wireless content switch of claim 20 wherein the step of determining if an external mobile unavailable message is received includes determining if a radio status message is received.
- 24. The wireless content switch of claim 20 wherein the step of determining if an external mobile unavailable message is received includes determining if a suspend message is received.
- 25. The wireless content switch of claim 20 wherein the step of transmitting a persist acknowledgment via the upstream port includes transmitting an acknowledgment with the window size set to zero (0).
- 26. The wireless content switch of claim 20 wherein the step of transmitting a persist acknowledgment via the upstream port includes transmitting an acknowledgment with the sequence number of the last acknowledged data packet.
- 27. The wireless content switch of claim 20 wherein the step of executing the dead timer includes executing a computer based system timer
- 29. he wireless content switch of claim 20 wherein the step of transmitting an open acknowledgment via the upstream port includes transmitting an acknowledgment with the sequence number one less than the last acknowledged data packet.
- 29. In a packet data network comprising a wired network and a mobile station, a method of persisting the server, the method comprising:
receiving at least one data packet from the wired network; transmitting the data packet to the mobile station; calculating a round trip time for the data packet; determining if the round trip time has expired or an external mobile unavailable message is received; if expiration of round trip time occurred or the mobile is unavailable, transmitting a first acknowledgment to the wired network; calculating and executing a dead timer; determining if a dead timer event has occurred; and if a dead timer event has occurred, transmitting a second acknowledgment to the wired network.
- 30. The method of claim 29 wherein the step of calculating the round trip time includes calculating the wireless round trip time (WRTT).
- 31. The method of claim 30 wherein the step of calculating the WRTT includes calculating the measured round trip times multiplied by a queuing delay.
- 32. The method of claim 29 wherein the step of determining if an external mobile unavailable message is received includes determining if a radio status message is received.
- 33. The method of claim 29 wherein the step of determining if an external mobile unavailable message is received includes determining if a suspend message is received.
- 34. The method of claim 29 wherein the step of transmitting a first acknowledgment includes transmitting an acknowledgment with the window size set to zero (0).
- 35. The method of claim 29 wherein the step of transmitting a first acknowledgment includes transmitting an acknowledgment with the sequence number of the last acknowledged data packet.
- 36. The method of claim 29 wherein the step of executing the dead timer includes executing a computer based system timer.
- 37. The method of claim 29 wherein the step of transmitting a second acknowledgment includes transmitting an acknowledgment with the sequence number one less than the last acknowledged data packet.
- 38. A wireless content switch for regulating the rate of data packet transmissions to a mobile station, said wireless content switch comprising:
an upstream port for receiving one or more data packets and for transmitting one or more acknowledgments to a content source; a downstream port for transmitting the one or more data packets and for receiving one or more acknowledgments from a mobile station; at least one processing unit coupled to the upstream and down stream ports; memory for storing the one or more data packets responsive to receiving the data packets; and rate regulation code stored in the memory, the rate regulation code, when executed, performing the steps of:
receiving at least one data packet at the upstream port; transmitting the data packet via the downstream port; calculating a buffer trigger; determining if buffer trigger is met; if buffer trigger is met, transmitting a first acknowledgment to the content source; monitoring air interface to the mobile station; determining if air interface degradation is encountered; if degradation encountered, implementing the drain the packet functionality; and if no degradation encountered, transmitting a second acknowledgment to the content source
- 39. The wireless content switch of claim 38 wherein the step of calculating a buffer trigger further comprises determining if the last data packet transmitted to the mobile station minus the last data packet acknowledged from the mobile station is greater than the sum of the default bucket size plus the wireless round trip time multiplied by the current leak rate.
- 40. The wireless content switch of claim 39 wherein the step of calculating the wireless round trip time includes calculating the measured round trip times multiplied by a queuing delay.
- 41. The wireless content switch of claim 38 wherein the step of calculating a buffer trigger further comprises:
setting the buffer trigger according to the following equation: BT=True if (Pk,s−Ak-1)>=(Bmax+CLR*WRTT)else, BT is False.
- 42. The wireless content switch of claim 38 wherein the step of transmitting a first acknowledgment to the content source includes transmitting an acknowledgment to the content source with the window size set to zero(0).
- 43. The wireless content switch of claim 38 wherein the step of transmitting a second acknowledgment to the content source includes transmitting an acknowledgment to the content source with the window size set to the calculated transmitted window size.
- 44. In a packet data network comprising a wired network and a mobile station, a method of rate regulation, the method comprising:
receiving at least one data packet from the wired network; transmitting the data packet to the mobile station; calculating a buffer trigger; determining if buffer trigger is met; if buffer trigger is met, transmitting a persist server acknowledgment to the wired network; monitoring air interface to the mobile station; determining if air interface degradation is encountered; if degradation encountered, implementing the drain the packet functionality; and if no degradation encountered, transmitting a restore server acknowledgment to the wired network.
- 45. The method of claim 44 wherein the step of calculating a buffer trigger further comprises determining if the last data packet transmitted to the mobile station minus the last data packet acknowledged from the mobile station is greater than the sum of the default bucket size plus the wireless round trip time multiplied by the current leak rate.
- 46. The method of claim 45 wherein the step of calculating the wireless round trip time includes calculating the measured round trip times multiplied by a queuing delay.
- 47. The method of claim 44 wherein the step of calculating a buffer trigger further comprises:
setting the buffer trigger according to the following equation: BT=True if (Pk,s−Ak-1)>=(Bmax+CLR*WRTT)else, BT is False.
- 48. The method of claim 44 wherein the step of transmitting a persist server acknowledgment includes transmitting an acknowledgment with the window size set to zero(0).
- 49. The method of claim 44 wherein the step of transmitting a restore server acknowledgment includes transmitting an acknowledgment with the window size set to calculated transmitted window size.
- 50. A wireless content switch for expedited congestion window increases at a content server during retransmissions of data packets to a mobile station, said wireless content switch comprising:
an upstream port for receiving one or more data packets and for transmitting one or more acknowledgments to the content server; a downstream port for transmitting the one or more data packets and for receiving one or more acknowledgments from the mobile station; at least one processing unit coupled to the upstream and down stream ports; memory for storing the one or more data packets responsive to receiving the data packets; and expedited congestion window code stored in the memory, the expedited congestion window code, when executed, performing the steps of:
receiving at least two data packets at the upstream port; transmitting the data packets via the downstream port; monitoring acknowledgments from the mobile source; detecting a lost data packet or lost acknowledgment; executing retransmission of detected data packet; receiving cumulative acknowledgment, wherein the cumulative acknowledgment represents the retransmitted data packet and all other received data packets prior to the reception by the mobile station of the retransmitted packet; determining if the content server has timed out; if the content server has not timed out, transmitting the cumulative acknowledgment to the content server; and if the content server has timed out, separating the cumulative acknowledgment in to single data packet acknowledgments and transmitting the individual single data packet acknowledgments to the content server.
- 51. The wireless content switch of claim 50 wherein the step of detecting lost data packets or lost acknowledgments includes determining if the length of time for an acknowledgment is greater than the wireless round trip time.
- 52. The wireless content switch of claim 51 wherein the step of calculating the wireless round trip time includes calculating the measured round trip times multiplied by a queuing delay.
- 53. The wireless content switch of claim 50 wherein the step of determining if the content server has timed out includes determining if the content server has implemented congestion control and avoidance mechanisms.
- 54. The wireless content switch of claim 50 wherein the step of determining if the content server has implemented congestion avoidance mechanisms includes determining if the content server has decreased window sizes of data packets.
- 55. In a packet data network comprising a content server and a mobile station, a method of expedited congestion window increases, the method comprising:
receiving at least two data packets from the content server; transmitting the data packets to the mobile station; monitoring acknowledgments from the mobile source; detecting a lost data packet or lost acknowledgment; executing retransmission of detected data packet; receiving cumulative acknowledgment, wherein the cumulative acknowledgment represents the retransmitted data packet and all other received data packets prior to the reception by the mobile station of the retransmitted packet; determining if the content server has timed out; if the content server has not timed out, transmitting the cumulative acknowledgment to the content server; and if the content server has timed out, separating the cumulative acknowledgment in to single data packet acknowledgments and transmitting the individual single data packet acknowledgments to the content server.
- 56. The method of claim 55 wherein the step of detecting a lost data packet or lost acknowledgment includes determining if the length of time for an acknowledgment is greater than the wireless round trip time.
- 57. The method of claim 56 wherein the step of calculating the wireless round trip time includes calculating the measured round trip times multiplied by a queuing delay.
- 58. The method of claim 55 wherein the step of determining if the content server has timed out includes determining if the content server has implemented congestion control and avoidance mechanisms.
- 59. The method of claim 55 wherein the step of determining if the content server has implemented congestion avoidance mechanisms includes determining if the content server has decreased window sizes of data packets.
- 60. A wireless content switch for increased goodput in a cell of a wireless network during transmissions of data packets to a mobile station present in the cell, said wireless content switch comprising:
an upstream port for receiving one or more data packets and for transmitting one or more acknowledgments to the content server; a downstream port for transmitting the one or more data packets and for receiving one or more acknowledgments from the mobile station; at least one processing unit coupled to the upstream and down stream ports; memory for storing the one or more data packets responsive to receiving the data packets; and increased goodput code stored in the memory, the increased goodput code, when executed, performing the steps of:
determining bit error rate (BER) for the cell; calculating the optimal maximum segment size (MSS); setting Transmission Control Protocol (TCP) MSS to optimal MSS; receiving at least one data packet at the upstream port; transmitting the data packet via the downstream port; and monitoring acknowledgments from the mobile source.
- 61. The wireless content switch of claim 60 wherein the step of determining bit error rate for the cell includes receiving the bit error rate for the cell from the wireless network.
- 62. The wireless content switch of claim 60 wherein the step of calculating the optimal maximum segment size (MSS) includes calculating an optimal maximum segment size less than the bit error rate.
- 63. The wireless content switch of claim 62 wherein the step of calculating the optimal maximum segment size (MSS) includes calculating an optimal maximum segment size according to the following equation:
- 64. In a packet data network comprising a cell and a mobile station of a wireless network and a wired network, a method of increased goodput, the method comprising:
determining bit error rate (BER) for the cell; calculating the optimal maximum segment size (MSS); setting Transmission Control Protocol (TCP) MSS to optimal MSS; receiving at least one data packet from the wired network; transmitting the data packet to the mobile station; and monitoring acknowledgment from the mobile source.
- 65. The wireless content switch of claim 64 wherein the step of determining bit error rate for the cell includes receiving the bit error rate for the cell from the wireless network.
- 66. The wireless content switch of claim 64 wherein the step of calculating the optimal maximum segment size (MSS) includes calculating an optimal maximum segment size less than the bit error rate.
- 67. The wireless content switch of claim 66 wherein the step of calculating the optimal maximum segment size (MSS) includes calculating an optimal maximum segment size according to the following equation:
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the priority benefit of U.S. Provisional Applications for patent Ser. No. 60/356,380, entitled “Wireless Optimized TCP,” filed Feb. 11, 2002 and is a continuation-in-part of U.S. patent application Ser. No. 09/884,663 entitled “Packet Retransmission in a Wireless Packet Data Networks,” filed on Jun. 19, 2001, and is a continuation-in-part of U.S. patent application Ser. No. 10/289,659 entitled “Retransmission Control in Wireless Packet Data Networks,” filed on Nov. 7, 2002, all of which are hereby incorporated by reference for all purposes.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60356380 |
Feb 2002 |
US |
Continuation in Parts (2)
|
Number |
Date |
Country |
Parent |
10289659 |
Nov 2002 |
US |
Child |
10364179 |
Feb 2003 |
US |
Parent |
09884663 |
Jun 2001 |
US |
Child |
10364179 |
Feb 2003 |
US |