The present invention relates generally to communications, and in specific embodiments, to communicating connection control parameters through in-band signaling.
The Transmission Control Protocol (TCP) is a core protocol corresponding to the transport layer of Internet Protocol (IP) suite, which serves as an intermediate layer between the application layer (e.g., the program) and the internet protocol (IP) layer. TCP provides reliable and ordered delivery of data from one program on one computer to another program on another computer, and is used by major Internet applications, e.g., browsing, email, file transfer, etc.
Modern day TCP algorithms are typically designed to address specific issues (e.g., congestion control, throughput, latency, fairness, quality of service (QoS), wireless compatibility, etc.), and consequently may perform better under some network conditions than others. For instance, a faster error recovery (FACK) TCP algorithm designed to effectively control congestion in wire-line networks may not perform well in wireless networks due to being unable to distinguish between congestion related packet loss (e.g., packets dropped from an overflowing buffer, etc.) and non-congestion related packet loss (e.g., packet not received correctly due to interference, packet corruption, signal fading, drop outs, etc.). Similarly, a detection of out-of-order (DOOR) TCP algorithm designed for efficiently handling re-ordered packets may be unable to efficiently maintain network objectives related to throughput, traffic priority, fairness, and/or Quality of Service.
Conventional networks implement a single/static TCP algorithm on a given piece of network equipment (e.g., a router, switch, etc.) such that all TCP connections constructed or operated by that piece of network equipment comply with a common set of TCP parameters (as defined by the TCP algorithm configured on the device). As a result, conventional TCP algorithms may be incapable of adapting to constantly changing usage demands which may be caused by, inter alia, packet flows changing to cross different networking environments at different times.
Technical advantages are generally achieved, by embodiments of this disclosure which describe transmission control protocol (TCP) connection control parameter in-band signaling.
In accordance with an embodiment, a method for in-band signaling is provided. In this example, the method includes receiving one or more packets over a TCP connection extending between a source endpoint and a destination endpoint, embedding a sequence number pattern in one or more acknowledgment (ACK) messages, and sending the one or more ACK messages to the source endpoint. The sequence number pattern is pre-associated with an in-band signaling message. An apparatus for performing this method is also provided.
In accordance another embodiment, yet another method for in-band signaling is provided. In this example, the method includes receiving one or more packets over a TCP connection extending between a source endpoint and a destination endpoint, and transmitting ACK messages to the source endpoint in accordance with an ACK sequence pattern. The ACK sequence pattern is pre-associated with an in-band signaling message. An apparatus for performing this method is also provided.
In accordance with another embodiment, yet another method for in-band signaling is provided. In this example, the method includes transmitting one or more packets over a TCP connection extending between the source endpoint and a destination endpoint, receiving one or more ACK messages, and detecting a sequence number pattern or an ACK sequence pattern conveyed by the one or more ACK messages. The sequence number pattern or the ACK sequence pattern is pre-associated with an in-band signaling message. An apparatus for performing this method is also provided.
For a more complete understanding of the present disclosure, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
Corresponding numerals and symbols in the different figures generally refer to corresponding parts unless otherwise indicated. The figures are drawn to clearly illustrate the relevant aspects of the embodiments and are not necessarily drawn to scale.
The making and using of embodiments of this disclosure are discussed in detail below. It should be appreciated, however, that the concepts disclosed herein can be embodied in a wide variety of specific contexts, and that the specific embodiments discussed herein are merely illustrative and do not serve to limit the scope of the claims. Further, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of this disclosure as defined by the appended claims. Aspects of this disclosure may be applied to various communication protocols. Notably, while much of this disclosure is discussed in the context of transmission control protocol (TCP), embodiments discussed herein may be applied to any communication protocol. Indeed, aspects of this disclosure may be particularly useful for protocols in which signaling overhead for control/manipulation of communication parameters has a significant impact on network performance.
Techniques for dynamically optimizing TCP connections are disclosed in U.S. Non-Provisional application Ser. No. 13/802,329 filed on Mar. 13, 2013, entitled “Dynamic Optimization of TCP Connections,” which is incorporated herein by reference as if reproduced in its entirety. One such technique includes adjusting TCP parameters for existing TCP connections in accordance with various criteria, e.g., traffic flow characteristics, network characteristics, etc. The TCP connection typically extends from a source endpoint to a destination endpoint. While the TCP connection may be bi-directional, the forward and reverse paths operate independently, and may even take different paths through the network. As discussed herein, the term TCP connection refers to the forward path unless otherwise specified.
Adjustments to TCP parameters (e.g., varying transmission rate, switching from one TCP algorithm to another, etc.) is typically controlled by the TCP source endpoint, which operates independently from the TCP destination endpoint. However, in some situations it may be desirable for the TCP destination endpoint to have the capability to adjust (or to request adjustment of) TCP connection parameters. One approach for achieving such a capability is to establish a separate control channel between the TCP endpoints to carry TCP parameter adjustment requests. However, a separate control channel may consume network resources (e.g., bandwidth, processing, etc.) and reduce overall network efficiency. Accordingly, an alternative mechanism for allowing TCP destination endpoints to adjust TCP connection parameters is desired.
Aspects of this disclosure allow destination endpoints to adjust (or request adjustment of) TCP parameters through in-band signaling. More specifically, a destination endpoint achieves in-band singling by communicating acknowledgment (ACK) messages in a fashion that triggers adjustment of TCP parameters by the source endpoint. In one embodiment, in-band signaling is achieved through embedding sequence number patterns in acknowledgment (ACK) messages. In another embodiment, in-band signaling is achieved by transmitting ACK messages (duplicates or otherwise) in an ACK sequence pattern. The sequence number or ACK sequence pattern may be pre-associated with a TCP adjustment request or triggering condition, and consequently may elicit TCP parameter adjustment by the source endpoint. For example, a source endpoint may interpret a received sequence number or ACK sequence pattern as a request to adjust one or more TCP parameters, e.g., increase/decrease a transmission rate, pause/resume transmission, adjust a TCP packet size, switch from one TCP congestion control algorithm to another, etc. Alternatively, a source endpoint may interpret a received sequence number or ACK sequence pattern as reporting a triggering condition (e.g., a congestion condition, a characteristic of a destination network, etc.) that causes the source endpoint to adjust one or more TCP parameters. In an embodiment, the sequence number or ACK sequence pattern may communicate that a destination network or address is associated with a certain network environment, such as a wireless network environment, a reordering environment, a fat-pipe environment, or any other network environment. In another embodiment, the sequence number or ACK sequence pattern is associated with an in-band signaling message. The in-band signaling message may include a text message (e.g., when the source endpoint is a mobile device), or an alert (e.g., an amber alert).
Additionally, in-band signaling may also be used to modify entries in a history or status table. A history table may be used to associate one or more characteristics with a destination or source address. By way of example, a history table may associate a particular source address with a wireless network environment. A profile table may be used to assign/re-assign a TCP congestion control algorithm to a new/persistent connection. The history and profile tables may be used in tandem to decide how to manage TCP parameters when communicating a traffic flow. In one example, a source endpoint may interpret a received sequence number pattern or ACK sequence pattern as a request to create, delete, or modify an entry in a profile or history table.
Furthermore, in-band signaling may also be used to initialize a transition from a normal communication mode to an in-band communication mode. For example, the destination endpoint may send a certain sequence number pattern ACKs sequence pattern to prompt the source endpoint to transition from the normal communication mode to the in-band communication mode (or vice versa). While in the normal communication mode, ACK messages may be used to verify whether or not packets are successfully received. During the in-band communication mode, ACK messages may be used to adjust TCP parameters and/or entries in profile/history tables. Further, during the in-band communication mode, in-band signaling (e.g., ACK sequence patterns, etc.) may be used to manipulate associations (e.g. the meanings) of sequence number or ACK sequence patterns during the normal communication mode (or during the any other communication mode). By way of example, an association or meaning of a given ACK sequence pattern may be changed from “reduce the TCP transmission rate” to “pause TCP transmission” during periods of high congestion. Implementation of the in-band communication mode may allow in-band signaling to include shorter sequence number patterns and/or ACK sequence patterns by virtue of not having to facilitate (or otherwise be differentiated from) traditional ACK/NACK signaling.
Advantageously, the in-band signaling techniques of this disclosure effectively piggyback TCP adjustment control information on existing ACK messages (e.g., messages that are already being communicated to verify packet reception), thereby providing the destination endpoint with TCP adjustment functionality without significantly increasing overhead associated with the TCP connection. Notably, the ACK messages may be sent as separate messages, or otherwise piggybacked to TCP messages communicated over the reverse TCP connection.
TCP algorithms may operate by increasing/decreasing their transmission rate (e.g., window size) to manage or avoid congestion.
Even though the TCP transmissions sequence 200 depicts typical TCP phases, other TCP algorithms may include other phases affecting flow and congestion control. As mentioned above, TCP algorithms can have more phases (or less phases) than the four shown in the TCP transmission sequence 200. That said, TCP algorithms having different characteristics (e.g., parameters, phases, etc.) may attempt to address a common problem of fundamental flow and congestion control in the network.
Considerations when designing a TCP algorithm may include the initial TCP transmission rate, history of similar traffic coming from nearby locations (e.g., as might be stored in a history table), the rate at which the initial transmission rate is increased, which slow start algorithm to implement (if any), information specified in a profile table, which events or criteria constitute a congestion event, to what extent decreasing the TCP transmission rate will mitigate congestion, the rate at which to increase the TCP transmission rate following a congestion condition, what parameters to change (if any upon approaching the past congestion event transmission rate (or whether this rate should be reached at all), etc. One or more of these considerations may depend on the choice of TCP algorithm and the setting of TCP parameters.
In some embodiments, at least some of the responsibility for managing TCP connections may be offloaded from a server to a middlebox. A middlebox may be a source endpoint, and may be configured to dynamically adjust TCP connection parameters and/or history/profile table entries in accordance with in-band signaling received from the destination endpoint. A middlebox may also be a destination endpoint, and may be configured to request or other trigger adjustments to TCP connection parameters and/or history/profile table entries by communicating in-band signaling to the source endpoint.
In some embodiments, a single middlebox may be implemented on the server side of the network.
In other embodiments, a middlebox is implemented on the client side as well as the server side.
In-band signaling can be used to request or trigger adjustments to TCP parameters. One technique for achieving in-band signaling is to embed sequence number patterns in ACK messages.
Another technique for achieving in-band signaling is to transmit ACK messages in accordance with an ACK sequence pattern.
Accordingly, source endpoints may interpret sequence number patterns and/or ACK sequence patterns as a request to adjust TCP parameters (e.g., increase a transmission rate, switch from one TCP congestion algorithm to another, etc.) or as reporting a triggering condition (e.g., a destination network characteristic such as wireless environment, a reordering environment, a fat-pipe environment, etc.).
In-band signaling can also be used to request adjustments to a history or profile table.
Accordingly, source endpoints may interpret ACK sequence patterns and/or sequence number patterns as requests to adjust history or profile tables.
In some embodiments, endpoints transition from a normal communication mode to an in-band communication mode to achieve more efficient in-band signaling. While in a normal communication mode, the source endpoint may analyze ACKs to determine whether or not a packet was successfully received. While in an in-band communication mode, the source endpoint may analyze ACKs to determine in-band signaling requests/reports, e.g., to adjust TCP parameter, to adjust history/profile table entry, etc.
Source endpoints may interpret ACK sequence patterns and/or sequence number patterns as an indication to transition between normal and in-band communication modes.
Although the description has been described in detail, it should be understood that various changes, substitutions and alterations can be made without departing from the spirit and scope of this disclosure as defined by the appended claims. Moreover, the scope of the disclosure is not intended to be limited to the particular embodiments described herein, as one of ordinary skill in the art will readily appreciate from this disclosure that processes, machines, manufacture, compositions of matter, means, methods, or steps, presently existing or later to be developed, may perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.