Internet Engineering Task Force MarkTCP Implementation Working Group M. Allman INTERNET DRAFT NASA Lewis/Sterling Software File:draft-floyd-incr-init-win-01.txt Sallydraft-floyd-incr-init-win-02.txt S. FloydLBL CraigLBNL C. Partridge BBN TechnologiesMarch, 1998 Expires: September,April, 1998 Increasing TCP's Initial Window Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as ``work in progress.'' Tolearnview thecurrent statusentire list ofany Internet-Draft,current Internet-Drafts, please check the``1id-abstracts.txt''"1id-abstracts.txt" listing contained in theInternet- DraftsInternet-Drafts Shadow Directories on ftp.is.co.za (Africa),nic.nordu.net (Europe),ftp.nordu.net (Northern Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific Rim),ds.internic.netftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast). Abstract Thisis a note to suggest changingdocument specifies an increase in the permitted initial windowinfor TCP from1one segment to roughly 4K bytes. Thisdraft considersdocument discusses the advantages and disadvantages of such a change,as well asoutliningsomeexperimental results that indicate the costs and benefits ofmakingsuch a change toTCP,TCP. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", andpointing out remaining research questions."OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. 1. TCP Modification Thisdraft suggests allowingdocument specifies an increase in the permitted upper bound for TCP's initial windowused by a TCP connection to increasefrom1one segment to between2two and4four segments. In most cases, thiswill resultchange 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 could be significantly larger than 4K bytes). Theproposedupper bound for the initial windowsizeis given more precisely in (1): min (4*MSS, max (2*MSS, 4380 bytes)) (1)Or, more specificallyEquivalently, the upper bound for the initial window size is based on the maximum segment size (MSS), as follows:MSSIf (MSS <= 1095bytes:bytes) then win=<= 4 *MSS 1095MSS; If (1095 bytes < MSS < 2190bytes:bytes) then win= 4380 MSS => 2190 bytes:<= 4380; If (2190 bytes <= MSS) then win=<= 2 *MSSMSS; This increased initial windowwould beis optional: that a TCP MAY start with a larger initial window, not that it SHOULD. This upper bound for the initial window size represents a changewould only applyfrom RFC 2001 [S97], which specifies that the congestion window be initialized to one segment. If implementation experience proves successful, then the intent is for this change to be incorporated into a revision to RFC 2001. This change applies to the initial window of theconnection,connection in the first round trip time (RTT) of transmission following the TCP three-way handshake.That is,Neither the SYN/ACK nor its acknowledgment (ACK) in thethree waythree-way handshake shouldnotincrease the initial window size above that outlined in equation (1).However, ifIf the SYN or SYN/ACK islostlost, the initial window used by a sender after a correctly transmitted SYN MUST be1one segment.SomeTCP implementations use slow start in as many as three different ways: (1) tore-startstart a new connection (the initial window); (2) to restart a transmission after a long idleperiod. In this case, the initial window used should be the same as the initial window used at the beginning of the transfer.period (the restart window); and (3) to restart after a retransmit timeout (the loss window). The change proposed in this documentwould not changeaffects thebehavior after a retransmit timeout, whenvalue of thesender would continue to slow start from aninitialwindow of one segment. 2. Advantages of Larger Initial Windows 1. For connections transmitting only a small amount of data,window. Optionally, alarger initialTCP MAY set the restart windowwould reduceto thetransmission time (assuming moderate segment drop rates). For many email (SMTP [Pos82]) and web page (HTTP [BLFN96, FJGFBL97]) transfers that are less than 4K bytes,same value used for thelargerinitialwindow would reducewindow. These changes do NOT change thedata transfer time to a single RTT. 2. For connections that will be able to use large congestion windows, this modification eliminates up to three RTTs and a delayed ACK timeout duringloss window, which must remain 1 (to permit theinitial slow-start phase. This would belowest possible window size in the case ofparticular benefit for high-bandwidth large-propagation-delay TCP connections, such as those over satellite links. 3.severe congestion). 2. Implementation Issues Whenthelarger initialwindow is 1 segment, a receiver employing delayed acknowledgments (ACK) [Bra89]windows are implemented along with Path MTU Discovery [MD90], and the MSS being used isforcedfound towait for a timeout before generating an ACK. With a larger initial window,be too large, thereceiver willcongestion window `cwnd' SHOULD beablereduced togenerate an ACK afterprevent large bursts of smaller segments. Specifically, `cwnd' SHOULD be reduced by thesecond data segment arrives. This eliminatesratio of theneedold segment size towait onthetimeout (0.1 seconds, or more). 3. Implementation Issuesnew segment size. When larger initial windows are implemented along with Path MTU Discovery [MD90],only one ofalternatives are to set the "Don't Fragment" (DF) bit in all segments in the initialwindow should havewindow, or to set the "Don't Fragment" (DF) bitset. Preliminary analysis indicatesin one of the segments. It is an open question which of these two alternatives is best; we would hope that implementation experiences will shed light on this. 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. 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 the second case is followed, setting the DF bit in the last segment in the initial window provides the least chance for needless retransmissionsand large line-rate bursts of segmentswhen the initial segment size is found to be toolarge. In addition, if the MSS being used is found to be toolarge, because it minimizes thecwnd should be reduced to prevent large bursts of smaller segments. Specifically, cwnd should be reduced by the ratiochances ofthe old segment size to the new segment size.duplicate ACKs triggering a Fast Retransmit. However, more attention needs to be paid to the interaction between larger initial windows and Path MTU Discovery. The larger initial window proposed in this documentSHOULD NOT be viewedis not intended as an encouragement for web browsers to open multiple simultaneous TCP connections all withlargerlarge initial windows.(WebWhen web browsersshould notopenfoursimultaneous TCP connections to the samedestination in any case, becausedestination, this works against TCP's congestion control mechanisms[FF98]).[FF98], regardless of the size of the initial window. Combining this behavior with larger initial windows further increases the unfairness to other traffic in the network. 3. Advantages of Larger Initial Windows 1. When the initial window is one segment, a receiver employing delayed ACKs [Bra89] is forced to wait for a timeout before generating an ACK. With an initial window of at least two segments, the receiver will generate an ACK after the second data segment arrives. This eliminates the wait on the timeout (often up to 200 msec). 2. For connections transmitting only a small amount of data, a larger initial window reduces the transmission time (assuming moderate segment drop rates). For many email (SMTP [Pos82]) and web page (HTTP [BLFN96, FJGFBL97]) transfers that are less than 4K bytes, the larger initial window would reduce the data transfer time to a single RTT. 3. For connections that will be able to use large congestion windows, this modification eliminates up to three RTTs and a delayed ACK timeout during the initial slow-start phase. This would be of particular benefit for high-bandwidth large-propagation-delay TCP connections, such as those over satellite links. 4. Disadvantages of Larger Initial Windows for the Individual Connection In high-congestion environments, particularly for routers that have a bias against bursty traffic (as in the typical Drop Tail router queues), a 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 might not have segments dropped, while a TCP connection starting with an initial window of four segments might experience unnecessary retransmits due to the inability of the router to handle small bursts. This could result in an unnecessary retransmit timeout. For a large-window connection that is able to recover without a retransmit timeout, this could result in an unnecessarily-early transition from the slow-start to the congestion-avoidance phase of the window increase algorithm. These premature segment drops should nothappenoccur in uncongestednetworks,networks with sufficient buffering or in moderately-congested networks where the congested routeruseduses active queue management (such as Random Early Detection [FJ93]). Some TCP connections will receive better performance with the higher 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 timeout, and (2) the TCP connection is ultimately limited to a small congestion window by either network congestion or by the receiver's advertised window. 5. Disadvantages of Larger Initial Windows for the NetworkWeIn terms of the potential for congestion collapse, we consider two separate potential dangers for the network. The first danger would be a scenario where a large number of segments on congested links were duplicateor unnecessarily-retransmittedsegments that had already been received at the receiver. The second danger would be a scenario where a large number of segments on congested links were segments that would be dropped later in the network before reaching their final destination.Unnecessarily-retransmittedIn terms of the negative effect on other traffic in the network, a potential disadvantage of larger initial windows would be that they increase the general packet drop rate in the network. We discuss these three issues below. Duplicate segments: 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 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 number ofunnecessarily-retransmittedduplicate segments. Segments dropped later in the network: 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? This is a problem that can only occur for connections with multiple congested links, where some segments might use scarce bandwidth on the first congested link along the path, only to be dropped later along the path. First, many of the TCP connections will have only one congested link along the path. Segments dropped from these connections do not ``waste'' scarce bandwidth, and do not contribute to congestion collapse. However, some network paths will have multiple congested links, and segments dropped from the initial window could use scarce bandwidth along the earlier congested links before ultimately being dropped on subsequent congested links. To the extent that the drop rate is independent of the initial window used by TCP segments, the problem of congested links carrying segments that will be dropped before reaching their destination will be similar for TCP connections that start by sending four segments or one segment. An increased packet drop rate: For a network with a high segment drop rate, increasing theinitialTCPcongestioninitial window could increase the segment drop rate even further. This is in part because routers withdrop tailDrop Tail queue management have difficulties with bursty traffic in times of congestion. However,this should be a second order effect. Givengiven uncorrelated arrivals for TCP connections, the largerinitialTCPcongestioninitial window shouldgenerallynot significantly increase the segment drop rate.6. Network Changes ThereSimulation-based explorations of these issues areother changesdiscussed inthe network that make a larger initial window less of a problem.Section 7.2. Theseincludepotential dangers for theincreasing deployment of higher-speed links where 4K bytes is a rather small quantity of datanetwork are explored in simulations and experiments described in thedeployment of queue management mechanisms such as RED thatsection below. Our judgement would be, while there aremore tolerantdangers oftransient traffic bursts. Thecongestion collapse in the current Internet (see [FF98] for a discussion of the dangers of congestion collapsemost likely now come notfroma 4K initial burst from TCP connections, but from thean increased deployment of UDP connections without end-to-end congestioncontrol. 7. Concerns All the experiments (see section 8) with larger initial windows have tested howcontrol), there is no such danger to thelarger window affectsnetwork from increasing the TCPconnection that uses the larger window. No one has thoroughly studied the impact of the largerinitial windowon other TCP connections. In particular, no one has a thorough setto 4K bytes. 6. Typical Levels ofanswers about what happens when aBurstiness for TCP Traffic. Larger TCPbursts a largerinitialwindow into or across a path already being shared by a setwindows would not dramatically increase the burstiness ofestablishedTCPconnections. Part of the reason for this omission is the assumption that the effect is small. For example,traffic inmuch ofthe Internetburststoday, because such traffic is already fairly bursty. Bursts of2two and3three segments arecommon and burstsalready typical of4 and 5 segments are not rare.TCP [Flo97]; A delayed ACK (covering two previously unacknowledged segments) received during congestion avoidance causes the congestion window to slide and2two segments to be sent. The same delayed ACK received during slow start causes the window to slide by2two segments and then be incremented by1one segment,leading toresulting in a3 segmentthree-segment burst. While not necessarily typical, bursts of four and five segments for TCP are not rare. Assuming delayed ACKs, a single dropped ACK causes the subsequent ACK to cover4four previously unacknowledged segments. During congestion avoidance this leads to a4 segmentfour-segment burst and during slow start a5 segmentfive-segment burst is generated.However, thereThere aresome common scenarios where a larger initial window might have an effect. One example is low speed tail circuits with routers with small buffers. For instance, imagine a dialup link connecting routers each of which have a handful of buffers. Further imaginealso changes in progress that reduce thelink is already being sharedperformance problems posed bya few TCP connections. Then a new connection launches a large initial window, causing losses. How long will it be before the connections resume sharingmoderate traffic bursts. One such change is thelink fairly? Are there any signsdeployment ofa capture effect,higher-speed links inwhich the new TCP gets a large fractionsome parts of thebandwidth? (A capture effect could ensure that, say, an SMTP server got more bandwidth thannetwork, where along running FTP). Another scenarioburst ofconcern is heavily loaded links. For instance,4K bytes can represent acouple of years ago, onesmall quantity ofthe trans-Atlantic links was so heavily loaded that the correct congestion window sizedata. A second change, fora connection was about one segment. In this environment, new connections using larger initial windows would be startingrouters withwindows that were four times too big. What wouldsufficient buffering, is theeffects be? Do connections thrash? 8.deployment of queue management mechanisms such as RED, which is designed to be tolerant of transient traffic bursts. 7. Simulations and Experimental Results8.17.1 Studies of TCP Connections using that Larger InitialWindows A number of studiesWindow This section surveys simulations and experiments that have beendone using larger initial windows. The first study considers the effects on the global Internet, as well as on slow dialup modem links [All97a]. These test results show that for 16 KB transfersused to100 Internet hosts, 4 segment initial windows resulted in an increase inexplore thedrop rateeffect of0.04 segments/transfer. While the drop rate increased slightly, the transfer time was reduced by roughly 25% for transfers using a 4 segment (512 byte MSS) initial window when compared to anlarger initialwindow of 1 segment. Tests over a 28.8 bps dialup channel showed no increase inwindows on thedrop rate and a transfer time decrease of roughly 10% over standardTCPwhenconnection usinga 4 segment initial window. In another study,that larger window. The first set of experiments explores performance over satellite links. Larger initial windows have been shown to improve performance of TCP connections over satellite channels [All97b]. In this study, an initial window of4four segments (512 byte MSS) resulted in throughput improvements of up to 30% (depending upon transfer size).Next,[HAGT98] shows that the use of larger initial windows results in a decrease in transfer time in HTTP tests over the ACTS satellite system. A study involving simulations of a large number of HTTP transactions over hybrid fiber coax (HFC) indicates that the use of larger initial windows decreases the time required to load WWW pages [Nic97].[HAGT98] also shows that the useA second set oflarger initial windows results inexperiments has explored TCP performance over dialup modem links. In experiments over adecrease in28.8 bps dialup channel [All97a, AHO98], a four-segment initial window decreased the transfer time of a 16KB file by roughly 10%, with no accompanying increase inHTTP tests overtheACTS satellite system.drop rate. A particular area of concern has been TCP performance over low speed tail circuits (e.g., dialup modem links) with routers with small buffers. A simulation study [SP97] investigated the effects of using a larger initial window on a host connected by a slow modem link and a router with a 3 packetbuffer [SP97]. Thisbuffer. The studyfoundconcluded thatin this environment,for the scenario investigated, the use of larger initial windowsslightly improvedwas not harmful to TCP performance.8.2Questions have been raised concerning the effects of larger initial windows on the transfer time for short transfers in this environment, but these effects have not been quantified. A question has also been raised concerning the possible effect on existing TCP connections sharing the link. 7.2 Studies of Networks using Larger Initial Windows This section surveys simulations and experiments investigating the impact of the larger window on other TCP connections sharing the path. Experiments in [All97a, AHO98] show that for 16 KB transfers to 100 Internet 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 (512 byte MSS) initial window when compared to an initial window of one segment. One scenario of concern is heavily loaded links. For instance, a couple of years ago, one of the trans-Atlantic links was so heavily loaded that the correct congestion window size for a connection was about one segment. In this environment, new connections using larger initial windows would be starting with windows that were four times too big. What would the effects be? Do connections thrash? A simulation studyof howin [PN98] explores theuseimpact of a larger initial windowimpactson competing networktraffic is outlined in [PN98].traffic. In this investigation,a number ofHTTP and FTP flowswere sharingshare a single congested gateway(the exact(where the number offlows was varied in this study). The study showed improvement inHTTPtransfer times onand FTP flows varies from one simulation set to another). For each simulation set, theorder of 30% in many scenarios. In addition, apaper examines aggregate link utilization and packet drop rates, median web page delay, and network power for the FTP transfers. The larger initial windowslightlygenerally resulted in increasedthe segmentthroughput, slightly-increased packet droprate (onlyrates, and an increase in overall network power. With the exception of onescenario increasedscenario, the larger initial window resulted in an increase in the drop ratemoreof less than 1% above the loss rate experienced when usingana 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 increasing the TCP initial windowof 1 segment).to three packets (or 4380 bytes) helps to improve perceived performance. Morris [Mor97] investigated larger initial windows in a very congestednetwork.network with transfers of size 20K. The loss rate in networks where all TCP connections use an initial window of4four segments is shown to be 1-2% greater than in a network where all connections use an initial window of1one 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 connections used an initial window of4four segments,roughly 5-10%TCP connections spent more timewas spentwaiting for the retransmit timer (RTO) to expire to resend a segment than was spent when using an initial window of1one segment. The time spent waiting for the RTO timer to expire represents idle time when no useful work was beingaccomplished.accomplished for that connection. These results show that in a very congested environment, where each connection's share of the bottleneck bandwidth is close to1one segment, using a larger initial windowdegrades performance.can cause a perceptible increase in both loss rates and retransmit timeouts. 8. Security Considerations This document discusses the initial congestion window permitted for TCP connections. Changing this value does not raise any known new security issues with TCP. 9. Conclusion Thisdraft suggestsdocument proposes a small change to TCP that may be beneficial toshort livedshort-lived TCP connections and those over links with long RTTs (saving several RTTs during the initial slow-start phase). 10. Acknowledgments We would like to acknowledge Vern Paxson, TimShepard and theShepard, members of the End-to-End-Interest MailingListList, and members of the IETF TCP Implementation Working Group for continuing discussions of theseissues.issues for discussions and feedback on this document. 11. References [All97a] Mark Allman. An Evaluation of TCP with Larger Initial Windows. 40th IETF Meeting -- TCP Implementations WG. December, 1997. Washington, DC. [AHO98] Mark Allman, Chris Hayes, and Shawn Ostermann, An Evaluation of TCP with Larger Initial Windows, March 1998. Submitted to ACM Computer Communication Review. URL "http://gigahertz.lerc.nasa.gov/~mallman/papers/initwin.ps". [All97b] Mark Allman. Improving TCP Performance Over Satellite Channels. Master's thesis, Ohio University, June 1997. [BLFN96] Tim Berners-Lee, R. Fielding, and H. Nielsen. Hypertext Transfer Protocol -- HTTP/1.0, May 1996. RFC 1945. [Bra89] Robert Braden. Requirements for Internet Hosts -- Communication Layers, October 1989. RFC 1122. [FF96] Fall, K., and Floyd, S., Simulation-based Comparisons of Tahoe, Reno, and SACK TCP. Computer Communication Review, 26(3), July 1996. [FF98] Sally Floyd, Kevin Fall. Promoting the Use of End-to-End Congestion Control in the Internet. Submitted to IEEE Transactions on Networking. URL "http://www-nrg.ee.lbl.gov/floyd/end2end-paper.html". [FJGFBL97] R. Fielding, Jeffrey C. Mogul, Jim Gettys, H. Frystyk, and Tim Berners-Lee. Hypertext Transfer Protocol -- HTTP/1.1, January 1997. RFC 2068. [FJ93] Floyd, S., and Jacobson, V., Random Early Detection gateways for Congestion Avoidance. IEEE/ACM Transactions on Networking, V.1 N.4, August 1993, p. 397-413. [Flo94] Floyd, S., TCP and Explicit Congestion Notification. Computer Communication Review, 24(5):10-23, October 1994. [Flo96] Floyd, S., Issues of TCP with SACK. Technical report, January 1996. Available from http://www-nrg.ee.lbl.gov/floyd/.[HAGT98][Flo97] Floyd, S., Increasing TCP's Initial Window. Viewgraphs, 40th IETF Meeting - TCP Implementations WG. December, 1997. URL "ftp://ftp.ee.lbl.gov/talks/sf-tcp-ietf97.ps". [KAGT98] Hans Kruse, Mark Allman, Jim Griner, Diepchi Tran. HTTP Page Transfer Rates Over Geo-Stationary Satellite Links. March 1998. Proceedings of the Sixth International Conference on Telecommunication Systems.To Appear.URL "http://gigahertz.lerc.nasa.gov/~mallman/papers/nash98.ps". [MD90] Jeffrey C. Mogul and Steve Deering. Path MTU Discovery, November 1990. RFC 1191. [MMFR96] Matt Mathis, Jamshid Mahdavi, Sally Floyd and Allyn Romanow. TCP Selective Acknowledgment Options, October 1996. RFC 2018. [Mor97] Robert Morris. Privatecommunication.communication, 1997. Cited for acknowledgement purposes only. [Nic97] Kathleen Nichols. Improving Network Simulation with Feedback. Com21, Inc. Technical Report. Available from http://www.com21.com/pages/papers/068.pdf. [PN98] Poduri, K., and Nichols, K., Simulation Studies of Increased Initial TCP Window Size, February 1998. Internet-Draft draft-ietf-tcpimpl-poduri-00.txt (work in progress). [Pos82] Jon Postel. Simple Mail Transfer Protocol, August 1982. RFC 821. [RF97] Ramakrishnan, K.K., and Floyd, S., A Proposal to Add Explicit Congestion Notification (ECN) to IPv6 and to TCP. Internet-Draft draft-kksjf-ecn-00.txt (work in progress). November 1997. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [S97] W. Stevens, TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms. RFC 2001, Proposed Standard, January 1997. [SP97] Tim Shepard and Craig Partridge. When TCP Starts Up With Four Packets Into Only Three Buffers, July 1997. Internet-Draft draft-shepard-TCP-4-packets-3-buff-00.txt (work in progress). 12. Author's Addresses Mark Allman NASA Lewis Research Center/Sterling Software 21000 Brookpark Road MS 54-2 Cleveland, OH 44135 mallman@lerc.nasa.gov http://gigahertz.lerc.nasa.gov/~mallman/ Sally Floyd Lawrence Berkeley National Laboratory One Cyclotron Road Berkeley, CA 94720 floyd@ee.lbl.gov Craig Partridge BBN Technologies 10 Moulton Street Cambridge, MA 02138 craig@bbn.com 13. AppendixA- Duplicate Segments In the current environment (without Explicit Congestion Notification [Flo94] [RF97]), all TCPs use segment drops as indications from the network about the limits of available bandwidth.TheWe argue here that the change to a larger initial window should not result in the sender retransmitting a large number ofunnecessarily-retransmitted segments.duplicate segments that have already been received at the receiver. Ifaone segment is dropped from the initial window, there are three different ways for 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 without selective acknowledgments (SACK), as is done after three duplicate ACKs in Reno TCP; and (3) Fast Recovery with SACK, for TCP where both the sender and the receiver support the SACK option [MMFR96]. In all three cases, if a single segment is dropped from the initial window,there arenounnecessarily-retransmitted segments.duplicate segments (i.e., segments that have already been received at the 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 from using the Fast Retransmitalgorithm.algorithm (unless the retransmit timer expires prematurely). In addition, a single segment dropped from an initial window of three segmentsmaymight 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 of a three segment initial window will always require waiting for a timeout. However, dropping the third segment will always allow recovery via the fast retransmitalgorithm. We nowalgorithm, as long as no ACKs are lost. Next we consider scenarios where thecase when multipleinitial 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 duplicate segments are retransmitted, as the receiver has not yet received any segments. (It is still a possibility that these droppedfromsegments used scarce bandwidth on the way to their drop point; this issue was discussed in Section 5.) When two segments are dropped from an initialwindow. Usingwindow of three segments, the sender will only send a duplicate segment if the firstrecovery method, slow-starting fromtwo of the three segments were dropped, and the sender does not receive a packet with the SACK option acknowledging the third segment. When two segments are dropped from an initial window ofone segment,four segments, an examination of thenumbersix possible scenarios (which we don't go through here) shows that, depending on the position ofunnecessarily-retransmitted segments is limited [FF96]. Inthesecond casedropped packets, in the absence ofFast Recovery without SACK, multiple segment dropsSACK the sender might send one duplicate segment. There are no scenarios in which the sender sends two duplicate segments. When three segments are dropped fromaan initial window ofdata generally resultfour segments, then, ina retransmit timeout. Again,thenumberabsence ofunnecessarily-retransmitted segmentsSACK, it issmall. Inpossible that one duplicate segment will be sent, depending on thethird case,position of the dropped segments. The summary is that in the absence ofFast Recovery withSACK, therecan only be unnecessarily-retransmitted segments if a precise pattern of ACK segments are also lost [Flo96], or if segmentsareseriously-reordered insome scenarios with multiple segment drops from thenetwork. In any case,initial window where one duplicate segment will be transmitted. There are no scenarios where more that one duplicate segment will be transmitted. Our conclusion is that the number ofunnecessarily-retransmittedduplicate segmentsdue totransmitted as a result of a larger initial window should be small.Author's Addresses Mark Allman NASA Lewis Research Center/Sterling Software 21000 Brookpark Road MS 54-2 Cleveland, OH 44135 mallman@lerc.nasa.gov http://gigahertz.lerc.nasa.gov/~mallman/ Sally Floyd Lawrence Berkeley National Laboratory One Cyclotron Road Berkeley, CA 94720 floyd@ee.lbl.gov Craig Partridge BBN Technologies 10 Moulton Street Cambridge, MA 02138 craig@bbn.com14. Full Copyright Statement [This section would be filled in with the standard template if this document advances to an RFC.]