IP Library Granted Patent US 9,143,454
Granted Patent B2
US 9,143,454 · App. 14/516,953 · Granted Sep 22, 2015

System and method for a TCP mapper

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,143,454
App. No.
14/516,953
Granted
Sep 22, 2015
Kind
B2
Abstract

A system for congestion control of traffic in a network that uses Transmission Control Protocol (TCP) includes a plurality of TCP congestion control programs having one or more parameters, a plurality of TCP congestion control units running the TCP congestion control programs, and a TCP mapper adapted to map incoming TCP traffic flow from a plurality of incoming TCP traffic flows to the TCP congestion control units based on at least one of (a) the type of application program from which the incoming TCP traffic flow originated (b) the type of network for which the incoming TCP traffic flow is destined, (c) parameters related to network performance (d) network constraints (e) source of the incoming TCP traffic flow, and (f) destination of the incoming TCP traffic flow.

Claims (93)

1. A method for congestion control of traffic in a network that uses Transmission Control Protocol (TCP), wherein said traffic includes at least one incoming TCP traffic flow originating from at least one TCP sending host and destined for at least one receiving destination, and that includes a plurality of TCP congestion control programs and at least one TCP congestion control unit, each of the at least one TCP congestion control unit running one of said plurality of TCP congestion control programs, said method comprising:

mapping a first incoming TCP traffic flow originating from a first of said at least one TCP sending host, to a first of said plurality of TCP congestion control programs using a TCP mapper, wherein said mapping is based on at least one of

(a) the type of application program from which the first incoming TCP traffic flow originated,

(b) the type of network for which the first incoming TCP traffic flow is destined,

(c) parameters related to network performance,

(d) network constraints,

(e) source of the first incoming TCP traffic flow, and

(f) destination of the first incoming TCP traffic flow; and

wherein said TCP mapper is connected to said at least one TCP sending host over the network; and

performing one or more heuristics and tuning at least one of the one or more parameters of a first of the plurality of TCP congestion control programs based on results of said one or more heuristics,

wherein said one or more heuristics is selected from the group consisting of:

estimating channel capacity,

estimating a buffer bloat, and

determining one or more measures based on said estimating of the buffer bloat.

2. The method of claim 1 , further comprising performing one or more heuristics and tuning at least one parameter of said first TCP congestion control program based on results of said one or more heuristics.

3. The method of claim 2 , wherein said one or more heuristics comprises

determining goodput as a fraction of the rate of the traffic transmitted by said TCP host.

4. The method of claim 2 , wherein said one or more heuristics comprises determining whether a packet loss is due to a congestion event;

wherein said determining comprises at least one of

determining the number of consecutive packets lost within at least one of one or more burst losses; and

determining the ratio of packets lost within the one or more burst losses to all packet losses.

5. The method of claim 4 , wherein said determining whether a packet loss is due to a congestion event comprises

determining the number of consecutive packets lost within at least one of one or more burst losses; and

comparing said number of consecutive packets lost to a threshold number.

6. The method of claim 4 , wherein said determining whether a packet loss is due to a congestion event comprises

determining the ratio of packets lost within the one or more burst losses to all packet losses; and

comparing said ratio of packets lost to a threshold ratio during a time window.

7. The method of claim 2 , wherein said one or more heuristics comprises estimating channel capacity using inter-packet arrival time.

8. The method of claim 2 , wherein said one or more heuristics comprises estimating channel capacity using inter-acknowledgement message arrival time.

9. The method of claim 2 , wherein said one or more heuristics comprises estimating channel capacity using variance of latency of packets within a burst of packets.

10. The method of claim 2 , wherein said one or more heuristics comprises estimating channel capacity using loss rate of packets within a burst of packets.

11. A method for congestion control of traffic in a network that uses Transmission Control Protocol (TCP), wherein said traffic includes one or more incoming TCP traffic flows originating from at least one TCP sending host and destined for at least one receiving destination, and that includes a plurality of TCP congestion control programs and at least one TCP congestion control unit running one of said plurality of TCP congestion control programs, each of said plurality of TCP congestion control programs having one or more corresponding parameters, said method comprising:

