One document matched: draft-ietf-dccp-spec-02.ps


%!PS-Adobe-3.0
%%Creator: groff version 1.18.1
%%CreationDate: Fri May  9 12:48:22 2003
%%DocumentNeededResources: font Courier-Bold
%%+ font Times-Bold
%%+ font Times-Roman
%%+ font Courier
%%+ font Times-Italic
%%+ font Symbol
%%DocumentSuppliedResources: file statediagram.ps
%%+ procset grops 1.18 1
%%Pages: 57
%%PageOrder: Ascend
%%Orientation: Portrait
%%EndComments
%%BeginProlog
%%BeginResource: procset grops 1.18 1
/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
/Fr{
setrgbcolor fill
}bind def
/Fk{
setcmykcolor fill
}bind def
/Fg{
setgray fill
}bind def
/FL/fill load def
/LW/setlinewidth load def
/Cr/setrgbcolor load def
/Ck/setcmykcolor load def
/Cg/setgray 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/Euro/.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 269.999
(INTERNET-DRAFT Eddie)72 98 R(Kohler)6 E 197.999
(draft-ietf-dccp-spec-02.ps Mark)72 111 R(Handley)6 E(Sally Floyd)
437.999 124 Q(ICIR)479.999 137 Q(Jitendra Padhye)413.999 150 Q
(Microsoft Research)395.999 163 Q 6(9M)443.999 176 S(ay 2003)-6 E
(Expires: November 2003)371.999 189 Q/F1 14/Times-Bold@0 SF
(Datagram Congestion Contr)144.78 214 Q(ol Pr)-.252 E(otocol \(DCCP\))
-.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 con\
formance with all pro)100.8 275.6 Q(visions of Section)-.165 E
(10 of [RFC 2026].)100.8 288.6 Q(Internet-Drafts are w)5.5 E
(orking documents of the Internet Engineering T)-.11 E(ask)-.88 E -.165
(Fo)100.8 301.6 S(rce \(IETF\), its areas, and its w).165 E
(orking groups.)-.11 E(Note that other groups may also distrib)5.5 E
(ute)-.22 E -.11(wo)100.8 314.6 S(rking documents as Internet-Drafts.)
.11 E(Internet-Drafts are draft documents v)100.8 340.6 Q
(alid for a maximum of six months and may be)-.275 E
(updated, replaced, or obsoleted by other documents at an)100.8 353.6 Q
2.75(yt)-.165 G(ime. It is inappropriate to use)-2.75 E
(Internet-Drafts as reference material or to cite them other than as "w)
100.8 366.6 Q(ork in progress.")-.11 E
(The list of current Internet-Drafts can be accessed at http://www)100.8
392.6 Q(.ietf.or)-.715 E(g/ietf/1id-)-.198 E(abstracts.txt)100.8 405.6 Q
(The list of Internet-Draft Shado)100.8 431.6 Q 2.75(wD)-.275 G
(irectories can be accessed at)-2.75 E(http://www)100.8 444.6 Q
(.ietf.or)-.715 E(g/shado)-.198 E -.715(w.)-.275 G(html).715 E F2
(Abstract)267.534 463.6 Q F3(This document speci\214es the Datagram Con\
gestion Control Protocol \(DCCP\), which)97 486.2 Q
(implements a congestion-controlled, unreliable \215o)97 499.2 Q 2.75
(wo)-.275 G 2.75(fd)-2.75 G(atagrams suitable for use by)-2.75 E
(applications such as streaming media.)97 512.2 Q .396 -.198(TO B)97
538.2 T 2.75(ED).198 G(ELETED BY THE RFC EDIT)-2.75 E(OR UPON PUBLICA)
-.198 E(TION:)-1.221 E(Changes since draft-ietf-dccp-spec-01.txt:)97
564.2 Q 2.75(*R)97 590.2 S -.275(ev)-2.75 G
(ise de\214nition of when pack).275 E(ets are reported as recei)-.11 E
-.165(ve)-.275 G(d, due to ECN Nonce).165 E -.165(ve)97 603.2 S
(ri\214cation problems with the pre).165 E
(vious de\214nition and options.)-.275 E 2.75(*R)97 629.2 S
(eplace Recei)-2.75 E .33 -.165(ve B)-.275 H(uf).165 E
(fer Drops with Data Dropped.)-.275 E 2.75(*R)97 655.2 S(emo)-2.75 E .33
-.165(ve D)-.165 H(ata Discarded in f).165 E -.22(avo)-.11 G 2.75(ro).22
G 2.75(fD)-2.75 G(ata Dropped with Drop State 0.)-2.75 E 2.75(*R)97
681.2 S(emo)-2.75 E .33 -.165(ve B)-.165 H(uf).165 E(fer Closed in f)
-.275 E -.22(avo)-.11 G 2.75(ro).22 G 2.75(fD)-2.75 G
(ata Dropped with Drop State 4.)-2.75 E 2.75(*A)97 707.2 S
(dd Initial Sequence Number setting guidelines.)-2.75 E -.385(Ko)72 769
S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 258.288
(ye [P)-.055 F(age 1])-.165 E 0 Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E 2.75(*A)
97 85 S(dd sections on retransmission of Requests, and a table to the s\
tate diagram.)-2.75 E 2.75(*M)97 111 S(ade the 4-bit Reserv)-2.75 E
(ed \214eld in the DCCP generic header a)-.165 E -.275(va)-.22 G
(ilable for use by).275 E(CCIDs.)97 124 Q 2.75(*R)97 150 S
(e\214ne description of CCID 1.)-2.75 E 2.75(*A)97 176 S
(dd Middlebox Considerations.)-2.75 E 2.75(*C)97 202 S
(hange Identi\214cation option to allo)-2.75 E 2.75(wm)-.275 G(iddlebox)
-2.75 E(es to change port numbers, DCCP)-.165 E(options, and/or pack)97
215 Q(et data without disrupting the connection.)-.11 E 2.75(*S)97 241 S
(pecify that Ignored should be sent only on pack)-2.75 E(ets with Ackno)
-.11 E(wledgement)-.275 E(Numbers.)97 254 Q 2.75(*A)97 280 S
(dd Aggression Penalty Reset Reason.)-2.75 E 2.75(*A)97 306 S(dd P)-2.75
E(ayload Checksum option.)-.165 E 2.75(*A)97 332 S(dd Elapsed T)-2.75 E
(ime option \(formerly speci\214c to CCID 3\).)-.385 E 2.75(*T)97 358 S
(imestamp Echo option can omit Elapsed T)-3.135 E(ime, or pro)-.385 E
(vide a tw)-.165 E(o-byte Elapsed T)-.11 E(ime)-.385 E -.275(va)97 371 S
(lue. Elapsed T).275 E
(ime is measured in tenths of milliseconds, not microseconds.)-.385 E
2.75(*C)97 397 S(lean up DCCP-Mo)-2.75 E .33 -.165(ve a)-.165 H
(nd feature-ne).165 E(gotiation options discussions.)-.165 E 2.75(*C)97
423 S(on\214rm\(Connection Nonce\) sends no data.)-2.75 E 2.75(*A)97 449
S(ck V)-2.75 E(ector implementation supports ECN Nonce Echo.)-1.221 E
2.75(*A)97 475 S(dd CSlen and P)-2.75 E(artial Checksumming Design Moti)
-.165 E -.275(va)-.275 G(tion.).275 E 2.75(*C)97 501 S
(larify that Ack V)-2.75 E(ectors may be sent e)-1.221 E -.165(ve)-.275
G 2.75(ni).165 G 2.75(fU)-2.75 G(se Ack V)-2.75 E(ector is f)-1.221 E
(alse.)-.11 E -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)
-.11 E(adh)-.165 E 258.288(ye [P)-.055 F(age 2])-.165 E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 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(5)11.5 E(2. Design Rationale)97 135 Q F0 11
(....................)11.34 G F2(5)11.5 E(3. Concepts and T)97 147 Q
(erminology)-.7 E F0 11(.................)13.57 G F2(6)11.5 E
(3.1. Anatomy of a DCCP Connection)107 159 Q F0 11(..............)13.28
G F2(6)11.5 E(3.2. Congestion Control)107 171 Q F0 11
(..................)11.88 G F2(7)11.5 E
(3.3. Connection Initiation and T)107 183 Q(ermination)-.7 E F0 11
(.............)5.79 G F2(7)11.5 E(3.4. Features)107 195 Q F0 11
(......................)1.62 G F2(7)11.5 E(4. DCCP P)97 207 Q(ack)-.15 E
(ets)-.1 E F0 11(.....................)7.83 G F2(8)11.5 E
(4.1. Examples of DCCP Congestion Control)107 219 Q F0 11(............)
12.99 G F2(9)11.5 E(4.1.1. DCCP with TCP-lik)117 231 Q 2.5(eC)-.1 G
(ongestion Control)-2.5 E F0 11(...........)2.66 G F2(9)11.5 E
(4.1.2. DCCP with TFRC Congestion Control)117 243 Q F0 11(............)
.47 G F2(10)6.5 E(5. P)97 255 Q(ack)-.15 E(et F)-.1 E(ormats)-.15 E F0
11(.....................)5.21 G F2(11)6.5 E(5.1. Generic P)107 267 Q
(ack)-.15 E(et Header)-.1 E F0 11(.................)12.32 G F2(11)6.5 E
(5.2. Sequence Number V)107 279 Q(alidity)-1.11 E F0 11
(................)10.24 G F2(13)6.5 E(5.3. DCCP State Diagram)107 291 Q
F0 11(..................)4.39 G F2(14)6.5 E(5.4. DCCP-Request P)107 303
Q(ack)-.15 E(et F)-.1 E(ormat)-.15 E F0 11(...............)9.93 G F2(16)
6.5 E(5.5. DCCP-Response P)107 315 Q(ack)-.15 E(et F)-.1 E(ormat)-.15 E
F0 11(...............)3.82 G F2(17)6.5 E
(5.6. DCCP-Data, DCCP-Ack, and DCCP-DataAck P)107 327 Q(ack)-.15 E(et F)
-.1 E(ormats)-.15 E F0 11(......)5.09 G F2(18)6.5 E
(5.7. DCCP-CloseReq and DCCP-Close P)107 339 Q(ack)-.15 E(et F)-.1 E
(ormat)-.15 E F0 11(..........).34 G F2(19)6.5 E(5.8. DCCP-Reset P)107
351 Q(ack)-.15 E(et F)-.1 E(ormat)-.15 E F0 11(................)6.18 G
F2(20)6.5 E(5.9. DCCP-Mo)107 363 Q .3 -.15(ve Pa)-.15 H(ck).15 E(et F)
-.1 E(ormat)-.15 E F0 11(................)5.37 G F2(21)6.5 E
(6. Options and Features)97 375 Q F0 11(...................)9.26 G F2
(23)6.5 E(6.1. P)107 387 Q(adding Option)-.15 E F0 11
(....................).09 G F2(23)6.5 E(6.2. Ignored Option)107 399 Q F0
11(....................)1.62 G F2(24)6.5 E(6.3. Feature Ne)107 411 Q
(gotiation)-.15 E F0 11(..................)10.94 G F2(24)6.5 E
(6.3.1. Feature Numbers)117 423 Q F0 11(..................)3.85 G F2(25)
6.5 E(6.3.2. Change Option)117 435 Q F0 11(..................)12.17 G F2
(25)6.5 E(6.3.3. Prefer Option)117 447 Q F0 11(...................)4.54
G F2(25)6.5 E(6.3.4. Con\214rm Option)117 459 Q F0 11
(..................)9.38 G F2(26)6.5 E(6.3.5. Example Ne)117 471 Q
(gotiations)-.15 E F0 11(................)11.49 G F2(26)6.5 E
(6.3.6. Unkno)117 483 Q(wn Features)-.25 E F0 11(.................)11.18
G F2(27)6.5 E(6.3.7. State Diagram)117 495 Q F0 11(...................)
1.76 G F2(27)6.5 E(6.4. Identi\214cation Options)107 507 Q F0 11
(..................)3 G F2(29)6.5 E(6.4.1. Identi\214cation Re)117 519 Q
(gime Feature)-.15 E F0 11(..............)8.72 G F2(29)6.5 E
(6.4.2. Connection Nonce Feature)117 531 Q F0 11(...............)7.05 G
F2(30)6.5 E(6.4.3. Identi\214cation Option)117 543 Q F0 11
(.................)3.14 G F2(30)6.5 E(6.4.4. Challenge Option)117 555 Q
F0 11(..................)2.17 G F2(31)6.5 E(6.5. Init Cookie Option)107
567 Q F0 11(...................)1.19 G F2(31)6.5 E(6.6. T)107 579 Q
(imestamp Option)-.35 E F0 11(...................)1.82 G F2(32)6.5 E
(6.7. Elapsed T)107 591 Q(ime Option)-.35 E F0 11(..................)5.3
G F2(32)6.5 E(6.8. T)107 603 Q(imestamp Echo Option)-.35 E F0 11
(.................)6.27 G F2(32)6.5 E(6.9. Loss W)107 615 Q(indo)-.4 E
2.5(wF)-.25 G(eature)-2.5 E F0 11(..................)2.83 G F2(33)6.5 E
(7. Congestion Control IDs)97 627 Q F0 11(..................)12.44 G F2
(33)6.5 E(7.1. Unspeci\214ed Sender)107 639 Q(-Based Congestion Control)
-.2 E F0 11(...........).02 G F2(34)6.5 E(7.2. TCP-lik)107 651 Q 2.5(eC)
-.1 G(ongestion Control)-2.5 E F0 11(................).31 G F2(35)6.5 E
(7.3. TFRC Congestion Control)107 663 Q F0 11(................)11.87 G
F2(35)6.5 E(7.4. CCID-Speci\214c Options and Features)107 675 Q F0 11
(.............)12.32 G F2(35)6.5 E(8. Ackno)97 687 Q(wledgements)-.25 E
F0 11(....................)1.32 G F2(36)6.5 E
(8.1. Acks of Acks and Unidirectional Connections)107 699 Q F0 11
(...........)2.61 G F2(36)6.5 E(8.2. Ack Piggybacking)107 711 Q F0 11
(...................)2.59 G F2(37)6.5 E(8.3. Ack Ratio Feature)107 723 Q
F0 11(...................)3.43 G F2(38)6.5 E F0 -.385(Ko)72 769 S
(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 258.288(ye [P)
-.055 F(age 3])-.165 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E/F1 10
/Times-Roman@0 SF(8.4. Use Ack V)107 84 Q(ector Feature)-1.11 E F0 11
(.................)8.45 G F1(38)6.5 E(8.5. Ack V)107 96 Q(ector Options)
-1.11 E F0 11(..................)11.07 G F1(38)6.5 E(8.5.1. Ack V)117
108 Q(ector Consistenc)-1.11 E(y)-.15 E F0 11(................)4 G F1
(39)6.5 E(8.5.2. Ack V)117 120 Q(ector Co)-1.11 E -.15(ve)-.15 G(rage)
.15 E F0 11(.................).97 G F1(41)6.5 E(8.6. Slo)107 132 Q 2.5
(wR)-.25 G(ecei)-2.5 E -.15(ve)-.25 G 2.5(rO).15 G(ption)-2.5 E F0 11
(..................)2.27 G F1(41)6.5 E(8.7. Data Dropped Option)107 144
Q F0 11(..................)3.85 G F1(42)6.5 E(8.8. P)107 156 Q
(ayload Checksum Option)-.15 E F0 11(................)10.93 G F1(43)6.5
E(8.9. Ack V)107 168 Q(ector Implementation Notes)-1.11 E F0 11
(..............)8.58 G F1(44)6.5 E(8.9.1. Ne)117 180 Q 2.5(wP)-.25 G
(ack)-2.65 E(ets)-.1 E F0 11(...................)7.82 G F1(45)6.5 E
(8.9.2. Sending Ackno)117 192 Q(wledgements)-.25 E F0 11(..............)
13.54 G F1(46)6.5 E(8.9.3. Clearing State)117 204 Q F0 11
(...................)2.31 G F1(46)6.5 E(8.9.4. Processing Ackno)117 216
Q(wledgements)-.25 E F0 11(..............)2.99 G F1(47)6.5 E
(9. Explicit Congestion Noti\214cation)97 228 Q F0 11(................)
5.49 G F1(48)6.5 E(9.1. ECN Capable Feature)107 240 Q F0 11
(..................)2.74 G F1(48)6.5 E(9.2. ECN Nonces)107 252 Q F0 11
(....................)10.51 G F1(48)6.5 E
(9.3. Other Aggression Penalties)107 264 Q F0 11(................)8.57 G
F1(49)6.5 E(10. Multihoming and Mobility)97 276 Q F0 11
(.................)9.51 G F1(49)6.5 E(10.1. Mobility Capable Feature)107
288 Q F0 11(................)10.23 G F1(50)6.5 E(10.2. Security)107 300
Q F0 11(.....................)10.92 G F1(50)6.5 E
(10.3. Congestion Control State)107 312 Q F0 11(................)11.88 G
F1(50)6.5 E(10.4. Loss During T)107 324 Q(ransition)-.35 E F0 11
(.................)6.27 G F1(50)6.5 E(11. P)97 336 Q(ath MTU Disco)-.15
E -.15(ve)-.15 G(ry).15 E F0 11(...................)3.6 G F1(51)6.5 E
(12. Middlebox Considerations)97 348 Q F0 11(.................)10.36 G
F1(52)6.5 E(13. Abstract API)97 360 Q F0 11(.....................)9.26 G
F1(53)6.5 E(14. Multiple)97 372 Q(xing Issues)-.15 E F0 11
(...................)10.23 G F1(53)6.5 E(15. DCCP and R)97 384 Q(TP)-.6
E F0 11(....................)12.2 G F1(53)6.5 E
(16. Security Considerations)97 396 Q F0 11(..................)7.17 G F1
(54)6.5 E(17. IAN)97 408 Q 2.5(AC)-.35 G(onsiderations)-2.5 E F0 11
(...................)2.11 G F1(55)6.5 E(18. Design Moti)97 420 Q -.25
(va)-.25 G(tion).25 E F0 11(....................).72 G F1(55)6.5 E
(18.1. CSlen and P)107 432 Q(artial Checksumming)-.15 E F0 11
(..............)5.37 G F1(55)6.5 E(19. Thanks)97 444 Q F0 11
(.......................)4.81 G F1(56)6.5 E(20. Normati)97 456 Q .3 -.15
(ve R)-.25 H(eferences).15 E F0 11(..................)13.71 G F1(56)6.5
E(21. Informati)97 468 Q .3 -.15(ve R)-.25 H(eferences).15 E F0 11
(..................)9.27 G F1(57)6.5 E(22. Authors' Addresses)97 480 Q
F0 11(...................)10.1 G F1(57)6.5 E F0 -.385(Ko)72 769 S
(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 258.288(ye [P)
-.055 F(age 4])-.165 E 0 Cg EP
%%Page: 5 5
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E/F1 11
/Times-Bold@0 SF(1.)72 85 Q/F2 14/Times-Bold@0 SF(Intr)5.5 E(oduction)
-.252 E F0(This document speci\214es the Datagram Congestion Control Pr\
otocol \(DCCP\).)100.8 101.6 Q(DCCP)5.5 E(pro)100.8 114.6 Q
(vides the follo)-.165 E(wing features:)-.275 E 7.15<8341>100.8 131.2 S
2.75(nu)-7.15 G(nreliable \215o)-2.75 E 2.75(wo)-.275 G 2.75(fd)-2.75 G
(atagrams, with ackno)-2.75 E(wledgements.)-.275 E 7.15<8341>100.8 147.8
S(reliable handshak)-4.4 E 2.75(ef)-.11 G
(or connection setup and teardo)-2.75 E(wn.)-.275 E 7.15<8352>100.8
164.4 S(eliable ne)-7.15 E(gotiation of options, including ne)-.165 E
(gotiation of a suitable congestion control)-.165 E(mechanism.)111.8
177.4 Q 7.15<834d>100.8 194 S(echanisms allo)-7.15 E(wing a serv)-.275 E
(er to a)-.165 E -.22(vo)-.22 G(id holding an).22 E 2.75(ys)-.165 G
(tate for unackno)-2.75 E(wledged)-.275 E
(connection attempts or already-\214nished connections.)111.8 207 Q 7.15
<834f>100.8 223.6 S(ptional mechanisms that tell the sender)-7.15 E 2.75
(,w)-.44 G(ith high reliability)-2.75 E 2.75(,w)-.715 G(hich pack)-2.75
E(ets reached)-.11 E(the recei)111.8 236.6 Q -.165(ve)-.275 G .88 -.44
(r, a).165 H(nd whether those pack).44 E(ets were ECN mark)-.11 E
(ed, corrupted, or dropped in the)-.11 E(recei)111.8 249.6 Q .33 -.165
(ve b)-.275 H(uf)-.055 E(fer)-.275 E(.)-.605 E 7.15<8343>100.8 266.2 S(\
ongestion control incorporating Explicit Congestion Noti\214cation \(EC\
N\) and the ECN)-7.15 E(Nonce, as per [RFC 3168] and [ECN NONCE].)111.8
279.2 Q 7.15<8350>100.8 295.8 S(ath MTU disco)-7.315 E -.165(ve)-.165 G
(ry).165 E 2.75(,a)-.715 G 2.75(sp)-2.75 G(er [RFC 1191].)-2.75 E
(DCCP is intended for applications that require the \215o)100.8 312.4 Q
(w-based semantics of TCP)-.275 E 2.75(,b)-1.221 G(ut which)-2.97 E
(do not w)100.8 325.4 Q(ant TCP')-.11 E 2.75(si)-.605 G(n-order deli)
-2.75 E -.165(ve)-.275 G(ry and reliability semantics, or which w).165 E
(ould lik)-.11 E 2.75(ed)-.11 G(if)-2.75 E(ferent)-.275 E
(congestion control dynamics than TCP)100.8 338.4 Q 5.5(.S)-1.221 G
(imilarly)-5.5 E 2.75(,D)-.715 G(CCP is intended for applications that)
-2.75 E
(do not require features of SCTP [RFC 2960] such as sequenced deli)100.8
351.4 Q -.165(ve)-.275 G(ry within multiple).165 E(streams.)100.8 364.4
Q(Applications that could mak)100.8 381 Q 2.75(eu)-.11 G
(se of DCCP include those with timing constraints on the)-2.75 E(deli)
100.8 394 Q -.165(ve)-.275 G
(ry of data such that reliable in-order deli).165 E -.165(ve)-.275 G(ry)
.165 E 2.75(,w)-.715 G(hen combined with congestion)-2.75 E
(control, is lik)100.8 407 Q(ely to result in some information arri)-.11
E(ving at the recei)-.275 E -.165(ve)-.275 G 2.75(ra).165 G
(fter it is no longer of)-2.75 E 2.75(use. Such)100.8 420 R
(applications might include streaming media and Internet telephon)2.75 E
-.715(y.)-.165 G 1.76 -.88(To d)100.8 436.6 T
(ate most such applications ha).88 E .33 -.165(ve u)-.22 H
(sed either TCP).165 E 2.75(,w)-1.221 G(ith the problems described abo)
-2.75 E -.165(ve)-.165 G(,).165 E(or used UDP and implemented their o)
100.8 449.6 Q(wn congestion control mechanisms \(or no congestion)-.275
E(control at all\). The purpose of DCCP is to pro)100.8 462.6 Q
(vide a standard w)-.165 E(ay to implement congestion)-.11 E
(control and congestion control ne)100.8 475.6 Q
(gotiation for such applications.)-.165 E(One of the moti)5.5 E -.275
(va)-.275 G(tions).275 E(for DCCP is to enable the use of ECN, along wi\
th conformant end-to-end congestion)100.8 488.6 Q
(control, for applications that w)100.8 501.6 Q
(ould otherwise be using UDP)-.11 E 5.5(.I)-1.221 G 2.75(na)-5.5 G
(ddition, DCCP)-2.75 E(implements reliable connection setup, teardo)
100.8 514.6 Q(wn, and feature ne)-.275 E(gotiation.)-.165 E 2.75(AD)
100.8 531.2 S(CCP connection contains ackno)-2.75 E(wledgement traf)
-.275 E(\214c as well as data traf)-.275 E(\214c.)-.275 E(Ackno)100.8
544.2 Q(wledgements inform a sender whether its pack)-.275 E(ets arri)
-.11 E -.165(ve)-.275 G(d, and whether the).165 E 2.75(yw)-.165 G(ere)
-2.75 E(ECN mark)100.8 557.2 Q(ed. Acks are transmitted as reliably as \
the congestion control mechanism in use)-.11 E
(requires, possibly completely reliably)100.8 570.2 Q(.)-.715 E(Pre)
100.8 586.8 Q
(vious drafts of this speci\214cation called the protocol DCP)-.275 E
2.75(,o)-1.221 G 2.75(rD)-2.75 G(atagram Control Protocol.)-2.75 E
(The name w)100.8 599.8 Q(as changed to mak)-.11 E 2.75(et)-.11 G
(he acron)-2.75 E(ym sound less lik)-.165 E 2.75(e")-.11 G(TCP".)-2.75 E
F1(2.)72 625.8 Q F2(Design Rationale)5.5 E F0(DCCP is intended to be us\
ed by applications that currently use UDP without end-to-end)100.8 642.4
Q(congestion control.)100.8 655.4 Q(The desire is for man)5.5 E 2.75(ya)
-.165 G(pplications to ha)-2.75 E .33 -.165(ve l)-.22 H
(ittle reason not to use).165 E(DCCP instead of UDP)100.8 668.4 Q 2.75
(,o)-1.221 G(nce DCCP is deplo)-2.75 E 2.75(yed. Thus,)-.11 F(DCCP w)
2.75 E(as designed to ha)-.11 E .33 -.165(ve a)-.22 H(s).165 E(little o)
100.8 681.4 Q -.165(ve)-.165 G
(rhead as possible, in terms both of the size of the pack).165 E
(et header and in terms of the)-.11 E(state and CPU o)100.8 694.4 Q
-.165(ve)-.165 G(rhead required at the end hosts.).165 E
(This desire for minimal o)100.8 711 Q -.165(ve)-.165 G
(rhead results in the design decision to include only the minimal).165 E
(necessary functionality in DCCP)100.8 724 Q 5.5(,l)-1.221 G(ea)-5.5 E
(ving other functionality)-.22 E 2.75(,s)-.715 G(uch as FEC or semi-)
-2.75 E -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E
(adh)-.165 E 208.788(ye Section)-.055 F 2.75(2. [P)2.75 F(age 5])-.165 E
0 Cg EP
%%Page: 6 6
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(reliability)100.8 85 Q 2.75(,t)-.715 G 2.75(ob)-2.75 G 2.75(el)-2.75 G
(ayered on top of DCCP as desired.)-2.75 E(The desire for minimal o)5.5
E -.165(ve)-.165 G(rhead is).165 E(also one of the reasons to propose D\
CCP instead of just proposing an unreliable v)100.8 98 Q(ersion of)-.165
E(SCTP for applications currently using UDP)100.8 111 Q(.)-1.221 E 2.75
(As)100.8 127.6 S(econd moti)-2.75 E -.275(va)-.275 G
(tion behind the design of DCCP is to allo).275 E 2.75(wa)-.275 G
(pplications to choose an)-2.75 E(alternati)100.8 140.6 Q .33 -.165
(ve t)-.275 H 2.75(ot).165 G
(he current TCP-style congestion control that halv)-2.75 E
(es the congestion windo)-.165 E(w)-.275 E
(in response to a congestion indication.)100.8 153.6 Q
(DCCP lets applications choose between se)5.5 E -.165(ve)-.275 G(ral)
.165 E(forms of congestion control.)100.8 166.6 Q(One choice, TCP-lik)
5.5 E 2.75(ec)-.11 G(ongestion control, halv)-2.75 E(es the)-.165 E
(congestion windo)100.8 179.6 Q 2.75(wi)-.275 G 2.75(nr)-2.75 G
(esponse to a pack)-2.75 E(et drop or mark, as in TCP)-.11 E 5.5(.A)
-1.221 G(second alternati)-2.75 E -.165(ve)-.275 G(,).165 E(TFRC \(TCP-\
Friendly Rate Control, a form of equation-based congestion control\),)
100.8 192.6 Q
(minimizes abrupt changes in the sending rate while maintaining longer)
100.8 205.6 Q(-term f)-.22 E(airness with)-.11 E(TCP)100.8 218.6 Q(.)
-1.221 E(In proposing a ne)100.8 235.2 Q 2.75(wt)-.275 G(ransport proto\
col, it is necessary to justify the design decision not to)-2.75 E
(require the use of the Congestion Manager)100.8 248.2 Q 2.75(,a)-.44 G
2.75(sw)-2.75 G(ell as the design decision to add a ne)-2.75 E(w)-.275 E
(transport protocol to the current f)100.8 261.2 Q(amily of UDP)-.11 E
2.75(,T)-1.221 G(CP)-2.75 E 2.75(,a)-1.221 G(nd SCTP)-2.75 E 5.5(.T)
-1.221 G(he Congestion Manager)-5.5 E([RFC3124] allo)100.8 274.2 Q
(ws multiple concurrent streams between the same sender and recei)-.275
E -.165(ve)-.275 G 2.75(rt).165 G(o)-2.75 E(share congestion control.)
100.8 287.2 Q(Ho)5.5 E(we)-.275 E -.165(ve)-.275 G .88 -.44(r, t).165 H
(he current Congestion Manager can only be used by).44 E
(applications that ha)100.8 300.2 Q .33 -.165(ve t)-.22 H(heir o).165 E
(wn end-to-end feedback about pack)-.275 E(et losses, and this is not)
-.11 E(the case for man)100.8 313.2 Q 2.75(yo)-.165 G 2.75(ft)-2.75 G
(he applications currently using UDP)-2.75 E 5.5(.I)-1.221 G 2.75(na)
-5.5 G(ddition, the current)-2.75 E(Congestion Manager does not lend it\
self to the use of forms of TFRC where the state about)100.8 326.2 Q
(past pack)100.8 339.2 Q(et drops or marks is maintained at the recei)
-.11 E -.165(ve)-.275 G 2.75(rr).165 G(ather than at the sender)-2.75 E
5.5(.W)-.605 G(hile)-5.5 E(DCCP should be able to mak)100.8 352.2 Q 2.75
(eu)-.11 G(se of CM where desired by the application, we do not see)
-2.75 E(an)100.8 365.2 Q 2.75(yb)-.165 G(ene\214t in making the deplo)
-2.75 E(yment of DCCP contingent on the deplo)-.11 E
(yment of CM itself.)-.11 E/F1 11/Times-Bold@0 SF(3.)72 391.2 Q/F2 14
/Times-Bold@0 SF(Concepts and T)5.5 E(erminology)-1.288 E F0(The k)100.8
407.8 Q .33 -.165(ey w)-.11 H(ords "MUST", "MUST NO).055 E(T", "REQ)-.44
E(UIRED", "SHALL", "SHALL NO)-.11 E(T",)-.44 E("SHOULD", "SHOULD NO)
100.8 420.8 Q(T", "RECOMMENDED",)-.44 E("MA)5.5 E(Y", and "OPTION)-1.155
E(AL" in this)-.385 E
(document are to be interpreted as described in [RFC 2119].)100.8 433.8
Q F1(3.1.)72 459.8 Q/F3 13/Times-Bold@0 SF(Anatomy of a DCCP Connection)
5.5 E F0(Each DCCP connection runs between tw)100.8 476.4 Q 2.75(oe)-.11
G(ndpoints, which we often name DCCP A and)-2.75 E
(DCCP B. Data may pass o)100.8 489.4 Q -.165(ve)-.165 G 2.75(rt).165 G
(he connection in either or both directions.)-2.75 E(The DCCP)5.5 E
(connection between DCCP A and DCCP B consists of four sets of pack)
100.8 502.4 Q(ets, as follo)-.11 E(ws:)-.275 E 13.224(\(1\) Data)100.8
519 R(pack)2.75 E(ets from DCCP A to DCCP B.)-.11 E 13.224(\(2\) Ackno)
100.8 535.6 R(wledgements from DCCP B to DCCP A.)-.275 E 13.224
(\(3\) Data)100.8 552.2 R(pack)2.75 E(ets from DCCP B to DCCP A.)-.11 E
13.224(\(4\) Ackno)100.8 568.8 R(wledgements from DCCP A to DCCP B.)
-.275 E 1.76 -.88(We u)100.8 585.4 T(se the follo).88 E
(wing terms to refer to subsets and endpoints of a DCCP connection.)
-.275 E F1(Sub\215o)100.8 602 Q(ws)-.11 E F0 2.75(As)129.6 615 S
(ub\215o)-2.75 E 2.75(wc)-.275 G(onsists of either data or ackno)-2.75 E
(wledgement pack)-.275 E(ets, sent in one direction.)-.11 E
(Each of the four sets of pack)129.6 628 Q(ets abo)-.11 E .33 -.165
(ve i)-.165 H 2.75(sas).165 G(ub\215o)-2.75 E 1.43 -.715(w. \()-.275 H
(Sub\215o).715 E(ws may o)-.275 E -.165(ve)-.165 G(rlap to some).165 E
-.165(ex)129.6 641 S(tent, since ackno).165 E
(wledgements may be piggyback)-.275 E(ed on data pack)-.11 E(ets.\))-.11
E F1(Sequences)100.8 657.6 Q F0 2.75(As)129.6 670.6 S
(equence consists of all pack)-2.75 E(ets sent in one direction, re)-.11
E -.055(ga)-.165 G(rdless of whether the).055 E(y)-.165 E
(are data or ackno)129.6 683.6 Q(wledgements. The sets 1+4 and 2+3, abo)
-.275 E -.165(ve)-.165 G 2.75(,a).165 G(re sequences. Each)-2.75 E(pack)
129.6 696.6 Q(et on a sequence has a dif)-.11 E(ferent sequence number)
-.275 E(.)-.605 E -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E
(yd/P)-.11 E(adh)-.165 E 200.538(ye Section)-.055 F 2.75(3.1. [P)2.75 F
(age 6])-.165 E 0 Cg EP
%%Page: 7 7
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E/F1 11
/Times-Bold@0 SF(Half-connections)100.8 85 Q F0 2.75(Ah)129.6 98 S
(alf-connection consists of the data pack)-2.75 E
(ets sent in one direction, plus the)-.11 E(corresponding ackno)129.6
111 Q(wledgements. The sets 1+2 and 3+4, abo)-.275 E -.165(ve)-.165 G
2.75(,a).165 G(re half-)-2.75 E(connections. Half-connections are named\
 after the direction of data \215o)129.6 124 Q 1.43 -.715(w, s)-.275 H
2.75(ot).715 G(he A-)-2.75 E
(to-B half-connection contains the data pack)129.6 137 Q
(ets from A to B and the)-.11 E(ackno)129.6 150 Q
(wledgements from B to A.)-.275 E F1(HC-Sender and HC-Recei)100.8 166.6
Q -.11(ve)-.11 G(r).11 E F0(In the conte)129.6 179.6 Q
(xt of a single half-connection, the HC-Sender is the endpoint sending)
-.165 E(data, while the HC-Recei)129.6 192.6 Q -.165(ve)-.275 G 2.75(ri)
.165 G 2.75(st)-2.75 G(he endpoint sending ackno)-2.75 E(wledgements. F)
-.275 E(or)-.165 E -.165(ex)129.6 205.6 S(ample, in the A-to-B half-con\
nection, DCCP A is the HC-Sender and DCCP B is).165 E(the HC-Recei)129.6
218.6 Q -.165(ve)-.275 G -.605(r.).165 G F1(3.2.)72 244.6 Q/F2 13
/Times-Bold@0 SF(Congestion Contr)5.5 E(ol)-.234 E F0(Each half-connect\
ion is managed by a congestion control mechanism. The endpoints)100.8
261.2 Q(ne)100.8 274.2 Q(gotiate these mechanisms at connection setup; \
the mechanisms for the tw)-.165 E 2.75(oh)-.11 G(alf-)-2.75 E
(connections need not be the same.)100.8 287.2 Q(Conformant congestion \
control mechanisms correspond to single-byte congestion control)100.8
303.8 Q
(identi\214ers, or CCIDs. The CCID for a half-connection describes ho)
100.8 316.8 Q 2.75(wt)-.275 G(he HC-Sender limits)-2.75 E(data pack)
100.8 329.8 Q(et rates; ho)-.11 E 2.75(wi)-.275 G 2.75(tm)-2.75 G
(aintains necessary parameters, such as congestion windo)-2.75 E(ws;)
-.275 E(ho)100.8 342.8 Q 2.75(wt)-.275 G(he HC-Recei)-2.75 E -.165(ve)
-.275 G 2.75(rs).165 G(ends congestion feedback via ackno)-2.75 E
(wledgements; and ho)-.275 E 2.75(wi)-.275 G(t)-2.75 E
(manages the ackno)100.8 355.8 Q
(wledgement rate. Section 7 introduces the currently allocated CCIDs,)
-.275 E(which are de\214ned in separate pro\214le documents.)100.8 368.8
Q F1(3.3.)72 394.8 Q F2(Connection Initiation and T)5.5 E(ermination)
-1.196 E F0(Ev)100.8 411.4 Q(ery DCCP connection is acti)-.165 E -.165
(ve)-.275 G(ly initiated by one DCCP).165 E 2.75(,w)-1.221 G
(hich connects to a DCCP)-2.75 E(sock)100.8 424.4 Q(et in the passi)-.11
E .33 -.165(ve l)-.275 H(istening state. W).165 E 2.75(er)-.88 G
(efer to the acti)-2.75 E .33 -.165(ve e)-.275 H
(ndpoint as "the client" and the).165 E(passi)100.8 437.4 Q .33 -.165
(ve e)-.275 H(ndpoint as "the serv).165 E
(er". Most of the DCCP speci\214cation is indif)-.165 E
(ferent to whether a)-.275 E(DCCP is client or serv)100.8 450.4 Q(er)
-.165 E 2.75(.H)-.605 G -.275(ow)-2.75 G -2.365 -.275(ev e).275 H .88
-.44(r, o).275 H(nly the serv).44 E(er may generate a DCCP-CloseReq)
-.165 E(pack)100.8 463.4 Q(et. \(A DCCP-CloseReq pack)-.11 E
(et forces the recei)-.11 E(ving DCCP to close the connection and)-.275
E(maintain connection state for a reasonable time, allo)100.8 476.4 Q
(wing old pack)-.275 E(ets to clear the netw)-.11 E(ork.\))-.11 E
(This means that the client cannot force the serv)100.8 489.4 Q
(er to maintain connection state after the)-.165 E
(connection is closed.)100.8 502.4 Q
(DCCP does not support TCP-style simultaneous open. In particular)100.8
519 Q 2.75(,ah)-.44 G(ost MUST NO)-2.75 E(T)-.44 E
(respond to a DCCP-Request pack)100.8 532 Q
(et with a DCCP-Response pack)-.11 E(et unless the destination)-.11 E
(port speci\214ed in the DCCP-Request corresponds to a local sock)100.8
545 Q(et opened for listening.)-.11 E
(DCCP does not support half-open connections either)100.8 561.6 Q 2.75
(.T)-.605 G(hat is, DCCP shuts do)-2.75 E(wn both half-)-.275 E
(connections as a unit. Ho)100.8 574.6 Q(we)-.275 E -.165(ve)-.275 G .88
-.44(r, D).165 H(CCP SHOULD allo).44 E 2.75(wa)-.275 G
(pplications to declare that the)-2.75 E(y)-.165 E
(are no longer interested in recei)100.8 587.6 Q(ving data. This w)-.275
E(ould allo)-.11 E 2.75(wD)-.275 G(CCP implementations to)-2.75 E
(streamline state for certain half-connections.)100.8 600.6 Q
(See Section 8.7, on the Data Dropped)5.5 E
(option---and particularly its Drop State 4---for more information.)
100.8 613.6 Q F1(3.4.)72 639.6 Q F2 -.325(Fe)5.5 G(atur).325 E(es)-.234
E F0(DCCP uses a generic mechanism to ne)100.8 656.2 Q
(gotiate connection properties, such as the CCIDs)-.165 E(acti)100.8
669.2 Q .33 -.165(ve o)-.275 H 2.75(nt).165 G(he tw)-2.75 E 2.75(oh)-.11
G(alf-connections. These properties are called features. \(W)-2.75 E
2.75(er)-.88 G(eserv)-2.75 E 2.75(et)-.165 G(he)-2.75 E
(term "option" for a collection of bytes in some DCCP header)100.8 682.2
Q(.\) A feature name, such as)-.605 E
("CCID", generally corresponds to tw)100.8 695.2 Q 2.75(of)-.11 G
(eatures, one per half-connection. F)-2.75 E(or instance, there)-.165 E
(are tw)100.8 708.2 Q 2.75(oC)-.11 G
(CIDs per connection. The endpoint in char)-2.75 E
(ge of a particular feature is called its)-.198 E(feature location.)
100.8 721.2 Q -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)
-.11 E(adh)-.165 E 200.538(ye Section)-.055 F 2.75(3.4. [P)2.75 F
(age 7])-.165 E 0 Cg EP
%%Page: 8 8
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(The Change, Prefer)100.8 85 Q 2.75(,a)-.44 G(nd Con\214rm options ne)
-2.75 E(gotiate feature v)-.165 E 2.75(alues. Change)-.275 F
(is sent to a)2.75 E(feature location, asking it to change its v)100.8
98 Q(alue for the feature. The feature location may)-.275 E
(respond with Prefer)100.8 111 Q 2.75(,w)-.44 G
(hich asks the other endpoint to Change ag)-2.75 E(ain with dif)-.055 E
(ferent v)-.275 E(alues,)-.275 E(or it may change the feature v)100.8
124 Q(alue and ackno)-.275 E(wledge the request with Con\214rm.)-.275 E
(Retransmissions mak)100.8 137 Q 2.75(ef)-.11 G(eature ne)-2.75 E
(gotiation reliable. Section 6.3 describes these options)-.165 E
(further)100.8 150 Q(.)-.605 E/F1 11/Times-Bold@0 SF(4.)72 176 Q/F2 14
/Times-Bold@0 SF(DCCP P)5.5 E(ack)-.14 E(ets)-.14 E F0
(DCCP has nine dif)100.8 192.6 Q(ferent pack)-.275 E(et types:)-.11 E
7.15<8344>100.8 209.2 S(CCP-Request)-7.15 E 7.15<8344>100.8 225.8 S
(CCP-Response)-7.15 E 7.15<8344>100.8 242.4 S(CCP-Data)-7.15 E 7.15
<8344>100.8 259 S(CCP-Ack)-7.15 E 7.15<8344>100.8 275.6 S(CCP-DataAck)
-7.15 E 7.15<8344>100.8 292.2 S(CCP-CloseReq)-7.15 E 7.15<8344>100.8
308.8 S(CCP-Close)-7.15 E 7.15<8344>100.8 325.4 S(CCP-Reset)-7.15 E 7.15
<8344>100.8 342 S(CCP-Mo)-7.15 E -.165(ve)-.165 G
(Only the \214rst eight types commonly occur)100.8 358.6 Q 2.75(.T)-.605
G(he DCCP-Mo)-2.75 E .33 -.165(ve p)-.165 H(ack).165 E
(et is used to support)-.11 E(multihoming and mobility)100.8 371.6 Q(.)
-.715 E(The progress of a typical DCCP connection is as follo)100.8
388.2 Q(ws. \(This description is informati)-.275 E -.165(ve)-.275 G(,)
.165 E(not normati)100.8 401.2 Q -.165(ve)-.275 G(.\)).165 E 13.224
(\(1\) The)100.8 417.8 R(client sends the serv)2.75 E
(er a DCCP-Request pack)-.165 E(et specifying the client and serv)-.11 E
(er)-.165 E(ports, the service being requested, and an)129.6 430.8 Q
2.75(yf)-.165 G(eatures being ne)-2.75 E(gotiated, including the)-.165 E
(CCID that the client w)129.6 443.8 Q(ould lik)-.11 E 2.75(et)-.11 G
(he serv)-2.75 E(er to use. The client may optionally)-.165 E
(piggyback some data on the DCCP-Request pack)129.6 456.8 Q
(et---an application-le)-.11 E -.165(ve)-.275 G 2.75(lr).165 G(equest,)
-2.75 E(say---which the serv)129.6 469.8 Q(er may ignore.)-.165 E 13.224
(\(2\) The)100.8 486.4 R(serv)2.75 E
(er sends the client a DCCP-Response pack)-.165 E
(et indicating that it is willing to)-.11 E
(communicate with the client. The response indicates an)129.6 499.4 Q
2.75(yf)-.165 G(eatures and options that)-2.75 E(the serv)129.6 512.4 Q
(er agrees to, be)-.165 E(gins or continues other feature ne)-.165 E
(gotiations if desired, and)-.165 E(optionally includes an Init Cookie \
that wraps up all this information and which must)129.6 525.4 Q
(be returned by the client for the connection to complete.)129.6 538.4 Q
13.224(\(3\) The)100.8 555 R(client sends the serv)2.75 E
(er a DCCP-Ack pack)-.165 E(et that ackno)-.11 E(wledges the DCCP-)-.275
E(Response pack)129.6 568 Q(et. This ackno)-.11 E(wledges the serv)-.275
E(er')-.165 E 2.75(si)-.605 G(nitial sequence number and)-2.75 E
(returns the Init Cookie if there w)129.6 581 Q
(as one in the DCCP-Response. It may also continue)-.11 E(feature ne)
129.6 594 Q(gotiation.)-.165 E 13.224(\(4\) Ne)100.8 610.6 R
(xt comes zero or more DCCP-Ack e)-.165 E
(xchanges as required to \214nalize feature)-.165 E(ne)129.6 623.6 Q
(gotiation. The client may piggyback an application-le)-.165 E -.165(ve)
-.275 G 2.75(lr).165 G(equest on its \214nal ack,)-2.75 E
(producing a DCCP-DataAck pack)129.6 636.6 Q(et.)-.11 E 13.224
(\(5\) The)100.8 653.2 R(serv)2.75 E(er and client then e)-.165 E
(xchange DCCP-Data pack)-.165 E(ets, DCCP-Ack pack)-.11 E(ets)-.11 E
(ackno)129.6 666.2 Q(wledging that data, and, optionally)-.275 E 2.75
(,D)-.715 G(CCP-DataAck pack)-2.75 E(ets containing)-.11 E(piggyback)
129.6 679.2 Q(ed data and ackno)-.11 E
(wledgements. If the client has no data to send, then the)-.275 E(serv)
129.6 692.2 Q(er will send DCCP-Data and DCCP-DataAck pack)-.165 E
(ets, while the client will send)-.11 E(DCCP-Acks e)129.6 705.2 Q
(xclusi)-.165 E -.165(ve)-.275 G(ly).165 E(.)-.715 E -.385(Ko)72 769 S
(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 208.788
(ye Section)-.055 F 2.75(4. [P)2.75 F(age 8])-.165 E 0 Cg EP
%%Page: 9 9
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E 13.224
(\(6\) The)100.8 85 R(serv)2.75 E(er sends a DCCP-CloseReq pack)-.165 E
(et requesting a close.)-.11 E 13.224(\(7\) The)100.8 101.6 R
(client sends a DCCP-Close pack)2.75 E(et ackno)-.11 E
(wledging the close.)-.275 E 13.224(\(8\) The)100.8 118.2 R(serv)2.75 E
(er sends a DCCP-Reset pack)-.165 E
(et whose Reason \214eld is set to "Closed", and)-.11 E
(clears its connection state.)129.6 131.2 Q 13.224(\(9\) The)100.8 147.8
R(client recei)2.75 E -.165(ve)-.275 G 2.75(st).165 G
(he DCCP-Reset pack)-2.75 E(et and holds state for a reasonable interv)
-.11 E(al)-.275 E(of time to allo)129.6 160.8 Q 2.75(wa)-.275 G .33
-.165(ny r)-2.75 H(emaining pack).165 E(ets to clear the netw)-.11 E
(ork.)-.11 E(An alternati)100.8 177.4 Q .33 -.165(ve c)-.275 H
(onnection closedo).165 E(wn sequence is initiated by the client:)-.275
E 13.224(\(6\) The)100.8 194 R(client sends a DCCP-Close pack)2.75 E
(et closing the connection.)-.11 E 13.224(\(7\) The)100.8 210.6 R(serv)
2.75 E(er sends a DCCP-Reset pack)-.165 E
(et with Reason \214eld set to "Closed" and clears)-.11 E
(its connection state.)129.6 223.6 Q 13.224(\(8\) The)100.8 240.2 R
(client recei)2.75 E -.165(ve)-.275 G 2.75(st).165 G(he DCCP-Reset pack)
-2.75 E(et and holds state for a reasonable interv)-.11 E(al)-.275 E
(of time to allo)129.6 253.2 Q 2.75(wa)-.275 G .33 -.165(ny r)-2.75 H
(emaining pack).165 E(ets to clear the netw)-.11 E(ork.)-.11 E
(This arrangement of setup and teardo)100.8 269.8 Q(wn handshak)-.275 E
(es permits the serv)-.11 E(er to decline to hold)-.165 E(an)100.8 282.8
Q 2.75(ys)-.165 G(tate until the handshak)-2.75 E 2.75(ew)-.11 G
(ith the client has completed, and ensures that the client must)-2.75 E
(hold the T)100.8 295.8 Q(imeW)-.385 E(ait state at connection closedo)
-.88 E(wn.)-.275 E/F1 11/Times-Bold@0 SF(4.1.)72 321.8 Q/F2 13
/Times-Bold@0 SF(Examples of DCCP Congestion Contr)5.5 E(ol)-.234 E F0
(Before gi)100.8 338.4 Q(ving the detailed speci\214cations of DCCP)
-.275 E 2.75(,w)-1.221 G 2.75(ep)-2.75 G(resent tw)-2.75 E 2.75(om)-.11
G(ore detailed e)-2.75 E(xamples)-.165 E(sho)100.8 351.4 Q
(wing DCCP congestion control in operation.)-.275 E(Ag)5.5 E
(ain, these e)-.055 E(xamples are informati)-.165 E -.165(ve)-.275 G(,)
.165 E(not normati)100.8 364.4 Q -.165(ve)-.275 G(.).165 E F1 2.75
(4.1.1. DCCP)72 390.4 R(with TCP-lik)2.75 E 2.75(eC)-.11 G
(ongestion Contr)-2.75 E(ol)-.198 E F0(The \214rst e)100.8 407 Q
(xample is of a connection where both half-connections use TCP-lik)-.165
E 2.75(eC)-.11 G(ongestion)-2.75 E
(Control, speci\214ed by CCID 2 [CCID 2 PR)100.8 420 Q
(OFILE]. In this e)-.44 E(xample, the client sends an)-.165 E
(application-le)100.8 433 Q -.165(ve)-.275 G 2.75(lr).165 G
(equest to the serv)-2.75 E(er)-.165 E 2.75(,a)-.44 G(nd the serv)-2.75
E(er responds with a stream of data)-.165 E(pack)100.8 446 Q 2.75
(ets. This)-.11 F -.165(ex)2.75 G(ample is of a connection using ECN.)
.165 E 13.224(\(1\) The)100.8 462.6 R(client sends the DCCP-Request, wh\
ich includes a Change option asking the)2.75 E(serv)129.6 475.6 Q
(er to use CCID 2 for the serv)-.165 E(er')-.165 E 2.75(sd)-.605 G
(ata pack)-2.75 E(ets, and a Prefer option informing the)-.11 E(serv)
129.6 488.6 Q(er that the client w)-.165 E(ould lik)-.11 E 2.75(et)-.11
G 2.75(ou)-2.75 G(se CCID 2 for the its data pack)-2.75 E(ets.)-.11 E
13.224(\(2\) The)100.8 505.2 R(serv)2.75 E(er sends a DCCP-Response, in\
cluding a Con\214rm option indicating that the)-.165 E(serv)129.6 518.2
Q(er agrees to use CCID 2 for its data pack)-.165 E
(ets, and a Change option indicating that)-.11 E(the serv)129.6 531.2 Q
(er agrees to the client')-.165 E 2.75(ss)-.605 G
(uggestion of CCID 2 for the client')-2.75 E 2.75(sd)-.605 G(ata pack)
-2.75 E(ets.)-.11 E 13.224(\(3\) The)100.8 547.8 R
(client responds with a DCCP-DataAck ackno)2.75 E(wledging the serv)
-.275 E(er')-.165 E 2.75(si)-.605 G(nitial)-2.75 E(sequence number)129.6
560.8 Q 2.75(,a)-.44 G
(nd including a Con\214rm option \214nalizing the ne)-2.75 E
(gotiation of the)-.165 E(client-to-serv)129.6 573.8 Q
(er CCID, and an application-le)-.165 E -.165(ve)-.275 G 2.75(lr).165 G
(equest for data.)-2.75 E 1.76 -.88(We w)5.5 H(ill not discuss).88 E
(the client-to-serv)129.6 586.8 Q(er half-connection further in this e)
-.165 E(xample.)-.165 E 13.224(\(4\) The)100.8 603.4 R(serv)2.75 E
(er sends DCCP-Data pack)-.165 E(ets, where the number of pack)-.11 E
(ets sent is go)-.11 E -.165(ve)-.165 G(rned).165 E
(by a congestion windo)129.6 616.4 Q 1.43 -.715(w, a)-.275 H 2.75(si)
.715 G 2.75(nT)-2.75 G(CP)-2.75 E 5.5(.T)-1.221 G
(he details of the congestion windo)-5.5 E 2.75(wa)-.275 G(re)-2.75 E(d\
e\214ned in the pro\214le for CCID 2, which is a separate document [CCI\
D 2 PR)129.6 629.4 Q(OFILE].)-.44 E(The serv)129.6 642.4 Q
(er also sends Ack Ratio feature options specifying the number of serv)
-.165 E(er data)-.165 E(pack)129.6 655.4 Q(ets to be co)-.11 E -.165(ve)
-.165 G(red by an Ack pack).165 E(et from the client.)-.11 E
(Some of these data pack)5.5 E(ets)-.11 E(are DCCP-DataAcks ackno)129.6
668.4 Q(wledging pack)-.275 E(ets from the client.)-.11 E
(Each DCCP-Data and DCCP-DataAck pack)129.6 685 Q
(et is sent as ECN-Capable, with either)-.11 E(the ECT\(0\) or the ECT\
\(1\) codepoint set, as described in [ECN NONCE].)129.6 698 Q -.385(Ko)
72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E
192.288(ye Section)-.055 F 2.75(4.1.1. [P)2.75 F(age 9])-.165 E 0 Cg EP
%%Page: 10 10
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E 13.224
(\(5\) The)100.8 85 R(client sends a DCCP-Ack pack)2.75 E(et ackno)-.11
E(wledging the data pack)-.275 E(ets for e)-.11 E -.165(ve)-.275 G
(ry Ack).165 E(Ratio data pack)129.6 98 Q(ets transmitted by the serv)
-.11 E(er)-.165 E 5.5(.E)-.605 G(ach DCCP-Ack pack)-5.5 E(et uses a)-.11
E(sequence number and contains an Ack V)129.6 111 Q(ector)-1.221 E 2.75
(,a)-.44 G 2.75(sd)-2.75 G(e\214ned in Section 8 on)-2.75 E(Ackno)129.6
124 Q(wledgements. These pack)-.275 E
(ets also include Con\214rm options answering an)-.11 E 2.75(yA)-.165 G
(ck)-2.75 E(Ratio requests from the serv)129.6 137 Q(er)-.165 E(.)-.605
E(The client')129.6 153.6 Q 2.75(sD)-.605 G
(CCP-Acks are also sent as ECN-Capable, with either ECT\(0\) or)-2.75 E
(ECT\(1\). The client')129.6 166.6 Q 2.75(sA)-.605 G(ck V)-2.75 E
(ector echoes the accumulated ECN Nonce for the)-1.221 E(serv)129.6
179.6 Q(er')-.165 E 2.75(sp)-.605 G(ack)-2.75 E(ets.)-.11 E 13.224
(\(6\) The)100.8 196.2 R(serv)2.75 E
(er continues sending DCCP-Data pack)-.165 E
(ets as controlled by the congestion)-.11 E(windo)129.6 209.2 Q 4.18
-.715(w. U)-.275 H(pon recei).715 E(ving DCCP-Ack pack)-.275 E
(ets, the serv)-.11 E(er e)-.165 E(xamines the Ack V)-.165 E(ector to)
-1.221 E(learn about mark)129.6 222.2 Q(ed or dropped data pack)-.11 E
(ets, and adjusts its congestion windo)-.11 E(w)-.275 E(accordingly)
129.6 235.2 Q 2.75(,a)-.715 G 2.75(sd)-2.75 G(escribed in [CCID 2 PR)
-2.75 E(OFILE]. Because this is unreliable transfer)-.44 E(,)-.44 E
(the serv)129.6 248.2 Q(er does not retransmit dropped pack)-.165 E
(ets.)-.11 E 13.224(\(7\) Because)100.8 264.8 R(DCCP-Ack pack)2.75 E
(ets use sequence numbers, the serv)-.11 E(er has direct)-.165 E
(information about the fraction of loss or mark)129.6 277.8 Q
(ed DCCP-Ack pack)-.11 E 2.75(ets. The)-.11 F(serv)2.75 E(er)-.165 E
(responds to lost or mark)129.6 290.8 Q(ed DCCP-Ack pack)-.11 E
(ets by modifying the Ack Ratio sent to)-.11 E
(the client, as described in [CCID 2 PR)129.6 303.8 Q
(OFILE]. Under certain conditions, the serv)-.44 E(er)-.165 E
(must ackno)129.6 316.8 Q(wledge some of the client')-.275 E 2.75(sa)
-.605 G(ckno)-2.75 E(wledgements; see Section 8.1 for more)-.275 E
(information.)129.6 329.8 Q 13.224(\(8\) The)100.8 346.4 R(serv)2.75 E
(er estimates round-trip times and calculates a T)-.165 E(imeOut \(T)
-.385 E(O\) v)-.198 E(alue much as)-.275 E(the R)129.6 359.4 Q .396
-.198(TO \()-.66 H(Retransmit T).198 E(imeout\) is calculated in TCP)
-.385 E 5.5(.A)-1.221 G -.055(ga)-5.5 G
(in, the speci\214cation for this).055 E(is in [CCID 2 PR)129.6 372.4 Q
(OFILE]. The T)-.44 E 2.75(Oi)-.198 G 2.75(su)-2.75 G
(sed to determine when a ne)-2.75 E 2.75(wD)-.275 G(CCP-Data)-2.75 E
(pack)129.6 385.4 Q(et can be transmitted when the serv)-.11 E
(er has been limited by the congestion)-.165 E(windo)129.6 398.4 Q 2.75
(wa)-.275 G(nd no feedback has been recei)-2.75 E -.165(ve)-.275 G 2.75
(df).165 G(rom the client.)-2.75 E 13.224(\(9\) The)100.8 415 R
(DCCP-CloseReq, DCCP-Close, and DCCP-Reset pack)2.75 E(ets to close the)
-.11 E(connection are as in the e)129.6 428 Q(xample abo)-.165 E -.165
(ve)-.165 G(.).165 E/F1 11/Times-Bold@0 SF 2.75(4.1.2. DCCP)72 454 R
(with TFRC Congestion Contr)2.75 E(ol)-.198 E F0(This e)100.8 470.6 Q(x\
ample is of a connection where both half-connections use TFRC Congestio\
n)-.165 E(Control, speci\214ed by CCID 3 [CCID 3 PR)100.8 483.6 Q
(OFILE].)-.44 E 13.224(\(1\) The)100.8 500.2 R
(DCCP-Request and DCCP-Response pack)2.75 E
(ets specifying the use of CCID 3 and)-.11 E
(the initial DCCP-DataAck pack)129.6 513.2 Q
(et are similar to those in the CCID 2 e)-.11 E(xample abo)-.165 E -.165
(ve)-.165 G(.).165 E 13.224(\(2\) The)100.8 529.8 R(serv)2.75 E
(er sends DCCP-Data pack)-.165 E(ets, where the number of pack)-.11 E
(ets sent is go)-.11 E -.165(ve)-.165 G(rned).165 E(by an allo)129.6
542.8 Q(wed transmit rate, as in TFRC.)-.275 E(The details of the allo)
5.5 E(wed transmit rate are)-.275 E(de\214ned in the pro\214le for CCID\
 3, which is a separate document [CCID 3 PR)129.6 555.8 Q(OFILE].)-.44 E
(Each DCCP-Data pack)129.6 568.8 Q(et has a sequence number and a windo)
-.11 E 2.75(wc)-.275 G(ounter v)-2.75 E(alue.)-.275 E
(Some of these data pack)129.6 585.4 Q(ets are DCCP-DataAck pack)-.11 E
(ets ackno)-.11 E(wledging pack)-.275 E(ets)-.11 E(from the client, b)
129.6 598.4 Q
(ut for simplicity we will not discuss the half-connection of data)-.22
E(from the client to the serv)129.6 611.4 Q(er in this e)-.165 E
(xample.)-.165 E(The use of ECN follo)129.6 628 Q(ws TCP-lik)-.275 E
2.75(eC)-.11 G(ongestion Control, abo)-2.75 E -.165(ve)-.165 G 2.75(,a)
.165 G(nd is described)-2.75 E(further in [CCID 3 PR)129.6 641 Q
(OFILE].)-.44 E 13.224(\(3\) The)100.8 657.6 R(recei)2.75 E -.165(ve)
-.275 G 2.75(rs).165 G(ends DCCP-Ack pack)-2.75 E
(ets at least once per round-trip time)-.11 E(ackno)129.6 670.6 Q
(wledging the data pack)-.275 E(ets, unless the serv)-.11 E
(er is sending at a rate of less than)-.165 E(one pack)129.6 683.6 Q
(et per R)-.11 E(TT)-.66 E 2.75(,a)-.814 G 2.75(ss)-2.75 G
(peci\214ed by [CCID 3 PR)-2.75 E(OFILE]. These ackno)-.44 E
(wledgements)-.275 E(may be piggyback)129.6 696.6 Q(ed on data pack)-.11
E(ets, producing DCCP-DataAck pack)-.11 E 2.75(ets. Each)-.11 F
(DCCP-Ack pack)129.6 709.6 Q
(et uses a sequence number and identi\214es the most recent pack)-.11 E
(et)-.11 E(recei)129.6 722.6 Q -.165(ve)-.275 G 2.75(df).165 G
(rom the serv)-2.75 E(er)-.165 E 5.5(.E)-.605 G(ach DCCP-Ack pack)-5.5 E
(et includes feedback about the loss)-.11 E -.385(Ko)72 769 S
(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 186.788
(ye Section)-.055 F 2.75(4.1.2. [P)2.75 F(age 10])-.165 E 0 Cg EP
%%Page: 11 11
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E -2.365
-.275(ev e)129.6 85 T
(nt rate calculated by the client, as speci\214ed by [CCID 3 PR).275 E
(OFILE].)-.44 E 13.224(\(4\) The)100.8 101.6 R(serv)2.75 E
(er continues sending DCCP-Data pack)-.165 E
(ets as controlled by the allo)-.11 E(wed)-.275 E(transmit rate.)129.6
114.6 Q(Upon recei)5.5 E(ving DCCP-Ack pack)-.275 E(ets, the serv)-.11 E
(er updates its allo)-.165 E(wed)-.275 E
(transmit rate as speci\214ed by [CCID 3 PR)129.6 127.6 Q(OFILE].)-.44 E
13.224(\(5\) The)100.8 144.2 R(serv)2.75 E
(er estimates round-trip times and calculates a T)-.165 E(imeOut \(T)
-.385 E(O\) v)-.198 E(alue much as)-.275 E(the R)129.6 157.2 Q .396
-.198(TO \()-.66 H(Retransmit T).198 E(imeout\) is calculated in TCP)
-.385 E 5.5(.A)-1.221 G -.055(ga)-5.5 G
(in, the speci\214cation for this).055 E(is in [CCID 3 PR)129.6 170.2 Q
(OFILE].)-.44 E 13.224(\(6\) The)100.8 186.8 R
(DCCP-CloseReq, DCCP-Close, and DCCP-Reset pack)2.75 E(ets to close the)
-.11 E(connection are as in the e)129.6 199.8 Q(xamples abo)-.165 E
-.165(ve)-.165 G(.).165 E/F1 11/Times-Bold@0 SF(5.)72 225.8 Q/F2 14
/Times-Bold@0 SF -.14(Pa)5.5 G(ck).14 E(et F)-.14 E(ormats)-.35 E F1
(5.1.)72 251.8 Q/F3 13/Times-Bold@0 SF(Generic P)5.5 E(ack)-.13 E
(et Header)-.13 E F0(All DCCP pack)100.8 268.4 Q(ets be)-.11 E
(gin with a generic DCCP pack)-.165 E(et header:)-.11 E/F4 11/Courier@0
SF 125.4(0123)107.4 287.4 S 6.6(01234567890123456789012345678901)107.4
300.4 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
313.4 Q 66(|S)100.8 326.4 S(ource Port)-66 E 72.6(|D)66 G(est Port)-72.6
E(|)72.6 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
339.4 Q 6.6(|T)100.8 352.4 S 6.6(ype |)-6.6 F(CCval |)6.6 E
(Sequence Number)92.4 E(|)118.8 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
365.4 Q 13.2(|D)100.8 378.4 S(ata Offset)-13.2 E 6.6(|#N)13.2 G
(DP | Cslen |)-6.6 E 72.6(Checksum |)72.6 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
391.4 Q F1(Sour)100.8 427 Q(ce and Destination P)-.198 E
(orts: 16 bits each)-.22 E F0(These \214elds identify the connection, s\
imilar to the corresponding \214elds in TCP and)129.6 440 Q(UDP)129.6
453 Q 2.75(.T)-1.221 G(he Source Port represents the rele)-2.75 E -.275
(va)-.275 G(nt port on the endpoint that sent this).275 E(pack)129.6 466
Q(et, the Destination Port the rele)-.11 E -.275(va)-.275 G
(nt port on the other endpoint.).275 E F1 -.814(Ty)100.8 495.6 S
(pe: 4 bits).814 E F0
(The type \214eld speci\214es the type of the DCCP message.)129.6 508.6
Q(The follo)5.5 E(wing v)-.275 E(alues are)-.275 E(de\214ned:)129.6
521.6 Q F1(0)129.6 538.2 Q F0(DCCP-Request pack)23.3 E(et.)-.11 E F1(1)
129.6 554.8 Q F0(DCCP-Response pack)23.3 E(et.)-.11 E F1(2)129.6 571.4 Q
F0(DCCP-Data pack)23.3 E(et.)-.11 E F1(3)129.6 588 Q F0(DCCP-Ack pack)
23.3 E(et.)-.11 E F1(4)129.6 604.6 Q F0(DCCP-DataAck pack)23.3 E(et.)
-.11 E F1(5)129.6 621.2 Q F0(DCCP-CloseReq pack)23.3 E(et.)-.11 E F1(6)
129.6 637.8 Q F0(DCCP-Close pack)23.3 E(et.)-.11 E F1(7)129.6 654.4 Q F0
(DCCP-Reset pack)23.3 E(et.)-.11 E F1(8)129.6 671 Q F0(DCCP-Mo)23.3 E
.33 -.165(ve p)-.165 H(ack).165 E(et.)-.11 E F1(CCv)100.8 700.6 Q
(al: 4 bits)-.11 E F0(This \214eld is reserv)129.6 713.6 Q
(ed for use by the sending CCID. In particular)-.165 E 2.75(,t)-.44 G
(he A-to-B CCID')-2.75 E(s)-.605 E -.385(Ko)72 769 S(hler/Handle).385 E
(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 195.038(ye Section)-.055 F 2.75
(5.1. [P)2.75 F(age 11])-.165 E 0 Cg EP
%%Page: 12 12
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E(sender)
129.6 85 Q 2.75(,w)-.44 G(hich is acti)-2.75 E .33 -.165(ve a)-.275 H
2.75(tD).165 G(CCP A, MA)-2.75 E 2.75(Ys)-1.155 G
(end information to the recei)-2.75 E -.165(ve)-.275 G 2.75(ra).165 G
2.75(tD)-2.75 G(CCP)-2.75 E 2.75(Bb)129.6 98 S 2.75(ye)-2.75 G
(ncoding that information in CCv)-2.75 E
(al. DCCP proper MUST ignore the \214eld. If)-.275 E(the rele)129.6 111
Q -.275(va)-.275 G(nt CCID does not specify its v).275 E
(alue, it SHOULD be set to zero.)-.275 E/F1 11/Times-Bold@0 SF
(Sequence Number: 24 bits)100.8 140.6 Q F0(The sequence number \214eld \
is initialized by a DCCP-Request or DCCP-Response)129.6 153.6 Q(pack)
129.6 166.6 Q(et, and increases by one \(modulo 16777216\) with e)-.11 E
-.165(ve)-.275 G(ry pack).165 E(et sent. The)-.11 E(recei)129.6 179.6 Q
-.165(ve)-.275 G 2.75(ru).165 G
(ses this information to determine whether pack)-2.75 E(et losses ha)
-.11 E .33 -.165(ve o)-.22 H(ccurred.).165 E(Ev)129.6 192.6 Q(en pack)
-.165 E(ets containing no data update the sequence number)-.11 E 5.5(.S)
-.605 G(equence numbers)-5.5 E(also pro)129.6 205.6 Q
(vide some protection ag)-.165 E(ainst old and malicious pack)-.055 E
(ets; see Section 5.2 on)-.11 E(sequence number v)129.6 218.6 Q(alidity)
-.275 E(.)-.715 E -1.221(Ve)129.6 235.2 S
(ry-high-rate DCCPs may need protection ag)1.221 E
(ainst wrapped sequence numbers.)-.055 E -.165(Fo)5.5 G(r).165 E -.165
(ex)129.6 248.2 S(ample, a 10 Gb/s \215o).165 E 2.75(wo)-.275 G 2.75(f1)
-2.75 G(500-byte DCCP pack)-2.75 E(ets will send 2^24 pack)-.11 E
(ets in about)-.11 E(20 seconds. This is a long time, in terms of lik)
129.6 261.2 Q(ely round-trip times that could)-.11 E(possibly achie)
129.6 274.2 Q .33 -.165(ve s)-.275 H(uch a sustained rate, b).165 E
(ut it is not without risk. Despite this, we)-.22 E(lea)129.6 287.2 Q
.33 -.165(ve t)-.22 H(he design of mechanisms to protect ag).165 E
(ainst wrapped sequence numbers for)-.055 E(future w)129.6 300.2 Q
(ork. In particular)-.11 E 2.75(,i)-.44 G 2.75(fi)-2.75 G 2.75(ti)-2.75
G 2.75(sd)-2.75 G(ecided that v)-2.75 E(ery lar)-.165 E(ge pack)-.198 E
(et sizes are better than)-.11 E -.165(ve)129.6 313.2 S(ry lar).165 E
(ge congestion windo)-.198 E(ws for v)-.275 E(ery-high-bandwidth \215o)
-.165 E(ws, then 24 bits may be)-.275 E(enough.)129.6 326.2 Q(The tw)
129.6 342.8 Q 2.75(os)-.11 G(ub\215o)-2.75 E
(ws' initial sequence numbers are set by the \214rst DCCP-Request and)
-.275 E(DCCP-Response pack)129.6 355.8 Q
(ets sent, and SHOULD be chosen as for TCP)-.11 E 2.75(.I)-1.221 G 2.75
(np)-2.75 G(articular)-2.75 E(,)-.44 E
(initial sequence number choice MUST include a random or pseudorandom)
129.6 368.8 Q(component to mak)129.6 381.8 Q 2.75(ei)-.11 G 2.75(th)
-2.75 G(arder for attack)-2.75 E
(ers to complete sequence number attacks)-.11 E
([RFC 1948]. The initial sequence number chosen for a gi)129.6 394.8 Q
-.165(ve)-.275 G 2.75(nc).165 G(onnection identi\214er)-2.75 E(\(source\
 address and port plus destination address and port\) SHOULD increase o)
129.6 407.8 Q -.165(ve)-.165 G(r).165 E
(time, as TCP suggests [RFC 793], to pre)129.6 420.8 Q -.165(ve)-.275 G
(nt inappropriate deli).165 E -.165(ve)-.275 G(ry of old pack).165 E
(ets.)-.11 E F1(Data Offset: 8 bits)100.8 450.4 Q F0(The of)129.6 463.4
Q(fset from the start of the DCCP header to the be)-.275 E
(ginning of the pack)-.165 E(et')-.11 E(s)-.605 E
(payload, measured in 32-bit w)129.6 476.4 Q(ords.)-.11 E F1
(Number of Non-Data P)100.8 506 Q(ack)-.11 E(ets \(# NDP\): 4 bits)-.11
E F0(DCCP sets this \214eld to the number of non-data pack)129.6 519 Q
(ets it has sent so f)-.11 E(ar on its)-.11 E
(sequence, modulo 16. A non-data pack)129.6 532 Q(et is simply an)-.11 E
2.75(yp)-.165 G(ack)-2.75 E(et not containing user)-.11 E
(data; DCCP-Ack, DCCP-Close, DCCP-CloseReq, and DCCP-Reset are al)129.6
545 Q -.11(wa)-.11 G(ys non-).11 E(data pack)129.6 558 Q
(ets, while DCCP-Request, DCCP-Response, and DCCP-Mo)-.11 E .33 -.165
(ve m)-.165 H(ight or).165 E(might not be. When sending a non-data pack)
129.6 571 Q(et, DCCP increments the # NDP)-.11 E
(counter before storing its v)129.6 584 Q(alue in the pack)-.275 E
(et header)-.11 E(.)-.605 E(This \214eld can help the recei)129.6 600.6
Q(ving DCCP decide whether a lost pack)-.275 E(et contained an)-.11 E(y)
-.165 E(user data. \(An application may w)129.6 613.6 Q(ant to kno)-.11
E 2.75(ww)-.275 G(hen it has lost data. DCCP could)-2.75 E(report e)
129.6 626.6 Q -.165(ve)-.275 G(ry pack).165 E
(et loss as a potential data loss, b)-.11 E(ut that w)-.22 E
(ould cause f)-.11 E(alse loss)-.11 E(reports when non-data pack)129.6
639.6 Q(ets were lost.\) F)-.11 E(or e)-.165 E(xample, say that pack)
-.165 E(et 10 had #)-.11 E(NDP set to 5; pack)129.6 652.6 Q(et 11 w)-.11
E(as lost; and pack)-.11 E(et 12 had # NDP set to 5. Then the)-.11 E
(recei)129.6 665.6 Q(ving DCCP could deduce that pack)-.275 E
(et 11 contained data, since # NDP did not)-.11 E(change. Lik)129.6
678.6 Q -.275(ew)-.11 G(ise, if # NDP had gone up to 6 \(and pack).275 E
(et 12 contained user data\),)-.11 E(then pack)129.6 691.6 Q
(et 11 must not ha)-.11 E .33 -.165(ve c)-.22 H(ontained an).165 E 2.75
(yd)-.165 G(ata.)-2.75 E -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)
-.165 E(yd/P)-.11 E(adh)-.165 E 195.038(ye Section)-.055 F 2.75(5.1. [P)
2.75 F(age 12])-.165 E 0 Cg EP
%%Page: 13 13
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E/F1 11
/Times-Bold@0 SF(Checksum Length \(Cslen\): 4 bits)100.8 85 Q F0
(The checksum length \214eld speci\214es what parts of the pack)129.6 98
Q(et are co)-.11 E -.165(ve)-.165 G(red by the).165 E
(checksum \214eld. The checksum al)129.6 111 Q -.11(wa)-.11 G(ys co).11
E -.165(ve)-.165 G(rs at least the DCCP header).165 E 2.75(,D)-.44 G
(CCP)-2.75 E(options, and a pseudoheader tak)129.6 124 Q
(en from the netw)-.11 E(ork-layer header \(described under)-.11 E
(Checksum belo)129.6 137 Q
(w\). If the checksum length \214eld is zero, that is all the checksum)
-.275 E(co)129.6 150 Q -.165(ve)-.165 G
(rs. If the \214eld is 15, the checksum co).165 E -.165(ve)-.165 G
(rs the pack).165 E(et')-.11 E 2.75(sp)-.605 G(ayload as well, possibly)
-2.75 E
(with 8 bits of zero padding on the right to pad the payload to an e)
129.6 163 Q -.165(ve)-.275 G 2.75(nn).165 G(umber of)-2.75 E(bytes. V)
129.6 176 Q(alues between 1 and 14, inclusi)-1.221 E -.165(ve)-.275 G
2.75(,i).165 G(ndicate that the checksum additionally)-2.75 E(co)129.6
189 Q -.165(ve)-.165 G(rs that number of initial 32-bit w).165 E
(ords of the pack)-.11 E(et')-.11 E 2.75(sp)-.605 G
(ayload, padded on the)-2.75 E(right with zeros as necessary)129.6 202 Q
(.)-.715 E -1.221(Va)129.6 218.6 S(lues other than 15 specify that corr\
uption is acceptable in some or all of the DCCP)1.221 E(pack)129.6 231.6
Q(et')-.11 E 2.75(sp)-.605 G(ayload. In f)-2.75 E(act, DCCP cannot e)
-.11 E -.165(ve)-.275 G 2.75(nd).165 G
(etect corruption there, unless the)-2.75 E -.165(Pa)129.6 244.6 S
(yload Checksum option is used \(Section 8.8\). The meaning of v).165 E
(alues other than 0)-.275 E(and 15 should be considered e)129.6 257.6 Q
(xperimental.)-.165 E(Section 18.1 further discusses the moti)129.6
274.2 Q -.275(va)-.275 G(tion of, and issues related to, partial).275 E
2.75(checksums. The)129.6 287.2 R(checksum length \214eld w)2.75 E
(as inspired by UDP-Lite [UDP-LITE].)-.11 E F1(Checksum: 16 bits)100.8
303.8 Q F0(DCCP uses the TCP/IP checksum algorithm. The checksum \214el\
d equals the 16 bit)129.6 316.8 Q(one')129.6 329.8 Q 2.75(sc)-.605 G
(omplement of the one')-2.75 E 2.75(sc)-.605 G
(omplement sum of all 16 bit w)-2.75 E(ords in the DCCP)-.11 E(header)
129.6 342.8 Q 2.75(,D)-.44 G(CCP options, a pseudoheader tak)-2.75 E
(en from the netw)-.11 E(ork-layer header)-.11 E 2.75(,a)-.44 G(nd,)
-2.75 E(depending on the v)129.6 355.8 Q
(alue of the checksum length \214eld, some or all of the payload.)-.275
E(When calculating the checksum, the checksum \214eld itself is treated\
 as 0. If a pack)129.6 368.8 Q(et)-.11 E
(contains an odd number of header and te)129.6 381.8 Q
(xt bytes to be checksummed, 8 zero bits are)-.165 E
(added on the right to form a 16 bit w)129.6 394.8 Q
(ord for checksum purposes. The pad byte is not)-.11 E
(transmitted as part of the pack)129.6 407.8 Q(et.)-.11 E
(The pseudoheader is calculated as for TCP)129.6 424.4 Q 2.75(.F)-1.221
G(or IPv4, it is 96 bits long, and consists)-2.915 E(of the IPv4 source\
 and destination addresses, the IP protocol number for DCCP)129.6 437.4
Q(\(padded on the left with 8 zero bits\), and the DCCP length as a 16-\
bit quantity \(the)129.6 450.4 Q
(length of the DCCP header with options, plus the length of an)129.6
463.4 Q 2.75(yd)-.165 G(ata\); see Section 3.1)-2.75 E(of [RFC 793]. F)
129.6 476.4 Q
(or IPv6, it is 320 bits long, and consists of the IPv6 source and)-.165
E(destination addresses, the DCCP length as a 32-bit quantity)129.6
489.4 Q 2.75(,a)-.715 G(nd the IP protocol)-2.75 E(number for DCCP \(pa\
dded on the left with 24 zero bits\); see Section 8.1 of [RFC)129.6
502.4 Q(2460].)129.6 515.4 Q -.165(Pa)129.6 532 S(ck).165 E(ets with in)
-.11 E -.275(va)-.44 G(lid checksums MUST be ignored. In particular).275
E 2.75(,t)-.44 G(heir options)-2.75 E(MUST NO)129.6 545 Q 2.75(Tb)-.44 G
2.75(ep)-2.75 G(rocessed.)-2.75 E F1(5.2.)72 584 Q/F2 13/Times-Bold@0 SF
(Sequence Number V)5.5 E(alidity)-1.196 E F0
(DCCP endpoints SHOULD ignore pack)100.8 600.6 Q(ets with in)-.11 E
-.275(va)-.44 G(lid sequence numbers, which may).275 E
(arise if the netw)100.8 613.6 Q(ork deli)-.11 E -.165(ve)-.275 G
(rs a v).165 E(ery old pack)-.165 E(et or an attack)-.11 E
(er attempts to hijack a)-.11 E(connection. TCP solv)100.8 626.6 Q
(es this problem with its windo)-.165 E 1.43 -.715(w. I)-.275 H 2.75(nD)
.715 G(CCP)-2.75 E 2.75(,h)-1.221 G -.275(ow)-2.75 G -2.365 -.275(ev e)
.275 H .88 -.44(r, s).275 H(equence).44 E(numbers change with each pack)
100.8 639.6 Q(et sent, e)-.11 E -.165(ve)-.275 G 2.75(np).165 G
(ure ackno)-2.75 E(wledgements. Thus, a loss e)-.275 E -.165(ve)-.275 G
(nt).165 E(that dropped man)100.8 652.6 Q 2.75(yc)-.165 G(onsecuti)-2.75
E .33 -.165(ve p)-.275 H(ack).165 E(ets could cause tw)-.11 E 2.75(oD)
-.11 G(CCPs to get out of sync relati)-2.75 E -.165(ve)-.275 G(to an)
100.8 665.6 Q 2.75(yw)-.165 G(indo)-2.75 E -.715(w.)-.275 G
(DCCP uses Loss W)100.8 682.2 Q(indo)-.44 E 2.75(wa)-.275 G
(nd Identi\214cation mechanisms to determine whether a gi)-2.75 E -.165
(ve)-.275 G(n).165 E(pack)100.8 695.2 Q(et')-.11 E 2.75(ss)-.605 G
(equence number is v)-2.75 E(alid. Each HC-Sender gi)-.275 E -.165(ve)
-.275 G 2.75(st).165 G(he corresponding HC-Recei)-2.75 E -.165(ve)-.275
G(r).165 E 2.75(al)100.8 708.2 S(oss windo)-2.75 E 2.75(ww)-.275 G
(idth W)-2.75 E 2.75(;s)-.407 G(ee Section 6.9. This re\215ects ho)-2.75
E 2.75(wm)-.275 G(an)-2.75 E 2.75(yp)-.165 G(ack)-2.75 E
(ets the sender e)-.11 E(xpects)-.165 E
(to be in \215ight. Only the sender can anticipate this number)100.8
721.2 Q 2.75(.O)-.605 G(ne good guideline is to set it to)-2.75 E -.385
(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E
195.038(ye Section)-.055 F 2.75(5.2. [P)2.75 F(age 13])-.165 E 0 Cg EP
%%Page: 14 14
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(about 3 or 4 times the maximum number of pack)100.8 85 Q
(ets the sender e)-.11 E(xpects to send in an)-.165 E(y)-.165 E
(round-trip time. T)100.8 98 Q(oo-small v)-.88 E
(alues increase the risk of the endpoints getting out sync after)-.275 E
-.22(bu)100.8 111 S(rsts of loss; too-lar).22 E(ge v)-.198 E
(alues increase the risk of connection hijacking. W def)-.275 E
(aults to)-.11 E(1000. The Identi\214cation mechanism is used to get ba\
ck into sync when more than W)100.8 124 Q(consecuti)100.8 137 Q .33
-.165(ve p)-.275 H(ack).165 E(ets are lost.)-.11 E(The HC-Recei)100.8
153.6 Q -.165(ve)-.275 G 2.75(rs).165 G(ets up a loss windo)-2.75 E 2.75
(wo)-.275 G 2.75(fWc)-2.75 G(onsecuti)-2.75 E .33 -.165(ve s)-.275 H
(equence numbers containing).165 E
(GSN, the Greatest Sequence Number it has recei)100.8 166.6 Q -.165(ve)
-.275 G 2.75(do).165 G 2.75(na)-2.75 G .33 -.165(ny v)-2.75 H(alid pack)
-.11 E(et from the sender)-.11 E(.)-.605 E(\("Consecuti)100.8 179.6 Q
-.165(ve)-.275 G 2.75("a).165 G
(nd "greatest" are measured in circular sequence space. The recei)-2.75
E -.165(ve)-.275 G 2.75(rm).165 G(ay)-2.75 E(center the loss windo)100.8
192.6 Q 2.75(wo)-.275 G 2.75(nG)-2.75 G
(SN, or arrange it asymmetrically)-2.75 E(.\) Sequence numbers outside)
-.715 E(this loss windo)100.8 205.6 Q 2.75(wa)-.275 G(re in)-2.75 E
-.275(va)-.44 G(lid. P).275 E(ack)-.165 E(ets with in)-.11 E -.275(va)
-.44 G(lid sequence numbers are themselv).275 E(es in)-.165 E -.275(va)
-.44 G(lid,).275 E(unless both of the follo)100.8 218.6 Q
(wing conditions are true:)-.275 E 13.224(\(1\) No)100.8 235.2 R -.275
(va)2.75 G(lid pack).275 E(et has been recei)-.11 E -.165(ve)-.275 G
2.75(dr).165 G(ecently \(for instance, within at least one round-)-2.75
E(trip time\).)129.6 248.2 Q 13.224(\(2\) The)100.8 264.8 R(pack)2.75 E
(et includes a correct Identi\214cation or Challenge option \(see Secti\
on 6.4.3\).)-.11 E(The recei)100.8 285 Q(ving DCCP SHOULD ignore in)
-.275 E -.275(va)-.44 G(lid pack).275 E(ets. In particular)-.11 E 2.75
(,i)-.44 G 2.75(tS)-2.75 G(HOULD NO)-2.75 E 2.75(Tp)-.44 G(ass)-2.75 E
(an)100.8 298 Q 2.75(ye)-.165 G(nclosed data to the application, update\
 its congestion control or feature state, or close)-2.75 E
(the connection. Ho)100.8 311 Q(we)-.275 E -.165(ve)-.275 G .88 -.44
(r, t).165 H(he recei).44 E(ving DCCP MA)-.275 E 2.75(Ys)-1.155 G
(end a DCCP-Ack pack)-2.75 E(et to the)-.11 E(sender)100.8 324 Q 2.75
(,a)-.44 G 2.75(sa)-2.75 G(llo)-2.75 E
(wed by the congestion control mechanism in use. This pack)-.275 E
(et SHOULD)-.11 E(contain the last recei)100.8 337 Q -.165(ve)-.275 G
2.75(dv).165 G
(alid sequence number and a Challenge option \(Section 6.4.4\).)-3.025 E
(The other DCCP will send an Identi\214cation option to resync.)100.8
350 Q 2.75(AD)100.8 366.6 S(CCP endpoint MA)-2.75 E 2.75(Yi)-1.155 G
(mplement rate limits to reduce the lik)-2.75 E
(elihood of denial-of-service)-.11 E(attack. In particular)100.8 379.6 Q
2.75(,i)-.44 G 2.75(tM)-2.75 G 2.31 -1.155(AY i)-2.75 H(gnore all pack)
1.155 E(ets with bad sequence numbers---e)-.11 E -.165(ve)-.275 G 2.75
(nt).165 G(hose)-2.75 E(containing Identi\214cation or Challenge option\
s---for some amount of time, on the order of)100.8 392.6 Q
(one round-trip time, after recei)100.8 405.6 Q(ving a pack)-.275 E
(et with an in)-.11 E -.275(va)-.44 G(lid Identi\214cation or Challenge)
.275 E(option; and it MA)100.8 418.6 Q 2.75(Yr)-1.155 G
(ate-limit the Challenge options it sends.)-2.75 E/F1 11/Times-Bold@0 SF
(5.3.)72 444.6 Q/F2 13/Times-Bold@0 SF(DCCP State Diagram)5.5 E F0
(In this section we present a DCCP state diagram sho)100.8 461.2 Q
(wing ho)-.275 E 2.75(waD)-.275 G(CCP connection should)-2.75 E
(progress, and the proper responses for pack)100.8 474.2 Q
(ets or timeout e)-.11 E -.165(ve)-.275 G(nts in v).165 E
(arious connection)-.275 E(states. The state diagram is illustrati)100.8
487.2 Q -.165(ve)-.275 G 2.75(;t).165 G(he te)-2.75 E
(xt should be considered de\214niti)-.165 E -.165(ve)-.275 G(.).165 E
-.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165
E 195.038(ye Section)-.055 F 2.75(5.3. [P)2.75 F(age 14])-.165 E 0 Cg EP
%%Page: 15 15
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E -39 90
403.2 705 -382.039 668 100.8 467.039 PBEGIN
%%BeginDocument: statediagram.ps
%%Creator: idraw
%%DocumentFonts: Times-Bold Times-Roman
%%Pages: 1
%%BoundingBox: -39 90 666 758
%%EndComments

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 52 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.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/minus/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
/asciicircum/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/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/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-Bold reencodeISO def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l w add b translate w neg h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def


%I Idraw 10 Grid 7.57727e-15 7.25873e-43 


Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.956649 0 0 0.956649 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 10 -4 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -161 25 ] concat
%I
439 666 536 721 Rect
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-bold-r-normal--14-*
Times-Bold 14 SetF
%I t
[ 1 0 0 1 297 724 ] concat
%I
[
(CLOSED)
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -8 42 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -300 -83 ] concat
%I
439 666 536 721 Rect
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-bold-r-normal--14-*
Times-Bold 14 SetF
%I t
[ 1 0 0 1 161 616 ] concat
%I
[
(LISTEN)
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -18.5 0 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -289.5 -159 ] concat
%I
439 666 536 721 Rect
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-bold-r-normal--14-*
Times-Bold 14 SetF
%I t
[ 1 0 0 1 163 540 ] concat
%I
[
(RESPOND)
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 0 -40 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -151 -264 ] concat
%I
439 666 536 721 Rect
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-bold-r-normal--14-*
Times-Bold 14 SetF
%I t
[ 1 0 0 1 317 435 ] concat
%I
[
(OPEN)
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 9 -10 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -23 -90 ] concat
%I
439 666 536 721 Rect
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-bold-r-normal--14-*
Times-Bold 14 SetF
%I t
[ 1 0 0 1 430 609 ] concat
%I
[
(REQUEST)
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 1 15 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -152 -552 ] concat
%I
439 666 536 721 Rect
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-bold-r-normal--14-*
Times-Bold 14 SetF
%I t
[ 1 0 0 1 293.5 147 ] concat
%I
[
(TIME-WAIT)
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -34.5 -12 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -271.5 -406 ] concat
%I
439 666 536 721 Rect
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-bold-r-normal--14-*
Times-Bold 14 SetF
%I t
[ 1 0 0 1 183.5 300 ] concat
%I
[
(SERVER-)
( CLOSE)
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 20 -10 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -27 -408 ] concat
%I
439 666 536 721 Rect
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-bold-r-normal--14-*
Times-Bold 14 SetF
%I t
[ 1 0 0 1 431 298 ] concat
%I
[
(CLIENT-)
( CLOSE)
] Text
End

End %I eop

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 2
496 332
496 156
2 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 3
448 348
384 348
360 276
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 3
544 348
608 348
624 276
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 3
360 220
392 156
448 148
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 3
624 220
584 156
544 148
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 4
672 276
704 316
728 292
688 268
4 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 4
672 220
704 188
720 204
688 228
4 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 544 331 ] concat
%I
[
(timer expires)
([send Close])
([backoff timer])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 544 243 ] concat
%I
[
(rcv CloseReq)
([send Close])
([restart timer])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 432 219 ] concat
%I
[
(rcv Reset)
(or backoff fails)
([reset timer])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 304 323 ] concat
%I
[
(rcv Reset)
([set timer])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 176 219 ] concat
%I
[
(rcv Reset)
([reset timer])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 4
544 132
600 140
600 116
544 124
4 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 432 171 ] concat
%I
[
(rcv any but Reset)
([send Reset])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 6
688 252
792 260
800 284
800 652
784 684
544 684
6 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 616 411 ] concat
%I
[
(rcv Close)
([send Reset])
([cancel timer])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 -40 395 ] concat
%I
[
(rcv Close)
(or backoff fails)
([send Reset])
([cancel timer])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 4
304 220
288 188
264 196
296 228
4 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 72 227 ] concat
%I
[
(timer expires)
([send CloseReq])
([backoff timer])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 2
312 476
312 276
2 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 160 451 ] concat
%I
[
(app close)
([send CloseReq])
([set timer])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 176 379 ] concat
%I
[
(app close \(server only\))
([send CloseReq])
([set timer])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 424 379 ] concat
%I
[
(rcv CloseReq \(client only\))
(or app close)
([send Close])
([set timer])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 4
392 484
440 484
456 468
456 388
4 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 240 483 ] concat
%I
[
(rcv Ack or DataAck)
([cancel timer])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 4
392 516
448 524
464 556
464 660
4 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 256 587 ] concat
%I
[
(rcv Close)
(or timer expires)
([send Reset])
([cancel timer])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 6
288 492
216 484
200 460
200 156
224 132
448 132
6 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 16 483 ] concat
%I
[
(rcv Reset)
([reset timer])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 2
304 596
304 532
2 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 304 531 ] concat
%I
[
(rcv Ack or DataAck)
(with valid Init Cookie)
([new socket])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 4
392 612
488 612
512 580
512 388
4 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 4
600 540
600 420
584 388
544 380
4 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 384 475 ] concat
%I
[
(rcv Response)
([send Ack or DataAck])
([cancel timer])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 4
544 668
600 668
616 652
616 596
4 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 432 683 ] concat
%I
[
(app opens)
([send Request])
([set timer])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 4
680 580
712 604
704 620
672 596
4 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 536 635 ] concat
%I
[
(timer expires)
([send Request])
([backoff timer])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 4
448 676
400 676
384 668
376 652
4 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 240 707 ] concat
%I
[
(app)
(listens)
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 4
360 652
368 716
336 716
344 652
4 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 96 763 ] concat
%I
[
(rcv any but Request, Reset, and Ack/)
(DataAck with valid Init Cookie)
([send Reset])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 4
296 652
216 684
200 652
288 636
4 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 16 715 ] concat
%I
[
(rcv Request)
(app denies)
([send Reset])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 4
288 620
216 620
216 596
288 604
4 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 16 659 ] concat
%I
[
(rcv Request)
(app accepts)
(using Init Cookie)
([send Response with)
(Init Cookie])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 4
544 700
576 724
560 740
536 716
4 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 400 763 ] concat
%I
[
(rcv any but Reset)
([send Reset])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 152 619 ] concat
%I
[
(rcv Request)
(app accepts)
([send Response])
([set timer])
([new socket])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 4
584 580
544 588
536 612
536 660
4 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 352 659 ] concat
%I
[
(rcv Close)
([send Reset])
([cancel timer])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 7
664 540
800 252
800 220
800 140
784 124
704 116
544 116
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 5
544 364
696 380
784 428
800 468
800 540
5 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 480 419 ] concat
%I
[
(rcv Close)
([send Reset])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 13
496 100
496 84
528 68
776 68
832 68
848 84
856 196
856 652
840 740
800 756
520 756
512 740
512 716
13 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 432 107 ] concat
%I
[
(timer expires)
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -160 28 ] concat
%I 9
296 252
176 260
168 316
168 644
176 740
208 764
464 764
472 748
472 716
9 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-times-medium-r-normal--12-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 512 547 ] concat
%I
[
(rcv Reset)
(or app close)
(or backoff fails)
([send Reset unless)
(Reset received])
([reset timer])
] Text
End

End %I eop

showpage


end
%%EndDocument
end PEND(All recei)100.8 489.639 Q .33 -.165(ve e)-.275 H -.165(ve)-.11
G(nts on the diagram represent receipt of v).165 E(alid pack)-.275 E
(ets. F)-.11 E(or e)-.165 E(xample, recei)-.165 E(ving)-.275 E 2.75(aR)
100.8 502.639 S(eset with a bad Ackno)-2.75 E
(wledgement Number SHOULD NO)-.275 E 2.75(Tc)-.44 G
(ause DCCP to transition to)-2.75 E(the T)100.8 515.639 Q(ime-W)-.385 E
(ait state. DCCP implementations MA)-.88 E 2.75(Ys)-1.155 G
(end Acks as described abo)-2.75 E -.165(ve)-.165 G 2.75(,o).165 G(r)
-2.75 E("In)100.8 528.639 Q -.275(va)-.44 G(lid P).275 E(ack)-.165 E
(et" Resets, in response to in)-.11 E -.275(va)-.44 G(lid pack).275 E
(ets; an)-.11 E 2.75(ys)-.165 G(uch responses SHOULD be)-2.75 E
(rate-limited.)100.8 541.639 Q(Otherwise-v)100.8 558.239 Q(alid pack)
-.275 E(ets without e)-.11 E
(xplicit transitions in the state diagram SHOULD be)-.165 E
(treated according to the table belo)100.8 571.239 Q 1.43 -.715(w. P)
-.275 H(articular actions are "OK", meaning the pack).55 E(et)-.11 E
(MUST be processed according to this document; "Rst", meaning the recei)
100.8 584.239 Q -.165(ve)-.275 G 2.75(rS).165 G(HOULD)-2.75 E
(either ignore the pack)100.8 597.239 Q
(et or respond with a \(rate-limited\) Reset; and "-", meaning the pack)
-.11 E(et)-.11 E(SHOULD be ignored.)100.8 610.239 Q(Entries may tak)5.5
E 2.75(et)-.11 G(he form "Old/Ne)-2.75 E(w", where "Old" applies to old)
-.275 E(pack)100.8 623.239 Q(ets and "Ne)-.11 E(w" to ne)-.275 E 2.75
(wp)-.275 G(ack)-2.75 E
(ets \(whose sequence numbers are greater than the lar)-.11 E(gest)-.198
E(sequence number seen so f)100.8 636.239 Q
(ar\). The table respeci\214es some transitions listed in the state)-.11
E(diagram---for instance, those for recei)100.8 649.239 Q(ving pack)
-.275 E(ets in the TIME-W)-.11 E(AIT state. In these cases,)-1.32 E
(prefer the action listed in the diagram.)100.8 662.239 Q -.165(Fo)5.5 G
2.75(re).165 G(xample, in the TIME-W)-2.915 E(AIT case, prefer)-1.32 E
(sending rate-limited Resets when v)100.8 675.239 Q(alid pack)-.275 E
(ets are recei)-.11 E -.165(ve)-.275 G(d; the table w).165 E(ould allo)
-.11 E 2.75(wi)-.275 G(gnoring)-2.75 E(them. Ho)100.8 688.239 Q(we)-.275
E -.165(ve)-.275 G .88 -.44(r, e).165 H(ither action w).44 E
(ould be acceptable.)-.11 E -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)
-.165 E(yd/P)-.11 E(adh)-.165 E 195.038(ye Section)-.055 F 2.75(5.3. [P)
2.75 F(age 15])-.165 E 0 Cg EP
%%Page: 16 16
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E/F1 11
/Courier@0 SF(Data/Ack/)318.6 85 Q(DataAck/)318.6 98 Q 59.4
(State Request)100.8 111 R(Response Move)13.2 E(CloseReq Close)33 E
(Reset)26.4 E 6.6(------------- --------)100.8 124 R
(-------- -------- -------- -------- --------)6.6 E 59.4(CLOSED Rst)
100.8 137 R 33(Rst Rst Rst Rst)39.6 F(OK)46.2 E 59.4(LISTEN OK)100.8 150
R 33(Rst Rst\(1\))46.2 F 33(Rst Rst)19.8 F(OK)46.2 E 52.8(REQUEST Rst)
100.8 163 R 39.6(OK Rst)39.6 F 33(Rst Rst)39.6 F(OK)46.2 E 52.8
(RESPOND -/OK)100.8 176 R 33(Rst Rst/OK)33 F 33(Rst OK)19.8 F(OK)52.8 E
(OPEN \(server\))100.8 189 Q 19.8(-/Rst Rst)19.8 F 39.6(OK Rst)39.6 F
46.2(OK OK)39.6 F(OPEN \(client\))100.8 202 Q 33(Rst -/Rst)19.8 F 39.6
(OK OK OK)26.4 F(OK)52.8 E 19.8(SERVER-CLOSE -/Rst Rst)100.8 215 R 39.6
(OK Rst)39.6 F 46.2(OK OK)39.6 F 19.8(CLIENT-CLOSE Rst)100.8 228 R 19.8
(-/Rst OK)39.6 F 39.6(OK OK)46.2 F(OK)52.8 E 39.6(TIME-WAIT Rst)100.8
241 R 33(Rst Rst Rst Rst)39.6 F(OK)46.2 E 6.6(Notes: \(1\))100.8 267 R
(Data/Ack/DataAck with valid Init Cookie OK.)6.6 E F0(The Open state do\
es not signify that a DCCP connection is ready for data transfer)100.8
289.6 Q 2.75(.I)-.605 G(n)-2.75 E(particular)100.8 302.6 Q 2.75(,i)-.44
G(ncomplete feature ne)-2.75 E(gotiations might pre)-.165 E -.165(ve)
-.275 G(nt data transfer).165 E 2.75(.F)-.605 G(eature ne)-2.75 E
(gotiation)-.165 E(tak)100.8 315.6 Q
(es place in parallel with the state transitions on this diagram.)-.11 E
(Only the serv)100.8 332.2 Q(er may tak)-.165 E 2.75(et)-.11 G
(he transition from the OPEN state to the SER)-2.75 E(VER-CLOSE state.)
-.88 E(\(The serv)100.8 345.2 Q(er is the DCCP endpoint that be)-.165 E
-.055(ga)-.165 G 2.75(ni).055 G 2.75(nt)-2.75 G
(he LISTEN state.\) Similarly)-2.75 E 2.75(,o)-.715 G(nly the)-2.75 E
(client must transition to CLIENT)100.8 358.2 Q(-CLOSE after recei)
-1.012 E(ving a CloseReq pack)-.275 E(et.)-.11 E/F2 11/Times-Bold@0 SF
(5.4.)72 384.2 Q/F3 13/Times-Bold@0 SF(DCCP-Request P)5.5 E(ack)-.13 E
(et F)-.13 E(ormat)-.325 E F0 2.75(AD)100.8 400.8 S
(CCP connection is initiated by sending a DCCP-Request pack)-2.75 E
(et. The format of a)-.11 E(DCCP request pack)100.8 413.8 Q(et is:)-.11
E F1 125.4(0123)107.4 432.8 S 6.6(01234567890123456789012345678901)107.4
445.8 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
458.8 Q 112.2(/G)100.8 471.8 S(eneric DCCP Header \(12 bytes\))-112.2 E
(/)105.6 E 125.4(/w)100.8 484.8 S(ith Type=0 \(DCCP-Request\))-125.4 E
(/)118.8 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
497.8 Q 165(|S)100.8 510.8 S(ervice Name)-165 E(|)171.6 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
523.8 Q 138.6(|O)100.8 536.8 S 118.8(ptions /)-138.6 F 13.2([padding] |)
19.8 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
549.8 Q 191.4(|d)100.8 562.8 S 191.4(ata |)-191.4 F 198(|.)100.8 575.8 S
191.4(.. |)-198 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
588.8 Q F2(Ser)100.8 611.4 Q(vice Name: 32 bits)-.11 E F0(The Service N\
ame \214eld describes the service to which the sender is trying to)129.6
624.4 Q(connect. Service Names are 32-bit numbers allocated by IAN)129.6
637.4 Q(A; the)-.385 E 2.75(ya)-.165 G(re meant to)-2.75 E
(correspond to application services and protocols, such as FTP and HTTP)
129.6 650.4 Q 2.75(,a)-1.221 G(nd are not)-2.75 E
(intended to be DCCP-speci\214c. W)129.6 663.4 Q
(ith Service Names, stateful middlebox)-.44 E(es, such as)-.165 E
(\214re)129.6 676.4 Q -.11(wa)-.275 G(lls, can identify the application\
 running on a nonstandard port \(assuming the).11 E(DCCP header has not\
 been encrypted\). A Service Name of zero is a wildcard,)129.6 689.4 Q
(matching an)129.6 702.4 Q 2.75(ys)-.165 G
(ervice. The host operating system MA)-2.75 E 2.75(Yf)-1.155 G(orce e)
-2.75 E -.165(ve)-.275 G(ry DCCP sock).165 E(et,)-.11 E(both acti)129.6
715.4 Q -.165(ve)-.275 G(ly and passi).165 E -.165(ve)-.275 G
(ly opened, to specify a nonzero Service Name. Connection).165 E -.385
(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E
195.038(ye Section)-.055 F 2.75(5.4. [P)2.75 F(age 16])-.165 E 0 Cg EP
%%Page: 17 17
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(requests MUST f)129.6 85 Q(ail if the Destination Port on the recei)
-.11 E -.165(ve)-.275 G 2.75(rh).165 G(as a dif)-2.75 E(ferent Service)
-.275 E(Name from that gi)129.6 98 Q -.165(ve)-.275 G 2.75(ni).165 G
2.75(nt)-2.75 G(he pack)-2.75 E
(et, and both Service Names are nonzero. In this)-.11 E(case, the recei)
129.6 111 Q -.165(ve)-.275 G 2.75(rw).165 G
(ill respond with a DCCP-Reset pack)-2.75 E
(et \(with Reason set to "Bad)-.11 E(Service Name"\). A serv)129.6 124 Q
(er or stateful middlebox MA)-.165 E 2.75(Ya)-1.155 G
(lso send a "Bad Service)-2.75 E(Name" DCCP-Reset in response to pack)
129.6 137 Q(ets with Service Name v)-.11 E(alue 0.)-.275 E/F1 11
/Times-Bold@0 SF(Options)100.8 153.6 Q F0(DCCP-Request pack)129.6 166.6
Q(ets will usually include a "Change\(Connection Nonce\)" option,)-.11 E
(to inform the serv)129.6 179.6 Q(er of the client')-.165 E 2.75(sc)
-.605 G(onnection nonce; see Section 6.4.)-2.75 E(The client MA)100.8
196.2 Q 2.75(Ys)-1.155 G(end ne)-2.75 E 2.75(wD)-.275 G
(CCP-Request pack)-2.75 E(ets if no response is recei)-.11 E -.165(ve)
-.275 G 2.75(da).165 G(fter some)-2.75 E
(timeout. Each retransmission MUST increment the Sequence Number)100.8
209.2 Q 2.75(,a)-.44 G(nd possibly # NDP)-2.75 E(,)-1.221 E
(by one. The retransmission strate)100.8 222.2 Q
(gy SHOULD be similar to that for retransmitting TCP)-.165 E(SYNs.)100.8
235.2 Q 2.75(Ac)100.8 251.8 S(lient MA)-2.75 E 2.75(Yd)-1.155 G
(ecide to gi)-2.75 E .33 -.165(ve u)-.275 H 2.75(pa).165 G
(fter some number of DCCP-Requests. If so, it MA)-2.75 E 2.75(Ys)-1.155
G(end)-2.75 E 2.75(aD)100.8 264.8 S(CCP-Reset pack)-2.75 E
(et to the serv)-.11 E(er)-.165 E 2.75(,t)-.44 G 2.75(oc)-2.75 G
(lean up state in case one or more of the Requests)-2.75 E
(actually arri)100.8 277.8 Q -.165(ve)-.275 G
(d. The DCCP-Reset SHOULD ha).165 E .33 -.165(ve R)-.22 H
(eason set to "Closed".).165 E F1(5.5.)72 316.8 Q/F2 13/Times-Bold@0 SF
(DCCP-Response P)5.5 E(ack)-.13 E(et F)-.13 E(ormat)-.325 E F0
(In the second phase of the three-w)100.8 333.4 Q(ay handshak)-.11 E
(e, the serv)-.11 E(er sends a DCCP-Response)-.165 E
(message to the client.)100.8 346.4 Q(In this phase, a serv)5.5 E
(er will often specify the options it w)-.165 E(ould lik)-.11 E 2.75(et)
-.11 G(o)-2.75 E(use, either from among those the client requested, or \
in addition to those. Among these)100.8 359.4 Q
(options is the congestion control mechanism the serv)100.8 372.4 Q
(er e)-.165 E(xpects to use.)-.165 E/F3 11/Courier@0 SF 125.4(0123)107.4
391.4 S 6.6(01234567890123456789012345678901)107.4 404.4 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
417.4 Q 112.2(/G)100.8 430.4 S(eneric DCCP Header \(12 bytes\))-112.2 E
(/)105.6 E 118.8(/w)100.8 443.4 S(ith Type=1 \(DCCP-Response\))-118.8 E
(/)118.8 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
456.4 Q 19.8(|R)100.8 469.4 S 19.8(eserved |)-19.8 F
(Acknowledgement Number)72.6 E(|)92.4 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
482.4 Q 138.6(|O)100.8 495.4 S 118.8(ptions /)-138.6 F 13.2([padding] |)
19.8 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
508.4 Q 191.4(|d)100.8 521.4 S 191.4(ata |)-191.4 F 198(|.)100.8 534.4 S
191.4(.. |)-198 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
547.4 Q F1(Ackno)100.8 570 Q(wledgement Number: 24 bits)-.11 E F0
(The Ackno)129.6 583 Q(wledgement Number \214eld, which appears in se)
-.275 E -.165(ve)-.275 G(ral pack).165 E(et types,)-.11 E(ackno)129.6
596 Q(wledges the)-.275 E/F4 11/Times-Italic@0 SF(gr)2.75 E(eatest)-.407
E F0 -.275(va)2.75 G(lid sequence number recei).275 E -.165(ve)-.275 G
2.75(ds).165 G 2.75(of)-2.75 G(ar on this connection.)-2.86 E(\("Greate\
st" is, of course, measured in circular sequence space.\) In the case o\
f a)129.6 609 Q(DCCP-Response pack)129.6 622 Q(et, the ackno)-.11 E
(wledgement number \214eld will equal the sequence)-.275 E
(number from the DCCP-Request. Ackno)129.6 635 Q(wledgement numbers mak)
-.275 E 2.75(en)-.11 G 2.75(oa)-2.75 G(ttempt to)-2.75 E(pro)129.6 648 Q
(vide precise information about which pack)-.165 E(ets ha)-.11 E .33
-.165(ve a)-.22 H(rri).165 E -.165(ve)-.275 G(d; options such as the)
.165 E(Ack V)129.6 661 Q(ector do this.)-1.221 E
(Some care is required in de\214ning when a pack)129.6 677.6 Q
(et is "recei)-.11 E -.165(ve)-.275 G(d" for purposes of).165 E(ackno)
129.6 690.6 Q(wledgement. All v)-.275 E(alid pack)-.275 E(ets recei)-.11
E -.165(ve)-.275 G 2.75(db).165 G 2.75(yaD)-2.75 G(CCP stack MUST be)
-2.75 E(ackno)129.6 703.6 Q(wledged as "recei)-.275 E -.165(ve)-.275 G
(d", e).165 E -.165(ve)-.275 G 2.75(ni).165 G 2.75(ft)-2.75 G
(heir payloads were dropped \(due to recei)-2.75 E -.165(ve)-.275 G -.22
(bu)129.6 716.6 S -.275(ff).22 G(er o).275 E -.165(ve)-.165 G(r\215o)
.165 E 2.75(wo)-.275 G 2.75(rp)-2.75 G(ayload corruption, for e)-2.75 E
(xample\). The recei)-.165 E(ving DCCP MUST)-.275 E -.385(Ko)72 769 S
(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 195.038
(ye Section)-.055 F 2.75(5.5. [P)2.75 F(age 17])-.165 E 0 Cg EP
%%Page: 18 18
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E(ha)129.6
85 Q .33 -.165(ve p)-.22 H(rocessed the options on e).165 E -.165(ve)
-.275 G(ry pack).165 E(et it reports as "recei)-.11 E -.165(ve)-.275 G
(d". The Data).165 E(Dropped option \(Section 8.7\) helps the sending a\
pplication determine when pack)129.6 98 Q(et)-.11 E
(payloads were dropped by the recei)129.6 111 Q(ving DCCP)-.275 E 5.5
(.T)-1.221 G(his issue is discussed in some)-5.5 E(what)-.275 E
(more detail in Section 8.5.)129.6 124 Q/F1 11/Times-Bold@0 SF(Reser)
100.8 140.6 Q -.11(ve)-.11 G(d: 8 bits).11 E F0(The v)129.6 153.6 Q(ers\
ion of DCCP speci\214ed here SHOULD set this \214eld to all zeroes on)
-.165 E(generated pack)129.6 166.6 Q(ets, and ignore its v)-.11 E
(alue on recei)-.275 E -.165(ve)-.275 G 2.75(dp).165 G(ack)-2.75 E(ets.)
-.11 E F1(Options)100.8 183.2 Q F0(The Data Dropped and Init Cookie opt\
ions are particularly useful for DCCP-)129.6 196.2 Q(Response pack)129.6
209.2 Q
(ets \(Sections 8.7 and 6.5\). In addition, DCCP-Response, or early)-.11
E(DCCP-Data or DCCP-Ack pack)129.6 222.2 Q
(ets, will often include "Con\214rm\(Connection)-.11 E
(Nonce\)" and "Change\(Connection Nonce\)" options, to further ne)129.6
235.2 Q(gotiate connection)-.165 E
(nonces \(Section 6.4\), as well as options to ne)129.6 248.2 Q
(gotiate CCIDs and other rele)-.165 E -.275(va)-.275 G(nt).275 E
(features.)129.6 261.2 Q(The recei)100.8 277.8 Q -.165(ve)-.275 G 2.75
(rM).165 G 2.31 -1.155(AY r)-2.75 H(espond to a DCCP-Request pack)1.155
E(et with a DCCP-Reset pack)-.11 E(et to refuse)-.11 E
(the connection. Rele)100.8 290.8 Q -.275(va)-.275 G
(nt Reset Reasons for refusing a connection include "Connection).275 E
(Refused", when the DCCP-Request')100.8 303.8 Q 2.75(sD)-.605 G
(estination Port did not correspond to a DCCP port)-2.75 E
(open for listening; "Bad Service Name", when the DCCP-Request')100.8
316.8 Q 2.75(sS)-.605 G(ervice Name did not)-2.75 E
(correspond to the service name re)100.8 329.8 Q
(gistered with the Destination Port; and "T)-.165 E(oo Busy", when)-.88
E(the serv)100.8 342.8 Q(er is currently too b)-.165 E
(usy to respond to requests. The serv)-.22 E(er SHOULD limit the rate)
-.165 E(at which it generates these resets.)100.8 355.8 Q(The recei)
100.8 372.4 Q -.165(ve)-.275 G 2.75(rS).165 G(HOULD NO)-2.75 E 2.75(Tr)
-.44 G(etransmit DCCP-Response pack)-2.75 E(ets; the sender will)-.11 E
(retransmit the DCCP-Request if necessary)100.8 385.4 Q 2.75(.T)-.715 G
(he responder will detect that the retransmitted)-2.75 E
(DCCP-Request applies to an e)100.8 398.4 Q
(xisting connection because of its Source and Destination)-.165 E
(Ports. Ev)100.8 411.4 Q(ery v)-.165 E(alid DCCP-Request recei)-.275 E
-.165(ve)-.275 G 2.75(dM).165 G(UST elicit a ne)-2.75 E 2.75(wD)-.275 G
(CCP-Response, unless the)-2.75 E
(responder can guarantee that the requestor has recei)100.8 424.4 Q
-.165(ve)-.275 G 2.75(da).165 G 2.75(tl)-2.75 G
(east one Response already)-2.75 E 2.75(.\()-.715 G -.165(Fo)-2.75 G(r)
.165 E(instance, if the responder has recei)100.8 437.4 Q -.165(ve)-.275
G 2.75(dav).165 G(alid DCCP-Data or DCCP-Ack pack)-3.025 E(et from the)
-.11 E(requestor)100.8 450.4 Q 2.75(,t)-.44 G(hen it kno)-2.75 E
(ws the ne)-.275 E(wly recei)-.275 E -.165(ve)-.275 G 2.75(dR).165 G
(equest is old, and SHOULD be ignored.\))-2.75 E(Each ne)100.8 463.4 Q
2.75(wD)-.275 G(CCP-Response MUST increment the Sequence Number)-2.75 E
2.75(,a)-.44 G(nd possibly # NDP)-2.75 E(,)-1.221 E(by one.)100.8 476.4
Q F1(5.6.)72 502.4 Q/F2 13/Times-Bold@0 SF
(DCCP-Data, DCCP-Ack, and DCCP-DataAck P)5.5 E(ack)-.13 E(et F)-.13 E
(ormats)-.325 E F0(The payload of a DCCP connection is sent in DCCP-Dat\
a and DCCP-DataAck pack)100.8 519 Q(ets,)-.11 E(while DCCP-Ack pack)
100.8 532 Q(ets are used for ackno)-.11 E
(wledgements when there is no payload to be)-.275 E
(sent. DCCP-Data pack)100.8 545 Q(ets look lik)-.11 E 2.75(et)-.11 G
(his:)-2.75 E/F3 11/Courier@0 SF 125.4(0123)107.4 564 S 6.6
(01234567890123456789012345678901)107.4 577 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
590 Q 112.2(/G)100.8 603 S(eneric DCCP Header \(12 bytes\))-112.2 E(/)
105.6 E 132(/w)100.8 616 S(ith Type=2 \(DCCP-Data\))-132 E(/)132 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
629 Q 138.6(|O)100.8 642 S 118.8(ptions /)-138.6 F 13.2([padding] |)19.8
F(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)
100.8 655 Q 191.4(|d)100.8 668 S 191.4(ata |)-191.4 F 198(|.)100.8 681 S
191.4(.. |)-198 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
694 Q F0 -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E
(adh)-.165 E 195.038(ye Section)-.055 F 2.75(5.6. [P)2.75 F(age 18])
-.165 E 0 Cg EP
%%Page: 19 19
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(DCCP-Ack pack)100.8 85 Q(ets dispense with the data, b)-.11 E
(ut contain an ackno)-.22 E(wledgement number:)-.275 E/F1 11/Courier@0
SF 125.4(0123)107.4 104 S 6.6(01234567890123456789012345678901)107.4 117
S(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)
100.8 130 Q 112.2(/G)100.8 143 S(eneric DCCP Header \(12 bytes\))-112.2
E(/)105.6 E 132(/w)100.8 156 S(ith Type=3 \(DCCP-Ack\))-132 E(/)138.6 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
169 Q 19.8(|R)100.8 182 S 19.8(eserved |)-19.8 F(Acknowledgement Number)
72.6 E(|)92.4 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
195 Q 138.6(|O)100.8 208 S 118.8(ptions /)-138.6 F 13.2([padding] |)19.8
F(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)
100.8 221 Q F0(DCCP-DataAck pack)100.8 243.6 Q
(ets contain both data and an ackno)-.11 E(wledgement number:)-.275 E
(ackno)100.8 256.6 Q(wledgement information is piggyback)-.275 E
(ed on a data pack)-.11 E(et.)-.11 E F1 125.4(0123)107.4 275.6 S 6.6
(01234567890123456789012345678901)107.4 288.6 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
301.6 Q 112.2(/G)100.8 314.6 S(eneric DCCP Header \(12 bytes\))-112.2 E
(/)105.6 E 118.8(/w)100.8 327.6 S(ith Type=4 \(DCCP-DataAck\))-118.8 E
(/)125.4 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
340.6 Q 19.8(|R)100.8 353.6 S 19.8(eserved |)-19.8 F
(Acknowledgement Number)72.6 E(|)92.4 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
366.6 Q 138.6(|O)100.8 379.6 S 118.8(ptions /)-138.6 F 13.2([padding] |)
19.8 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
392.6 Q 191.4(|d)100.8 405.6 S 191.4(ata |)-191.4 F 198(|.)100.8 418.6 S
191.4(.. |)-198 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
431.6 Q F0(DCCP-Ack and DCCP-DataAck pack)100.8 454.2 Q
(ets often include additional ackno)-.11 E(wledgement)-.275 E
(options, such as Ack V)100.8 467.2 Q(ector)-1.221 E 2.75(,a)-.44 G 2.75
(sr)-2.75 G(equired by the congestion control mechanism in use.)-2.75 E
(DCCP A sends DCCP-Data and DCCP-DataAck pack)100.8 483.8 Q
(ets to DCCP B due to application)-.11 E -2.365 -.275(ev e)100.8 496.8 T
(nts on host A. These pack).275 E
(ets are congestion-controlled by the CCID for the A-to-B)-.11 E
(half-connection. In contrast, DCCP-Ack pack)100.8 509.8 Q
(ets sent by DCCP A are controlled by the)-.11 E
(CCID for the B-to-A half-connection. Generally)100.8 522.8 Q 2.75(,D)
-.715 G(CCP A will piggyback)-2.75 E(ackno)100.8 535.8 Q
(wledgement information on data pack)-.275 E
(ets when acceptable, creating DCCP-DataAck)-.11 E(pack)100.8 548.8 Q
(ets. DCCP-Ack pack)-.11 E
(ets are used when there is no data to send from DCCP A to)-.11 E(DCCP \
B, or when the link from A to B is so congested that sending data w)
100.8 561.8 Q(ould be)-.11 E(inappropriate.)100.8 574.8 Q
(Section 8, belo)100.8 591.4 Q 1.43 -.715(w, d)-.275 H(escribes ackno)
.715 E(wledgements in DCCP)-.275 E(.)-1.221 E 2.75(AD)100.8 608 S
(CCP-Data or DCCP-DataAck pack)-2.75 E
(et may contain no data bytes if the application)-.11 E(sends a zero-le\
ngth datagram. Such zero-length datagrams MUST be reported to the)100.8
621 Q(recei)100.8 634 Q(ving application.)-.275 E/F2 11/Times-Bold@0 SF
(5.7.)72 663.6 Q/F3 13/Times-Bold@0 SF(DCCP-CloseReq and DCCP-Close P)
5.5 E(ack)-.13 E(et F)-.13 E(ormat)-.325 E F0
(The DCCP-CloseReq and DCCP-Close pack)100.8 680.2 Q(ets ha)-.11 E .33
-.165(ve t)-.22 H(he same format. Ho).165 E(we)-.275 E -.165(ve)-.275 G
.88 -.44(r, o).165 H(nly the).44 E(serv)100.8 693.2 Q
(er can send a DCCP-CloseReq pack)-.165 E(et. Either client or serv)-.11
E(er may send a DCCP-Close)-.165 E(pack)100.8 706.2 Q(et. The recei)-.11
E -.165(ve)-.275 G 2.75(ro).165 G 2.75(fav)-2.75 G(alid DCCP-Close pack)
-3.025 E(et SHOULD respond with a DCCP-Reset)-.11 E(pack)100.8 719.2 Q(\
et, with Reason set to "Closed"; the endpoint that originally sent the \
DCCP-Close will)-.11 E -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165
E(yd/P)-.11 E(adh)-.165 E 195.038(ye Section)-.055 F 2.75(5.7. [P)2.75 F
(age 19])-.165 E 0 Cg EP
%%Page: 20 20
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E(hold T)
100.8 85 Q(imeW)-.385 E(ait state. The recei)-.88 E -.165(ve)-.275 G
2.75(ro).165 G 2.75(fav)-2.75 G(alid DCCP-CloseReq pack)-3.025 E
(et SHOULD respond)-.11 E(with a DCCP-Close pack)100.8 98 Q
(et; that recei)-.11 E(ving endpoint will e)-.275 E(xpect to hold T)
-.165 E(imeW)-.385 E(ait state after)-.88 E(later recei)100.8 111 Q
(ving a DCCP-Reset. See the state diagram in 5.3 for more information.)
-.275 E/F1 11/Courier@0 SF 125.4(0123)107.4 133.6 S 6.6
(01234567890123456789012345678901)107.4 146.6 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
159.6 Q 112.2(/G)100.8 172.6 S(eneric DCCP Header \(12 bytes\))-112.2 E
(/)105.6 E 72.6(/w)100.8 185.6 S
(ith Type=5 or 6 \(DCCP-Close or CloseReq\))-72.6 E(/)72.6 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
198.6 Q 19.8(|R)100.8 211.6 S 19.8(eserved |)-19.8 F
(Acknowledgement Number)72.6 E(|)92.4 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
224.6 Q 138.6(|O)100.8 237.6 S 118.8(ptions /)-138.6 F 13.2([padding] |)
19.8 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
250.6 Q/F2 11/Times-Bold@0 SF(5.8.)72 299.2 Q/F3 13/Times-Bold@0 SF
(DCCP-Reset P)5.5 E(ack)-.13 E(et F)-.13 E(ormat)-.325 E F0
(DCCP-Reset pack)100.8 315.8 Q(ets unconditionally shut do)-.11 E
(wn a connection. Ev)-.275 E(ery connection shutdo)-.165 E(wn)-.275 E
(sequence ends with a DCCP-Reset, b)100.8 328.8 Q
(ut resets may be sent for other reasons, including bad)-.22 E
(port numbers, bad option beha)100.8 341.8 Q(vior)-.22 E 2.75(,i)-.44 G
(ncorrect ECN Nonce Echoes, and so forth. The reason)-2.75 E
(for a reset is represented by an eight-bit number)100.8 354.8 Q 2.75
(,t)-.44 G(he Reason \214eld, and 24 bits of additional)-2.75 E(data.)
100.8 367.8 Q F1 125.4(0123)107.4 386.8 S 6.6
(01234567890123456789012345678901)107.4 399.8 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
412.8 Q 112.2(/G)100.8 425.8 S(eneric DCCP Header \(12 bytes\))-112.2 E
(/)105.6 E 125.4(/w)100.8 438.8 S(ith Type=7 \(DCCP-Reset\))-125.4 E(/)
132 E(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)
100.8 451.8 Q 19.8(|R)100.8 464.8 S 19.8(eserved |)-19.8 F
(Acknowledgement Number)72.6 E(|)92.4 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
477.8 Q 26.4(|R)100.8 490.8 S 26.4(eason |)-26.4 F(Data 1)26.4 E 26.4
(|D)33 G(ata 2)-26.4 E 26.4(|D)33 G(ata 3)-26.4 E(|)33 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
503.8 Q 138.6(|O)100.8 516.8 S 118.8(ptions /)-138.6 F 13.2([padding] |)
19.8 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
529.8 Q F2(Reason: 8 bits)100.8 552.4 Q F0(The Reason \214eld represent\
s the reason that the sender reset the DCCP connection.)129.6 565.4 Q F2
(Data 1, Data 2, and Data 3: 8 bits each)100.8 582 Q F0
(The Data \214elds pro)129.6 595 Q(vide additional information about wh)
-.165 E 2.75(yt)-.055 G(he sender reset the DCCP)-2.75 E
(connection. The meanings of these \214elds depend on the v)129.6 608 Q
(alue of Reason.)-.275 E(The follo)100.8 624.6 Q(wing Reasons are curre\
ntly de\214ned. The "Data" columns describe what the Data)-.275 E
(\214elds should contain for a gi)100.8 637.6 Q -.165(ve)-.275 G 2.75
(nR).165 G(eason. In those columns, N/A means the Data \214eld)-2.75 E(\
SHOULD be set to 0 by the sender of the DCCP-Reset, and ignored by its \
recei)100.8 650.6 Q -.165(ve)-.275 G -.605(r.).165 G -.385(Ko)72 769 S
(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 195.038
(ye Section)-.055 F 2.75(5.8. [P)2.75 F(age 20])-.165 E 0 Cg EP
%%Page: 21 21
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E/F1 11
/Courier@0 SF(Section)493.2 85 Q 6.6(Reason Name)136.8 98 R
(Data 1 Data 2 Data 3)125.4 E(Reference)13.2 E 6.6(------ ----)136.8 111
R(------ ------ ------)125.4 E(---------)13.2 E 26.4(0U)156.6 124 S 79.2
(nspecified N/A)-26.4 F 19.8(N/A N/A)26.4 F 26.4(1C)156.6 137 S 112.2
(losed N/A)-26.4 F 19.8(N/A N/A)26.4 F(4)39.6 E 26.4(2I)156.6 150 S
(nvalid Packet)-26.4 E 6.6(packet N/A)59.4 F 33(N/A 5.3)26.4 F(type)348
163 Q 26.4(3O)156.6 176 S(ption Error)-26.4 E 6.6(option option)72.6 F
(data)6.6 E 13.2(number \(if)341.4 189 R(any\))6.6 E 26.4(4F)156.6 202 S
(eature Error)-26.4 E 6.6(feature feature)59.4 F(data)6.6 E 13.2
(number \(if)341.4 215 R(any\))6.6 E 26.4(5C)156.6 228 S
(onnection Refused)-26.4 E 19.8(N/A N/A N/A)39.6 F(5.5)39.6 E 26.4(6B)
156.6 241 S(ad Service Name)-26.4 E 19.8(N/A N/A N/A)52.8 F(5.4)39.6 E
26.4(7T)156.6 254 S(oo Busy)-26.4 E 19.8(N/A N/A N/A)105.6 F(5.5)39.6 E
26.4(8B)156.6 267 S(ad Init Cookie)-26.4 E 19.8(N/A N/A N/A)59.4 F(6.5)
39.6 E 26.4(9I)156.6 280 S(nvalid Move)-26.4 E 19.8(N/A N/A N/A)79.2 F
(5.9)39.6 E 19.8(10 Unanswered)150 293 R 19.8(Challenge N/A N/A N/A)6.6
F(6.4.4)39.6 E 19.8(11 Fruitless)150 306 R(Negotiation feature)6.6 E
(feature data)13.2 E(6.3.7)26.4 E 13.2(number \(optional\))341.4 319 R
19.8(12 Aggression)150 332 R 33(Penalty N/A)6.6 F 19.8(N/A N/A)26.4 F
(9.2)39.6 E/F2 11/Times-Bold@0 SF(5.9.)72 364 Q/F3 13/Times-Bold@0 SF
(DCCP-Mo)5.5 E .26 -.13(ve Pa)-.13 H(ck).13 E(et F)-.13 E(ormat)-.325 E
F0(The DCCP-Mo)100.8 380.6 Q .33 -.165(ve p)-.165 H(ack).165 E
(et type is part of DCCP')-.11 E 2.75(ss)-.605 G
(upport for multihoming and mobility)-2.75 E(,)-.715 E
(which is described further in Section 10. DCCP A sends a DCCP-Mo)100.8
393.6 Q .33 -.165(ve p)-.165 H(ack).165 E(et to DCCP B)-.11 E
(after changing its address and/or port number)100.8 406.6 Q 2.75(.T)
-.605 G(he DCCP-Mo)-2.75 E .33 -.165(ve p)-.165 H(ack).165 E
(et requests that DCCP)-.11 E 2.75(Bs)100.8 419.6 S(tart sending pack)
-2.75 E(ets to the ne)-.11 E 2.75(wa)-.275 G(ddress and port number)
-2.75 E 2.75(.T)-.605 G(he old address and port are)-2.75 E(stored e)
100.8 432.6 Q(xplicitly in the DCCP-Mo)-.165 E .33 -.165(ve h)-.165 H
(eader; the ne).165 E 2.75(wa)-.275 G(ddress and port come from the)
-2.75 E(pack)100.8 445.6 Q(et')-.11 E 2.75(sn)-.605 G(etw)-2.75 E
(ork header and generic DCCP header)-.11 E 2.75(.T)-.605 G
(he old address')-2.75 E 2.75(st)-.605 G(ype is indicated)-2.75 E -.165
(ex)100.8 458.6 S(plicitly by an Old Address F).165 E
(amily \214eld. The Sequence Number and Ackno)-.165 E(wledgement)-.275 E
(Number \214elds and a mandatory Identi\214cation option pro)100.8 471.6
Q(vide some protection ag)-.165 E(ainst)-.055 E(hijack)100.8 484.6 Q
(ed connections. See Section 10 for more on security and DCCP')-.11 E
2.75(sm)-.605 G(obility support.)-2.75 E -.385(Ko)72 769 S(hler/Handle)
.385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 195.038(ye Section)-.055 F
2.75(5.9. [P)2.75 F(age 21])-.165 E 0 Cg EP
%%Page: 22 22
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E/F1 11
/Courier@0 SF 125.4(0123)107.4 85 S 6.6
(01234567890123456789012345678901)107.4 98 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
111 Q 112.2(/G)100.8 124 S(eneric DCCP Header \(12 bytes\))-112.2 E(/)
105.6 E 132(/w)100.8 137 S(ith Type=8 \(DCCP-Move\))-132 E(/)132 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
150 Q 19.8(|R)100.8 163 S 19.8(eserved |)-19.8 F(Acknowledgement Number)
72.6 E(|)92.4 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
176 Q 39.6(|O)100.8 189 S(ld Address Family)-39.6 E 72.6(|O)46.2 G
(ld Port)-72.6 E(|)79.2 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
202 Q 171.6(/O)100.8 215 S(ld Address)-171.6 E(/)171.6 E 310.2(//)100.8
228 S 13.2([padding] /)-290.4 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
241 Q 52.8(|O)100.8 254 S(ptions, including Identification)-52.8 E 19.8
(/[)39.6 G 13.2(padding] |)-19.8 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
267 Q 191.4(|d)100.8 280 S 191.4(ata |)-191.4 F 198(|.)100.8 293 S 191.4
(.. |)-198 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)100.8
306 Q/F2 11/Times-Bold@0 SF(Old Addr)100.8 328.6 Q(ess F)-.198 E
(amily: 16 bits)-.275 E F0(The Old Address F)129.6 341.6 Q
(amily \214eld indicates the address f)-.165 E
(amily formerly used for this)-.11 E(connection, and tak)129.6 354.6 Q
(es v)-.11 E(alues from the Address F)-.275 E(amily Numbers re)-.165 E
(gistry)-.165 E(administered by IAN)129.6 367.6 Q(A. P)-.385 E
(articular v)-.165 E(alues include 1 for IPv4 and 2 for IPv6.)-.275 E
(An)5.5 E(endpoint MUST discard DCCP-Mo)129.6 380.6 Q .33 -.165(ve p)
-.165 H(ack).165 E(ets with unrecognized Old Address)-.11 E -.165(Fa)
129.6 393.6 S(mily v).165 E(alues.)-.275 E F2(Old P)100.8 410.2 Q
(ort: 16 bits)-.22 E F0(The former port number used by DCCP A)129.6
423.2 Q 1.21 -.605('s e)-1.221 H(ndpoint.).605 E F2(Old Addr)100.8 439.8
Q(ess: at least 32 bits)-.198 E F0(The former address used by DCCP A)
129.6 452.8 Q 1.21 -.605('s e)-1.221 H
(ndpoint, padded on the right to a multiple of).605 E(32 bits. The form\
 and size of the address are determined by the Old Address F)129.6 465.8
Q(amily)-.165 E(\214eld. F)129.6 478.8 Q(or instance, if Old Address F)
-.165 E(amily is 1, then Old Address contains an IPv4)-.165 E
(address and tak)129.6 491.8 Q
(es 32 bits; if it is 2, then Old Address contains an IPv6 address and)
-.11 E(tak)129.6 504.8 Q(es 128 bits.)-.11 E F2(Options)100.8 521.4 Q F0
(Ev)129.6 534.4 Q(ery DCCP-Mo)-.165 E .33 -.165(ve p)-.165 H(ack).165 E
(et MUST include a v)-.11 E(alid Identi\214cation option \(see Section)
-.275 E(6.4\).)129.6 547.4 Q(DCCP B SHOULD respond to the DCCP-Mo)100.8
564 Q .33 -.165(ve w)-.165 H(ith a DCCP-Reset \(with Reason set to).165
E("In)100.8 577 Q -.275(va)-.44 G(lid Mo).275 E -.165(ve)-.165 G
("\) if an).165 E 2.75(yo)-.165 G 2.75(ft)-2.75 G(he follo)-2.75 E
(wing conditions holds:)-.275 E 13.224(\(1\) Neither)100.8 593.6 R
(the Old Address/Old Port combination nor the netw)2.75 E
(ork address/Source Port)-.11 E(combination refers to a currently acti)
129.6 606.6 Q .33 -.165(ve D)-.275 H(CCP connection.).165 E 13.224
(\(2\) The)100.8 623.2 R(Identi\214cation option is not present or in)
2.75 E -.275(va)-.44 G(lid.).275 E 13.224(\(3\) DCCP)100.8 639.8 R 2.75
(Bd)2.75 G(oes not support mobility)-2.75 E 2.75(,o)-.715 G 2.75(ri)
-2.75 G(ts Mobility Capable feature is of)-2.75 E(f.)-.275 E
(After recei)100.8 656.4 Q(ving such an in)-.275 E -.275(va)-.44 G
(lid DCCP-Mo).275 E -.165(ve)-.165 G 2.75(,D).165 G(CCP B MA)-2.75 E
2.75(Yi)-1.155 G(gnore subsequent DCCP-)-2.75 E(Mo)100.8 669.4 Q .33
-.165(ve p)-.165 H(ack).165 E(ets, v)-.11 E(alid or not, for a short pe\
riod of time, such as one round-trip time. This)-.275 E
(protects DCCP B ag)100.8 682.4 Q
(ainst denial-of-service attacks from \215oods of in)-.055 E -.275(va)
-.44 G(lid DCCP-Mo).275 E -.165(ve)-.165 G(s.).165 E
(DCCP B SHOULD respond to a v)100.8 699 Q(alid DCCP-Mo)-.275 E .33 -.165
(ve p)-.165 H(ack).165 E(et with a DCCP-Ack or DCCP-)-.11 E
(DataAck pack)100.8 712 Q(et ackno)-.11 E(wledging the mo)-.275 E -.165
(ve)-.165 G 2.75(.I).165 G 2.75(fD)-2.75 G(CCP B accepts the mo)-2.75 E
-.165(ve)-.165 G 2.75(,i).165 G 2.75(tM)-2.75 G(UST send this)-2.75 E
(ackno)100.8 725 Q(wledgement to the netw)-.275 E
(ork address/Source Port combination; if it rejects the mo)-.11 E -.165
(ve)-.165 G(,).165 E -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E
(yd/P)-.11 E(adh)-.165 E 195.038(ye Section)-.055 F 2.75(5.9. [P)2.75 F
(age 22])-.165 E 0 Cg EP
%%Page: 23 23
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(which it MA)100.8 85 Q 2.75(Yd)-1.155 G 2.75(of)-2.75 G(or an)-2.75 E
2.75(yr)-.165 G(eason, it MUST send the ackno)-2.75 E
(wledgement to the Old)-.275 E(Address/Old Port combination.)100.8 98 Q
(If the ackno)100.8 114.6 Q
(wledgement is lost, DCCP A might resend the DCCP-Mo)-.275 E .33 -.165
(ve p)-.165 H(ack).165 E(et \(using a)-.11 E(ne)100.8 127.6 Q 2.75(ws)
-.275 G(equence number\). DCCP B will detect this case because the netw)
-2.75 E(ork address/Source)-.11 E(Port combination corresponds to a v)
100.8 140.6 Q(alid connection, for which the Sequence Number and)-.275 E
(Ackno)100.8 153.6 Q(wledgement Number \214elds are v)-.275 E
(alid; the Identi\214cation option is v)-.275 E(alid for that)-.275 E(c\
onnection; and the Old Address/Old Port combination no longer refers to\
 a v)100.8 166.6 Q(alid DCCP)-.275 E 2.75(connection. It)100.8 179.6 R
(SHOULD respond by sending another ackno)2.75 E(wledgement, as allo)
-.275 E(wed by the)-.275 E(congestion control mechanism in use.)100.8
192.6 Q 1.76 -.88(We n)100.8 209.2 T(ote that DCCP mobility).88 E 2.75
(,a)-.715 G 2.75(sp)-2.75 G(ro)-2.75 E(vided by DCCP-Mo)-.165 E -.165
(ve)-.165 G 2.75(,m).165 G(ay not be useful in the)-2.75 E(conte)100.8
222.2 Q(xt of IPv6, with its mandatory support for Mobile IP)-.165 E(.)
-1.221 E/F1 11/Times-Bold@0 SF(6.)72 261.2 Q/F2 14/Times-Bold@0 SF
(Options and F)5.5 E(eatur)-.35 E(es)-.252 E F0(All DCCP pack)100.8
277.8 Q(ets may contain options, which occup)-.11 E 2.75(ys)-.11 G
(pace at the end of the DCCP)-2.75 E
(header and are a multiple of 8 bits in length. All options are al)100.8
290.8 Q -.11(wa)-.11 G(ys included in the).11 E
(checksum. An option may be)100.8 303.8 Q(gin on an)-.165 E 2.75(yb)
-.165 G(yte boundary)-2.75 E(.)-.715 E(The \214rst byte of an option is\
 the option type. Options with types 0 through 31 are single-)100.8
320.4 Q(byte options. Other options are follo)100.8 333.4 Q
(wed by a byte indicating the option')-.275 E 2.75(sl)-.605 G
(ength. This)-2.75 E(length v)100.8 346.4 Q(alue includes the tw)-.275 E
2.75(ob)-.11 G(ytes of option-type and option-length as well as an)-2.75
E 2.75(yo)-.165 G(ption-)-2.75 E
(data bytes, and MUST therefore be greater than or equal to tw)100.8
359.4 Q(o.)-.11 E(The follo)100.8 376 Q
(wing options are currently de\214ned:)-.275 E/F3 11/Courier@0 SF 171.6
(Option Section)196.2 395 R 19.8(Type Length)143.4 408 R 92.4
(Meaning Reference)33 F 19.8(---- ------)143.4 421 R 92.4
(------- ---------)33 F 52.8(01)156.6 434 S 105.6(Padding 6.1)-6.6 F
52.8(21)156.6 447 S(Slow Receiver)-6.6 E(8.6)72.6 E 39.6(32 3-4)150 460
R 105.6(Ignored 6.2)39.6 F 26.4(33 variable)150 473 R 112.2(Change 6.3)
19.8 F 26.4(34 variable)150 486 R 112.2(Prefer 6.3)19.8 F 26.4
(35 variable)150 499 R 105.6(Confirm 6.3)19.8 F 26.4(36 variable)150 512
R(Init Cookie)19.8 E(6.5)85.8 E 26.4(37 variable)150 525 R
(Ack Vector [Nonce 0])19.8 E(8.5)26.4 E 26.4(38 variable)150 538 R
(Ack Vector [Nonce 1])19.8 E(8.5)26.4 E 26.4(39 variable)150 551 R
(Data Dropped)19.8 E(8.7)79.2 E 46.2(40 6)150 564 R 92.4(Timestamp 6.6)
46.2 F 39.6(41 6-10)150 577 R(Timestamp Echo)33 E(6.8)66 E 26.4
(42 variable)150 590 R 59.4(Identification 6.4.3)19.8 F 26.4
(44 variable)150 603 R 92.4(Challenge 6.4.4)19.8 F 46.2(45 4)150 616 R
(Payload Checksum)46.2 E(8.8)52.8 E 39.6(46 4-6)150 629 R(Elapsed Time)
39.6 E(6.7)79.2 E 6.6(128-255 variable)136.8 642 R
(CCID-specific options)19.8 E(7.4)19.8 E F1(6.1.)72 674 Q/F4 13
/Times-Bold@0 SF -.13(Pa)5.5 G(dding Option).13 E F0(The padding option\
, with type 0, is a single byte option used to pad between or after)
100.8 690.6 Q(options. It either ensures the payload be)100.8 703.6 Q
(gins on a 32-bit boundary \(as required\), or ensures)-.165 E
(alignment of follo)100.8 716.6 Q(wing options \(not mandatory\).)-.275
E -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)
-.165 E 195.038(ye Section)-.055 F 2.75(6.1. [P)2.75 F(age 23])-.165 E 0
Cg EP
%%Page: 24 24
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E/F1 11
/Courier@0 SF(+--------+)100.8 85 Q(|00000000|)100.8 98 Q(+--------+)
100.8 111 Q(Type=0)114 124 Q/F2 11/Times-Bold@0 SF(6.2.)72 156 Q/F3 13
/Times-Bold@0 SF(Ignor)5.5 E(ed Option)-.234 E F0(The Ignored option, w\
ith type 32, signals that a DCCP did not understand some option.)100.8
172.6 Q(This can happen, for e)100.8 185.6 Q(xample, when a con)-.165 E
-.165(ve)-.44 G(ntional DCCP con).165 E -.165(ve)-.44 G(rses with an e)
.165 E(xtended)-.165 E(DCCP)100.8 198.6 Q 2.75(.E)-1.221 G
(ach Ignored option has one or tw)-2.75 E 2.75(ob)-.11 G
(ytes of data. The \214rst byte contains the)-2.75 E(of)100.8 211.6 Q(f\
ending option type; the second, if present, contains the \214rst byte o\
f the of)-.275 E(fending)-.275 E(option')100.8 224.6 Q 2.75(sd)-.605 G
(ata. If the of)-2.75 E
(fending option had no data, the Ignored option MA)-.275 E 2.75(Ys)
-1.155 G(till supply tw)-2.75 E(o)-.11 E
(bytes of data, with the second byte set to 0.)100.8 237.6 Q
(Ignored options SHOULD be sent only on pack)100.8 254.2 Q
(ets that contain Ackno)-.11 E(wledgement)-.275 E(Numbers \(that is, DC\
CP-Reponse, DCCP-Ack, DCCP-DataAck, DCCP-Close, DCCP-)100.8 267.2 Q
(CloseReq, DCCP-Reset, and DCCP-Mo)100.8 280.2 Q -.165(ve)-.165 G
(\), and SHOULD concern options sent on the).165 E(pack)100.8 293.2 Q
(et ackno)-.11 E(wledged by the Ackno)-.275 E(wledgement Number)-.275 E
(.)-.605 E F1(+--------+--------+--------+)100.8 312.2 Q
(|00100000|00000011|Opt Type|)100.8 325.2 Q
(+--------+--------+--------+)100.8 338.2 Q 6.6(Type=32 Length=3)107.4
351.2 R(+--------+--------+--------+--------+)100.8 377.2 Q
(|00100000|00000100|Opt Type|Opt Data|)100.8 390.2 Q
(+--------+--------+--------+--------+)100.8 403.2 Q 6.6
(Type=32 Length=4)107.4 416.2 R F2(6.3.)72 461.2 Q F3 -.325(Fe)5.5 G
(atur).325 E 3.25(eN)-.234 G(egotiation)-3.25 E F0
(DCCP contains a mechanism for reliably ne)100.8 477.8 Q
(gotiating features, notably the congestion)-.165 E
(control mechanism in use on each half-connection. The moti)100.8 490.8
Q -.275(va)-.275 G(tion is to implement reliable).275 E(feature ne)100.8
503.8 Q(gotiation once, so that dif)-.165 E
(ferent options need not rein)-.275 E -.165(ve)-.44 G(nt that wheel.)
.165 E(Three options, Change, Prefer)100.8 520.4 Q 2.75(,a)-.44 G
(nd Con\214rm, implement feature ne)-2.75 E 2.75(gotiation. Change)-.165
F(is sent)2.75 E(to a feature')100.8 533.4 Q 2.75(sl)-.605 G
(ocation, asking it to change the feature')-2.75 E 2.75(sv)-.605 G
(alue. The feature location may)-3.025 E(respond with Prefer)100.8 546.4
Q 2.75(,w)-.44 G(hich asks the other endpoint to Change ag)-2.75 E
(ain with dif)-.055 E(ferent v)-.275 E(alues,)-.275 E
(or it may change the feature v)100.8 559.4 Q(alue and ackno)-.275 E
(wledge the request with Con\214rm.)-.275 E(Feature v)100.8 576 Q
(alues MUST NO)-.275 E 2.75(Tc)-.44 G(hange apart from feature ne)-2.75
E(gotiation, and enforced)-.165 E(retransmissions mak)100.8 589 Q 2.75
(ef)-.11 G(eature ne)-2.75 E
(gotiation reliable. This ensures that both endpoints)-.165 E -2.365
-.275(ev e)100.8 602 T(ntually agree on e).275 E -.165(ve)-.275 G
(ry feature').165 E 2.75(sv)-.605 G(alue.)-3.025 E
(Some features are non-ne)100.8 618.6 Q
(gotiable, meaning that the feature location MUST set its v)-.165 E
(alue to)-.275 E(whate)100.8 631.6 Q -.165(ve)-.275 G 2.75(rt).165 G
(he other endpoint requests. F)-2.75 E(or non-ne)-.165 E
(gotiable features, the feature location)-.165 E(MUST respond to Change\
 options with Con\214rm; Prefer is not useful. These features use)100.8
644.6 Q(the feature frame)100.8 657.6 Q -.11(wo)-.275 G
(rk simply to achie).11 E .33 -.165(ve r)-.275 H(eliability).165 E(.)
-.715 E(Ne)100.8 674.2 Q(gotiations for multiple features may tak)-.165
E 2.75(ep)-.11 G(lace simultaneously)-2.75 E 2.75(.F)-.715 G
(or instance, a pack)-2.915 E(et)-.11 E
(may contain multiple Change options that refer to dif)100.8 687.2 Q
(ferent features.)-.275 E(Feature ne)100.8 703.8 Q
(gotiation generally tak)-.165 E(es place using pack)-.11 E
(et types that carry no user data, such as)-.11 E
(DCCP-Ack, particularly when the rele)100.8 716.8 Q -.275(va)-.275 G
(nt feature may af).275 E(fect ho)-.275 E 2.75(wd)-.275 G
(ata will be treated.)-2.75 E -.385(Ko)72 769 S(hler/Handle).385 E
(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 195.038(ye Section)-.055 F 2.75
(6.3. [P)2.75 F(age 24])-.165 E 0 Cg EP
%%Page: 25 25
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E/F1 11
/Times-Bold@0 SF 2.75(6.3.1. F)72 85 R(eatur)-.275 E 2.75(eN)-.198 G
(umbers)-2.75 E F0(The \214rst data byte of e)100.8 101.6 Q -.165(ve)
-.275 G(ry Change, Prefer).165 E 2.75(,o)-.44 G 2.75(rC)-2.75 G
(on\214rm option is a feature number)-2.75 E 2.75(,d)-.44 G(e\214ning)
-2.75 E(the type of feature being ne)100.8 114.6 Q
(gotiated. The remainder of the data gi)-.165 E -.165(ve)-.275 G 2.75
(so).165 G(ne or more v)-2.75 E(alues for)-.275 E(the feature, and is i\
nterpreted according to the feature. The current set of feature numbers\
 is)100.8 127.6 Q(as follo)100.8 140.6 Q(ws:)-.275 E/F2 11/Courier@0 SF
(Section)407.4 159.6 Q 6.6(Number Meaning)143.4 172.6 R 6.6
(Neg.? Reference)118.8 F 6.6(------ -------)143.4 185.6 R 6.6
(----- ---------)118.8 F 33(1C)156.6 198.6 S(ongestion Control \(CC\))
-33 E 39.6(Y7)26.4 G 33(2E)156.6 211.6 S(CN Capable)-33 E 39.6(Y9)105.6
G(.1)-39.6 E 33(3A)156.6 224.6 S(ck Ratio)-33 E 39.6(N8)118.8 G(.3)-39.6
E 33(4U)156.6 237.6 S(se Ack Vector)-33 E 39.6(Y8)85.8 G(.4)-39.6 E 33
(5M)156.6 250.6 S(obility Capable)-33 E 39.6(Y1)72.6 G(0.1)-39.6 E 33
(6L)156.6 263.6 S(oss Window)-33 E 39.6(N6)105.6 G(.9)-39.6 E 33(7C)
156.6 276.6 S(onnection Nonce)-33 E 39.6(N6)72.6 G(.4.2)-39.6 E 33(8I)
156.6 289.6 S(dentification Regime)-33 E 39.6(Y6)39.6 G(.4.1)-39.6 E 6.6
(128-255 CCID-Specific)136.8 302.6 R 26.4(Features ?)6.6 F(7.4)39.6 E F0
(The "Ne)100.8 325.2 Q
(g[otiable]?" column is "Y" for normal features and "N" for non-ne)-.165
E(gotiable)-.165 E(features.)100.8 338.2 Q F1 2.75(6.3.2. Change)72
364.2 R(Option)2.75 E F0
(DCCP A sends a Change option to DCCP B to ask it to change the v)100.8
380.8 Q(alue of some feature)-.275 E
(located at DCCP B. DCCP B SHOULD respond to a Change option for a kno)
100.8 393.8 Q(wn feature)-.275 E(with either Prefer or Con\214rm.)100.8
406.8 Q(In special circumstances, such as a Change option whose)5.5 E
-.275(va)100.8 419.8 S
(lue is inappropriate for the listed feature number or a ne).275 E
(gotiation that seems to be going)-.165 E(on fore)100.8 432.8 Q -.165
(ve)-.275 G .88 -.44(r, D).165 H(CCP B MA).44 E 2.75(Yr)-1.155 G
(espond instead by ignoring the Change \(with or without)-2.75 E(sendin\
g an Ignored option\), or by resetting the connection with Reason set t\
o "Fruitless)100.8 445.8 Q(Ne)100.8 458.8 Q
(gotiation" or "Feature Error".)-.165 E
(DCCP A SHOULD retransmit the Change option until it)5.5 E(recei)100.8
471.8 Q -.165(ve)-.275 G 2.75(ss).165 G(ome rele)-2.75 E -.275(va)-.275
G(nt response. DCCP A will al).275 E -.11(wa)-.11 G
(ys generate a Change option in).11 E(response to a Prefer option; it m\
ay also generate a Change option due to some application)100.8 484.8 Q
-2.365 -.275(ev e)100.8 497.8 T(nt.).275 E F2
(+--------+--------+--------+--------+--------+--------)100.8 516.8 Q
(|00100001| Length |Feature#| Value or Values ...)100.8 529.8 Q
(+--------+--------+--------+--------+--------+--------)100.8 542.8 Q
(Type=33)107.4 555.8 Q F1 2.75(6.3.3. Pr)72 587.8 R(efer Option)-.198 E
F0(DCCP A sends a Prefer option to DCCP B to ask it to choose another v)
100.8 604.4 Q(alue for some)-.275 E
(feature located at DCCP B. DCCP B SHOULD respond to a v)100.8 617.4 Q
(alid Prefer option with a)-.275 E(Change; other possible responses inc\
lude ignoring the option, sending an Ignored option,)100.8 630.4 Q
(or resetting the connection, as described abo)100.8 643.4 Q -.165(ve)
-.165 G 5.5(.D).165 G(CCP A SHOULD retransmit the Prefer)-5.5 E
(option until it recei)100.8 656.4 Q -.165(ve)-.275 G 2.75(ss).165 G
(ome rele)-2.75 E -.275(va)-.275 G
(nt response. DCCP A may generate a Prefer option in).275 E
(response to some Change option, or in response to some application e)
100.8 669.4 Q -.165(ve)-.275 G 2.75(nt. Prefer).165 F(options)2.75 E
(are not useful for non-ne)100.8 682.4 Q(gotiable features.)-.165 E
-.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165
E 186.788(ye Section)-.055 F 2.75(6.3.3. [P)2.75 F(age 25])-.165 E 0 Cg
EP
%%Page: 26 26
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E/F1 11
/Courier@0 SF(+--------+--------+--------+--------+--------+--------)
100.8 85 Q(|00100010| Length |Feature#| Value or Values ...)100.8 98 Q
(+--------+--------+--------+--------+--------+--------)100.8 111 Q
(Type=34)107.4 124 Q/F2 11/Times-Bold@0 SF 2.75(6.3.4. Con\214rm)72 156
R(Option)2.75 E F0(DCCP A sends a Con\214rm option to DCCP B to inform \
it that a Change option for some)100.8 172.6 Q
(feature located at DCCP A has been accepted.)100.8 185.6 Q
(Generally the Con\214rm option will include)5.5 E(the feature')100.8
198.6 Q 2.75(sa)-.605 G(ccepted v)-2.75 E(alue. F)-.275 E
(or some special features, such as Connection Nonce, a)-.165 E
(Con\214rm option contains no data; these features are identi\214ed e)
100.8 211.6 Q(xplicitly)-.165 E 5.5(.D)-.715 G(CCP A MUST)-5.5 E
(generate Con\214rm options only in response to v)100.8 224.6 Q
(alid Change options. DCCP A SHOULD)-.275 E(NO)100.8 237.6 Q 2.75(Tr)
-.44 G(etransmit Con\214rm options: DCCP B will retransmit the rele)
-2.75 E -.275(va)-.275 G(nt Changes as).275 E(necessary)100.8 250.6 Q
2.75(.T)-.715 G(he receipt of a v)-2.75 E
(alid Con\214rm option ends the ne)-.275 E(gotiation o)-.165 E -.165(ve)
-.165 G 2.75(raf).165 G(eature')-2.75 E 2.75(sv)-.605 G(alue.)-3.025 E
F1(+--------+--------+--------+--------+--------+--------)100.8 269.6 Q
(|00100011| Length |Feature#| Value ...)100.8 282.6 Q
(+--------+--------+--------+--------+--------+--------)100.8 295.6 Q
(Type=35)107.4 308.6 Q F2 2.75(6.3.5. Example)72 340.6 R(Negotiations)
2.75 E F0(This section demonstrates se)100.8 357.2 Q -.165(ve)-.275 G
(ral ne).165 E(gotiations of the congestion control feature for the A-)
-.165 E(to-B half-connection. \(This feature is located at DCCP A.\) In\
 this sequence of pack)100.8 370.2 Q(ets,)-.11 E(DCCP A is happ)100.8
383.2 Q 2.75(yw)-.11 G(ith DCCP B')-2.75 E 2.75(ss)-.605 G
(uggestion of CC mechanism 2:)-2.75 E F1 6.6 6.6(B>A C)136.8 402.2 T
(hange\(CC, 2\))-6.6 E 6.6 6.6(A>B C)136.8 415.2 T(onfirm\(CC, 2\))-6.6
E F0(Here, A and B jointly settle on CC mechanism 5:)100.8 437.8 Q F1
6.6 6.6(B>A C)136.8 456.8 T(hange\(CC, 3, 4\))-6.6 E 6.6 6.6(A>B P)136.8
469.8 T(refer\(CC, 1, 2, 5\))-6.6 E 6.6 6.6(B>A C)136.8 482.8 T
(hange\(CC, 5\))-6.6 E 6.6 6.6(A>B C)136.8 495.8 T(onfirm\(CC, 5\))-6.6
E F0(In this sequence, A refuses to use CC mechanism 5. If this sequenc\
e continued, one or the)100.8 518.4 Q(other endpoint w)100.8 531.4 Q
(ould e)-.11 E -.165(ve)-.275 G
(ntually abort the connection via a DCCP-Reset pack).165 E(et with)-.11
E(Reason set to "Fruitless Ne)100.8 544.4 Q(gotiation":)-.165 E F1 6.6
6.6(B>A C)136.8 563.4 T(hange\(CC, 3, 4, 5\))-6.6 E 6.6 6.6(A>B P)136.8
576.4 T(refer\(CC, 1, 2\))-6.6 E 6.6 6.6(B>A C)136.8 589.4 T
(hange\(CC, 5\))-6.6 E 6.6 6.6(A>B P)136.8 602.4 T(refer\(CC, 1, 2\))
-6.6 E F0(Here, A elicits agreement from B that it is satis\214ed with \
congestion control mechanism 2:)100.8 625 Q F1 6.6 6.6(A>B P)136.8 644 T
(refer\(CC, 1, 2\))-6.6 E 6.6 6.6(B>A C)136.8 657 T(hange\(CC, 2\))-6.6
E 6.6 6.6(A>B C)136.8 670 T(onfirm\(CC, 2\))-6.6 E F0 -.385(Ko)72 769 S
(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 186.788
(ye Section)-.055 F 2.75(6.3.5. [P)2.75 F(age 26])-.165 E 0 Cg EP
%%Page: 27 27
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E/F1 11
/Times-Bold@0 SF 2.75(6.3.6. Unkno)72 85 R(wn F)-.11 E(eatur)-.275 E(es)
-.198 E F0(If a DCCP recei)100.8 101.6 Q -.165(ve)-.275 G 2.75(saC).165
G(hange or Prefer option referring to a feature number it does not)-2.75
E(understand, it MUST respond with an Ignored option.)100.8 114.6 Q
(This informs the remote DCCP that)5.5 E(the local DCCP does not implem\
ent the feature. No other action need be tak)100.8 127.6 Q
(en. \(Ignored)-.11 E(may also indicate that the DCCP endpoint could no\
t respond to a CCID-speci\214c feature)100.8 140.6 Q
(request because the CCID w)100.8 153.6 Q
(as in \215ux; see Section 7.4.\))-.11 E F1 2.75(6.3.7. State)72 179.6 R
(Diagram)2.75 E F0(These state diagrams present the le)100.8 196.2 Q
-.055(ga)-.165 G 2.75(lt).055 G(ransitions in a DCCP feature ne)-2.75 E
(gotiation. The)-.165 E(y)-.165 E(de\214ne DCCP')100.8 209.2 Q 2.75(ss)
-.605 G(tates and transitions with respect to the ne)-2.75 E
(gotiation of a single feature it)-.165 E(understands. There are tw)
100.8 222.2 Q 2.75(od)-.11 G(iagrams, corresponding to the tw)-2.75 E
2.75(oe)-.11 G(ndpoints: the feature)-2.75 E
(location DCCP A, and what we call the "feature requester", DCCP B.)
100.8 235.2 Q -.385(Tr)100.8 251.8 S
(ansitions between states are triggered by recei).385 E(ving a pack)
-.275 E(et \(")-.11 E/F2 11/Courier@0 SF(RECV)A F0("\) or by an)A
(application e)100.8 264.8 Q -.165(ve)-.275 G(nt \(").165 E F2(APP)A F0
("\). Recei)A -.165(ve)-.275 G 2.75(dp).165 G(ack)-2.75 E
(ets are further distinguished by an)-.11 E 2.75(yo)-.165 G(ptions)-2.75
E(rele)100.8 277.8 Q -.275(va)-.275 G(nt to the feature being ne).275 E
(gotiated. ")-.165 E F2(RECV -)A F0 2.75("m)C(eans the pack)-2.75 E
(et contained no rele)-.11 E -.275(va)-.275 G(nt).275 E 2.75(option. ")
100.8 290.8 R F2(RECV Chg)A F0 2.75("d)C(enotes a Change option, ")-2.75
E F2(RECV Pr)A F0 2.75("aP)C(refer option, and ")-2.75 E F2(RECV)A(Cfm)
100.8 303.8 Q F0 2.75("aC)C
(on\214rm option. The data contained in an option is gi)-2.75 E -.165
(ve)-.275 G 2.75(ni).165 G 2.75(np)-2.75 G(arentheses when)-2.75 E
(necessary)100.8 316.8 Q 2.75(.T)-.715 G(he ")-2.75 E F2(SEND)A F0 2.75
("a)C(ction indicates which option the DCCP will send ne)-2.75 E
(xt. Finally)-.165 E 2.75(,t)-.715 G(he)-2.75 E(")100.8 329.8 Q F2
(SET-VALUE)A F0 2.75("a)C(ction causes the DCCP to change its v)-2.75 E
(alue for the rele)-.275 E -.275(va)-.275 G(nt feature.).275 E(")100.8
346.4 Q F2(SEND)A F0 2.75("d)C
(oes not force DCCP to immediately generate a pack)-2.75 E(et; rather)
-.11 E 2.75(,i)-.44 G 2.75(ts)-2.75 G(ays which)-2.75 E
(feature option must be sent on the ne)100.8 359.4 Q(xt pack)-.165 E
(et generated. A DCCP MA)-.11 E 2.75(Yc)-1.155 G(hoose to)-2.75 E
(generate a pack)100.8 372.4 Q(et in response to some ")-.11 E F2(SEND)A
F0 2.75("a)C(ction. Ho)-2.75 E(we)-.275 E -.165(ve)-.275 G .88 -.44
(r, i).165 H 2.75(tM).44 G(UST NO)-2.75 E 2.75(Tg)-.44 G(enerate a)-2.75
E(pack)100.8 385.4 Q(et if doing so w)-.11 E
(ould violate the congestion control mechanism in use.)-.11 E
(The requester)100.8 402 Q 2.75(,D)-.44 G(CCP B, has four states: Kno)
-2.75 E(wn, Unkno)-.275 E(wn, F)-.275 E(ailed, and Changing.)-.165 E
(Similarly)100.8 415 Q 2.75(,t)-.715 G
(he feature location, DCCP A, has four states: Kno)-2.75 E(wn, Unkno)
-.275 E(wn, F)-.275 E(ailed, and)-.165 E
(Con\214rming. In both cases, Kno)100.8 428 Q
(wn denotes a state where the DCCP kno)-.275 E(ws the feature')-.275 E
(s)-.605 E(current v)100.8 441 Q(alue, and belie)-.275 E -.165(ve)-.275
G 2.75(st).165 G(hat the other DCCP agrees.)-2.75 E
(Changing and Con\214rming denote)5.5 E
(states where the DCCPs are in the process of ne)100.8 454 Q
(gotiating a ne)-.165 E 2.75(wv)-.275 G(alue for the feature. The)-3.025
E(Unkno)100.8 467 Q(wn state can occur only at connection setup time. I\
t denotes a state where the DCCP)-.275 E(does not kno)100.8 480 Q 2.75
(wa)-.275 G .33 -.165(ny v)-2.75 H
(alue for the feature, and has not yet entered a ne)-.11 E
(gotiation to determine)-.165 E(its v)100.8 493 Q(alue. Finally)-.275 E
2.75(,t)-.715 G(he F)-2.75 E
(ailed state represents a state where the other DCCP does not)-.165 E
(implement the feature under ne)100.8 506 Q(gotiation.)-.165 E 2.75(AD)
100.8 522.6 S(CCP may start in either the Unkno)-2.75 E(wn or Kno)-.275
E(wn state, depending on the feature in)-.275 E(question. In particular)
100.8 535.6 Q 2.75(,s)-.44 G(ome features ha)-2.75 E .33 -.165(ve a w)
-.22 H(ell-kno).165 E(wn v)-.275 E(alue for ne)-.275 E 2.75(wc)-.275 G
(onnections, in)-2.75 E(which case the DCCPs be)100.8 548.6 Q
(gin the connection in the Kno)-.165 E(wn states.)-.275 E -.385(Ko)72
769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 186.788
(ye Section)-.055 F 2.75(6.3.7. [P)2.75 F(age 27])-.165 E 0 Cg EP
%%Page: 28 28
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E/F1 11
/Courier@0 SF(REQUESTER STATE DIAGRAM \(DCCP B\))204 85 Q(+-----------+)
230.4 111 Q 13.2(|U)230.4 124 S 6.6(nknown |)-13.2 F(+-----------+)230.4
137 Q 72.6(+----------+ |)111.6 150 R(+-----------+)132 E 66(||)111.6
163 S(RECV -)-66 E(|RECV -/Pr | APP)39.6 E 72.6(||)33 G(RECV Pr/Cfm)
-72.6 E 66(V|)111.6 176 S(SEND -)-66 E(|SEND Chg)39.6 E 72.6(V|)79.2 G
(SEND Chg)-72.6 E 19.8(+-----------+ |)72 189 R 85.8(|+)79.2 G 26.4
(------------+ |)-85.8 F 72.6(||)72 202 S 72.6
(----+ +------------>| |-----+)-72.6 F 19.8(|K)72 215 S 13.2
(nown |------------------------------>|)-19.8 F 6.6(Changing |)13.2 F
72.6(||)72 228 S(RECV Pr | APP)-19.8 E 79.2(||)66 G(-----+)-79.2 E 59.4
(+-----------+ SEND)72 241 R 79.2(Chg +------------+)6.6 F(|RECV -)33 E
277.2(^|)111.6 254 S 39.6 6.6(|^ |)-270.6 H(SEND -/Chg)-6.6 E 277.2(||)
111.6 267 S 39.6 6.6(|| |)-270.6 H
(+------------------------------------------+ | +---------+)111.6 280 Q
(RECV Cfm\(O\))223.8 293 Q 66(|+)112.2 G(----------+)-66 E(SEND -)223.8
306 Q 6.6(+--------->| Failed |)145.2 F(SET-VALUE O)223.8 319 Q
(RECV Ign)118.8 E(+----------+)13.2 E(SEND -)415.2 332 Q
(FEATURE LOCATION STATE DIAGRAM \(DCCP A\))190.8 370 Q(\(O represents a\
ny feature value acceptable to DCCP A; X is not acceptable.\))72 383 Q
(RECV Chg\(O\))124.8 422 Q(SEND Cfm\(O\))124.8 435 Q(RECV -)125.4 E 13.2
(|A)13.2 G(PP)-13.2 E(SET-VALUE O)124.8 448 Q
(+-----------+ SEND Pr\(O\))33 E 6.6
(+--------------------| Unknown |------------+)91.8 461 R 132(|+)91.8
474 S 72.6(-----------+ |)-132 F 33(|+)91.8 487 S 72.6(-------+ |)-33 F
6.6(|+)118.8 G(-----------+)-6.6 E -26.4 33(|| |)91.8 500 T(RECV -)-33 E
(|RECV Chg\(X\))39.6 E 52.8 6.6(|| |)46.2 H(RECV Chg\(X\))-6.6 E -26.4
33(VV |)91.8 513 T(SEND -)-33 E(|SEND Pr\(O\))39.6 E 52.8 6.6(VV |)52.8
H(SEND Pr\(O\))-6.6 E 19.8(+-----------+ |)72 526 R 85.8(|+)79.2 G 26.4
(------------+ |)-85.8 F(\(need not be)13.2 E 72.6(||)72 539 S 72.6
(----+ +------------>| |-----+)-72.6 F(the same O\))19.8 E 19.8(|K)72
552 S 13.2(nown |------------------------------>|)-19.8 F(Confirming |)
6.6 E 72.6(||)72 565 S 26.4(----+ RECV)-72.6 F 6.6(Chg | APP)6.6 F 79.2
(||)33 G(-----+)-79.2 E 19.8(+-----------+ |)72 578 R(SEND Pr\(O\))52.8
E 26.4(+------------+ |RECV)52.8 F(-)6.6 E -26.4 33(^^ |)91.8 591 T 39.6
6.6(||^ |)171.6 H(SEND -/Pr\(O\))-6.6 E -26.4 33(|| |)91.8 604 T
(RECV Chg\(O\))-33 E 39.6 6.6(||| |)132 H -26.4 33(|| |)91.8 617 T
(SEND Cfm\(O\))-33 E 6.6(||+)132 G(---------+)-6.6 E -26.4 33(|| |)91.8
630 T(SET-VALUE O)-33 E 6.6(||)132 G 33(|+)91.8 643 S 198(-------+ |)-33
F 59.4(|+)6.6 G(----------+)-59.4 E
(+---------------------------------------------+ +-------->|)91.8 656 Q
6.6(Failed |)13.2 F(RECV Chg\(O\))190.8 669 Q(RECV Ign +----------+)
151.8 E(SEND Cfm\(O\))190.8 682 Q(SEND -)151.8 E(SET-VALUE O)190.8 695 Q
F0 -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)
-.165 E 186.788(ye Section)-.055 F 2.75(6.3.7. [P)2.75 F(age 28])-.165 E
0 Cg EP
%%Page: 29 29
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(This speci\214cation allo)100.8 85 Q(ws se)-.275 E -.165(ve)-.275 G
(ral choices of action in certain states. The implementation).165 E
(will generally use feature-speci\214c information to decide ho)100.8 98
Q 2.75(wt)-.275 G 2.75(or)-2.75 G(espond. F)-2.75 E(or e)-.165 E
(xample,)-.165 E(DCCP A in the Kno)100.8 111 Q
(wn state may respond to a Change option with either Con\214rm or)-.275
E(Prefer)100.8 124 Q 2.75(.I)-.605 G 2.75(fD)-2.75 G
(CCP A is willing to set the feature to the v)-2.75 E
(alue speci\214ed by Change, it will)-.275 E
(generally send Con\214rm; b)100.8 137 Q(ut if it w)-.22 E(ould lik)-.11
E 2.75(et)-.11 G 2.75(on)-2.75 G -.165(eg)-2.75 G(otiate further).165 E
2.75(,i)-.44 G 2.75(tw)-2.75 G(ill send Prefer)-2.75 E(.)-.605 E(DCCP B\
 retransmits Change options, and DCCP A retransmits Prefer options, unt\
il)100.8 153.6 Q(recei)100.8 166.6 Q(ving a rele)-.275 E -.275(va)-.275
G(nt response. Ho).275 E(we)-.275 E -.165(ve)-.275 G .88 -.44(r, t).165
H(he).44 E 2.75(yn)-.165 G(eed not retransmit the option on e)-2.75 E
-.165(ve)-.275 G(ry).165 E(pack)100.8 179.6 Q(et, as sho)-.11 E
(wn by the ")-.275 E/F1 11/Courier@0 SF(RECV - / SEND -)A F0 2.75("t)C
(ransitions in the Changing and)-2.75 E(Con\214rming states.)100.8 192.6
Q(These state diagrams guarantee safety)100.8 209.2 Q 2.75(,b)-.715 G
(ut not li)-2.97 E -.165(ve)-.275 G(ness. Namely).165 E 2.75(,n)-.715 G
2.75(ou)-2.75 G(ne)-2.75 E(xpected or)-.165 E
(erroneous options will be sent, b)100.8 222.2 Q(ut option ne)-.22 E
(gotiation might not terminate. F)-.165 E(or e)-.165 E(xample,)-.165 E
(the follo)100.8 235.2 Q(wing in\214nite ne)-.275 E(gotiation is le)
-.165 E -.055(ga)-.165 G 2.75(la).055 G
(ccording to this speci\214cation.)-2.75 E F1 6.6 6.6(A>B P)100.8 254.2
T(refer\(1\))-6.6 E 6.6 6.6(B>A C)100.8 267.2 T(hange\(2\))-6.6 E 6.6
6.6(A>B P)100.8 280.2 T(refer\(1\))-6.6 E 6.6 6.6(B>A C)100.8 293.2 T
(hange\(2\)...)-6.6 E F0(Implementations MA)100.8 315.8 Q 2.75(Yc)-1.155
G(hoose to enforce a maximum length on an)-2.75 E 2.75(yn)-.165 G -.165
(eg)-2.75 G(otiation---for).165 E -.165(ex)100.8 328.8 S
(ample, by resetting the connection when an).165 E 2.75(yn)-.165 G -.165
(eg)-2.75 G(otiation lasts more than some maximum).165 E
(time. The DCCP-Reset Reason "Fruitless Ne)100.8 341.8 Q
(gotiation" SHOULD be used to signal that a)-.165 E(connection w)100.8
354.8 Q(as aborted because of a ne)-.11 E(gotiation that took too long.)
-.165 E(In the Changing and Con\214rming states, the v)100.8 371.4 Q
(alue of the corresponding feature is in \215ux.)-.275 E(DCCP MA)100.8
384.4 Q 2.75(Yc)-1.155 G(hange its beha)-2.75 E
(vior in these states---for e)-.22 E(xample, by refusing to send data)
-.165 E(until reentering a Kno)100.8 397.4 Q(wn state.)-.275 E/F2 11
/Times-Bold@0 SF(6.4.)72 423.4 Q/F3 13/Times-Bold@0 SF
(Identi\214cation Options)5.5 E F0(The Identi\214cation options pro)
100.8 440 Q(vide a w)-.165 E
(ay for DCCP endpoints to con\214rm each others')-.11 E(identities, e)
100.8 453 Q -.165(ve)-.275 G 2.75(na).165 G
(fter changes of address \(Section 10\) or long b)-2.75 E
(ursts of loss that get the)-.22 E
(endpoints out of sync \(Section 5.2\). Ag)100.8 466 Q
(ain, DCCP as speci\214ed here does not pro)-.055 E(vide)-.165 E
(cryptographic security guarantees, and attack)100.8 479 Q
(ers that can see e)-.11 E -.165(ve)-.275 G(ry pack).165 E
(et are still capable)-.11 E
(of manipulating DCCP connections inappropriately)100.8 492 Q 2.75(,b)
-.715 G(ut the Identi\214cation options mak)-2.97 E 2.75(ei)-.11 G(t)
-2.75 E(more dif)100.8 505 Q
(\214cult for some kinds of attacks to succeed.)-.275 E
(The Identi\214cation option is used to pro)100.8 521.6 Q .33 -.165
(ve a)-.165 H 2.75(ne).165 G(ndpoint')-2.75 E 2.75(si)-.605 G(dentity)
-2.75 E 2.75(,w)-.715 G(hile a Challenge option)-2.75 E(elicits an Iden\
ti\214cation from the other endpoint. An Identi\214cation Re)100.8 534.6
Q(gime determines ho)-.165 E(w)-.275 E
(the Identi\214cations are calculated. In the def)100.8 547.6 Q
(ault MD5 Re)-.11 E(gime, the calculation in)-.165 E -.22(vo)-.44 G(lv)
.22 E(es an)-.165 E(MD5 hash o)100.8 560.6 Q -.165(ve)-.165 G 2.75(rp)
.165 G(ack)-2.75 E(et data and tw)-.11 E 2.75(oC)-.11 G
(onnection Nonces e)-2.75 E(xchanged at the be)-.165 E(ginning of the)
-.165 E(connection.)100.8 573.6 Q F2 2.75(6.4.1. Identi\214cation)72
599.6 R(Regime F)2.75 E(eatur)-.275 E(e)-.198 E F0(Identi\214cation Re)
100.8 616.2 Q(gime has feature number 8. The ID Re)-.165 E
(gime feature located at DCCP B)-.165 E(speci\214es the algorithm that \
DCCP A will use for its Identi\214cation options. Each endpoint)100.8
629.2 Q(must k)100.8 642.2 Q(eep track of both its ID re)-.11 E
(gime and, via the ID Re)-.165 E(gime feature, the re)-.165 E
(gime used by)-.165 E(the other endpoint.)100.8 655.2 Q(The v)100.8
671.8 Q(alue of ID Re)-.275 E(gime is a tw)-.165 E(o-byte number)-.11 E
2.75(,s)-.44 G 2.75(oav)-2.75 G(alid Con\214rm\(ID Re)-3.025 E
(gime\) option tak)-.165 E(es)-.11 E -.165(ex)100.8 684.8 S
(actly four bytes. Change or Prefer options MA).165 E 2.75(Yl)-1.155 G
(ist multiple ID Re)-2.75 E(gimes in descending)-.165 E
(order of preference.)100.8 697.8 Q(ID Re)5.5 E(gime def)-.165 E
(aults to 0, the MD5 Re)-.11 E(gime. Applications preferring)-.165 E
(dif)100.8 710.8 Q(ferent security guarantees, particularly around mobi\
lity issues, may prefer to implement)-.275 E
(another identi\214cation algorithm and assign it a dif)100.8 723.8 Q
(ferent ID Re)-.275 E(gime v)-.165 E(alue.)-.275 E -.385(Ko)72 769 S
(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 186.788
(ye Section)-.055 F 2.75(6.4.1. [P)2.75 F(age 29])-.165 E 0 Cg EP
%%Page: 30 30
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(The ID Re)100.8 85 Q(gime feature is ne)-.165 E
(gotiable, so an endpoint can request that the other endpoint use)-.165
E 2.75(ap)100.8 98 S(articular ID Re)-2.75 E
(gime, or one of a set of Re)-.165 E
(gimes, by sending a Prefer option. If the)-.165 E
(endpoints cannot agree on mutually acceptable ID Re)100.8 111 Q
(gimes, the connection SHOULD be)-.165 E(reset due to "Fruitless Ne)
100.8 124 Q(gotiation".)-.165 E/F1 11/Times-Bold@0 SF 2.75
(6.4.2. Connection)72 150 R(Nonce F)2.75 E(eatur)-.275 E(e)-.198 E F0(C\
onnection Nonce has feature number 7. The Connection Nonce feature loca\
ted at DCCP)100.8 166.6 Q 2.75(Bi)100.8 179.6 S 2.75(st)-2.75 G(he v)
-2.75 E(alue of DCCP A)-.275 E 1.21 -.605('s c)-1.221 H
(onnection nonce. Each endpoint SHOULD k).605 E(eep track of both)-.11 E
(its nonce and, via the Connection Nonce feature, the other endpoint')
100.8 192.6 Q 2.75(sn)-.605 G(once. Connection)-2.75 E
(Nonces are used by Identi\214cation Re)100.8 205.6 Q(gime 0.)-.165 E
(The Connection Nonce feature tak)100.8 222.2 Q(es arbitrary v)-.11 E
(alues of at least 4 bytes long. A)-.275 E
(Change\(Connection Nonce\) option therefore tak)100.8 235.2 Q
(es at least 6 bytes. Con\214rm\(Connection)-.11 E
(Nonce\) options MUST NO)100.8 248.2 Q 2.75(Tc)-.44 G(ontain the rele)
-2.75 E -.275(va)-.275 G(nt v).275 E
(alue, so a Con\214rm\(Connection Nonce\))-.275 E(option tak)100.8 261.2
Q(es e)-.11 E(xactly 2 bytes.)-.165 E(Connection Nonce def)100.8 277.8 Q
(aults to a random 8-byte string. T)-.11 E 2.75(op)-.88 G(re)-2.75 E
-.165(ve)-.275 G(nt spoo\214ng, this string).165 E(MUST NO)100.8 290.8 Q
2.75(Th)-.44 G -2.475 -.22(av e)-2.75 H(an)2.97 E 2.75(yp)-.165 G
(redictable v)-2.75 E(alue. F)-.275 E(or e)-.165 E(xample, it MUST NO)
-.165 E 2.75(Tb)-.44 G 2.75(es)-2.75 G(et)-2.75 E
(deterministically to zero, and it MUST change on e)100.8 303.8 Q -.165
(ve)-.275 G(ry connection.).165 E(This feature is non-ne)100.8 320.4 Q
(gotiable.)-.165 E F1 2.75(6.4.3. Identi\214cation)72 346.4 R(Option)
2.75 E F0(The Identi\214cation option serv)100.8 363 Q
(es as con\214rmation that a pack)-.165 E(et w)-.11 E
(as sent by an endpoint)-.11 E(in)100.8 376 Q -.22(vo)-.44 G(lv).22 E
(ed in the initiation of the DCCP connection. It is permitted in an)
-.165 E 2.75(yD)-.165 G(CCP pack)-2.75 E(et, b)-.11 E(ut)-.22 E
(it might not be useful until the endpoints ha)100.8 389 Q .33 -.165
(ve ex)-.22 H(changed security information such as).165 E
(connection nonces. The option tak)100.8 402 Q(es the follo)-.11 E
(wing form:)-.275 E/F2 11/Courier@0 SF
(+--------+--------+--------+--------+--------+--------)100.8 421 Q
(|00101010| Length |)100.8 434 Q(Identification Data ...)13.2 E
(+--------+--------+--------+--------+--------+--------)100.8 447 Q
(Type=42)107.4 460 Q F0(The particular data included in an Identi\214ca\
tion option sent by DCCP A depends on the ID)100.8 482.6 Q(Re)100.8
495.6 Q(gime in force for the A-to-B sequence, which is the v)-.165 E
(alue of the ID Re)-.275 E(gime feature)-.165 E
(located at DCCP B. The remainder of this section describes ID Re)100.8
508.6 Q(gime 0, the def)-.165 E(ault MD5)-.11 E(Re)100.8 521.6 Q(gime.)
-.165 E(The Identi\214cation data pro)100.8 538.2 Q
(vided for the MD5 Re)-.165 E(gime consists of a 16-byte MD5 digest of:)
-.165 E(the second 32-bit w)100.8 551.2 Q
(ord in the generic DCCP header)-.11 E 2.75(,i)-.44 G
(ncluding the Sequence Number; the)-2.75 E -.275(va)100.8 564.2 S
(lue of the sender').275 E 2.75(sC)-.605 G(onnection Nonce; and the v)
-2.75 E(alue of the other endpoint')-.275 E 2.75(sC)-.605 G(onnection)
-2.75 E(Nonce, in that order)100.8 577.2 Q 2.75(.T)-.605 G
(he total length of the option is therefore 18 bytes. Inclusion of the)
-2.75 E(tw)100.8 590.2 Q 2.75(oC)-.11 G
(onnection Nonces ensures that attack)-2.75 E(ers cannot f)-.11 E(ak)
-.11 E 2.75(ea)-.11 G 2.75(nI)-2.75 G(denti\214cation Option, unless)
-2.75 E(the)100.8 603.2 Q 2.75(ys)-.165 G(nooped on the be)-2.75 E
(ginning of the connection when nonces are e)-.165 E 2.75
(xchanged. \(No)-.165 F(mechanism protects ag)100.8 616.2 Q
(ainst snoopers who kno)-.055 E 2.75(wC)-.275 G
(onnection Nonces, since DCCP as)-2.75 E(speci\214ed here does not pro)
100.8 629.2 Q
(vide strong cryptographic security guarantees; see Section 16.\))-.165
E(Inclusion of the sequence number protects ag)100.8 642.2 Q
(ainst replay attacks within the connection.)-.055 E 1.76 -.88(To c)
100.8 658.8 T(heck an Identi\214cation option').88 E 2.75(sv)-.605 G
(alue, the recei)-3.025 E -.165(ve)-.275 G 2.75(rs).165 G
(imply calculates the MD5 digest)-2.75 E(itself and compares that ag)
100.8 671.8 Q(ainst the option data. The MD5 calculation can be e)-.055
E(xpensi)-.165 E -.165(ve)-.275 G 2.75(,s).165 G(o)-2.75 E(an attack)
100.8 684.8 Q(er could concei)-.11 E -.275(va)-.275 G
(bly disable a DCCP endpoint by sending it a \215ood of in).275 E -.275
(va)-.44 G(lid).275 E(pack)100.8 697.8 Q(ets with bad Identi\214cation \
options. Rate limits described in Sections 5.2 and 10)-.11 E(mitig)100.8
710.8 Q(ate this issue. The recei)-.055 E -.165(ve)-.275 G 2.75(rM).165
G 2.31 -1.155(AY i)-2.75 H
(gnore an Identi\214cation option if it occurs on a)1.155 E(pack)100.8
723.8 Q(et that w)-.11 E(ould otherwise be considered v)-.11 E(alid.)
-.275 E -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E
(adh)-.165 E 186.788(ye Section)-.055 F 2.75(6.4.3. [P)2.75 F(age 30])
-.165 E 0 Cg EP
%%Page: 31 31
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(Example C code for constructing the option')100.8 85 Q 2.75(sv)-.605 G
(alue follo)-3.025 E(ws:)-.275 E/F1 11/Courier@0 SF
(unsigned char *packet_data;)127.2 104 Q(int packet_length;)127.2 117 Q
(int id_option_offset; /* offset of option in packet_data */)127.2 130 Q
(const unsigned char *my_nonce, *other_nonce;)127.2 156 Q
(int my_nonce_length, other_nonce_length;)127.2 169 Q
(MD5_CTX md5_context;)127.2 195 Q(MD5_Init\(&md5_context\);)127.2 221 Q
(MD5_Update\(&md5_context, packet_data + 4, 4\);)127.2 234 Q
(MD5_Update\(&md5_context, my_nonce, my_nonce_length\);)127.2 247 Q
(MD5_Update\(&md5_context, other_nonce, other_nonce_length\);)127.2 260
Q(packet_data[id_option_offset] = 42;)127.2 273 Q(/* option value */)
19.8 E(packet_data[id_option_offset+1] = 18; /* option length */)127.2
286 Q(MD5_Final\(packet_data + id_option_offset + 2, &md5_context\);)
127.2 299 Q/F2 11/Times-Bold@0 SF 2.75(6.4.4. Challenge)72 331 R(Option)
2.75 E F0(This option informs the recei)100.8 347.6 Q
(ving DCCP that one of its pack)-.275 E(ets w)-.11 E
(as ignored, and that)-.11 E(succeeding pack)100.8 360.6 Q(ets will be \
ignored until the endpoint sends a correct Identi\214cation option.)-.11
E(The recei)100.8 373.6 Q
(ving DCCP SHOULD include an Identi\214cation option on the ne)-.275 E
(xt pack)-.165 E(et it sends.)-.11 E(The option tak)100.8 386.6 Q
(es the follo)-.11 E(wing form:)-.275 E F1
(+--------+--------+--------+--------+--------+--------)100.8 405.6 Q
(|00101100| Length |)100.8 418.6 Q(Identification Data ...)13.2 E
(+--------+--------+--------+--------+--------+--------)100.8 431.6 Q
(Type=44)107.4 444.6 Q F0(The Identi\214cation Data on a pack)100.8
467.2 Q(et sent by DCCP B is the same as that for an)-.11 E
(Identi\214cation option sent by DCCP B.)100.8 480.2 Q(The recei)5.5 E
-.165(ve)-.275 G 2.75(rS).165 G(HOULD ignore a Challenge option,)-2.75 E
(and the pack)100.8 493.2 Q(et the Challenge option contains, if the Id\
enti\214cation Data is incorrect. The)-.11 E
(purpose of this mechanism is to pre)100.8 506.2 Q -.165(ve)-.275 G
(nt denial-of-service attacks where an attack).165 E(er could)-.11 E
(cause the recei)100.8 519.2 Q -.165(ve)-.275 G 2.75(rt).165 G 2.75(os)
-2.75 G(end man)-2.75 E 2.75(yp)-.165 G(ack)-2.75 E(ets with e)-.11 E
(xpensi)-.165 E -.165(ve)-.275 G(-to-compute Identi\214cation options,)
.165 E(since the recei)100.8 532.2 Q -.165(ve)-.275 G 2.75(rM).165 G
2.31 -1.155(AY i)-2.75 H
(gnore Challenge options for some time after recei)1.155 E(ving an in)
-.275 E -.275(va)-.44 G(lid).275 E(Challenge.)100.8 545.2 Q
(If, after se)100.8 561.8 Q -.165(ve)-.275 G
(ral Challenge options, a DCCP is unable to elicit a v).165 E
(alid Identi\214cation from its)-.275 E(partner)100.8 574.8 Q 2.75(,i)
-.44 G 2.75(tM)-2.75 G 2.31 -1.155(AY r)-2.75 H
(eset the connection with Reason "Unanswered Challenge".)1.155 E F2
(6.5.)72 600.8 Q/F3 13/Times-Bold@0 SF(Init Cookie Option)5.5 E F0(This\
 option is permitted in DCCP-Response, DCCP-Data, and DCCP-DataAck mess\
ages.)100.8 617.4 Q(The option MA)100.8 630.4 Q 2.75(Yb)-1.155 G 2.75
(er)-2.75 G(eturned by the serv)-2.75 E(er in a DCCP-Response.)-.165 E
(If so, then the client)5.5 E(MUST echo the same Init Cookie option in \
its ensuing DCCP-Data or DCCP-DataAck)100.8 643.4 Q(message. The serv)
100.8 656.4 Q(er SHOULD respond to an in)-.165 E -.275(va)-.44 G
(lid Init Cookie option by resetting the).275 E
(connection with Reason set to "Bad Init Cookie".)100.8 669.4 Q
(The purpose of this option is to allo)100.8 686 Q 2.75(waD)-.275 G
(CCP serv)-2.75 E(er to a)-.165 E -.22(vo)-.22 G(id ha).22 E
(ving to hold an)-.22 E 2.75(ys)-.165 G(tate until)-2.75 E(the three-w)
100.8 699 Q(ay connection setup handshak)-.11 E 2.75(eh)-.11 G
(as completed.)-2.75 E(The serv)5.5 E(er wraps up the service)-.165 E
(name, serv)100.8 712 Q(er port, and an)-.165 E 2.75(yo)-.165 G
(ptions it cares about from both the DCCP-Request and DCCP-)-2.75 E
(Response in an opaque cookie.)100.8 725 Q -.88(Ty)5.5 G
(pically the cookie will be encrypted using a secret).88 E -.385(Ko)72
769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 195.038
(ye Section)-.055 F 2.75(6.5. [P)2.75 F(age 31])-.165 E 0 Cg EP
%%Page: 32 32
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E(kno)
100.8 85 Q(wn only to the serv)-.275 E
(er and include a cryptographic checksum or magic v)-.165 E
(alue so that)-.275 E(correct decryption can be v)100.8 98 Q 2.75
(eri\214ed. When)-.165 F(the serv)2.75 E(er recei)-.165 E -.165(ve)-.275
G 2.75(st).165 G(he cookie back in the)-2.75 E
(response, it can decrypt the cookie and instantiate all the state it a)
100.8 111 Q -.22(vo)-.22 G(ided k).22 E(eeping.)-.11 E(The precise impl\
ementation of the Init Cookie does not need to be speci\214ed here; sin\
ce Init)100.8 127.6 Q(Cookies are opaque to the client, there are no in\
teroperability concerns.)100.8 140.6 Q/F1 11/Courier@0 SF
(+--------+--------+--------+--------+--------+--------)100.8 159.6 Q
(|00100100| Length |)100.8 172.6 Q(Init Cookie Value)59.4 E(...)19.8 E
(+--------+--------+--------+--------+--------+--------)100.8 185.6 Q
(Type=36)107.4 198.6 Q/F2 11/Times-Bold@0 SF(6.6.)72 230.6 Q/F3 13
/Times-Bold@0 SF -.234(Ti)5.5 G(mestamp Option).234 E F0
(This option is permitted in an)100.8 247.2 Q 2.75(yD)-.165 G(CCP pack)
-2.75 E(et. The length of the option is 6 bytes.)-.11 E F1
(+--------+--------+--------+--------+--------+--------+)100.8 266.2 Q
59.4(|00101000|00000110| Timestamp)100.8 279.2 R 59.4(Value |)6.6 F
(+--------+--------+--------+--------+--------+--------+)100.8 292.2 Q
6.6(Type=40 Length=6)107.4 305.2 R F0
(The four bytes of option data carry the timestamp of this pack)100.8
324.2 Q(et in some undetermined)-.11 E(form. A DCCP recei)100.8 337.2 Q
(ving a T)-.275 E(imestamp option SHOULD respond with a T)-.385 E
(imestamp Echo)-.385 E(option on the ne)100.8 350.2 Q(xt pack)-.165 E
(et it sends.)-.11 E F2(6.7.)72 376.2 Q F3(Elapsed T)5.5 E(ime Option)
-.234 E F0(This option is permitted in an)100.8 392.8 Q 2.75(yD)-.165 G
(CCP pack)-2.75 E(et that contains an Ackno)-.11 E(wledgement Number)
-.275 E(.)-.605 E(It indicates ho)100.8 405.8 Q 2.75(wm)-.275 G
(uch time, in milliseconds, has elapsed since the pack)-2.75 E(et being)
-.11 E(ackno)100.8 418.8 Q(wledged---the pack)-.275 E(et with the gi)
-.11 E -.165(ve)-.275 G 2.75(nA).165 G(ckno)-2.75 E(wledgement Number)
-.275 E(---w)-.22 E(as recei)-.11 E -.165(ve)-.275 G(d. The).165 E
(option may tak)100.8 431.8 Q 2.75(eu)-.11 G 2.75(p4o)-2.75 G 2.75(r6b)
-2.75 G(ytes, depending on ho)-2.75 E 2.75(wl)-.275 G(ar)-2.75 E
(ge Elapsed T)-.198 E(ime is.)-.385 E F1
(+--------+--------+--------+--------+)100.8 450.8 Q 13.2
(|00101110|00000100| Elapsed)100.8 463.8 R 6.6(Time |)6.6 F
(+--------+--------+--------+--------+)100.8 476.8 Q 19.8(Type=46 Len=4)
107.4 489.8 R(+--------+--------+--------+--------+--------+--------+)
100.8 515.8 Q 72.6(|00101110|00000110| Elapsed)100.8 528.8 R 66(Time |)
6.6 F(+--------+--------+--------+--------+--------+--------+)100.8
541.8 Q 19.8(Type=46 Len=6)107.4 554.8 R F0(The option data, Elapsed T)
100.8 573.8 Q
(ime, represents the amount of time, in tenths of milliseconds,)-.385 E
(elapsed since the pack)100.8 586.8 Q(et being ackno)-.11 E(wledged w)
-.275 E(as recei)-.11 E -.165(ve)-.275 G(d. If Elapsed T).165 E
(ime is less than a)-.385 E(minute, the \214rst, more parsimonious form\
 of the option SHOULD be used. Elapsed T)100.8 599.8 Q(imes)-.385 E(of \
more than 6.5535 seconds MUST be sent using the second form of the opti\
on.)100.8 612.8 Q(Elapsed T)100.8 629.4 Q
(ime is measured in tenths of milliseconds as a compromise between tw)
-.385 E(o)-.11 E(con\215icting goals: \214rst, to pro)100.8 642.4 Q
(vide enough granularity to reduce aliasing noise when)-.165 E
(measuring elapsed time o)100.8 655.4 Q -.165(ve)-.165 G 2.75(rf).165 G
(ast LANs; and second, to allo)-2.86 E 2.75(wm)-.275 G
(ost reasonable elapsed)-2.75 E(times to \214t into tw)100.8 668.4 Q
2.75(ob)-.11 G(ytes of data.)-2.75 E F2(6.8.)72 694.4 Q F3 -.234(Ti)5.5
G(mestamp Echo Option).234 E F0(This option is permitted in an)100.8 711
Q 2.75(yD)-.165 G(CCP pack)-2.75 E(et, as long as at least one pack)-.11
E(et carrying the)-.11 E -.385(Ti)100.8 724 S
(mestamp option has been recei).385 E -.165(ve)-.275 G
(d. The length of the option is between 6 and 10 bytes,).165 E -.385(Ko)
72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E
195.038(ye Section)-.055 F 2.75(6.8. [P)2.75 F(age 32])-.165 E 0 Cg EP
%%Page: 33 33
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(depending on whether Elapsed T)100.8 85 Q(ime is included and ho)-.385
E 2.75(wl)-.275 G(ar)-2.75 E(ge it is.)-.198 E/F1 11/Courier@0 SF
(+--------+--------+--------+--------+--------+--------+)100.8 104 Q 66
(|00101001|00000110| Timestamp)100.8 117 R 59.4(Echo |)6.6 F
(+--------+--------+--------+--------+--------+--------+)100.8 130 Q
19.8(Type=41 Len=6)107.4 143 R
(+--------+--------+------- ... -------+--------+--------+)100.8 169 Q
6.6(|00101001|00001000| Timestamp)100.8 182 R 13.2(Echo | Elapsed)6.6 F
6.6(Time |)6.6 F
(+--------+--------+------- ... -------+--------+--------+)100.8 195 Q
19.8(Type=41 Len=8)107.4 208 R(\(4 bytes\))46.2 E
(+--------+--------+------- ... -------+------- ... -------+)100.8 234 Q
6.6(|00101001|00001010| Timestamp)100.8 247 R 13.2(Echo |)6.6 F
(Elapsed Time)26.4 E(|)19.8 E
(+--------+--------+------- ... -------+------- ... -------+)100.8 260 Q
13.2(Type=41 Len=10)107.4 273 R(\(4 bytes\))46.2 E(\(4 bytes\))72.6 E F0
(The \214rst four bytes of option data, T)100.8 292 Q
(imestamp Echo, carry a T)-.385 E(imestamp V)-.385 E(alue tak)-1.221 E
(en from a)-.11 E(preceding recei)100.8 305 Q -.165(ve)-.275 G 2.75(dT)
.165 G(imestamp option. Usually)-3.135 E 2.75(,t)-.715 G
(his will be the last pack)-2.75 E(et that w)-.11 E(as)-.11 E(recei)
100.8 318 Q -.165(ve)-.275 G(d---the pack).165 E
(et indicated by the Ackno)-.11 E(wledgement Number)-.275 E 2.75(,i)-.44
G 2.75(fa)-2.75 G -.165(ny)-2.75 G(---b).165 E(ut it might be a)-.22 E
(preceding pack)100.8 331 Q(et.)-.11 E(The Elapsed T)100.8 347.6 Q
(ime \214eld is similar to the v)-.385 E(alue stored in the Elapsed T)
-.275 E(ime option. If present,)-.385 E
(it indicates the amount of time elapsed since recei)100.8 360.6 Q
(ving the pack)-.275 E(et whose timestamp is being)-.11 E
(echoed. This time MUST be in tenths of milliseconds. Elapsed T)100.8
373.6 Q(ime is meant to help the)-.385 E -.385(Ti)100.8 386.6 S
(mestamp sender separate the netw).385 E(ork round-trip time from the T)
-.11 E(imestamp recei)-.385 E -.165(ve)-.275 G(r').165 E(s)-.605 E(proc\
essing time. This may be particularly important for CCIDs where ackno)
100.8 399.6 Q(wledgements)-.275 E(are sent infrequently)100.8 412.6 Q
2.75(,s)-.715 G 2.75(ot)-2.75 G
(hat there might be considerable delay between recei)-2.75 E(ving a)
-.275 E -.385(Ti)100.8 425.6 S
(mestamp option and sending the corresponding T).385 E
(imestamp Echo. A missing Elapsed)-.385 E -.385(Ti)100.8 438.6 S
(me \214eld is equi).385 E -.275(va)-.275 G(lent to an Elapsed T).275 E
(ime of zero. The smallest v)-.385 E(ersion of the option)-.165 E
(SHOULD be used that can hold the rele)100.8 451.6 Q -.275(va)-.275 G
(nt Elapsed T).275 E(ime v)-.385 E(alue.)-.275 E/F2 11/Times-Bold@0 SF
(6.9.)72 477.6 Q/F3 13/Times-Bold@0 SF(Loss W)5.5 E(indo)-.234 E 3.25
(wF)-.13 G(eatur)-3.575 E(e)-.234 E F0(Loss W)100.8 494.2 Q(indo)-.44 E
2.75(wh)-.275 G(as feature number 6. The Loss W)-2.75 E(indo)-.44 E 2.75
(wf)-.275 G(eature located at DCCP B is the)-2.75 E(width of the windo)
100.8 507.2 Q 2.75(wD)-.275 G(CCP B uses to determine whether pack)-2.75
E(ets from DCCP A are v)-.11 E(alid.)-.275 E -.165(Pa)100.8 520.2 S(ck)
.165 E(ets outside this windo)-.11 E 2.75(ww)-.275 G
(ill be dropped by DCCP B as old duplicates or spoo\214ng)-2.75 E(attem\
pts; see Section 5.2 for more information. DCCP A sends a "Change\(Loss\
 W)100.8 533.2 Q(indo)-.44 E -.715(w,)-.275 G
(W\)" option to DCCP B to set DCCP B')100.8 546.2 Q 2.75(sL)-.605 G
(oss W)-2.75 E(indo)-.44 E 2.75(wt)-.275 G 2.75(oW)-2.75 G(.)-3.762 E
(The Loss W)100.8 562.8 Q(indo)-.44 E 2.75(wf)-.275 G(eature tak)-2.75 E
(es 3-byte inte)-.11 E(ger v)-.165 E(alues, lik)-.275 E 2.75(eD)-.11 G
(CCP sequence numbers.)-2.75 E(Change and Con\214rm options for Loss W)
100.8 575.8 Q(indo)-.44 E 2.75(wa)-.275 G(re therefore 6 bytes long.)
-2.75 E(Loss W)100.8 592.4 Q(indo)-.44 E 2.75(wd)-.275 G(ef)-2.75 E
(aults to 1000 for ne)-.11 E 2.75(wc)-.275 G(onnections. The Loss W)
-2.75 E(indo)-.44 E 2.75(wv)-.275 G(alue is the total)-3.025 E
(width of the loss windo)100.8 605.4 Q 1.43 -.715(w. T)-.275 H(he recei)
.715 E -.165(ve)-.275 G 2.75(rm).165 G(ay position the loss windo)-2.75
E 2.75(wa)-.275 G(symmetrically)-2.75 E
(around the greatest sequence number seen---for e)100.8 618.4 Q
(xample, by allocating 1/4 of the loss)-.165 E(windo)100.8 631.4 Q 2.75
(ww)-.275 G(idth for older sequence numbers and 3/4 of it for ne)-2.75 E
(wer sequence numbers.)-.275 E(This feature is non-ne)100.8 648 Q
(gotiable.)-.165 E F2(7.)72 674 Q/F4 14/Times-Bold@0 SF
(Congestion Contr)5.5 E(ol IDs)-.252 E F0(Each congestion control mecha\
nism supported by DCCP is assigned a congestion control)100.8 690.6 Q
(identi\214er)100.8 703.6 Q 2.75(,o)-.44 G 2.75(rC)-2.75 G
(CID: a number from 0 to 255. During connection setup, and optionally)
-2.75 E(thereafter)100.8 716.6 Q 2.75(,t)-.44 G(he endpoints ne)-2.75 E
(gotiate their congestion control mechanisms by ne)-.165 E
(gotiating the)-.165 E -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165
E(yd/P)-.11 E(adh)-.165 E 203.288(ye Section)-.055 F 2.75(7. [P)2.75 F
(age 33])-.165 E 0 Cg EP
%%Page: 34 34
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E -.275
(va)100.8 85 S(lues for their Congestion Control features. Congestion C\
ontrol has feature number 1. The).275 E(feature located at DCCP A is th\
e CCID in use for the A-to-B half-connection. DCCP B)100.8 98 Q(sends a\
n "Change\(CC, K\)" option to DCCP A to ask A to use CCID K for its dat\
a pack)100.8 111 Q(ets.)-.11 E
(The data byte of Congestion Control feature ne)100.8 127.6 Q
(gotiation options form a list of acceptable)-.165 E
(CCIDs, sorted in descending order of priority)100.8 140.6 Q 2.75(.F)
-.715 G(or e)-2.915 E(xample, the option "Change\(CC 1, 2,)-.165 E(3\)"\
 asks the sender to use CCID 1, although CCIDs 2 and 3 are also accepta\
ble. \(This)100.8 153.6 Q(corresponds to the bytes "33, 6, 1, 1, 2, 3":\
 Change option \(33\), option length \(6\), feature)100.8 166.6 Q
(ID \(1\), CCIDs \(1, 2, 3\).\) Similarly)100.8 179.6 Q 2.75(,")-.715 G
(Con\214rm\(CC 1, 2, 3\)" tells the recei)-2.75 E -.165(ve)-.275 G 2.75
(rt).165 G(hat the sender)-2.75 E(is using CCID 1, b)100.8 192.6 Q
(ut that CCIDs 2 or 3 might also be acceptable.)-.22 E
(The CCIDs de\214ned by this document are:)100.8 209.2 Q/F1 11/Courier@0
SF 13.2(CCID Meaning)136.8 228.2 R 13.2(---- -------)136.8 241.2 R 26.4
(0R)150 254.2 S(eserved)-26.4 E 26.4(1U)150 267.2 S
(nspecified Sender-Based Congestion Control)-26.4 E 26.4(2T)150 280.2 S
(CP-like Congestion Control)-26.4 E 26.4(3T)150 293.2 S
(FRC Congestion Control)-26.4 E F0 2.75(An)100.8 315.8 S .55 -.275(ew c)
-2.75 H(onnection starts with CCID 2 for both DCCPs. If this is unaccep\
table for either).275 E(DCCP)100.8 328.8 Q 2.75(,t)-1.221 G
(hat DCCP will start in the Unkno)-2.75 E(wn state. A DCCP SHOULD NO)
-.275 E 2.75(Ts)-.44 G(end data)-2.75 E
(when its Congestion Control feature is in the Unkno)100.8 341.8 Q
(wn state.)-.275 E(All CCIDs standardized for use with DCCP will corres\
pond to congestion control)100.8 358.4 Q(mechanisms pre)100.8 371.4 Q
(viously standardized by the IETF)-.275 E 2.75(.W)-.88 G 2.75(ee)-3.63 G
(xpect that for quite some time, all)-2.915 E
(such mechanisms will be TCP-friendly)100.8 384.4 Q 2.75(,b)-.715 G
(ut TCP-friendliness is not an e)-2.97 E(xplicit DCCP)-.165 E
(requirement.)100.8 397.4 Q 2.75(AD)100.8 414 S(CCP implementation inte\
nded for general use---in a general-purpose operating system)-2.75 E
-.11(ke)100.8 427 S(rnel, for e).11 E
(xample---SHOULD implement at least CCIDs 1 and 2. The intent is to mak)
-.165 E(e)-.11 E(these CCIDs broadly a)100.8 440 Q -.275(va)-.22 G
(ilable for interoperability).275 E 2.75(,a)-.715 G(lthough an)-2.75 E
2.75(yg)-.165 G -2.365 -.275(iv e)-2.75 H 2.75(na).275 G
(pplication might)-2.75 E(disallo)100.8 453 Q 2.75(wt)-.275 G
(heir use via the feature ne)-2.75 E(gotiation process.)-.165 E/F2 11
/Times-Bold@0 SF(7.1.)72 479 Q/F3 13/Times-Bold@0 SF
(Unspeci\214ed Sender)5.5 E(-Based Congestion Contr)-.481 E(ol)-.234 E
F0(CCID 1 denotes an unspeci\214ed sender)100.8 495.6 Q
(-based congestion control mechanism.)-.22 E(Separate)5.5 E(features ne)
100.8 508.6 Q(gotiate the corresponding congestion ackno)-.165 E
(wledgement options---for e)-.275 E(xample,)-.165 E(Ack V)100.8 521.6 Q
(ector)-1.221 E 5.5(.T)-.605 G(his pro)-5.5 E
(vides a limited, controlled form of interoperability for ne)-.165 E
2.75(wI)-.275 G(ETF-)-2.75 E(appro)100.8 534.6 Q -.165(ve)-.165 G 2.75
(dC).165 G(CIDs.)-2.75 E(Implementors MUST NO)100.8 551.2 Q 2.75(Tu)-.44
G(se CCID 1 in production en)-2.75 E(vironments as a proxy for)-.44 E
(congestion control mechanisms that ha)100.8 564.2 Q .33 -.165(ve n)-.22
H(ot entered the IETF standards process. W).165 E(e)-.88 E
(intend that an)100.8 577.2 Q 2.75(yp)-.165 G(roduction use of CCID 1 w)
-2.75 E(ould ha)-.11 E .33 -.165(ve t)-.22 H 2.75(ob).165 G 2.75(ee)
-2.75 G(xplicitly appro)-2.915 E -.165(ve)-.165 G 2.75<648c>.165 G
(rst by the)-2.75 E(IETF)100.8 590.2 Q 2.75(.M)-.88 G(iddlebox)-2.75 E
(es MA)-.165 E 2.75(Yc)-1.155 G(hoose to treat the use of CCID 1 as e)
-2.75 E(xperimental or)-.165 E(unacceptable.)100.8 603.2 Q -.165(Fo)
100.8 619.8 S 2.75(re).165 G(xample, say that CCID 98, a ne)-2.915 E
2.75(ws)-.275 G(ender)-2.75 E(-based congestion control mechanism using)
-.22 E(Ack V)100.8 632.8 Q(ector for ackno)-1.221 E
(wledgements, has entered the IETF standards process, and the IETF)-.275
E(has appro)100.8 645.8 Q -.165(ve)-.165 G 2.75(dt).165 G
(he use of CCID 1 as a backup for CCID 98. No)-2.75 E 1.43 -.715(w, D)
-.275 H(CCP A, which).715 E(understands and w)100.8 658.8 Q(ould lik)
-.11 E 2.75(et)-.11 G 2.75(ou)-2.75 G
(se CCID 98, is trying to communicate with DCCP B,)-2.75 E(which doesn')
100.8 671.8 Q 2.75(ty)-.198 G(et kno)-2.75 E 2.75(wa)-.275 G
(bout CCID 98.)-2.75 E(DCCP A can simply ne)5.5 E(gotiate use of CCID 1)
-.165 E(and, separately)100.8 684.8 Q 2.75(,n)-.715 G -.165(eg)-2.75 G
(otiate Use Ack V).165 E(ector)-1.221 E 2.75(.D)-.605 G(CCP B will pro)
-2.75 E(vide the feedback DCCP A)-.165 E
(requires for CCID 98, namely Ack V)100.8 697.8 Q(ector)-1.221 E 2.75
(,w)-.44 G(ithout needing to understand the congestion)-2.75 E
(control mechanism in use.)100.8 710.8 Q -.385(Ko)72 769 S(hler/Handle)
.385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 195.038(ye Section)-.055 F
2.75(7.1. [P)2.75 F(age 34])-.165 E 0 Cg EP
%%Page: 35 35
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(CCID 1 has no sender implementation; it is e)100.8 85 Q(xclusi)-.165 E
-.165(ve)-.275 G(ly meaningful at the recei).165 E -.165(ve)-.275 G 2.75
(rt).165 G(o)-2.75 E(support forw)100.8 98 Q(ard compatibility)-.11 E
2.75(.T)-.715 G(he sender al)-2.75 E -.11(wa)-.11 G
(ys uses a speci\214c congestion control).11 E
(mechanism whose CCID is not 1. Ho)100.8 111 Q(we)-.275 E -.165(ve)-.275
G .88 -.44(r, t).165 H(he code implementing a CCID that requires).44 E
(only generic feedback, such as Ack V)100.8 124 Q(ector)-1.221 E 2.75
(,M)-.44 G 2.31 -1.155(AY a)-2.75 H(dd CCID 1 to the list of acceptable)
1.155 E(CCIDs sent to the recei)100.8 137 Q -.165(ve)-.275 G 2.75(r\()
.165 G(follo)-2.75 E(wing the actual CCID\), f)-.275 E
(acilitating communication with)-.11 E(recei)100.8 150 Q -.165(ve)-.275
G(rs that do not understand the actual CCID.).165 E(An)100.8 166.6 Q
2.75(yC)-.165 G(CID feature ne)-2.75 E
(gotiation in which the sender proposes the use of CCID 1 without an)
-.165 E(y)-.165 E(other CCID is considered erroneous, and SHOULD result\
 in connection reset, with Reason)100.8 179.6 Q(set to "Fruitless Ne)
100.8 192.6 Q(gotiation".)-.165 E(DCCP implementations MA)100.8 209.2 Q
2.75(Yp)-1.155 G(ro)-2.75 E(vide APIs that allo)-.165 E 2.75(wa)-.275 G
(pplications to suggest preferred)-2.75 E(CCIDs for sending and recei)
100.8 222.2 Q(ving data. An)-.275 E 2.75(ys)-.165 G(uch API MUST NO)
-2.75 E 2.75(Ta)-.44 G(llo)-2.75 E 2.75(ws)-.275 G(ending)-2.75 E
(applications to suggest CCID 1; ag)100.8 235.2 Q
(ain, CCID 1 will be suggested when appropriate by the)-.055 E(code imp\
lementing the preferred CCID. In contrast, APIs SHOULD let applications\
 allo)100.8 248.2 Q(w)-.275 E(or pre)100.8 261.2 Q -.165(ve)-.275 G
(nt the use of CCID 1 for recei).165 E(ving.)-.275 E/F1 11/Times-Bold@0
SF(7.2.)72 287.2 Q/F2 13/Times-Bold@0 SF(TCP-lik)5.5 E 3.25(eC)-.13 G
(ongestion Contr)-3.25 E(ol)-.234 E F0(CCID 2 denotes Additi)100.8 303.8
Q .33 -.165(ve I)-.275 H(ncrease, Multiplicati).165 E .33 -.165(ve D)
-.275 H(ecrease \(AIMD\) congestion control).165 E(with beha)100.8 316.8
Q(vior modelled directly on TCP)-.22 E 2.75(,i)-1.221 G
(ncluding congestion windo)-2.75 E 1.43 -.715(w, s)-.275 H(lo).715 E
2.75(ws)-.275 G(tart,)-2.75 E
(timeouts, and so forth. CCID 2 is further described in [CCID 2 PR)100.8
329.8 Q(OFILE].)-.44 E F1(7.3.)72 355.8 Q F2(TFRC Congestion Contr)5.5 E
(ol)-.234 E F0(CCID 3 denotes TCP-Friendly Rate Control, an equation-ba\
sed rate-controlled congestion)100.8 372.4 Q
(control mechanism. CCID 3 is further described in [CCID 3 PR)100.8
385.4 Q(OFILE].)-.44 E F1(7.4.)72 411.4 Q F2
(CCID-Speci\214c Options and F)5.5 E(eatur)-.325 E(es)-.234 E F0
(Option and feature numbers 128 through 255 are a)100.8 428 Q -.275(va)
-.22 G(ilable for CCID-speci\214c use. CCIDs).275 E(may often need ne)
100.8 441 Q 2.75(wo)-.275 G(ption types---for communicating ackno)-2.75
E(wledgement or rate)-.275 E(information, for e)100.8 454 Q
(xample. CCID-speci\214c option types let them create options at will)
-.165 E(without polluting the global option space. Option 128 might ha)
100.8 467 Q .33 -.165(ve d)-.22 H(if).165 E(ferent meanings on a)-.275 E
(half-connection using CCID 4 and a half-connection using CCID 8. CCID-\
speci\214c options)100.8 480 Q(and features will ne)100.8 493 Q -.165
(ve)-.275 G 2.75(rc).165 G
(on\215ict with global options introduced by later v)-2.75 E
(ersions of this)-.165 E(speci\214cation.)100.8 506 Q(An)100.8 522.6 Q
2.75(yp)-.165 G(ack)-2.75 E(et may contain information meant for either\
 half-connection, so CCID-speci\214c)-.11 E
(option and feature numbers e)100.8 535.6 Q
(xplicitly signal the half-connection to which the)-.165 E 2.75(ya)-.165
G(pply)-2.75 E(.)-.715 E(Option numbers 128 through 191 are for options\
 sent from the HC-Sender to the HC-)100.8 548.6 Q(Recei)100.8 561.6 Q
-.165(ve)-.275 G(r; option numbers 192 through 255 are for options sent\
 from the HC-Recei).165 E -.165(ve)-.275 G 2.75(rt).165 G(o)-2.75 E
(the HC-Sender)100.8 574.6 Q 2.75(.S)-.605 G(imilarly)-2.75 E 2.75(,f)
-.715 G(eature numbers 128 through 191 are for features located at the)
-2.75 E(HC-Sender; feature numbers 192 through 255 are for features loc\
ated at the HC-Recei)100.8 587.6 Q -.165(ve)-.275 G -.605(r.).165 G(\(C\
hange options for a feature are sent to the feature location; Prefer an\
d Con\214rm options)100.8 600.6 Q(are sent from the feature location. T\
hus, Change\(128\) options are sent by the HC-Recei)100.8 613.6 Q -.165
(ve)-.275 G(r).165 E
(by de\214nition, while Change\(192\) options are sent by the HC-Sender)
100.8 626.6 Q(.\))-.605 E -.165(Fo)100.8 643.2 S 2.75(re).165 G(xample,\
 consider a DCCP connection where the A-to-B half-connection uses CCID \
4)-2.915 E(and the B-to-A half-connection uses CCID 5. Here is ho)100.8
656.2 Q 2.75(was)-.275 G(ampling of CCID-speci\214c)-2.75 E
(options and features are assigned to half-connections:)100.8 669.2 Q
-.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165
E 195.038(ye Section)-.055 F 2.75(7.4. [P)2.75 F(age 35])-.165 E 0 Cg EP
%%Page: 36 36
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E/F1 11
/Courier@0 SF 19.8(Relevant Relevant)315 85 R 6.6(Packet Option)136.8 98
R 6.6(Half-conn. CCID)85.8 F 6.6(------ ------)136.8 111 R 6.6
(---------- ----)85.8 F 6.6(A>B 1)136.8 124 S 112.2(28 A-to-B)-6.6 F(4)
33 E 6.6(A>B 1)136.8 137 S 112.2(92 B-to-A)-6.6 F(5)33 E 6.6(A>B C)136.8
150 S(hange\(128, ...\))-6.6 E 26.4(B-to-A 5)33 F 6.6(A>B P)136.8 163 S
(refer\(128, ...\))-6.6 E 26.4(A-to-B 4)33 F 6.6(A>B C)136.8 176 S
(onfirm\(128, ...\))-6.6 E 26.4(A-to-B 4)26.4 F 6.6(A>B C)136.8 189 S
(hange\(192, ...\))-6.6 E 26.4(A-to-B 4)33 F 6.6(A>B P)136.8 202 S
(refer\(192, ...\))-6.6 E 26.4(B-to-A 5)33 F 6.6(A>B C)136.8 215 S
(onfirm\(192, ...\))-6.6 E 26.4(B-to-A 5)26.4 F F0
(CCID-speci\214c options and features ha)100.8 237.6 Q .33 -.165(ve n)
-.22 H 2.75(oc).165 G(lear meaning when the rele)-2.75 E -.275(va)-.275
G(nt CCID is in).275 E(\215ux. A DCCP SHOULD respond to CCID-speci\214c\
 options and features with Ignored)100.8 250.6 Q
(options during those times.)100.8 263.6 Q/F2 11/Times-Bold@0 SF(8.)72
289.6 Q/F3 14/Times-Bold@0 SF(Ackno)5.5 E(wledgements)-.14 E F0
(Congestion control requires recei)100.8 306.2 Q -.165(ve)-.275 G
(rs to transmit information about pack).165 E(et losses and ECN)-.11 E
(marks to senders. DCCP recei)100.8 319.2 Q -.165(ve)-.275 G
(rs MUST report all congestion the).165 E 2.75(ys)-.165 G
(ee, as de\214ned by the)-2.75 E(rele)100.8 332.2 Q -.275(va)-.275 G
(nt CCID pro\214le. Each CCID says when ackno).275 E
(wledgements should be sent, what)-.275 E(options the)100.8 345.2 Q 2.75
(ym)-.165 G(ust use, ho)-2.75 E 2.75(wt)-.275 G(he)-2.75 E 2.75(ys)-.165
G(hould be congestion controlled, and so on.)-2.75 E(Most ackno)100.8
361.8 Q(wledgements use DCCP options. F)-.275 E(or e)-.165 E
(xample, on a half-connection with CCID)-.165 E 2.75(2\()100.8 374.8 S
(TCP-lik)-2.75 E(e\), the recei)-.11 E -.165(ve)-.275 G 2.75(rr).165 G
(eports ackno)-2.75 E(wledgement information using the Ack V)-.275 E
(ector)-1.221 E(option. This section describes common ackno)100.8 387.8
Q(wledgement options and sho)-.275 E(ws ho)-.275 E 2.75(wa)-.275 G(cks)
-2.75 E(using those options will commonly w)100.8 400.8 Q
(ork. Full descriptions of the ackno)-.11 E(wledgement)-.275 E(mechanis\
ms used for each CCID are laid out in the CCID pro\214le speci\214catio\
ns.)100.8 413.8 Q(Ackno)100.8 430.4 Q(wledgement options, such as Ack V)
-.275 E(ector)-1.221 E 2.75(,g)-.44 G(enerally depend on the DCCP)-2.75
E(Ackno)100.8 443.4 Q(wledgement Number)-.275 E 2.75(,a)-.44 G
(nd are thus only allo)-2.75 E(wed on pack)-.275 E
(et types that carry that)-.11 E(number \(all pack)100.8 456.4 Q(ets e)
-.11 E(xcept DCCP-Request and DCCP-Data\). Ho)-.165 E(we)-.275 E -.165
(ve)-.275 G .88 -.44(r, d).165 H(etailed).44 E(ackno)100.8 469.4 Q
(wledgement options are not generally necessary on DCCP-Resets.)-.275 E
F2(8.1.)72 495.4 Q/F4 13/Times-Bold@0 SF(Acks of Acks and Unidir)5.5 E
(ectional Connections)-.234 E F0(DCCP w)100.8 512 Q(as designed to w)
-.11 E(ork well for both bidirectional and unidirectional \215o)-.11 E
(ws of data,)-.275 E
(and for connections that transition between these states.)100.8 525 Q
(Ho)5.5 E(we)-.275 E -.165(ve)-.275 G .88 -.44(r, a).165 H(ckno).44 E
(wledgements)-.275 E(required for a unidirectional connection are v)
100.8 538 Q(ery dif)-.165 E(ferent from those required for a)-.275 E
(bidirectional connection. In particular)100.8 551 Q 2.75(,u)-.44 G
(nidirectional connections need to w)-2.75 E(orry about acks)-.11 E
(of acks.)100.8 564 Q(The ack-of-acks problem arises because some ackno)
100.8 580.6 Q(wledgement mechanisms are reliable.)-.275 E -.165(Fo)100.8
593.6 S 2.75(re).165 G(xample, an HC-Recei)-2.915 E -.165(ve)-.275 G
2.75(ru).165 G(sing CCID 2, TCP-lik)-2.75 E 2.75(eC)-.11 G
(ongestion Control, sends Ack)-2.75 E -1.221(Ve)100.8 606.6 S
(ctors containing completely reliable ackno)1.221 E
(wledgement information. The HC-Sender)-.275 E
(should occasionally inform the HC-Recei)100.8 619.6 Q -.165(ve)-.275 G
2.75(rt).165 G(hat it has recei)-2.75 E -.165(ve)-.275 G 2.75(da).165 G
2.75(na)-2.75 G(ck. If it did not, the)-2.75 E(HC-Recei)100.8 632.6 Q
-.165(ve)-.275 G 2.75(rm).165 G(ight resend complete Ack V)-2.75 E
(ector information, going back to the start of the)-1.221 E
(connection, with e)100.8 645.6 Q -.165(ve)-.275 G(ry DCCP-Ack pack).165
E(et! Ho)-.11 E(we)-.275 E -.165(ve)-.275 G .88 -.44(r, n).165 H
(ote that acks-of-acks need not be).44 E(reliable themselv)100.8 658.6 Q
(es: when an ack-of-acks is lost, the HC-Recei)-.165 E -.165(ve)-.275 G
2.75(rw).165 G(ill simply maintain old)-2.75 E(ackno)100.8 671.6 Q
(wledgement-related state for a little longer)-.275 E 2.75(.T)-.605 G
(herefore, there is no need for acks-of-)-2.75 E(acks-of-acks.)100.8
684.6 Q(When communication is bidirectional, an)100.8 701.2 Q 2.75(yr)
-.165 G(equired acks-of-acks are automatically)-2.75 E
(contained in normal ackno)100.8 714.2 Q(wledgements for data pack)-.275
E(ets. On a unidirectional connection,)-.11 E -.385(Ko)72 769 S
(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 195.038
(ye Section)-.055 F 2.75(8.1. [P)2.75 F(age 36])-.165 E 0 Cg EP
%%Page: 37 37
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E(ho)100.8
85 Q(we)-.275 E -.165(ve)-.275 G .88 -.44(r, t).165 H(he recei).44 E
-.165(ve)-.275 G 2.75(rD).165 G(CCP sends no data, so the sender w)-2.75
E(ould not normally send)-.11 E(ackno)100.8 98 Q(wledgements. Therefore\
, the CCID in force on that half-connection must e)-.275 E(xplicitly)
-.165 E(say whether)100.8 111 Q 2.75(,w)-.44 G(hen, and ho)-2.75 E 2.75
(wt)-.275 G(he HC-Sender should generate acks-of-acks.)-2.75 E -.165(Fo)
100.8 127.6 S 2.75(re).165 G(xample, consider a bidirectional connectio\
n where both half-connections use the same)-2.915 E(CCID \(either 2 or \
3\), and where DCCP B goes "quiescent". This means that the connection)
100.8 140.6 Q(becomes unidirectional: DCCP B stops sending data, and se\
nds only sends DCCP-Ack)100.8 153.6 Q(pack)100.8 166.6 Q
(ets to DCCP A. F)-.11 E(or CCID 2, TCP-lik)-.165 E 2.75(eC)-.11 G
(ongestion Control, DCCP B uses Ack V)-2.75 E(ector)-1.221 E
(to reliably communicate which pack)100.8 179.6 Q(ets it has recei)-.11
E -.165(ve)-.275 G(d. As described abo).165 E -.165(ve)-.165 G 2.75(,D)
.165 G(CCP A must)-2.75 E(occasionally ackno)100.8 192.6 Q
(wledge a pure ackno)-.275 E(wledgement from DCCP B, so that DCCP B can)
-.275 E(free old Ack V)100.8 205.6 Q(ector state. F)-1.221 E
(or instance, DCCP A might send a DCCP-DataAck pack)-.165 E(et)-.11 E
-2.365 -.275(ev e)100.8 218.6 T(ry no).275 E 2.75(wa)-.275 G(nd then, i\
nstead of DCCP-Data. In contrast, for CCID 3, TFRC Congestion)-2.75 E
(Control, DCCP B')100.8 231.6 Q 2.75(sa)-.605 G(ckno)-2.75 E
(wledgements generally need not be reliable, since the)-.275 E 2.75(yc)
-.165 G(ontain)-2.75 E(cumulati)100.8 244.6 Q .33 -.165(ve l)-.275 H
(oss rates; TFRC w).165 E(orks e)-.11 E -.165(ve)-.275 G 2.75(ni).165 G
2.75(fe)-2.75 G -.165(ve)-3.025 G
(ry DCCP-Ack is lost. Therefore, DCCP A).165 E(need ne)100.8 257.6 Q
-.165(ve)-.275 G 2.75(ra).165 G(ckno)-2.75 E(wledge an ackno)-.275 E
(wledgement.)-.275 E
(When communication is unidirectional, a single CCID---in the e)100.8
274.2 Q(xample, the A-to-B)-.165 E(CCID---controls both DCCPs' ackno)
100.8 287.2 Q(wledgements, in terms of their content, their)-.275 E
(frequenc)100.8 300.2 Q 1.43 -.715(y, a)-.165 H(nd so forth. F).715 E
(or bidirectional connections, the A-to-B CCID go)-.165 E -.165(ve)-.165
G(rns DCCP).165 E(B')100.8 313.2 Q 2.75(sa)-.605 G(ckno)-2.75 E
(wledgements \(including its acks of DCCP A)-.275 E 1.21 -.605('s a)
-1.221 H(cks\), while the B-to-A CCID).605 E(go)100.8 326.2 Q -.165(ve)
-.165 G(rns DCCP A).165 E 1.21 -.605('s a)-1.221 H(ckno).605 E
(wledgements.)-.275 E(DCCP A switches its ack pattern from bidirectiona\
l to unidirectional when it notices that)100.8 342.8 Q(DCCP B has gone \
quiescent. It switches from unidirectional to bidirectional when it mus\
t)100.8 355.8 Q(ackno)100.8 368.8 Q(wledge e)-.275 E -.165(ve)-.275 G
2.75(nas).165 G(ingle DCCP-Data or DCCP-DataAck pack)-2.75 E
(et from DCCP B. \(This)-.11 E
(includes the case where a single DCCP-Data or DCCP-DataAck pack)100.8
381.8 Q(et w)-.11 E(as lost in transit,)-.11 E
(which is detectable using the # NDP \214eld in the DCCP pack)100.8
394.8 Q(et header)-.11 E(.\))-.605 E(Each CCID de\214nes ho)100.8 411.4
Q 2.75(wt)-.275 G 2.75(od)-2.75 G(etect quiescence on that CCID, and ho)
-2.75 E 2.75(wt)-.275 G(hat CCID handles)-2.75 E(acks-of-acks on unidir\
ectional connections. The B-to-A CCID de\214nes when DCCP B has)100.8
424.4 Q(gone quiescent. Usually)100.8 437.4 Q 2.75(,t)-.715 G
(his happens when a period has passed without B sending an)-2.75 E 2.75
(yd)-.165 G(ata)-2.75 E(pack)100.8 450.4 Q(ets. F)-.11 E
(or CCID 2, this period is roughly tw)-.165 E 2.75(or)-.11 G
(ound-trip times.)-2.75 E(The A-to-B CCID)5.5 E(de\214nes ho)100.8 463.4
Q 2.75(wD)-.275 G
(CCP A handles acks-of-acks once DCCP B has gone quiescent.)-2.75 E/F1
11/Times-Bold@0 SF(8.2.)72 489.4 Q/F2 13/Times-Bold@0 SF
(Ack Piggybacking)5.5 E F0(Ackno)100.8 506 Q
(wledgements of A-to-B data MA)-.275 E 2.75(Yb)-1.155 G 2.75(ep)-2.75 G
(iggyback)-2.75 E(ed on data sent by DCCP B, as long)-.11 E
(as that does not delay the ackno)100.8 519 Q
(wledgement longer than the A-to-B CCID w)-.275 E(ould \214nd)-.11 E
(acceptable. Ho)100.8 532 Q(we)-.275 E -.165(ve)-.275 G .88 -.44(r, d)
.165 H(ata ackno).44 E(wledgements often require more than 4 bytes to e)
-.275 E(xpress. A)-.165 E(lar)100.8 545 Q(ge set of ackno)-.198 E
(wledgements prepended to a lar)-.275 E(ge data pack)-.198 E(et might e)
-.11 E(xceed the path')-.165 E(s)-.605 E(MTU. In this case, DCCP B SHOU\
LD send separate DCCP-Data and DCCP-Ack pack)100.8 558 Q(ets,)-.11 E
(or w)100.8 571 Q(ait, b)-.11 E
(ut not too long, for a smaller datagram.)-.22 E(Piggybacking is partic\
ularly common at DCCP A when the B-to-A half-connection is)100.8 587.6 Q
(quiescent---that is, when DCCP A is just ackno)100.8 600.6 Q
(wledging DCCP B')-.275 E 2.75(sa)-.605 G(ckno)-2.75 E(wledgements, as)
-.275 E(described abo)100.8 613.6 Q -.165(ve)-.165 G 2.75(.T).165 G
(here are three reasons to ackno)-2.75 E(wledge DCCP B')-.275 E 2.75(sa)
-.605 G(ckno)-2.75 E(wledgements: to)-.275 E(allo)100.8 626.6 Q 2.75(wD)
-.275 G(CCP B to free up information about pre)-2.75 E(viously ackno)
-.275 E(wledged data pack)-.275 E(ets from A;)-.11 E
(to shrink the size of future ackno)100.8 639.6 Q
(wledgements; and to manipulate the rate future)-.275 E(ackno)100.8
652.6 Q(wledgements are sent. Since these are secondary concerns, DCCP \
A can generally)-.275 E(af)100.8 665.6 Q(ford to w)-.275 E
(ait inde\214nitely for a data pack)-.11 E(et to piggyback its ackno)
-.11 E(wledgement onto.)-.275 E(An)100.8 682.2 Q 2.75(yr)-.165 G
(estrictions on ack piggybacking are described in the rele)-2.75 E -.275
(va)-.275 G(nt CCID').275 E 2.75(sp)-.605 G(ro\214le.)-2.75 E -.385(Ko)
72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E
195.038(ye Section)-.055 F 2.75(8.2. [P)2.75 F(age 37])-.165 E 0 Cg EP
%%Page: 38 38
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E/F1 11
/Times-Bold@0 SF(8.3.)72 85 Q/F2 13/Times-Bold@0 SF(Ack Ratio F)5.5 E
(eatur)-.325 E(e)-.234 E F0(Ack Ratio pro)100.8 101.6 Q
(vides a common mechanism by which CCIDs that clock ackno)-.165 E
(wledgements)-.275 E(of)100.8 114.6 Q 2.75(fo)-.275 G 2.75(fd)-2.75 G
(ata pack)-2.75 E
(ets can perform rudimentary congestion control on the ackno)-.11 E
(wledgement)-.275 E(stream. CCID 2, TCP-lik)100.8 127.6 Q 2.75(eC)-.11 G
(ongestion Control, uses Ack Ratio to limit the rate of its)-2.75 E
(ackno)100.8 140.6 Q(wledgement stream, for e)-.275 E
(xample. Some CCIDs ignore Ack Ratio, performing)-.165 E
(congestion control on ackno)100.8 153.6 Q(wledgements in some other w)
-.275 E(ay)-.11 E(.)-.715 E(Ack Ratio has feature number 3. The Ack Rat\
io feature located at DCCP B equals the ratio)100.8 170.2 Q
(of data pack)100.8 183.2 Q(ets sent by DCCP A to ackno)-.11 E
(wledgement pack)-.275 E(ets sent back by DCCP B. F)-.11 E(or)-.165 E
-.165(ex)100.8 196.2 S(ample, if it is set to four).165 E 2.75(,t)-.44 G
(hen DCCP B will send at least one ackno)-2.75 E(wledgement pack)-.275 E
(et)-.11 E(for e)100.8 209.2 Q -.165(ve)-.275 G(ry four data pack).165 E
(ets DCCP A sends. DCCP A sends a "Change\(Ack Ratio\)" option)-.11 E
(to DCCP B to change DCCP B')100.8 222.2 Q 2.75(sa)-.605 G(ck ratio.)
-2.75 E(An Ack Ratio option contains tw)100.8 238.8 Q 2.75(ob)-.11 G
(ytes of data: a sixteen-bit inte)-2.75 E(ger representing the ratio.)
-.165 E 2.75(An)100.8 251.8 S .55 -.275(ew c)-2.75 H
(onnection starts with Ack Ratio 2 for both DCCPs.).275 E
(This feature is non-ne)100.8 268.4 Q(gotiable.)-.165 E F1(8.4.)72 294.4
Q F2(Use Ack V)5.5 E(ector F)-1.3 E(eatur)-.325 E(e)-.234 E F0
(The Use Ack V)100.8 311 Q(ector feature lets DCCPs ne)-1.221 E
(gotiate whether the)-.165 E 2.75(ys)-.165 G(hould use Ack V)-2.75 E
(ector)-1.221 E(options to report congestion. Ack V)100.8 324 Q
(ector pro)-1.221 E(vides detailed loss information, and lets)-.165 E
(senders report back to their applications whether particular pack)100.8
337 Q(ets were dropped. Use Ack)-.11 E -1.221(Ve)100.8 350 S
(ctor is mandatory for some CCIDs, and optional for others.)1.221 E
(Use Ack V)100.8 366.6 Q(ector has feature number 4. The Use Ack V)
-1.221 E(ector feature located at DCCP B)-1.221 E
(speci\214es whether DCCP B MUST use Ack V)100.8 379.6 Q
(ector options on its ackno)-1.221 E(wledgements to)-.275 E
(DCCP A, although DCCP B MA)100.8 392.6 Q 2.75(Ys)-1.155 G(end Ack V)
-2.75 E(ector options e)-1.221 E -.165(ve)-.275 G 2.75(nw).165 G
(hen Use Ack V)-2.75 E(ector is)-1.221 E -.11(fa)100.8 405.6 S
(lse. DCCP A sends a "Change\(Use Ack V).11 E(ector)-1.221 E 2.75(,1)
-.44 G(\)" option to DCCP B to ask B to send)-2.75 E(Ack V)100.8 418.6 Q
(ector options as part of its ackno)-1.221 E(wledgement traf)-.275 E
(\214c.)-.275 E(Use Ack V)100.8 435.2 Q(ector feature v)-1.221 E
(alues are a single byte long. The recei)-.275 E -.165(ve)-.275 G 2.75
(rM).165 G(UST send Ack V)-2.75 E(ector)-1.221 E
(options if this byte is nonzero. A ne)100.8 448.2 Q 2.75(wc)-.275 G
(onnection starts with Use Ack V)-2.75 E(ector 0 for both)-1.221 E
(DCCPs.)100.8 461.2 Q F1(8.5.)72 487.2 Q F2(Ack V)5.5 E(ector Options)
-1.3 E F0(The Ack V)100.8 503.8 Q(ector gi)-1.221 E -.165(ve)-.275 G
2.75(sar).165 G(un-length encoded history of data pack)-2.75 E
(ets recei)-.11 E -.165(ve)-.275 G 2.75(da).165 G 2.75(tt)-2.75 G
(he client.)-2.75 E(Each byte of the v)100.8 516.8 Q(ector gi)-.165 E
-.165(ve)-.275 G 2.75(st).165 G(he state of that data pack)-2.75 E
(et in the loss history)-.11 E 2.75(,a)-.715 G(nd the)-2.75 E
(number of preceding pack)100.8 529.8 Q
(ets with the same state. The option')-.11 E 2.75(sd)-.605 G
(ata looks lik)-2.75 E 2.75(et)-.11 G(his:)-2.75 E/F3 11/Courier@0 SF
(+--------+--------+--------+--------+--------+--------)100.8 548.8 Q
(|001001??| Length |SSLLLLLL|SSLLLLLL|SSLLLLLL|)100.8 561.8 Q(...)13.2 E
(+--------+--------+--------+--------+--------+--------)100.8 574.8 Q
52.8(Type=37/38 \\___________)100.8 587.8 R(Vector ___________...)6.6 E
F0(The tw)100.8 610.4 Q 2.75(oA)-.11 G(ck V)-2.75 E
(ector options \(option types 37 and 38\) dif)-1.221 E
(fer only in the v)-.275 E(alues the)-.275 E 2.75(yi)-.165 G(mply)-2.75
E(for ECN Nonce Echo. Section 9.2 describes this further)100.8 623.4 Q
(.)-.605 E(The v)100.8 640 Q
(ector itself consists of a series of bytes, each of whose encoding is:)
-.165 E F3 6.6(01234567)107.4 659 S(+-+-+-+-+-+-+-+-+)100.8 672 Q
(|St | Run Length|)100.8 685 Q(+-+-+-+-+-+-+-+-+)100.8 698 Q F0 -.385
(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E
195.038(ye Section)-.055 F 2.75(8.5. [P)2.75 F(age 38])-.165 E 0 Cg EP
%%Page: 39 39
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E/F1 11
/Times-Bold@0 SF(St[ate]: 2 bits)129.6 85 Q(Run Length: 6 bits)129.6
101.6 Q F0(State occupies the most signi\214cant tw)100.8 118.2 Q 2.75
(ob)-.11 G(its of each byte, and can ha)-2.75 E .33 -.165(ve o)-.22 H
(ne of four v).165 E(alues:)-.275 E F1(0)129.6 134.8 Q F0 -.165(Pa)23.3
G(ck).165 E(et recei)-.11 E -.165(ve)-.275 G 2.75(d\().165 G
(and not ECN mark)-2.75 E(ed\).)-.11 E F1(1)129.6 151.4 Q F0 -.165(Pa)
23.3 G(ck).165 E(et recei)-.11 E -.165(ve)-.275 G 2.75(dE).165 G
(CN mark)-2.75 E(ed.)-.11 E F1(2)129.6 168 Q F0(Reserv)23.3 E(ed.)-.165
E F1(3)129.6 184.6 Q F0 -.165(Pa)23.3 G(ck).165 E(et not yet recei)-.11
E -.165(ve)-.275 G(d.).165 E(The \214rst byte in the \214rst Ack V)100.8
201.2 Q(ector option refers to the pack)-1.221 E(et indicated in the)
-.11 E(Ackno)100.8 214.2 Q
(wledgement Number; subsequent bytes refer to older pack)-.275 E
(ets. \(Ack V)-.11 E(ector MUST)-1.221 E(NO)100.8 227.2 Q 2.75(Tb)-.44 G
2.75(es)-2.75 G(ent on DCCP-Data and DCCP-Request pack)-2.75 E
(ets, which lack an Ackno)-.11 E(wledgement)-.275 E(Number)100.8 240.2 Q
(.\) If an Ack V)-.605 E(ector contains the decimal v)-1.221 E
(alues 0,192,3,64,5 and the)-.275 E(Ackno)100.8 253.2 Q
(wledgement Number is decimal 100, then:)-.275 E -.165(Pa)129.6 269.8 S
(ck).165 E(et 100 w)-.11 E(as recei)-.11 E -.165(ve)-.275 G 2.75(d\()
.165 G(Ackno)-2.75 E(wledgement Number 100, State 0, Run Length 0\).)
-.275 E -.165(Pa)129.6 286.4 S(ck).165 E(et 99 w)-.11 E
(as lost \(State 3, Run Length 0\).)-.11 E -.165(Pa)129.6 303 S(ck).165
E(ets 98, 97, 96 and 95 were recei)-.11 E -.165(ve)-.275 G 2.75(d\().165
G(State 0, Run Length 3\).)-2.75 E -.165(Pa)129.6 319.6 S(ck).165 E
(et 94 w)-.11 E(as ECN mark)-.11 E(ed \(State 1, Run Length 0\).)-.11 E
-.165(Pa)129.6 336.2 S(ck).165 E
(ets 93, 92, 91, 90, 89, and 88 were recei)-.11 E -.165(ve)-.275 G 2.75
(d\().165 G(State 0, Run Length 5\).)-2.75 E(Run lengths of more than 6\
4 must be encoded in multiple bytes. A single Ack V)100.8 352.8 Q(ector)
-1.221 E(option can ackno)100.8 365.8 Q(wledge up to 16192 data pack)
-.275 E(ets. Should more pack)-.11 E(ets need to be)-.11 E(ackno)100.8
378.8 Q(wledged than can \214t in 253 bytes of Ack V)-.275 E(ector)
-1.221 E 2.75(,t)-.44 G(hen multiple Ack V)-2.75 E(ector options)-1.221
E(can be sent. The second Ack V)100.8 391.8 Q(ector option will be)
-1.221 E(gin where the \214rst Ack V)-.165 E(ector option left)-1.221 E
(of)100.8 404.8 Q(f, and so forth.)-.275 E(Ack V)100.8 421.4 Q
(ector states are subject to tw)-1.221 E 2.75(og)-.11 G
(eneral constraints. \(These principles SHOULD also)-2.75 E(be follo)
100.8 434.4 Q(wed for other ackno)-.275 E
(wledgement mechanisms; referring to Ack V)-.275 E(ector states)-1.221 E
(simpli\214es their e)100.8 447.4 Q(xplanation.\))-.165 E 13.224
(\(1\) P)100.8 464 R(ack)-.165 E
(ets reported as State 0 or State 1 MUST ha)-.11 E .33 -.165(ve b)-.22 H
(een processed by the recei).165 E(ving)-.275 E
(DCCP stack. In particular)129.6 477 Q 2.75(,t)-.44 G
(heir options must ha)-2.75 E .33 -.165(ve b)-.22 H(een processed. An)
.165 E 2.75(yd)-.165 G(ata on the)-2.75 E(pack)129.6 490 Q
(et need not ha)-.11 E .33 -.165(ve b)-.22 H(een deli).165 E -.165(ve)
-.275 G(red to the recei).165 E(ving application; in f)-.275 E
(act, the data)-.11 E(may ha)129.6 503 Q .33 -.165(ve b)-.22 H
(een dropped.).165 E 13.224(\(2\) P)100.8 519.6 R(ack)-.165 E
(ets reported as State 3 MUST NO)-.11 E 2.75(Th)-.44 G -2.475 -.22(av e)
-2.75 H(been recei)2.97 E -.165(ve)-.275 G 2.75(db).165 G 2.75(yD)-2.75
G(CCP)-2.75 E 2.75(.F)-1.221 G(eature)-2.75 E(ne)129.6 532.6 Q
(gotiations and options on such pack)-.165 E(ets MUST NO)-.11 E 2.75(Th)
-.44 G -2.475 -.22(av e)-2.75 H(been processed, and the)2.97 E(Ackno)
129.6 545.6 Q(wledgement Number MUST NO)-.275 E 2.75(Tc)-.44 G
(orrespond to such a pack)-2.75 E(et.)-.11 E -.165(Pa)100.8 562.2 S(ck)
.165 E(ets dropped in the application')-.11 E 2.75(sr)-.605 G(ecei)-2.75
E .33 -.165(ve b)-.275 H(uf)-.055 E(fer SHOULD be reported as Recei)
-.275 E -.165(ve)-.275 G 2.75(do).165 G(r)-2.75 E(Recei)100.8 575.2 Q
-.165(ve)-.275 G 2.75(dE).165 G(CN Mark)-2.75 E
(ed \(States 0 and 1\), depending on their ECN state; such pack)-.11 E
(ets' ECN)-.11 E(Nonces MUST be included in the Nonce Echo. The Data Dr\
opped option informs the)100.8 588.2 Q(sender that some pack)100.8 601.2
Q(ets reported as recei)-.11 E -.165(ve)-.275 G 2.75(da).165 G
(ctually had their payloads dropped.)-2.75 E(One or more Ack V)100.8
617.8 Q(ector options that, together)-1.221 E 2.75(,r)-.44 G
(eport the status of more pack)-2.75 E(ets than ha)-.11 E -.165(ve)-.22
G(actually been sent SHOULD be considered in)100.8 630.8 Q -.275(va)-.44
G(lid. The recei).275 E(ving DCCP SHOULD either)-.275 E(ignore the opti\
ons or reset the connection with Reason set to "Option Error". P)100.8
643.8 Q(ack)-.165 E(ets)-.11 E(whose status has not reported by an)100.8
656.8 Q 2.75(yA)-.165 G(ck V)-2.75 E
(ector option SHOULD be treated as "not yet)-1.221 E(recei)100.8 669.8 Q
-.165(ve)-.275 G(d" \(State 3\) by the sender).165 E(.)-.605 E F1 2.75
(8.5.1. Ack)72 695.8 R -1.1(Ve)2.75 G(ctor Consistency)1.1 E F0 2.75(AD)
100.8 712.4 S(CCP sender will commonly recei)-2.75 E .33 -.165(ve m)
-.275 H(ultiple ackno).165 E(wledgements for some of its data)-.275 E
(pack)100.8 725.4 Q(ets. F)-.11 E(or instance, an HC-Sender might recei)
-.165 E .33 -.165(ve t)-.275 H .22 -.11(wo D).165 H(CCP-Acks with Ack V)
.11 E(ectors,)-1.221 E -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165
E(yd/P)-.11 E(adh)-.165 E 186.788(ye Section)-.055 F 2.75(8.5.1. [P)2.75
F(age 39])-.165 E 0 Cg EP
%%Page: 40 40
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(both of which contained information about sequence number 24.)100.8 85
Q(\(Because of cumulati)5.5 E -.165(ve)-.275 G
(acking, information about a sequence number is repeated in e)100.8 98 Q
-.165(ve)-.275 G(ry ack until the HC-Sender).165 E(ackno)100.8 111 Q
(wledges an ack. Perhaps the HC-Recei)-.275 E -.165(ve)-.275 G 2.75(ri)
.165 G 2.75(ss)-2.75 G(ending acks f)-2.75 E(aster than the HC-Sender)
-.11 E(is ackno)100.8 124 Q(wledging them.\) In a perfect w)-.275 E
(orld, the tw)-.11 E 2.75(oA)-.11 G(ck V)-2.75 E(ectors w)-1.221 E
(ould al)-.11 E -.11(wa)-.11 G(ys be).11 E(consistent. Ho)100.8 137 Q
(we)-.275 E -.165(ve)-.275 G .88 -.44(r, t).165 H(here are man).44 E
2.75(yr)-.165 G(easons wh)-2.75 E 2.75(yt)-.055 G(he)-2.75 E 2.75(ym)
-.165 G(ight not be:)-2.75 E 7.15<8354>100.8 153.6 S(he HC-Recei)-7.15 E
-.165(ve)-.275 G 2.75(rr).165 G(ecei)-2.75 E -.165(ve)-.275 G 2.75(dp)
.165 G(ack)-2.75 E
(et 24 between sending its acks, so the \214rst ack said 24)-.11 E -.11
(wa)111.8 166.6 S 2.75(sn).11 G(ot recei)-2.75 E -.165(ve)-.275 G 2.75
(d\().165 G(State 3\) and the second said it w)-2.75 E(as recei)-.11 E
-.165(ve)-.275 G 2.75(do).165 G 2.75(rE)-2.75 G(CN mark)-2.75 E
(ed \(State 0 or)-.11 E(1\).)111.8 179.6 Q 7.15<8354>100.8 196.2 S
(he HC-Recei)-7.15 E -.165(ve)-.275 G 2.75(rr).165 G(ecei)-2.75 E -.165
(ve)-.275 G 2.75(dp).165 G(ack)-2.75 E
(et 24 between sending its acks, and the netw)-.11 E(ork)-.11 E
(reordered the acks. In this case, the pack)111.8 209.2 Q
(et will appear to transition from State 0 or 1 to)-.11 E(State 3.)111.8
222.2 Q 7.15<8354>100.8 238.8 S(he netw)-7.15 E(ork duplicated pack)-.11
E(et 24, and one of the duplicates w)-.11 E(as ECN mark)-.11 E(ed. This)
-.11 E(might sho)111.8 251.8 Q 2.75(wu)-.275 G 2.75(pa)-2.75 G 2.75(sat)
-2.75 G(ransition between States 0 and 1.)-2.75 E 1.76 -.88(To c)100.8
268.4 T(ope with these situations, HC-Sender DCCP implementations SHOUL\
D combine).88 E(multiple recei)100.8 281.4 Q -.165(ve)-.275 G 2.75(dA)
.165 G(ck V)-2.75 E(ector states according to this table:)-1.221 E/F1 11
/Courier@0 SF(Received State)288.6 300.4 Q 19.8(013)301.8 313.4 S
(+---+---+---+)288.6 326.4 Q 6.6(0|0|1|0|)275.4 339.4 S 26.4
(Old +---+---+---+)235.8 352.4 R 6.6(1|1|1|1|)275.4 365.4 S 19.8
(State +---+---+---+)229.2 378.4 R 6.6(3|0|1|3|)275.4 391.4 S
(+---+---+---+)288.6 404.4 Q F0 1.76 -.88(To r)100.8 427 T
(ead the table, choose the ro).88 E 2.75(wc)-.275 G
(orresponding to the pack)-2.75 E(et')-.11 E 2.75(so)-.605 G
(ld state and the column)-2.75 E(corresponding to the pack)100.8 440 Q
(et')-.11 E 2.75(ss)-.605 G(tate in the ne)-2.75 E(wly recei)-.275 E
-.165(ve)-.275 G 2.75(dA).165 G(ck V)-2.75 E(ector)-1.221 E 2.75(,t)-.44
G(hen read the pack)-2.75 E(et')-.11 E(s)-.605 E(ne)100.8 453 Q 2.75(ws)
-.275 G(tate of)-2.75 E 2.75(ft)-.275 G(he table. The table is symmetri\
c about the main diagonal, so it is indif)-2.75 E(ferent)-.275 E
(to ack reordering.)100.8 466 Q(This table de\214nes ho)100.8 482.6 Q
2.75(wt)-.275 G(he HC-Sender should react to recei)-2.75 E -.165(ve)
-.275 G 2.75(dA).165 G(ck V)-2.75 E(ector states. This is)-1.221 E(equi)
100.8 495.6 Q -.275(va)-.275 G(lent to ho).275 E 2.75(wt)-.275 G
(he HC-Recei)-2.75 E -.165(ve)-.275 G 2.75(rs).165 G
(hould collect information about recei)-2.75 E -.165(ve)-.275 G 2.75(dp)
.165 G(ack)-2.75 E(ets, with)-.11 E(tw)100.8 508.6 Q 2.75(os)-.11 G
(ymmetric e)-2.75 E(xceptions: when one State is 0 \(recei)-.165 E -.165
(ve)-.275 G 2.75(dn).165 G(on-mark)-2.75 E(ed\) and the other is 1)-.11
E(\(recei)100.8 521.6 Q -.165(ve)-.275 G 2.75(dE).165 G(CN mark)-2.75 E
(ed\). According to the table, the HC-Sender should react to this)-.11 E
(combination of Ack V)100.8 534.6 Q
(ector information as if only State 1 had been reported. But what state)
-1.221 E(should the HC-Recei)100.8 547.6 Q -.165(ve)-.275 G 2.75(rr).165
G(eport in Ack V)-2.75 E(ector if tw)-1.221 E 2.75(od)-.11 G
(uplicates are recei)-2.75 E -.165(ve)-.275 G 2.75(df).165 G(or a pack)
-2.75 E(et,)-.11 E(and only one is ECN mark)100.8 560.6 Q(ed? W)-.11 E
2.75(ee)-.88 G(xplicitly allo)-2.915 E 2.75(wt)-.275 G(he HC-Recei)-2.75
E -.165(ve)-.275 G 2.75(rt).165 G 2.75(or)-2.75 G(eport the)-2.75 E
(combination as State 0 \(recei)100.8 573.6 Q -.165(ve)-.275 G 2.75(dn)
.165 G(on-mark)-2.75 E(ed\) or State 1. After all, one duplicate w)-.11
E(as non-)-.11 E(mark)100.8 586.6 Q(ed, and depending on ho)-.11 E 2.75
(wm)-.275 G(uch state the HC-Recei)-2.75 E -.165(ve)-.275 G 2.75(rk).165
G(eeps about pack)-2.86 E(ets it)-.11 E(recei)100.8 599.6 Q -.165(ve)
-.275 G(s, it might be impossible to change a pack).165 E
(et from State 0 to State 1 and preserv)-.11 E(e)-.165 E
(correct ECN Nonce Echo information.)100.8 612.6 Q 2.75(AH)100.8 629.2 S
(C-Sender MA)-2.75 E 2.75(Yc)-1.155 G(hoose to thro)-2.75 E 2.75(wa)
-.275 G -.11(wa)-2.915 G 2.75(yo).11 G
(ld information gleaned from the HC-Recei)-2.75 E -.165(ve)-.275 G(r')
.165 E(s)-.605 E(Ack V)100.8 642.2 Q
(ectors, in which case it MUST ignore ne)-1.221 E(wly recei)-.275 E
-.165(ve)-.275 G 2.75(da).165 G(ckno)-2.75 E(wledgements from the)-.275
E(HC-Recei)100.8 655.2 Q -.165(ve)-.275 G 2.75(rf).165 G
(or those old pack)-2.75 E(ets. It is often kinder to sa)-.11 E .33
-.165(ve r)-.22 H(ecent Ack V).165 E(ector information)-1.221 E(for a w\
hile, so that the HC-Sender can undo its reaction to presumed congestio\
n when a)100.8 668.2 Q("lost" pack)100.8 681.2 Q(et une)-.11 E
(xpectedly sho)-.165 E
(ws up \(the transition from State 3 to State 0\).)-.275 E -.385(Ko)72
769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 186.788
(ye Section)-.055 F 2.75(8.5.1. [P)2.75 F(age 40])-.165 E 0 Cg EP
%%Page: 41 41
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E/F1 11
/Times-Bold@0 SF 2.75(8.5.2. Ack)72 85 R -1.1(Ve)2.75 G(ctor Co)1.1 E
-.11(ve)-.11 G(rage).11 E F0 1.76 -.88(We c)100.8 101.6 T(an di).88 E
(vide the pack)-.275 E(ets that ha)-.11 E .33 -.165(ve b)-.22 H
(een sent from an HC-Sender to an HC-Recei).165 E -.165(ve)-.275 G 2.75
(ri).165 G(nto)-2.75 E
(four roughly contiguous groups. From oldest to youngest, these are:)
100.8 114.6 Q 13.224(\(1\) P)100.8 131.2 R(ack)-.165 E
(ets already ackno)-.11 E(wledged by the HC-Recei)-.275 E -.165(ve)-.275
G .88 -.44(r, w).165 H(here the HC-Recei).44 E -.165(ve)-.275 G 2.75(rk)
.165 G(no)-2.75 E(ws)-.275 E(that the HC-Sender has de\214nitely recei)
129.6 144.2 Q -.165(ve)-.275 G 2.75(dt).165 G(he ackno)-2.75 E
(wledgements.)-.275 E 13.224(\(2\) P)100.8 160.8 R(ack)-.165 E
(ets already ackno)-.11 E(wledged by the HC-Recei)-.275 E -.165(ve)-.275
G .88 -.44(r, w).165 H(here the HC-Recei).44 E -.165(ve)-.275 G 2.75(rc)
.165 G(annot)-2.75 E(be sure that the HC-Sender has recei)129.6 173.8 Q
-.165(ve)-.275 G 2.75(dt).165 G(he ackno)-2.75 E(wledgements.)-.275 E
13.224(\(3\) P)100.8 190.4 R(ack)-.165 E(ets not yet ackno)-.11 E
(wledged by the HC-Recei)-.275 E -.165(ve)-.275 G -.605(r.).165 G 13.224
(\(4\) P)100.8 207 R(ack)-.165 E(ets not yet recei)-.11 E -.165(ve)-.275
G 2.75(db).165 G 2.75(yt)-2.75 G(he HC-Recei)-2.75 E -.165(ve)-.275 G
-.605(r.).165 G(The union of groups 2 and 3 is called the Unackno)100.8
223.6 Q(wledged W)-.275 E(indo)-.44 E 1.43 -.715(w. G)-.275 H(enerally)
.715 E 2.75(,e)-.715 G -.165(ve)-3.025 G(ry Ack).165 E -1.221(Ve)100.8
236.6 S(ctor generated by the HC-Recei)1.221 E -.165(ve)-.275 G 2.75(rw)
.165 G(ill co)-2.75 E -.165(ve)-.165 G 2.75(rt).165 G(he whole Unackno)
-2.75 E(wledged W)-.275 E(indo)-.44 E(w: Ack)-.275 E -1.221(Ve)100.8
249.6 S(ctor ackno)1.221 E(wledgements are cumulati)-.275 E -.165(ve)
-.275 G 2.75(.\().165 G(This simpli\214es Ack V)-2.75 E
(ector maintenance at the)-1.221 E(HC-Recei)100.8 262.6 Q -.165(ve)-.275
G(r; see Section 8.9, belo).165 E -.715(w.)-.275 G 2.75(\)A).715 G 2.75
(sp)-2.75 G(ack)-2.75 E(ets are recei)-.11 E -.165(ve)-.275 G
(d, this windo).165 E 2.75(wb)-.275 G(oth gro)-2.75 E(ws on)-.275 E
(the right and shrinks on the left. It gro)100.8 275.6 Q
(ws because there are more pack)-.275 E(ets, and shrinks)-.11 E
(because the data pack)100.8 288.6 Q(ets' Ackno)-.11 E
(wledgement Numbers will ackno)-.275 E(wledge pre)-.275 E(vious)-.275 E
(ackno)100.8 301.6 Q(wledgements, mo)-.275 E(ving pack)-.165 E
(ets from group 2 into group 1.)-.11 E F1(8.6.)72 327.6 Q/F2 13
/Times-Bold@0 SF(Slo)5.5 E 3.25(wR)-.13 G(ecei)-3.25 E -.13(ve)-.13 G
3.25(rO).13 G(ption)-3.25 E F0(An HC-Recei)100.8 344.2 Q -.165(ve)-.275
G 2.75(rs).165 G(ends the Slo)-2.75 E 2.75(wR)-.275 G(ecei)-2.75 E -.165
(ve)-.275 G 2.75(ro).165 G
(ption to its sender to indicate that it is ha)-2.75 E(ving)-.22 E
(trouble k)100.8 357.2 Q(eeping up with the sender')-.11 E 2.75(sd)-.605
G(ata. The HC-Sender SHOULD NO)-2.75 E 2.75(Ti)-.44 G(ncrease its)-2.75
E
(sending rate for approximately one round-trip time after seeing a pack)
100.8 370.2 Q(et with a Slo)-.11 E(w)-.275 E(Recei)100.8 383.2 Q -.165
(ve)-.275 G 2.75(ro).165 G(ption. Ho)-2.75 E(we)-.275 E -.165(ve)-.275 G
.88 -.44(r, t).165 H(he Slo).44 E 2.75(wR)-.275 G(ecei)-2.75 E -.165(ve)
-.275 G 2.75(ro).165 G(ption does not indicate congestion, and the)-2.75
E(HC-Sender need not reduce its sending rate. \(If necessary)100.8 396.2
Q 2.75(,t)-.715 G(he recei)-2.75 E -.165(ve)-.275 G 2.75(rc).165 G
(an force the sender)-2.75 E(to slo)100.8 409.2 Q 2.75(wd)-.275 G -.275
(ow)-2.75 G 2.75(nb).275 G 2.75(yd)-2.75 G(ropping pack)-2.75 E
(ets or reporting f)-.11 E(alse ECN marks.\) APIs SHOULD let)-.11 E
(recei)100.8 422.2 Q -.165(ve)-.275 G 2.75(ra).165 G
(pplications set Slo)-2.75 E 2.75(wR)-.275 G(ecei)-2.75 E -.165(ve)-.275
G .88 -.44(r, a).165 H(nd sending applications determine whether or not)
.44 E(their recei)100.8 435.2 Q -.165(ve)-.275 G(rs are Slo).165 E -.715
(w.)-.275 G(The Slo)100.8 451.8 Q 2.75(wR)-.275 G(ecei)-2.75 E -.165(ve)
-.275 G 2.75(ro).165 G(ption tak)-2.75 E(es just one byte:)-.11 E/F3 11
/Courier@0 SF(+--------+)100.8 470.8 Q(|00000010|)100.8 483.8 Q
(+--------+)100.8 496.8 Q(Type=2)107.4 509.8 Q F0(Slo)100.8 532.4 Q 2.75
(wR)-.275 G(ecei)-2.75 E -.165(ve)-.275 G 2.75(rd).165 G
(oes not specify wh)-2.75 E 2.75(yt)-.055 G(he recei)-2.75 E -.165(ve)
-.275 G 2.75(ri).165 G 2.75(sh)-2.75 G -.22(av)-2.75 G(ing trouble k).22
E(eeping up with the)-.11 E(sender)100.8 545.4 Q 2.75(.P)-.605 G
(ossible reasons include lack of b)-2.75 E(uf)-.22 E(fer space, CPU o)
-.275 E -.165(ve)-.165 G(rload, and application).165 E
(quotas. A sending application might react to Slo)100.8 558.4 Q 2.75(wR)
-.275 G(ecei)-2.75 E -.165(ve)-.275 G 2.75(rb).165 G 2.75(yr)-2.75 G
(educing its sending rate or)-2.75 E
(by switching to a lossier compression algorithm. Ho)100.8 571.4 Q(we)
-.275 E -.165(ve)-.275 G .88 -.44(r, a s).165 H
(mart sender might actually).44 E
(*increase* its sending rate in response to Slo)100.8 584.4 Q 2.75(wR)
-.275 G(ecei)-2.75 E -.165(ve)-.275 G .88 -.44(r, b).165 H 2.75(ys).44 G
(witching to a less-compressed)-2.75 E
(sending format. \(A highly-compressed data format might o)100.8 597.4 Q
-.165(ve)-.165 G(rwhelm a slo).165 E 2.75(wC)-.275 G(PU more)-2.75 E(se\
riously than the higher memory requirements of a less-compressed data f\
ormat.\) This)100.8 610.4 Q(tension between transfer size \(less compre\
ssion means more congestion\) and processing)100.8 623.4 Q
(speed \(less compression means less processing\) cannot be resolv)100.8
636.4 Q(ed in general.)-.165 E(Slo)100.8 653 Q 2.75(wR)-.275 G(ecei)
-2.75 E -.165(ve)-.275 G 2.75(ri).165 G(mplements a portion of TCP')
-2.75 E 2.75(sr)-.605 G(ecei)-2.75 E .33 -.165(ve w)-.275 H(indo).165 E
2.75(wf)-.275 G(unctionality)-2.75 E 5.5(.W)-.715 G 2.75(eb)-6.38 G
(elie)-2.75 E -.165(ve)-.275 G(recei)100.8 666 Q -.165(ve)-.275 G 2.75
(ro).165 G(perating systems and applications will \214nd it much easier\
 to send Slo)-2.75 E 2.75(wR)-.275 G(ecei)-2.75 E -.165(ve)-.275 G(r)
.165 E(when appropriate than the)100.8 679 Q 2.75(yc)-.165 G
(urrently \214nd it to correctly set a TCP recei)-2.75 E .33 -.165(ve w)
-.275 H(indo).165 E -.715(w.)-.275 G -.385(Ko)72 769 S(hler/Handle).385
E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 195.038(ye Section)-.055 F 2.75
(8.6. [P)2.75 F(age 41])-.165 E 0 Cg EP
%%Page: 42 42
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E/F1 11
/Times-Bold@0 SF(8.7.)72 85 Q/F2 13/Times-Bold@0 SF(Data Dr)5.5 E
(opped Option)-.234 E F0
(The Data Dropped option indicates that some pack)100.8 101.6 Q
(ets reported as recei)-.11 E -.165(ve)-.275 G 2.75(da).165 G
(ctually had)-2.75 E
(their data dropped before it reached the application. The sender')100.8
114.6 Q 2.75(sc)-.605 G(ongestion control)-2.75 E(mechanism MA)100.8
127.6 Q 2.75(Yr)-1.155 G(eact to data-dropped pack)-2.75 E
(ets; such responses MA)-.11 E 2.75(Yb)-1.155 G 2.75(el)-2.75 G(ess se)
-2.75 E -.165(ve)-.275 G(re than).165 E
(responses triggered by a lost or mark)100.8 140.6 Q(ed pack)-.11 E
(et. \(F)-.11 E(or instance, a windo)-.165 E(wed mechanism)-.275 E
(might subtract a constant v)100.8 153.6 Q
(alue from its congestion windo)-.275 E 1.43 -.715(w, r)-.275 H
(ather than cut it in half.\)).715 E(When ECN-mark)100.8 166.6 Q
(ed pack)-.11 E(ets are included in Data Dropped, the sender')-.11 E
2.75(sc)-.605 G(ongestion control)-2.75 E
(mechanism MUST react to the ECN marks as usual.)100.8 179.6 Q
(The option')100.8 196.2 Q 2.75(sd)-.605 G(ata looks lik)-2.75 E 2.75
(et)-.11 G(his:)-2.75 E/F3 11/Courier@0 SF
(+--------+--------+--------+--------+--------+--------)100.8 215.2 Q
(|00100111| Length | Block)100.8 228.2 Q 6.6(|B)13.2 G 6.6(lock |)-6.6 F
6.6(Block | ...)6.6 F
(+--------+--------+--------+--------+--------+--------)100.8 241.2 Q
59.4(Type=39 \\___________)107.4 254.2 R(Vector ___________ ...)6.6 E F0
(The v)100.8 273.2 Q
(ector itself consists of a series of bytes, called Blocks,)-.165 E
(each of whose encoding)5.5 E(corresponds to one of these choices:)100.8
286.2 Q F3 99 6.6(01234567 01234567)107.4 305.2 T 99
(+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+)100.8 318.2 R(|0| Run Length)100.8
331.2 Q 46.2(|o)13.2 G 46.2(r|)-46.2 G(1|Dr St|Run Len|)-46.2 E 99
(+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+)100.8 344.2 R(Normal Block)114
357.2 Q(Drop Block)145.2 E F0
(The \214rst byte in the \214rst Data Dropped option refers to the pack)
100.8 379.8 Q(et indicated in the)-.11 E(Ackno)100.8 392.8 Q
(wledgement Number; subsequent bytes refer to older pack)-.275 E
(ets. \(Data Dropped MUST)-.11 E(NO)100.8 405.8 Q 2.75(Tb)-.44 G 2.75
(es)-2.75 G(ent on DCCP-Data or DCCP-Request pack)-2.75 E
(ets, which lack an Ackno)-.11 E(wledgement)-.275 E(Number)100.8 418.8 Q
(.\) Normal Blocks, which ha)-.605 E .33 -.165(ve h)-.22 H
(igh bit 0, indicate that an).165 E 2.75(yr)-.165 G(ecei)-2.75 E -.165
(ve)-.275 G 2.75(dp).165 G(ack)-2.75 E(ets in the)-.11 E
(Run Length had their data deli)100.8 431.8 Q -.165(ve)-.275 G
(red to the application. Drop Blocks, which ha).165 E .33 -.165(ve h)
-.22 H(igh bit 1,).165 E(indicate that recei)100.8 444.8 Q -.165(ve)
-.275 G 2.75(dp).165 G(ack)-2.75 E
(ets in the Run Len[gth] were not deli)-.11 E -.165(ve)-.275 G
(red as usual. The 3-bit).165 E
(Dr[op] St[ate] \214eld says what happened; generally)100.8 457.8 Q 2.75
(,n)-.715 G 2.75(od)-2.75 G(ata from that pack)-2.75 E(et reached the)
-.11 E(application. P)100.8 470.8 Q(ack)-.165 E
(ets reported as "not yet recei)-.11 E -.165(ve)-.275 G
(d" MUST be included in Normal Blocks;).165 E(pack)100.8 483.8 Q
(ets not co)-.11 E -.165(ve)-.165 G(red by an).165 E 2.75(yD)-.165 G
(ata Dropped option are treated as if the)-2.75 E 2.75(yw)-.165 G
(ere in a Normal)-2.75 E
(Block. De\214ned Drop States for Drop Blocks are:)100.8 496.8 Q F1(0)
129.6 513.4 Q F0 -.165(Pa)23.3 G(ck).165 E
(et data dropped due to protocol constraints. F)-.11 E(or e)-.165 E
(xample, the data w)-.165 E(as)-.11 E(included on a DCCP-Request pack)
158.4 526.4 Q(et, and the recei)-.11 E(ving application does not)-.275 E
(allo)158.4 539.4 Q 2.75(wt)-.275 G(hat piggybacking; or the data w)
-2.75 E(as sent during an important feature)-.11 E(ne)158.4 552.4 Q
(gotiation.)-.165 E F1(1)129.6 569 Q F0 -.165(Pa)23.3 G(ck).165 E
(et data dropped in the recei)-.11 E .33 -.165(ve b)-.275 H(uf)-.055 E
(fer)-.275 E(.)-.605 E F1(2)129.6 585.6 Q F0 -.165(Pa)23.3 G(ck).165 E
(et data dropped due to corruption.)-.11 E F1(3)129.6 602.2 Q F0 -.165
(Pa)23.3 G(ck).165 E(et data corrupted, b)-.11 E(ut deli)-.22 E -.165
(ve)-.275 G(red to the application an).165 E(yw)-.165 E(ay)-.11 E(.)
-.715 E F1(4)129.6 618.8 Q F0 -.165(Pa)23.3 G(ck).165 E
(et data dropped because the application is no longer listening.)-.11 E
F1(5-7)129.6 635.4 Q F0(Reserv)14.137 E(ed.)-.165 E -.165(Fo)100.8 652 S
2.75(re).165 G(xample, if a Data Dropped option contains the decimal v)
-2.915 E(alues 0,144,3,146, the)-.275 E(Ackno)100.8 665 Q
(wledgement Number is 100, and an Ack V)-.275 E(ector reported all pack)
-1.221 E(ets as recei)-.11 E -.165(ve)-.275 G(d,).165 E(then:)100.8 678
Q -.165(Pa)129.6 694.6 S(ck).165 E(et 100 w)-.11 E(as recei)-.11 E -.165
(ve)-.275 G 2.75(d\().165 G(Ackno)-2.75 E
(wledgement Number 100, Normal Block, Run)-.275 E(Length 0\).)129.6
707.6 Q -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E
(adh)-.165 E 195.038(ye Section)-.055 F 2.75(8.7. [P)2.75 F(age 42])
-.165 E 0 Cg EP
%%Page: 43 43
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E -.165
(Pa)129.6 85 S(ck).165 E(et 99 w)-.11 E(as dropped in the recei)-.11 E
.33 -.165(ve b)-.275 H(uf)-.055 E
(fer \(Drop Block, Drop State 1, Run Length)-.275 E(0\).)129.6 98 Q
-.165(Pa)129.6 114.6 S(ck).165 E(ets 98, 97, 96, and 95 were recei)-.11
E -.165(ve)-.275 G 2.75(d\().165 G(Normal Block, Run Length 3\).)-2.75 E
-.165(Pa)129.6 131.2 S(ck).165 E
(ets 95, 94, and 93 were dropped in the recei)-.11 E .33 -.165(ve b)
-.275 H(uf)-.055 E(fer \(Drop Block, Drop State 1,)-.275 E
(Run Length 2\).)129.6 144.2 Q(Run lengths of more than 128 \(for Norma\
l Blocks\) or 16 \(for Drop Blocks\) must be)100.8 160.8 Q
(encoded in multiple Blocks. A single Data Dropped option can ackno)
100.8 173.8 Q(wledge up to 32384)-.275 E(Normal Block data pack)100.8
186.8 Q(ets, although the recei)-.11 E -.165(ve)-.275 G 2.75(rS).165 G
(HOULD NO)-2.75 E 2.75(Ts)-.44 G(end a Data Dropped)-2.75 E
(option when all rele)100.8 199.8 Q -.275(va)-.275 G(nt pack).275 E
(ets \214t into Normal Blocks. Should more pack)-.11 E(ets need to be)
-.11 E(ackno)100.8 212.8 Q(wledged than can \214t in 253 bytes of Data \
Dropped, then multiple Data Dropped)-.275 E(options can be sent.)100.8
225.8 Q(The second option will be)5.5 E
(gin where the \214rst option left of)-.165 E(f, and so)-.275 E(forth.)
100.8 238.8 Q(One or more Data Dropped options that, together)100.8
255.4 Q 2.75(,r)-.44 G(eport the status of more pack)-2.75 E(ets than)
-.11 E(ha)100.8 268.4 Q .33 -.165(ve b)-.22 H
(een sent, or that change the status of a pack).165 E
(et, or that disagree with Ack V)-.11 E(ector or)-1.221 E(equi)100.8
281.4 Q -.275(va)-.275 G(lent options \(by reporting a "not yet recei)
.275 E -.165(ve)-.275 G(d" pack).165 E(et as "dropped in the recei)-.11
E -.165(ve)-.275 G -.22(bu)100.8 294.4 S -.275(ff).22 G(er", for e).275
E(xample\), SHOULD be considered in)-.165 E -.275(va)-.44 G
(lid. The recei).275 E(ving DCCP SHOULD)-.275 E(respond to in)100.8
307.4 Q -.275(va)-.44 G(lid Data Dropped options by ignoring them or by\
 resetting the connection).275 E(with Reason set to "Option Error".)
100.8 320.4 Q(Drop State 4 \("application no longer listening"\) means \
the application running at the)100.8 337 Q
(endpoint that sent the option is no longer listening for data. F)100.8
350 Q(or e)-.165 E(xample, a serv)-.165 E(er might)-.165 E
(close its recei)100.8 363 Q(ving half-connection to ne)-.275 E 2.75(wd)
-.275 G(ata after recei)-2.75 E(ving a complete request from the)-.275 E
(client. This w)100.8 376 Q(ould limit the amount of state the serv)-.11
E(er w)-.165 E(ould e)-.11 E(xpend on incoming data, and)-.165 E(thus r\
educe the potential damage from certain denial-of-service attacks. A Da\
ta Dropped)100.8 389 Q
(option containing Drop State 4 SHOULD be sent whene)100.8 402 Q -.165
(ve)-.275 G 2.75(rr).165 G(ecei)-2.75 E -.165(ve)-.275 G 2.75(dd).165 G
(ata is ignored due to)-2.75 E 2.75(an)100.8 415 S
(on-listening application. Once a DCCP reports Drop State 4 for a pack)
-2.75 E(et, it SHOULD)-.11 E(report Drop State 4 for e)100.8 428 Q -.165
(ve)-.275 G(ry succeeding data pack).165 E
(et on that half-connection; once a DCCP)-.11 E(recei)100.8 441 Q -.165
(ve)-.275 G 2.75(saD).165 G(rop State 4 report, it SHOULD e)-2.75 E
(xpect that no more data will e)-.165 E -.165(ve)-.275 G 2.75(rb).165 G
2.75(ed)-2.75 G(eli)-2.75 E -.165(ve)-.275 G(red).165 E
(to the other endpoint')100.8 454 Q 2.75(sa)-.605 G
(pplication. A DCCP recei)-2.75 E(ving Drop State 4 MA)-.275 E 2.75(Yr)
-1.155 G(eport this e)-2.75 E -.165(ve)-.275 G(nt).165 E
(to the application. \(Pre)100.8 467 Q(vious v)-.275 E
(ersions of this speci\214cation used a "Buf)-.165 E(fer Closed" option)
-.275 E(instead of Drop State 4.\))100.8 480 Q/F1 11/Times-Bold@0 SF
(8.8.)72 506 Q/F2 13/Times-Bold@0 SF -.13(Pa)5.5 G
(yload Checksum Option).13 E F0(The P)100.8 522.6 Q
(ayload Checksum option holds the 16 bit one')-.165 E 2.75(sc)-.605 G
(omplement of the one')-2.75 E 2.75(sc)-.605 G(omplement)-2.75 E
(sum of all 16 bit w)100.8 535.6 Q
(ords in the DCCP payload \(the data contained in a DCCP-Request,)-.11 E
(DCCP-Response, DCCP-Data, DCCP-DataAck, or DCCP-Mo)100.8 548.6 Q .33
-.165(ve p)-.165 H(ack).165 E(et\). When combined)-.11 E(with a Checksu\
m Length of less than 15, this lets DCCP distinguish between corruption\
 in)100.8 561.6 Q 2.75(ap)100.8 574.6 S(ack)-2.75 E(et')-.11 E 2.75(sp)
-.605 G(ayload and corruption in its header)-2.75 E 2.75(.C)-.605 G
(orrupted-header pack)-2.75 E(ets MUST be treated)-.11 E
(as dropped by the netw)100.8 587.6 Q(ork, while corrupted-payload pack)
-.11 E(ets MA)-.11 E 2.75(Yb)-1.155 G 2.75(et)-2.75 G(reated dif)-2.75 E
(ferently;)-.275 E(for e)100.8 600.6 Q(xample, the sender')-.165 E 2.75
(sr)-.605 G
(esponse to corruption might be less stringent than its response to)
-2.75 E(congestion. A lo)100.8 613.6 Q 2.75(wC)-.275 G
(hecksum Length lets DCCP process pack)-2.75 E(ets with v)-.11 E
(alid headers, e)-.275 E -.165(ve)-.275 G 2.75(ni).165 G(f)-2.75 E
(the payload is corrupt, a)100.8 626.6 Q -.22(vo)-.22 G
(iding the congestion response to corruption. The P).22 E(ayload)-.165 E
(Checksum option then lets DCCP detect payload corruption, and therefor\
e a)100.8 639.6 Q -.22(vo)-.22 G(id deli).22 E -.165(ve)-.275 G(ring)
.165 E(bad data to the application.)100.8 652.6 Q(The option')100.8
669.2 Q 2.75(sd)-.605 G(ata looks lik)-2.75 E 2.75(et)-.11 G(his:)-2.75
E -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)
-.165 E 195.038(ye Section)-.055 F 2.75(8.8. [P)2.75 F(age 43])-.165 E 0
Cg EP
%%Page: 44 44
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E/F1 11
/Courier@0 SF(+--------+--------+--------+--------+)100.8 85 Q 19.8
(|00101101|00000100| Checksum)100.8 98 R(|)33 E
(+--------+--------+--------+--------+)100.8 111 Q 6.6(Type=45 Length=4)
107.4 124 R F0(The recei)100.8 146.6 Q(ving DCCP MUST check the P)-.275
E(ayload Checksum')-.165 E 2.75(sv)-.605 G(alue ag)-3.025 E
(ainst the actual)-.055 E(payload checksum. If the v)100.8 159.6 Q
(alues dif)-.275 E(fer)-.275 E 2.75(,t)-.44 G(he pack)-2.75 E(et')-.11 E
2.75(sd)-.605 G(ata SHOULD be dropped, and)-2.75 E(reported as dropped \
due to corruption \(Drop State 2\) using a Data Dropped option \(Sectio\
n)100.8 172.6 Q(8.7\). Optionally)100.8 185.6 Q 2.75(,D)-.715 G(CCP MA)
-2.75 E 2.75(Yp)-1.155 G(ro)-2.75 E(vide an API through which the recei)
-.165 E(ving application)-.275 E(could request deli)100.8 198.6 Q -.165
(ve)-.275 G(ry of kno).165 E(wn-corrupt data. When that API is acti)
-.275 E -.165(ve)-.275 G 2.75(,t).165 G(he pack)-2.75 E(et')-.11 E 2.75
(sd)-.605 G(ata)-2.75 E(SHOULD be deli)100.8 211.6 Q -.165(ve)-.275 G
(red, b).165 E(ut reported as deli)-.22 E -.165(ve)-.275 G
(red corrupt \(Drop State 3\) using a Data).165 E
(Dropped option. In either case, the pack)100.8 224.6 Q
(et will be reported as Recei)-.11 E -.165(ve)-.275 G 2.75(do).165 G
2.75(rR)-2.75 G(ecei)-2.75 E -.165(ve)-.275 G 2.75(dE).165 G(CN)-2.75 E
(Mark)100.8 237.6 Q(ed by Ack V)-.11 E(ector or equi)-1.221 E -.275(va)
-.275 G(lent options.).275 E(See Section 18.1 for a discussion of the i\
ssues related to the use of this option.)100.8 254.2 Q/F2 11
/Times-Bold@0 SF(8.9.)72 280.2 Q/F3 13/Times-Bold@0 SF(Ack V)5.5 E
(ector Implementation Notes)-1.3 E F0
(This section discusses particulars of DCCP ackno)100.8 296.8 Q
(wledgement handling, in the conte)-.275 E(xt of)-.165 E
(an abstract implementation for Ack V)100.8 309.8 Q(ector)-1.221 E 2.75
(.I)-.605 G 2.75(ti)-2.75 G 2.75(si)-2.75 G(nformati)-2.75 E .33 -.165
(ve r)-.275 H(ather than normati).165 E -.165(ve)-.275 G(.).165 E
(The \214rst part of our implementation runs at the HC-Recei)100.8 326.4
Q -.165(ve)-.275 G .88 -.44(r, a).165 H(nd therefore ackno).44 E
(wledges)-.275 E(data pack)100.8 339.4 Q(ets. It generates Ack V)-.11 E
(ector options. The implementation has the follo)-1.221 E(wing)-.275 E
(characteristics:)100.8 352.4 Q 7.15<8341>100.8 369 S 2.75(tm)-7.15 G
(ost one byte of state per ackno)-2.75 E(wledged pack)-.275 E(et.)-.11 E
7.15<834f>100.8 385.6 S(\(1\) time to update that state when a ne)-7.15
E 2.75(wp)-.275 G(ack)-2.75 E(et arri)-.11 E -.165(ve)-.275 G 2.75(s\()
.165 G(normal case\).)-2.75 E 7.15<8343>100.8 402.2 S(umulati)-7.15 E
.33 -.165(ve a)-.275 H(ckno).165 E(wledgements.)-.275 E 7.15<8351>100.8
418.8 S(uick remo)-7.15 E -.275(va)-.165 G 2.75(lo).275 G 2.75(fo)-2.75
G(ld state.)-2.75 E(The basic data structure is a circular b)100.8 435.4
Q(uf)-.22 E(fer containing information about ackno)-.275 E(wledged)-.275
E(pack)100.8 448.4 Q(ets. Each byte in this b)-.11 E(uf)-.22 E
(fer contains a state and run length; the state can be 0 \(pack)-.275 E
(et)-.11 E(recei)100.8 461.4 Q -.165(ve)-.275 G(d\), 1 \(pack).165 E
(et ECN mark)-.11 E(ed\), or 3 \(pack)-.11 E(et not yet recei)-.11 E
-.165(ve)-.275 G(d\). The li).165 E .33 -.165(ve p)-.275 H
(ortion of the).165 E -.22(bu)100.8 474.4 S -.275(ff).22 G(er is mark)
.275 E(ed of)-.11 E 2.75(fb)-.275 G 2.75(yh)-2.75 G
(ead and tail pointers, each mark)-2.75 E
(ed with the HC-Sender sequence)-.11 E
(number to which it corresponds. The b)100.8 487.4 Q(uf)-.22 E
(fer also stores a single-bit ECN Nonce Echo,)-.275 E
(which equals the one-bit sum of the ECN Nonces recei)100.8 500.4 Q
-.165(ve)-.275 G 2.75(do).165 G 2.75(ns)-2.75 G(tate-0 pack)-2.75 E
(ets. The b)-.11 E(uf)-.22 E(fer)-.275 E(gro)100.8 513.4 Q
(ws from right to left. F)-.275 E(or e)-.165 E(xample:)-.165 E F1
(+-------------------------------------------------------------------+)
114 532.4 Q 13.2
(|S,L|S,L|S,L|S,L| | | | | |S,L|S,L|S,L|S,L|S,L|S,L|S,L|S,L|)114 545.4 R
(+-------------------------------------------------------------------+)
114 558.4 Q 151.8(^^)206.4 571.4 S(Tail, seqno = T)160.2 584.4 Q
(Head, seqno = H)59.4 E(ECN Nonce Echo = E)33 E
(<=== Head and Tail move this way <===)199.8 610.4 Q F0(Each `)100.8 633
Q F1(S,L)A F0 2.75('r)C(epresents a State/Run length byte. W)-2.75 E
2.75(ew)-.88 G(ill dra)-2.75 E 2.75(wt)-.165 G(hese b)-2.75 E(uf)-.22 E
(fers sho)-.275 E(wing only)-.275 E(their li)100.8 646 Q .33 -.165(ve p)
-.275 H(ortion; for e).165 E
(xample, here is another representation for the b)-.165 E(uf)-.22 E
(fer abo)-.275 E -.165(ve)-.165 G(:).165 E F1
(+-----------------------------------------------+)120.6 665 Q 6.6(H|)
107.4 678 S(S,L|S,L|S,L|S,L|S,L|S,L|S,L|S,L|S,L|S,L|S,L|S,L| T)-6.6 E
(ENE[E])19.8 E(+-----------------------------------------------+)120.6
691 Q F0 -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E
(adh)-.165 E 195.038(ye Section)-.055 F 2.75(8.9. [P)2.75 F(age 44])
-.165 E 0 Cg EP
%%Page: 45 45
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(This smaller Example Buf)100.8 85 Q(fer contains actual data.)-.275 E
/F1 11/Courier@0 SF(+---------------------------+)160.2 104 Q
(10 |0,0|3,0|3,0|3,0|0,4|1,0|0,0| 0)140.4 117 Q 13.2(ENE[1] [Example)
19.8 F(Buffer])6.6 E(+---------------------------+)160.2 130 Q F0
(In concrete terms, its meaning is as follo)100.8 152.6 Q(ws:)-.275 E
-.165(Pa)129.6 169.2 S(ck).165 E(et 10 w)-.11 E(as recei)-.11 E -.165
(ve)-.275 G(d. \(The head of the b).165 E(uf)-.22 E
(fer has sequence number 10, state 0,)-.275 E(and run length 0.\))129.6
182.2 Q -.165(Pa)129.6 198.8 S(ck).165 E(ets 9, 8, and 7 ha)-.11 E .33
-.165(ve n)-.22 H(ot yet been recei).165 E -.165(ve)-.275 G
(d. \(The three bytes preceding the head).165 E(each ha)129.6 211.8 Q
.33 -.165(ve s)-.22 H(tate 3 and run length 0.\)).165 E -.165(Pa)129.6
228.4 S(ck).165 E(ets 6, 5, 4, 3, and 2 were recei)-.11 E -.165(ve)-.275
G(d.).165 E -.165(Pa)129.6 245 S(ck).165 E(et 1 w)-.11 E(as ECN mark)
-.11 E(ed.)-.11 E -.165(Pa)129.6 261.6 S(ck).165 E(et 0 w)-.11 E
(as recei)-.11 E -.165(ve)-.275 G(d.).165 E
(The one-bit sum of the ECN Nonces on pack)129.6 278.2 Q
(ets 10, 6, 5, 4, 3, 2, and 0 equals 1.)-.11 E/F2 11/Times-Bold@0 SF
2.75(8.9.1. New)72 304.2 R -.11(Pa)2.75 G(ck).11 E(ets)-.11 E F0
(When a pack)100.8 320.8 Q(et arri)-.11 E -.165(ve)-.275 G 2.75(sw).165
G(hose sequence number is lar)-2.75 E(ger than an)-.198 E 2.75(yi)-.165
G 2.75(nt)-2.75 G(he b)-2.75 E(uf)-.22 E(fer)-.275 E 2.75(,t)-.44 G
(he HC-)-2.75 E(Recei)100.8 333.8 Q -.165(ve)-.275 G 2.75(rs).165 G
(imply mo)-2.75 E -.165(ve)-.165 G 2.75(st).165 G
(he Head pointer to the left, increases the head sequence number)-2.75 E
(,)-.44 E(and stores a byte representing the pack)100.8 346.8 Q
(et into the b)-.11 E(uf)-.22 E(fer)-.275 E 2.75(.F)-.605 G(or e)-2.915
E(xample, if HC-Sender pack)-.165 E(et)-.11 E(11 arri)100.8 359.8 Q
-.165(ve)-.275 G 2.75(dE).165 G(CN mark)-2.75 E(ed, the Example Buf)-.11
E(fer abo)-.275 E .33 -.165(ve w)-.165 H(ould enter this ne).055 E 2.75
(ws)-.275 G(tate \(the change)-2.75 E(is mark)100.8 372.8 Q
(ed with stars\):)-.11 E F1(+***----------------------------+)160.2
391.8 Q(11 |1,0|0,0|3,0|3,0|3,0|0,4|1,0|0,0| 0)140.4 404.8 Q(ENE[1])19.8
E(+***----------------------------+)160.2 417.8 Q F0(If the pack)100.8
440.4 Q(et')-.11 E 2.75(ss)-.605 G
(tate equals the state at the head of the b)-2.75 E(uf)-.22 E(fer)-.275
E 2.75(,t)-.44 G(he HC-Recei)-2.75 E -.165(ve)-.275 G 2.75(rm).165 G
(ay choose)-2.75 E(to increment its run length \(up to the maximum\). F)
100.8 453.4 Q(or e)-.165 E(xample, if HC-Sender pack)-.165 E(et 11)-.11
E(arri)100.8 466.4 Q -.165(ve)-.275 G 2.75(dw).165 G
(ithout ECN marking and with ECN Nonce 0, the Example Buf)-2.75 E
(fer might enter this)-.275 E(state instead:)100.8 479.4 Q F1
(+--*------------------------+)186.6 498.4 Q
(11 |0,1|3,0|3,0|3,0|0,4|1,0|0,0| 0)166.8 511.4 Q(ENE[1])19.8 E
(+--*------------------------+)186.6 524.4 Q F0(Of course, the ne)100.8
547 Q 2.75(wp)-.275 G(ack)-2.75 E(et')-.11 E 2.75(ss)-.605 G
(equence number might not equal the e)-2.75 E(xpected sequence)-.165 E
(number)100.8 560 Q 2.75(.I)-.605 G 2.75(nt)-2.75 G
(his case, the HC-Recei)-2.75 E -.165(ve)-.275 G 2.75(rs).165 G
(hould enter the interv)-2.75 E(ening pack)-.165 E(ets as State 3. If)
-.11 E(se)100.8 573 Q -.165(ve)-.275 G(ral pack).165 E
(ets are missing, the HC-Recei)-.11 E -.165(ve)-.275 G 2.75(rm).165 G
(ay prefer to enter multiple bytes with run)-2.75 E
(length 0, rather than a single byte with a lar)100.8 586 Q
(ger run length; this simpli\214es table updates)-.198 E
(when one of the missing pack)100.8 599 Q(ets arri)-.11 E -.165(ve)-.275
G(s. F).165 E(or e)-.165 E(xample, if HC-Sender pack)-.165 E(et 12 arri)
-.11 E -.165(ve)-.275 G 2.75(dw).165 G(ith)-2.75 E
(ECN Nonce 1, the Example Buf)100.8 612 Q(fer w)-.275 E
(ould enter this state:)-.11 E F1 52.8
(+*******----------------------------+ *)133.8 631 R
(12 |0,0|3,0|0,1|3,0|3,0|3,0|0,4|1,0|0,0| 0)114 644 Q(ENE[0])19.8 E 52.8
(+*******----------------------------+ *)133.8 657 R F0(When a ne)100.8
679.6 Q 2.75(wp)-.275 G(ack)-2.75 E(et')-.11 E 2.75(ss)-.605 G
(equence number is less than the head sequence number)-2.75 E 2.75(,t)
-.44 G(he HC-)-2.75 E(Recei)100.8 692.6 Q -.165(ve)-.275 G 2.75(rs).165
G(hould scan the table for the byte corresponding to that sequence numb\
er)-2.75 E(.)-.605 E(\(Slightly more comple)100.8 705.6 Q 2.75(xi)-.165
G(nde)-2.75 E(xing structures could reduce the comple)-.165 E
(xity of this scan.\))-.165 E(Assume that the sequence number w)100.8
718.6 Q(as pre)-.11 E(viously lost \(State 3\), and that it w)-.275 E
(as stored in a)-.11 E -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165
E(yd/P)-.11 E(adh)-.165 E 186.788(ye Section)-.055 F 2.75(8.9.1. [P)2.75
F(age 45])-.165 E 0 Cg EP
%%Page: 46 46
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(byte with run length 0. Then the HC-Recei)100.8 85 Q -.165(ve)-.275 G
2.75(rc).165 G(an simply change the byte')-2.75 E 2.75(ss)-.605 G
(tate. F)-2.75 E(or)-.165 E -.165(ex)100.8 98 S
(ample, if HC-Sender pack).165 E(et 8 w)-.11 E(as recei)-.11 E -.165(ve)
-.275 G 2.75(dw).165 G(ith ECN Nonce 0, the Example Buf)-2.75 E(fer)
-.275 E -.11(wo)100.8 111 S(uld enter this state:).11 E/F1 11/Courier@0
SF(+--------*------------------+)186.6 130 Q
(10 |0,0|3,0|0,0|3,0|0,4|1,0|0,0| 0)166.8 143 Q(ENE[1])19.8 E
(+--------*------------------+)186.6 156 Q F0(If the pack)100.8 178.6 Q
(et is not mark)-.11 E
(ed as lost, or if its sequence number is not contained in the table,)
-.11 E(the pack)100.8 191.6 Q
(et is probably a duplicate, and should be ignored. \(The ne)-.11 E 2.75
(wp)-.275 G(ack)-2.75 E(et')-.11 E 2.75(sE)-.605 G(CN marking)-2.75 E
(state might dif)100.8 204.6 Q(fer from the state in the b)-.275 E(uf)
-.22 E(fer; Section 8.5.1 describes what to do then.\) If)-.275 E
(the pack)100.8 217.6 Q(et')-.11 E 2.75(sc)-.605 G(orresponding b)-2.75
E(uf)-.22 E(fer byte has a non-zero run length, then the b)-.275 E(uf)
-.22 E(fer might)-.275 E(need be reshuf)100.8 230.6 Q(\215ed to mak)
-.275 E 2.75(es)-.11 G(pace for one or tw)-2.75 E 2.75(on)-.11 G .55
-.275(ew b)-2.75 H(ytes.).275 E(Of course, the circular b)100.8 247.2 Q
(uf)-.22 E(fer may o)-.275 E -.165(ve)-.165 G(r\215o).165 E 1.43 -.715
(w, e)-.275 H(ither when the HC-Sender is sending data at a).715 E -.165
(ve)100.8 260.2 S(ry high rate, when the HC-Recei).165 E -.165(ve)-.275
G(r').165 E 2.75(sa)-.605 G(ckno)-2.75 E
(wledgements are not reaching the HC-)-.275 E(Sender)100.8 273.2 Q 2.75
(,o)-.44 G 2.75(rw)-2.75 G(hen the HC-Sender is for)-2.75 E
(getting to ackno)-.198 E(wledge those acks \(so the HC-)-.275 E(Recei)
100.8 286.2 Q -.165(ve)-.275 G 2.75(ri).165 G 2.75(su)-2.75 G
(nable to clean up old state\). In this case, the HC-Recei)-2.75 E -.165
(ve)-.275 G 2.75(rs).165 G(hould either)-2.75 E(compress the b)100.8
299.2 Q(uf)-.22 E(fer)-.275 E 2.75(,t)-.44 G(ransfer its state to a lar)
-2.75 E(ger b)-.198 E(uf)-.22 E(fer)-.275 E 2.75(,o)-.44 G 2.75(rd)-2.75
G(rop all recei)-2.75 E -.165(ve)-.275 G 2.75(dp).165 G(ack)-2.75 E
(ets, without)-.11 E(processing them whatsoe)100.8 312.2 Q -.165(ve)
-.275 G .88 -.44(r, u).165 H(ntil its b).44 E(uf)-.22 E(fer shrinks ag)
-.275 E(ain.)-.055 E/F2 11/Times-Bold@0 SF 2.75(8.9.2. Sending)72 338.2
R(Ackno)2.75 E(wledgements)-.11 E F0(Whene)100.8 354.8 Q -.165(ve)-.275
G 2.75(rt).165 G(he HC-Recei)-2.75 E -.165(ve)-.275 G 2.75(rn).165 G
(eeds to generate an ackno)-2.75 E(wledgement, the b)-.275 E(uf)-.22 E
(fer')-.275 E 2.75(sc)-.605 G(ontents)-2.75 E
(can simply be copied into one or more Ack V)100.8 367.8 Q
(ector options. Copied Ack V)-1.221 E(ectors might not)-1.221 E
(be maximally compressed; for e)100.8 380.8 Q(xample, the Example Buf)
-.165 E(fer abo)-.275 E .33 -.165(ve c)-.165 H(ontains three adjacent)
.165 E
(3,0 bytes that could be combined into a single 3,2 byte. The HC-Recei)
100.8 393.8 Q -.165(ve)-.275 G 2.75(rm).165 G(ight, therefore,)-2.75 E
(choose to compress the b)100.8 406.8 Q(uf)-.22 E
(fer in place before sending the option, or to compress the b)-.275 E
(uf)-.22 E(fer)-.275 E(while cop)100.8 419.8 Q
(ying it; either operation is simple.)-.11 E(Ev)100.8 436.4 Q(ery ackno)
-.165 E(wledgement sent by the HC-Recei)-.275 E -.165(ve)-.275 G 2.75
(rS).165 G(HOULD include the entire state of the)-2.75 E -.22(bu)100.8
449.4 S -.275(ff).22 G(er).275 E 2.75(.T)-.605 G(hat is, ackno)-2.75 E
(wledgements are cumulati)-.275 E -.165(ve)-.275 G(.).165 E
(The HC-Recei)100.8 466 Q -.165(ve)-.275 G 2.75(rs).165 G
(hould store information about each ackno)-2.75 E
(wledgement it sends in)-.275 E(another b)100.8 479 Q(uf)-.22 E(fer)
-.275 E 2.75(.S)-.605 G(peci\214cally)-2.75 E 2.75(,f)-.715 G(or e)-2.75
E -.165(ve)-.275 G(ry ackno).165 E(wledgement it sends, the HC-Recei)
-.275 E -.165(ve)-.275 G 2.75(rs).165 G(hould)-2.75 E(store:)100.8 492 Q
7.15<8354>100.8 508.6 S(he HC-Recei)-7.15 E -.165(ve)-.275 G 2.75(rs)
.165 G(equence number it used for the ack pack)-2.75 E(et.)-.11 E 7.15
<8354>100.8 525.2 S(he HC-Sender sequence number it ackno)-7.15 E
(wledged \(that is, the pack)-.275 E(et')-.11 E(s)-.605 E(Ackno)111.8
538.2 Q(wledgement Number\). Since ackno)-.275 E
(wledgements are cumulati)-.275 E -.165(ve)-.275 G 2.75(,t).165 G
(his single)-2.75 E
(number completely speci\214es the set of HC-Sender pack)111.8 551.2 Q
(ets ackno)-.11 E(wledged by this ack)-.275 E(pack)111.8 564.2 Q(et.)
-.11 E F2 2.75(8.9.3. Clearing)72 590.2 R(State)2.75 E F0
(Some of the HC-Sender')100.8 606.8 Q 2.75(sp)-.605 G(ack)-2.75 E
(ets will include ackno)-.11 E(wledgement numbers, which ack the)-.275 E
(HC-Recei)100.8 619.8 Q -.165(ve)-.275 G(r').165 E 2.75(sa)-.605 G(ckno)
-2.75 E(wledgements. When such an ack is recei)-.275 E -.165(ve)-.275 G
(d, the HC-Recei).165 E -.165(ve)-.275 G 2.75(rs).165 G(imply)-2.75 E
(\214nds the HC-Sender sequence number corresponding to that ack)100.8
632.8 Q(ed HC-Recei)-.11 E -.165(ve)-.275 G 2.75(rp).165 G(ack)-2.75 E
(et,)-.11 E(and mo)100.8 645.8 Q -.165(ve)-.165 G 2.75(st).165 G(he b)
-2.75 E(uf)-.22 E(fer')-.275 E 2.75(sT)-.605 G
(ail pointer up to that sequence number)-3.63 E 2.75(.\()-.605 G
(It may choose to k)-2.75 E(eep)-.11 E
(some older information, in case a lost pack)100.8 658.8 Q(et sho)-.11 E
(ws up late.\) F)-.275 E(or e)-.165 E(xample, say that the HC-)-.165 E
(Recei)100.8 671.8 Q -.165(ve)-.275 G 2.75(rs).165 G
(toring the Example Buf)-2.75 E(fer had sent tw)-.275 E 2.75(oa)-.11 G
(ckno)-2.75 E(wledgements already:)-.275 E 13.224(\(1\) HC-Recei)100.8
688.4 R -.165(ve)-.275 G 2.75(rA).165 G(ck 59 ackno)-2.75 E
(wledged HC-Sender Seq 3 with ECN Nonce Echo 1.)-.275 E 13.224
(\(2\) HC-Recei)100.8 705 R -.165(ve)-.275 G 2.75(rA).165 G(ck 60 ackno)
-2.75 E(wledged HC-Sender Seq 10 with ECN Nonce Echo 0.)-.275 E -.385
(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E
186.788(ye Section)-.055 F 2.75(8.9.3. [P)2.75 F(age 46])-.165 E 0 Cg EP
%%Page: 47 47
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(Say the HC-Recei)100.8 85 Q -.165(ve)-.275 G 2.75(rt).165 G(hen recei)
-2.75 E -.165(ve)-.275 G 2.75(daD).165 G(CCP-DataAck pack)-2.75 E
(et from the HC-Sender with)-.11 E(Ackno)100.8 98 Q
(wledgement Number 59. This informs the HC-Recei)-.275 E -.165(ve)-.275
G 2.75(rt).165 G(hat the HC-Sender)-2.75 E(recei)100.8 111 Q -.165(ve)
-.275 G(d, and processed, all the information in HC-Recei).165 E -.165
(ve)-.275 G 2.75(rp).165 G(ack)-2.75 E(et 59. This pack)-.11 E(et)-.11 E
(ackno)100.8 124 Q(wledged HC-Sender pack)-.275 E
(et 3, so the HC-Sender has no)-.11 E 2.75(wr)-.275 G(ecei)-2.75 E -.165
(ve)-.275 G 2.75(dH).165 G(C-Recei)-2.75 E -.165(ve)-.275 G(r').165 E(s)
-.605 E(ackno)100.8 137 Q(wledgements for pack)-.275 E
(ets 0, 1, 2, and 3. The Example Buf)-.11 E
(fer should enter this state:)-.275 E/F1 11/Courier@0 SF
(+------------------*+ *)186.6 156 Q(*)46.2 E
(10 |0,0|3,0|3,0|3,0|0,2| 4)166.8 169 Q(ENE[0])19.8 E
(+------------------*+ *)186.6 182 Q(*)46.2 E F0(The tail byte')100.8
204.6 Q 2.75(sr)-.605 G(un length w)-2.75 E(as adjusted, since pack)-.11
E(et 3 w)-.11 E(as in the middle of that byte. The)-.11 E(ne)100.8 217.6
Q 2.75(wE)-.275 G(CN Nonce Echo \214eld equals the e)-2.75 E(xclusi)
-.165 E -.165(ve)-.275 G(-or of the old \214eld, and the ECN Nonce).165
E(Echo reported with the rele)100.8 230.6 Q -.275(va)-.275 G(nt ackno)
.275 E(wledgement. The HC-Recei)-.275 E -.165(ve)-.275 G 2.75(rc).165 G
(an also thro)-2.75 E 2.75(wa)-.275 G -.11(wa)-2.915 G(y).11 E
(stored information about HC-Recei)100.8 243.6 Q -.165(ve)-.275 G 2.75
(rA).165 G(ck 59.)-2.75 E 2.75(Ac)100.8 260.2 S
(areful implementation might try to ensure reasonable rob)-2.75 E
(ustness to reordering.)-.22 E(Suppose that the Example Buf)100.8 273.2
Q(fer is as before, b)-.275 E(ut that pack)-.22 E(et 9 no)-.11 E 2.75
(wa)-.275 G(rri)-2.75 E -.165(ve)-.275 G(s, out of).165 E 2.75
(sequence. The)100.8 286.2 R -.22(bu)2.75 G -.275(ff).22 G(er w).275 E
(ould enter this state:)-.11 E F1(+----*----------------------+)186.6
305.2 Q(10 |0,0|0,0|3,0|3,0|0,4|1,0|0,0| 0)166.8 318.2 Q(ENE[1])26.4 E
(+----*----------------------+)186.6 331.2 Q F0
(The danger is that the HC-Sender might ackno)100.8 350.2 Q(wledge the)
-.275 E/F2 11/Symbol SF(R)2.75 E F0(2')A 2.75(sp)-.605 G(re)-2.75 E
(vious ackno)-.275 E(wledgement)-.275 E
(\(with sequence number 60\), which says that P)100.8 363.2 Q(ack)-.165
E(et 9 w)-.11 E(as not recei)-.11 E -.165(ve)-.275 G(d, before the HC-)
.165 E(Recei)100.8 376.2 Q -.165(ve)-.275 G 2.75(rh).165 G
(as a chance to send a ne)-2.75 E 2.75(wa)-.275 G(ckno)-2.75 E
(wledgement saying that P)-.275 E(ack)-.165 E(et 9 actually w)-.11 E(as)
-.11 E(recei)100.8 389.2 Q -.165(ve)-.275 G(d. Therefore, when pack).165
E(et 9 arri)-.11 E -.165(ve)-.275 G(d, the HC-Recei).165 E -.165(ve)
-.275 G 2.75(rm).165 G(ight modify its)-2.75 E(ackno)100.8 402.2 Q
(wledgement record to:)-.275 E 13.224(\(1\) HC-Recei)100.8 418.8 R -.165
(ve)-.275 G 2.75(rA).165 G(ck 59 ackno)-2.75 E
(wledged HC-Sender Seq 3 with ECN Nonce Echo 1.)-.275 E 13.224
(\(2\) HC-Recei)100.8 435.4 R -.165(ve)-.275 G 2.75(rA).165 G
(ck 60 also ackno)-2.75 E
(wledged HC-Sender Seq 3 with ECN Nonce Echo 1.)-.275 E
(That is, Ack 60 is no)100.8 452 Q 2.75(wt)-.275 G(reated lik)-2.75 E
2.75(ead)-.11 G(uplicate of Ack 59. This w)-2.75 E(ould pre)-.11 E -.165
(ve)-.275 G(nt the T).165 E(ail)-.88 E(pointer from mo)100.8 465 Q
(ving past pack)-.165 E(et 9 until the HC-Recei)-.11 E -.165(ve)-.275 G
2.75(rk).165 G(no)-2.75 E(ws that the HC-Sender has)-.275 E
(seen an Ack V)100.8 478 Q(ector indicating that pack)-1.221 E(et')-.11
E 2.75(sa)-.605 G(rri)-2.75 E -.275(va)-.275 G(l.).275 E/F3 11
/Times-Bold@0 SF 2.75(8.9.4. Pr)72 504 R(ocessing Ackno)-.198 E
(wledgements)-.11 E F0(When the HC-Sender recei)100.8 520.6 Q -.165(ve)
-.275 G 2.75(sa).165 G 2.75(na)-2.75 G(ckno)-2.75 E
(wledgement, it generally cares about the number of)-.275 E(pack)100.8
533.6 Q(ets that were dropped and/or ECN mark)-.11 E
(ed. It simply reads this of)-.11 E 2.75(ft)-.275 G(he Ack V)-2.75 E
(ector)-1.221 E(.)-.605 E(Additionally)100.8 546.6 Q 2.75(,i)-.715 G
2.75(tm)-2.75 G(ay check the ECN Nonce for correctness. \(As described \
in Section 8.5.1,)-2.75 E(it may w)100.8 559.6 Q(ant to k)-.11 E
(eep more detailed information about ackno)-.11 E(wledged pack)-.275 E
(ets in case pack)-.11 E(ets)-.11 E(change states between ackno)100.8
572.6 Q(wledgements, or in case the application queries whether a)-.275
E(pack)100.8 585.6 Q(et arri)-.11 E -.165(ve)-.275 G(d.\)).165 E
(The HC-Sender must also ackno)100.8 602.2 Q(wledge the HC-Recei)-.275 E
-.165(ve)-.275 G(r').165 E 2.75(sa)-.605 G(ckno)-2.75 E
(wledgements so that the)-.275 E(HC-Recei)100.8 615.2 Q -.165(ve)-.275 G
2.75(rc).165 G(an free old Ack V)-2.75 E(ector state. \(Since Ack V)
-1.221 E(ector ackno)-1.221 E(wledgements are)-.275 E
(reliable, the HC-Recei)100.8 628.2 Q -.165(ve)-.275 G 2.75(rm).165 G
(ust maintain and resend Ack V)-2.75 E
(ector information until it is sure)-1.221 E
(that the HC-Sender has recei)100.8 641.2 Q -.165(ve)-.275 G 2.75(dt)
.165 G(hat information.\) A simple algorithm suf)-2.75 E
(\214ces: since Ack)-.275 E -1.221(Ve)100.8 654.2 S(ctor ackno)1.221 E
(wledgements are cumulati)-.275 E -.165(ve)-.275 G 2.75(,as).165 G
(ingle ackno)-2.75 E(wledgement number tells HC-)-.275 E(Recei)100.8
667.2 Q -.165(ve)-.275 G 2.75(rh).165 G .55 -.275(ow m)-2.75 H
(uch ack information has arri).275 E -.165(ve)-.275 G
(d. Assuming that the HC-Recei).165 E -.165(ve)-.275 G 2.75(rs).165 G
(ends no)-2.75 E(data, the HC-Sender can simply ensure that at least on\
ce a round-trip time, it sends a)100.8 680.2 Q(DCCP-DataAck pack)100.8
693.2 Q(et ackno)-.11 E(wledging the latest DCCP-Ack pack)-.275 E
(et it has recei)-.11 E -.165(ve)-.275 G(d. Of).165 E
(course, the HC-Sender only needs to ackno)100.8 706.2 Q
(wledge the HC-Recei)-.275 E -.165(ve)-.275 G(r').165 E 2.75(sa)-.605 G
(ckno)-2.75 E(wledgements if)-.275 E(the HC-Sender is also sending data\
. If the HC-Sender is not sending data, then the HC-)100.8 719.2 Q -.385
(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E
186.788(ye Section)-.055 F 2.75(8.9.4. [P)2.75 F(age 47])-.165 E 0 Cg EP
%%Page: 48 48
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E(Recei)
100.8 85 Q -.165(ve)-.275 G(r').165 E 2.75(sA)-.605 G(ck V)-2.75 E(ecto\
r state is stable, and there is no need to shrink it. The HC-Sender mus\
t)-1.221 E -.11(wa)100.8 98 S(tch for drops and ECN marks on recei).11 E
-.165(ve)-.275 G 2.75(dD).165 G(CCP-Ack pack)-2.75 E
(ets so that it can adjust the)-.11 E(HC-Recei)100.8 111 Q -.165(ve)
-.275 G(r').165 E 2.75(sa)-.605 G(ck-sending rate---for e)-2.75 E
(xample, with Ack Ratio---in response to congestion.)-.165 E
(If the other half-connection is not quiescent---that is, the HC-Recei)
100.8 127.6 Q -.165(ve)-.275 G 2.75(ri).165 G 2.75(ss)-2.75 G
(ending data to)-2.75 E(the HC-Sender)100.8 140.6 Q 2.75(,p)-.44 G
(ossibly using another CCID---then the ackno)-2.75 E
(wledgements on that half-)-.275 E(connection are suf)100.8 153.6 Q
(\214cient for the HC-Recei)-.275 E -.165(ve)-.275 G 2.75(rt).165 G 2.75
(of)-2.75 G(ree its state.)-2.75 E/F1 11/Times-Bold@0 SF(9.)72 179.6 Q
/F2 14/Times-Bold@0 SF(Explicit Congestion Noti\214cation)5.5 E F0
(The DCCP protocol is fully ECN-a)100.8 196.2 Q -.11(wa)-.165 G
(re. Each CCID speci\214es ho).11 E 2.75(wi)-.275 G
(ts endpoints respond to)-2.75 E(ECN marks. Furthermore, DCCP)100.8
209.2 Q 2.75(,u)-1.221 G(nlik)-2.75 E 2.75(eT)-.11 G(CP)-2.75 E 2.75(,a)
-1.221 G(llo)-2.75 E(ws senders to control the rate at which)-.275 E
(ackno)100.8 222.2 Q(wledgements are generated \(with options lik)-.275
E 2.75(eA)-.11 G(ck Ratio\); this means that)-2.75 E(ackno)100.8 235.2 Q
(wledgements are generally congestion-controlled, and may ha)-.275 E .33
-.165(ve E)-.22 H(CN-Capable).165 E -.385(Tr)100.8 248.2 S(ansport set.)
.385 E 2.75(AC)100.8 264.8 S(CID pro\214le describes ho)-2.75 E 2.75(wt)
-.275 G(hat CCID interacts with ECN, both for data traf)-2.75 E
(\214c and)-.275 E(pure-ackno)100.8 277.8 Q(wledgement traf)-.275 E
(\214c. A sender SHOULD set ECN-Capable T)-.275 E(ransport on its)-.385
E(pack)100.8 290.8 Q(ets whene)-.11 E -.165(ve)-.275 G 2.75(rt).165 G
(he recei)-2.75 E -.165(ve)-.275 G 2.75(rh).165 G
(as its ECN Capable feature turned on and the rele)-2.75 E -.275(va)
-.275 G(nt).275 E(CCID allo)100.8 303.8 Q(ws it, unless the sending app\
lication indicates that ECN should not be used.)-.275 E(The rest of thi\
s section describes the ECN Capable feature and the interaction of the \
ECN)100.8 320.4 Q(Nonce with ackno)100.8 333.4 Q
(wledgement options such as Ack V)-.275 E(ector)-1.221 E(.)-.605 E F1
(9.1.)72 359.4 Q/F3 13/Times-Bold@0 SF(ECN Capable F)5.5 E(eatur)-.325 E
(e)-.234 E F0(The ECN Capable feature lets a DCCP inform its partner th\
at it cannot read ECN bits from)100.8 376 Q(recei)100.8 389 Q -.165(ve)
-.275 G 2.75(dI).165 G 2.75(Ph)-2.75 G
(eaders, so the partner must not set ECN-Capable T)-2.75 E
(ransport on its pack)-.385 E(ets.)-.11 E(ECN Capable has feature numbe\
r 2. The ECN Capable feature located at DCCP A)100.8 405.6 Q
(indicates whether or not A can successfully read ECN bits from recei)
100.8 418.6 Q -.165(ve)-.275 G 2.75(df).165 G(rames' IP)-2.75 E(headers\
. \(This is independent of whether it can set ECN bits on sent frames.\
\) DCCP A)100.8 431.6 Q(sends a "Prefer\(ECN Capable, 0\)" option to DC\
CP B to inform B that A cannot read ECN)100.8 444.6 Q(bits.)100.8 457.6
Q(An ECN Capable feature contains a single byte of data. ECN capability\
 is on if and only if)100.8 474.2 Q(this byte is nonzero.)100.8 487.2 Q
2.75(An)100.8 503.8 S .55 -.275(ew c)-2.75 H(onnection starts with ECN \
Capable 1 \(that is, ECN capable\) for both DCCPs. If a).275 E(DCCP is \
not ECN capable, it MUST send "Prefer\(ECN Capable, 0\)" options to the\
 other)100.8 516.8 Q(endpoint until ackno)100.8 529.8 Q
(wledged \(by "Change\(ECN Capable, 0\)"\) or the connection closes.)
-.275 E(Furthermore, it MUST NO)100.8 542.8 Q 2.75(Ta)-.44 G(ccept an)
-2.75 E 2.75(yd)-.165 G(ata until the other endpoint sends "Change\(ECN)
-2.75 E(Capable, 0\)". It SHOULD send Data Dropped options on its ackno)
100.8 555.8 Q(wledgements, with Drop)-.275 E(State 0 \("protocol constr\
aints"\), if the other endpoint does send data inappropriately)100.8
568.8 Q(.)-.715 E F1(9.2.)72 594.8 Q F3(ECN Nonces)5.5 E F0
(Congestion a)100.8 611.4 Q -.22(vo)-.22 G(idance will not occur).22 E
2.75(,a)-.44 G(nd the recei)-2.75 E -.165(ve)-.275 G 2.75(rw).165 G
(ill sometimes get its data f)-2.75 E(aster)-.11 E(,)-.44 E
(when the sender is not told about an)100.8 624.4 Q 2.75(yc)-.165 G
(ongestion e)-2.75 E -.165(ve)-.275 G 2.75(nts. Thus,).165 F(the recei)
2.75 E -.165(ve)-.275 G 2.75(rh).165 G(as some)-2.75 E(incenti)100.8
637.4 Q .33 -.165(ve t)-.275 H 2.75(of).165 G(alsify ackno)-2.86 E
(wledgement information, reporting that mark)-.275 E(ed or dropped)-.11
E(pack)100.8 650.4 Q(ets were actually recei)-.11 E -.165(ve)-.275 G
2.75(du).165 G(nmark)-2.75 E
(ed. This problem is more serious with DCCP than)-.11 E(with TCP)100.8
663.4 Q 2.75(,s)-1.221 G(ince TCP pro)-2.75 E
(vides reliable transport: it is more dif)-.165 E
(\214cult with TCP to lie about)-.275 E(lost pack)100.8 676.4 Q
(ets without breaking the application.)-.11 E
(ECN Nonces are a general mechanism to pre)100.8 693 Q -.165(ve)-.275 G
(nt ECN cheating \(or loss cheating\). T).165 E -.11(wo)-.88 G -.275(va)
100.8 706 S(lues for the tw).275 E
(o-bit ECN header \214eld indicate ECN-Capable T)-.11 E
(ransport, 01 and 10. The)-.385 E(second code point, 10, is the ECN Non\
ce. In general, a protocol sender chooses between)100.8 719 Q -.385(Ko)
72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E
195.038(ye Section)-.055 F 2.75(9.2. [P)2.75 F(age 48])-.165 E 0 Cg EP
%%Page: 49 49
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(these code points randomly on its output pack)100.8 85 Q
(ets, remembering the sequence it chose. The)-.11 E(protocol recei)100.8
98 Q -.165(ve)-.275 G 2.75(rr).165 G(eports, on e)-2.75 E -.165(ve)-.275
G(ry ackno).165 E(wledgement, the number of ECN Nonces it has)-.275 E
(recei)100.8 111 Q -.165(ve)-.275 G 2.75(dt).165 G(hus f)-2.75 E(ar)-.11
E 2.75(.T)-.605 G
(his is called the ECN Nonce Echo. Since ECN marking and pack)-2.75 E
(et)-.11 E(dropping both destro)100.8 124 Q 2.75(yt)-.11 G
(he ECN Nonce, a recei)-2.75 E -.165(ve)-.275 G 2.75(rt).165 G
(hat lies about an ECN mark or pack)-2.75 E(et)-.11 E
(drop has a 50% chance of guessing right and a)100.8 137 Q -.22(vo)-.22
G(iding discipline. The sender may react).22 E(puniti)100.8 150 Q -.165
(ve)-.275 G(ly to an ECN Nonce mismatch, possibly up to dropping the co\
nnection. The ECN).165 E(Nonce Echo \214eld need not be an inte)100.8
163 Q(ger; one bit is enough to catch 50% of infractions.)-.165 E
(In DCCP)100.8 179.6 Q 2.75(,t)-1.221 G
(he ECN Nonce Echo \214eld is encoded in ackno)-2.75 E
(wledgement options. F)-.275 E(or)-.165 E -.165(ex)100.8 192.6 S
(ample, the Ack V).165 E(ector option comes in tw)-1.221 E 2.75(of)-.11
G(orms, Ack V)-2.75 E(ector [Nonce 0] \(option 37\) and)-1.221 E(Ack V)
100.8 205.6 Q(ector [Nonce 1] \(option 38\), corresponding to the tw)
-1.221 E 2.75(ov)-.11 G(alues for a one-bit ECN)-3.025 E
(Nonce Echo. The Nonce Echo for a gi)100.8 218.6 Q -.165(ve)-.275 G 2.75
(nA).165 G(ck V)-2.75 E(ector equals the one-bit sum \(e)-1.221 E
(xclusi)-.165 E -.165(ve)-.275 G(-or).165 E(,)-.44 E
(or parity\) of ECN nonces for pack)100.8 231.6 Q
(ets reported by that Ack V)-.11 E(ector as recei)-1.221 E -.165(ve)
-.275 G 2.75(da).165 G(nd not ECN)-2.75 E(mark)100.8 244.6 Q 2.75
(ed. Thus,)-.11 F(only pack)2.75 E(ets mark)-.11 E
(ed as State 0 matter for this calculation \(that is, v)-.11 E(alid)
-.275 E(recei)100.8 257.6 Q -.165(ve)-.275 G 2.75(dp).165 G(ack)-2.75 E
(ets that were not ECN mark)-.11 E 2.75(ed\). Ev)-.11 F(ery Ack V)-.165
E(ector option is detailed enough)-1.221 E
(for the sender to determine what the Nonce Echo should ha)100.8 270.6 Q
.33 -.165(ve b)-.22 H(een. It can check this).165 E(calculation ag)100.8
283.6 Q
(ainst the actual Nonce Echo, and complain if there is a mismatch.)-.055
E(\(The Ack V)100.8 300.2 Q(ector could concei)-1.221 E -.275(va)-.275 G
(bly report e).275 E -.165(ve)-.275 G(ry pack).165 E(et')-.11 E 2.75(sE)
-.605 G(CN Nonce state, b)-2.75 E(ut this w)-.22 E(ould)-.11 E(se)100.8
313.2 Q -.165(ve)-.275 G(rely limit Ack V).165 E(ector')-1.221 E 2.75
(sc)-.605 G(ompressibility without pro)-2.75 E(viding much e)-.165 E
(xtra protection.\))-.165 E(Consider a half-connection from DCCP A to D\
CCP B. DCCP A SHOULD set ECN)100.8 329.8 Q(Nonces on its pack)100.8
342.8 Q(ets, and remember which pack)-.11 E(ets had nonces, whene)-.11 E
-.165(ve)-.275 G 2.75(rD).165 G(CCP B)-2.75 E(reports that it is ECN Ca\
pable. An ECN-capable endpoint MUST calculate and use the)100.8 355.8 Q
(correct v)100.8 368.8 Q(alue for ECN Nonce Echo when sending ackno)
-.275 E(wledgement options. An ECN-)-.275 E(incapable endpoint, ho)100.8
381.8 Q(we)-.275 E -.165(ve)-.275 G .88 -.44(r, S).165 H
(HOULD treat the ECN Nonce Echo as al).44 E -.11(wa)-.11 G
(ys zero. When a).11 E
(sender detects an ECN Nonce Echo mismatch, it SHOULD beha)100.8 394.8 Q
.33 -.165(ve a)-.22 H 2.75(si).165 G 2.75(ft)-2.75 G(he recei)-2.75 E
-.165(ve)-.275 G 2.75(rh).165 G(ad)-2.75 E(reported one or more pack)
100.8 407.8 Q(ets as ECN-mark)-.11 E(ed \(instead of unmark)-.11 E
(ed\). It MA)-.11 E 2.75(Yt)-1.155 G(ak)-2.75 E 2.75(em)-.11 G(ore)-2.75
E(puniti)100.8 420.8 Q .33 -.165(ve a)-.275 H(ction, such as resetting \
the connection. The Reason for such DCCP-Reset pack).165 E(ets)-.11 E
(SHOULD be set to "Aggression Penalty".)100.8 433.8 Q
(An ECN-incapable DCCP SHOULD ignore recei)100.8 450.4 Q -.165(ve)-.275
G 2.75(dE).165 G(CN nonces and generate ECN)-2.75 E(nonces of zero. F)
100.8 463.4 Q(or instance, out of the tw)-.165 E 2.75(oA)-.11 G(ck V)
-2.75 E(ector options, an ECN-incapable DCCP)-1.221 E
(SHOULD generate Ack V)100.8 476.4 Q(ector [Nonce 0] \(option 37\) e)
-1.221 E(xclusi)-.165 E -.165(ve)-.275 G(ly).165 E 2.75(.\()-.715 G(Ag)
-2.75 E(ain, the ECN)-.055 E
(Capable feature MUST be set to zero in this case.\))100.8 489.4 Q/F1 11
/Times-Bold@0 SF(9.3.)72 515.4 Q/F2 13/Times-Bold@0 SF(Other Aggr)5.5 E
(ession P)-.234 E(enalties)-.26 E F0(The ECN Nonce pro)100.8 532 Q
(vides one w)-.165 E(ay for a DCCP sender to disco)-.11 E -.165(ve)-.165
G 2.75(rt).165 G(hat a recei)-2.75 E -.165(ve)-.275 G 2.75(ri).165 G(s)
-2.75 E(misbeha)100.8 545 Q
(ving. There may be other mechanisms, and a recei)-.22 E -.165(ve)-.275
G 2.75(ro).165 G 2.75(rm)-2.75 G(iddlebox may also)-2.75 E(disco)100.8
558 Q -.165(ve)-.165 G 2.75(rt).165 G(hat a sender is misbeha)-2.75 E
(ving---sending more data than it should. In an)-.22 E 2.75(yo)-.165 G
2.75(ft)-2.75 G(hese)-2.75 E(cases, the entity that disco)100.8 571 Q
-.165(ve)-.165 G(rs the misbeha).165 E(vior MA)-.22 E 2.75(Yr)-1.155 G
(eact by resetting the connection,)-2.75 E
(with Reason set to "Aggression Penalty". A recei)100.8 584 Q -.165(ve)
-.275 G 2.75(rt).165 G(hat detects mar)-2.75 E(ginal \(meaning)-.198 E
(possibly spurious\) sender misbeha)100.8 597 Q(vior MA)-.22 E 2.75(Yi)
-1.155 G(nstead react with a Slo)-2.75 E 2.75(wR)-.275 G(ecei)-2.75 E
-.165(ve)-.275 G 2.75(ro).165 G(ption, or)-2.75 E
(by reporting some pack)100.8 610 Q(ets as ECN mark)-.11 E
(ed that were not, in f)-.11 E(act, mark)-.11 E(ed.)-.11 E F1(10.)72 636
Q/F3 14/Times-Bold@0 SF(Multihoming and Mobility)5.5 E F0(DCCP pro)100.8
652.6 Q(vides primiti)-.165 E .33 -.165(ve s)-.275 H
(upport for multihoming and mobility via a mechanism for).165 E
(transferring a connection endpoint from one address to another)100.8
665.6 Q 2.75(.T)-.605 G(he mo)-2.75 E(ving endpoint must)-.165 E(ne)
100.8 678.6 Q(gotiate mobility support beforehand, and both endpoints m\
ust share their Connection)-.165 E(Nonces. When the mo)100.8 691.6 Q
(ving endpoint gets a ne)-.165 E 2.75(wa)-.275 G
(ddress, it sends a DCCP-Mo)-2.75 E .33 -.165(ve p)-.165 H(ack).165 E
(et)-.11 E(from that address to the stationary endpoint.)100.8 704.6 Q
(The stationary endpoint then changes its)5.5 E
(connection state to use the ne)100.8 717.6 Q 2.75(wa)-.275 G(ddress.)
-2.75 E -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E
(adh)-.165 E 197.788(ye Section)-.055 F 2.75(10. [P)2.75 F(age 49])-.165
E 0 Cg EP
%%Page: 50 50
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E(DCCP')
100.8 85 Q 2.75(ss)-.605 G(upport for mobility is intended to solv)-2.75
E 2.75(eo)-.165 G(nly the simplest multihoming and)-2.75 E
(mobility problems. F)100.8 98 Q
(or instance, DCCP has no support for simultaneous mo)-.165 E -.165(ve)
-.165 G(s.).165 E(Applications requiring more comple)100.8 111 Q 2.75
(xm)-.165 G(obility semantics, or more stringent security)-2.75 E
(guarantees, should use an e)100.8 124 Q(xisting solution lik)-.165 E
2.75(eM)-.11 G(obile IP or [SB00].)-2.75 E/F1 11/Times-Bold@0 SF(10.1.)
72 150 Q/F2 13/Times-Bold@0 SF(Mobility Capable F)5.5 E(eatur)-.325 E(e)
-.234 E F0 2.75(AD)100.8 166.6 S
(CCP uses the Mobility Capable feature to inform its partner that it w)
-2.75 E(ould lik)-.11 E 2.75(et)-.11 G 2.75(ob)-2.75 G(e)-2.75 E(able t\
o change its address and/or port during the course of the connection.)
100.8 179.6 Q(Mobility Capable has feature number 5. The Mobility Capab\
le feature located at DCCP A)100.8 196.2 Q
(indicates whether or not A will accept a DCCP-Mo)100.8 209.2 Q .33
-.165(ve p)-.165 H(ack).165 E(et sent by B. DCCP B sends a)-.11 E("Chan\
ge\(Mobility Capable, 1\)" option to DCCP A to inform it that B might l\
ik)100.8 222.2 Q 2.75(et)-.11 G 2.75(om)-2.75 G -.165(ove)-2.75 G(later)
100.8 235.2 Q(.)-.605 E 2.75(AM)100.8 251.8 S(obility Capable feature c\
ontains a single byte of data. Mobility is allo)-2.75 E(wed if and only)
-.275 E(if this byte is nonzero. A DCCP MUST reject a DCCP-Mo)100.8
264.8 Q .33 -.165(ve p)-.165 H(ack).165 E(et referring to a)-.11 E
(connection when Mobility Capable is 0; ho)100.8 277.8 Q(we)-.275 E
-.165(ve)-.275 G .88 -.44(r, i).165 H 2.75(tM).44 G 2.31 -1.155(AY r)
-2.75 H(eject a v)1.155 E(alid DCCP-Mo)-.275 E -.165(ve)-.165 G(pack)
100.8 290.8 Q(et e)-.11 E -.165(ve)-.275 G 2.75(nw).165 G
(hen Mobility Capable is 1.)-2.75 E 2.75(An)100.8 307.4 S .55 -.275
(ew c)-2.75 H(onnection starts with Mobility Capable 0 \(that is, mobil\
ity is not allo).275 E(wed\) for both)-.275 E(DCCPs.)100.8 320.4 Q F1
(10.2.)72 346.4 Q F2(Security)5.5 E F0(The DCCP mobility mechanism, lik)
100.8 363 Q 2.75(eD)-.11 G(CCP in general, does not pro)-2.75 E
(vide cryptographic)-.165 E(security guarantees. Ne)100.8 376 Q -.165
(ve)-.275 G(rtheless, mobile hosts must use v).165 E
(alid sequence numbers and)-.275 E(include v)100.8 389 Q
(alid Identi\214cations in their DCCP-Mo)-.275 E .33 -.165(ve p)-.165 H
(ack).165 E(ets, pro)-.11 E(viding protection ag)-.165 E(ainst)-.055 E
(some classes of attack)100.8 402 Q 2.75(ers. Speci\214cally)-.11 F 2.75
(,a)-.715 G 2.75(na)-2.75 G(ttack)-2.75 E(er cannot mo)-.11 E .33 -.165
(ve a D)-.165 H(CCP connection to a).165 E(ne)100.8 415 Q 2.75(wa)-.275
G(ddress unless the)-2.75 E 2.75(yk)-.165 G(no)-2.75 E 2.75(wv)-.275 G
(alid sequence numbers and ho)-3.025 E 2.75(wt)-.275 G 2.75(og)-2.75 G
(enerate v)-2.75 E(alid)-.275 E(Identi\214cations. Ev)100.8 428 Q
(en with the def)-.165 E(ault MD5 Identi\214cation Re)-.11 E
(gime, this means that an)-.165 E(attack)100.8 441 Q(er must ha)-.11 E
.33 -.165(ve s)-.22 H(nooped on e).165 E -.165(ve)-.275 G(ry pack).165 E
(et in the connection to get a reasonable)-.11 E(probability of success\
, assuming that initial sequence numbers and Connection Nonces are)100.8
454 Q(chosen well \(that is, randomly\). Section 16 further describes D\
CCP security)100.8 467 Q(considerations.)100.8 480 Q F1(10.3.)72 506 Q
F2(Congestion Contr)5.5 E(ol State)-.234 E F0
(Once an endpoint has transitioned to a ne)100.8 522.6 Q 2.75(wa)-.275 G
(ddress, the connection is ef)-2.75 E(fecti)-.275 E -.165(ve)-.275 G
(ly a ne).165 E(w)-.275 E(connection in terms of its congestion control\
 state: the accumulated information about)100.8 535.6 Q(congestion betw\
een the old endpoints no longer applies. Both DCCPs MUST initialize)
100.8 548.6 Q(their congestion control state \(windo)100.8 561.6 Q
(ws, rates, and so forth\) to that of a ne)-.275 E(w)-.275 E
(connection---that is, the)100.8 574.6 Q 2.75(ym)-.165 G(ust "slo)-2.75
E 2.75(ws)-.275 G(tart"---unless the)-2.75 E 2.75(yh)-.165 G -2.475 -.22
(av e)-2.75 H(high-quality information)2.97 E(about actual netw)100.8
587.6 Q(ork conditions between the tw)-.11 E 2.75(on)-.11 G .55 -.275
(ew e)-2.75 H(ndpoints. Normally).275 E 2.75(,t)-.715 G(he only w)-2.75
E(ay to)-.11 E(get this information w)100.8 600.6 Q
(ould be by instrumenting a DCCP connection between the ne)-.11 E(w)
-.275 E(addresses.)100.8 613.6 Q(Similarly)100.8 630.2 Q 2.75(,t)-.715 G
(he endpoints' con\214gured MTUs \(see 11\) SHOULD be reinitialized, an\
d PMTU)-2.75 E(disco)100.8 643.2 Q -.165(ve)-.165 G(ry performed ag).165
E(ain, follo)-.055 E(wing an address change.)-.275 E F1(10.4.)72 669.2 Q
F2(Loss During T)5.5 E(ransition)-.962 E F0(Se)100.8 685.8 Q -.165(ve)
-.275 G(ral loss and delay e).165 E -.165(ve)-.275 G(nts may af).165 E
(fect the transition of a DCCP connection from one)-.275 E
(address to another)100.8 698.8 Q 2.75(.T)-.605 G(he DCCP-Mo)-2.75 E .33
-.165(ve p)-.165 H(ack).165 E(et itself might be lost; the ackno)-.11 E
(wledgement to)-.275 E(that pack)100.8 711.8 Q(et might be lost, lea)
-.11 E(ving the mobile endpoint unsure of whether the transition has)
-.22 E(completed; and data from the old endpoint might continue to arri)
100.8 724.8 Q .33 -.165(ve a)-.275 H 2.75(tt).165 G(he recei)-2.75 E
-.165(ve)-.275 G 2.75(re).165 G -.165(ve)-3.025 G(n).165 E -.385(Ko)72
769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 189.538
(ye Section)-.055 F 2.75(10.4. [P)2.75 F(age 50])-.165 E 0 Cg EP
%%Page: 51 51
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(after the transition.)100.8 85 Q 1.76 -.88(To p)100.8 101.6 T
(rotect ag).88 E(ainst lost DCCP-Mo)-.055 E .33 -.165(ve p)-.165 H(ack)
.165 E(ets, the mobile host SHOULD retransmit a)-.11 E(DCCP-Mo)100.8
114.6 Q .33 -.165(ve p)-.165 H(ack).165 E(et if it does not recei)-.11 E
.33 -.165(ve a)-.275 H 2.75(na).165 G(ckno)-2.75 E
(wledgement within a reasonable time)-.275 E
(period. Section 5.9 describes the mechanism used to protect ag)100.8
127.6 Q(ainst duplicate DCCP-Mo)-.055 E -.165(ve)-.165 G(pack)100.8
140.6 Q(ets.)-.11 E 2.75(Ar)100.8 157.2 S(ecei)-2.75 E -.165(ve)-.275 G
2.75(rM).165 G 2.31 -1.155(AY d)-2.75 H(rop all data recei)1.155 E -.165
(ve)-.275 G 2.75(df).165 G(rom the old address/port pair once a DCCP-Mo)
-2.75 E -.165(ve)-.165 G(has successfully completed. Alternately)100.8
170.2 Q 2.75(,i)-.715 G 2.75(tM)-2.75 G 2.31 -1.155(AY a)-2.75 H
(ccept one Loss W)1.155 E(indo)-.44 E(w')-.275 E 2.75(sw)-.605 G
(orth of this)-2.86 E(data. Congestion and loss e)100.8 183.2 Q -.165
(ve)-.275 G(nts on this data SHOULD NO).165 E 2.75(Ta)-.44 G -.275(ff)
-2.75 G(ect the ne).275 E 2.75(wc)-.275 G(onnection')-2.75 E(s)-.605 E
(congestion control state. The recei)100.8 196.2 Q -.165(ve)-.275 G 2.75
(rM).165 G(UST NO)-2.75 E 2.75(Ta)-.44 G
(ccept data with the old address/port)-2.75 E(pair past one Loss W)100.8
209.2 Q(indo)-.44 E 1.43 -.715(w, a)-.275 H
(nd SHOULD send DCCP-Resets in response to those pack).715 E(ets.)-.11 E
(During some transition period, ackno)100.8 225.8 Q
(wledgements from the recei)-.275 E -.165(ve)-.275 G 2.75(rt).165 G 2.75
(ot)-2.75 G(he mobile host will)-2.75 E(contain information about pack)
100.8 238.8 Q(ets sent both from the old address/port pair)-.11 E 2.75
(,a)-.44 G(nd from the)-2.75 E(ne)100.8 251.8 Q 2.75(wa)-.275 G
(ddress/port pair)-2.75 E 2.75(.T)-.605 G(he mobile DCCP MUST NO)-2.75 E
2.75(Tl)-.44 G(et loss e)-2.75 E -.165(ve)-.275 G(nts on pack).165 E
(ets from the)-.11 E(old address/port pair af)100.8 264.8 Q(fect the ne)
-.275 E 2.75(wc)-.275 G(ongestion control state.)-2.75 E/F1 11
/Times-Bold@0 SF(11.)72 290.8 Q/F2 14/Times-Bold@0 SF -.14(Pa)5.5 G
(th MTU Disco).14 E -.14(ve)-.14 G(ry).14 E F0 2.75(AD)100.8 307.4 S
(CCP implementation SHOULD be capable of performing P)-2.75 E
(ath MTU \(PMTU\))-.165 E(disco)100.8 320.4 Q -.165(ve)-.165 G(ry).165 E
2.75(,a)-.715 G 2.75(sd)-2.75 G
(escribed in [RFC 1191]. The API to DCCP SHOULD allo)-2.75 E 2.75(wt)
-.275 G(his mechanism)-2.75 E(to be disabled in cases where IP fragment\
ation is preferred. The rest of this section)100.8 333.4 Q
(assumes PMTU disco)100.8 346.4 Q -.165(ve)-.165 G
(ry has not been disabled.).165 E 2.75(AD)100.8 363 S(CCP implementatio\
n MUST maintain its idea of the current PMTU for each acti)-2.75 E -.165
(ve)-.275 G(DCCP session.)100.8 376 Q
(The PMTU SHOULD be initialized from the interf)5.5 E
(ace MTU that will be)-.11 E(used to send pack)100.8 389 Q(ets.)-.11 E
1.76 -.88(To p)100.8 405.6 T(erform PMTU disco).88 E -.165(ve)-.165 G
(ry).165 E 2.75(,t)-.715 G(he DCCP sender sets the IP Don')-2.75 E 2.75
(tF)-.198 G(ragment \(DF\) bit.)-2.75 E(Ho)100.8 418.6 Q(we)-.275 E
-.165(ve)-.275 G .88 -.44(r, i).165 H 2.75(ti).44 G 2.75(su)-2.75 G
(ndersirable for MTU disco)-2.75 E -.165(ve)-.165 G
(ry to occur on the initial connection setup).165 E(handshak)100.8 431.6
Q(e, as the connection setup process may not be representati)-.11 E .33
-.165(ve o)-.275 H 2.75(fp).165 G(ack)-2.75 E(et sizes used)-.11 E
(during the connection, and performing MTU disco)100.8 444.6 Q -.165(ve)
-.165 G(ry on the initial handshak).165 E 2.75(em)-.11 G(ight)-2.75 E
(unnecessarily delay connection establishment.)100.8 457.6 Q
(Thus, DF SHOULD NO)5.5 E 2.75(Tb)-.44 G 2.75(es)-2.75 G(et on DCCP-)
-2.75 E(Request and DCCP-Response pack)100.8 470.6 Q
(ets. In addition DF SHOULD NO)-.11 E 2.75(Tb)-.44 G 2.75(es)-2.75 G
(et on DCCP-)-2.75 E(Reset pack)100.8 483.6 Q
(ets, although typically these w)-.11 E
(ould be small enough to not be a problem.)-.11 E(On all)5.5 E
(other DCCP pack)100.8 496.6 Q(ets, DF SHOULD be set.)-.11 E(An)100.8
513.2 Q 2.75(yA)-.165 G(PI to DCCP MUST allo)-2.75 E 2.75(wt)-.275 G
(he application to disco)-2.75 E -.165(ve)-.165 G 2.75(rD).165 G(CCP')
-2.75 E 2.75(sc)-.605 G(urrent PMTU.)-2.75 E
(DCCP applications SHOULD use the API to disco)100.8 526.2 Q -.165(ve)
-.165 G 2.75(rt).165 G(he PMTU, and SHOULD NO)-2.75 E 2.75(Ts)-.44 G
(end)-2.75 E(datagrams that are greater than the PMTU; the only e)100.8
539.2 Q(xception to this is if the application)-.165 E
(disables PMTU disco)100.8 552.2 Q -.165(ve)-.165 G(ry).165 E 2.75(.I)
-.715 G 2.75(ft)-2.75 G(he application tries to send a pack)-2.75 E
(et bigger than the PMTU,)-.11 E
(the DCCP implementation MUST drop the pack)100.8 565.2 Q
(et and return an appropriate error)-.11 E(.)-.605 E
(As speci\214ed in [RFC 1191], when a router recei)100.8 581.8 Q -.165
(ve)-.275 G 2.75(sap).165 G(ack)-2.75 E(et with DF set that is lar)-.11
E(ger than)-.198 E(the PMTU, it sends an ICMP Destination Unreachable m\
essage to the source of the)100.8 594.8 Q(datagram with the Code indica\
ting "fragmentation needed and DF set" \(also kno)100.8 607.8 Q(wn as a)
-.275 E("Datagram T)100.8 620.8 Q(oo Big" message\).)-.88 E
(When a DCCP implementation recei)5.5 E -.165(ve)-.275 G 2.75(saD).165 G
(atagram T)-2.75 E(oo)-.88 E
(Big message, it decreases its PMTU to the Ne)100.8 633.8 Q
(xt-Hop MTU v)-.165 E(alue gi)-.275 E -.165(ve)-.275 G 2.75(ni).165 G
2.75(nt)-2.75 G(he ICMP)-2.75 E 2.75(message. If)100.8 646.8 R
(the MTU gi)2.75 E -.165(ve)-.275 G 2.75(ni).165 G 2.75(nt)-2.75 G
(he message is zero, the sender chooses a v)-2.75 E(alue for PMTU)-.275
E(using the algorithm described in Section 7 of [RFC 1191]. If the MTU \
gi)100.8 659.8 Q -.165(ve)-.275 G 2.75(ni).165 G 2.75(nt)-2.75 G(he)
-2.75 E(message is greater than the current PMTU, the Datagram T)100.8
672.8 Q(oo Big message is ignored, as)-.88 E
(described in [RFC 1191]. \(W)100.8 685.8 Q 2.75(ea)-.88 G(re a)-2.75 E
-.11(wa)-.165 G(re that this may cause problems for DCCP endpoints).11 E
(behind certain \214re)100.8 698.8 Q -.11(wa)-.275 G(lls.\)).11 E -.385
(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E
197.788(ye Section)-.055 F 2.75(11. [P)2.75 F(age 51])-.165 E 0 Cg EP
%%Page: 52 52
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E(If the \
DCCP implementation has decreased the PMTU, and the sending application)
100.8 85 Q(attempts to send a pack)100.8 98 Q(et lar)-.11 E
(ger than the ne)-.198 E 2.75(wM)-.275 G
(TU, the API MUST cause the send to f)-2.75 E(ail)-.11 E(returning an a\
ppropriate error to the application, and the application SHOULD then us\
e the)100.8 111 Q(API to query the ne)100.8 124 Q 2.75(wv)-.275 G
(alue of the PMTU.)-3.025 E(When this occurs, it is possible that the k)
5.5 E(ernel)-.11 E(has some pack)100.8 137 Q(ets b)-.11 E(uf)-.22 E
(fered for transmission that are smaller than the old PMTU, b)-.275 E
(ut lar)-.22 E(ger)-.198 E(than the ne)100.8 150 Q 2.75(wP)-.275 G 2.75
(MTU. The)-2.75 F -.11(ke)2.75 G(rnel MA).11 E 2.75(Ys)-1.155 G
(end these pack)-2.75 E(ets with the DF bit cleared, or it)-.11 E(MA)
100.8 163 Q 2.75(Yd)-1.155 G(iscard these pack)-2.75 E(ets; it MUST NO)
-.11 E 2.75(Tt)-.44 G(ransmit these datagrams with the DF bit set.)-2.75
E(DCCP currently pro)100.8 179.6 Q(vides no w)-.165 E
(ay to increase the PMTU once it has decreased.)-.11 E 2.75(AD)100.8
196.2 S(CCP sender MA)-2.75 E 2.75(Yo)-1.155 G
(ptionally treat the reception of an ICMP Datagram T)-2.75 E(oo Big)-.88
E(message as an indication that the pack)100.8 209.2 Q
(et being reported w)-.11 E(as not lost due congestion, and so)-.11 E
(for the purposes of congestion control it MA)100.8 222.2 Q 2.75(Yi)
-1.155 G(gnore the DCCP recei)-2.75 E -.165(ve)-.275 G(r').165 E 2.75
(si)-.605 G(ndication that)-2.75 E(this pack)100.8 235.2 Q
(et did not arri)-.11 E -.165(ve)-.275 G 5.5(.H).165 G -.275(ow)-5.5 G
-2.365 -.275(ev e).275 H .88 -.44(r, i).275 H 2.75(ft).44 G
(his is done, then the DCCP sender MUST check the)-2.75 E(ECN bits of t\
he IP header echoed in the ICMP message, and only perform this)100.8
248.2 Q(optimization if these ECN bits indicate that the pack)100.8
261.2 Q(et did not e)-.11 E(xperience congestion prior)-.165 E
(to reaching the router whose MTU it e)100.8 274.2 Q(xceeded.)-.165 E/F1
11/Times-Bold@0 SF(12.)72 300.2 Q/F2 14/Times-Bold@0 SF
(Middlebox Considerations)5.5 E F0
(This section describes properties of DCCP that \214re)100.8 316.8 Q
-.11(wa)-.275 G(lls, netw).11 E(ork address translators, and)-.11 E
(other middlebox)100.8 329.8 Q(es must consider)-.165 E 2.75(,i)-.44 G
(ncluding parts of the pack)-2.75 E(et that middlebox)-.11 E
(es must not)-.165 E(change.)100.8 342.8 Q
(The Service Name \214eld in DCCP-Request pack)100.8 359.4 Q(ets pro)
-.11 E(vide information that may be useful)-.165 E
(for stateful middlebox)100.8 372.4 Q(es. W)-.165 E
(ith Service Name, a middlebox can tell what protocol a)-.44 E
(connection will use, without relying on port numbers.)100.8 385.4 Q
(Middlebox)5.5 E(es MA)-.165 E 2.75(Yd)-1.155 G(isallo)-2.75 E(w)-.275 E
(attempted connections with zero Service Names by sending a DCCP-Reset.\
 Middlebox)100.8 398.4 Q(es)-.165 E(SHOULD NO)100.8 411.4 Q 2.75(Tm)-.44
G(odify the Service Name.)-2.75 E
(The Source and Destination Port \214elds are in the same pack)100.8 428
Q(et locations as the)-.11 E(corresponding \214elds in TCP and UDP)100.8
441 Q 2.75(,w)-1.221 G(hich may simplify some middlebox)-2.75 E
(implementations.)100.8 454 Q(Middlebox)100.8 470.6 Q(es MUST NO)-.165 E
2.75(Tm)-.44 G(odify DCCP pack)-2.75 E(ets' Sequence Number)-.11 E 2.75
(,A)-.44 G(ckno)-2.75 E(wledgement)-.275 E(Number)100.8 483.6 Q 2.75(,a)
-.44 G(nd # NDP \214elds in order to add or remo)-2.75 E .33 -.165(ve p)
-.165 H(ack).165 E(ets from a pack)-.11 E(et stream. An)-.11 E(y)-.165 E
(such modi\214cation w)100.8 496.6 Q(ould af)-.11 E
(fect the endpoints' accounting of which pack)-.275 E(ets ha)-.11 E .33
-.165(ve b)-.22 H(een lost,).165 E(destro)100.8 509.6 Q 2.75(yt)-.11 G(\
he Identi\214cation mechanism, and confuse the congestion control mecha\
nisms in)-2.75 E(use. Note that there is less need to modify DCCP')100.8
522.6 Q 2.75(sp)-.605 G(er)-2.75 E(-pack)-.22 E
(et sequence numbers than)-.11 E(TCP')100.8 535.6 Q 2.75(sp)-.605 G(er)
-2.75 E(-byte sequence numbers; for e)-.22 E
(xample, a middlebox can change the contents of a)-.165 E(pack)100.8
548.6 Q(et without changing its sequence number)-.11 E 2.75(.\()-.605 G
(In TCP)-2.75 E 2.75(,s)-1.221 G(equence number modi\214cation is)-2.75
E(required to support le)100.8 561.6 Q -.055(ga)-.165 G .33 -.165(cy p)
.055 H(rotocols lik).165 E 2.75(eF)-.11 G(TP that carry v)-2.75 E
(ariable-length addresses in the)-.275 E
(data stream. If such an application were deplo)100.8 574.6 Q(yed o)-.11
E -.165(ve)-.165 G 2.75(rD).165 G(CCP)-2.75 E 2.75(,m)-1.221 G(iddlebox)
-2.75 E(es w)-.165 E(ould simply)-.11 E(gro)100.8 587.6 Q 2.75(wo)-.275
G 2.75(rs)-2.75 G(hrink the rele)-2.75 E -.275(va)-.275 G(nt pack).275 E
(ets as necessary)-.11 E 2.75(,w)-.715 G(ithout changing their sequence)
-2.75 E(numbers.\))100.8 600.6 Q(The e)100.8 617.2 Q
(xception to this rule is that middlebox)-.165 E(es MA)-.165 E 2.75(Yr)
-1.155 G(eset connections in progress. Clearly)-2.75 E
(this requires inserting a pack)100.8 630.2 Q(et into one or both pack)
-.11 E(et streams, as well as dropping all later)-.11 E(pack)100.8 643.2
Q(ets on the connection.)-.11 E(This does not e)100.8 659.8 Q
(xplicitly pre)-.165 E -.165(ve)-.275 G
(nt one sequence number modi\214cation occasionally seen with).165 E
(TCP)100.8 672.8 Q 2.75(,n)-1.221 G(amely proxies with "connection spli\
cing" [SHHP00]. Such proxies intercept TCP)-2.75 E
(connection attempts from a client, b)100.8 685.8 Q
(ut may later "splice" data from an e)-.22 E(xternal serv)-.165 E(er)
-.165 E(connection into that client connection via sequence number mani\
pulations. P)100.8 698.8 Q(ack)-.165 E(ets are not)-.11 E
(added to or remo)100.8 711.8 Q -.165(ve)-.165 G 2.75(df).165 G
(rom the spliced-in stream, reducing the sequence number issues)-2.75 E
(some)100.8 724.8 Q(what. Ne)-.275 E -.165(ve)-.275 G(rtheless, DCCP)
.165 E 2.75(,w)-1.221 G(ith its e)-2.75 E(xtensi)-.165 E .33 -.165(ve e)
-.275 H(nd-to-end feature ne).165 E(gotiation, is)-.165 E -.385(Ko)72
769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 197.788
(ye Section)-.055 F 2.75(12. [P)2.75 F(age 52])-.165 E 0 Cg EP
%%Page: 53 53
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(inherently unfriendly to the idea of connection splicing: the proxy w)
100.8 85 Q(ould ha)-.11 E .33 -.165(ve t)-.22 H 2.75(oe).165 G(nsure)
-2.75 E(that the serv)100.8 98 Q(er chose the same feature v)-.165 E
(alues that the proxy had pre)-.275 E(viously ne)-.275 E(gotiated with)
-.165 E(the client.)100.8 111 Q(Furthermore, Identi\214cation options w)
5.5 E(ould require special handling; and there)-.11 E
(may be other issues. W)100.8 124 Q 2.75(es)-.88 G
(uggest that DCCP splicing, if implemented, should tak)-2.75 E 2.75(ep)
-.11 G(lace at)-2.75 E(the application le)100.8 137 Q -.165(ve)-.275 G
(l.).165 E 2.75(Am)100.8 153.6 S(iddlebox that w)-2.75 E(ants to tri)
-.11 E(vially support the MD5 Identi\214cation Re)-.275 E
(gime \(Section 6.4.3\))-.165 E(MUST NO)100.8 166.6 Q 2.75(Ta)-.44 G
(lter pack)-2.75 E(ets' Sequence Number)-.11 E 2.75(,T)-.44 G
(ype, and CCv)-3.63 E(al \214elds, or the Connection)-.275 E
(Nonce feature v)100.8 179.6 Q(alues, which are included in the MD5 has\
h sent with Identi\214cation and)-.275 E(Challenge options.)100.8 192.6
Q(The contents of this section SHOULD NO)100.8 209.2 Q 2.75(Tb)-.44 G
2.75(ei)-2.75 G(nterpreted as a wholesale endorsement of)-2.75 E
(stateful middlebox)100.8 222.2 Q(es.)-.165 E/F1 11/Times-Bold@0 SF(13.)
72 248.2 Q/F2 14/Times-Bold@0 SF(Abstract API)5.5 E F0(API issues for D\
CCP are discussed in another Internet-Draft, in progress.)100.8 264.8 Q
F1(14.)72 290.8 Q F2(Multiplexing Issues)5.5 E F0(In contrast to TCP)
100.8 307.4 Q 2.75(,D)-1.221 G(CCP does not of)-2.75 E
(fer reliable ordered deli)-.275 E -.165(ve)-.275 G(ry).165 E 5.5(.A)
-.715 G 2.75(sac)-5.5 G(onsequence, with)-2.75 E(DCCP there are no inhe\
rent performance penalties in layering functionality abo)100.8 320.4 Q
.33 -.165(ve D)-.165 H(CCP to).165 E(multiple)100.8 333.4 Q 2.75(xs)
-.165 G -2.365 -.275(ev e)-2.75 H(ral sub-\215o).275 E
(ws into a single DCCP connection.)-.275 E(Ho)100.8 350 Q(we)-.275 E
-.165(ve)-.275 G .88 -.44(r, t).165 H(his approach of multiple).44 E
(xing sub-\215o)-.165 E(ws abo)-.275 E .33 -.165(ve D)-.165 H
(CCP will not w).165 E(ork in)-.11 E(circumstances such as R)100.8 363 Q
(TP where the R)-.66 E(TP sub\215o)-.66 E
(ws require separate port numbers.)-.275 E(In this)5.5 E(case, if it is\
 desired to share congestion control state among multiple DCCP \215o)
100.8 376 Q(ws that)-.275 E(share the same source and destination addre\
sses, the possibilities are to add DCCP-speci\214c)100.8 389 Q
(mechanisms to enable this, or to use a generic multiple)100.8 402 Q
(xing f)-.165 E(acility lik)-.11 E 2.75(et)-.11 G(he Congestion)-2.75 E
(Manager [RFC 3124] residing belo)100.8 415 Q 2.75(wt)-.275 G
(he transport layer)-2.75 E 5.5(.F)-.605 G(or some DCCP \215o)-5.665 E
(ws, the ability)-.275 E(to specify the congestion control mechanism mi\
ght be critical, and for these \215o)100.8 428 Q(ws the)-.275 E
(Congestion Manager will only be a viable tool if it allo)100.8 441 Q
(ws DCCP to specify the congestion)-.275 E
(control mechanism used by the Congestion Manager for that \215o)100.8
454 Q 4.18 -.715(w. T)-.275 H(hus, to allo).715 E 2.75(wt)-.275 G(he)
-2.75 E(sharing of congestion control state among multiple DCCP \215o)
100.8 467 Q(ws, the alternati)-.275 E -.165(ve)-.275 G 2.75(ss).165 G
(eem to)-2.75 E
(be to add DCCP-speci\214c functionality to the Congestion Manager)100.8
480 Q 2.75(,o)-.44 G 2.75(rt)-2.75 G 2.75(oa)-2.75 G(dd a similar layer)
-2.75 E(belo)100.8 493 Q 2.75(wD)-.275 G(CCP that is speci\214c to DCCP)
-2.75 E 5.5(.W)-1.221 G 2.75(ed)-6.38 G(efer issues of DCCP operating o)
-2.75 E -.165(ve)-.165 G 2.75(rar).165 G -.275(ev)-2.75 G(ised).275 E
-.165(ve)100.8 506 S(rsion of the Congestion Manager).165 E 2.75(,o)-.44
G 2.75(ro)-2.75 G -.165(ve)-2.915 G 2.75(raD).165 G
(CCP-speci\214c module for the sharing of)-2.75 E
(congestion control state, to later w)100.8 519 Q(ork.)-.11 E F1(15.)72
545 Q F2(DCCP and R)5.5 E(TP)-.56 E F0
(The real-time transport protocol, R)100.8 561.6 Q
(TP [RFC 1889], is currently used \(o)-.66 E -.165(ve)-.165 G 2.75(rU)
.165 G(DP\) by man)-2.75 E(y)-.165 E(of DCCP')100.8 574.6 Q 2.75(st)
-.605 G(ar)-2.75 E(get applications \(for instance, streaming media\). \
This section therefore)-.198 E
(discusses the relationship between DCCP and R)100.8 587.6 Q(TP)-.66 E
2.75(,a)-1.221 G(nd in particular)-2.75 E 2.75(,t)-.44 G(he question of)
-2.75 E(whether an)100.8 600.6 Q 2.75(yc)-.165 G(hanges in R)-2.75 E
(TP are necessary or desirable when it is layered o)-.66 E -.165(ve)
-.165 G 2.75(rD).165 G(CCP)-2.75 E(instead of UDP)100.8 613.6 Q 2.75(.T)
-1.221 G(he main issue here is header size: a DCCP header is at least 4\
 bytes lar)-2.75 E(ger)-.198 E(than a UDP header)100.8 626.6 Q(.)-.605 E
(There are tw)100.8 643.2 Q 2.75(op)-.11 G(otential sources of o)-2.75 E
-.165(ve)-.165 G(rhead in the R).165 E(TP-o)-.66 E -.165(ve)-.165 G -.22
(r-).165 G(DCCP combination,).22 E(duplicated ackno)100.8 656.2 Q
(wledgement information and duplicated sequence numbers. W)-.275 E 2.75
(ea)-.88 G -.198(rg)-2.75 G(ue that).198 E(together)100.8 669.2 Q 2.75
(,t)-.44 G(hese sources of o)-2.75 E -.165(ve)-.165 G
(rhead add just 4 bytes per pack).165 E(et relati)-.11 E .33 -.165(ve t)
-.275 H 2.75(oR).165 G(TP-o)-3.41 E -.165(ve)-.165 G -.22(r-).165 G(UDP)
.22 E(,)-1.221 E(and that eliminating the redundanc)100.8 682.2 Q 2.75
(yw)-.165 G(ould not reduce the o)-2.86 E -.165(ve)-.165 G(rhead. Ho)
.165 E(we)-.275 E -.165(ve)-.275 G .88 -.44(r, p).165 H(articular).44 E
(CCIDs might mak)100.8 695.2 Q 2.75(ep)-.11 G(roducti)-2.75 E .33 -.165
(ve u)-.275 H(se of the space occupied by R).165 E(TP')-.66 E 2.75(ss)
-.605 G(equence number)-2.75 E(.)-.605 E(First, consider ackno)100.8
711.8 Q(wledgements. The information on pack)-.275 E(et loss that R)-.11
E(TP communicates)-.66 E(via R)100.8 724.8 Q(TCP SR/RR pack)-.66 E
(ets is communicated by DCCP via ackno)-.11 E(wledgement options. Much)
-.275 E -.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E
(adh)-.165 E 197.788(ye Section)-.055 F 2.75(15. [P)2.75 F(age 53])-.165
E 0 Cg EP
%%Page: 54 54
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(of the information in an R)100.8 85 Q(TCP recei)-.66 E -.165(ve)-.275 G
2.75(rr).165 G(eport could be di)-2.75 E(vined from DCCP)-.275 E(ackno)
100.8 98 Q(wledgements, depending on the CCID in use.)-.275 E(Ackno)5.5
E(wledgement options, such as)-.275 E(Ack V)100.8 111 Q(ector)-1.221 E
2.75(,c)-.44 G(an be frequent and v)-2.75 E(erbose, whereas R)-.165 E
(TCP reports are sent only rarely)-.66 E 2.75(,w)-.715 G(ith a)-2.75 E
(minimum interv)100.8 124 Q(al of 5 seconds between reports [RFC 1889].)
-.275 E(Ho)100.8 140.6 Q(we)-.275 E -.165(ve)-.275 G .88 -.44(r, n).165
H(ot all CCIDs require such v).44 E(erbose ackno)-.165 E
(wledgements. CCID 3 \(TFRC\) reports)-.275 E(ackno)100.8 153.6 Q
(wledgements at a lo)-.275 E 2.75(wr)-.275 G
(ate---between 16 and 32 bytes of options \(depending on ECN)-2.75 E
(usage\), sent once per round trip time. This is not an undue b)100.8
166.6 Q(urden. Furthermore, the)-.22 E
(options are necessary to implement responsi)100.8 179.6 Q .33 -.165
(ve c)-.275 H(ongestion control, and we cannot report).165 E
(less frequently)100.8 192.6 Q 2.75(,a)-.715 G
(lthough we might design alternati)-2.75 E .33 -.165(ve a)-.275 H(ckno)
.165 E(wledgement options that tak)-.275 E(e)-.11 E(fe)100.8 205.6 Q
(wer bytes. DCCP gi)-.275 E -.165(ve)-.275 G 2.75(st).165 G
(he application the trade of)-2.75 E 2.75(fb)-.275 G(etween small pack)
-2.75 E(et o)-.11 E -.165(ve)-.165 G(rhead and).165 E
(the precise feedback pro)100.8 218.6 Q(vided by Ack V)-.165 E(ector)
-1.221 E(.)-.605 E(While R)100.8 235.2 Q(TP recei)-.66 E -.165(ve)-.275
G 2.75(rr).165 G
(eports might be considered "redundant" in the presence of DCCP')-2.75 E
(s)-.605 E(more precise ackno)100.8 248.2 Q(wledgements, the)-.275 E
2.75(ya)-.165 G(re sent so infrequently that it is not w)-2.75 E(orth)
-.11 E(optimizing them a)100.8 261.2 Q -.11(wa)-.165 G 1.43 -.715(y. A)
.11 H(lso, note that in the common case of a one-w).715 E
(ay data stream,)-.11 E(ackno)100.8 274.2 Q(wledgement pack)-.275 E
(ets contain no data, so ackno)-.11 E
(wledgement header size \(as distinct)-.275 E
(from congestion on the ackno)100.8 287.2 Q
(wledgement path\) is not an issue.)-.275 E 1.76 -.88(We n)100.8 303.8 T
.55 -.275(ow c).88 H(onsider sequence number redundanc).275 E 2.75(yo)
-.165 G 2.75(nd)-2.75 G(ata pack)-2.75 E(ets. The embedded R)-.11 E(TP)
-.66 E(header contains a 16-bit R)100.8 316.8 Q(TP sequence number)-.66
E 2.75(.M)-.605 G(ost data pack)-2.75 E(ets will use the DCCP-Data)-.11
E(type; DCCP-DataAck and DCCP-Ack pack)100.8 329.8 Q
(ets need not usually be sent. The DCCP-Data)-.11 E(header is 12 bytes \
long without options, including a 24-bit sequence number)100.8 342.8 Q
2.75(.T)-.605 G(his is 4)-2.75 E(bytes more than a UDP header)100.8
355.8 Q 2.75(.A)-.605 G .33 -.165(ny o)-2.75 H
(ptions required on data pack).165 E(ets w)-.11 E(ould add further)-.11
E -.165(ove)100.8 368.8 S(rhead, although man).165 E 2.75(yC)-.165 G
(CIDs \(for instance, CCID 3 [TFRC]\) don')-2.75 E 2.75(tr)-.198 G
(equire options on)-2.75 E(most data pack)100.8 381.8 Q(ets.)-.11 E
(The DCCP sequence number cannot be inferred from the R)100.8 398.4 Q
(TP sequence number since it)-.66 E(increments on non-data pack)100.8
411.4 Q(ets as well as data pack)-.11 E(ets. The R)-.11 E
(TP sequence number could)-.66 E
(be inferred from the DCCP sequence number)100.8 424.4 Q 2.75(,t)-.44 G
(hough; it might equal the DCCP sequence)-2.75 E
(number minus the total number of non-data pack)100.8 437.4 Q
(ets seen so f)-.11 E(ar in the connection \(as)-.11 E(track)100.8 450.4
Q(ed by DCCP')-.11 E 2.75(s#N)-.605 G(DP header \214eld\).)-2.75 E(Remo)
100.8 467 Q(ving R)-.165 E(TP')-.66 E 2.75(ss)-.605 G(equence number w)
-2.75 E(ould not sa)-.11 E .33 -.165(ve a)-.22 H .33 -.165(ny h).165 H
(eader space because of alignment).165 E(issues. Ho)100.8 480 Q(we)-.275
E -.165(ve)-.275 G .88 -.44(r, p).165 H(articular DCCP CCIDs might mak)
.44 E 2.75(eu)-.11 G(se of the 16 bits occupied by the)-2.75 E -.66(RT)
100.8 493 S 2.75(Ps).66 G(equence number)-2.75 E 2.75(.T)-.605 G
(herefore, particular DCCP CCIDs MA)-2.75 E 2.75(Yp)-1.155 G(ro)-2.75 E
(vide optional CCID-)-.165 E(speci\214c features that store DCCP quanti\
ties in place of the embedded R)100.8 506 Q(TP sequence)-.66 E(number)
100.8 519 Q 2.75(.Ac)-.605 G(onforming DCCP w)-2.75 E
(ould write in the calculated R)-.11 E(TP sequence number before)-.66 E
(passing the pack)100.8 532 Q(et to R)-.11 E(TP)-.66 E 2.75(.\()-1.221 G
(The DCCP checksum w)-2.75 E(ould use the DCCP quantity)-.11 E 2.75(,n)
-.715 G(ot the)-2.75 E -.66(RT)100.8 545 S 2.75(Ps).66 G(equence number)
-2.75 E(.\))-.605 E(Gi)100.8 561.6 Q -.165(ve)-.275 G 2.75(nR).165 G
(TP-o)-3.41 E -.165(ve)-.165 G -.22(r-).165 G(DCCP').22 E 2.75(ss)-.605
G(mall o)-2.75 E -.165(ve)-.165 G(rhead, ho).165 E(we)-.275 E -.165(ve)
-.275 G .88 -.44(r, i).165 H(mplementors demanding tin).44 E 2.75(yh)
-.165 G(eaders)-2.75 E(will probably prefer more comprehensi)100.8 574.6
Q .33 -.165(ve h)-.275 H(eader compression to this ad-hoc compression)
.165 E(technique.)100.8 587.6 Q/F1 11/Times-Bold@0 SF(16.)72 613.6 Q/F2
14/Times-Bold@0 SF(Security Considerations)5.5 E F0(DCCP does not pro)
100.8 630.2 Q
(vide cryptographic security guarantees. Applications desiring hard)
-.165 E(security should use IPsec or end-to-end security of some kind.)
100.8 643.2 Q(Ne)100.8 659.8 Q -.165(ve)-.275 G
(rtheless, DCCP is intended to protect ag).165 E
(ainst some classes of attack)-.055 E 2.75(ers. Attack)-.11 F(ers)-.11 E
(cannot hijack a DCCP connection \(close the connection une)100.8 672.8
Q(xpectedly)-.165 E 2.75(,o)-.715 G 2.75(rc)-2.75 G(ause attack)-2.75 E
(er)-.11 E(data to be accepted by an endpoint as if it came from the se\
nder\) unless the)100.8 685.8 Q 2.75(yc)-.165 G(an guess)-2.75 E -.275
(va)100.8 698.8 S(lid sequence numbers. Thus, as long as endpoints choo\
se initial sequence numbers well,).275 E 2.75(aD)100.8 711.8 S
(CCP attack)-2.75 E(er must snoop on data pack)-.11 E(ets to get an)-.11
E 2.75(yr)-.165 G(easonable probability of success.)-2.75 E
(The sequence number v)100.8 724.8 Q(alidity \(Section 5.2\), Identi\
\214cation \(Section 6.4.3\), and mobility)-.275 E -.385(Ko)72 769 S
(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 197.788
(ye Section)-.055 F 2.75(16. [P)2.75 F(age 54])-.165 E 0 Cg EP
%%Page: 55 55
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(\(Section 10\) mechanisms pro)100.8 85 Q(vide this guarantee.)-.165 E
/F1 11/Times-Bold@0 SF(17.)72 111 Q/F2 14/Times-Bold@0 SF(IAN)5.5 E 3.5
(AC)-.28 G(onsiderations)-3.5 E F0
(DCCP introduces six sets of numbers whose v)100.8 127.6 Q
(alues should be allocated by IAN)-.275 E(A.)-.385 E 7.15<8333>100.8
144.2 S(2-bit Service Names \(Section 5.4; not e)-7.15 E(xclusi)-.165 E
.33 -.165(ve t)-.275 H 2.75(oD).165 G(CCP\).)-2.75 E 7.15<8338>100.8
160.8 S(-bit DCCP-Reset Reasons \(Section 5.8\).)-7.15 E 7.15<8338>100.8
177.4 S(-bit DCCP Option T)-7.15 E
(ypes \(Section 6\). The CCID-speci\214c options 128 through 255 need)
-.88 E(not be allocated by IAN)111.8 190.4 Q(A.)-.385 E 7.15<8338>100.8
207 S(-bit DCCP Feature Numbers \(Section 6.3\). The CCID-speci\214c fe\
atures 128 through)-7.15 E(255 need not be allocated by IAN)111.8 220 Q
(A.)-.385 E 7.15<8338>100.8 236.6 S
(-bit DCCP Congestion Control Identi\214ers \(CCIDs\) \(Section 7\).)
-7.15 E 7.15<8331>100.8 253.2 S(6-bit Identi\214cation Re)-7.15 E
(gimes, for use with DCCP Identi\214cation and Challenge options)-.165 E
(\(Section 6.4\).)111.8 266.2 Q
(In addition, DCCP requires a Protocol Number to be added to the re)
100.8 282.8 Q(gistry of Assigned)-.165 E(Internet Protocol Numbers. Exp\
erimental implementors should use Protocol Number 33 for)100.8 295.8 Q
(DCCP)100.8 308.8 Q 2.75(,b)-1.221 G
(ut this number may change in future.)-2.97 E F1(18.)72 334.8 Q F2
(Design Moti)5.5 E -.14(va)-.14 G(tion).14 E F0(In the section we attem\
pt to capture some of the rationale behind speci\214c details of DCCP)
100.8 351.4 Q(design.)100.8 364.4 Q F1(18.1.)72 390.4 Q/F3 13
/Times-Bold@0 SF(CSlen and P)5.5 E(artial Checksumming)-.13 E F0 2.75
(Ag)100.8 407 S(reat deal of discussion has tak)-2.75 E(en place re)-.11
E -.055(ga)-.165 G(rding the utility of allo).055 E(wing a DCCP sender)
-.275 E(to restrict the checksum so that it does not co)100.8 420 Q
-.165(ve)-.165 G 2.75(rt).165 G(he complete pack)-2.75 E(et.)-.11 E(Man)
100.8 436.6 Q 2.75(yo)-.165 G 2.75(ft)-2.75 G
(he applications that we en)-2.75 E
(visage using DCCP are resilient to some de)-.44 E(gree of data)-.165 E
(loss, or the)100.8 449.6 Q 2.75(yw)-.165 G(ould typically ha)-2.86 E
.33 -.165(ve c)-.22 H(hosen a reliable transport.).165 E
(Some of these applications)5.5 E
(may also be resilient to data corruption---some audio payloads, for e)
100.8 462.6 Q 2.75(xample. These)-.165 F
(resilient applications might prefer to recei)100.8 475.6 Q .33 -.165
(ve c)-.275 H(orrupted data than to ha).165 E .33 -.165(ve D)-.22 H
(CCP drop a).165 E(corrupted pack)100.8 488.6 Q 2.75(et. This)-.11 F
(is particularly because of congestion control: DCCP cannot tell the)
2.75 E(dif)100.8 501.6 Q(ference between pack)-.275 E
(ets dropped due to corruption and pack)-.11 E(ets dropped due to)-.11 E
(congestion, and so it must reduce the transmission rate accordingly)
100.8 514.6 Q 5.5(.T)-.715 G(his response may)-5.5 E
(cause the connection to recei)100.8 527.6 Q .33 -.165(ve l)-.275 H
(ess bandwidth than it is due; corruption in some).165 E(netw)100.8
540.6 Q(orking technologies is independent of, or at least not al)-.11 E
-.11(wa)-.11 G(ys correlated to, congestion.).11 E
(Therefore, corrupted pack)100.8 553.6 Q
(ets do not need to cause as strong a reduction in transmission rate)
-.11 E(as the congestion response w)100.8 566.6 Q
(ould dictate \(so long as the DCCP header and options are not)-.11 E
(corrupt\).)100.8 579.6 Q(Thus DCCP allo)100.8 596.2 Q
(ws the checksum to co)-.275 E -.165(ve)-.165 G 2.75(ra).165 G
(ll of the pack)-2.75 E(et, just the DCCP header)-.11 E 2.75(,o)-.44 G
2.75(rb)-2.75 G(oth)-2.75 E
(the DCCP header and some number of bytes from the payload.)100.8 609.2
Q(If the application cannot)5.5 E(tolerate an)100.8 622.2 Q 2.75(yp)
-.165 G(ayload corruption, then the checksum SHOULD co)-2.75 E -.165(ve)
-.165 G 2.75(rt).165 G(he whole pack)-2.75 E 2.75(et. If)-.11 F
(the application w)100.8 635.2 Q
(ould prefer to tolerate some corruption rather than ha)-.11 E .33 -.165
(ve t)-.22 H(he pack).165 E(et)-.11 E
(dropped, then it can set the checksum to co)100.8 648.2 Q -.165(ve)
-.165 G 2.75(ro).165 G(nly part of the pack)-2.75 E(et \(b)-.11 E(ut al)
-.22 E -.11(wa)-.11 G(ys the).11 E(DCCP header\).)100.8 661.2 Q
(In addition, if the application wishes to decouple checksumming of the)
5.5 E(DCCP header from checksumming of the payload, it may do so by inc\
luding the P)100.8 674.2 Q(ayload)-.165 E(Checksum option.)100.8 687.2 Q
(This w)5.5 E(ould allo)-.11 E 2.75(wp)-.275 G
(ayload corruption to cause DCCP to discard a)-2.75 E
(corrupted payload, b)100.8 700.2 Q(ut still not mistak)-.22 E 2.75(et)
-.11 G(he corruption for netw)-2.75 E(ork congestion.)-.11 E -.385(Ko)72
769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 189.538
(ye Section)-.055 F 2.75(18.1. [P)2.75 F(age 55])-.165 E 0 Cg EP
%%Page: 56 56
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
(Thus, from the application point of vie)100.8 85 Q 1.43 -.715(w, p)
-.275 H(artial checksums seem to be a desirable feature.).715 E(Ho)100.8
98 Q(we)-.275 E -.165(ve)-.275 G .88 -.44(r, t).165 H
(he usefulness of partial checksums depends on partially corrupted pack)
.44 E(ets being)-.11 E(deli)100.8 111 Q -.165(ve)-.275 G
(red to the recei).165 E -.165(ve)-.275 G 3.96 -.605(r. I).165 H 2.75
(ft).605 G(he link-layer CRC al)-2.75 E -.11(wa)-.11 G
(ys discards corrupted pack).11 E(ets, then this)-.11 E
(will not happen, and so the usefulness of partial checksums w)100.8 124
Q(ould be restricted to)-.11 E
(corruption that occurred in routers and other places not co)100.8 137 Q
-.165(ve)-.165 G(red by link CRCs.).165 E(There does)5.5 E
(not appear to be consensus on ho)100.8 150 Q 2.75(wl)-.275 G(ik)-2.75 E
(ely it is that future netw)-.11 E(ork links that suf)-.11 E(fer)-.275 E
(signi\214cant corruption will not co)100.8 163 Q -.165(ve)-.165 G 2.75
(rt).165 G(he entire pack)-2.75 E(et with a single strong CRC.)-.11 E
(DCCP)5.5 E(mak)100.8 176 Q
(es it possible to tailor such links to the application, b)-.11 E
(ut it is dif)-.22 E(\214cult to predict if this)-.275 E
(will be compelling for future link technologies.)100.8 189 Q
(In addition, partial checksums do not co-e)100.8 205.6 Q
(xist well with IP-le)-.165 E -.165(ve)-.275 G 2.75(la).165 G
(uthentication)-2.75 E(mechanisms such as IPsec AH, which co)100.8 218.6
Q -.165(ve)-.165 G 2.75(rt).165 G(he entire pack)-2.75 E
(et with a cryptographic hash.)-.11 E
(Thus, if cryptographic authentication mechanisms are required to co-e)
100.8 231.6 Q(xist with partial)-.165 E
(checksums, the authentication must be carried in the DCCP payload.)
100.8 244.6 Q 2.75(Ap)5.5 G(ossible mode of)-2.75 E(usage w)100.8 257.6
Q(ould appear to be similar to that of Secure R)-.11 E(TP)-.66 E 5.5(.H)
-1.221 G -.275(ow)-5.5 G -2.365 -.275(ev e).275 H .88 -.44(r, s).275 H
(uch "application-le).44 E -.165(ve)-.275 G(l").165 E
(authentication does not protect the DCCP option ne)100.8 270.6 Q
(gotiation and state machine from for)-.165 E(ged)-.198 E(pack)100.8
283.6 Q 2.75(ets. An)-.11 F(alternati)2.75 E .33 -.165(ve w)-.275 H
(ould be to use IPsec ESP).055 E 2.75(,a)-1.221 G
(nd use encryption to protect the)-2.75 E(DCCP headers ag)100.8 296.6 Q
(ainst attack, while using the DCCP header v)-.055 E
(alidity checks to authenticate)-.275 E
(that the header is from someone who possessed the correct k)100.8 309.6
Q -.165(ey)-.11 G 5.5(.H)-.55 G -.275(ow)-5.5 G -2.365 -.275(ev e).275 H
.88 -.44(r, w).275 H(hile this is).44 E(resistant to replay \(due to th\
e DCCP sequence number\), it is not by itself resistant to some)100.8
322.6 Q(forms of man-in-the-middle attacks because the payload is not t\
ightly coupled to the pack)100.8 335.6 Q(et)-.11 E(header)100.8 348.6 Q
5.5(.T)-.605 G(hus an application-le)-5.5 E -.165(ve)-.275 G 2.75(la)
.165 G(uthentication probably needs to be coupled with IPsec)-2.75 E
(ESP or a similar mechanism to pro)100.8 361.6 Q
(vide a reasonably complete security solution.)-.165 E(The)5.5 E -.165
(ove)100.8 374.6 S(rhead of such a solution might be unacceptable for s\
ome applications that w).165 E(ould)-.11 E
(otherwise wish to use partial checksums.)100.8 387.6 Q
(On balance, the authors belie)100.8 404.2 Q .33 -.165(ve t)-.275 H
(hat DCCP partial checksums ha).165 E .33 -.165(ve t)-.22 H
(he potential to enable).165 E(some future uses that w)100.8 417.2 Q
(ould otherwise be dif)-.11 E 2.75(\214cult. As)-.275 F
(the cost and comple)2.75 E(xity of)-.165 E
(supporting them is small, it seems w)100.8 430.2 Q
(orth including them at this time.)-.11 E(It remains to be seen)5.5 E
(whether the)100.8 443.2 Q 2.75(ya)-.165 G(re useful in practice.)-2.75
E/F1 11/Times-Bold@0 SF(19.)72 469.2 Q/F2 14/Times-Bold@0 SF(Thanks)5.5
E F0(There is a wealth of w)100.8 485.8 Q
(ork in this area, including the Congestion Manager)-.11 E 5.5(.W)-.605
G 2.75(et)-6.38 G(hank the)-2.75 E(staf)100.8 498.8 Q 2.75(fa)-.275 G
(nd interns of ICIR and, formerly)-2.75 E 2.75(,A)-.715 G
(CIRI, the members of the End-to-End Research)-3.19 E
(Group, and the members of the T)100.8 511.8 Q(ransport Area W)-.385 E
(orking Group for their feedback on)-.88 E(DCCP)100.8 524.8 Q 2.75(.W)
-1.221 G 2.75(ea)-3.63 G(lso thank those who pro)-2.75 E
(vided comments and suggestions via the DCCP BOF)-.165 E(,)-.88 E -.88
(Wo)100.8 537.8 S
(rking Group, and mailing lists, including Damon Lanphear).88 E 2.75(,P)
-.44 G(atrick McManus, Sara)-2.915 E(Karlber)100.8 550.8 Q(g, K)-.198 E
-.275(ev)-.275 G(in Lai, Y).275 E(oungsoo Choi, Dan Duchamp, Derek F)
-1.21 E -.165(aw)-.165 G(cus, Da).165 E(vid T)-.22 E(imoth)-.385 E(y)
-.055 E(Fleeman, John Loughne)100.8 563.8 Q 1.43 -.715(y, G)-.165 H
-.055(hy).715 G(slain Pelletier).055 E 2.75(,T)-.44 G
(om Phelan, Stanisla)-3.63 E 2.75(vS)-.22 G(haluno)-2.75 E 1.43 -.715
(v, Y)-.165 H(ufei W)-.506 E(ang,)-.88 E(and Michael W)100.8 576.8 Q
(elzl.)-.88 E F1(20.)72 602.8 Q F2(Normati)5.5 E .28 -.14(ve R)-.14 H
(efer).14 E(ences)-.252 E F0([RFC 793] J. Postel, editor)100.8 619.4 Q
2.75(.T)-.605 G(ransmission Control Protocol. RFC 793.)-3.135 E
([RFC 1191] J. C. Mogul and S. E. Deering. P)100.8 636 Q(ath MTU Disco)
-.165 E -.165(ve)-.165 G(ry).165 E 2.75(.R)-.715 G(FC 1191.)-2.75 E
([RFC 2026] S. Bradner)100.8 652.6 Q 2.75(.T)-.605 G
(he Internet Standards Process---Re)-2.75 E(vision 3. RFC 2026.)-.275 E
([RFC 2119] S. Bradner)100.8 669.2 Q 2.75(.K)-.605 G .33 -.165(ey W)
-3.025 H(ords F)-.715 E(or Use in RFCs to Indicate Requirement Le)-.165
E -.165(ve)-.275 G(ls. RFC).165 E(2119.)129.6 682.2 Q
([RFC 2460] S. Deering and R. Hinden. Internet Protocol, V)100.8 698.8 Q
(ersion 6 \(IPv6\) Speci\214cation.)-1.221 E(RFC 2460.)129.6 711.8 Q
-.385(Ko)72 769 S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165
E 197.788(ye Section)-.055 F 2.75(20. [P)2.75 F(age 56])-.165 E 0 Cg EP
%%Page: 57 57
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 65.641(-DRAFT Expires:)-1.012 F
(No)2.75 E -.165(ve)-.165 G(mber 2003).165 E(May 2003)115.955 E
([RFC 3168] K.K. Ramakrishnan, S. Flo)100.8 85 Q
(yd, and D. Black. The Addition of Explicit)-.11 E
(Congestion Noti\214cation \(ECN\) to IP)129.6 98 Q 2.75(.R)-1.221 G
(FC 3168.)-2.75 E(September 2001.)5.5 E/F1 11/Times-Bold@0 SF(21.)72 124
Q/F2 14/Times-Bold@0 SF(Inf)5.5 E(ormati)-.35 E .28 -.14(ve R)-.14 H
(efer).14 E(ences)-.252 E F0([CCID 2 PR)100.8 140.6 Q(OFILE] S. Flo)-.44
E(yd and E. K)-.11 E(ohler)-.385 E 2.75(.P)-.605 G
(ro\214le for DCCP Congestion Control ID 2:)-2.75 E(TCP-lik)129.6 153.6
Q 2.75(eC)-.11 G(ongestion Control. draft-ietf-dccp-ccid2-01.txt, w)
-2.75 E(ork in progress, March)-.11 E(2003.)129.6 166.6 Q([CCID 3 PR)
100.8 183.2 Q(OFILE] S. Flo)-.44 E(yd, E. K)-.11 E(ohler)-.385 E 2.75
(,a)-.44 G(nd J. P)-2.75 E(adh)-.165 E
(ye. Pro\214le for DCCP Congestion)-.055 E
(Control ID 3: TFRC Congestion Control. draft-ietf-dccp-ccid3-01.txt, w)
129.6 196.2 Q(ork in)-.11 E(progress, March 2003.)129.6 209.2 Q
([ECN NONCE] Da)100.8 225.8 Q(vid W)-.22 E(etherall, Da)-.88 E(vid Ely)
-.22 E 2.75(,a)-.715 G(nd Neil Spring. Rob)-2.75 E
(ust ECN Signaling with)-.22 E 2.75
(Nonces. draft-ietf-tsvwg-tcp-nonce-04.txt,)129.6 238.8 R -.11(wo)2.75 G
(rk in progress, October 2002.).11 E([RFC 1889] Audio-V)100.8 255.4 Q
(ideo T)-.66 E(ransport W)-.385 E
(orking Group, H. Schulzrinne, S. Casner)-.88 E 2.75(,R)-.44 G(.)-2.75 E
(Frederick, and V)129.6 268.4 Q 2.75(.J)-1.419 G(acobson. R)-2.75 E
(TP: A T)-.66 E(ransport Protocol for Real-T)-.385 E(ime Applications.)
-.385 E(RFC 1889.)129.6 281.4 Q([RFC 1948] S. Bello)100.8 298 Q
(vin. Defending Ag)-.165 E(ainst Sequence Number Attacks. RFC 1948.)
-.055 E([RFC 2960] R. Ste)100.8 314.6 Q -.11(wa)-.275 G
(rt, Q. Xie, K. Morneault, C. Sharp, H. Schw).11 E(arzbauer)-.11 E 2.75
(,T)-.44 G 2.75(.T)-3.564 G(aylor)-3.63 E 2.75(,I)-.44 G(.)-2.75 E
(Rytina, M. Kalla, L. Zhang, and V)129.6 327.6 Q 2.75(.P)-1.419 G
(axson. Stream Control T)-2.915 E(ransmission Protocol.)-.385 E
(RFC 2960.)129.6 340.6 Q
([RFC 3124] H. Balakrishnan and S. Seshan. The Congestion Manager)100.8
357.2 Q 2.75(.R)-.605 G(FC 3124.)-2.75 E([SB00] Ale)100.8 373.8 Q 2.75
(xC)-.165 G 2.75(.S)-2.75 G
(noeren and Hari Balakrishnan. An End-to-End Approach to Host)-2.75 E
(Mobility)129.6 386.8 Q 2.75(.P)-.715 G(roc. 6th Annual A)-2.75 E
(CM/IEEE International Conference on Mobile)-.44 E(Computing and Netw)
129.6 399.8 Q(orking \(MOBICOM '00\), August 2000.)-.11 E([SHHP00] Oli)
100.8 416.4 Q -.165(ve)-.275 G 2.75(rS).165 G(patscheck, Jor)-2.75 E
(gen S. Hansen, John H. Hartman, and Larry L.)-.198 E(Peterson.)5.5 E
(Optimizing TCP F)129.6 429.4 Q(orw)-.165 E(arder Performance. IEEE/A)
-.11 E(CM T)-.44 E(ransactions on Netw)-.385 E(orking)-.11 E
(8\(2\):146-157, April 2000.)129.6 442.4 Q
([UDP-LITE] L-A. Larzon, M. De)100.8 459 Q
(germark, S. Pink, L-E. Jonsson \(editor\), and G. F)-.165 E(airhurst)
-.165 E
(\(editor\). The UDP-Lite Protocol. draft-ietf-tsvwg-udp-lite-01.txt, w)
129.6 472 Q(ork in progress,)-.11 E(December 2002.)129.6 485 Q F1(22.)72
511 Q F2 -.7(Au)5.5 G(thors' Addr).7 E(esses)-.252 E F0(Eddie K)100.8
530 Q(ohler <k)-.385 E(ohler@icir)-.11 E(.or)-.605 E(g>)-.198 E
(Mark Handle)100.8 543 Q 2.75(y<)-.165 G(mjh@icir)-2.75 E(.or)-.605 E
(g>)-.198 E(Sally Flo)100.8 556 Q(yd <\215o)-.11 E(yd@icir)-.11 E(.or)
-.605 E(g>)-.198 E(ICSI Center for Internet Research)100.8 582 Q
(1947 Center Street, Suite 600)100.8 595 Q(Berk)100.8 608 Q(ele)-.11 E
1.43 -.715(y, C)-.165 H 2.75(A9).715 G(4704 USA)-2.75 E(Jitendra P)100.8
634 Q(adh)-.165 E(ye <padh)-.055 E(ye@microsoft.com>)-.055 E
(Microsoft Research)100.8 660 Q(One Microsoft W)100.8 673 Q(ay)-.88 E
(Redmond, W)100.8 686 Q 2.75(A9)-1.32 G(8052 USA)-2.75 E -.385(Ko)72 769
S(hler/Handle).385 E(y/Flo)-.165 E(yd/P)-.11 E(adh)-.165 E 197.788
(ye Section)-.055 F 2.75(22. [P)2.75 F(age 57])-.165 E 0 Cg EP
%%Trailer
end
%%EOF

PAFTECH AB 2003-20262026-04-22 22:09:19