IP Library › Granted Patent US 9,350,672
Granted Patent B2
US 9,350,672 · App. 14/209,395 · Granted May 24, 2016

Performance enhancement and congestion control of multipath protocol packets in a heterogeneous network environment with multipath transport protocols

Inventors: Sourabh Suresh Patwardhan (San Jose, CA); Ajay A. Kulkarni (San Jose, CA)
Assignee: CISCO TECHNOLOGY, INC.
H04L47/193H04L43/0858H04L47/32
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,350,672
App. No.
14/209,395
Granted
May 24, 2016
Kind
B2
Abstract

An example method for performance enhancement in a heterogeneous network environment with multipath transport protocols is provided and includes receiving packets according to Transmission Control Protocol (TCP packets) and packets according to multipath TCP (MPTCP packets) in a network environment, determining that TCP packets are experiencing congestion in comparison to the MPTCP packets, and delaying acknowledgement packets (MPTCP ACK packets) corresponding to the MPTCP packets for a pre-determined time interval. In a specific embodiment, a local MPTCP proxy intercepts the TCP packets and forwards underlying data of the TCP packets according to MPTCP.

Claims (61)

1. A method, comprising:

receiving packets according to Transmission Control Protocol (TCP packets), and packets according to multipath TCP (MPTCP packets) in a network environment, the TCP and MPTCP comprising different network protocols;

determining that TCP packets are experiencing more congestion in comparison to the MPTCP packets, based on explicit congestion notification (ECN) vectors; and

delaying acknowledgement packets (MPTCP ACK packets) corresponding to the MPTCP packets for a pre-determined time interval, thereby increasing a round trip time (RTT) for the MPTCP packets while decreasing congestion experienced by the TCP packets.

2. The method of claim 1 , wherein the ECN vectors comprise a first ECN vector and a second ECN vector, wherein determining that TCP packets are experiencing congestion based on the ECN vectors comprises:

generating the first ECN vector including a first number of ECN bits set for each flow of TCP packets during a first time interval;

generating the second ECN vector including a second number of ECN bits set for each flow of the TCP packets during a subsequent second time interval;

comparing the second ECN vector with the first ECN vector, wherein a net positive difference between the second ECN vector and the first ECN vector indicates increasing congestion for the TCP packets; and

tracking flow of the MPTCP packets (MPTCP flows), wherein a lack of net decrease in the MPTCP flows combined with increasing congestion for the TCP packets indicates that the TCP packets are experiencing more congestion in comparison to the MPTCP packets.

3. The method of claim 1 , wherein the delaying the MPTCP ACK packets comprises buffering the MPTCP ACK packets in a local buffer.

4. The method of claim 1 , further comprising triggering MPCTP flow control mechanisms.

5. The method of claim 1 , wherein if the TCP packets do not stop experiencing congestion after the pre-determined time interval, the MPTCP ACK packets are not further delayed.

6. The method of claim 1 , wherein if the TCP packets stop experiencing congestion during the pre-determined time interval, the MPTCP ACK packets are not further delayed.

7. The method of claim 1 , wherein a local MPTCP proxy intercepts the TCP packets and forwards underlying data of the TCP packets according to MPTCP.

8. The method of claim 7 , wherein the local MPTCP proxy snoops a connection with a local endpoint, wherein the method further comprises:

intercepting a request from the local endpoint for a TCP connection with a remote endpoint in the network;

establishing a TCP connection with the local endpoint;

initiating an MPTCP connection with the remote endpoint;

buffering the TCP packets from the local endpoint in a local buffer;

transmitting TCP acknowledgement packets (TCP ACK packets) corresponding to the TCP packets to the local endpoint; and

transmitting the underlying data according to MPTCP to the remote endpoint.

9. The method of claim 8 , wherein a remote MPTCP proxy connected to the remote endpoint intercepts an MPTCP connection request from the local MPTCP proxy and establishes the MPTCP connection, wherein the remote MPTCP proxy establishes another TCP connection with the remote endpoint, wherein the remote MPTCP proxy intercepts the MPTCP packets from the local MPTCP proxy and forwards the underlying data to the remote endpoint according to TCP.

10. The method of claim 8 , wherein a round trip time (RTT) value is observed and recorded on the MPTCP connection established by the local MPTCP proxy, wherein the TCP ACK packets are delayed proportionally to the RTT value.

11. Non-transitory tangible media that includes instructions for execution, which when executed by a processor, is operable to perform operations comprising:

receiving TCP packets and MPTCP packets in a network environment;

determining that TCP packets are experiencing more congestion in comparison to the MPTCP packets, the TCP and MPTCP comprising different network protocols, based on ECN vectors; and

