Performance enhancement of transmission control protocol (TCP) for wireless network applications
AssigneeNokia Internet Communications, Inc.
InventorsXiang Li, Jing Wu, Shiduan Cheng, Jian Ma
Life of this patent
Estimating the term…
Abstract
A new Fast Recovery Plus (FR+) mechanism, and associated method, for wireless and/or mobile network applications to control data flow and avoid network congestion in a TCP/IP packet-switched network.
Claims30
A method of flow control and congestion avoidance congestion in a network, comprising:
- transmitting, at a source node, data packets to a destination node, via at least an intermediate node;
- receiving, at the destination node, data packets transmitted from the source node, via the intermediate node, and generating a duplicate ACK back to the source node to inform the source node that a data packet was received out-of-order in the network and serves as an indication that a data packet has been lost;
- upon receipt of a designated number of duplicate ACKs, at the source node, determining that a data packet has been lost;
- initializing a counter, at the source node, and recording a congestion window CWND, a slow start threshold Ssthresh, and a maximal sequence number SN that has been sent into the network;
- upon receipt of a next duplicate ACK, at the source node, recording its acknowledged sequence number ACK_SN;
- determining, at the source node, if the acknowledged sequence number ACK_SN is no more than a recorded sequence number SN;
- if the acknowledged sequence number ACK_SN is more than the recorded sequence number SN, incrementing the counter, at the source node, and re-transmitting a lost packet;
- if the acknowledged sequence number ACK_SN is no more than the recorded sequence number SN, determining if the packet loss is due to a transmission error;
- and
- if the packet loss is due to the transmission error, setting, at the source node, the slow start threshold Ssthresh to Max(CWND, (Ssthresh+CWND)/2), wherein said CWND and Ssthresh exhibit values previously recorded.
A method of flow control and congestion avoidance a source node in a network including a destination node, comprising:
- upon receipt of duplicate ACKs from a destination node indicating that a data packet has been lost, re-setting a counter and recording a congestion window CWND, a slow start threshold Ssthresh, and a current maximal sequence number SN that has been sent into the network;
- upon receipt of a next duplicate ACK, at the source node, recording its acknowledged sequence number ACK_SN;
- determining if the acknowledged sequence number ACK_SN is no less than a recorded sequence number SN;
- if the acknowledged sequence number ACK_SN is no less than the recorded sequence number SN, incrementing the counter, and re-transmitting a lost packet;
- if the acknowledged sequence number ACK_SN is no more than the recorded sequence number SN, determining if the packet loss is due to a transmission error;
- and
- if the packet loss is due to the transmission error, setting the slow start threshold Ssthresh to Max(CWND, (Ssthresh+CWND)/2), wherein said CWND and Ssthresh exhibit values previously recorded.
A data network for wireless and/or mobile network applications, comprising:
- a source node for transmitting data packets;
- a destination node for receiving the data packets from the source node and generating duplicate ACKs when the arrival of data packets is out-of-order;
- and
- at least one intermediate node disposed between said source node and said destination node;
- wherein said source node includes a Fast Recovery Plus (FR+) algorithm which, when activated upon receipt duplicate ACKs, performs the following:
- initializing a counter and recording a congestion window CWND, a slow start threshold Ssthresh, and a current maximal sequence number SN that has been sent into the network;
- upon receipt of a next duplicate ACK, recording its acknowledged sequence number ACK_SN;
- determining if the acknowledged sequence number ACK_SN is no less than a recorded sequence number SN;
- if the acknowledged sequence number ACK_SN is no less than the recorded sequence number SN, incrementing the counter, and re-transmitting a lost packet;
- if the acknowledged sequence number ACK_SN is no more than the recorded sequence number SN, determining if the packet loss is due to a transmission error;
- and
- if the packet loss is due to the transmission error, setting the slow start threshold Ssthresh to Max(CWND, (Ssthresh+CWND)/2), wherein said CWND and Ssthresh exhibit values previously recorded.
A computer readable medium having an enhanced Fast Recovery Plus (FR+) algorithm for wireless network applications, via a network, when executed by a host system, performs:
- upon receipt of duplicate ACKs from a remote system, determining that a data packet has been lost;
- initializing a counter, and recording a congestion window CWND, a slow start threshold Ssthresh, and a maximal sequence number SN that has been sent into the network;
- upon receipt of a next duplicate ACK, recording its acknowledged sequence number ACK_SN;
- determining if the acknowledged sequence number ACK_SN is no more than a recorded sequence number SN;
- if the acknowledged sequence number ACK_SN is more than the recorded sequence number SN, incrementing the counter, and re-transmitting a lost packet;
- if the acknowledged sequence number ACK_SN is no more than the recorded sequence number SN, determining if the packet loss is due to a transmission error;
- and if the packet loss is due to the transmission error, setting the slow start threshold Ssthresh to Max(CWND, (Ssthresh+CWND)/2), wherein said CWND and Ssthresh exhibit values previously recorded.
A host system comprising:
- a processor for generating data;
- a network module connected to a remote system, via a network, having a data recovery mechanism installed therein for flow control and congestion avoidance in the network, the data recovery mechanism, activated when a data packet has been lost, performing the following:
- recording a congestion window “CWND” and a slow start threshold “Ssthresh” set to regulate a transmission rate of data packets to avoid congestion in the network;
- determining if the data packet loss is due to a transmission error;
- and
- if the data packet loss is due to a transmission error, setting the slow start threshold “Ssthresh” to Max(“CWND”, (“Ssthresh”+“CWND”)/2), wherein the congestion window “CWND” and the slow start threshold “Ssthresh” exhibit values previously recorded.
A packet-switched telecommunication network comprising:
- network nodes interconnected by transmission links;
- user terminals connected to the network nodes, said user terminals acting as source nodes which transmit data packets and destination nodes which receive data packets;
- wherein each user terminal includes a data recovery mechanism installed therein for flow control and congestion avoidance in the network, and activated when data packets have been lost, said data recovery mechanism performing the following:
- recording a congestion window “CWND” and a slow start threshold “Ssthresh” set to regulate a transmission rate of data packets to avoid congestion in the network;
- determining if the data packet loss is due to a transmission error;
- and
- if the data packet loss is due to a transmission error, setting the slow start threshold “Ssthresh” to Max(“CWND”, (“Ssthresh”+“CWND”)/2), wherein the congestion window “CWND” and the slow start threshold “Ssthresh” exhibit values previously recorded.
Dependencies are inferred from the claim text.