1 - 2 - 6 - 8 - A - B - C - D - E - F - G - H - I - K - L - M - N - O - P - Q - R - S - T - U - V - W - X
TCP
Click on the red underlined text to get to the source
... sending rate for the current network path?" The question is not
answered explicitly, but each TCP connection determines the sending
rate by probing the network path and altering the congestion window ...
... congestion window
(cwnd) based on perceived congestion. Each TCP connection starts
with a pre-configured initial congestion window ...
... congestion window (ICW). Currently,
TCP allows an initial window of between one and four segments of
maximum segment size ...
... MSS) ([RFC2581], [RFC3390]). The TCP
connection then probes the network for available bandwidth ...
... of RTTs in slow-start before the TCP connection begins to fully use
the available bandwidth of the network ...
... address the issue of
choosing the initial congestion window for TCP, with RFC 3390prop
allowing an initial window of up to four segments ...
... Quick-Start Option
in the IP header of a TCP packet. Each router along the path could,
in turn, either approve the requested rate, reduce the requested
...
... Quick-Start Option,
or have not agreed to the Quick-Start rate request. TCP host B
communicates the final rate request to TCP ...
... transport-
level Quick-Start Response in an answering TCP packet.
If the Quick-Start Request ...
... Quick-Start Request is approved by all routers along the path,
then the TCP host can send at up to the approved rate for a window of
data. Subsequent transmissions will be governed by the default TCP ...
... TCP host can send at up to the approved rate for a window of
data. Subsequent transmissions will be governed by the default TCP
congestion control mechanisms of that connection ...
... IPv4 and for
IPv6 in Section 3, and is specified for TCP in Section 4. Section 6
consists mostly of a non-normative discussion ...
... In this section, we give an overview of the use of Quick-Start with
TCP to request a higher congestion window. The description in this
section is non-normative ...
... Quick-Start
with IP and TCP follows in Sections 3 and 4. Quick-Start could be
used in the middle of a connection ...
... sender of the status of the Quick-Start Request. For
example, when TCP is used, the TCP receiver sends feedback to the
...
... Quick-Start Request. For
example, when TCP is used, the TCP receiver sends feedback to the
sender ...
... sender using a Quick-Start Response option in the TCP header. In
addition, Quick-Start assumes a unicast ...
... Nonce to the sender using transport-level mechanisms; for TCP,
the receiver sends this information in the Quick-Start ...
... receiver sends this information in the Quick-Start Response in
the TCP header. In particular, the receiver computes the difference
between the Quick-Start ...
... If the request is approved by all the routers along the path, then
the TCP sender combines this allowed rate with the measurement of the
round-trip time ...
... sender combines this allowed rate with the measurement of the
round-trip time, and ends up with an allowed TCP congestion window.
This window is sent rate-paced over the next round-trip time ...
... IP
layer and both routers along the path approving the Quick-Start
Request, and the TCP receiver using the Quick-Start Response to
...
... receiver using the Quick-Start Response to
return information to the TCP sender. In this example, Quick-Start
...
... sender. In this example, Quick-Start
is used by TCP to establish the initial congestion window.
...
... Quick-Start Request. Section 4.2
discusses the Quick-Start Response from the TCP receiver to the TCP
...
... Quick-Start Response from the TCP receiver to the TCP
sender, and Section 4.4 discusses the TCP ...
... TCP
sender, and Section 4.4 discusses the TCP sender's mechanism for
determining if a Quick-Start Request ...
... The Quick-Start Mechanisms in TCP ...
... This section describes how the Quick-Start mechanism would be used in
TCP. We first sketch the procedure and then tightly define it in the
subsequent subsections.
...
... sender (say, host A) would like to use Quick-Start, the TCP
sender puts the requested sending rate ...
... Quick-Start Option in the IP header
of the TCP packet, called the Quick-Start Request packet. (We will
be somewhat loose in our use of "packet" vs. "segment ...
... Quick-Start
request failed. In this case, host A sends a Report of Approved Rate
with a Rate Report of zero, and uses TCP's default congestion control
procedure. For initial start ...
... sender also sends a Report of Approved Rate. In order to use
Quick-Start, the TCP host MUST use rate-based pacing [VH97] to
...
... host.
We note that the limitations of interrupt timing on computers can
limit the ability of the TCP host in rate-pacing the outgoing
packets.
...
...
When sending a Quick-Start Request, the TCP sender SHOULD send the
request on a packet that requires an acknowledgement, such as a SYN ...
... network path, as discussed above. (A
transport that uses TCP Control Block sharing [RFC2140], the
Congestion ...
... and suddenly needs to transmit a large amount of data.
Of the above, this document recommends that a TCP sender MAY attempt
to use Quick-Start ...
... to use Quick-Start in cases (1) and (2). It is NOT RECOMMENDED that
a TCP sender use Quick-Start for case (3) at the current time. Case
...
... Quick-Start for case (3) at the current time. Case
(3) requires external notifications not presently defined for TCP or
other transport protocols. Finally, a TCP ...
... TCP or
other transport protocols. Finally, a TCP SHOULD NOT use Quick-
Start for case (4) at the current time. Case (4) requires further
...
... Quick-Start Request.
As a general guideline, a TCP sender SHOULD NOT request a sending
rate larger than it is able to use over the next round-trip time ...
... The Quick-Start Response Option in the TCP header ...
...
In order to approve the use of Quick-Start, the TCP receiver responds
to the receipt of a Quick-Start Request ...
... Quick-Start Response,
using the Quick-Start Response Option in the TCP header. TCP's
Quick-Start ...
... using the Quick-Start Response Option in the TCP header. TCP's
Quick-Start Response option is defined as follows:
...
...
Figure 5: The Quick-Start Response Option in the TCP Header.
The first byte of the Quick-Start ...
... The first byte of the Quick-Start Response option contains the option
kind, identifying the TCP option.
The second byte of the Quick-Start ...
... Quick-Start Rate Request option.
The fourth byte of the TCP option contains the TTL Diff. The TTL
Diff contains the difference between the IP TTL ...
... Quick-Start Response Option, a Quick-Start Response Option of
eight bytes should not be a problem. The TCP Options field can
contain up to 40 bytes. Other TCP options that might be used in a
...
... eight bytes should not be a problem. The TCP Options field can
contain up to 40 bytes. Other TCP options that might be used in a
SYN or SYN ...
... TCP: Sending the Quick-Start Response ...
... Quick-Start Request, then a
Quick-Start Response option is included in the TCP header of the
corresponding acknowledgement packet. The Rate Request in the
Quick-Start ...
... Quick-Start Response option is set to the received value of the Rate
Request in the Quick-Start Option, or to a lower value if the TCP
receiver ...
... Quick-Start Request. If these checks are
not successful, then the Quick-Start Request failed, and the TCP host
MUST use the default TCP ...
... TCP host
MUST use the default TCP congestion window that it would have used
without Quick-Start ...
... QS Nonce sent in the Quick-Start Request, for
a received Rate Request of K, then the TCP host MUST NOT send
additional Quick-Start Requests ...
... If the checks of the TTL Diff and the Rate Request are successful,
and the TCP host is going to use the Quick-Start Request, it MUST
...
... in bytes per second, T is the measured
round-trip time in seconds, and H is the estimated TCP/IP header size
in bytes (e.g., 40 bytes).
...
... Quick-Start
mode, and while in Quick-Start mode, the TCP sender MUST use rate-
based pacing to pace out Quick-Start ...
... Quick-Start packets at the approved rate.
If, during Quick-Start mode, the TCP sender receives ACKs for packets
...
... decreased to the amount that has actually been used so far. This is
necessary because when the Quick-Start Response is received, the TCP
sender's round-trip ...
... Quick-Start Request packet. In this case, an
overly large round-trip-time estimate could have caused the TCP
sender to translate the approved Quick-Start ...
... in bytes
per second into a congestion window that is larger than needed, with
the TCP sender receiving an ACK ...
... before the entire congestion window has been used. Thus, when the
TCP sender receives the first ACK for a Quick-Start ...
... RTT estimate of T
seconds, would translate the Rate Request of R KBps to a congestion
window of R*T/B packets. The TCP sender would send the Quick-Start
...
... begin to receive acknowledgements for Quick-Start packets after T/2
seconds. Following the paragraph above, the TCP sender would then
reduce its congestion window ...
... Quick-Start mode is exited and the congestion window adjusted
if necessary, the TCP sender returns to using the default congestion-
...
... specified by those congestion control mechanisms. For example, if
the TCP sender was in slow-start prior to the Quick-Start Request ...
... RFC3742] along with Quick-Start. With Limited Slow-Start, the TCP
sender limits the number of packets by which the congestion window ...
... Quick-Start is used at the beginning of a connection, before any
packet marks or losses have been reported, the TCP host MAY use the
reported Rate Request to set the slow-start ...
... connection to avoid
overshooting the path capacity. (The initial value of ssthresh is
allowed to be arbitrarily high, and some TCP implementations use the
size of the advertised window for ssthresh [RFC2581].)
...
... ACK packets on the reverse path. For example, for
the largest Quick-Start Request of 1.3 Gbps, given a TCP sender with
1500-byte ...
... sender with
1500-byte packets and a TCP receiver with delayed acknowledgements
acking every other packet, this could result in 17.3 Mbps of
...
... One possibility, in cases with large Quick-Start Requests, would be
for TCP receivers to send Quick-Start Requests to request bandwidth ...
... for the acknowledgement traffic on the reverse path. However, in our
view, a better approach would be for TCP receivers to simply control
the rate of sending acknowledgement traffic ...
... traffic. The optimal future
solution would involve the explicit use of congestion control for TCP
acknowledgement traffic, as is done now for the acknowledgement
...
... congestion control for acknowledgement traffic, the
TCP receiver could limit its sending rate for ACK ...
...
* The RTT: TCP naturally measures the RTT of the path and therefore
should have a sample of the RTT ...
... RTT of the path and therefore
should have a sample of the RTT. If the TCP receiver does not have
a measurement of the round-trip time ...
... data packet can be used.
With this set of information, the TCP receiver can restrict its
sending rate ...
... the ACK Ratio K should have a minimum value of two. When the ACK
Ratio is greater than two, and the TCP sender receives
acknowledgements each acknowledging more than two data packets ...
... acknowledgements each acknowledging more than two data packets, the
TCP sender may want to use rate-based pacing to control the
burstiness of its outgoing data traffic ...
...
In the absence of explicit congestion control mechanisms, the TCP end
nodes cannot determine the packet drop rate for pure acknowledgement
...
... traffic. This is true with or without Quick-Start. However, the TCP
receiver could limit its increase in the sending rate ...
... ACK packets
from one round-trip time to the next. The TCP receiver would do this
by halving the ACK Ratio ...
... TCP: Responding to a Loss of a Quick-Start Packet ...
...
For TCP, we have defined a "Quick-Start packet" as one of the packets
sent in the window immediately following a successful Quick-Start
Request ...
... ECN-marking of a Quick-Start
packet, TCP MUST revert to the default congestion control procedures
that would have been used if the Quick-Start Request ...
... Quick-Start is used for setting the
initial window, and a packet from the initial window is lost or
marked, then the TCP sender MUST then slow-start with the default
...
... TCP: A Quick-Start Request for a Larger Initial Window ...
... Quick-Start is used. This section discusses the
following issues that arise when Quick-Start is used by TCP to
request a larger initial window: (1) interactions with Path MTU
Discovery (PMTUD ...
...
It is always possible for a TCP SYN packet carrying a Quick-Start
request to be dropped in the network due to congestion ...
... Web servers
investigated, no connection is established if the TCP SYN packet
contains an unknown IP option (and for 43% of the Web servers ...
... Web servers, no
connection is established if the TCP SYN packet contains an IP
TimeStamp Option ...
... or middleboxes along that path.
If the TCP sender doesn't receive a response to the SYN or SYN ...
... ACK packet containing the Quick-Start Request, then the
TCP sender SHOULD resend the SYN or SYN ...
... RTO
(retransmission timeout) to three seconds, though many TCP
implementations set the initial RTO to one second. For a TCP SYN
packet ...
... TCP
implementations set the initial RTO to one second. For a TCP SYN
packet sent with a Quick-Start request, the TCP sender ...
... RTO to one second. For a TCP SYN
packet sent with a Quick-Start request, the TCP sender SHOULD use an
initial RTO ...
... for a Quick-Start Request, and it is also using bits in the TCP
header to negotiate ECN-capability with the TCP host ...
... bits in the TCP
header to negotiate ECN-capability with the TCP host at the other
end, then the drop of a TCP SYN packet ...
... TCP host at the other
end, then the drop of a TCP SYN packet could be due to congestion, a
router ...
... router or middlebox dropping the packet because of the information
in the TCP header negotiating ECN. In this case, the sender could
...
... sender could resend the dropped packet
with only the ECN request in the TCP header, resending the TCP SYN
packet without either the Quick-Start or the ECN ...
... with only the ECN request in the TCP header, resending the TCP SYN
packet without either the Quick-Start or the ECN requests if the
...
... Quick-Start or the ECN requests if the
second TCP SYN packet is dropped. The second choice seems
reasonable, given that a TCP SYN packet today is more likely to be
...
... second TCP SYN packet is dropped. The second choice seems
reasonable, given that a TCP SYN packet today is more likely to be
blocked due to policies that discard packets with IP Options than due
...
... IP Options than due
to policies that discard packets with ECN requests in the TCP header
[MAF04].
...
... This section discusses the following issues that arise when Quick-
Start is used by TCP to request a larger window in the middle of a
connection, such as after an idle period ...
... connection that has not yet had a congestion event (that
is, a marked or dropped packet), the TCP sender is not restricted
in the rate that it requests. As an example, a server might wait
...
... experienced a congestion event, and that has not had a recent
mobility event, the TCP sender can determine the largest
congestion window ...
... sender can determine the largest
congestion window that the TCP connection achieved since the last
packet drop and translate this to a sending rate to get the
...
...
A Quick-Start Request sent in the middle of a TCP connection
SHOULD be sent on a data packet.
...
...
(2) When to make a request:
A TCP connection MAY make a Quick-Start Request before the
connection ...
... An Example Quick-Start Scenario with TCP ...
... Quick-Start for setting their initial windows. This is similar to
Figures 1 and 2 in Section 2.1, except that it illustrates a TCP
connection with both TCP hosts sending Quick-Start Requests ...
... Quick-Start for setting their initial windows. This is similar to
Figures 1 and 2 in Section 2.1, except that it illustrates a TCP
connection with both TCP hosts sending Quick-Start Requests.
...
... Quick-Start
Request, then Host B sends a Quick-Start Response in the TCP header
of the SYN/ACK ...
... valid, then
Host A uses TCP's default initial window. In either case, Host A
sends a Report of Approved Rate.
...
... not valid, then Host B uses TCP's default initial window. In
either case, Host B sends a Report of Approved Rate.
...
... Start Request over such a tunnel allows false positives, where the
TCP sender incorrectly believes that the Quick-Start Request was
...
... tunnels that are not compatible with Quick-
Start, allowing `false positives' where the TCP sender incorrectly
believes that the Quick-Start Request ...
... tunnel implementation that does not support Quick-Start
is independent of the TCP sender or a router implementation that
...
...
If a tunnel ingress is a separate component from the TCP sender or IP
forwarding, it is possible that a packet with a Quick-Start option ...
... MPLS path would be not compatible with Quick-Start; such paths would
result in false positives, where the TCP sender incorrectly believes
that the Quick-Start Request ...
...
The section earlier specified the use of Quick-Start in TCP. In this
section, we generalize this to give guidelines for the use of Quick-
Start ...
... socket
buffer, or of the TCP receive window, and could use this information
in determining the rate to request. Web servers that mostly have
...
... start-up for the
transport connection itself. For a small TCP transfer of one to five
packets, Quick-Start is probably of very little benefit; at best, it
...
... MAF04] suggest that on a wide
range of paths in the Internet, TCP SYN packets containing unknown IP
options will be dropped. Thus, for the sender one risk in using
...
... network. It is particularly costly to the sender
when a TCP SYN packet is dropped, because in this case the sender
should wait for an RTO ...
... connection is established. Some applications, such as those that use
TCP for bulk transfers, do not have interest in the transmission
rate, but they might know the amount of data that can be sent
...
... bandwidth-delay product on the link,
TCP's slow-start is a major performance limitation in the beginning
...
... of Quick-Start, it does not endanger the network as a whole since TCP
uses standard congestion control if Quick-Start ...
... Start does not remove TCP's basic congestion control mechanisms;
these will kick in when the network ...
... TCP Option ...
... TCP Option Number (Section 4.2).
TCP Option Number:
Kind Length Meaning
...
...
The Quick-Start proposal, taken together with HighSpeed TCP [RFC3649]
or other transport protocols ...
... network resources. Based on such estimation and the transfer size,
the TCP sender would determine the optimal initial congestion window
...
... sender would determine the optimal initial congestion window
size. The design for TCP/SPAND uses a performance gateway that
...
... The Congestion Manager [RFC3124] and TCP control block sharing
[RFC2140] both propose sharing congestion ...
... RFC2140] both propose sharing congestion information among multiple
TCP connections with the same endpoints. With the Congestion
...
... endpoints. With the Congestion
Manager, a new TCP connection could start with a high initial cwnd,
if it was sharing the path and the cwnd with a pre-existing TCP
connection ...
... TCP connection could start with a high initial cwnd,
if it was sharing the path and the cwnd with a pre-existing TCP
connection to the same destination that had already obtained a high
congestion window ...
... destination.
While continued research on the limits of the ability of TCP and
other transport protocols to learn of available bandwidth ...
... P00] investigates the use of a slightly different
IP option for TCP connections to discover the available bandwidth
along the path. In that proposal, the IP option ...
... IP option would have been sent after the initial SYN
exchange, when the TCP sender already had an estimate of the round-
trip time.
...
... such that a connection can start faster and then fall back to TCP's
standard congestion control algorithms.
...
... routers could set to indicate that they are underutilized. For each
TCP ACK arriving at the sender indicating that a packet has been
received with the Anti-ECN ...
... priority queueing.
A separate but related issue is that of below-best-effort TCP,
variants of TCP that would not rely on Lower Effort services ...
... A separate but related issue is that of below-best-effort TCP,
variants of TCP that would not rely on Lower Effort services in the
network ...
... TCP-LP) [KK03] are two such proposals for
below-best-effort TCP, with the purpose of allowing TCP connections
to use the bandwidth ...
... KK03] are two such proposals for
below-best-effort TCP, with the purpose of allowing TCP connections
to use the bandwidth unused by TCP ...
... TCP connections
to use the bandwidth unused by TCP and other traffic in a non-
intrusive fashion. Both TCP ...
... TCP and other traffic in a non-
intrusive fashion. Both TCP Nice and TCP Low Priority use the
...
... traffic in a non-
intrusive fashion. Both TCP Nice and TCP Low Priority use the
default slow-start ...
... Quick-Start is quite different from either a Lower-
Effort service or a below-best-effort variant of TCP. Unlike these
proposals, Quick-Start is intended to be useful for best-effort
...
... One benefit of using ICMP would be that the delivery of the TCP SYN
packet or other initial packet would not be delayed by IP option
processing at routers ...
... behavior would not affect the connection as a whole. (To get this
robustness to middleboxes with TCP using an IP Quick-Start Option,
...
... IP Quick-Start Option,
one would have to have a TCP-level Quick-Start Request packet that
could be sent concurrently with, but separately from, the TCP SYN
packet ...
... TCP-level Quick-Start Request packet that
could be sent concurrently with, but separately from, the TCP SYN
packet.)
However, there are a number of disadvantages to using ICMP ...
... round-trip time of one
second, as is typical in some wireless networks, the TCP initial
window of 4380 bytes allowed by [RFC3390] (given appropriate packet
sizes ...
... packet
sizes) would translate to an initial sending rate of 35 Kbps. Thus,
for TCP flows, a rate request of 80 Kbps could be useful for some
flows ...
... round-trip times.
The lower limit of 80 Kbps could also be useful for some non-TCP
flows that send small packets, with at most one small packet every 10
...
... We note that the Rate Request is also constrained by the abilities of
the transport protocol. For example, for TCP with Window Scaling,
the maximum window is at most 2**30 bytes. For a TCP connection with
...
... transport protocol. For example, for TCP with Window Scaling,
the maximum window is at most 2**30 bytes. For a TCP connection with
a long, 1 second round-trip time, this would give a maximum sending
rate ...
... router.
For TCP, the results from the Quick-Start Request are translated into
a congestion window ...
... MSS. This window applies only to the bytes of data payload, and
does not include the bytes in the TCP or IP packet headers. Other
...
... router could possibly use information
from the MSS option in the TCP packet header of the SYN packet to
...
... bytes per
second, or vice versa. This would be problematic for several
reasons. First, if IPsec is used, the TCP header will be encrypted.
Second, the MSS ...
... Second, the MSS option is defined as the maximum MSS that the TCP
sender expects to receive, not the maximum MSS ...
...
Section 4.6 discusses TCP's response to the loss of a Quick-Start
packet in the initial window. This section discusses several
...
... when a Quick-Start packet in the initial window is dropped is that
such approaches could give the TCP receiver a greater incentive to
lie about the Quick-Start Request ...
... A separate question concerns whether mechanisms, such as Quick-Start,
in combination with HighSpeed TCP and other changes in progress,
would make a significant contribution towards meeting some of these
needs for new congestion control ...
... downstream routers, or against misbehaving TCP receivers that might
be inclined to lie about whether the Rate Request was approved. This
...
... Identifiers (CCIDs) being CCID
2 for TCP-like congestion control, and CCID 3 for TCP Friendly Rate
...
... CCID
2 for TCP-like congestion control, and CCID 3 for TCP Friendly Rate
Control (TFRC), an equation-based form of congestion control ...
... Quick-Start packet is dropped?
As in TCP, if an initial Quick-Start packet is dropped, the CCID
3 sender ...
... receiver?
Unlike TCP, CCID 3 does not use acknowledgements for every
packet, or for every other packet. In contrast, the CCID 3 ...
... sending rate should be reduced
after a period of no feedback from the receiver. As with TCP, the
default CCID 3 response of halving the sending rate ...
... sender request?
As in TCP, there is a straightforward answer to the rate request
that the CCID 3 sender ...
... Allman, M., Floyd, S., and C. Partridge, "Increasing TCP's Initial Window", RFC 3390prop, October 2002. ...
... Floyd, S., "Limited Slow-Start for TCP with Large Congestion Windows", RFC 3742exp, March 2004. ...
... Poduri, K. and K. Nichols, "Simulation Studies of Increased Initial TCP Window Size", RFC 2415, September 1998. ...
... Allman, M., Glover, D., and L. Sanchez, "Enhancing TCP Over Satellite Channels using Standard Mechanisms", BCP ...
... Datagram Congestion Control Protocol (DCCP) Congestion Control ID 2: TCP-like Congestion Control", RFC 4341prop, March 2006. ...
... M. Allman, C. Hayes and S. Ostermann. An evaluation of TCP with Larger Initial Windows. ACM Computer Communication Review, July 1998. ...
... Briscoe, B., "Review: Quick-Start for TCP and IP", <http://www.cs.ucl.ac.uk/staff/B.Briscoe/pubs.html>, November 2005. ...
... Manish Jain, Constantinos Dovrolis, End-to-End Available Bandwidth: Measurement Methodology, Dynamics, and Relation with TCP Throughput, SIGCOMM 2002. ...
... A. Kuzmanovic and E. W. Knightly. TCP-LP: A Distributed Algorithm for Low Priority Data Transfer ...
... Guohan Lu, Nonce in TCP Quick Start, September 2005. <http://www.net-glyph.org/~lgh/nonce-usage.pdf ...
... Joon-Sang Park, Bandwidth Discovery of a TCP Connection, report to John Heidemann, 2000, private communication. Citation for acknowledgement purposes only. ...
... Craig Partridge, Dennis Rockwell, Mark Allman, Rajesh Krishnan, James P.G. Sterbenz. A Swifter Start for TCP. Technical Report No. 8339, BBN Technologies, March 2002. <http://www.icir.org/mallman/papers/>. ...
... Singh, M., Guha, S., and P. Francis, "Utilizing spare network bandwidth to improve TCP performance", ACM SIGCOMM 2005 Work in Progress session ...
... A. Venkataramani, R. Kokku, and M. Dahlin. TCP Nice: A Mechanism for Background Transfers. OSDI 2002. ...
... V. Visweswaraiah and J. Heidemann, Improving Restart of Idle TCP Connections, Technical Report 97-661, University of Southern California, November 1997. ...
