!"!#$%$#&'($)**$+$,-..$/0))$ - - PowerPoint PPT Presentation

0
SMART_READER_LITE
LIVE PREVIEW

!"!#$%$#&'($)**$+$,-..$/0))$ - - PowerPoint PPT Presentation

!"!#$%$#&'($)**$+$,-..$/0))$ 1234$5.6745$8923$:;9254$-<7$=255>$ !"#$%&'()*'&+"(,-./ >$? @A $!76@62<$ ! !"#$%&'( ! B9-<5C29@$"-D49$EFG(%B#(H$ ! )*+#,*-.(/(&$$012#%( ! !3"-$%&'( !


slide-1
SLIDE 1

!"!#$%$#&'($)**$+$,-..$/0))$

1234$5.6745$8923$:;9254$-<7$=255>$!"#$%&'()*'&+"(,-./>$?@A$!76@62<$

slide-2
SLIDE 2

! !"#$%&'( ! B9-<5C29@$"-D49$EFG(%B#(H$ ! )*+#,*-.(/(&$$012#%( ! !3"-$%&'( ! B9-<5C29@$"-D49$ ! 4#56(!"#$%&'( ! )*+#,*-.(/(%"#( ! 12IJ4@$C92K9-336<K$@;@296-.5$

/$

slide-3
SLIDE 3

! 701(0$$"#$(,063(8-*9:#+(;(<=-*6*>*:(

%*>"+#26&60*2?(02(3*+#,*-.@@(

! L<5@9;I@62<5$

! #A2254$L'M($29$,B($ ! (92N674$O@9-I4P$28$C92@2I2.$2C49-@62<$@2$-II23C.65A$

5C4I6Q47$@-5J5$

! #2332<$!==&=1R$

! (92N6747$@9-I4$28$SBB($ ! (92N6747$@9-I4$28$,B($I233-<7T.6<4$C92K9-3>$<2@$

C92@2I2.$

! A==*-6"206'(6*(-#$"9+06(=-*9:#+(;(*2:'(

! G;4$,967-D$UD$367<6KA@$+$1-J-6$94T2C4<47$

V$

slide-4
SLIDE 4

W$

slide-5
SLIDE 5

MCC.6I-@62<$"-D49$ B9-<5C29@$"-D49$ X4@Y29J$"-D49$ "6<J$"-D49$ (AD56I-.$"-D49$

?$

slide-6
SLIDE 6

MCC.6I-@62<$"-D49$ B9-<5C29@$"-D49$ X4@Y29J$"-D49$ "6<J$"-D49$ (AD56I-.$"-D49$

OZ6@5$2<$-$Y694P$ B2>*%021($>3#+#$(QKA@[$

  • @@4<;-@62<$

765@29@62<$ >:*>.($.#,(

\$

slide-7
SLIDE 7

MCC.6I-@62<$"-D49$ B9-<5C29@$"-D49$ X4@Y29J$"-D49$ "6<J$"-D49$ (AD56I-.$"-D49$

,9-36<K$ !9929$G4@4I@62<$ '476-$MII455$ #2<@92.$ B63#-2#6@( 'M#$-77945545$ S;U5$]$1Y6@IA45$ B9-<5849$ U4@Y44<$ <46KAU295$

*$

slide-8
SLIDE 8

MCC.6I-@62<$"-D49$ B9-<5C29@$"-D49$ X4@Y29J$"-D49$ "6<J$"-D49$ (AD56I-.$"-D49$

C8$+$L<@49<4@$(92@2I2.^$ (-IJ4@$S4-7495$ L($M77945545$ L#'($829$49929$ 94C29@6<K$-<7$ 92;@49$56K<-.6<K$ =2;@495$ =2;@6<K$(92@2I2.5$ !<7T@2T!<7$ C-IJ4@$ @9-<5849$

_$

slide-9
SLIDE 9

MCC.6I-@62<$"-D49$ B9-<5C29@$"-D49$ X4@Y29J$"-D49$ "6<J$"-D49$ (AD56I-.$"-D49$

B#($ FG($ SBB($ GX1$ E3-<D$2@A495^H$ !<7T@2T!<7$ +#$$&1#( @9-<5849$

12IJ4@5$

,.2Y$#2<@92.$ #2<K45@62<$#2<@92.$

`$

slide-10
SLIDE 10

! F<7495@-<7$C96<I6C.45$U4A6<7$@9-<5C29@$.-D49$

549N6I45[$

! ';.@6C.4a6<K%743;.@6C.4a6<K$ ! =4.6-U.4$7-@-$@9-<5849$ ! ,.2Y$I2<@92.$ ! #2<K45@62<$I2<@92.$

! "4-9<$-U2;@$@9-<5C29@$.-D49$C92@2I2.5$6<$@A4$

L<@49<4@[$

! FG([$I2<<4I@62<.455$@9-<5C29@$ ! B#([$I2<<4I@62<T2964<@47$@9-<5C29@$

! ,.2Y$I2<@92.$b$I2<K45@62<$I2<@92.$

)0$

slide-11
SLIDE 11

! (92N674)0"/-120)1"##%.-12&-".$

U4@Y44<$-CC.6I-@62<$C92I45545$ 9;<<6<K$2<$76c494<@$A25@5$

! B9-<5C29@$C92@2I2.5$9;<$6<$4<7$

5D5@435$$

! 14<7$5674[$U94-J5$-CC$

3455-K45$6<@2$54K34<@5>$ C-5545$@2$$<4@Y29J$.-D49$

! =4I46N4$5674[$94-5543U.45$

54K34<@5$6<@2$3455-K45>$ C-5545$@2$-CC$.-D49$

! '294$@A-<$2<4$@9-<5C29@$

C92@2I2.$-N-6.-U.4$@2$-CC5$

! L<@49<4@[$B#($-<7$FG($

  • CC.6I-@62<$

@9-<5C29@$ <4@Y29J$ 7-@-$.6<J$ CAD56I-.

  • CC.6I-@62<$

@9-<5C29@$ <4@Y29J$ 7-@-$.6<J$ CAD56I-.

))$

slide-12
SLIDE 12

! !"#$%&'"()*#+,"-(.2K6I-.$

I233;<6I-@62<$U4@Y44<$ =-*>#$$#$((

! =4.645$2<$-<7$4<A-<I45$

<4@Y29J$.-D49$549N6I45$

! .,(/'"0)*#+,"-(.2K6I-.$

I233;<6I-@62<$U4@Y44<$ 3*$6$( S2;54A2.7$-<-.2KD[$ 34),-56)6'.5-./)0'&&'(6)&")34) ,-56$

! (92I45545$d$J675$ ! MCC$3455-K45$d$.4@@495$6<$

4<N4.2C45$

! S25@5$d$A2;545$ ! B9-<5C29@$C92@2I2.$d$M<<$

  • <7$Z6..$

! X4@Y29JT.-D49$C92@2I2.$d$

C25@-.$549N6I4$ $

)/$

slide-13
SLIDE 13

! F<94.6-U.4>$;<2974947$74.6N49D$

EFG(H$

! X2T896..5$4a@4<562<$28$OU45@T

4c29@P$L($

! =4.6-U.4>$6<T29749$74.6N49D$

EB#(H$

! #2<K45@62<$I2<@92.$$ ! ,.2Y$I2<@92.$ ! #2<<4I@62<$54@;C$ ! 149N6I45$<2@$-N-6.-U.4[$$ ! G4.-D$K;-9-<@445$ ! Z-<7Y67@A$K;-9-<@445$

  • CC.6I-@62<$

@9-<5C29@$ <4@Y29J$ 7-@-$.6<J$ CAD56I-. $ <4@Y29J$ 7-@-$.6<J$ CAD56I-. $ <4@Y29J$ 7-@-$.6<J$ CAD56I-. $ <4@Y29J$ 7-@-$.6<J$ CAD56I-. $ <4@Y29J$ 7-@-$.6<J$ CAD56I-. $ <4@Y29J$ 7-@-$.6<J$ CAD56I-. $ <4@Y29J$ 7-@-$.6<J$ CAD56I-.

  • CC.6I-@62<$

@9-<5C29@$ <4@Y29J$ 7-@-$.6<J$ CAD56I-.

)V$

slide-14
SLIDE 14
  • CC.6I-@62<$

@9-<5C29@$ <4@Y29J$ .6<J$ CAD56I-.$ ()$

  • CC.6I-@62<$

@9-<5C29@$ <4@Y29J$ .6<J$ CAD56I-.$

  • CC.6I-@62<$

@9-<5C29@$ <4@Y29J$ .6<J$ CAD56I-.$ (/$ (V$ (W$ ()$

A25@$)$ A25@$/$ A25@$V$

d$C92I455$ d$52IJ4@$

G4.6N496<K$94I46N47$54K34<@5$ @2$I2994I@$52IJ4@$ G43;.@6C.4a6<K$-@$94IN$A25@[$ e-@A496<K$7-@-$8923$3;.@6C.4$ 52IJ4@5>$4<N4.2C6<K$7-@-$Y6@A$$ A4-749$E.-@49$;547$829$$ 743;.@6C.4a6<KH ';.@6C.4a6<K$-@$54<7$A25@[$

)W$

slide-15
SLIDE 15

! S25@$94I46N45(C8(%&6&1-&+$( ! !-IA$7-@-K9-3$A-5$52;9I4$

  • <7$745@6<-@62<$L($-77945545$

! !-IA$7-@-K9-3$I-99645$)$

6-&2$=*-6D:&'#-($#1+#26(

! !-IA$54K34<@$A-5$52;9I4$-<7$

745@6<-@62<$=*-6(2"+9#-((

! S25@$;545$L($-77945545$]$

C29@$<;3U495$@2$7694I@$ 54K34<@$@2$-CC92C96-@4$ 52IJ4@$

52;9I4$C29@$f 745@$C29@$f V/$U6@5

  • CC.6I-@62<$

7-@-$$ E3455-K4H 2@A49$A4-749$Q4.75 !E8FGH8($#1+#26(I*-+&6

)?$

slide-16
SLIDE 16

! #94-@4$52IJ4@5$Y6@A$C29@$<;3U495$ ! FG($52IJ4@$674<@6Q47$UD$$@Y2$J4D5[$ ! <%#$6(C8(&%%-#$$J(%#$6(=*-6(2"+9#-?( ! gA4<$A25@$94I46N45$FG($54K34<@[$ ! #A4IJ$745@6<-@62<$C29@$<;3U49$6<$54K34<@$ ! G694I@$FG($54K34<@$@2$52IJ4@$Y6@A$@A-@$C29@$

<;3U49$

! L($7-@-K9-35$Y6@A$76c494<@$52;9I4$L($

  • 77945545$-<7%29$52;9I4$C29@$<;3U495$-94$

7694I@47$@2$5-34$52IJ4@$2<$94I46N49$

)\$

slide-17
SLIDE 17

149N49$#$65$.65@4<6<K$2<$C29@$\W/_$ #.64<@$

L([Z$ (/$

I.64<@$ $L([$M$

()$ ()$ (V$

549N49$ L([$#$

1([$\W/_$ G([$`)?*$ 1([$`)?*$ G([$\W/_$ 1([$\W/_$ G([$?**?$ 1([$?**?$ G([$\W/_$

12;9I4$(29@$E1(H$C92N6745$O94@;9<$-779455P$

)*$

slide-18
SLIDE 18

! B#($52IJ4@$674<@6Q47$

UD$W$J4D5[$$

! 12;9I4$L($-779455$ ! 12;9I4$C29@$<;3U49$ ! G45@$L($-779455$ ! G45@$C29@$<;3U49$

! =4I46N6<K$A25@$;545$-..$

82;9$N-.;45$@2$7694I@$ 54K34<@$@2$

  • CC92C96-@4$52IJ4@$

! 149N49$3-D$5;CC29@$

3-<D$563;.@-<42;5$B#($ 52IJ4@5[$

! !-IA$52IJ4@$674<@6Q47$UD$

6@5$2Y<$W$J4D5$

! g4U$549N495$A-N4$

76c494<@$52IJ4@5$829$4-IA$ I2<<4I@6<K$I.64<@$

! X2<TC49565@4<@$SBB($Y6..$

A-N4$76c494<@$52IJ4@$829$ 4-IA$94h;45@$

)_$

slide-19
SLIDE 19

#.64<@$

L([Z$ ()$

I.64<@$ $L([$M$

()$ (/$ (W$

549N49$ L([$#$

1([$`)?*$ G([$_0$ 1([$`)?*$ G([$_0$ (?$ (\$ (V$ GTL([#$ 1TL([$M$ GTL([#$ 1TL([$Z$ 1([$?**?$ G([$_0$ GTL([#$ 1TL([$Z$

)`$

slide-20
SLIDE 20

#.64<@$

L([Z$ ()$

I.64<@$ $L([$M$

()$ (/$

549N49$ L([$#$

1([$`)?*$ G([$_0$ 1([$`)?*$ G([$_0$ (W$ (V$ GTL([#$ 1TL([$M$ GTL([#$ 1TL([$Z$ 1([$?**?$ G([$_0$ GTL([#$ 1TL([$Z$

/0$

slide-21
SLIDE 21

#2<<4I@62<.455$B9-<5C29@$

/)$

slide-22
SLIDE 22

! OX2$896..5>$U-94$U2<45P$

L<@49<4@$@9-<5C29@$ C92@2I2.$

! OZ45@$4c29@P$549N6I4$ ! FG($54K34<@5$3-D$U4[$

! "25@$ ! G4.6N4947$2;@$28$29749$@2$

  • CC$

! #2<<4I@62<.455$

! X2$A-<75A-J6<K$U4@Y44<$

FG($54<749>$94I46N49$

! !-IA$FG($54K34<@$

A-<7.47$6<74C4<74<@.D$28$ 2@A495$

! gAD$65$@A494$-$FG(R$

! X2$I2<<4I@62<$

45@-U.65A34<@$EYA6IA$I-<$

  • 77$74.-DH$

! 163C.4[$<2$I2<<4I@62<$

5@-@4$-@$54<749>$94I46N49$

! 13-..$54K34<@$A4-749$ ! X2$I2<K45@62<$I2<@92.[$

FG($I-<$U.-5@$-Y-D$-5$8-5@$

  • 5$7456947$

//$

slide-23
SLIDE 23

! &8@4<$;547$829$

5@94-36<K$$ 3;.@63476-$-CC5$

! "255$@2.49-<@$ ! =-@4$54<56@6N4$ ! &@A49$FG($;545$ ! GX1$ ! 1X'($ ! =4.6-U.4$@9-<5849$2N49$

FG([$-77$94.6-U6.6@D$-@$

  • CC.6I-@62<$.-D49$

! MCC.6I-@62<T5C4I6QI$

49929$94I2N49D^$

52;9I4$C29@$f 745@$C29@$f V/$U6@5

MCC.6I-@62<$ 7-@-$$ E3455-K4H FG($54K34<@$8293-@

.4<K@A IA4IJ5;3 "4<K@A>$6<$ UD@45$28$FG($ 54K34<@>$ 6<I.;76<K$ A4-749

/V$

slide-24
SLIDE 24

! K#2%#-(

! B94-@$54K34<@$I2<@4<@5$

  • 5$54h;4<I4$28$)\TU6@$

6<@4K495$

! #A4IJ5;3[$-776@62<$E)i5$

I23C.434<@$5;3H$28$ 54K34<@$I2<@4<@5$

! 14<749$C;@5$IA4IJ5;3$

N-.;4$6<@2$FG($ IA4IJ5;3$Q4.7$

! L#>#0M#-(

! #23C;@4$IA4IJ5;3$28$

94I46N47$54K34<@$

! #A4IJ$68$I23C;@47$

IA4IJ5;3$4h;-.5$ IA4IJ5;3$Q4.7$N-.;4[$

! X&$T$49929$74@4I@47$ ! j!1$T$<2$49929$74@4I@47k$ Z;@$3-DU4$499295$ <2<4@A4.455R$7"(')02&'()89)

N*&:O(74@4I@$O499295P$E4kKk>$l6CC47$U6@5H$6<$@9-<536@@47$54K34<@$ $

/W$

slide-25
SLIDE 25

1@4CC6<K$@A92;KA$@A4$7456K<$28$B#($

/?$

slide-26
SLIDE 26

! =4.6-U6.6@D$65$63C29@-<@$6<$-CC.6I-@62<>$@9-<5C29@>$-<7$.6<J$.-D495$

!

#A-9-I@4965@6I5$28$;<94.6-U.4$IA-<<4.$Y6..$74@4936<4$I23C.4a6@D$28$94.6-U.4$7-@-$ @9-<5849$C92@2I2.$E97@H$

/\$

slide-27
SLIDE 27

!

#A-9-I@4965@6I5$28$;<94.6-U.4$IA-<<4.$Y6..$74@4936<4$I23C.4a6@D$28$94.6-U.4$7-@-$ @9-<5849$C92@2I2.$E97@H$ ! =4.6-U6.6@D$65$63C29@-<@$6<$-CC.6I-@62<>$@9-<5C29@>$-<7$.6<J$.-D495$

/*$

slide-28
SLIDE 28

!

#A-9-I@4965@6I5$28$;<94.6-U.4$IA-<<4.$Y6..$74@4936<4$I23C.4a6@D$28$94.6-U.4$7-@-$ @9-<5849$C92@2I2.$E97@H$ ! =4.6-U6.6@D$65$63C29@-<@$6<$-CC.6I-@62<>$@9-<5C29@>$-<7$.6<J$.-D495$

/_$

slide-29
SLIDE 29

54<7$ 5674 94I46N4$ 5674

rdt_send(): I-..47$8923$-U2N4>$ E4kKk>$UD$-CCkHk$(-5547$7-@-$@2$$ 74.6N49$@2$94I46N49$;CC49$.-D49 udt_send(): I-..47$UD$97@>$ @2$@9-<5849$C-IJ4@$2N49$$ ;<94.6-U.4$IA-<<4.$@2$94I46N49 rdt_rcv(): I-..47$YA4<$C-IJ4@$

  • 996N45$2<$9INT5674$28$IA-<<4.

deliver_data(): I-..47$UD$ rdt$@2$74.6N49$7-@-$@2$-CCk

/`$

slide-30
SLIDE 30

! BA4$C.-<[$C2>-#+#26&::'(74N4.2C$54<749$%$94I46N49$56745$28$

  • #:0&9:#(%&6&(6-&2$I#-(=-*6*>*:(<-%6?J(&(P>60*2&:(=-*6*>*:(

! !E8(0$($0+0:&-(6*(LH!(9"6(6**(>*+=:#5(6*(%#$>-09#(&::(&6(*2>#( ! #2<56749$2<.D$;<67694I@62<-.$7-@-$@9-<5849$ ! U;@$I2<@92.$6<82$Y6..$l2Y$2<$U2@A$7694I@62<5^$ ! F54$P206#($6&6#(+&>302#$(<QKR?((@2$5C4I68D$54<749>$

94I46N49$

5@-@4$ )$ 5@-@4$ /$

4N4<@$I-;56<K$5@-@4$@9-<56@62<

  • I@62<5$@-J4<$2<$5@-@4$@9-<56@62<

4N4<@

  • I@62<5

K6&6#O$gA4<$6<$@A65$ O5@-@4P>$$<4a@$5@-@4$ ;<6h;4.D$74@4936<47$ UD$<4a@$4N4<@$ !"

E;CC49I-54$"-3U7-$d$43C@D$54@H$

V0$

slide-31
SLIDE 31

! F<749.D6<K$IA-<<4.$C4984I@.D$94.6-U.4$ ! X2$U6@$499295$ ! X2$.255$28$C-IJ4@5$ ! 14C-9-@4$,1'5$829$54<749>$94I46N49[$ ! 14<749$54<75$7-@-$6<@2$;<749.D6<K$IA-<<4.$ ! =4I46N49$94-75$7-@-$8923$;<749.D6<K$IA-<<4.$

Wait for call from above

packet = make_pkt(data) udt_send(packet) rdt_send(data) extract (packet,data) deliver_data(data)

Wait for call from below

rdt_rcv(packet)

54<749$ 94I46N49$

V)$

slide-32
SLIDE 32

! F<749.D6<K$IA-<<4.$3-D$S0=(906$(6<$C-IJ4@$ ! #A4IJ5;3$@2$74@4I@$U6@$499295$ ! Z;@>$A2Y$72$Y4$94I2N49$8923$499295R$ ! T>.2*,:#%1#+#26$(<TEU$?[$94I46N49$4aC.6I6@.D$@4..5$

54<749$@A-@$C-IJ4@$94I46N47$&:$

! 4#1&60M#(&>.2*,:#%1#+#26$(<4TU$?O(94I46N49$4aC.6I6@.D$

@4..5$54<749$@A-@$C-IJ4@$A-7$499295$

! 14<749$94@9-<536@5$C-IJ4@$2<$94I46C@$28$XM:$ ! X4Y$34IA-<6535$6<$rdt2.0$EU4D2<7$rdt1.0H[$ ! !9929$74@4I@62<$ ! =4I46N49$8447U-IJ$

! #2<@92.$35K5$EM#:>XM:H$K2$8923$94I46N49$@2$54<749$

V/$

slide-33
SLIDE 33

Wait for call from above

snkpkt = make_pkt(data, checksum) udt_send(sndpkt) extract(rcvpkt,data) deliver_data(data) udt_send(ACK) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) rdt_rcv(rcvpkt) && isACK(rcvpkt) udt_send (sndpkt) rdt_rcv(rcvpkt) && isNAK(rcvpkt) udt_send(NAK) rdt_rcv(rcvpkt) && corrupt(rcvpkt)

Wait for ACK or NAK Wait for call from below

54<749$ 94I46N49$

rdt_send(data) !"

VV$

slide-34
SLIDE 34

Wait for call from above

snkpkt = make_pkt(data, checksum) udt_send(sndpkt) extract(rcvpkt,data) deliver_data(data) udt_send(ACK) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) rdt_rcv(rcvpkt) && isACK(rcvpkt) udt_send (sndpkt) rdt_rcv(rcvpkt) && isNAK(rcvpkt) udt_send(NAK) rdt_rcv(rcvpkt) && corrupt(rcvpkt)

Wait for ACK or NAK Wait for call from below

rdt_send(data) !"

VW$

slide-35
SLIDE 35

Wait for call from above

snkpkt = make_pkt(data, checksum) udt_send(sndpkt) extract(rcvpkt,data) deliver_data(data) udt_send(ACK) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) rdt_rcv(rcvpkt) && isACK(rcvpkt) udt_send (sndpkt) rdt_rcv(rcvpkt) && isNAK(rcvpkt) udt_send(NAK) rdt_rcv(rcvpkt) && corrupt(rcvpkt)

Wait for ACK or NAK Wait for call from below

rdt_send(data) !"

V?$

slide-36
SLIDE 36

! gA-@$A-CC4<5$68$TEUF

4TU(>*--"=6#%R$

! 14<749$7245<i@$J<2Y$

YA-@$A-CC4<47$-@$ 94I46N49^$

! #-<i@$m;5@$94@9-<536@[$

94I46N49$36KA@$K4@$ 7;C.6I-@4$7-@-$

! S-<7.6<K$7;C.6I-@45[$$

! 14<749$94@9-<536@5$I;994<@$

C-IJ4@$68$M#:%XM:$K-9U.47$

! 14<749$-775$$#V"#2>#(

2"+9#-$@2$4-IA$C-IJ4@$$

! =4I46N49$765I-975$E7245<i@$

74.6N49H$7;C.6I-@4$C-IJ4@$

! K6*=(&2%(,&06(%#$012(

! 14<749$54<75$)$C-IJ4@>$

@A4<$Y-6@5$829$94I46N49$ 945C2<54$

V\$

slide-37
SLIDE 37

Wait for call 0 from above

sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt) rdt_send(data)

Wait for ACK or NAK 0

udt_send(sndpkt) rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isNAK(rcvpkt) ) sndpkt = make_pkt(1, data, checksum) udt_send(sndpkt) rdt_send(data) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt) udt_send (sndpkt) rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isNAK(rcvpkt) ) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt)

Wait for call 1 from above Wait for ACK or NAK 1

!" !" K#V"#2>#(W@(

V*$

K#V"#2>#(W@(

slide-38
SLIDE 38

Wait for 0 from below sndpkt = make_pkt(NAK, chksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && not corrupt(rcvpkt) && has_seq0(rcvpkt) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt) Wait for 1 from below rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq0(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && (corrupt(rcvpkt) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && not corrupt(rcvpkt) && has_seq1(rcvpkt) rdt_rcv(rcvpkt) && (corrupt(rcvpkt) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt) sndpkt = make_pkt(NAK, chksum) udt_send(sndpkt)

V_$

slide-39
SLIDE 39

K#2%#-O(

! 14h$f$-7747$@2$CJ@$ ! BY2$54hk$fi5$E0>)H$Y6..$

5;nI4k$$X3'Y(

! ';5@$IA4IJ$68$94I46N47$

M#:%XM:$I299;C@47$$

! BY6I4$-5$3-<D$5@-@45$

! 1@-@4$3;5@$O94343U49P$

YA4@A49$OI;994<@P$C-IJ4@$A-5$ 54h;4<I4$<;3U49$28$0$29$)$

L#>#0M#-O(

! ';5@$IA4IJ$68$94I46N47$

C-IJ4@$65$7;C.6I-@4$

! 1@-@4$6<76I-@45$YA4@A49$0$29$)$

65$4aC4I@47$C-IJ4@$54h;4<I4$ <;3U49$

! =4I46N49$I-<$."&$J<2Y$68$6@5$

.-5@$M#:%XM:$94I46N47$&:$

  • @$54<749$

V`$

slide-40
SLIDE 40

! 1-34$:%.1&-".20-&;$-5$97@/k)$ ! X2$XM:5^$ ! =4I46N49$6<5@4-7$54<75$M#:$829$.-5@$C-IJ4@$

94I46N47$&:$

! =4I46N49$3;5@$4aC.6I6@.D$6<I.;74$54h$f$28$C-IJ4@$

U46<K$M#:47$$

! G;C.6I-@4$M#:$-@$54<749$945;.@5$6<$5-34$

  • I@62<$-5$XM:$

! =4@9-<536@$I;994<@$C-IJ4@$

W0$

slide-41
SLIDE 41

Wait for call 0 from above

sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt) rdt_send(data) udt_send(sndpkt) rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isACK(rcvpkt,1) ) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,0)

Wait for ACK

54<749$,1'$ 89-K34<@$

Wait for 0 from below

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ACK1, chksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && (corrupt(rcvpkt) || has_seq1(rcvpkt)) udt_send(sndpkt)

94I46N49$,1'$ 89-K34<@$

!"

W)$

slide-42
SLIDE 42

! X4Y$-55;3C@62<$

! F<749.D6<K$IA-<<4.$I-<$

  • .52$:*$#(=&>.#6$((

E7-@-$*-(M#:5H$

! #A4IJ5;3>$54hk$f>$M#:5>$

  • <7$94@9-<5365562<5$Y6..$

A4.C$U;@$-94$<2@$ 5;nI64<@$

! X4Y$-CC92-IA$

! 14<749$Y-6@5$O94-52<-U.4P$

  • 32;<@$28$@634$829$M#:$$

! =4@9-<536@5$68$<2$M#:$

94I46N47$6<$@A65$@634$

! L8$CJ@$E29$M#:H$65$m;5@$

74.-D47$U;@$<2@$.25@[$

! =4@9-<5365562<$Y6..$U4$$ 7;C.6I-@4>$U;@$54hk$fi5$52.N45$ @A65$C92U.43$ ! =4I46N49$3;5@$5C4I68D$54h$f$ 28$CJ@$U46<K$M#:47$

! =4h;6945$I2;<@72Y<$@6349$

W/$

slide-43
SLIDE 43

sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt) start_timer rdt_send(data) Wait for ACK0 rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isACK(rcvpkt,1) ) Wait for call 1 from above sndpkt = make_pkt(1, data, checksum) udt_send(sndpkt) start_timer rdt_send(data) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,0) rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isACK(rcvpkt,0) ) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,1) stop_timer stop_timer udt_send(sndpkt) start_timer timeout udt_send(sndpkt) start_timer timeout rdt_rcv(rcvpkt) Wait for call 0 from above Wait for ACK1

!"

rdt_rcv(rcvpkt)

!" !" !"

WV$

slide-44
SLIDE 44

WW$

slide-45
SLIDE 45

W?$

slide-46
SLIDE 46

! 97@Vk0$Y29J5>$U;@$=#-I*-+&2>#($602.$( ! ,29$)$eUC5$.6<J>$)?$35$C92Ck$74.-D>$_000$U6@$C-IJ4@[$ ! F$54<749[$;@6.6o-@62<$[$89-I@62<$28$@634$54<749$U;5D$54<76<K$ ! ):Z$C-IJ4@$4N49D$V0$354I$ ! ;;.7F$#>(63-*"13="6(*M#-(Z(N9=$(:02.( ! X4@Y29J$C92@2I2.$.636@5$;54$28$CAD56I-.$9452;9I45^$

U

sender

= .008

30.008

= 0.00027

microsec

L / R RTT + L / R =

$

ds microsecon 8 bps 10 bits 8000

9

= = = R L dtrans

<"+)0"./)-&)&2,'6)&")$%6=) $21,'&)"%&)".&")+-(')

W\$

slide-47
SLIDE 47

first packet bit transmitted, t = 0 sender receiver RTT last packet bit transmitted, t=L / R first packet bit arrives last packet bit arrives, send ACK ACK arrives, send next packet, t = RTT + L / R

U

sender

= .008

30.008

= 0.00027

microsec

L / R RTT + L / R =

W*$

slide-48
SLIDE 48

80=#:02021O(54<749$-..2Y5$3;.@6C.4>$O6<Tl6KA@P>$D4@T@2TU4T

  • IJ<2Y.47K47$C-IJ4@5$

! =-<K4$28$54h;4<I4$<;3U495$3;5@$U4$6<I94-547$ ! Z;c496<K$-@$54<749$-<7%29$94I46N49$

! BY2$K4<496I$82935$28$C6C4.6<47$C92@2I2.5[$$

/">?21,>*)2.5)6'0'1&-@')('$'2&)

W_$

slide-49
SLIDE 49

first packet bit transmitted, t=0

sender receiver RTT

last bit transmitted, t=L / R first packet bit arrives last packet bit arrives, send ACK

ACK arrives, send next packet, t = RTT + L / R

last bit of 2nd packet arrives, send ACK last bit of 3rd packet arrives, send ACK

U

sender

= .024

30.008

= 0.0008

microsecon

3 * L / R RTT + L / R =

L<I94-54$;@6.6o-@62<$ UD$-$8-I@29$28$V^$

W`$

slide-50
SLIDE 50

NAD7TEUD4(

! 14<749$

! FC$@2$X$;<M#:47$CJ@5$6<$

C6C4.6<4$

! =4I46N49$

! &<.D$54<75$I;3;.-@6N4$M#:5$ ! G245<i@$M#:$CJ@$68$@A494i5$-$

K-C$

! 14<749$

! S-5$@6349$829$2.745@$;<M#:47$

CJ@$

! L8$@6349$4aC6945[$94@9-<536@$-..$

;<M#:47$C-IJ4@5$

KB[BE!C\B(LB8BT!(

! 14<749$

! FC$@2$X$;<M#:47$C-IJ4@5$6<$

C6C4.6<4$

! =4I46N49$

! M#:5$6<76N67;-.$CJ@5$

! 14<749$

! '-6<@-6<5$@6349$829$4-IA$

;<M#:47$CJ@$

! L8$@6349$4aC6945[$94@9-<536@$

2<.D$;<M#:47$C-IJ4@$

?0$

slide-51
SLIDE 51

! JTU6@$54h;4<I4$f$6<$C-IJ4@$A4-749$ ! Og6<72YP$28$;C$@2$X>$I2<54I;@6N4$;<M#:47$CJ@5$-..2Y47$ ! M#:E<H[$M#:5$-..$CJ@5$;C$@2>$6<I.;76<K$54h$f$<$ ! =4849947$@2$-5$-$OI;3;.-@6N4$M#:P$ ! '-D$94I46N4$7;C.6I-@4$M#:5$A6'')('1'-@'(B) ! B6349$829$2.745@$6<Tl6KA@$C-IJ4@$ ! @6342;@E<H[$94@9-<536@$C-IJ4@$<$&2%(&::(3013#-(54h$f$

C-IJ4@5$6<$Y6<72Y$

?)$

slide-52
SLIDE 52

Wait

start_timer udt_send(sndpkt[base]) udt_send(sndpkt[base+1]) " udt_send(sndpkt[nextseqnum-1]) timeout rdt_send(data) if (nextseqnum < base+N) { sndpkt[nextseqnum] = make_pkt(nextseqnum,data,chksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ } else refuse_data(data) base = getacknum(rcvpkt)+1 If (base == nextseqnum) stop_timer else start_timer rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) base=1 nextseqnum=1 rdt_rcv(rcvpkt) && corrupt(rcvpkt)

!" !"

?/$

slide-53
SLIDE 53

! M#:T2<.D[$-.Y-D5$54<7$M#:$829$I2994I@.DT94I46N47$CJ@$Y6@A$A6KA45@$

1$2'"3,"(54h$f$

! '-D$K4<49-@4$7;C.6I-@4$M#:5$ ! X447$2<.D$94343U49$expectedseqnum ! &;@T28T29749$CJ@[$$ ! G65I-97$E72<i@$U;c49H$Tp$<2$94I46N49$U;c496<K^$E947;I45$I23C.4a6@DH$ ! =4TM#:$CJ@$Y6@A$A6KA45@$6<T29749$54h$f$

Wait

udt_send(sndpkt) default rdt_rcv(rcvpkt) && notcurrupt(rcvpkt) && hasseqnum(rcvpkt,expectedseqnum) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(expectedseqnum,ACK,chksum) udt_send(sndpkt) expectedseqnum++ expectedseqnum=1 sndpkt = make_pkt(expectedseqnum,ACK,chksum)

!"

?V$

slide-54
SLIDE 54

?W$

slide-55
SLIDE 55

! =4I46N49$-.5-@-5%200;)-IJ<2Y.47K45$-..$

I2994I@.D$94I46N47$C-IJ4@5$

! Z;c495$C-IJ4@5>$-5$<44747>$829$4N4<@;-.$6<T29749$

74.6N49D$@2$;CC49$.-D49$

! 14<749$2<.D$9454<75$C-IJ4@5$829$YA6IA$M#:$

<2@$94I46N47$

! 14<749$@6349$829$4-IA$;<M#:47$C-IJ4@5$ ! 14<749$Y6<72Y$ ! X$I2<54I;@6N4$54h$fi5$ ! MK-6<$.636@5$54h$f5$28$54<@>$;<M#:47$C-IJ4@5$

??$

slide-56
SLIDE 56

?\$

slide-57
SLIDE 57

KB4HBL(

! G-@-$8923$-U2N4$[$

! L8$<4a@$-N-6.-U.4$54h$f$6<$

Y6<72Y>$54<7$CJ@$

! @6342;@E<H[$

! =454<7$CJ@$<>$945@-9@$@6349$

! M#:E<H$6<$

q54<7U-54>54<7U-54bXr[$

! '-9J$CJ@$<$-5$94I46N47$ ! L8$<$65$53-..45@$;<M#:47$CJ@>$

  • 7N-<I4$Y6<72Y$U-54$@2$<4a@$

;<M#:47$54h$f$$

LBEBC\BL(

! CJ@$<$6<$$

q9INU-54>$9INU-54bXT)r$

! 14<7$M#:E<H$ ! &;@T28T29749[$U;c49$ ! L<T29749[$74.6N49$E-.52$74.6N49$

U;c4947>$6<T29749$CJ@5H>$

  • 7N-<I4$Y6<72Y$@2$<4a@$<2@T

D4@T94I46N47$CJ@$

! CJ@$<$6<$$

q9INU-54TX>9INU-54T)r$

! M#:E<H$A&=-6)-6)2)$21,'&)&=2&)+26)

$('@-"%60;)('1'-@'58B$

! &@A49Y654[$$ ! LK<294$$

?*$

slide-58
SLIDE 58

?_$

slide-59
SLIDE 59

! !a-3C.4$

!

54h$fi5[$0>$)>$/>$V$

!

Y6<72Y$56o4dV$ ! =4I46N49$5445$<2$

76c494<I4$6<$@Y2$ 5I4<-9625^$

!

L5$6@$-$94@9-<536@@47$C-IJ4@>$ 29$-$<4Y$C-IJ4@R$

!

L<I2994I@.D$C-5545$7;C.6I-@4$ 7-@-$-5$<4Y$6<$E-H$

s[$gA-@$94.-@62<5A6C$65$ <44747$U4@Y44<$54h$f$ 56o4$-<7$Y6<72Y$56o4R$ M[$BY6I4$-5$3-<D$54h$fi5$

?`$

slide-60
SLIDE 60

\0$

slide-61
SLIDE 61

! ,;..$7;C.4a$7-@-[$

! Z6T7694I@62<-.$7-@-$l2Y$6<$

5-34$I2<<4I@62<$

! '11[$3-a63;3$54K34<@$

56o4$

! #2<<4I@62<T2964<@47[$$

! S-<75A-J6<K$E4aIA-<K4$28$

I2<@92.$35K5H$6<6@6-.6o45$ 54<749>$94I46N49$5@-@4$U48294$ 7-@-$4aIA-<K4$

! ,.2Y$I2<@92..47[$

! 14<749$Y6..$<2@$2N49YA4.3$

94I46N49$

! (26<@T@2TC26<@[$

! &<4$54<749>$2<4$94I46N49$$

! =4.6-U.4>$6<T29749$C;&')

6&'2#D)

! X2$O3455-K4$U2;<7-9645P$

! (6C4.6<47[$

! B#($I2<K45@62<$-<7$l2Y$

I2<@92.$54@$Y6<72Y$56o4$

! E'.5)F)('1'-@')C%G'(6)

socket door TCP send buffer TCP receive buffer socket door

segment

application writes data application reads data

\)$

slide-62
SLIDE 62

\/$

52;9I4$C29@$f 745@$C29@$f

V/$U6@5

  • CC.6I-@62<$

7-@-$$ EN-96-U.4$.4<K@AH 54h;4<I4$<;3U49

  • IJ<2Y.47K434<@$<;3U49

=4I46N4$Y6<72Y F9K$7-@-$C26<@49 IA4IJ5;3 , 1 = ( M F

A4-7$ .4< <2@$ ;547

&C@62<5$EN-96-U.4$.4<K@AH

F=e[$;9K4<@$7-@-$$ EK4<49-..D$<2@$;547H M#:[$M#:$f$ N-.67 (1S[$C;5A$7-@-$<2Y$ EK4<49-..D$<2@$;547H$ =1B>$1jX>$,LX[$ I2<<4I@62<$45@-U$ E54@;C>$@4-972Y<$ I233-<75H$ f$UD@45$$ 94I46N49$Y6..6<K$ @2$-II4C@$ I2;<@6<K$ UD$UD@45$$ 28$7-@-$ E<2@$54K34<@5^H$ L<@49<4@$ IA4IJ5;3$ E-5$6<$FG(H$

slide-63
SLIDE 63

14hk$fi5[$

! UD@4$5@94-3$O<;3U49P$

28$Q95@$UD@4$6<$ 54K34<@i5$7-@-$ M#:5[$

! 54h$f$28$<4a@$UD@4$

4aC4I@47$8923$2@A49$ 5674$

! I;3;.-@6N4$M#:$

s[$A2Y$94I46N49$A-<7.45$ 2;@T28T29749$54K34<@5$

! M[$B#($5C4I$7245<i@$

5-D>$T$;C$@2$ 63C.434<@49$

S25@$M S25@$Z

Seq=42, ACK=79, data = ‘C’ S e q = 7 9 , A C K = 4 3 , d a t a = ‘ C ’ Seq=43, ACK=80

F549$ @DC45$ t#i A25@$M#:5$ 94I46C@$$ 28$4IA247$ t#i A25@$M#:5$ 94I46C@$28$ t#i>$4IA245$ U-IJ$t#i @634 563C.4$@4.<4@$5I4<-962

\V$

slide-64
SLIDE 64

! )*,(6*($#6(!E8(60+#*"6(

M&:"#Y(

! 1A2;.7$U4$.2<K49$@A-<$

=BB$E92;<7T@96CT@634H$

! Z;@$=BB$N-9645u$

! L8$6@$65$@22$5A29@$

! (943-@;94$@6342;@$ ! F<<4I455-9D$

94@9-<5365562<5u$

! L8$6@$65$@22$.2<K$

! 1.2Y$94-I@62<$@2$54K34<@$

.255$

! )*,(>&2(,#(#$60+&6#(

L!!Y(

! '4-5;94$@634$8923$

54K34<@$@9-<5365562<$ ;<@6.$M#:$94I46C@$

! LK<294$94@9-<5365562<5$ ! #-..$@A65$O1-3C.4=BBP$

! 1-3C.4=BB$Y6..$N-9D$

! g4$Y-<@$-$O5322@A49P$

45@63-@47$=BB$

! MN49-K4$54N49-.$94I4<@$

34-5;9434<@5>$<2@$m;5@$ I;994<@$1-3C.4=BB$

\W$

slide-65
SLIDE 65

! !aC2<4<@6-.$Y46KA@47$32N6<K$-N49-K4$ ! L<l;4<I4$28$C-5@$5-3C.4$74I94-545$

4aC2<4<@6-..D$8-5@$

! BDC6I-.$N-.;4[$#$d$0k)/?$

\?$

EstimatedRTT = (1- #)*EstimatedRTT + #*SampleRTT

slide-66
SLIDE 66

\\$

RTT: gaia.cs.umass.edu to fantasia.eurecom.fr

100 150 200 250 300 350 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds) RTT (milliseconds) SampleRTT Estimated RTT

slide-67
SLIDE 67

! 14@@6<K$@A4$B#($@6342;@$ ! !5@63@47=BB$C.;5$O5-84@D$3-9K6<P$ ! BA4$.-9K49$@A4$N-96-@62<$6<$!5@63-@47=BB>$@A4$

.-9K49$@A4$5-84@D$3-9K6<$

\*$

slide-68
SLIDE 68

! B#($I94-@45$97@$549N6I4$

2<$@2C$28$;<94.6-U.4$L($

! ,4-@;945$28$B#($$

! (6C4.6<47$54K34<@5$ ! #;3;.-@6N4$M#:5$

! B#($;545$56<K.4$

94@9-<5365562<$@6349$

! =4@9-<5365562<5$-94$

@96KK4947$UD$

! @6342;@$4N4<@5$ ! 7;C.6I-@4$M#:5$

! L<6@6-..D$I2<56749$

563C.6Q47$B#($54<749[$

! LK<294$7;C.6I-@4$M#:5$ ! LK<294$l2Y$I2<@92.$ ! LK<294$I2<K45@62<$

I2<@92.$

\_$

slide-69
SLIDE 69

! G-@-$94I46N47$8923$-CC[$

! #94-@4$54K34<@$Y6@A$54h$f$ ! 54h$f$65$UD@4T5@94-3$

<;3U49$28$Q95@$7-@-$UD@4$6<$$ 54K34<@$

! 1@-9@$@6349$68$<2@$-.94-7D$

9;<<6<K$E@A6<J$28$@6349$-5$ 829$2.745@$;<M#:47$ 54K34<@H$

! !aC69-@62<$6<@49N-.[$

B634&;@L<@49N-.$$ ! B6342;@[$ ! =4@9-<536@$54K34<@$@A-@$

I-;547$@6342;@$

! =45@-9@$@6349$

! $M#:$94I46N47[$

! L8$-IJ<2Y.47K45$

C94N62;5.D$;<M#:47$ 54K34<@5$

! FC7-@4$YA-@$65$J<2Y<$@2$ U4$M#:47$ ! 1@-9@$@6349$68$@A494$-94$$ 2;@5@-<76<K$54K34<@5$

\`$

slide-70
SLIDE 70

*)$

S25@$M

Seq=100, 20 bytes data

@634 C943-@;94$@6342;@$5I4<-962 S25@$Z

Seq=92, 8 bytes data Seq=92, 8 bytes data 14hd`/$@6342;@

S25@$M

Seq=92, 8 bytes data ACK=100

.255 @6342;@ .25@$M#:$5I4<-962 S25@$Z

X

Seq=92, 8 bytes data A C K = 1

@634$

14hd`/$@6342;@

14<7Z-54$ d$)00$ 14<7Z-54$ d$)/0$ 14<7Z-54$ d$)/0$ 14<7U-54$ d$)00$

slide-71
SLIDE 71

*/$

S25@$M

Seq=92, 8 bytes data ACK=100

.255 @6342;@ #;3;.-@6N4$M#:$5I4<-962 S25@$Z

X

Seq=100, 20 bytes data A C K = 1 2

@634$ 14<7Z-54$ d$)/0$

slide-72
SLIDE 72

*V$

Event at Receiver

Arrival of in-order segment with expected seq #. All data up to expected seq # already ACKed Arrival of in-order segment with expected seq #. One other segment has ACK pending Arrival of out-of-order segment higher-than-expect seq. # . Gap detected Arrival of segment that partially or completely fills gap

TCP Receiver action

Delayed ACK. Wait up to 500ms for next segment. If no next segment, send ACK Immediately send single cumulative ACK, ACKing both in-order segments Immediately send duplicate ACK, indicating seq. # of next expected byte Immediate send ACK, provided that segment starts at lower end of gap

slide-73
SLIDE 73

! B634T2;@$C49627$$28@4<$

94.-@6N4.D$.2<K$

! "2<K$74.-D$U48294$

9454<76<K$.25@$C-IJ4@$

! G4@4I@$.25@$54K34<@5$N6-$

7;C.6I-@4$M#:5k$

! 14<749$28@4<$54<75$3-<D$

54K34<@5$U-IJT@2TU-IJ$

! L8$54K34<@$65$.25@>$@A494$

Y6..$.6J4.D$U4$3-<D$ 7;C.6I-@4$M#:5$829$@A-@$ 54K34<@$ ! L8$54<749$94I46N45$V$

M#:5$829$5-34$7-@->$6@$

  • 55;345$@A-@$54K34<@$
  • 8@49$M#:47$7-@-$Y-5$

.25@[$

! Q&$6(-#6-&2$+06[$9454<7$

54K34<@$U48294$@6349$ 4aC6945$

*W$

slide-74
SLIDE 74

S25@$M @6342;@ S25@$Z @634$

X

resend seq X2

54h$f$a)$ 54h$f$a/$ 54h$f$aV$ 54h$f$aW$ 54h$f$a?$ M#:$a)$ M#:$a)$ M#:$a)$ M#:$a)$ @96C.4$ 7;C.6I-@4$ M#:5$

*?$

slide-75
SLIDE 75

! =4I46N4$5674$28$B#($

I2<<4I@62<$A-5$-$94I46N4$ U;c49[$

L($ 7-@-K9-35$

B#($7-@-$ E6<$U;c49H$ EI;994<@.DH$ ;<;547$U;c49$ 5C-I4$

  • CC.6I-@62<$

C92I455$

**$

! MCC.6I-@62<$C92I455$3-D$U4$

5.2Y$-@$94-76<K$8923$U;c49$

! gA-@$68$U;c49$Q..5$;CR$

( Q:*,(E*26-*:O(

$ (94N4<@5$$#2%#-$8923$ *M#-S*,021(-#>#0M#-]$( 9"^#-$UD$@9-<536@@6<K$@22$ 3;IA>$@22$8-5@$ $ K=##%(+&6>3021($#-M0>#O( 3-@IA6<K$54<7$9-@4$@2$ 94I46N6<K$-CC.6I-@62<x5$79-6<$ 9-@4$

slide-76
SLIDE 76

! 1;CC254$B#($94I46N49$

765I-975$2;@T28T29749$ 54K34<@5u$

! F<;547$U;c49$5C-I4$

d$9Y<7$ d$=INZ;c49Tq"-5@ZD@4=IN7$T$"-5@ZD@4=4-7r$

! =4I46N49$<2@6Q45$

54<749$28$;<;547$ U;c49$5C-I4$

! 14K34<@$A4-749$

6<I.;745$@A4$rwnd$N-.;4$$

! 14<749$.636@5$f$28$

;<M#:47$UD@45$@2$ rwnd

! e;-9-<@445$94I46N49i5$

U;c49$7245<i@$2N49l2Y$

*_$

L($ 7-@-K9-35$

B#($7-@-$ E6<$U;c49H$ EI;994<@.DH$ ;<;547$U;c49$ 5C-I4$

  • CC.6I-@62<$

C92I455$

9Y<7$ =INZ;c49$

slide-77
SLIDE 77

! B#($54<749$-<7$94I46N49$

45@-U.65A$OI2<<4I@62<P$ U48294$4aIA-<K6<K$7-@-$ 54K34<@5$

! #.64<@$6<6@6-@45$I2<<4I@62<$

! #-..5$I2<<4I@EH$@2$-<$L(%C29@$

! 149N49$65$I2<@-I@47$UD$I.64<@$

! #-..5$-II4C@EH$

! B#($N-96-U.45$6<6@6-.6o47$

YA6.4$45@-U.65A6<K$ I2<<4I@62<$

! 14h;4<I4$f5$ ! Z;c495$-<7$l2Y$I2<@92.$6<82$

E4kKk$=INg6<72YH$

! BA944$Y-D$A-<75A-J4[$ ! K6#=(ZO(I.64<@$A25@$54<75$

B#($1jX$54K34<@$@2$ 549N49$

! 1C4I6Q45$6<6@6-.$54h$f$ ! X2$7-@-$

! K6#=(/O(549N49$A25@$94I46N45$

1jX>$94C.645$Y6@A$1jXM#:$ 54K34<@$

! 149N49$-..2I-@45$U;c495$ ! 1C4I6Q45$549N49$6<6@6-.$54hk$f$

! K6#=(;O$I.64<@$94I46N45$

1jXM#:>$94C.645$Y6@A$M#:$ 54K34<@>$YA6IA$3-D$ I2<@-6<$7-@-$

*`$

slide-78
SLIDE 78

_0$

#.256<K$-$I2<<4I@62<[$

I.64<@$I.2545$52IJ4@$N6-$I.254EH[$

1@4C$)[$I.64<@$5D5@43$54<75$B#($

,LX$I2<@92.$54K34<@$@2$549N49$$

1@4C$/[$549N49$94I46N45$,LX>$

94C.645$Y6@A$M#:k$#.2545$ I2<<4I@62<>$54<75$,LXk$$

I.64<@

FIN

549N49

A C K ACK F I N

I.254$ I.254$ I.2547$ @6347$Y-6@$

slide-79
SLIDE 79

_)$

1@4C$V[$I.64<@$94I46N45$,LX>$94C.645$

Y6@A$M#:k$$

! !<@495$O@6347$Y-6@P$T$Y6..$

945C2<7$Y6@A$M#:$@2$94I46N47$ ,LX5$$

! gAD$<2@$I.254$633476-@4.DR$

MN2675$C2@4<@6-.$C92U.435$68$-$ .'+$52IJ4@$EY6@A$5-34$C29@5$

  • <7$L(5H$65$I94-@47>$-<7$@A4<$

2.7$74.-D47$7-@-$65$ 74.6N4947u$

1@4C$W[$549N49>$94I46N45$M#:k$$

#2<<4I@62<$I.2547$

I.64<@

FIN

549N49

A C K ACK F I N

I.254$ I.254$ I.2547$ @6347$Y-6@$

slide-80
SLIDE 80

_/$

B#($I.64<@$.684IDI.4 B#($549N49$.684IDI.4

slide-81
SLIDE 81

(96<I6C.45$-<7$B#($1C4I6QI5$

_V$

slide-82
SLIDE 82

! gA-@$65$I2<K45@62<R$ ! L<8293-..D[$O@22$3-<D$52;9I45$54<76<K$@22$3;IA$

7-@-$@22$8-5@$829$2#6,*-.(@2$A-<7.4P$

! G6c494<@$8923$l2Y$I2<@92.^$ ! '-<6845@-@62<5$ ! "25@$C-IJ4@5$EU;c49$2N49l2Y$-@$92;@495H$ ! "2<K$74.-D5$Eh;4;46<K$6<$92;@49$U;c495H$

_W$

slide-83
SLIDE 83

! BY2$54<7495>$@Y2$

94I46N495$

! &<4$92;@49>$

02P206#$U;c495$$

! X2$94@9-<5365562<$ ! "6<J$Zg$28$=$ ! [&-1#(%#:&'$(

YA4<$ I2<K45@47$

! '-a63;3$

  • IA64N-U.4$

@A92;KAC;@$

_?$

unlimited shared

  • utput link buffers$

Host A$

$in : original data$

Host B$

$out$

=%/$ =%/$ =%/$

slide-84
SLIDE 84

! &<4$92;@49>$P206#(U;c495$$ ! 14<749$94@9-<5365562<$28$.25@$C-IJ4@$

_\$

finite shared output link buffers$ Host A$

$in : original data$

Host B$ $out$

$'in : original data, plus retransmitted data$

slide-85
SLIDE 85

_*$

R/2 R/2

$in $out

b.

R/2 R/2

$in $out

a.

R/2 R/2

$in $out

c.

R/4 R/3

! #-54$-[$14<749$2<.D$@9-<536@5$YA4<$6@$J<2Y5$U;c49$5C-I4$65$

  • N-6.-U.4$6<$92;@49$E;<94-.65@6IH$

! #-54$U[$14<749$94@9-<536@5$2<.D$YA4<$C-IJ4@$65$J<2Y<$@2$U4$.25@$ ! X4Y$I25@$28$I2<K45@62<[$'294$54<749$Y29J$E94@9-<5H$829$K6N4<$

OK227C;@P$

! #-54$I[$M55;34$54<749$-.52$94@9-<536@5$YA4<$-$C-IJ4@$65$74.-D47$

E<2@$.25@H>$6k4k$-$C943-@;94$@6342;@$EU6KK49$$6<iH$$

! X4Y$I25@$28$I2<K45@62<[$92;@49$2;@C;@$.6<J$I-99645$3;.@6C.4$I2C645$28$

C-IJ4@$

$"in $"out

=

$"in $"out

>

$"in $"out

>

slide-86
SLIDE 86

__$

! ,2;9$54<7495$ ! ';.@6A2C$C-@A5$ ! B6342;@%94@9-<536@$

$"in

s[$YA-@$A-CC4<5$-5$$$$$$

  • <7$$$$$$$$$$6<I94-54R$

$"in

finite shared

  • utput link

buffers$

Host A$

$in : original data$

Host B$

$out$ $'in : original data, plus retransmitted data$

slide-87
SLIDE 87

! M$<4Y$I25@$28$I2<K45@62<$$ ! gA4<$C-IJ4@$792CC47>$-<D$;C5@94-3$@9-<5365562<$

I-C-I6@D$;547$829$@A-@$C-IJ4@$Y-5$Y-5@47^$

_`$

H

  • st

A$ H

  • st

B$

$

  • u

t

$

slide-88
SLIDE 88

! B2%D#2%(>*21#$60*2(

>*26-*:O(

! X2$4aC.6I6@$8447U-IJ$

8923$<4@Y29J$

! #2<K45@62<$6<849947$

8923$4<7T5D5@43$ 2U549N47$.255>$74.-D$

! T==-*&>3(6&.#2(9'(!E8(

! 4#6,*-.D&$$0$6#%(

>*21#$60*2(>*26-*:O(

! =2;@495$C92N674$

8447U-IJ$@2$4<7$5D5@435$

! 16<K.4$U6@$6<76I-@6<K$

I2<K45@62<$E1XM>$ G!#U6@>$B#(%L($!#X>$ MB'H$

! !aC.6I6@$9-@4$54<749$

5A2;.7$54<7$-@$

`0$

!,*(9-*&%(&==-*&>3#$(6*(>*21#$60*2(>*26-*:O(

slide-89
SLIDE 89

! e2-.[$$B#($54<749$5A2;.7$@9-<536@$&$(I&$6(&$(

=*$$09:#>$U;@$Y6@A2;@$I2<K45@6<K$<4@Y29J$

! S2Y$72$Y4$Q<7$@A4$9-@4$m;5@$U4.2Y$

I2<K45@62<$.4N4.R$

! G4I4<@9-.6o47$-CC92-IA$+$4-IA$B#($54<749$54@5$6@5$

2Y<$9-@4>$U-547$2<$-#$0-1-&$8447U-IJ[$$

! M#:$6<76I-@45$54K34<@$94I46N47$E-$K227$@A6<K^H$

! X4@Y29J$<2@$I2<K45@47>$52$6<I94-54$54<76<K$9-@4$

! "25@$54K34<@$+$-55;34$.255$65$7;4$@2$I2<K45@47$

<4@Y29J>$52$74I94-54$54<76<K$9-@4$

`)$

slide-90
SLIDE 90

! (92U6<K$829$U-<7Y67@A$ ! L<I94-54$@9-<5365562<$9-@4$2<$94I46C@$28$M#:>$;<@6.$

4N4<@;-..D$.255$2II;95>$@A4<$74I94-54$@9-<5365562<$9-@4$$

`/$

M#:5$U46<K$94I46N47>$$ 52$6<I94-54$9-@4$ _( _( _( _( _( .255>$52$74I94-54$9-@4$ 54<76<K$9-@4$ @634$

B#(i5$ O5-Y@22@AP$ U4A-N629$

! S2Y$8-5@$@2$6<I94-54$29$74I94-54R$

slide-91
SLIDE 91

! 14<749$.636@5$9-@4$UD$.636@6<K$<;3U49$28$

;<M#:47$UD@45$O6<$C6C4.6<4P[$

! cwnd: 76c495$8923$rwnd EA2Y>$YADRH$ ! 54<749$.636@47$UD min(cwnd,rwnd)

! =2;KA.D>$ ! cwnd$EI2<K45@62<$Y6<72YH$65$-$8;<I@62<$28$

C49I46N47$<4@Y29J$I2<K45@62<$

! rwnd$E94I46N49$Y6<72YH$65$4aC.6I6@.D$

IA-<K47$UD$94I46N49$

9-@4$d IY<7 =BB UD@45%54I LastByteSent-LastByteAcked % cwnd

$ cwnd UD@45$ =BB$ M#:E5H$

`V$

slide-92
SLIDE 92

7THO(HT!T([AKK(

! ;(%"=:0>&6#(TEU$Y(

! M@$.4-5@$5234$54K34<@5$

K4@@6<K$@A92;KA$E('1200):26&) ('&(2.6#-&H$

! #;@$cwnd$6<$A-.8$

! !0+#*"6Y(

! X2$945C2<54$8923$94I46N49$ ! #;@$cwnd$@2$)$ ! y49D$-KK94556N4$5.2Y72Y<^$

NAAHO(TEU(LBEBC\BH(

! K:*,$6&-6(=3&$#(

EI2<<4I@62<$5@-9@$29$-8@49$ @6342;@H[$$

! L<I94-54$cwnd$4aC2<4<@6-..D$

8-5@$$

! BA6<J$<-34$65$U-IJY-975R$

BA6<J$O-N2676<K$-$5.2Y$5@-9@P$

! E*21#$60*2(&M*0%&2>#$

! L<I94-54$cwnd$.6<4-9.D$

`W$

slide-93
SLIDE 93

! gA4<$I2<<4I@62<$U4K6<5>$

cwnd$d$)$'11$

! !a-3C.4[$'11$d$?00$UD@45$]$

=BB$d$/00$354I$

! L<6@6-.$9-@4$d$/0$JUC5$

! MN-6.-U.4$U-<7Y67@A$3-D$$

U4$pp$'11%=BB$

! e2-.[$h;6IJ.D$9-3C$;C$@2$

945C4I@-U.4$9-@4$

! C2>-#&$#(-&6#(#5=*2#260&::'(;<@6.$

Q95@$.255$4N4<@$29$YA4<$@A945A2.7$ 94-IA47$

! G2;U.4$cwnd$4N49D$=BB$ ! G2<4$UD$6<I9434<@6<K$cwnd$UD$

)$829$4N49D$M#:$94I46N47$

S25@$M

  • ne segment

=BB

S25@$Z @634

two segments four segments

`?$

slide-94
SLIDE 94

! 1.2Y$5@-9@$CA-54$3;5@$4<7$

! L8$Y4$J44C$4aC2<4<@6-..D$6<I94-56<K$2;9$U-<7Y67@A$

;5-K4>$Y4i94$5;94$@2$I-;54$I2<K45@62<^$

! gA4<$72$Y4$5@2C$6<I94-56<K$9-C67.DR$

! Z-547$2<$-$<4Y$N-.;4[$ssthresh

! 1.2Y$5@-9@$@A945A2.7$3-6<@-6<47$UD$B#($ ! gA4<$cwnd$pd$ssthresh[$@9-<56@62<$8923$5.2Y5@-9@$@2$ I2<K45@62<$-N267-<I4$CA-54$

! 1@-9@5$2c$A6KA$-@$Q95@$ ! 14@$@2$ssthresh=cwnd/2$YA4<$7-@-$.255$

2II;95$

! =4343U49$EA-.8$28H$B#($9-@4$YA4<$I2<K45@62<$.-5@$2II;9947

`\$

slide-95
SLIDE 95

! X4Y$CA-54[$YA4<$$

cwnd > ssthresh>$$ K92Y$cwnd$.6<4-9.D$

! L<I94-54$cwnd UD$)$'11$

C49$=BB$$

! MCC92-IA$C2556U.4$

I2<K45@62<$5.2Y49$@A-<$6<$ 5.2Y5@-9@$

$ $

! M#:5[$6<I94-54$cwnd UD$

)$'11$C49$=BB[$-776@6N4$ 6<I94-54$

! .255[$I;@$cwnd$6<$A-.8$

E<2<T@6342;@T74@4I@47$ .255$H[$3;.@6C.6I-@6N4$ 74I94-54$ $

ML'G$

ML'G[$M776@6N4$L<I94-54$ ';.@6C.6I-@6N4$G4I94-54$

`_$

slide-96
SLIDE 96

``$

slow start congestion avoidance fast recovery cwnd > ssthresh loss: timeout loss: timeout new ACK loss: 3dupACK loss: 3dupACK loss: timeout

slide-97
SLIDE 97

! gA4<$cwnd$<$ssthresh>$54<749$6<$$

$:*,D$6&-6(=3&$#(

! g6<72Y$K92Y5$4aC2<4<@6-..Dk$ ! gA4<$cwnd$>=$ssthresh>$54<749$65$6<$$

>*21#$60*2D&M*0%&2>#(=3&$#(

! g6<72Y$K92Y5$.6<4-9.Dk$ ! gA4<$V$7;C.6I-@4$M#:5$94I46N47$ ! ssthresh$54@$@2$cwnd/2 ! cwnd$54@$@2$z$ssthresh ! gA4<$@6342;@$2II;95$ ! ssthresh$54@$@2$cwnd/2 ! cwnd$54@$@2$)$'11k$$

)0)$

slide-98
SLIDE 98

)0/$

8-69<455$K2-.[$68$:$B#($545562<5$5A-94$5-34$U2@@.4<4IJ$.6<J$ 28$U-<7Y67@A$=>$4-IA$5A2;.7$A-N4$-N49-K4$9-@4$28$=%:$

B#($I2<<4I@62<$) U2@@.4<4IJ$ 92;@49$ I-C-I6@D$= B#($$ I2<<4I@62<$/

slide-99
SLIDE 99

BY2$I23C4@6<K$545562<5[$

! M776@6N4$6<I94-54$K6N45$5.2C4$28$)>$-5$@A92;KA2;@$6<I94-545$ ! ';.@6C.6I-@6N4$74I94-54$74I94-545$@A92;KAC;@$C92C29@62<-..D$$

= =

4h;-.$U-<7Y67@A$5A-94 #2<<4I@62<$)$@A92;KAC;@ # 2 < < 4 I @ 6 2 < $ / $ @ A 9 2 ; K A C ; @ I2<K45@62<$-N267-<I4[$-776@6N4$6<I94-54 .255[$74I94-54$Y6<72Y$UD$8-I@29$28$/ I2<K45@62<$-N267-<I4[$-776@6N4$6<I94-54 .255[$74I94-54$Y6<72Y$UD$8-I@29$28$/

)0V$

B2@-.$U-<7Y67@A$28$U2@A$ I2<<4I@62<5$

slide-100
SLIDE 100

! Q&0-2#$$(&2%(GH8(

! ';.@63476-$-CC5$28@4<$

72$<2@$;54$B#($

! G2$<2@$Y-<@$9-@4$@A92@@.47$ UD$I2<K45@62<$I2<@92.$

! L<5@4-7$;54$FG($

! (;3C$-;762%N6742$-@$ I2<5@-<@$9-@4$ ! B2.49-@4$C-IJ4@$.255$

! FG($I-<$OI92Y7$2;@P$

B#($

! Q&0-2#$$(&2%(=&-&::#:(

!E8(E*22#>60*2$(

! X2@A6<K$C94N4<@5$-CC$8923$

2C4<6<K$C-9-..4.$ I2<<4I@62<5$U4@Y44<$/$ A25@5k$

! g4U$U92Y5495$72$@A65$$ ! !a-3C.4[$.6<J$28$9-@4$=$

5;CC29@6<K$`$I2<<4I@62<5w$$

! X4Y$-CC$-5J5$829$)$B#(>$K4@5$ 9-@4$=%)0$ ! X4Y$-CC$-5J5$829$))$B#(5>$ K4@5$p$=%/$^$

)0W$

slide-101
SLIDE 101

)0?$

slide-102
SLIDE 102

! FG($65$-$I2<<4I@62<.455$7-@-K9-3$549N6I4k$ ! BA494$65$<2$I2<<4I@62<$45@-U.65A34<@[$C-IJ4@5$3-D$5A2Y$

;C$-@$-<D$@634k$$

! FG($C-IJ4@5$-94$54.8TI2<@-6<47k$$ ! FG($65$;<94.6-U.4[$ ! X2$-IJ<2Y.47K434<@5$@2$6<76I-@4$74.6N49D$28$7-@-k$ ! #A4IJ5;35$I2N49$@A4$A4-749>$-<7$2<.D$2C@62<-..D$I2N49$

@A4$7-@-k$

! #2<@-6<5$<2$34IA-<653$@2$74@4I@$36556<K$29$365T

54h;4<I47$C-IJ4@5k$$

! X2$34IA-<653$829$-;@23-@6I$94@9-<5365562<k$$ ! X2$34IA-<653$829$l2Y$I2<@92.$29$I2<K45@62<$I2<@92.$

E54<749$I-<$2N499;<$94I46N49$29$<4@Y29JH$

)0\$

slide-103
SLIDE 103

! B#($65$I2<<4I@62<T2964<@47k$ ! VTY-D$A-<75A-J4$;547$829$I2<<4I@62<$54@;C$ ! B#($C92N6745$-$5@94-3T28TUD@45$549N6I4$ ! B#($65$94.6-U.4[$ ! MIJ<2Y.47K434<@5$6<76I-@4$74.6N49D$28$7-@-$ ! #A4IJ5;35$-94$;547$@2$74@4I@$I299;C@47$7-@-$ ! 14h;4<I4$<;3U495$74@4I@$36556<K>$29$365T54h;4<I47$7-@-$ ! #299;C@47$7-@-$65$94@9-<536@@47$-8@49$-$@6342;@$ ! '65T54h;4<I47$7-@-$65$94T54h;4<I47$ ! Eg6<72YTU-547H$,.2Y$I2<@92.$C94N4<@5$2N49T9;<$28$94I46N49$ ! B#($;545$I2<K45@62<$I2<@92.$@2$5A-94$<4@Y29J$I-C-I6@D$

  • 32<K$;5495$

)0*$