delaying MPTCP ACK packets corresponding to the MPTCP packets for a pre-determined time interval, thereby increasing a round trip time (RTT) for the MPTCP packets while decreasing congestion experienced by the TCP packets.

12. The media of claim 11 , wherein the ECN vectors comprise a first ECN vector and a second ECN vector, wherein determining that TCP packets are experiencing congestion based on the ECN vectors comprises:

generating the first ECN vector including a first number of ECN bits set for each flow of TCP packets during a first time interval;

generating the second ECN vector including a second number of ECN bits set for each flow of the TCP packets during a subsequent second time interval;

comparing the second ECN vector with the first ECN vector, wherein a net positive difference between the second ECN vector and the first ECN vector indicates increasing congestion for TCP packets; and

tracking MPTCP flow, wherein a lack of net decrease in the MPTCP flow combined with increasing congestion for TCP packets indicates that TCP packets are experiencing congestion in comparison to MPTCP packets.

13. The media of claim 11 , wherein a local MPTCP proxy intercepts the TCP packets and forwards underlying data of the TCP packets according to MPTCP.

14. The media of claim 13 , wherein the local MPTCP proxy snoops a connection with a local endpoint, wherein the method further comprises:

intercepting a request from the local endpoint for a TCP connection with a remote endpoint in the network;

establishing a TCP connection with the local endpoint;

initiating an MPTCP connection with the remote endpoint;

buffering the TCP packets from the local endpoint in a local buffer;

transmitting TCP ACK packets corresponding to the TCP packets to the local endpoint; and

transmitting the underlying data according to MPTCP to the remote endpoint.

15. The media of claim 14 , wherein a remote MPTCP proxy connected to the remote endpoint intercepts an MPTCP connection request from the local MPTCP proxy and establishes the MPTCP connection, wherein the remote MPTCP proxy establishes another TCP connection with the remote endpoint, wherein the remote MPTCP proxy intercepts the MPTCP packets from the local MPTCP proxy and forwards the underlying data to the remote endpoint according to TCP.

16. An apparatus, comprising:

a memory element for storing data; and

a processor, wherein the processor executes instructions associated with the data, wherein the processor and the memory element cooperate, such that the apparatus is configured for:

receiving TCP packets and MPTCP packets in a network environment, the TCP and MPTCP comprising different network protocols;

determining that TCP packets are experiencing more congestion in comparison to the MPTCP packets, based on ECN vectors; and

delaying MPTCP ACK packets corresponding to the MPTCP packets for a pre-determined time interval, thereby increasing a round trip time (RTT) for the MPTCP packets while decreasing congestion experienced by the TCP packets.

17. The apparatus of claim 16 , wherein the ECN vectors comprise a first ECN vector and a second ECN vector, wherein determining that TCP packets are experiencing congestion based on the ECN vectors comprises:

generating the first ECN vector including a first number of ECN bits set for each flow of TCP packets during a first time interval;

generating the second ECN vector including a second number of ECN bits set for each flow of the TCP packets during a subsequent second time interval;

comparing the second ECN vector with the first ECN vector, wherein a net positive difference between the second ECN vector and the first ECN vector indicates increasing congestion for TCP packets; and

tracking MPTCP flow, wherein a lack of net decrease in the MPTCP flow combined with increasing congestion for TCP packets indicates that TCP packets are experiencing congestion in comparison to MPTCP packets.

18. The apparatus of claim 16 , wherein the apparatus includes a local MPTCP proxy, wherein the local MPTCP proxy intercepts the TCP packets and forwards underlying data of the TCP packets according to MPTCP.

19. The apparatus of claim 18 , wherein the local MPTCP proxy snoops a connection with a local endpoint connected to the apparatus, wherein the method further comprises:

intercepting a request from the local endpoint for a TCP connection with a remote endpoint in the network;

establishing a TCP connection with the local endpoint;

initiating an MPTCP connection with the remote endpoint;

buffering the TCP packets from the local endpoint in a local buffer in the memory element;

transmitting TCP ACK packets corresponding to the TCP packets to the local endpoint; and

transmitting the underlying data according to MPTCP to the remote endpoint.

20. The apparatus of claim 19 , wherein a remote MPTCP proxy connected to the remote endpoint intercepts an MPTCP connection request from the local MPTCP proxy and establishes the MPTCP connection, wherein the remote MPTCP proxy establishes another TCP connection with the remote endpoint, wherein the remote MPTCP proxy intercepts the MPTCP packets from the local MPTCP proxy and forwards the underlying data to the remote endpoint according to TCP.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2014
From: PATWARDHAN, SOURABH SURESH; KULKARNI, AJAY A.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 032432/0708 →
Continuity (1)
Related Publication 20150263959A1 · Sep 17, 2015