segment
Click on the red underlined text to get to the source
... an increase in the permitted upper bound for TCP's initial window
from one or two segment(s) to between two and four segments. In most
cases, this change results in an upper bound on the initial window of
...
... TCP's initial window
from one or two segment(s) to between two and four segments. In most
cases, this change results in an upper bound on the initial window of
roughly 4K bytes (although given a large segment ...
... segments. In most
cases, this change results in an upper bound on the initial window of
roughly 4K bytes (although given a large segment size, the permitted
initial window of two segments may be significantly larger than 4K
...
... roughly 4K bytes (although given a large segment size, the permitted
initial window of two segments may be significantly larger than 4K
bytes).
...
... MSS, 4380 bytes)) (1)
Note: Sending a 1500 byte packet indicates a maximum segment size
(MSS) of 1460 bytes (assuming no IP ...
... MSS to 4380 bytes allows the sender to
transmit three segments initially in the common case when using 1500
byte packets.
...
... RFC2581], which specified that the congestion window be
initialized to one or two segments.
This change applies to the initial window of the connection ...
... restart
window should never increase the size of cwnd). These changes do NOT
change the loss window, which must remain 1 segment of MSS bytes (to
...
... the congestion window `cwnd' SHOULD be reduced to prevent large
bursts of smaller segments. Specifically, `cwnd' SHOULD be reduced
by the ratio of the old segment size to the new segment ...
... bursts of smaller segments. Specifically, `cwnd' SHOULD be reduced
by the ratio of the old segment size to the new segment size.
...
... segments. Specifically, `cwnd' SHOULD be reduced
by the ratio of the old segment size to the new segment size.
When larger initial windows are implemented along with Path MTU
Discovery ...
... Don't
Fragment" (DF) bit in one of the segments. It is an open question as
to which of these two alternatives is best; we would hope that
implementation experiences will shed light on this question. In the
...
... implementation experiences will shed light on this question. In the
first case of setting the DF bit in all segments, if the initial
packets are too large, then all of the initial packets will be
dropped in the network ...
... network. In the second case of setting the DF bit in
only one segment, if the initial packets are too large, then all but
one of the initial packets will be fragmented in the network. When
...
... network. When
the second case is followed, setting the DF bit in the last segment
in the initial window provides the least chance for needless
retransmissions ...
... in the initial window provides the least chance for needless
retransmissions when the initial segment size is found to be too
large, because it minimizes the chances of duplicate ACKs triggering
...
... generating an ACK. With an initial window of at least two
segments, the receiver will generate an ACK after the second data
...
... receiver will generate an ACK after the second data
segment arrives. This eliminates the wait on the timeout (often
up to 200 msec, and possibly up to 500 msec [RFC1122]).
...
... transmitting only a small amount of data, a
larger initial window reduces the transmission time (assuming at
most moderate segment drop rates). For many email (SMTP [Pos82 ...
... TCP connection can sometimes be better off starting with
an initial window of one segment. There are scenarios where a TCP
connection slow-starting from an initial window of one segment ...
... segment. There are scenarios where a TCP
connection slow-starting from an initial window of one segment might
not have segments dropped, while a TCP connection ...
... starting from an initial window of one segment might
not have segments dropped, while a TCP connection starting with an
...
... TCP connection starting with an
initial window of four segments might experience unnecessary
retransmits due to the inability of the router to handle small
...
... congestion-avoidance phase of
the window increase algorithm. These premature segment drops are
unlikely to occur in uncongested networks with sufficient buffering ...
... performance with the larger
initial window even if the burstiness of the initial window results
in premature segment drops. This will be true if (1) the TCP
connection recovers from the segment drop without a retransmit
...
... in premature segment drops. This will be true if (1) the TCP
connection recovers from the segment drop without a retransmit
timeout, and (2) the TCP connection is ultimately limited to a small
...
... separate potential dangers for the network. The first danger would
be a scenario where a large number of segments on congested links
...
... links
were duplicate segments that had already been received at the
receiver. The second danger would be a scenario where a large number
...
... receiver. The second danger would be a scenario where a large number
of segments on congested links were segments that would be dropped
...
... of segments on congested links were segments that would be dropped
later in the network before reaching their final destination ...
... these three issues below.
Duplicate segments:
As described in the previous section, the larger initial window
...
...
As described in the previous section, the larger initial window
could occasionally result in a segment dropped from the initial
window, when that segment might not have been dropped if the
...
... could occasionally result in a segment dropped from the initial
window, when that segment might not have been dropped if the
sender had slow-started from an initial window of one segment ...
... segment might not have been dropped if the
sender had slow-started from an initial window of one segment.
However, Appendix A shows that even in this case, the larger
initial window would not result in the transmission of a large
...
... However, Appendix A shows that even in this case, the larger
initial window would not result in the transmission of a large
number of duplicate segments.
Segments ...
... How much would the larger initial window for TCP increase the
number of segments on congested links that would be dropped
before reaching their final destination ...
... connections with multiple congested links,
where some segments might use scarce bandwidth on the first
congested link ...
... TCP connections will have only one congested
link along the path. Segments dropped from these connections do
not "waste" scarce bandwidth ...
... network paths will have multiple congested links,
and segments dropped from the initial window could use scarce
bandwidth along the earlier congested links ...
... the drop rate is independent of the initial window used by TCP
segments, the problem of congested links carrying segments that
...
... segments, the problem of congested links carrying segments that
will be dropped before reaching their destination will be similar
...
...
For a network with a high segment drop rate, increasing the TCP
initial window could increase the segment ...
... segment drop rate, increasing the TCP
initial window could increase the segment drop rate even further.
This is in part because routers with Drop Tail queue management ...
... larger TCP initial window should not significantly increase the
segment drop rate. Simulation-based explorations of these issues
are discussed in Section 7.2.
...
... RTO in place until TCP
takes a sample from a data segment and the corresponding ACK. While
this method ...
... Internet today, because such traffic
is already fairly bursty. Bursts of two and three segments are
already typical of TCP [Flo97 ...
... Flo97]; a delayed ACK (covering two
previously unacknowledged segments) received during congestion
avoidance causes the congestion window to slide and two segments ...
... segments) received during congestion
avoidance causes the congestion window to slide and two segments to
be sent. The same delayed ACK received during slow start ...
... ACK received during slow start causes the
window to slide by two segments and then be incremented by one
segment, resulting in a three-segment ...
... window to slide by two segments and then be incremented by one
segment, resulting in a three-segment burst. While not necessarily
typical, bursts of four and five segments ...
... segments and then be incremented by one
segment, resulting in a three-segment burst. While not necessarily
typical, bursts of four and five segments for TCP ...
... segment, resulting in a three-segment burst. While not necessarily
typical, bursts of four and five segments for TCP are not rare.
Assuming delayed ACKs ...
... ACK causes the subsequent ACK
to cover four previously unacknowledged segments. During congestion
avoidance this leads to a four-segment burst, and during slow start ...
... to cover four previously unacknowledged segments. During congestion
avoidance this leads to a four-segment burst, and during slow start a
five-segment ...
... segment burst, and during slow start a
five-segment burst is generated.
There are also changes in progress that reduce the performance ...
... channels [All97b]. In this study, an
initial window of four segments (512 byte MSS) resulted in throughput
...
... All97a,
AHO98], a four-segment initial window decreased the transfer time of
a 16KB file by roughly 10%, with no accompanying increase in the drop
rate. A simulation study [RFC2416 ...
... to 100 Internet hosts, four-segment initial windows resulted in a
small increase in the drop rate of 0.04 segments/transfer. While the
...
... hosts, four-segment initial windows resulted in a
small increase in the drop rate of 0.04 segments/transfer. While the
drop rate increased slightly, the transfer time was reduced by
roughly 25% for transfers using the four-segment ...
... segments/transfer. While the
drop rate increased slightly, the transfer time was reduced by
roughly 25% for transfers using the four-segment (512 byte MSS)
initial window when compared to an initial window of one segment ...
... segment (512 byte MSS)
initial window when compared to an initial window of one segment.
A simulation study in [RFC2415 ...
... of one scenario, the larger initial window resulted in an increase in
the drop rate of less than 1% above the loss rate experienced when
using a one-segment initial window; in this scenario, the drop rate
increased from 3.5% with one-segment initial windows, to 4.5% with
...
... using a one-segment initial window; in this scenario, the drop rate
increased from 3.5% with one-segment initial windows, to 4.5% with
four-segment initial windows. The overall conclusions were that
...
... increased from 3.5% with one-segment initial windows, to 4.5% with
four-segment initial windows. The overall conclusions were that
increasing the TCP initial window to three packets (or 4380 bytes)
...
... networks where all TCP connections use an initial window of four
segments is shown to be 1-2% greater than in a network where all
connections ...
... network where all
connections use an initial window of one segment. This relationship
held in scenarios where the loss rates with one-segment initial
...
... connections use an initial window of one segment. This relationship
held in scenarios where the loss rates with one-segment initial
windows ranged from 1% to 11%. In addition, in networks where
...
... networks where
connections used an initial window of four segments, TCP connections
spent more time waiting for the retransmit timer ...
... retransmit timer (RTO) to expire to
resend a segment than was spent using an initial window of one
segment. The time spent waiting for the RTO ...
... resend a segment than was spent using an initial window of one
segment. The time spent waiting for the RTO timer to expire
...
... connection's share of the bottleneck
bandwidth is close to one segment, using a larger initial window can
cause a perceptible increase in both loss rates and retransmit
timeouts.
...
... Appendix A - Duplicate Segments ...
... [Flo94] [RFC2481(-> 3168prop)]), all TCPs use segment drops as indications from
the network about the limits of available bandwidth ...
... that the change to a larger initial window should not result in the
sender retransmitting a large number of duplicate segments that have
already arrived at the receiver.
...
... receiver.
If one segment is dropped from the initial window, there are three
different ways for TCP to recover: (1) Slow-starting ...
... TCP to recover: (1) Slow-starting from a window of
one segment, as is done after a retransmit timeout, or after Fast
Retransmit in Tahoe TCP; (2) Fast Recovery ...
... SACK option [MMFR96]. In all three
cases, if a single segment is dropped from the initial window, no
duplicate segments (i.e., segments ...
... cases, if a single segment is dropped from the initial window, no
duplicate segments (i.e., segments that have already been received at
the receiver ...
... segment is dropped from the initial window, no
duplicate segments (i.e., segments that have already been received at
the receiver) are transmitted. Note that for a TCP ...
... receiver) are transmitted. Note that for a TCP sending four
512-byte segments in the initial window, a single segment drop will
not require a retransmit timeout, but can be recovered by using the
...
... TCP sending four
512-byte segments in the initial window, a single segment drop will
not require a retransmit timeout, but can be recovered by using the
Fast Retransmit algorithm ...
... Fast Retransmit algorithm (unless the retransmit timer expires
prematurely). In addition, a single segment dropped from an initial
window of three segments might be repaired using the fast retransmit
algorithm ...
... prematurely). In addition, a single segment dropped from an initial
window of three segments might be repaired using the fast retransmit
algorithm, depending on which segment is dropped and whether or not
...
... window of three segments might be repaired using the fast retransmit
algorithm, depending on which segment is dropped and whether or not
delayed ACKs are used. For example, dropping the first segment ...
... segment is dropped and whether or not
delayed ACKs are used. For example, dropping the first segment of a
three segment initial window will always require waiting for a
...
... ACKs are used. For example, dropping the first segment of a
three segment initial window will always require waiting for a
timeout, in the absence of Limited Transmit [RFC3042]. However,
...
... timeout, in the absence of Limited Transmit [RFC3042]. However,
dropping the third segment will always allow recovery via the fast
retransmit algorithm, as long as no ACKs are lost.
...
...
Next we consider scenarios where the initial window contains two to
four segments, and at least two of those segments are dropped. If
all segments ...
... Next we consider scenarios where the initial window contains two to
four segments, and at least two of those segments are dropped. If
all segments in the initial window are dropped, then clearly no
...
... segments, and at least two of those segments are dropped. If
all segments in the initial window are dropped, then clearly no
duplicate segments are retransmitted, as the receiver ...
... all segments in the initial window are dropped, then clearly no
duplicate segments are retransmitted, as the receiver has not yet
received any segments ...
... segments are retransmitted, as the receiver has not yet
received any segments. (It is still a possibility that these dropped
segments used scarce bandwidth ...
... received any segments. (It is still a possibility that these dropped
segments used scarce bandwidth on the way to their drop point; this
issue was discussed in Section 5.)
...
... issue was discussed in Section 5.)
When two segments are dropped from an initial window of three
segments, the sender ...
... When two segments are dropped from an initial window of three
segments, the sender will only send a duplicate segment if the first
...
... segments, the sender will only send a duplicate segment if the first
two of the three segments were dropped, and the sender ...
... sender will only send a duplicate segment if the first
two of the three segments were dropped, and the sender does not
receive a packet with the SACK ...
... segment.
When two segments are dropped from an initial window of four
segments, an examination of the six possible scenarios (which we
...
... When two segments are dropped from an initial window of four
segments, an examination of the six possible scenarios (which we
don't go through here) shows that, depending on the position of the
...
... SACK the sender might send one
duplicate segment. There are no scenarios in which the sender sends
two duplicate segments ...
... segment. There are no scenarios in which the sender sends
two duplicate segments.
When three segments ...
... segments.
When three segments are dropped from an initial window of four
segments, then, in the absence of SACK ...
... When three segments are dropped from an initial window of four
segments, then, in the absence of SACK, it is possible that one
duplicate segment ...
... segments, then, in the absence of SACK, it is possible that one
duplicate segment will be sent, depending on the position of the
dropped segments.
...
... duplicate segment will be sent, depending on the position of the
dropped segments.
The summary is that in the absence of SACK ...
... The summary is that in the absence of SACK, there are some scenarios
with multiple segment drops from the initial window where one
duplicate segment will be transmitted. There are no scenarios in
...
... with multiple segment drops from the initial window where one
duplicate segment will be transmitted. There are no scenarios in
which more than one duplicate segment will be transmitted. Our
...
... duplicate segment will be transmitted. There are no scenarios in
which more than one duplicate segment will be transmitted. Our
conclusion is than the number of duplicate segments transmitted as a
...
... which more than one duplicate segment will be transmitted. Our
conclusion is than the number of duplicate segments transmitted as a
result of a larger initial window should be small.
...