terminating, by a TCP mapper acting as a midstream TCP proxy, the one or more incoming TCP traffic flows;

processing all of the one or more terminated incoming TCP traffic flows, wherein said processing comprises

mapping, using the TCP mapper, all of the terminated one or more incoming TCP traffic flows to one or more of said plurality of TCP congestion control programs, and

wherein said mapping is based on a plurality of

(a) the type of application program from which the first incoming TCP traffic flow originated,

(b) the type of network for which the first incoming TCP traffic flow is destined,

(c) parameters related to network performance,

(d) network constraints,

(e) source of the first incoming TCP traffic flow, and

(f) destination of the first incoming TCP traffic flow; and

wherein said TCP mapper is connected to said at least one TCP sending host over the network; and

performing one or more heuristics and tuning at least one of the one or more parameters of a first of the plurality of TCP congestion control programs based on results of said one or more heuristics,

wherein said one or more heuristics comprise

estimating channel capacity,

estimating a buffer bloat, and

determining one or more measures based on said estimating of the buffer bloat.

12. The method of claim 11 , wherein said estimating of buffer bloat comprises

recording a round trip time (RTT) corresponding to each of a plurality of packets for a source-destination pair;

storing smallest recorded RTT as an estimate of nominal RTT of the connection, wherein said smallest recorded RTT corresponds to a first of said plurality of packets; and

for every packet after said first packet, calculating a differential using said estimate of nominal RTT.

13. The method of claim 11 , wherein said estimating of buffer bloat is performed for a current pair of packets corresponding to a source destination combination, said estimating comprising

comparing an inter-arrival time at the destination (IATD) between the current pair of packets to an inter-arrival time at the source (IATS) between the current pair of packets,

said comparing comprising calculating a difference between said IATD and said IATS.

14. The method of claim 13 , wherein said estimating of the buffer bloat comprises summing the difference corresponding to the current pair of packets with one or more differences corresponding to one or more pairs of packets previous to the current pair of packets.

15. The method of claim 14 , further comprising calculating an average buffer bloat for the current pair of packets, and estimating a true unbloated RTT using said average buffer bloat.

16. The method of claim 11 , further wherein

said estimating of buffer bloat comprises either

(1) recording a round trip time (RTT) corresponding to each of a plurality of packets for a source-destination combination, storing smallest recorded RTT as an estimate of nominal RTT of the connection, wherein said smallest recorded RTT corresponds to a first of said plurality of packets, and for every packet after said first packet, calculating a differential using said estimate of nominal RTT, or

(2) comparing an inter-arrival time at the destination (IATD) between a pair of packets within said plurality of packets for the source-destination combination with an inter-arrival time at the source (IATS) between the pair of packets;

wherein said determining one or more measures comprises

using said estimated buffer bloat to calculate an average buffer bloat,

calculating an adjusted RTT using said calculated average buffer bloat, and

calculating an ideal congestion window size using said estimated channel capacity; and

wherein said tuning at least one of the one or more parameters comprises

using said calculated ideal congestion window size to set an upper limit to a congestion window used by the one or more of said plurality of TCP congestion control programs.

17. The method of claim 16 , wherein said estimating channel capacity is performed using inter-acknowledgement message arrival time.

18. The method of claim 16 , wherein said estimating channel capacity is performed using variance of latency of packets within a burst of packets.

19. The method of claim 16 , wherein said estimating channel capacity is performed using loss rate of packets within a burst of packets.

20. A method for congestion control of traffic in a network that uses Transmission Control Protocol (TCP), wherein said traffic includes one or more incoming TCP traffic flows originating from at least one TCP sending host and destined for at least one receiving destination, and that includes a plurality of TCP congestion control programs and at least one TCP congestion control unit running one of said plurality of TCP congestion control programs, each of said plurality of TCP congestion control programs having one or more corresponding parameters, said method comprising:

terminating, by a TCP mapper acting as a midstream TCP proxy, the one or more incoming TCP traffic flows;

