%!PS-Adobe-3.0 %%Creator: groff version 1.15 %%CreationDate: Fri Nov 17 12:28:40 2000 %%DocumentNeededResources: font Courier-Bold %%+ font Times-Bold %%+ font Times-Roman %%+ font Courier %%+ font Times-Italic %%+ font Symbol %%DocumentSuppliedResources: procset grops 1.15 0 %%Pages: 12 %%PageOrder: Ascend %%Orientation: Portrait %%EndComments %%BeginProlog %%BeginResource: procset grops 1.15 0 /setpacking where{ pop currentpacking true setpacking }if /grops 120 dict dup begin /SC 32 def /A/show load def /B{0 SC 3 -1 roll widthshow}bind def /C{0 exch ashow}bind def /D{0 exch 0 SC 5 2 roll awidthshow}bind def /E{0 rmoveto show}bind def /F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def /G{0 rmoveto 0 exch ashow}bind def /H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def /I{0 exch rmoveto show}bind def /J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def /K{0 exch rmoveto 0 exch ashow}bind def /L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def /M{rmoveto show}bind def /N{rmoveto 0 SC 3 -1 roll widthshow}bind def /O{rmoveto 0 exch ashow}bind def /P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def /Q{moveto show}bind def /R{moveto 0 SC 3 -1 roll widthshow}bind def /S{moveto 0 exch ashow}bind def /T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def /SF{ findfont exch [exch dup 0 exch 0 exch neg 0 0]makefont dup setfont [exch/setfont cvx]cvx bind def }bind def /MF{ findfont [5 2 roll 0 3 1 roll neg 0 0]makefont dup setfont [exch/setfont cvx]cvx bind def }bind def /level0 0 def /RES 0 def /PL 0 def /LS 0 def /MANUAL{ statusdict begin/manualfeed true store end }bind def /PLG{ gsave newpath clippath pathbbox grestore exch pop add exch pop }bind def /BP{ /level0 save def 1 setlinecap 1 setlinejoin 72 RES div dup scale LS{ 90 rotate }{ 0 PL translate }ifelse 1 -1 scale }bind def /EP{ level0 restore showpage }bind def /DA{ newpath arcn stroke }bind def /SN{ transform .25 sub exch .25 sub exch round .25 add exch round .25 add exch itransform }bind def /DL{ SN moveto SN lineto stroke }bind def /DC{ newpath 0 360 arc closepath }bind def /TM matrix def /DE{ TM currentmatrix pop translate scale newpath 0 0 .5 0 360 arc closepath TM setmatrix }bind def /RC/rcurveto load def /RL/rlineto load def /ST/stroke load def /MT/moveto load def /CL/closepath load def /FL{ currentgray exch setgray fill setgray }bind def /BL/fill load def /LW/setlinewidth load def /RE{ findfont dup maxlength 1 index/FontName known not{1 add}if dict begin { 1 index/FID ne{def}{pop pop}ifelse }forall /Encoding exch def dup/FontName exch def currentdict end definefont pop }bind def /DEFS 0 def /EBEGIN{ moveto DEFS begin }bind def /EEND/end load def /CNT 0 def /level1 0 def /PBEGIN{ /level1 save def translate div 3 1 roll div exch scale neg exch neg exch translate 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit []0 setdash /setstrokeadjust where{ pop false setstrokeadjust }if /setoverprint where{ pop false setoverprint }if newpath /CNT countdictstack def userdict begin /showpage{}def }bind def /PEND{ clear countdictstack CNT sub{end}repeat level1 restore }bind def end def /setpacking where{ pop setpacking }if %%EndResource %%IncludeResource: font Courier-Bold %%IncludeResource: font Times-Bold %%IncludeResource: font Times-Roman %%IncludeResource: font Courier %%IncludeResource: font Times-Italic %%IncludeResource: font Symbol grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron /scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent /ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen /period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon /semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O /P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex /underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y /z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft /guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl /endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut /dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash /quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen /brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft /logicalnot/minus/registered/macron/degree/plusminus/twosuperior /threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior /ordmasculine/guilsinglright/onequarter/onehalf/threequarters /questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE /Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn /germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash /ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def /Times-Italic@0 ENC0/Times-Italic RE/Courier@0 ENC0/Courier RE /Times-Roman@0 ENC0/Times-Roman RE/Times-Bold@0 ENC0/Times-Bold RE /Courier-Bold@0 ENC0/Courier-Bold RE %%EndProlog %%Page: 1 1 %%BeginPageSetup BP %%EndPageSetup /F0 10/Courier-Bold@0 SF(Internet Engineering Task Force)72 85 Q(TSV WG) 209.998 E 233.998(INTERNET-DRAFT Mark)72 98 R(Handley/ACIRI)6 E 137.998 (draft-ietf-tsvwg-tfrc-00.ps Jitendra)72 111 R(Padhye/ACIRI)6 E (Sally Floyd/ACIRI)401.998 124 Q<4aa8>347.998 150 Q (org Widmer/Univ. Mannheim)-6 E(17 November 2000)407.998 163 Q (Expires: May 2001)401.998 176 Q/F1 14/Times-Bold@0 SF (TCP Friendly Rate Contr)178.086 201 Q(ol \(TFRC\):)-.252 E(Pr)222.991 214 Q(otocol Speci\214cation)-.252 E/F2 11/Times-Bold@0 SF (Status of this Document)72 259 Q/F3 11/Times-Roman@0 SF(This document \ is an Internet-Draft and is in full conformance with all pro)72 275.6 Q (visions of Section 10 of)-.165 E(RFC2026.)72 288.6 Q (Internet-Drafts are w)72 314.6 Q (orking documents of the Internet Engineering T)-.11 E(ask F)-.88 E (orce \(IETF\), its areas,)-.165 E(and its w)72 327.6 Q(orking groups.) -.11 E(Note that other groups may also distrib)5.5 E(ute w)-.22 E (orking documents as)-.11 E(Internet-Drafts.)72 340.6 Q (Internet-Drafts are draft documents v)72 366.6 Q (alid for a maximum of six months and may be updated,)-.275 E (replaced, or obsoleted by other documents at an)72 379.6 Q 2.75(yt) -.165 G 2.75(ime. It)-2.75 F(is inappropriate to use Internet- Drafts) 2.75 E(as reference material or to cite them other than as "w)72 392.6 Q (ork in progress.")-.11 E (The list of current Internet-Drafts can be accessed at http://www)72 418.6 Q(.ietf.or)-.715 E(g/ietf/1id-abstracts.txt)-.198 E (The list of Internet-Draft Shado)72 444.6 Q 2.75(wD)-.275 G (irectories can be accessed at http://www)-2.75 E(.ietf.or)-.715 E (g/shado)-.198 E -.715(w.)-.275 G(html.).715 E (This document is a product of the IETF TSV WG.)72 470.6 Q (Comments should be addressed to the authors.)5.5 E F2(Abstract)267.534 489.6 Q F3 (This document speci\214es TCP-Friendly Rate Control \(TFRC\).)97 512.2 Q(TFRC is a congestion)5.5 E(control mechanism for unicast \215o)97 525.2 Q(ws operating in a best-ef)-.275 E(fort Internet en)-.275 E 2.75 (vironment. It)-.44 F(is reasonably f)97 538.2 Q (air when competing for bandwidth with TCP \215o)-.11 E(ws, b)-.275 E (ut has a much)-.22 E(lo)97 551.2 Q(wer v)-.275 E (ariation of throughput o)-.275 E -.165(ve)-.165 G 2.75(rt).165 G (ime compared with TCP)-2.75 E 2.75(,w)-1.221 G(hich mak)-2.75 E (es it more)-.11 E(suitable for applications such as telephon)97 564.2 Q 2.75(yo)-.165 G 2.75(rs)-2.75 G(treaming media where a relati)-2.75 E -.165(ve)-.275 G(ly).165 E(smooth sending rate is of importance.)97 577.2 Q(Handle)72 769 Q(y/P)-.165 E(adh)-.165 E(ye/Flo)-.055 E(yd/W)-.11 E 252.843(idmer [P)-.44 F(age 1])-.165 E EP %%Page: 2 2 %%BeginPageSetup BP %%EndPageSetup /F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 78.61(-DRAFT Expires:)-1.012 F (May 2001)2.75 E(No)102.986 E -.165(ve)-.165 G(mber 2000).165 E/F1 13 /Times-Bold@0 SF -1.196(Ta)239.126 85 S(ble of Contents)1.196 E/F2 10 /Times-Roman@0 SF(1. Introduction)97 123 Q F0 11(......................) 3.56 G F2(3)11.5 E(2. T)97 135 Q(erminology)-.7 E F0 11 (......................)1.48 G F2(3)11.5 E(3. Protocol Mechanism)97 147 Q F0 11(...................)11.2 G F2(3)11.5 E (3.1. TCP Throughput Equation)107 159 Q F0 11(................)11.33 G F2(3)11.5 E(3.2. P)107 171 Q(ack)-.15 E(et Contents)-.1 E F0 11 (...................)12.28 G F2(4)11.5 E(3.2.1. Data P)117 183 Q(ack) -.15 E(ets)-.1 E F0 11(...................)7.57 G F2(4)11.5 E (3.2.2. Feedback P)117 195 Q(ack)-.15 E(ets)-.1 E F0 11 (..................)1.88 G F2(5)11.5 E(4. Data Sender Protocol)97 207 Q F0 11(...................)8.71 G F2(5)11.5 E(4.1. Measuring the P)107 219 Q(ack)-.15 E(et Size)-.1 E F0 11(................)11.88 G F2(5)11.5 E(4.2. Sender beha)107 231 Q(vior when a feedback pack)-.2 E (et is recei)-.1 E -.15(ve)-.25 G(d).15 E F0 11(.........)5.86 G F2(6) 11.5 E(4.3. Expiration of nofeedback timer)107 243 Q F0 11 (...............)6.5 G F2(6)11.5 E(4.4. Sender Initialization)107 255 Q F0 11(..................)9.12 G F2(7)11.5 E(4.5. Pre)107 267 Q -.15(ve) -.25 G(nting Oscillations).15 E F0 11(.................)11.04 G F2(7) 11.5 E(4.6. Scheduling of P)107 279 Q(ack)-.15 E(et T)-.1 E (ransmissions)-.35 E F0 11(..............).83 G F2(7)11.5 E (5. Calculation of the loss rate \()97 291 Q/F3 10/Courier@0 SF(p)A F2 (\))A F0 11(................)13.13 G F2(8)11.5 E (5.1. Detection of Lost P)107 303 Q(ack)-.15 E(ets)-.1 E F0 11 (.................)1.46 G F2(8)11.5 E(5.2. T)107 315 Q (ranslation from Loss History to Loss Ev)-.35 E(ents)-.15 E F0 11 (...........)4.48 G F2(9)11.5 E(5.3. Inter)107 327 Q(-loss Ev)-.2 E (ent Interv)-.15 E(al)-.25 E F0 11(.................)7.65 G F2(9)11.5 E (5.4. A)107 339 Q -.15(ve)-.74 G(rage Loss Interv).15 E(al)-.25 E F0 11 (..................)2.78 G F2(9)11.5 E(6. Data Recei)97 351 Q -.15(ve) -.25 G 2.5(rP).15 G(rotocol)-2.5 E F0 11(...................)1.34 G F2 (10)6.5 E(6.1. Recei)107 363 Q -.15(ve)-.25 G 2.5(rb).15 G(eha)-2.5 E (vior when a data pack)-.2 E(et is recei)-.1 E -.15(ve)-.25 G(d).15 E F0 11(..........)4.17 G F2(11)6.5 E(6.2. Expiration of feedback timer)107 375 Q F0 11(................)2.75 G F2(11)6.5 E(6.3. Recei)107 387 Q -.15(ve)-.25 G 2.5(ri).15 G(nitialization)-2.5 E F0 11 (..................)2.3 G F2(11)6.5 E(7. Modifying the P)97 399 Q(ack) -.15 E(et Size)-.1 E F0 11(..................)1.87 G F2(12)6.5 E (8. Security Considerations)97 411 Q F0 11(..................)12.17 G F2 (12)6.5 E(9. Authors' Addresses)97 423 Q F0 11(....................)1.35 G F2(12)6.5 E(10. Ackno)97 435 Q(wledgments)-.25 E F0 11 (....................).76 G F2(12)6.5 E(11. References)97 447 Q F0 11 (......................)3.58 G F2(12)6.5 E F0(Handle)72 769 Q(y/P)-.165 E(adh)-.165 E(ye/Flo)-.055 E(yd/W)-.11 E 252.843(idmer [P)-.44 F(age 2]) -.165 E EP %%Page: 3 3 %%BeginPageSetup BP %%EndPageSetup /F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 78.61(-DRAFT Expires:)-1.012 F (May 2001)2.75 E(No)102.986 E -.165(ve)-.165 G(mber 2000).165 E/F1 11 /Times-Bold@0 SF 2.75(1. Intr)72 85 R(oduction)-.198 E F0 (This document speci\214es TCP-Friendly Rate Control \(TFRC\).)72 101.6 Q(TFRC is a congestion control)5.5 E(mechanism for unicast \215o)72 114.6 Q(ws operating in a best-ef)-.275 E(fort Internet en)-.275 E (vironment.)-.44 E(TFRC is designed to be reasonably f)72 131.2 Q (air when competing for bandwidth with TCP \215o)-.11 E(ws [1].)-.275 E (Ho)72 144.2 Q(we)-.275 E -.165(ve)-.275 G 2.75(ri).165 G 2.75(th)-2.75 G(as a much lo)-2.75 E(wer v)-.275 E(ariation of throughput o)-.275 E -.165(ve)-.165 G 2.75(rt).165 G(ime compared with TCP)-2.75 E 2.75(,w) -1.221 G(hich mak)-2.75 E(es)-.11 E (it more suitable for applications such as telephon)72 157.2 Q 2.75(yo) -.165 G 2.75(rs)-2.75 G(treaming media where a relati)-2.75 E -.165(ve) -.275 G(ly smooth).165 E(sending rate is of importance.)72 170.2 Q (The penalty of ha)72 186.8 Q (ving smoother throughput than TCP whilst competing f)-.22 E (airly for bandwidth is)-.11 E(that TFRC responds slo)72 199.8 Q (wer than TCP to changes in a)-.275 E -.275(va)-.22 G(ilable bandwidth.) .275 E(Thus TFRC should only)5.5 E(be used when the application has a s\ trong requirement for smooth and predictable throughput.)72 212.8 Q -.165(Fo)72 225.8 S 2.75(ra).165 G(pplications that simply require to t\ ransfer as much data as possible in as short a time as)-2.75 E (possible we recommend using TCP)72 238.8 Q 2.75(,o)-1.221 G 2.75(ri) -2.75 G 2.75(fr)-2.75 G(eliability is not required, using an Additi) -2.75 E -.165(ve)-.275 G(-Increase,).165 E(Multiplicati)72 251.8 Q -.165 (ve)-.275 G(-Decrease \(AIMD\) congestion control scheme with similar p\ arameters to those).165 E(used by TCP)72 264.8 Q(.)-1.221 E F1 2.75 (2. T)72 290.8 R(erminology)-1.012 E F0(In this document, the k)72 307.4 Q .33 -.165(ey w)-.11 H(ords "MUST", "MUST NO).055 E(T", "REQ)-.44 E (UIRED", "SHALL", "SHALL)-.11 E(NO)72 320.4 Q(T", "SHOULD", "SHOULD NO) -.44 E(T", "RECOMMENDED", "MA)-.44 E(Y", and "OPTION)-1.155 E (AL" are to)-.385 E (be interpreted as described in RFC 2119 and indicate requirement le)72 333.4 Q -.165(ve)-.275 G(ls for compliant TFRC).165 E(implementations.) 72 346.4 Q F1 2.75(3. Pr)72 385.4 R(otocol Mechanism)-.198 E F0 -.165 (Fo)72 402 S 2.75(ri).165 G(ts congestion control mechanism, TFRC direc\ tly uses a throughput equation for the allo)-2.75 E(wed)-.275 E (sending rate as a function of the loss e)72 415 Q -.165(ve)-.275 G (nt rate and round-trip time.).165 E(In order to compete f)5.5 E(airly) -.11 E(with TCP)72 428 Q 2.75(,T)-1.221 G (FRC uses the TCP throughput equation, which roughly describes TCP') -2.75 E 2.75(ss)-.605 G(ending rate)-2.75 E(as a function of the loss e) 72 441 Q -.165(ve)-.275 G(nt rate and round-trip time.).165 E (Generally speaking, TFRC')72 457.6 Q 2.75(sc)-.605 G (ongestion control mechanism w)-2.75 E(orks as follo)-.11 E(ws:)-.275 E 21.15<8354>72 474.2 S(he recei)-21.15 E -.165(ve)-.275 G 2.75(rm).165 G (easures the loss e)-2.75 E -.165(ve)-.275 G (nt rate and feeds this information back to the sender).165 E(.)-.605 E 21.15<8354>72 490.8 S(he sender also uses these feedback messages to me\ asure the round-trip time \(R)-21.15 E(TT\).)-.66 E 21.15<8354>72 507.4 S(he loss rate and R)-21.15 E(TT are then fed into TFRC')-.66 E 2.75(st) -.605 G(hroughput equation, gi)-2.75 E(ving the acceptable)-.275 E (transmit rate.)97 520.4 Q 21.15<8354>72 537 S (he sender then adjusts its transmit rate to match the calculated rate.) -21.15 E(The dynamics of TFRC are sensiti)72 553.6 Q .33 -.165(ve t) -.275 H 2.75(oh).165 G .55 -.275(ow t)-2.75 H (he measurements are performed and applied.).275 E -.88(We)5.5 G (recommend speci\214c mechanisms belo)72 566.6 Q 2.75(wt)-.275 G 2.75 (op)-2.75 G(erform and apply these measurements.)-2.75 E(Other)5.5 E (mechanisms are possible, b)72 579.6 Q (ut it is important to understand ho)-.22 E 2.75(wt)-.275 G (he interactions between)-2.75 E(mechanisms af)72 592.6 Q (fect the dynamics of TFRC.)-.275 E F1 2.75(3.1. TCP)72 618.6 R(Thr)2.75 E(oughput Equation)-.198 E F0(An)72 635.2 Q 2.75(yr)-.165 G (ealistic equation of TCP throughput as a function of loss e)-2.75 E -.165(ve)-.275 G(nt rate and R).165 E(TT should be)-.66 E (suitable for use in TFRC.)72 648.2 Q(Ho)5.5 E(we)-.275 E -.165(ve)-.275 G .88 -.44(r, w).165 H 2.75(en).44 G (ote that the TCP throughput equation used must re\215ect)-2.75 E(TCP') 72 661.2 Q 2.75(sr)-.605 G(etransmit timeout beha)-2.75 E(vior)-.22 E 2.75(,a)-.44 G 2.75(st)-2.75 G (his dominates TCP throughput at higher loss rates.)-2.75 E -.88(We)5.5 G(also note that the assumptions implicit in the throughput equation ab\ out the loss rate parameter)72 674.2 Q(ha)72 687.2 Q .33 -.165(ve t)-.22 H 2.75(ob).165 G 2.75(ear)-2.75 G(easonable match to ho)-2.75 E 2.75(wt) -.275 G(he loss rate is actually measured.)-2.75 E (Whilst this match is not)5.5 E(perfect for the throughput equation and\ loss rate measurement mechanisms gi)72 700.2 Q -.165(ve)-.275 G 2.75 (nb).165 G(elo)-2.75 E 1.43 -.715(w, i)-.275 H(n).715 E(Handle)72 769 Q (y/P)-.165 E(adh)-.165 E(ye/Flo)-.055 E(yd/W)-.11 E 252.843(idmer [P) -.44 F(age 3])-.165 E EP %%Page: 4 4 %%BeginPageSetup BP %%EndPageSetup /F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 78.61(-DRAFT Expires:)-1.012 F (May 2001)2.75 E(No)102.986 E -.165(ve)-.165 G(mber 2000).165 E (practice the assumptions turn out to be close enough.)72 85 Q(The thro\ ughput equation we currently recommend for TFRC is a slightly simpli\ \214ed v)72 101.6 Q(ersion of the)-.165 E (throughput equation for Reno TCP from [2]. Ideally we')72 114.6 Q 2.75 (dp)-.55 G(refer a throughput equation based on)-2.75 E(SA)72 127.6 Q (CK TCP)-.44 E 2.75(,b)-1.221 G(ut the dif)-2.97 E (ferences between the tw)-.275 E 2.75(oe)-.11 G(quations are relati) -2.75 E -.165(ve)-.275 G(ly minor).165 E(.)-.605 E (The throughput equation is:)72 144.2 Q/F1 11/Times-Italic@0 SF(X) 108.869 179.412 Q/F2 11/Symbol SF(=)4.114 E F1(s)86.663 -7.7 M(R)-85.849 25.372 M/F3 27/Symbol SF 11.12 -14.823(\326` `)2.167 6.847 P F0(2)15.742 -14.547 M F1(p)1.375 E .44 LW 168.451 194.224 155.867 194.224 DL F0(3) 159.409 204.784 Q F2(+)7.282 -7.7 M F1(t)2.563 E/F4 8/Times-Italic@0 SF (RTO).977 2.2 M F0(\(3).766 -2.2 M F3 11.12 -14.823(\326` `)1.87 6.847 P F0(3)15.742 -14.547 M F1(p)1.375 E 240.466 194.224 227.882 194.224 DL F0 (8)231.424 204.784 Q(\))4.862 -7.7 M F1(p)1.375 E F0(\(1).209 E F2(+) 2.42 E F0(32)2.42 E F1(p)1.375 E/F5 8/Times-Roman@0 SF(2).209 -3.08 M 298.872 176.552 130.143 176.552 DL F0(\))295.209 197.084 Q(Where:)72 236.707 Q F1(X)97 253.307 Q F0(is the transmit rate in bytes/second.) 2.75 E F1(s)97 269.907 Q F0(is the pack)2.75 E(et size in bytes.)-.11 E F1(R)97 286.507 Q F0(is the round trip time in seconds.)2.75 E F1(p)97 303.107 Q F0(is the loss e)2.75 E -.165(ve)-.275 G (nt rate, between 0 and 1.0, of the number of loss e).165 E -.165(ve) -.275 G(nts as a fraction of the).165 E(number of pack)97 316.107 Q (ets transmitted.)-.11 E F1(t_RT)97 332.707 Q(O)-.198 E F0 (is the TCP retransmission timeout v)2.75 E(alue in seconds.)-.275 E 1.76 -.88(We f)72 349.307 T(urther simplify this by setting).88 E/F6 11 /Courier@0 SF(t_RTO = 4*R)2.75 E F0 5.5(.A)C (more accurate calculation of)-2.75 E F1(t_RT)2.75 E(O)-.198 E F0(is) 2.75 E(possible, b)72 362.307 Q (ut does not appear to be necessary in practice.)-.22 E (Another possibility w)5.5 E(ould be to set)-.11 E F6(t_RTO)72 375.307 Q F0 2.75(=m)2.75 G(ax\(4)-2.75 E F6(R, 1 second\))A F0(.)A (In future, dif)72 391.907 Q (ferent TCP equations may be substituted for this equation.)-.275 E (The requirement is that)5.5 E(the throughput equation be a reasonable \ approximation of the sending rate of TCP for conformant)72 404.907 Q (TCP congestion control.)72 417.907 Q(The parameters)72 434.507 Q F1(s) 2.75 E F0(\(pack)2.75 E(et size\),)-.11 E F1(p)2.75 E F0 (\(loss rate\) and)2.75 E F1(R)2.75 E F0(\(R)2.75 E (TT\) need to be measured or calculated by a)-.66 E (TFRC implementation.)72 447.507 Q(The measurement of)5.5 E F1(s)2.75 E F0(is speci\214ed in Section 4.1, measurement of)2.75 E F1(R)2.75 E F0 (is)2.75 E(speci\214ed in Section 4.2, and measurement of)72 460.507 Q F1(p)2.75 E F0(is speci\214ed in Secion 4.2.)2.75 E/F7 11/Times-Bold@0 SF 2.75(3.2. P)72 486.507 R(ack)-.11 E(et Contents)-.11 E F0 (Before specifying the sender and recei)72 503.107 Q -.165(ve)-.275 G 2.75(rf).165 G(unctionality)-2.75 E 2.75(,w)-.715 G 2.75(ed)-2.75 G (escribe the contents of the data)-2.75 E(pack)72 516.107 Q (ets sent by the sender and feedback pack)-.11 E(ets sent by the recei) -.11 E -.165(ve)-.275 G 3.96 -.605(r. A).165 H 2.75(sT).605 G (FRC will be used)-2.75 E (along with a transport protocol, we do not specify pack)72 529.107 Q (et formats, as these depend on the details)-.11 E (of the transport protocol used.)72 542.107 Q F7 2.75(3.2.1. Data)72 581.107 R -.11(Pa)2.75 G(ck).11 E(ets)-.11 E F0(Each data pack)72 597.707 Q(et sent by the data sender contains the follo)-.11 E (wing information:)-.275 E 21.15<8341>72 614.307 S(sequence number)-18.4 E 2.75(.T)-.605 G(his number is incremented by one for each data pack) -2.75 E(et transmitted.)-.11 E(The \214eld must be suf)97 627.307 Q (\214ciently lar)-.275 E(ge that it does not wrap causing tw)-.198 E 2.75(od)-.11 G(if)-2.75 E(ferent pack)-.275 E(ets with)-.11 E (the same sequence number to be in the recei)97 640.307 Q -.165(ve)-.275 G(r').165 E 2.75(sr)-.605 G(ecent pack)-2.75 E (et history at the same time.)-.11 E 21.15<8341>72 656.907 S (timestamp indicating when the pack)-18.4 E(et is sent. W)-.11 E 2.75 (ed)-.88 G(enote by)-2.75 E F6(ts_i)2.75 E F0(the timestamp of the)2.75 E(pack)97 669.907 Q(et with sequence number)-.11 E F6(i)2.75 E F0 5.5 (.T)C(he resolution of the timestamp should typically be)-5.5 E (measured in milliseconds.)97 682.907 Q(Handle)72 769 Q(y/P)-.165 E(adh) -.165 E(ye/Flo)-.055 E(yd/W)-.11 E 252.843(idmer [P)-.44 F(age 4])-.165 E EP %%Page: 5 5 %%BeginPageSetup BP %%EndPageSetup /F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 78.61(-DRAFT Expires:)-1.012 F (May 2001)2.75 E(No)102.986 E -.165(ve)-.165 G(mber 2000).165 E 21.15 <8354>72 85 S(he sender')-21.15 E 2.75(sc)-.605 G (urrent estimate of the round trip time. The estimate reported in pack) -2.75 E(et)-.11 E/F1 11/Courier@0 SF(i)2.75 E F0(is)2.75 E(denoted by)97 98 Q F1(R_i)2.75 E F0(.)A 21.15<8354>72 114.6 S(he sender')-21.15 E 2.75 (sc)-.605 G(urrent transmit rate. The estimate reported in pack)-2.75 E (et)-.11 E F1(i)2.75 E F0(is denoted by)2.75 E F1(X_i)2.75 E F0(.)A/F2 11/Times-Bold@0 SF 2.75(3.2.2. F)72 144.2 R(eedback P)-.275 E(ack)-.11 E (ets)-.11 E F0(Each feedback pack)72 160.8 Q(et sent by the data recei) -.11 E -.165(ve)-.275 G 2.75(rc).165 G(ontains the follo)-2.75 E (wing information:)-.275 E 21.15<8354>72 177.4 S (he timestamp of the last data pack)-21.15 E(et recei)-.11 E -.165(ve) -.275 G(d. W).165 E 2.75(ed)-.88 G(enote this by)-2.75 E F1(t_recvdata) 2.75 E F0 5.5(.I)C 2.75(ft)-5.5 G(he last)-2.75 E(pack)97 190.4 Q (et recei)-.11 E -.165(ve)-.275 G 2.75(da).165 G 2.75(tt)-2.75 G (he recei)-2.75 E -.165(ve)-.275 G 2.75(rh).165 G(as sequence number) -2.75 E F1(i)2.75 E F0 2.75(,t)C(hen)-2.75 E F1(t_recvdata = ts_i)2.75 E F0(.)A 21.15<8354>72 207 S (he amount of time elapsed between the receipt of the last data pack) -21.15 E(et at the recei)-.11 E -.165(ve)-.275 G .88 -.44(r, a).165 H (nd).44 E(the generation of this feedback report. W)97 220 Q 2.75(ed) -.88 G(enote this by)-2.75 E F1(t_delay)2.75 E F0(.)A 21.15<8354>72 236.6 S(he rate at which the recei)-21.15 E -.165(ve)-.275 G 2.75(re) .165 G(stimates that data w)-2.75 E(as recei)-.11 E -.165(ve)-.275 G 2.75(ds).165 G(ince the last feedback report)-2.75 E -.11(wa)97 249.6 S 2.75(ss).11 G(ent. W)-2.75 E 2.75(ed)-.88 G(enote this by)-2.75 E F1 (X_recv)2.75 E F0(.)A 21.15<8354>72 266.2 S(he recei)-21.15 E -.165(ve) -.275 G(r').165 E 2.75(sc)-.605 G(urrent estimate of the loss e)-2.75 E -.165(ve)-.275 G(nt rate,).165 E F1(p)2.75 E F0(.)A F2 2.75(4. Data)72 295.8 R(Sender Pr)2.75 E(otocol)-.198 E F0 (The data sender sends a stream of data pack)72 312.4 Q (ets to the data recei)-.11 E -.165(ve)-.275 G 2.75(ra).165 G 2.75(tac) -2.75 G(ontrolled rate. When a)-2.75 E(feedback pack)72 325.4 Q (et is recei)-.11 E -.165(ve)-.275 G 2.75(df).165 G(rom the data recei) -2.75 E -.165(ve)-.275 G .88 -.44(r, t).165 H (he data sender changes its sending rate, based).44 E(on the informatio\ n contained in the feedback report. If the sender does not recei)72 338.4 Q .33 -.165(ve a f)-.275 H(eedback).165 E(report for tw)72 351.4 Q 2.75(or)-.11 G(ound trip times, it cuts its sending rate in half.)-2.75 E(This is achie)5.5 E -.165(ve)-.275 G 2.75(db).165 G 2.75(ym)-2.75 G (eans of a)-2.75 E(timer called the)72 364.4 Q/F3 11/Times-Italic@0 SF (nofeedbac)2.75 E(k)-.22 E F0(timer)2.75 E(.)-.605 E 1.76 -.88(We s)72 381 T(pecify the sender).88 E(-side protocol in the follo)-.22 E (wing steps:)-.275 E 21.15<834d>72 397.6 S(easurement of the mean pack) -21.15 E(et size being sent.)-.11 E 21.15<8354>72 414.2 S (he sender beha)-21.15 E(vior when a feedback pack)-.22 E(et is recei) -.11 E -.165(ve)-.275 G(d.).165 E 21.15<8354>72 430.8 S(he sender beha) -21.15 E(vior when the)-.22 E F3(nofeedbac)2.75 E(k)-.22 E F0(timer e) 2.75 E(xpires.)-.165 E 21.15<834f>72 447.4 S(scillation pre)-21.15 E -.165(ve)-.275 G(ntion \(optional\)).165 E 21.15<8353>72 464 S (cheduling of transmission on non-realtime operating systems.)-21.15 E F2 2.75(4.1. Measuring)72 493.6 R(the P)2.75 E(ack)-.11 E(et Size)-.11 E F0(The parameter)72 510.2 Q F1(s)2.75 E F0(\(pack)2.75 E (et size\) is normally kno)-.11 E(wn to an application.)-.275 E (This may not be the case in)5.5 E(tw)72 523.2 Q 2.75(oc)-.11 G(ases:) -2.75 E 21.15<8354>72 539.8 S(he pack)-21.15 E(et size naturally v)-.11 E(aries depending on the data.)-.275 E(In this case, although the pack) 5.5 E(et)-.11 E(size v)97 552.8 Q(aries, that v)-.275 E (ariation is not coupled to the transmit rate.)-.275 E (It should normally be safe to)5.5 E(use an estimate of the mean pack)97 565.8 Q(et size for)-.11 E F1(s)2.75 E F0(.)A 21.15<8354>72 582.4 S (he application needs to change the pack)-21.15 E (et size rather than the number of pack)-.11 E(ets per)-.11 E (second to perform congestion control.)97 595.4 Q(This w)5.5 E (ould normally be the case with pack)-.11 E(et audio)-.11 E (applications where a \214x)97 608.4 Q(ed interv)-.165 E (al of time needs to be represented by each pack)-.275 E 2.75(et. Such) -.11 F(applications need to ha)97 621.4 Q .33 -.165(ve a c)-.22 H (ompletely dif).165 E(ferent w)-.275 E(ay of measuring parameters.)-.11 E(The second class of applications are discussed separately in Section \ 7. F)72 638 Q(or the remainder of this)-.165 E (section we assume the sender can estimate the pack)72 651 Q (et size, and that congestion control is)-.11 E (performed by adjusting the number of pack)72 664 Q (ets sent per second.)-.11 E(Handle)72 769 Q(y/P)-.165 E(adh)-.165 E (ye/Flo)-.055 E(yd/W)-.11 E 252.843(idmer [P)-.44 F(age 5])-.165 E EP %%Page: 6 6 %%BeginPageSetup BP %%EndPageSetup /F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 78.61(-DRAFT Expires:)-1.012 F (May 2001)2.75 E(No)102.986 E -.165(ve)-.165 G(mber 2000).165 E/F1 11 /Times-Bold@0 SF 2.75(4.2. Sender)72 85 R(beha)2.75 E (vior when a feedback pack)-.275 E(et is r)-.11 E(ecei)-.198 E -.11(ve) -.11 G(d).11 E F0(The sender kno)72 101.6 Q (ws its current sending rate,)-.275 E/F2 11/Courier@0 SF(X)2.75 E F0 2.75(,a)C(nd maintains an estimate of the current round trip)-2.75 E (time,)72 114.6 Q F2(R)2.75 E F0 2.75(,a)C (nd an estimate of the timeout interv)-2.75 E(al,)-.275 E F2(t_RTO)2.75 E F0(.)A(When a feedback pack)72 140.6 Q(et is recei)-.11 E -.165(ve) -.275 G 2.75(db).165 G 2.75(yt)-2.75 G(he sender at time)-2.75 E F2 (t_now)2.75 E F0 2.75(,t)C(he follo)-2.75 E(wing actions should be)-.275 E(performed:)72 153.6 Q 13.087(1\) Calculate)72 173.8 R 2.75(an)2.75 G .55 -.275(ew r)-2.75 H(ound trip sample.).275 E F2 (R_sample = \(t_now - t_recvdata\) - t_delay)97 186.8 Q F0(.)A 13.087 (2\) Update)72 203.4 R(the round trip time estimate:)2.75 E F2 (If no feedback has been received before)133 222.4 Q 6.6(R=R)159.4 235.4 S(_sample)-6.6 E(Else)133 248.4 Q 6.6(R=q)159.4 261.4 S (*R + \(1-q\)*R_sample)-6.6 E F0(TFRC is not sensiti)97 280.4 Q .33 -.165(ve t)-.275 H 2.75(ot).165 G(he precise v)-2.75 E (alue for the \214lter constant)-.275 E F2(q)2.75 E F0 2.75(,b)C (ut we recommend a)-2.97 E(def)97 293.4 Q(ault v)-.11 E(alue of 0.9.) -.275 E 13.087(3\) Update)72 310 R(the timeout interv)2.75 E(al:)-.275 E F2(t_RTO = 4*R)133 329 Q F0(.)A 13.087(4\) Update)72 351.6 R (the sending rate:)2.75 E(First, calculate the allo)97 368.2 Q (wed transmit rate,)-.275 E F2(X_calc)2.75 E F0 2.75(,u)C (sing the TCP equation from Section)-2.75 E(3.1.)97 381.2 Q(Then:)97 397.8 Q F2(If p > 0)133 416.8 Q 6.6(X=m)146.2 429.8 S (in\(X_calc, 2*X_recv\))-6.6 E(Else)133 442.8 Q 6.6(X=m)146.2 455.8 S (ax\(min\(2*X, 2*X_recv\), s/RTT\).)-6.6 E F0 (Note that if p == 0, then the sender is in slo)97 474.8 Q (w-start phase, where it approximately doubles)-.275 E (the sending rate each round-trip time until a loss occurs.)97 487.8 Q 13.087(5\) Reset)72 504.4 R(the)2.75 E F2(nofeedback)2.75 E F0 (timer to e)2.75 E(xpire after)-.165 E F2(max\(2*R, 2*s/X\))2.75 E F0 (seconds.)2.75 E F1 2.75(4.3. Expiration)72 530.4 R(of nofeedback timer) 2.75 E F0(If the)72 547 Q F2(nofeedback)2.75 E F0(timer e)2.75 E (xpires, the sender should perform the follo)-.165 E(wing actions:)-.275 E 13.087(1\) Cut)72 563.6 R(the sending rate in half.)2.75 E (This is done by modifying the sender')5.5 E 2.75(sc)-.605 G(ached cop) -2.75 E 2.75(yo)-.11 G 2.75(fX)-2.75 G(_recv)-2.75 E(\(the recei)97 576.6 Q .33 -.165(ve r)-.275 H (ate\) as this will trigger the correct slo).165 E(wstart beha)-.275 E (vior after the problem has)-.22 E(been resolv)97 589.6 Q(ed:)-.165 E F2 (If X_calc > 2*X_recv)158 608.6 Q(X_recv = max\(X_recv/2, s/128\))171.2 621.6 Q(Else)158 634.6 Q(X_recv = X_calc/4)171.2 647.6 Q F0(The)97 670.2 Q F2(s/128)2.75 E F0(term limits the back)2.75 E(of)-.11 E 2.75(ft)-.275 G 2.75(oo)-2.75 G(ne pack)-2.75 E(et e)-.11 E -.165(ve)-.275 G (ry 64 seconds in the case of persistent).165 E(absense of feedback.)97 683.2 Q(Handle)72 769 Q(y/P)-.165 E(adh)-.165 E(ye/Flo)-.055 E(yd/W)-.11 E 252.843(idmer [P)-.44 F(age 6])-.165 E EP %%Page: 7 7 %%BeginPageSetup BP %%EndPageSetup /F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 78.61(-DRAFT Expires:)-1.012 F (May 2001)2.75 E(No)102.986 E -.165(ve)-.165 G(mber 2000).165 E 13.087 (2\) The)72 85 R -.275(va)2.75 G(lue of).275 E/F1 11/Courier@0 SF(X)2.75 E F0(must then be recalculated as described under point \(4\) abo)2.75 E -.165(ve)-.165 G(.).165 E 13.087(3\) Restart)72 101.6 R(the)2.75 E F1 (nofeedback)2.75 E F0(timer to e)2.75 E(xpire after)-.165 E F1 (max\(4*R, 2*s/X\))2.75 E F0(seconds.)2.75 E (Note that when the sender stops sending, the recei)72 118.2 Q -.165(ve) -.275 G 2.75(rw).165 G(ill stop sending feedback.)-2.75 E (This will cause)5.5 E(the)72 131.2 Q F1(nofeedback)2.75 E F0 (timer to start to e)2.75 E(xpire and decrease)-.165 E F1(X_recv)2.75 E F0 5.5(.I)C 2.75(ft)-5.5 G(he sender subsequently)-2.75 E (starts to send ag)72 144.2 Q(ain,)-.055 E F1(X_recv)2.75 E F0 (will limit the transmit rate, and a normal slo)2.75 E (wstart phase will occur)-.275 E(until the transmit rate reached)72 157.2 Q F1(X_calc)2.75 E F0(.)A/F2 11/Times-Bold@0 SF 2.75(4.4. Sender) 72 183.2 R(Initialization)2.75 E F0 1.76 -.88(To i)72 199.8 T (nitialize the sender).88 E 2.75(,t)-.44 G(he v)-2.75 E(alue of)-.275 E F1(X)2.75 E F0(is set to 1 pack)2.75 E(et/second and the)-.11 E F1 (nofeedback)2.75 E F0(timer is set)2.75 E(to e)72 212.8 Q (xpire after 2 seconds. The initial v)-.165 E(alues for)-.275 E F1(R) 2.75 E F0(\(R)2.75 E(TT\) and)-.66 E F1(t_RTO)2.75 E F0 (are unde\214ned until the)2.75 E 2.75(ya)-.165 G(re)-2.75 E (set as described abo)72 225.8 Q -.165(ve)-.165 G(.).165 E F2 2.75 (4.5. Pr)72 255.4 R -2.53 -.165(ev e)-.198 H(nting Oscillations).165 E F0 1.76 -.88(To p)72 275.6 T(re).88 E -.165(ve)-.275 G (nt oscillatory beha).165 E(vior in en)-.22 E(vironments with a lo)-.44 E 2.75(wd)-.275 G -.165(eg)-2.75 G(ree of statistical multiple).165 E (xing it is)-.165 E(useful to modify sender')72 288.6 Q 2.75(st)-.605 G (ransmit rate to pro)-2.75 E(vide congestion a)-.165 E -.22(vo)-.22 G (idance beha).22 E(vior by reducing the)-.22 E (transmit rate as the queuing delay \(and hence R)72 301.6 Q (TT\) increases.)-.66 E 1.76 -.88(To d)5.5 H 2.75(ot).88 G (his the sender maintains an)-2.75 E(estimate of the long-term R)72 314.6 Q(TT and modi\214es its sending rate depending on ho)-.66 E 2.75 (wt)-.275 G(he most recent)-2.75 E(sample of the R)72 327.6 Q(TT dif) -.66 E(fers from this v)-.275 E 2.75(alue. The)-.275 F (long-term sample is)2.75 E F1(R_sqmean)2.75 E F0 2.75(,a)C (nd is set as)-2.75 E(follo)72 340.6 Q(ws:)-.275 E F1 (If no feedback has been received before)108 359.6 Q (R_sqmean = sqrt\(R_sample\))134.4 372.6 Q(Else)108 385.6 Q (R_sqmean = q2*R_sqmean + \(1-q2\)*sqrt\(R_sample\))134.4 398.6 Q F0 (Thus)72 417.6 Q F1(R_sqmean)2.75 E F0(gi)2.75 E -.165(ve)-.275 G 2.75 (st).165 G(he e)-2.75 E(xponentially weighted mo)-.165 E(ving a)-.165 E -.165(ve)-.22 G(rage of the square root of the R).165 E(TT)-.66 E 2.75 (samples. The)72 430.6 R(constant)2.75 E F1(q2)2.75 E F0 (should be set similarly to)2.75 E F1(q)2.75 E F0 2.75(,a)C (nd we recommend a v)-2.75 E(alue of 0.9 as the)-.275 E(def)72 443.6 Q (ault.)-.11 E(The sender obtains the base tranmit rate,)72 460.2 Q F1(X) 2.75 E F0 2.75(,f)C(rom the throughput function.)-2.75 E (It then calculates a)5.5 E(modi\214ed instantaneous transmit rate,)72 473.2 Q F1(X_inst)2.75 E F0 2.75(,a)C 2.75(sf)-2.75 G(ollo)-2.75 E(ws:) -.275 E F1(X_inst = X * R_sqmean / sqrt\(R_sample\))108 492.2 Q F0(When) 72 514.8 Q F1(sqrt\(R_sample\))2.75 E F0(is greater than)2.75 E F1 (R_sqmean)2.75 E F0(then the queue is typically increasing and)2.75 E (so the transmit rate needs to be decreased for stable operation.)72 527.8 Q(Note: This modi\214cation is not al)72 544.4 Q -.11(wa)-.11 G (ys strictly required, especially if the de).11 E(gree of statistical) -.165 E(multiple)72 557.4 Q(xing in the netw)-.165 E(ork is high.)-.11 E (Ho)5.5 E(we)-.275 E -.165(ve)-.275 G 2.75(rw).165 G 2.75(er)-2.75 G (ecommend that it is done because it does mak)-2.75 E(e)-.11 E (TFRC beha)72 570.4 Q .33 -.165(ve b)-.22 H(etter in en).165 E (vironments with a lo)-.44 E 2.75(wl)-.275 G -2.365 -.275(ev e)-2.75 H 2.75(lo).275 G 2.75(fs)-2.75 G(tatistical multiple)-2.75 E 2.75 (xing. If)-.165 F(it is not done,)2.75 E(we recommend using a v)72 583.4 Q(ery lo)-.165 E 2.75(wv)-.275 G(alue of)-3.025 E F1(q)2.75 E F0 2.75 (,s)C(uch that)-2.75 E F1(q)2.75 E F0(is close to or e)2.75 E (xactly zero.)-.165 E F2 2.75(4.6. Scheduling)72 609.4 R(of P)2.75 E (ack)-.11 E(et T)-.11 E(ransmissions)-.814 E F0(As TFRC is rate-based, \ and as operating systems typically cannot schedule e)72 626 Q -.165(ve) -.275 G(nts precisely).165 E 2.75(,i)-.715 G 2.75(ti)-2.75 G(s)-2.75 E (necessary to be opportunistic about sending data pack)72 639 Q (ets so that the correct a)-.11 E -.165(ve)-.22 G(rage rate is).165 E (maintained despite the course-grain or irre)72 652 Q (gular scheduling of the operating system.)-.165 E(Thus a)5.5 E (typical sending loop will calculate the correct inter)72 665 Q(-pack) -.22 E(et interv)-.11 E(al,)-.275 E F1(t_ipi)2.75 E F0 2.75(,a)C 2.75 (sf)-2.75 G(ollo)-2.75 E(ws:)-.275 E F1(t_ipi = 1/\(X_inst * s\))108 684 Q F0(When a sender \214rst starts sending at time)72 703 Q F1(t_0)2.75 E F0 2.75(,i)C 2.75(tc)-2.75 G(alculates)-2.75 E F1(t_ipi)2.75 E F0 2.75 (,a)C(nd calculates a nominal)-2.75 E(Handle)72 769 Q(y/P)-.165 E(adh) -.165 E(ye/Flo)-.055 E(yd/W)-.11 E 252.843(idmer [P)-.44 F(age 7])-.165 E EP %%Page: 8 8 %%BeginPageSetup BP %%EndPageSetup /F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 78.61(-DRAFT Expires:)-1.012 F (May 2001)2.75 E(No)102.986 E -.165(ve)-.165 G(mber 2000).165 E (send time)72 85 Q/F1 11/Courier@0 SF(t_1 = t_0 + t_ipi)2.75 E F0 (for pack)2.75 E(et 1.)-.11 E (When the application becomes idle, it checks)5.5 E(the current time,)72 98 Q F1(t_now)2.75 E F0 2.75(,a)C(nd then requests re-scheduling after) -2.75 E F1(\(t_ipi - \(t_now - t_0\)\))2.75 E F0 2.75(seconds. When)72 111 R(the application is re-scheduled, it checks the current time,)2.75 E F1(t_now)2.75 E F0 2.75(,a)C -.055(ga)-2.75 G(in. If).055 E(\()72 124 Q F1(t_now > t_1 - delta)A F0 2.75(\)t)C(hen pack)-2.75 E(et 1 is sent.) -.11 E(No)72 140.6 Q 2.75(wan)-.275 G -.275(ew)-2.75 G F1(t_ipi)3.025 E F0(may be calculated, and used to calculate a nominal send time)2.75 E F1(t_2)2.75 E F0(for pack)2.75 E(et)-.11 E(2:)72 153.6 Q F1 (t2 = t_1 + t_ipi)2.75 E F0 5.5(.T)C (he process then repeats, with each successi)-5.5 E .33 -.165(ve p)-.275 H(ack).165 E(et')-.11 E 2.75(ss)-.605 G(end time)-2.75 E (being calculated from the nominal send time of the pre)72 166.6 Q (vious pack)-.275 E(et.)-.11 E (In some cases, when the nominal send time,)72 183.2 Q F1(t_i)2.75 E F0 2.75(,o)C 2.75(ft)-2.75 G(he ne)-2.75 E(xt pack)-.165 E (et is calculated, it may already)-.11 E(be the case that)72 196.2 Q F1 (t_now > t_i - delta)2.75 E F0 5.5(.I)C 2.75(ns)-5.5 G (uch a case the pack)-2.75 E(et should be sent)-.11 E(immediately)72 209.2 Q 5.5(.T)-.715 G(hus if the operating system has coarse timer gra\ nularity and the transmit rate is)-5.5 E (high, then TFRC may send short b)72 222.2 Q(ursts of se)-.22 E -.165 (ve)-.275 G(ral pack).165 E(ets separated by interv)-.11 E (als of the OS timer)-.275 E(granularity)72 235.2 Q(.)-.715 E (The parameter)72 251.8 Q F1(delta)2.75 E F0(is to allo)2.75 E 2.75(wad) -.275 G -.165(eg)-2.75 G(ree of \215e).165 E (xibility in the send time of a pack)-.165 E 2.75(et. If)-.11 F(the)2.75 E(operating system has a scheduling timer granularity of)72 264.8 Q F1 (t_gran)2.75 E F0(seconds, then delta w)2.75 E(ould)-.11 E (typically be set to:)72 277.8 Q F1(delta = min\(t_ipi/2, t_gran/2\))108 296.8 Q(t_gran)72 315.8 Q F0(is 10ms on man)2.75 E 2.75(yU)-.165 G (nix systems.)-2.75 E(If)5.5 E F1(t_gran)2.75 E F0(is not kno)2.75 E (wn, a v)-.275 E(alue of 10ms can be safely)-.275 E(assumed.)72 328.8 Q /F2 11/Times-Bold@0 SF 2.75(5. Calculation)72 354.8 R (of the loss rate \()2.75 E F1(p)A F0(\))A(Obtaining a accurate and sta\ ble measurement of the loss rate is of primary importance for TFRC.)72 371.4 Q(Loss rate measurement is performed at the recei)72 384.4 Q -.165 (ve)-.275 G .88 -.44(r, b).165 H(ased on the detection of lost pack).44 E(ets from)-.11 E(the sequence numbers of arri)72 397.4 Q(ving pack) -.275 E(ets. W)-.11 E 2.75(ed)-.88 G (escribe this process before describing the rest of)-2.75 E(the recei)72 410.4 Q -.165(ve)-.275 G 2.75(rp).165 G(rotocol.)-2.75 E F2 2.75 (5.1. Detection)72 436.4 R(of Lost P)2.75 E(ack)-.11 E(ets)-.11 E F0 (TFRC assumes that all pack)72 453 Q (ets contain a sequence number that is incremented by one for each)-.11 E(pack)72 466 Q(et that is sent.)-.11 E -.165(Fo)5.5 G 2.75(rt).165 G (he purposes of this speci\214cation, we require that if a lost pack) -2.75 E(et is)-.11 E(retransmitted, the retransmission is gi)72 479 Q -.165(ve)-.275 G 2.75(nan).165 G .55 -.275(ew s)-2.75 H (equence number that is the latest in the).275 E (transmission sequence, and not the same sequence number as the pack)72 492 Q(et that w)-.11 E(as lost.)-.11 E(If a)5.5 E(transport protocol ha\ s the requirement that it must retransmit with the original sequence nu\ mber)72 505 Q(,)-.44 E (then the transport protocol designer must \214gure out ho)72 518 Q 2.75 (wt)-.275 G 2.75(od)-2.75 G(istinguish delayed from retransmitted)-2.75 E(pack)72 531 Q(ets and ho)-.11 E 2.75(wt)-.275 G 2.75(od)-2.75 G (etect lost retransmissions.)-2.75 E(The recei)72 547.6 Q -.165(ve)-.275 G 2.75(rm).165 G(aintains a data structure that k)-2.75 E (eeps track of which pack)-.11 E(ets ha)-.11 E .33 -.165(ve a)-.22 H (rri).165 E -.165(ve)-.275 G 2.75(da).165 G(nd which)-2.75 E (are missing.)72 560.6 Q -.165(Fo)5.5 G 2.75(rt).165 G(he purposes of s\ peci\214cation, we assume that the data structure consists of a list) -2.75 E(of pack)72 573.6 Q(ets that ha)-.11 E .33 -.165(ve a)-.22 H(rri) .165 E -.165(ve)-.275 G 2.75(da).165 G(long with the recei)-2.75 E -.165 (ve)-.275 G 2.75(rt).165 G(imestamp when each pack)-2.75 E(et w)-.11 E (as recei)-.11 E -.165(ve)-.275 G 2.75(d. In).165 F(practice this data \ structure will normally be stored in a more compact representation, b)72 586.6 Q(ut this is)-.22 E(implementation-speci\214c.)72 599.6 Q (The loss of a pack)72 616.2 Q(et is detected by the arri)-.11 E -.275 (va)-.275 G 2.75(lo).275 G 2.75(fa)-2.75 G 2.75(tl)-2.75 G (east three pack)-2.75 E(ets with a higher sequence)-.11 E (number than the lost pack)72 629.2 Q 2.75(et. The)-.11 F (requirement for three subsequent pack)2.75 E(ets is the same as with) -.11 E(TCP)72 642.2 Q 2.75(,a)-1.221 G(nd is to mak)-2.75 E 2.75(eT)-.11 G(FRC more rob)-2.75 E(ust in the presence of reordering.)-.22 E (In contrast to TCP)5.5 E 2.75(,i)-1.221 G 2.75(fa)-2.75 G(pack)72 655.2 Q(et arri)-.11 E -.165(ve)-.275 G 2.75(sl).165 G (ate \(after 3 subsequent pack)-2.75 E(ets arri)-.11 E -.165(ve)-.275 G (d\) in TFRC, the late pack).165 E(et can \214ll the hole in)-.11 E (TFRC')72 668.2 Q 2.75(sr)-.605 G(eception record, and the recei)-2.75 E -.165(ve)-.275 G 2.75(rc).165 G(an recalculate the loss e)-2.75 E -.165 (ve)-.275 G(nt rate.).165 E(Future v)5.5 E(ersions of)-.165 E (TFRC might mak)72 681.2 Q 2.75(et)-.11 G (he requirement for three subsequent pack)-2.75 E(ets adapti)-.11 E .33 -.165(ve b)-.275 H(ased on e).165 E(xperienced)-.165 E(pack)72 694.2 Q (et reordering, b)-.11 E(ut we do not specify such a mechanism here.) -.22 E(Handle)72 769 Q(y/P)-.165 E(adh)-.165 E(ye/Flo)-.055 E(yd/W)-.11 E 252.843(idmer [P)-.44 F(age 8])-.165 E EP %%Page: 9 9 %%BeginPageSetup BP %%EndPageSetup /F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 78.61(-DRAFT Expires:)-1.012 F (May 2001)2.75 E(No)102.986 E -.165(ve)-.165 G(mber 2000).165 E/F1 11 /Times-Bold@0 SF 2.75(5.2. T)72 85 R(ranslation fr)-.814 E (om Loss History to Loss Ev)-.198 E(ents)-.11 E F0 (TFRC requires that the loss fraction be rob)72 101.6 Q(ust to se)-.22 E -.165(ve)-.275 G(ral consecuti).165 E .33 -.165(ve p)-.275 H(ack).165 E (ets lost where those)-.11 E(pack)72 114.6 Q (ets are part of the same loss e)-.11 E -.165(ve)-.275 G 2.75(nt. This) .165 F(is similar to TCP)2.75 E 2.75(,w)-1.221 G (hich \(typically\) only performs)-2.75 E (one halving of the congestion windo)72 127.6 Q 2.75(wd)-.275 G (uring an)-2.75 E 2.75(ys)-.165 G(ingle R)-2.75 E(TT)-.66 E 5.5(.T)-.814 G(hus the recei)-5.5 E -.165(ve)-.275 G 2.75(rn).165 G(eeds to map the) -2.75 E(pack)72 140.6 Q(et loss history into a loss e)-.11 E -.165(ve) -.275 G(nt record, where a loss e).165 E -.165(ve)-.275 G (nt is one or more pack).165 E(ets lost in an)-.11 E -.66(RT)72 153.6 S 4.378 -.814(T. T).66 H 2.75(op)-.066 G(erform this mapping, the recei) -2.75 E -.165(ve)-.275 G 2.75(rn).165 G(eeds to kno)-2.75 E 2.75(wt) -.275 G(he R)-2.75 E(TT to use, and this is supplied)-.66 E (periodically by the sender)72 166.6 Q 2.75(,t)-.44 G (ypically as control information piggy-back)-2.75 E(ed onto a data pack) -.11 E(et.)-.11 E(TFRC is not sensiti)72 179.6 Q .33 -.165(ve t)-.275 H 2.75(oh).165 G .55 -.275(ow t)-2.75 H(he R).275 E (TT measurement sent to the recei)-.66 E -.165(ve)-.275 G 2.75(ri).165 G 2.75(sm)-2.75 G(ade, b)-2.75 E(ut we)-.22 E(recommend using the sender') 72 192.6 Q 2.75(sc)-.605 G(alculated R)-2.75 E(TT)-.66 E(,)-.814 E/F2 11 /Courier@0 SF(R)2.75 E F0 2.75(,\()C (see Section 4.2\) for this purpose.)-2.75 E 1.76 -.88(To d)72 209.2 T (etermine whether a lost pack).88 E(et should start a ne)-.11 E 2.75(wl) -.275 G(oss e)-2.75 E -.165(ve)-.275 G(nt, or be counted as part of an) .165 E -.165(ex)72 222.2 S(isting loss e).165 E -.165(ve)-.275 G (nt, we need to compare the sequence numbers and timestamps of the pack) .165 E(ets that)-.11 E(arri)72 235.2 Q -.165(ve)-.275 G 2.75(da).165 G 2.75(tt)-2.75 G(he recei)-2.75 E -.165(ve)-.275 G 3.96 -.605(r. A).165 H (ssume:).605 E F2(S_loss)97 251.8 Q F0 (is the sequence number of a lost pack)2.75 E(et.)-.11 E F2(S_before)97 268.4 Q F0(is the sequence number of the last pack)2.75 E(et to arri) -.11 E .33 -.165(ve w)-.275 H(ith sequence number).165 E(before S_loss.) 97 281.4 Q F2(S_after)97 298 Q F0 (is the sequence number of the \214rst pack)2.75 E(et to arri)-.11 E .33 -.165(ve w)-.275 H(ith sequence number after).165 E(S_loss.)97 311 Q F2 (T_before)97 327.6 Q F0(is the reception time of S_before.)2.75 E F2 (T_after)97 344.2 Q F0(is the reception time of S_after)2.75 E(.)-.605 E (Note that)72 360.8 Q F2(T_before)2.75 E F0 (can either be before or after)2.75 E F2(T_after)2.75 E F0 (due to reordering.)2.75 E 1.76 -.88(We c)72 377.4 T (an interpolate the nominal "arri).88 E -.275(va)-.275 G 2.75(lt).275 G (ime" of)-2.75 E F2(S_loss)2.75 E F0(at the recei)2.75 E -.165(ve)-.275 G 2.75(rf).165 G(rom the arri)-2.75 E -.275(va)-.275 G 2.75(lt).275 G (imes of)-2.75 E F2(S_before)72 390.4 Q F0(and)2.75 E F2(S_after)2.75 E F0 2.75(.T)C(hus)-2.75 E F2 (T_loss = T_before + \( \(T_after - T_before\))108 409.4 Q 6.6(*\()187.2 422.4 S(S_loss - S_before\)/\(S_after - S_before\) \))-6.6 E F0 (Note that if the sequence space wrapped between S_before and S_after)72 445 Q 2.75(,t)-.44 G(hen the sequence)-2.75 E (numbers must be modi\214ed to tak)72 458 Q 2.75(et)-.11 G (his into account before performing this calculation.)-2.75 E(If the)5.5 E(lar)72 471 Q(gest possible sequence number is)-.198 E F2(S_max)2.75 E F0 2.75(,a)C(nd)-2.75 E F2(S_before > S_after)2.75 E F0 2.75(,t)C (hen modifying)-2.75 E(each sequence number)72 484 Q F2(S)2.75 E F0(by) 2.75 E F2(S')2.75 E F0 2.75(=\()2.75 G F2(S)-2.75 E F0 2.75(+\()2.75 G F2(S_max)-2.75 E F0 2.75(+1)2.75 G(\)/2\) mod \()-2.75 E F2(S_max)A F0 2.75(+1)2.75 G 2.75(\)w)-2.75 G(ould normally be)-2.86 E(suf)72 497 Q (\214cient.)-.275 E(If the lost pack)72 513.6 Q(et)-.11 E F2(S_old)2.75 E F0 -.11(wa)2.75 G 2.75(sd).11 G(etermined to ha)-2.75 E .33 -.165 (ve s)-.22 H(tarted the pre).165 E(vious loss e)-.275 E -.165(ve)-.275 G (nt, and we ha).165 E .33 -.165(ve j)-.22 H(ust).165 E(determined that) 72 526.6 Q F2(S_new)2.75 E F0 (has been lost, then we interpolate the nominal arri)2.75 E -.275(va) -.275 G 2.75(lt).275 G(imes of)-2.75 E F2(S_old)2.75 E F0(and)72 539.6 Q F2(S_new)2.75 E F0 2.75(,c)C(alled)-2.75 E F2(T_old)2.75 E F0(and)2.75 E F2(T_new)2.75 E F0(respecti)2.75 E -.165(ve)-.275 G(ly).165 E(.)-.715 E (If)72 556.2 Q F2(T_old + R)2.75 E F0(>=)2.75 E F2(T_new)2.75 E F0 2.75 (,t)C(hen S_ne)-2.75 E 2.75(wi)-.275 G 2.75(sp)-2.75 G(art of the e) -2.75 E(xisting loss e)-.165 E -.165(ve)-.275 G(nt. Otherwise S_ne).165 E 2.75(wi)-.275 G 2.75(st)-2.75 G(he)-2.75 E(\214rst pack)72 569.2 Q (et in a ne)-.11 E 2.75(wl)-.275 G(oss e)-2.75 E -.165(ve)-.275 G(nt.) .165 E F1 2.75(5.3. Inter)72 598.8 R(-loss Ev)-.407 E(ent Inter)-.11 E -.11(va)-.11 G(l).11 E F0(If a loss interv)72 615.4 Q (al, A, is determined to ha)-.275 E .33 -.165(ve s)-.22 H (tarted with pack).165 E(et sequence number S_A and the ne)-.11 E(xt) -.165 E(loss interv)72 628.4 Q(al, B, started with pack)-.275 E (et sequence number S_B, then the number of pack)-.11 E(ets in loss)-.11 E(interv)72 641.4 Q(al A is gi)-.275 E -.165(ve)-.275 G 2.75(nb).165 G 2.75(y\()-2.75 G(S_B - S_A\).)-2.75 E F1 2.75(5.4. A)72 667.4 R -.11(ve) -1.1 G(rage Loss Inter).11 E -.11(va)-.11 G(l).11 E F0 1.76 -.88(To c)72 684 T(alculate the loss e).88 E -.165(ve)-.275 G(nt rate).165 E F2(p) 2.75 E F0 2.75(,w)C 2.75<658c>-2.75 G(rst calculate the a)-2.75 E -.165 (ve)-.22 G(rage loss interv).165 E 2.75(al. This)-.275 F (is done using a)2.75 E(\214lter that weights the)72 697 Q F2(n)2.75 E F0(most recent loss e)2.75 E -.165(ve)-.275 G(nt interv).165 E (als in such a w)-.275 E(ay that the measured loss e)-.11 E -.165(ve) -.275 G(nt).165 E(rate changes smoothly)72 710 Q(.)-.715 E(Handle)72 769 Q(y/P)-.165 E(adh)-.165 E(ye/Flo)-.055 E(yd/W)-.11 E 252.843(idmer [P) -.44 F(age 9])-.165 E EP %%Page: 10 10 %%BeginPageSetup BP %%EndPageSetup /F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 78.61(-DRAFT Expires:)-1.012 F (May 2001)2.75 E(No)102.986 E -.165(ve)-.165 G(mber 2000).165 E -.88(We) 72 85 S(ights).88 E/F1 11/Courier@0 SF(w_0)2.75 E F0(to)2.75 E F1 (w_\(n-1\))2.75 E F0(are calculated as:)2.75 E F1(If i < n/2)108 104 Q (w_i = 1)127.8 117 Q(Else)108 130 Q (w_i = 1 - \(i - \(n/2 - 1\)\)/\(n/2 + 1\))127.8 143 Q F0 (Thus if n=8, the v)72 162 Q(alues of)-.275 E F1(w_0)2.75 E F0(to)2.75 E F1(w_7)2.75 E F0(are:)2.75 E(1.0, 1.0, 1.0, 1.0, 0.8, 0.6, 0.4, 0.2)97 178.6 Q(The v)72 195.2 Q(alue)-.275 E F1(n)2.75 E F0 (for the number of loss interv)2.75 E (als used in calculating the loss e)-.275 E -.165(ve)-.275 G (nt rate determines).165 E(TRFC')72 208.2 Q 2.75(ss)-.605 G (peed in responding to changes in the le)-2.75 E -.165(ve)-.275 G 2.75 (lo).165 G 2.75(fc)-2.75 G 2.75(ongestion. As)-2.75 F (currently speci\214ed, TFRC)2.75 E(should not be used for v)72 221.2 Q (alues of)-.275 E F1(n)2.75 E F0 (signi\214cantly greater than 8, for traf)2.75 E (\214c that might compete in)-.275 E(the global Internet with TCP)72 234.2 Q 5.5(.A)-1.221 G 2.75(tt)-5.5 G(he v)-2.75 E (ery least, safe operation with v)-.165 E(alues of)-.275 E F1(n)2.75 E F0(greater than 8)2.75 E -.11(wo)72 247.2 S (uld require a slight change to TFRC').11 E 2.75(sm)-.605 G (echanisms to include a more se)-2.75 E -.165(ve)-.275 G (re response to tw).165 E 2.75(oo)-.11 G(r)-2.75 E (more round-trip times with hea)72 260.2 Q(vy pack)-.22 E(et loss.)-.11 E 1.76 -.88(To c)72 276.8 T(alculate the a).88 E -.165(ve)-.22 G (rage loss interv).165 E (al we need to decide whether to include the interv)-.275 E (al since the)-.275 E(most recent pack)72 289.8 Q(et loss e)-.11 E -.165 (ve)-.275 G 2.75(nt. W).165 F 2.75(eo)-.88 G(nly do this if it is suf) -2.75 E(\214ciently lar)-.275 E(ge to increase the a)-.198 E -.165(ve) -.22 G(rage).165 E(loss interv)72 302.8 Q(al.)-.275 E (Thus if the most recent loss interv)72 319.4 Q (als are I_0 to I_n, with I_0 being the interv)-.275 E (al since the most)-.275 E(recent loss e)72 332.4 Q -.165(ve)-.275 G (nt, then we calculate the a).165 E -.165(ve)-.22 G(rage loss interv) .165 E(al I_mean as:)-.275 E F1(I_tot0 = 0)108 351.4 Q(I_tot1 = 0)108 364.4 Q(W_tot = 0)108 377.4 Q(for i = 0 to n-1 {)108 390.4 Q (I_tot0 = I_tot0 + \(I_i * w_i\))121.2 403.4 Q(W_tot = W_tot + w_i)121.2 416.4 Q(})108 429.4 Q(for i = 1 to n {)108 442.4 Q (I_tot1 = I_tot1 + \(I_i * w_\(i-1\)\))121.2 455.4 Q(})108 468.4 Q (I_tot = max\(I_tot0, I_tot1\))108 481.4 Q(I_mean = I_tot / W_tot)108 507.4 Q F0(The loss e)72 526.4 Q -.165(ve)-.275 G(nt rate,).165 E F1(p) 2.75 E F0(is simply:)2.75 E F1 6.6(p=1/I)108 545.4 S(_mean)-6.6 E/F2 11 /Times-Bold@0 SF 2.75(6. Data)72 577.4 R(Recei)2.75 E -.11(ve)-.11 G 2.75(rP).11 G -.198(ro)-2.75 G(tocol).198 E F0(The recei)72 594 Q -.165 (ve)-.275 G 2.75(rp).165 G (eriodically sends feedback messages to the sender)-2.75 E 5.5(.F)-.605 G(eedback pack)-5.5 E(ets should)-.11 E (normally be sent at least once per R)72 607 Q(TT)-.66 E 2.75(,u)-.814 G (nless the sender is sending at a rate of less than one)-2.75 E(pack)72 620 Q(et per R)-.11 E(TT)-.66 E 2.75(,i)-.814 G 2.75(nw)-2.75 G (hich case a feedback pack)-2.75 E(et should be send for e)-.11 E -.165 (ve)-.275 G(ry data pack).165 E(et recei)-.11 E -.165(ve)-.275 G(d.).165 E 2.75(Af)72 633 S(eedback pack)-2.75 E(et should also be sent whene) -.11 E -.165(ve)-.275 G 2.75(ran).165 G .55 -.275(ew l)-2.75 H(oss e) .275 E -.165(ve)-.275 G(nt is detected without w).165 E(aiting for)-.11 E(the end of an R)72 646 Q(TT)-.66 E 2.75(,a)-.814 G(nd whene)-2.75 E -.165(ve)-.275 G 2.75(ra).165 G 2.75(no)-2.75 G(ut-of-order data pack) -2.75 E(et is recei)-.11 E -.165(ve)-.275 G 2.75(dt).165 G(hat remo) -2.75 E -.165(ve)-.165 G 2.75(sal).165 G(oss e)-2.75 E -.165(ve)-.275 G (nt).165 E(from the history)72 659 Q(.)-.715 E (If the sender is transmitting at a high rate \(man)72 675.6 Q 2.75(yp) -.165 G(ack)-2.75 E(ets per R)-.11 E(TT\) there may be some adv)-.66 E (antages)-.275 E (to sending periodic feedback messages more than once per R)72 688.6 Q (TT as this allo)-.66 E(ws f)-.275 E(aster response to)-.11 E (changing R)72 701.6 Q (TT measurements, and more resilience to feedback pack)-.66 E(et loss.) -.11 E(Ho)5.5 E(we)-.275 E -.165(ve)-.275 G 2.75(rt).165 G (here is little)-2.75 E(Handle)72 769 Q(y/P)-.165 E(adh)-.165 E(ye/Flo) -.055 E(yd/W)-.11 E 247.343(idmer [P)-.44 F(age 10])-.165 E EP %%Page: 11 11 %%BeginPageSetup BP %%EndPageSetup /F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 78.61(-DRAFT Expires:)-1.012 F (May 2001)2.75 E(No)102.986 E -.165(ve)-.165 G(mber 2000).165 E -.055 (ga)72 85 S(in from sending a lar).055 E (ge number of feedback messages per R)-.198 E(TT)-.66 E(.)-.814 E/F1 11 /Times-Bold@0 SF 2.75(6.1. Recei)72 111 R -.11(ve)-.11 G 2.75(rb).11 G (eha)-2.75 E(vior when a data pack)-.275 E(et is r)-.11 E(ecei)-.198 E -.11(ve)-.11 G(d).11 E F0(When a data pack)72 127.6 Q(et is recei)-.11 E -.165(ve)-.275 G(d, the recei).165 E -.165(ve)-.275 G 2.75(rp).165 G (erforms the follo)-2.75 E(wing steps:)-.275 E 13.087(1\) Add)72 144.2 R (the pack)2.75 E(et to the pack)-.11 E(et history)-.11 E(.)-.715 E 13.087(2\) Let)72 160.8 R(the pre)2.75 E(vious v)-.275 E(alue of)-.275 E /F2 11/Courier@0 SF(p)2.75 E F0(be)2.75 E F2(p_prev)2.75 E F0 5.5(.C)C (alculate the ne)-5.5 E 2.75(wv)-.275 G(alue of)-3.025 E F2(p)2.75 E F0 (as described in)2.75 E(Section 5.)97 173.8 Q 13.087(3\) If)72 190.4 R F2 6.6(p
)2.75 G 6.6(=p)-6.6 G(_prev)-6.6 E F0 (no action need be performed.)2.75 E(Ho)97 236.6 Q(we)-.275 E -.165(ve) -.275 G 2.75(ra).165 G 2.75(no)-2.75 G (ptimization might check to see if the arri)-2.75 E -.275(va)-.275 G 2.75(lo).275 G 2.75(ft)-2.75 G(he pack)-2.75 E(et caused a hole in the) -.11 E(pack)97 249.6 Q(et history to be \214lled and consequently tw) -.11 E 2.75(ol)-.11 G(oss interv)-2.75 E(als were mer)-.275 E (ged into one.)-.198 E(If this)5.5 E(is the case, the recei)97 262.6 Q -.165(ve)-.275 G 2.75(rm).165 G(ight also send feedback immediately) -2.75 E 5.5(.T)-.715 G(he ef)-5.5 E(fects of such an)-.275 E (optimization are normally e)97 275.6 Q(xpected to be small.)-.165 E F1 2.75(6.2. Expiration)72 314.6 R(of feedback timer)2.75 E F0 (When the feedback timer at the recei)72 331.2 Q -.165(ve)-.275 G 2.75 (re).165 G(xpires, the action to be tak)-2.915 E (ed depends on whether data)-.11 E(pack)72 344.2 Q(ets ha)-.11 E .33 -.165(ve b)-.22 H(een recei).165 E -.165(ve)-.275 G 2.75(ds).165 G (ince the last feedback w)-2.75 E(as sent.)-.11 E (Let the maximum sequence number of a pack)72 360.8 Q(et at the recei) -.11 E -.165(ve)-.275 G 2.75(rs).165 G 2.75(of)-2.75 G(ar be)-2.86 E F2 (S_m)2.75 E F0 2.75(,a)C(nd the v)-2.75 E(alue of the)-.275 E -.66(RT)72 373.8 S 2.75(Tm).66 G(easurement included in pack)-2.75 E(et)-.11 E F2 (S_m)2.75 E F0(be R_m. If data pack)2.75 E(ets ha)-.11 E .33 -.165(ve b) -.22 H(een recei).165 E -.165(ve)-.275 G 2.75(ds).165 G(ince the)-2.75 E (pervious feedback w)72 386.8 Q(as sent, the recei)-.11 E -.165(ve)-.275 G 2.75(rp).165 G(erforms the follo)-2.75 E(wing steps:)-.275 E 13.087 (1\) Calculate)72 403.4 R(the a)2.75 E -.165(ve)-.22 G(rage loss e).165 E -.165(ve)-.275 G(nt rate using the algorithm described abo).165 E -.165(ve)-.165 G(.).165 E 13.087(2\) Calculate)72 420 R (the measured recei)2.75 E .33 -.165(ve r)-.275 H(ate,).165 E F2 (X_sample)2.75 E F0 2.75(,b)C(ased on the pack)-2.75 E(ets recei)-.11 E -.165(ve)-.275 G 2.75(dw).165 G(ithin the)-2.75 E(pre)97 433 Q(vious) -.275 E F2(R_m)2.75 E F0(seconds.)2.75 E 13.087(3\) Calculate)72 449.6 R F2(X_recv)2.75 E F0(as follo)2.75 E(ws:)-.275 E (X_recv = q3*X_sample + \(1-q3\)*X_recv)158 468.6 Q(Where)97 491.2 Q F2 (q3)2.75 E F0(is a constant with recommended v)2.75 E(alue 0.5.)-.275 E 13.087(4\) Prepare)72 507.8 R(and send a feedback pack)2.75 E (et containing the information described in Section 3.2.2.)-.11 E 13.087 (5\) Restart)72 524.4 R(the feedback timer to e)2.75 E(xpire after)-.165 E F2(R_m)2.75 E F0(seconds.)2.75 E(If no data pack)72 541 Q(ets ha)-.11 E .33 -.165(ve b)-.22 H(een recei).165 E -.165(ve)-.275 G 2.75(ds).165 G (ince the last feedback w)-2.75 E(as sent, no feedback pack)-.11 E (et is sent,)-.11 E(and the feedback timer is restarted to e)72 554 Q (xpire after)-.165 E F2(R_m)2.75 E F0(seconds.)2.75 E F1 2.75 (6.3. Recei)72 583.6 R -.11(ve)-.11 G 2.75(ri).11 G(nitialization)-2.75 E F0(The recei)72 600.2 Q -.165(ve)-.275 G 2.75(ri).165 G 2.75(si)-2.75 G(nitialized by the \214rst pack)-2.75 E(et that arri)-.11 E -.165(ve) -.275 G 2.75(sa).165 G 2.75(tt)-2.75 G(he recei)-2.75 E -.165(ve)-.275 G 1.21 -.605(r. L).165 H(et the sequence number).605 E(of this pack)72 613.2 Q(et be)-.11 E F2(i)2.75 E F0(.)A(When the \214rst pack)72 629.8 Q (et is recei)-.11 E -.165(ve)-.275 G(d:).165 E 21.15<8353>72 646.4 S(et) -21.15 E F2(p=0)2.75 E F0 21.15<8353>72 663 S(et)-21.15 E F2 (X_recv = X_send)9.35 E F0 2.75(,w)C(here)-2.75 E F2(X_send)2.75 E F0 (is the sending rate the sender reports in the)2.75 E(\214rst data pack) 97 676 Q(et.)-.11 E 21.15<8350>72 692.6 S (repare and send a feedback pack)-21.15 E(et.)-.11 E(Handle)72 769 Q (y/P)-.165 E(adh)-.165 E(ye/Flo)-.055 E(yd/W)-.11 E 247.343(idmer [P) -.44 F(age 11])-.165 E EP %%Page: 12 12 %%BeginPageSetup BP %%EndPageSetup /F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 78.61(-DRAFT Expires:)-1.012 F (May 2001)2.75 E(No)102.986 E -.165(ve)-.165 G(mber 2000).165 E 21.15 <8353>72 85 S(et the feedback timer to e)-21.15 E(xpire after)-.165 E/F1 11/Courier@0 SF(R_i)2.75 E F0(seconds.)2.75 E/F2 11/Times-Bold@0 SF 2.75 (7. Modifying)72 114.6 R(the P)2.75 E(ack)-.11 E(et Size)-.11 E 2.75 (8. Security)72 140.6 R(Considerations)2.75 E F0 (TFRC is not a transport protocol in its o)72 157.2 Q(wn right, b)-.275 E(ut a congestion control mechanism that is)-.22 E (intended to be used in conjunction with a transport protocol.)72 170.2 Q(Therefore security primarily needs)5.5 E (to be considered in the conte)72 183.2 Q(xt of a speci\214c transport \ protocol and its authentication mechanisms.)-.165 E (Congestion control mechanisms can potentially be e)72 199.8 Q (xploited to create denial of service.)-.165 E(This may)5.5 E (occur through spoofed feedback.)72 212.8 Q(Thus an)5.5 E 2.75(yt)-.165 G(ransport protocol that uses TFRC should tak)-2.75 E 2.75(ec)-.11 G (are to)-2.75 E(ensure that feedback is only accepted from the recei)72 225.8 Q -.165(ve)-.275 G 2.75(ro).165 G 2.75(ft)-2.75 G(he data.)-2.75 E (The precise mechanism to)5.5 E(achie)72 238.8 Q .33 -.165(ve t)-.275 H (his will ho).165 E(we)-.275 E -.165(ve)-.275 G 2.75(rd).165 G (epend on the transport protocol itself.)-2.75 E(In addition, congectio\ n control mechanisms may potentially be manipulated by a greedy recei)72 255.4 Q -.165(ve)-.275 G(r).165 E(that wishes to recei)72 268.4 Q .33 -.165(ve m)-.275 H(ore than its f).165 E(air share of netw)-.11 E (ork bandwidth.)-.11 E 2.75(Ar)5.5 G(ecei)-2.75 E -.165(ve)-.275 G 2.75 (rm).165 G(ight do this by)-2.75 E(claiming to ha)72 281.4 Q .33 -.165 (ve r)-.22 H(ecei).165 E -.165(ve)-.275 G 2.75(dp).165 G(ack)-2.75 E (ets that in f)-.11 E(act were lost due to congestion.)-.11 E (Possible defenses)5.5 E(ag)72 294.4 Q(ainst such a recei)-.055 E -.165 (ve)-.275 G 2.75(rw).165 G (ould normally include some form of nonce that the recei)-2.86 E -.165 (ve)-.275 G 2.75(rm).165 G(ust feed)-2.75 E(back to the sender to pro)72 307.4 Q .33 -.165(ve r)-.165 H 2.75(eceipt. Ho).165 F(we)-.275 E -.165 (ve)-.275 G .88 -.44(r, t).165 H(he details of such a nonce w).44 E (ould depend on the)-.11 E(transport protocol, and in particular on whe\ ther the transport protocol is reliable or unreliable.)72 320.4 Q F2 2.75(9. A)72 346.4 R(uthors' Addr)-.55 E(esses)-.198 E F0(Mark Handle) 108 365.4 Q 1.43 -.715(y, J)-.165 H(itendra P).715 E(adh)-.165 E (ye, Sally Flo)-.055 E(yd)-.11 E -.44(AC)108 378.4 S(IRI/ICSI).44 E (1947 Center St, Suite 600)108 391.4 Q(Berk)108 404.4 Q(ele)-.11 E 1.43 -.715(y, C)-.165 H 2.75(A9).715 G(4708)-2.75 E(mjh@aciri.or)108 417.4 Q (g, padh)-.198 E(ye@aciri.or)-.055 E(g, \215o)-.198 E(yd@aciri.or)-.11 E (g)-.198 E .918<4aa8>108 456.4 S(or)-5.499 E 2.75(gW)-.198 G(idmer)-3.19 E(Lehrstuhl Praktische Informatik IV)108 469.4 Q(Uni)108 482.4 Q -.165 (ve)-.275 G -1.832(rsit \250).165 F(at Mannheim)-4.581 E 2.75(L1)108 495.4 S(5, 16 - Room 415)-2.75 E(D-68131 Mannheim)108 508.4 Q(German)108 521.4 Q(y)-.165 E(widmer@informatik.uni-mannheim.de)108 534.4 Q F2 2.75 (10. Ackno)72 566.4 R(wledgments)-.11 E F0 1.76 -.88(We w)72 583 T (ould lik).77 E 2.75(et)-.11 G 2.75(oa)-2.75 G(ckno)-2.75 E (wledge feedback and discussions on equation-based congestion control) -.275 E(with a wide range of people, including members of the Reliable \ Multicast Research Group, the)72 596 Q(Reliable Multicast T)72 609 Q (ransport W)-.385 E(orking Group, and the End-to-End Research Group.) -.88 E F2 2.75(11. Refer)72 635 R(ences)-.198 E F0([1] Sally Flo)72 651.6 Q(yd, Mark Handle)-.11 E 1.43 -.715(y, J)-.165 H(itendra P).715 E (adh)-.165 E(ye, and Joer)-.055 E 2.75(gW)-.198 G(idmer)-3.19 E 2.75(,") -.44 G(Equation-Based Congestion)-2.75 E (Control for Unicast Applications", August 2000, Proc SIGCOMM 2000.)97 664.6 Q([2] P)72 681.2 Q(adh)-.165 E(ye, J. and)-.055 E(Firoiu, V)5.5 E 2.75(.a)-1.419 G(nd T)-2.75 E -.275(ow)-.88 G(sle).275 E 1.43 -.715 (y, D)-.165 H 2.75(.a).715 G(nd K)-2.75 E (urose, J., "Modeling TCP Throughput: A)-.165 E (Simple Model and its Empirical V)97 694.2 Q(alidation", Proc A)-1.221 E (CM SIGCOMM 1998.)-.44 E(Handle)72 769 Q(y/P)-.165 E(adh)-.165 E(ye/Flo) -.055 E(yd/W)-.11 E 247.343(idmer [P)-.44 F(age 12])-.165 E EP %%Trailer end %%EOF