5-WAY TCP OPTIMIZATION
20170070433 ยท 2017-03-09
Assignee
Inventors
Cpc classification
H04W4/18
ELECTRICITY
H04L69/16
ELECTRICITY
H04L69/163
ELECTRICITY
H04W28/0273
ELECTRICITY
H04W80/06
ELECTRICITY
H04L47/27
ELECTRICITY
International classification
Abstract
A system and method optimizes the response speed and/or throughput of TCP sessions for web browsing and large-file applications. TCP sessions may be terminated in a TCP proxy. When a TCP sessions enters a slow-start phase or a fast retransmit phase, the congestion window is creased to above a threshold, or the transmission timer is set above a fixed threshold, or the slow-start threshold is set above a fixed threshold.
Claims
1. A machine-implemented method to optimize TCP performance in response speed and/or throughput over a network with possibly wireless links, comprising: placing a TCP termination proxy at a location, which is in the paths of a plurality of TCP sessions, TCP termination being a technology also known as TCP splicing or split TCP; the TCP termination device performing TCP optimization for each of said plurality of TCP sessions, the method further comprising: upon a said TCP session entering a slow-start phase or a fast retransmit phase, (1) setting the congestion window of said TCP session to above a fixed threshold; (2) or setting the retransmission timer of said TCP session to above a fixed threshold; (3) or setting the slow-start threshold of said TCP session to above a fixed threshold; (4) or a partial or full combination of (1), (2), and (3).
2. A machine-implemented method to optimize a TCP session in response speed and/or throughput over a network with possibly wireless links, comprising: upon said TCP session entering a slow-start phase or a fast retransmit phase, (1) setting the congestion window of said TCP session to above a fixed threshold; (2) or setting the retransmission timer of said TCP session to above a fixed threshold; (3) or setting the slow-start threshold of said TCP session to above a fixed threshold; (4) or a partial or full combination of (1), (2), and (3).
3. A TCP proxy for optimizing TCP performance in response speed and/or throughput over a network with possibly wireless links, comprising: at least a processor component; at least a memory component; and at least a communications components; wherein the TCP proxy is configured to: terminate a TCP session between 2 hosts in the TCP proxy, wherein TCP termination is a technology also known as TCP splicing or split TCP; optimize the TCP session, when said TCP session enters a slow-start phase or a fast retransmit phase, by (1) setting the congestion window of said TCP session to above a fixed threshold; (2) or setting the retransmission timer of said TCP session to above a fixed threshold; (3) or setting the slow-start threshold of said TCP session to above a fixed threshold; (4) or a partial or full combination of (1), (2), and (3).
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0020] The above and other objects and features in accordance with the present invention will become apparent from the following descriptions of embodiments in conjunction with the accompanying drawings, and in which:
[0021]
[0022]
DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
[0023] A system and method for optimizing TCP performance, called 5W (5 ways), comprises 5 component methods: (1) aggressive transmission (AT), (2) session steering (SS), (3) short-long session differentiation (SLD), (4) group control (GC), and (5) termination location (TL). The 5W system is designed especially for optimizing TCP performance over a mixed wired/wireless network. A TCP session that is optimized by the 5W method is called a 5W-TCP session.
[0024] The 5W system is designed to optimize user experience for 2 classes of application: web browsing, and large-file applications. Examples of large-file applications include software download, image or photo upload, video or music streaming, etc. For large-file applications, a critical metric is the speed of file transfer, which directly translates into throughput. For web browsing, a critical metric is the response (or completion) time of web page rendering.
[0025] While the 5W system is an integrated system and method, each component method is a separate optimization, which can be separately implemented for its own merits. In many cases, to produce the maximum benefits, it may be necessary to implement at least 3, or even all 5, of the components methods in an integrated manner.
[0026] In particular, the methods of AT, SS, and SLD are designed to reduce the response time of web browsing; the methods of GC and TL are designed to increase the throughput of large-file applications. The methods of SLD, SS, and TL are designed to optimize the performance of both web browsing and large-file applications. While AT is designed to optimize the response speed of web browsing, when used in an integrated manner with SS and SLD, it improves the throughput of large-file applications. While TL is specially designed to enhance large-file applications, when used in an integrated manner with SS and SLD, it improves the response speed of web browsing.
[0027] Aggressive transmission (AT) is a method to force the congestion control in a 5W-TCP session to send packets as fast as possible. The AT method is applied by setting or resetting certain parameters of a TCP session to specific values, without any further actions. The AT method can be applied and re-applied at any time during the lifetime of a TCP session.
[0028] The AT method is applied by setting the congestion window to above a threshold, or setting the retransmission timer to above a threshold, or setting the slow-start threshold to above a threshold, or by a full or partial combination of the above.
[0029] By default, a 5W-TCP session is started by applying the AT method. Optionally, after a Fast Retransmit or a Slow Start is initiated, the AT method is re-applied.
[0030] Optionally, the AT mode is used in conjunction with a SLD classifier-predictor. If a SLD classifier predicts a 5W-TCP session to be long (having a large amount of data to transfer), the 5W-TCP session will start without applying the AT method.
[0031] Session steering (SS) is a method to ensure that a group of correlated 5W-TCP sessions are optimized together for the benefits of an underlying application. For example, all TCP sessions for rendering a web page may be accelerated together to minimize the overall time to render the web page. The SS method may be embodied with a layer-4 switch to steer all the traffic of a group of correlated 5W-TCP sessions to a designated device for optimization. This method is best used in conjunction with GC (group control) and TL (termination location).
[0032] Session steering (SS) may also be used to consolidate TCP terminations at one place. In a mobile carrier network, many concurrent TCP sessions could be related to the activities of an individual user, or a group of users in proximity. It is beneficial to terminate these TCP sessions at the same physical device. For example, if a mobile user is browsing a web page, all the TCP sessions related to rendering a web page may be optimized together to produce the best user experience.
[0033] Optionally, the SS method is used to enhance caching. In most web acceleration systems, caching is added to reduce the latency of getting data from remote servers. The SS method allows a group of correlated TCP sessions to be terminated at the same physical device. By placing a cache at the same device, the cache hit rate will be higher.
[0034] In using SS, the definition of correlated sessions is without restriction and may depend on user applications. In one definition, all the TCP sessions initiated to render a web page are correlated. In another definition, all the TCP sessions started by a mobile or fixed device are correlated.
[0035] SLD is a method to differentiate TCP sessions based on the expected length of duration or the expected amount of data to transfer in a TCP session. For short sessions (having a small amount of data to transfer), a preferred performance metric is the session completion (response) time. For long sessions, a preferred performance metric is the average throughput (or goodput). For short sessions, there is no advantage to fine-tune transmission ratesthe session may be over before any changes in the transmission rate can impact the throughput. However, it makes sense to exercise rate control if the session is long. Therefore, for short sessions, it makes sense to apply AT from at the start; for long sessions, rate control makes sense and a preferred method is GC.
[0036] The SLD method may be embodied in a SLD classifier-predictor that classifies a TCP session based on its TCP header into a short or long session. The classifier-predictor may also predict the total number of bytes that a TCP session needs to transfer.
[0037] Optionally, a SLD classifier-predictor uses HTTP (hypertext transfer protocol) headers in making classification or predictions. In one embodiment, the HTTP header of a HTTP/TCP session is extracted and the header is used as the feature vector in a SLD classifier-predictor.
[0038] With group control (GC), the same CC (congestion control) policy is applied to all the TCP sessions in a group. By design, the TCP sessions in a group are correlated according to a definition. The definition of correlation is without restrictions. One definition of correlation may be that the total number of packets to transfer is less than a threshold. In another definition, all the TCP sessions that traverse a shared link are in the same group.
[0039] The GC method is embodied with a GC control system with an observation vector. A observation vector may include the percentage of TCP sessions in the group that is experiencing a similar event, as an element.
[0040] For example, the percentage of the TCP sessions in a group having 2 or more duplicate ACKs may be an element in the observation vector. If the percentage is high, the TCP rates in the group might be too high. When this happens, the GC control system may reduce the rates of TCP sessions in the group. On the other hand, if the percentage of the TCP sessions in a group having duplicate ACKs is low, the GC control system may increase the rates of the TCP sessions in the group.
[0041] Optionally, all TCP sessions in the same group may traverse a shared link. Optionally, all TCP sessions associated with a single web page may be in the same group. Optionally, all TCP sessions initiated from a single device may be in the same group. Optionally, all TCP sessions from all users within a pico-cell or micro-cell in a mobile carrier network may be in the same group.
[0042] TCP termination is a well-known technique to split a TCP session into 2 independent sessions via a proxy; this technique is variously known as TCP splicing, split TCP, or cascaded TCP. TCP termination provides a way to isolate the traffic on the 2 sides of the terminationin the ideal situation, the traffic on one side of the termination does not affect the traffic on the other side, and vice versa.
[0043] In the 5W system, TL (termination location) is a method to implement termination points. The TL method does not allow a termination point to become a new bottleneckthat is, the throughput of the termination device must be higher than the available bandwidth in the path. Optionally, TCP termination is employed together with content caching.
[0044] In accordance with the TL method, a place to terminate a plurality of TCP sessions is as follows. The termination point separates the path of each of the TCP sessions into 2 sides, such that the available bandwidths on the 2 sides of the point differ by a large amount, or that the variability of the available bandwidth on one side is much smaller or larger than that of the other side.
[0045] In accordance with the TL method, a preferred location for TCP termination in a TCP/IP (Internet Protocol) network is at the demarcation between 2 distinct sections of a path. For example, in a mobile carrier network, a good termination point is between the core network and a backhaul network (sometimes known as an access network). Another good termination point is at a base transmission station in a mobile carrier network. A good termination point for home or office networks is between a Wi-Fi wireless router and the fixed broadband link to the Internet.
[0046] A weakness of TCP is that the average throughput drops as RTT increases even when there is sufficient bandwidth in the path. Terminating a long-RTT session in the middle of the path may mitigate this problem. Ideally, if a TCP session is terminated exactly at the half-RTT point, its average throughput doubles.
[0047] While termination increases the average throughput of a TCP session, it also adds extra latency to the underlying application. Therefore, the decision to terminate a TCP session has to carefully weigh between the throughput and response speed requirements. For most large-file applications, termination usually adds throughput to the underlying application. To benefit web browsing, TCP termination must be implemented with minimal latency overhead. To help compensate the added termination latency, content caching may be added at the termination point.
[0048]
[0049]