processing all of the one or more terminated incoming TCP traffic flows, wherein said processing comprises

mapping, using the TCP mapper, all of the terminated one or more incoming TCP traffic flows to one or more of said plurality of TCP congestion control programs, and

wherein said mapping is based on a plurality of

(a) the type of application program from which the first incoming TCP traffic flow originated,

(b) the type of network for which the first incoming TCP traffic flow is destined,

(c) parameters related to network performance,

(d) network constraints,

(e) source of the first incoming TCP traffic flow, and

(f) destination of the first incoming TCP traffic flow; and

wherein said TCP mapper is connected to said at least one TCP sending host over the network; and

performing one or more heuristics and tuning at least one of the one or more parameters of a first of the plurality of TCP congestion control programs based on results of said one or more heuristics,

wherein said one or more heuristics comprise

estimating channel capacity,

estimating a buffer bloat corresponding to each pair of packets within a plurality of pairs of packets corresponding to a source-destination combination, said estimating of the corresponding buffer bloat comprising

 calculating a difference between a corresponding inter-arrival time at the destination (IATD) between the pair of packets to a corresponding inter-arrival time at the source (IATS) between the pair of packets, and

 summing the difference corresponding to the pair of packets with one or more differences corresponding to one or more pairs of packets previous to the pair of packets,

calculating an average buffer bloat corresponding to each pair of packets using said estimated buffer bloat,

estimating a true unbloated RTT using said calculated average buffer bloat, and

determining whether one or more burst loss events are due to congestion by

 calculating one or more differences between said average buffer bloat and said estimated buffer bloat for each pair of packets, and

 correlating said calculated one or more differences to said one or more burst loss events.

Assignments (8)
CHANGE OF NAME Recorded Mar 31, 2026
From: ADEIA MEDIA HOLDINGS LLC
To: ADEIA MEDIA HOLDINGS INC.
Reel/Frame 075306/0115 →
SECURITY INTEREST Recorded May 28, 2025
From: ADEIA INC. (F/K/A XPERI HOLDING CORPORATION); ADEIA HOLDINGS INC.; ADEIA MEDIA HOLDINGS INC.; ADEIA IMAGING LLC; ADEIA MEDIA LLC; ADEIA MEDIA SOLUTIONS INC.; ADEIA SEMICONDUCTOR BONDING TECHNOLOGIES INC.; ADEIA TECHNOLOGIES INC.; ADEIA GUIDES INC.; ADEIA SOLUTIONS LLC; ADEIA SEMICONDUCTOR ADVANCED TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR SOLUTIONS LLC; ADEIA SEMICONDUCTOR INTELLECTUAL PROPERTY LLC; ADEIA SEMICONDUCTOR TECHNOLOGIES LLC; ADEIA PUBLISHING INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 071454/0343 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2025
From: ADAPTIV NETWORKS INC.
To: ADEIA MEDIA HOLDINGS LLC
Reel/Frame 069975/0375 →
SECURITY INTEREST Recorded Apr 2, 2023
From: ADAPTIV NETWORKS INC.
To: BDC CAPITAL INC.
Reel/Frame 063232/0415 →
SECURITY INTEREST Recorded Mar 28, 2023
From: ADAPTIV NETWORKS INC.
To: BDC CAPITAL INC.
Reel/Frame 063174/0621 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2020
From: LIVEQOS INC.
To: ADAPTIV NETWORKS INC.
Reel/Frame 052148/0115 →
ASSET PURCHASE AGREEMENT Recorded Jan 27, 2020
From: LIVEQOS INC.
To: ADAPTIV NETWORKS INC.
Reel/Frame 051708/0706 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 17, 2014
From: WILLIAMS, MATTHEW ROBERT; VEMULAPALI, MOHAN KRISHNA; NEBOGATOV, URI; BARNES, SHANE DANIEL; KLEMETTI, MIIKA ANTTONI; MAHENDRAN, VIJAYENDRAN
To: LIVEQOS INC.
Reel/Frame 033971/0535 →