Controlling TCP data transmission
First Claim
1. A method, comprising:
- detecting, by a mobile device, a handover for the mobile device;
receiving, by the mobile device via a Transmission Control Protocol (TCP) session between the mobile device and a remote TCP server, a sequentially first TCP data packet after the handover;
generating, by the mobile device, a first acknowledgement (ACK) associated with the sequentially first TCP data packet, wherein the first ACK comprises a first Selective ACK (SACK) option that causes the remote TCP server to enter a slow speed period that exists between the handover and a slow-start process, a TCP congestion window is set in minimum during the slow speed period, and a speed of sending TCP data packets is limited by the TCP congestion window that is kept in minimum;
determining, by the mobile device, a gap between data in the sequentially first TCP data packet and data received before the handover, wherein the gap is determined when a most right edge in the first SACK option is larger than a cumulative ACK sequence number of the first ACK;
removing, by the mobile device in response to the gap between the data in the sequentially first TCP data packet and the data received before the handover, the first SACK option from the first ACK; and
sending, by the mobile device, the first ACK in which the first SACK option is removed to the remote TCP server via the TCP session, wherein the first SACK option has one or more boundary items, each including a left edge and a right edge.
1 Assignment
0 Petitions
Accused Products
Abstract
The disclosure includes a method for rapidly recovering the speed of TCP transmission after a cross technology handover experienced by a mobile device. In the method, the mobile device receives a sequentially first TCP data packet after the cross technology handover completes via a TCP session between the mobile device and a remote TCP server, generates a first acknowledgement (ACK) associated with the sequentially first TCP data packet, where the first ACK comprises a first Selective ACK (SACK) option, removes the first SACK option from the first ACK when a gap exists between data in the sequentially first TCP data packet and data received before the cross technology handover occurs, and sends the first ACK without the first SACK option to the remote TCP server via the TCP session. Because the ACK is without the SACK option when the gap exists, the speed of TCP transmission will be recovered rapidly.
16 Citations
17 Claims
-
1. A method, comprising:
-
detecting, by a mobile device, a handover for the mobile device; receiving, by the mobile device via a Transmission Control Protocol (TCP) session between the mobile device and a remote TCP server, a sequentially first TCP data packet after the handover; generating, by the mobile device, a first acknowledgement (ACK) associated with the sequentially first TCP data packet, wherein the first ACK comprises a first Selective ACK (SACK) option that causes the remote TCP server to enter a slow speed period that exists between the handover and a slow-start process, a TCP congestion window is set in minimum during the slow speed period, and a speed of sending TCP data packets is limited by the TCP congestion window that is kept in minimum; determining, by the mobile device, a gap between data in the sequentially first TCP data packet and data received before the handover, wherein the gap is determined when a most right edge in the first SACK option is larger than a cumulative ACK sequence number of the first ACK; removing, by the mobile device in response to the gap between the data in the sequentially first TCP data packet and the data received before the handover, the first SACK option from the first ACK; and sending, by the mobile device, the first ACK in which the first SACK option is removed to the remote TCP server via the TCP session, wherein the first SACK option has one or more boundary items, each including a left edge and a right edge. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A mobile device, comprising:
-
a non-transitory memory comprising instructions; and one or more processors in communications with the memory, wherein the one or more processors are configured to execute the instructions to; detect a handover for the mobile device; receive, via a Transmission Control Protocol (TCP) session between the mobile device and a remote TCP server, a sequentially first TCP data packet after the handover; generate a first acknowledgement (ACK) associated with the sequentially first TCP data packet, wherein the first ACK comprises a first Selective ACK (SACK) option that causes the remote TCP server to enter a slow speed period that exists between the handover and a slow-start process, a TCP congestion window is set in minimum during the slow speed period, and a speed of sending TCP data packets is limited by the TCP congestion window that is kept in minimum; determine a gap between data in the sequentially first TCP data packet and data received before the handover, wherein the gap is determined when a most right edge in the first SACK option is larger than a cumulative ACK sequence number of the first ACK; remove, in response to the gap between the data in the sequentially first TCP data packet and the data received before the handover, the first SACK option from the first ACK; and send the first ACK in which the first SACK option is removed to the remote TCP server via the TCP session, wherein the first SACK option has one or more boundary items, each including a left edge and a right edge. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product comprising computing executable instructions stored on a non-transitory medium that when executed by a processor cause the processor to:
-
detect a handover for a mobile device; receive, via a Transmission Control Protocol (TCP) session between the mobile device and a remote TCP server, a sequentially first TCP data packet after the handover; generate a first acknowledgement (ACK) associated with the sequentially first TCP data packet, wherein the first ACK comprises a first Selective ACK (SACK) option that causes the remote TCP server to enter a slow speed period, that exists between the handover and a slow-start process, a TCP congestion window is set in minimum during the slow speed period, and a speed of sending TCP data packets is limited by the TCP congestion window that is kept in minimum; determine a gap between data in the sequentially first TCP data packet and data received before the handover, wherein the gap is determined when a most right edge in the first SACK option is larger than a cumulative ACK sequence number of the first ACK; remove in response to the gap between the data in the sequentially first TCP data packet and the data received before the handover, the first SACK option from the first ACK; and send the first ACK in which the first SACK option is removed from the mobile device to the remote TCP server via the TCP session, wherein the first SACK option has one or more boundary items, each including a left edge and a right edge. - View Dependent Claims (16, 17)
-
Specification