You are on page 1of 40

CS2307-COMPUTER NETWORKS LAB MANUAL SEM/YEAR:VI/III STAFF NAME:D.

SORNA SHANTHI STAFF CODE:CS66

E N!:" PRO#RAM USIN# TCP SOCKETS EX NO: 1.i DATE AND TIME SERVER AIM: TO implement date and time display from local ost to ser!er "sin# T$% AL#ORITHM: CLIENT 1.start t e pro#ram &. To create a soc'et in client to ser!er. (. t e client connection accept to t e ser!er and replay to read t e system date and time. ). Stop t e pro#ram. AL#ORITHM: SERVER 1.start t e pro#ram &. To create a soc'et in ser!er to client. (. To display t e c"rrent date and time to client ). Stop t e pro#ram. EX NO:1.ii CLIENT-SERVER APPLICATION FOR CHAT AIM: To *rite a client+ser!er application for c at "sin# T$% AL#ORITHM: CLIENT 1.start t e pro#ram &. To create a soc'et in client to ser!er. (. T e client esta,lis es a connection to t e ser!er. -. T e client accept t e connection and to send t e data from client to ser!er and !ice !ersa ). T e client comm"nicate t e ser!er to send t e end of t e messa#e .. Stop t e pro#ram. AL#ORITHM: SERVER 1.start t e pro#ram &. To create a soc'et in ser!er to client (. T e ser!er esta,lis es a connection to t e client. -. T e ser!er accept t e connection and to send t e data from ser!er to client and !ice ersa ). T e ser!er comm"nicate t e client to send t e end of t e messa#e ..Stop t e pro#ram.

EX NO:1.iii IMPLEMENTATION OF TCP/IP ECHO

AIM: To implementation of ec o client ser!er "sin# T$%/I% AL#ORITHM: 1.start t e pro#ram & To create a soc'et in client to ser!er. (. ( e client esta,lis es a connection to t e ser!er. -. T e client accept t e connection and send data to ser!er and t e ser!er to replay t e ec o messa#e to t e client ). T e client comm"nicate t e ser!er to send t e end of t e messa#e .. Stop t e pro#ram. E N!:2 PRO#RAM USIN# SIMPLE UDP EX NO:&.i DOMAIN

NAME SYSTEM

AIM:
To *rite a $ pro#ram to de!elop a DNS client ser!er to resol!e t e #i!en ostname.

A01ORIT2M:
1. $reate a ne* file. Enter t e domain name and address in t at file. &. To esta,lis t e connection ,et*een client and ser!er. (. $ompile and e3ec"te t e pro#ram. -. Enter t e domain name as inp"t. ). T e I% address correspondin# to t e domain name is display on t e screen .. Enter t e I% address on t e screen. 4. T e domain name correspondin# to t e I% address is display on t e screen. 5. Stop t e pro#ram. P$!%$&' : 6incl"de7stdio. 8 6incl"de7stdli,. 8 6incl"de7errno. 8 6incl"de7netd,. 8 6incl"de7sys/types. 8 6incl"de7sys/soc'et. 8 6incl"de7netinet/in. 8 int main9int ar#c:c ar ;ar#!<1=> ? str"ct ostent ; en@ if9ar#cAB&> ? fprintf9stderr:CEnter t e ostname DnC>@ e3it91>@ E enB#et ost,yname9ar#!<1=>@ if9 enBBNF00> ? fprintf9stderr:C2ost not fo"nd DnC>@

E printf9C2ostname is Gs DnC: en+8 Hname>@ printf9CI% address is Gs DnC:inetHntoa9;99str"ct inHaddr ;> en+8 Haddr>>>@ E RESULT: T "s t e a,o!e pro#ram "dp performance "sin# domain name ser!er *as e3ec"ted and s"ccessf"lly EX NO:&.ii PRO#RAM USIN# UDP SOCKET AIM: To *rite a client+ser!er application for c at "sin# FD% AL#ORITHM: CLIENT 1. Incl"de necessary pac'a#e in Ia!a &. T e client esta,lis es a connection to t e ser!er. (. T e client accept t e connection and to send t e data from client to ser!er and !ice !ersa -. T e client comm"nicate t e ser!er to send t e end of t e messa#e ). Stop t e pro#ram. AL#ORITHM: SERVER 1. Incl"de necessary pac'a#e in Ia!a &. T e ser!er esta,lis es a connection to t e client. (. T e ser!er accept t e connection and to send t e data from ser!er to client and !ice !ersa -. T e ser!er comm"nicate t e client to send t e end of t e messa#e ). Stop t e pro#ram.
EX NO 3 : PRO#RAMS USIN# RAW SOCKETS (LIKE PACKET CAPTURIN# AND FILTERIN#) AIM : To implement pro#rams "sin# ra* soc'ets 9li'e pac'et capt"rin# and filterin#> A01ORIT2M : 1. Start t e pro#ram and to incl"de t e necessary eader files &. To define t e pac'et len#t (. To declare t e I% eader str"ct"re "sin# T$% eader -. Fsin# simple c ec's"m process to c ec' t e process ). Fsin# T$% DI% comm"nication protocol to e3ec"te t e pro#ram .. And "sin# T$%DI% comm"nication to enter t e So"rce I% and port n"m,er and Tar#et I% address and port n"m,er. 4. T e Ra* soc'et 9> is created and accept t e Soc'et 9 > and Send to 9 >: A$J 5. Stop t e pro#ram

//---cat rawtcp.c--// Run as root or SUID 0, just datagram no data/payload #include <unistd. ! #include <stdio. ! #include <sys/soc"et. !

#include <netinet/ip. ! #include <netinet/tcp. ! // #ac"et lengt #de$ine #%&'()*+ ,-./ // 0ay create separate eader $ile 1. 2 $or all // eaders3 structures // I# eader3s structure struct ip eader 4 unsigned c ar ip (i l56, /7 )ittle-endian 7/ ip (8er59: unsigned c ar ip (tos: unsigned s ort int ip (len: unsigned s ort int ip (ident: unsigned c ar ip ($lags: unsigned s ort int ip (o$$set: unsigned c ar ip (ttl: unsigned c ar ip (protocol: unsigned s ort int ip (c "sum: unsigned int ip (sourceip: unsigned int ip (destip: ;: /7 Structure o$ a '%# eader 7/ struct tcp eader 4 unsigned s ort int tcp (srcport: unsigned s ort int tcp (destport: unsigned int tcp (se<num: unsigned int tcp (ac"num: unsigned c ar tcp (reser8ed59, tcp (o$$set59: // unsigned c ar tcp ($lags: unsigned int tcp(res-59, /7little-endian7/ tcp ( len59, /7lengt o$ tcp eader in =/->it words7/ tcp ($in5-, /7?inis $lag @$in@7/ tcp (syn5-, /7Sync roniAe se<uence num>ers to start a connection7/ tcp (rst5-, /7Reset $lag 7/ tcp (ps 5-, /7#us , sends data to t e application7/ tcp (ac"5-, /7ac"nowledge7/ tcp (urg5-, /7urgent pointer7/ tcp (res/5/: unsigned s ort int tcp (win: unsigned s ort int tcp (c "sum: unsigned s ort int tcp (urgptr: ;: // Simple c ec"sum $unction, may use ot ers suc

as %yclic

Redundancy % ec", %R% unsigned s ort csum1unsigned s ort 7>u$, int len2 4 unsigned long sum: $or1sumB0: len!0: len--2 sum CB 7>u$CC: sum B 1sum !! -D2 C 1sum E0F$$$$2: sum CB 1sum !! -D2: return 1unsigned s ort21Gsum2: ; int main1int argc, c ar 7arg8HI2 4 int sd: // +o data, just datagram c ar >u$$erH#%&'()*+I: // ' e siAe o$ t e eaders struct ip eader 7ip B 1struct ip eader 72 >u$$er: struct tcp eader 7tcp B 1struct tcp eader 72 1>u$$er C siAeo$1struct ip eader22: struct soc"addr(in sin, din: int one B -: const int 78al B Eone: memset1>u$$er, 0, #%&'()*+2: i$1argc JB 62 4 print$1@- In8alid parametersJJJKn@2: print$1@- Usage5 Ls <source ostname/I#! <source port! <target ostname/I#! <target port!Kn@, arg8H0I2: eFit1--2: ; sd B soc"et1#?(I+*', SM%&(RNO, I##RM'M('%#2: i$1sd < 02 4 perror1@soc"et12 error@2: eFit1--2: ; else print$1@soc"et12-SM%&(RNO and tcp protocol is M&.Kn@2: // ' e source is redundant, may >e used later i$ needed // Nddress $amily sin.sin($amily B N?(I+*': din.sin($amily B N?(I+*': // Source port, can >e any, modi$y as needed sin.sin(port B tons1atoi1arg8H/I22: din.sin(port B tons1atoi1arg8H9I22: // Source I#, can >e any, modi$y as needed sin.sin(addr.s(addr B inet(addr1arg8H-I2:

din.sin(addr.s(addr B inet(addr1arg8H=I2: // I# structure ip-!ip (i l B 6: ip-!ip (8er B 9: ip-!ip (tos B -D: ip-!ip (len B siAeo$1struct ip eader2 C siAeo$1struct tcp eader2: ip-!ip (ident B tons169=/-2: ip-!ip (o$$set B 0: ip-!ip (ttl B D9: ip-!ip (protocol B D: // '%# ip-!ip (c "sum B 0: // Done >y "ernel // Source I#, modi$y as needed, spoo$ed, we accept t roug command line argument ip-!ip (sourceip B inet(addr1arg8H-I2: // Destination I#, modi$y as needed, >ut ere we accept t roug command line argument ip-!ip (destip B inet(addr1arg8H=I2: // ' e '%# structure. ' e source port, spoo$ed, we accept t roug t e command line tcp-!tcp (srcport B tons1atoi1arg8H/I22: // ' e destination port, we accept t roug command line tcp-!tcp (destport B tons1atoi1arg8H9I22: tcp-!tcp (se<num B tonl1-2: tcp-!tcp (ac"num B 0: tcp-!tcp (o$$set B 6: tcp-!tcp (syn B -: tcp-!tcp (ac" B 0: tcp-!tcp (win B tons1=/PDP2: tcp-!tcp (c "sum B 0: // Done >y "ernel tcp-!tcp (urgptr B 0: // I# c ec"sum calculation ip-!ip (c "sum B csum11unsigned s ort 72 >u$$er, 1siAeo$1struct ip eader2 C siAeo$1struct tcp eader222: // In$orm t e "ernel do not $ill up t e eaders3 structure, we $a>ricated our own i$1setsoc"opt1sd, I##RM'M(I#, I#(QDRI+%), 8al, siAeo$1one22 < 02 4 perror1@setsoc"opt12 error@2: eFit1--2: ; else print$1@setsoc"opt12 is M&Kn@2: print$1@Using55555Source I#5 Ls port5 Lu, 'arget I#5 Ls port5 Lu.Kn@, arg8H-I, atoi1arg8H/I2, arg8H=I, atoi1arg8H9I22:

// sendto12 loop, send e8ery / second $or 60 counts unsigned int count: $or1count B 0: count < /0: countCC2 4 i$1sendto1sd, >u$$er, ip-!ip (len, 0, 1struct soc"addr 72Esin, siAeo$1sin22 < 02 // Reri$y 4 perror1@sendto12 error@2: eFit1--2: ; else print$1@%ount #Lu - sendto12 is M&Kn@, count2: sleep1/2: ; close1sd2: return 0: ; RESULT : T "s t e A,o!e pro#rams "sin# ra* soc'ets T$% DI% 9li'e pac'et capt"rin# and
filterin#> *as e3ec"ted and s"ccessf"lly.

EX NO: - PROGRAMS USING RPC / RMI


AIM: To implement t e pro#ram "sin# RMI A01ORIT2M: 1. Start t e pro#ram and to incl"de necessary pac'a#es &. Fsin# Add client to #et t e t*o !al"es (.Fsin# Add ser!er9> to implement and $all t e Add ser!er impl -.Fsin# p",lic interface to call t e pro#ram in remotely ).Kinally to call and compile all t e s", pro#ram ..To E3ec"te Start RMI re#istry 4.Stop t e pro#ram

RESULT: T "s t e A,o!e pro#ram RMI *as e3ec"ted and s"cessf"lly

E* N!: 0+ SIMULATION OF SLIDIN# WINDOW PROTOCOL AIM: To *rite a $ pro#ram to perform slidin# *indo*. AL#ORITHM: 1. Start t e pro#ram. &. 1et t e frame siLe from t e "ser (. To create t e frame ,ased on t e "ser reM"est. -. To send frames to ser!er from t e client side.

). If yo"r frames reac t e ser!er it *ill send A$J si#nal to client ot er*ise it *ill send NA$J si#nal to client. .. Stop t e pro#ram %RO1RAM : // S0IDIN1 NINDON %ROTO$O0 $lient : 6incl"de 7stdio. 8 6incl"de 7stdli,. 8 6incl"de 7strin#. 8 6incl"de 7sys/types. 8 6incl"de 7sys/ipc. 8 6incl"de 7sys/ms#. 8 str"ct myms#,"f ? lon# mtype@ c ar mte3t<&)=@ E@ KI0E ;fp@ int main9> ? str"ct myms#,"f ,"f@ int ms#id@ int iBO:s@ int co"ntBO:frmsL@ int a<1OO=@ c ar d@ if99ms#idBms##et95P:I%$H$REATQO...>>BB+1> ? printf9CDn ERROR IN MS11ETC>@ e3it9O>@ E printf9CDn Enter t e frame siLe:C>@ scanf9CGdC:RfrmsL>@ if99fpBfopen9Cc ec'C:CrC>>BBNF00> printf9CDn KI0E NOT O%ENEDC>@ else printf9CDn KI0E O%ENEDC>@ * ile9Afeof9fp>> ? dB#etc9fp>@ a<i=Bd@ iSS@ E sBi@ for9iBO@i7frmsL@iSS> //print from t e c ec' file printf9CDt GcC:a<i=>@

for9iBO@i7frmsL@iSS> ? if99ms#rc!9ms#id:R,"f:siLeof9,"f>:O:1>>BB+1> ? printf9CDn ERROR IN MS1R$VC>@ e3it9O>@ E printf9CDn RE$EIVED KRAMES ARE:GcC:,"f.mte3t<i=>@ E for9iBO@i7frmsL@iSS> ? if9a<i=BB,"f.mte3t<i=> co"ntSS@ E if9co"ntBBO> ? printf9CDn KRAMES NERE NOT RE$EIVED IN $ORRE$T SETC>@ e3it9O>@ E if9co"ntBBfrmsL> ? printf9CDn KRAMES NERE RE$EIVED IN $ORRE$T SETC>@ E else ? printf9CDn KRAMES NERE NOT RE$EIVED IN $ORRE$T SETC>@ EE S,-.-/% W-/.!0 P$!1!2!, S3$43$ 6incl"de 7stdio. 8 6incl"de 7stdli,. 8 6incl"de 7strin#. 8 6incl"de 7sys/types. 8 6incl"de 7sys/ipc. 8 6incl"de 7sys/ms#. 8 str"ct myms#,"f ? lon# mtype@ c ar mte3t<&)=@ E@ KI0E ;fp@ int main9> ?s tr"ct myms#,"f ,"f@ int si:ei:sL@ int ms#id@ int iBO:s@ int a<1OO=@ c ar d@ if99fpBfopen9CsendC:CrC>>BBNF00> printf9CDn KI0E NOT O%ENEDC>@ else printf9CDn KI0E O%ENEDC>@

printf9CDn Enter startin# and endin# inde3 of frame array:C>@ scanf9CGdGdC:Rsi:Rei>@ sLBei+si@ if99ms#idBms##et95P:I%$H$REATQO...>>BB+1> ? printf9CDn ERROR IN MS11ETC>@ e3it9O>@ E * ile9Afeof9fp>> ? dB#etc9fp>@ a<i=Bd@ iSS@ Es Bi@ ,"f.mtypeB1@ for9iBsi@i7Bei@iSS> ? ,"f.mte3t<i=Ba<i=@ E for9iBsi@i7Bei@iSS> //t e frames to ,e sent printf9CDt GcC:,"f.mte3t<i=>@ for9iBO@i7BsL@iSS> ? if99ms#snd9ms#id:R,"f:siLeof9,"f>:O>>BB+1> ? printf9CDn ERROR IN MS1SNDC>@ e3it9O>@ EE printf9CDn KRAMES SENTC>@ ret"rn O@ E RESULT: T "s t e a,o!e pro#ram slidin# *indo* protocol *as e3ec"ted and s"ccessf"lly

E N!:6 ADDRESS RESOLUTION PROTOCOL AIM: To #et t e MA$ or % ysical address of t e system "sin# Address Resol"tion %rotocol. AL#ORITHM: 1. Incl"de necessary eader files. &. InitialiLe t e arpreM str"ct"re initially to Lero. (. 1et t e I%Address of t e system as command line ar#"ment. -. $ ec' * et er t e #i!en I%Address is !alid.

). $opy t e I%Address from soc'addrHin str"ct"re to arpreM str"ct"re "sin# miscopy 9> system call. .. $reate a soc'et of type SO$JHD1RAM. 4. $alc"late t e MA$ address for t e #i!en I%Address "sin# ioctl9> system call. 5. Display t e I%Address and MA$ address in t e standard o"tp"t. P$!%$&': 6incl"de7"nistd. 8 6incl"de7sys/types. 8 6incl"de7sys/soc'et. 8 6incl"de7netinet/in. 8 6incl"de7net/ifHarp. 8 6incl"de7stdli,. 8 6incl"de7stdio. 8 6incl"de7netd,. 8 6incl"de7sys/ioctl. 8 6incl"de7arpa/inet. 8 int main9int ar#c:c ar ;ar#!<=> ? int sd@ "nsi#ned c ar ;ptr@ str"ct arpreM myarpB??OEE@ str"ct soc'addrHin sinB?OE@ sin.sinHfamilyBAKHINET@ if9inetHaton9ar#!<1=:Rsin.sinHaddr>BBO> ? printf9CI% address EnteredGs is not !alidDnC:ar#!<1=>@ e3it9O>@ E memcpy9Rmyarp.arpHpa:Rsin:siLeof9myarp.arpHpa>>@ strcpy9myarp.arpHde!:Cet OC>@ sdBsoc'et9AKHINET:SO$JHD1RAM:O>@ if9ioctl9sd:SIO$1AR%:Rmyarp>BB1> ? printf9CNo entry in AR% cac e forGsC:ar#!<1=>@ e3it9O>@ E ptrBRmyarp.arpH a.saHdata<O=@ printf9CMA$ address forGsC:ar#!<1=>@ printf9CG3G3G3G3G3G3DnC:;ptr:;9ptrS1>:;9ptrS&>:;9ptrS(>:;9ptrS->:;9ptrS)>>@ ret"rn9O>@ E RESULT: T "s t e MA$ address *as #enerated for I% address "sin# AR% protocol. E* NO:7 IM%0EMENTIN1 ROFTIN1 %ROTO$O0S AIM:
To sim"late t e Implementin# Ro"tin# %rotocols "sin# ,order #ate*ay protocol9U1%>

AL#ORITHM:

1. Read t e no. of nodes n &. Read t e cost matri3 for t e pat from eac node to anot er node. (. InitialiLe SOFR$E to 1 and incl"de 1 -. $omp"te D of a node * ic is t e distance from so"rce to t at correspondin# node. ). Repeat step . to step 5 for n+l nodes. .. $ oose t e node t at as not ,een incl"ded * ose distance is minim"m and incl"de t at node. 4. Kor e!ery ot er node not incl"ded compare t e distance directly from t e so"rce *it t e distance to reac t e node "sin# t e ne*ly incl"ded node 5. Ta'e t e minim"m !al"e as t e ne* distance. P. %rint all t e nodes *it s ortest pat cost from so"rce node

P$!%$&' :
6incl"de 7stdio. 8 6incl"de7conio. 8 int main9> ? int n@ int i:I:'@ int a<1O=<1O=:,<1O=<1O=@ printf9CDn Enter t e n"m,er of nodes:C>@ scanf9CGdC:Rn>@ for9iBO@i7n@iSS> ? for9IBO@I7n@ISS> ? printf9CDn Enter t e distance ,et*een t e ost Gd + Gd:C:iS1:IS1>@ scanf9CGdC:Ra<i=<I=>@ E E for9iBO@i7n@iSS> ? for9IBO@I7n@ISS> ? printf9CGdDtC:a<i=<I=>@ E printf9CDnC>@ E for9'BO@'7n@'SS> ? for9iBO@i7n@iSS> ? for9IBO@I7n@ISS> ? if9a<i=<I=8a<i=<'=Sa<'=<I=> ? a<i=<I=Ba<i=<'=Sa<'=<I=@

E E E E for9iBO@i7n@iSS> ? for9IBO@I7n@ISS> ? ,<i=<I=Ba<i=<I=@ if9iBBI> ? ,<i=<I=BO@ E EE printf9CDn T e o"tp"t matri3:DnC>@ for9iBO@i7n@iSS> ? for9IBO@I7n@ISS> ? printf9CGdDtC:,<i=<I=>@ E printf9CDnC>@ E #etc 9>@ E RESULT: T "s t e a,o!e pro#ram to sim"late t e Implementin# Ro"tin# %rotocols "sin# ,order #ate*ay protocol *as e3ec"ted and s"ccessf"lly

E* NO:5 OPEN SHORTEST PATH FIRST ROUTIN# PROTOCOL AIM: To sim"late t e O%EN S2ORTEST %AT2 KIRST ro"tin# protocol ,ased on t e cost assi#ned to t e pat . AL#ORITHM: 1.Read t e no. of nodes n &.Read t e cost matri3 for t e pat from eac node to anot er node.

(.InitialiLe SOFR$E to 1 and incl"de 1 -. $omp"te D of a node * ic is t e distance from so"rce to t at correspondin# node. ).Repeat step . to step 5 for n+l nodes. ..$ oose t e node t at as not ,een incl"ded * ose distance is minim"m and incl"de t at node. 4.Kor e!ery ot er node not incl"ded compare t e distance directly from t e so"rce *it t e distance to reac t e node "sin# t e ne*ly incl"ded node 5.Ta'e t e minim"m !al"e as t e ne* distance. P.%rint all t e nodes *it s ortest pat cost from so"rce node PRO#RAM: 6incl"de7stdio. 8 6incl"de7conio. 8 int a<)=<)=:n:i:I@ !oid main9> ? !oid #etdata9>@ !oid s ortest9>@ !oid display9>@ clrscr9>@ printf9CDnDn %RO1RAM TO KIND S2ORTEST %AT2 UETNEEN TNO NODESDnC>@ #etdata9>@ s ortest9>@ display9>@ #etc 9>@ E !oid #etdata9> ? clrscr9>@ printf9CDnDnENTER T2E NFMUER OK 2OST IN T2E 1RA%2DnC>@ scanf9CGdC:Rn>@ printf9CDnDnIK T2ERE IS NO DIRE$T %AT2 DnC>@ printf9C DnDnASSI1N T2E 2I12EST DISTAN$E VA0FE 1OOO DnC>@ for9iBO@i7n@iSS> ? a<i=<I=BO@ for9IBO@I7n@ISS> ? if9iABI> ? printf9CDnDnENTER T2E DISTAN$E UETNENN 9Gd: Gd>: C:iS1:IS1>@ scanf9CGdC:Ra<i=<I=>@ if9a<i=<I=BBO> a<i=<I=B1OOO@ E

E E E !oid s ortest9> ? int i:I:'@ for9'BO@'7n@'SS> for9iBO@i7n@iSS> for9IBO@I7n@ISS> ? if9a<i=<'=Sa<'=<I=7a<i=<I=> a<i=<I=Ba<i=<'=Sa<'=<I=@ E E !oid display9> ? int i:I@ for9iBO@i7n@iSS> for9IBO@I7n@ISS> if9iABI> ? printf9CDn S2ORTEST %AT2 IS : 9Gd:Gd>++GdDnC:iS1:IS1:a<i=<I=>@ E #etc 9>@ E RESULT: T "s t e a,o!e pro#ram to sim"late t e Implementin# Ro"tin# %rotocols "sin# open s ortest pat first 9OS%K> *as e3ec"ted and s"ccessf"lly

E* NO : 6 S17.8 !9 UDP :3$9!$'&/23 I/1$!.721-!/ Most net*or' #ames "se t e Fser Data#ram %rotocol 9FD%> as t e "nderlyin# transport protocol. T e Transport $ontrol %rotocol 9T$%>: * ic is * at most Internet traffic relies on: is a relia,le connection+oriented protocol t at allo*s datastreams comin# from a mac ine connected to t e Internet to ,e recei!ed *it o"t error ,y any ot er mac ine on t e Internet. FD% o*e!er: is an "nrelia,le connectionless protocol t at does not

#"arantee acc"rate or "nd"plicated deli!ery of data. W;8 .! %&'3< 7<3 UDP= T$% as pro!ed too comple3 and too slo* to s"stain real+time #ame+play. FD% allo*s #amin# application pro#rams to send messa#es to ot er pro#rams *it t e minim"m of protocol mec anism. 1ames do not rely "pon ordered relia,le deli!ery of data streams. N at is more important to #amin# applications is t e prompt deli!ery of data. FD% allo*s applications to send I% data#rams to ot er applications *it o"t a!in# to esta,lis a connection and t an a!in# to release it later: * ic increases t e speed of comm"nication. FD% is descri,ed in RK$ 4.5. T e FD% se#ment s o*n a,o!e consists of an 5+,yte eader follo*ed ,y t e data octets. F-3,.< T e so"rce and destination ports identify t e end points *it in t e so"rce and destination mac ines. T e so"rce port indicates t e port of t e sendin# process and "nless ot er*ise stated it is t e port to * ic a reply s o"ld ,e sent to. A Lero is inserted into it if it is not "sed. T e FD% 0en#t field s o*s t e len#t of t e data#ram in octets. It incl"des t e 5+,yte eader and t e data to ,e sent. T e FD% c ec's"m field contains t e FD% eader: FD% data and t e pse"do+ eader s o*n a,o!e. T e pse"do+ eader contains t e (&+,it I% addresses of t e so"rce and destination mac ines: t e FD% protocol n"m,er and t e ,yte co"nt for t e FD% se#ment. T e pse"do+ eader elps to find "ndeli!ered pac'ets or pac'ets t at arri!e at t e *ron# address. 2o*e!er t e pse"do+ eader !iolates t e protocol ierarc y ,eca"se t e I% addresses * ic are "sed in it ,elon# to t e I% layer and not to t e FD% layer. UDP L&13/28 N ile T$% implements a form of flo* control to stop t e net*or' from floodin# t ere is no s"c concept in FD%. T is is ,eca"se FD% does not rely on ac'no*led#ements to si#nal s"ccessf"l deli!ery of data. %ac'ets are simply transmitted one after anot er *it complete disre#ard to e!ent of t e recei!er ,ein# flooded. T;3 399321< !9 UDP As mentioned ,efore t e maIority of t e traffic on t e Internet relies on T$%. Nit t e e3plosi!e increase in t e amo"nt of #amin# ta'in# place on t e Internet: and *it most of t ese #ames "sin# FD%: t ere are concerns a,o"t t e effects t at FD% *ill a!e on T$% traffic. A st"dy carried o"t in t e Fni!ersity of Nai'ato in Ne* Vealand s"##ests t at FD% traffic as a ne#ati!e effect on T$% t ro"# p"t. FD% is no* seen as ,ein# a##ressi!e to 'network friendly applications deploying adaptive congestion control' . N ile T$% implements a form of flo* control to stop t e net*or' from floodin# t ere is no s"c concept in FD%. T is is ,eca"se FD% does not rely on ac'no*led#ements to si#nal s"ccessf"l deli!ery of data. %ac'ets are simply transmitted one after anot er *it complete disre#ard to e!ent of t e recei!er ,ein# flooded. FD% affects T$% t ro"# p"t in m"c t e same *ay as di#itiLed speec o!er I% does. T e st"dy s o*s t at FD% ,e a!es in m"c t e same *ay re#ardless of * at application is r"nnin# it. FD% Uroadcast Kloodin# A broadcast is a data pac'et t at is destined for m"ltiple osts. Uroadcasts can occ"r at t e data lin' layer and t e net*or' layer. Data+lin' ,roadcasts are sent to all osts attac ed to a partic"lar p ysical net*or'. Net*or' layer ,roadcasts are sent to all osts

attac ed to a partic"lar lo#ical net*or'. T e Transmission $ontrol %rotocol/Internet %rotocol 9T$%/I%> s"pports t e follo*in# types of ,roadcast pac'ets: W All onesXUy settin# t e ,roadcast address to all ones 9&)).&)).&)).&))>: all osts on t e net*or' recei!e t e ,roadcast. W NetworkXUy settin# t e ,roadcast address to a specific net*or' n"m,er in t e net*or' portion of t e I% address and settin# all ones in t e ost portion of t e ,roadcast address: all osts on t e specified net*or' recei!e t e ,roadcast. Kor e3ample: * en a ,roadcast pac'et is sent *it t e ,roadcast address of 1(1.1O5.&)).&)): all osts on net*or' n"m,er 1(1.1O5 recei!e t e ,roadcast. W SubnetXUy settin# t e ,roadcast address to a specific net*or' n"m,er and a specific s",net n"m,er: all osts on t e specified s",net recei!e t e ,roadcast. Kor e3ample: * en a ,roadcast pac'et is set *it t e ,roadcast address of 1(1.1O5.-.&)): all osts on s",net - of net*or' 1(1.1O5 recei!e t e ,roadcast. Ueca"se ,roadcasts are reco#niLed ,y all osts: a si#nificant #oal of ro"ter confi#"ration is to control "nnecessary proliferation of ,roadcast pac'ets. $isco ro"ters s"pport t*o 'inds of ,roadcasts: directed and flooded. A directed ,roadcast is a pac'et sent to a specific net*or' or series of net*or's: * ereas a flooded ,roadcast is a pac'et sent to e!ery net*or'. In I% internet*or's: most ,roadcasts ta'e t e form of Fser Data#ram %rotocol 9FD%> ,roadcasts. Alt o"# c"rrent I% implementations "se a ,roadcast address of all ones: t e first I% implementations "sed a ,roadcast address of all Leros. Many of t e early implementations do not reco#niLe ,roadcast addresses of all ones and fail to respond to t e ,roadcast correctly. Ot er early implementations for*ard ,roadcasts of all ones: * ic ca"ses a serio"s net*or' o!erload 'no*n as a broadcast storm. Implementations t at e3 i,it t ese pro,lems incl"de systems ,ased on !ersions of USD FNIX prior to Version -.(. In t e ,ro'era#e comm"nity: applications "se FD% ,roadcasts to transport mar'et data to t e des'tops of traders on t e tradin# floor. T is case st"dy #i!es e3amples of o* ,ro'era#es a!e implemented ,ot directed and floodin# ,roadcast sc emes in an en!ironment t at consists of $isco ro"ters and S"n *or'stations.. Note t at t e addresses in t is net*or' "se a 1O+,it netmas' of &)).&)).&)).1P&. 6-2 Internet*or'in# $ase St"dies FD% ,roadcasts m"st ,e for*arded from a so"rce se#ment 9Keed net*or'> to many destination se#ments t at are connected red"ndantly. Kinancial mar'et data: pro!ided: for e3ample: ,y Re"ters: enters t e net*or' t ro"# t e S"n *or'stations connected to t e Keed net*or' and is disseminated to t e TI$ ser!ers. T e TI$ ser!ers are S"n *or'stations r"nnin# Te'ne'ron Information $l"ster soft*are. T e S"n *or'stations on t e trader net*or's s",scri,e to t e TI$ ser!ers for t e deli!ery of certain mar'et data: * ic t e TI$ ser!ers deli!er ,y means of FD% ,roadcasts. T e t*o ro"ters in t is net*or' pro!ide red"ndancy so t at if one ro"ter ,ecomes "na!aila,le: t e ot er ro"ter can ass"me t e load of t e failed ro"ter *it o"t inter!ention from an operator. T e connection ,et*een eac ro"ter and t e Keed net*or' is for net*or' administration p"rposes only and does not carry "ser traffic. T*o different approac es can ,e "sed to confi#"re $isco ro"ters for for*ardin# FD% ,roadcast traffic: I% elper addressin# and FD% floodin#. T is case st"dy analyLes t e ad!anta#es and disad!anta#es of eac approac . Ro"ter A Ro"ter U

1.-.)(.5.O 1.-.)(.P.O 1.-.)(.1O.O E1 EO EO E1 TI$ ser!er net*or' 1.-.)(.4.O &OO.&OO.&OO.O Keed Net*or' &OO.&OO.&OO..1 &OO.&OO.&OO..& 1.-.)(.4..1 1.-.)(.4..& 1.-.)(.5..1 1.-.)(.P..1 1.-.)(.1O..1 Trader Net 1 Trader Net & Trader Net ( TI$ TI$ TI$ TI$ 1.-.)(.P..& 1.-.)(.1O..& E- 1.-.)(.5..& E& E( EE& E( FD% Uroadcast Kloodin# I':,3'3/1-/% IP H3,:3$ A..$3<<-/% N!13 Re#ardless of * et er yo" implement I% elper addressin# or FD% floodin#: yo" m"st "se t e -: 9!$0&$.-:$!1!2!, 7.: #lo,al confi#"ration command to ena,le t e FD% for*ardin#. Uy defa"lt: t e -: 9!$0&$.-:$!1!2!, 7.: command ena,les for*ardin# for ports associated *it t e follo*in# protocols: Tri!ial Kile Transfer %rotocol: Domain Name System: Time ser!ice: NetUIOS Name Ser!er: NetUIOS Data#ram Ser!er: Uoot %rotocol: and Terminal Access $ontroller Access $ontrol System. To ena,le for*ardin# for ot er ports: yo" m"st specify t em as ar#"ments to t e -: 9!$0&$.-:$!1!2!, 7.: command. I':,3'3/1-/% IP H3,:3$ A..$3<<-/% I% elper addressin# is a form of static addressin# t at "ses directed ,roadcasts to for*ard local and all+nets ,roadcasts to desired destinations *it in t e internet*or'. To confi#"re elper addressin#: yo" m"st specify t e -: ;3,:3$-&..$3<< command on e!ery interface on e!ery ro"ter t at recei!es a ,roadcast t at needs to ,e for*arded. On Ro"ter A and Ro"ter U: I% elper addresses can ,e confi#"red to mo!e data from t e TI$ ser!er net*or' to t e trader net*or's. I% elper addressin# in not t e optimal sol"tion for t is type of topolo#y ,eca"se eac ro"ter recei!es "nnecessary ,roadcasts from t e ot er ro"ter: I':,3'3/1-/% IP H3,:3$ A..$3<<-/% In t is case: Ro"ter A recei!es eac ,roadcast sent ,y Ro"ter U three times: one for eac se#ment: and Ro"ter U recei!es eac ,roadcast sent ,y Ro"ter A t ree times: one for eac se#ment. N en eac ,roadcast is recei!ed: t e ro"ter m"st analyLe it and determine t at t e ,roadcast does not need to ,e for*arded. As more se#ments are added to t e net*or': t e ro"ters ,ecome o!erloaded *it "nnecessary traffic: * ic m"st ,e analyLed and discarded. N en I% elper addressin# is "sed in t is type of topolo#y: no more t an one ro"ter can

,e confi#"red to for*ard FD% ,roadcasts 9"nless t e recei!in# applications can andle d"plicate ,roadcasts>. T is is ,eca"se d"plicate pac'ets arri!e on t e trader net*or'. T is restriction limits red"ndancy in t e desi#n and can ,e "ndesira,le in some implementations. To send FD% ,roadcasts ,idirectionally in t is type of topolo#y: a second -: ;3,:3$ &..$3<< command m"st ,e applied to e!ery ro"ter interface t at recei!es FD% ,roadcasts. As more se#ments and de!ices are added to t e net*or': more -: ;3,:3$ &..$3<< commands are reM"ired to reac t em: so t e administration of t ese ro"ters ,ecomes more comple3 o!er time. Note: too: t at ,idirectional traffic in t is topolo#y si#nificantly impacts ro"ter performance. Ro"ter A Ro"ter U 1.-.)(.5.O 1.-.)(.P.O 1.-.)(.1O.O E1 EO EO E1 TI$ ser!er net*or' 1.-.)(.4.O &OO.&OO.&OO.O Keed Net*or' &OO.&OO.&OO..1 &OO.&OO.&OO..& 1.-.)(.4..1 1.-.)(.4..& 1.-.)(.5..1 1.-.)(.P..1 1.-.)(.1O..1 Trader Net 1 Trader Net & Trader Net ( TI$ TI$ TI$ TI$ 1.-.)(.P..& 1.-.)(.1O..& E- 1.-.)(.5..& E& E( EE& E( FD% pac'ets FD% Uroadcast Kloodin# I':,3'3/1-/% UDP F,!!.-/% Alt o"# I% elper addressin# is *ell+s"ited to nonred"ndant: nonparallel topolo#ies t at do not reM"ire a mec anism for controllin# ,roadcast loops: in !ie* of t ese dra*,ac's: I% elper addressin# does not *or' *ell in t is topolo#y. To impro!e performance: net*or' desi#ners considered se!eral ot er alternati!es: W Setting the broadcast address on the TIC servers to all ones ( !!" !!" !!" !!# XT is alternati!e *as dismissed ,eca"se t e TI$ ser!ers a!e more t an one interface: ca"sin# TI$ ,roadcasts to ,e sent ,ac' onto t e Keed net*or'. In addition: some *or'station implementations do not allo* all ones ,roadcasts * en m"ltiple interfaces are present. W Setting the broadcast address of the TIC servers to the ma$or net broadcast (%&'"!(")")#XT is alternati!e *as dismissed ,eca"se t e S"n T$%/I% implementation does not allo* t e "se of maIor net ,roadcast addresses * en t e net*or' is s",netted.

W *liminating the subnets and letting the workstations use Address +esolution ,rotocol (A+,# to learn addressesXT is alternati!e *as dismissed ,eca"se t e TI$ ser!ers cannot M"ic'ly learn an alternati!e ro"te in t e e!ent of a primary ro"ter fail"re. Nit alternati!es eliminated: t e net*or' desi#ners t"rned to a simpler implementation t at s"pports red"ndancy *it o"t d"plicatin# pac'ets and t at ens"res fast con!er#ence and minimal loss of data * en a ro"ter fails: FD% floodin#. I':,3'3/1-/% UDP F,!!.-/% FD% floodin# "ses t e spannin# tree al#orit m to for*ard pac'ets in a controlled manner. Urid#in# is ena,led on eac ro"ter interface for t e sole p"rpose of ,"ildin# t e spannin# tree. T e spannin# tree pre!ents loops ,y stoppin# a ,roadcast from ,ein# for*arded o"t an interface on * ic t e ,roadcast *as recei!ed. T e spannin# tree also pre!ents pac'et d"plication ,y placin# certain interfaces in t e ,loc'ed state 9so t at no pac'ets are for*arded> and ot er interfaces in t e for*ardin# state 9so t at pac'ets t at need to ,e for*arded are for*arded>. To ena,le FD% floodin#: t e ro"ter m"st ,e r"nnin# soft*are t at s"pports transparent ,rid#in# and ,rid#in# m"st ,e confi#"red on eac interface t at is to participate in t e floodin#. If ,rid#in# is not confi#"red for an interface: t e interface *ill recei!e ,roadcasts: ,"t t e ro"ter *ill not for*ard t ose ,roadcasts and *ill not "se t at interface as a destination for sendin# ,roadcasts recei!ed on a different interface. N!13 Releases prior to $isco Internet*or' Operatin# System 9$isco IOS> Soft*are Release 1O.& do not s"pport floodin# s",net ,roadcasts. N en confi#"red for F%D floodin#: t e ro"ter "ses t e destination address specified ,y t e -: >$!&.2&<1-&..$3<< command on t e o"tp"t interface to assi#n a destination address to a flooded FD% data#ram. T "s: t e destination address mi# t c an#e as t e data#ram propa#ates t ro"# t e net*or'. T e so"rce address: o*e!er: does not c an#e. Nit FD% floodin#: ,ot ro"ters "se a spannin# tree to control t e net*or' topolo#y for t e p"rpose of for*ardin# ,roadcasts. T e 'ey commands for ena,lin# FD% floodin# are as follo*s: ,rid#e group protocol protocolip for*ard+protocol spannin# tree ,rid#e+#ro"p group inp"t+type+list access-list-number I':,3'3/1-/% UDP F,!!.-/% 6-6 Internet*or'in# $ase St"dies T e >$-.%3 :$!1!2!, command can specify eit er t e .32 'ey*ord 9for t e DE$ spannin#+tree protocol> or t e -333 'ey*ord 9for t e IEEE Et ernet protocol>. All ro"ters in t e net*or' m"st ena,le t e same spannin# tree protocol. T e -: 9!$0&$.-:$!1!2!, <:&//-/% 1$33 command "ses t e data,ase created ,y t e >$-.%3 :$!1!2!, command. Only one ,roadcast pac'et arri!es at eac se#ment: and FD% ,roadcasts can tra!erse t e net*or' in ,ot directions. N!13 Ueca"se ,rid#in# is ena,led only to ,"ild t e spannin# tree data,ase: "se access lists to pre!ent t e spannin# tree from for*ardin# non+FD% traffic. T e confi#"ration e3amples later in t is c apter confi#"re an access list t at ,loc's all ,rid#ed pac'ets. To determine * ic interface for*ards or ,loc's pac'ets: t e ro"ter confi#"ration

specifies a pat cost for eac interface. T e defa"lt pat cost for Et ernet is 1OO. Settin# t e pat cost for eac interface on Ro"ter U to )O ca"ses t e spannin# tree al#orit m to place t e interfaces in Ro"ter U in for*ardin# state. 1i!en t e i# er pat cost 91OO> for t e interfaces in Ro"ter A: t e interfaces in Ro"ter A are in t e ,loc'ed state and do not for*ard t e ,roadcasts. Nit t ese interface states: ,roadcast traffic flo*s t ro"# Ro"ter U. If Ro"ter U fails: t e spannin# tree al#orit m *ill place t e interfaces in Ro"ter A in t e for*ardin# state: and Ro"ter A *ill for*ard ,roadcast traffic. Nit one ro"ter for*ardin# ,roadcast traffic from t e TI$ ser!er net*or' to t e trader net*or's: it is desira,le to a!e t e ot er for*ard "ncast traffic. Kor t at reason: eac ro"ter ena,les t e I$M% Ro"ter Disco!ery %rotocol 9IRD%>: and eac *or'station on t e trader net*or's r"ns t e -$.: daemon. On Ro"ter A: t e :$393$3/23 'ey*ord sets a i# er IRD% preference t an does t e confi#"ration for Ro"ter U: * ic ca"ses eac -$.: daemon to "se Ro"ter A as its preferred defa"lt #ate*ay for "nicast traffic for*ardin#. Fsers of t ose *or'stations can "se /31<1&1 -$/ to see o* t e ro"ters are ,ein# "sed. On t e ro"ters: t e ;!,.1-'3: '& &.43$1-/13$4&,: and '-/&.43$1-/13$4&, 'ey*ords red"ce t e ad!ertisin# inter!al from t e defa"lt so t at t e -$.: daemons r"nnin# on t e osts e3pect to see ad!ertisements more freM"ently. Nit t e ad!ertisin# inter!al red"ced: t e *or'stations *ill adopt Ro"ter U more M"ic'ly if Ro"ter A ,ecomes "na!aila,le. Nit t is confi#"ration: * en a ro"ter ,ecomes "na!aila,le: IRD% offers a con!er#ence time of less t an one min"te. IRD% is preferred o!er t e Ro"tin# Information %rotocol 9RI%> and defa"lt #ate*ays for t e follo*in# reasons: W RI% ta'es lon#er to con!er#e: typically from one to t*o min"tes. W $onfi#"ration of Ro"ter A as t e defa"lt #ate*ay on eac S"n *or'station on t e trader net*or's *o"ld allo* t ose S"n *or'stations to send "nicast traffic to Ro"ter A: ,"t *o"ld not pro!ide an alternati!e ro"te if Ro"ter A ,ecomes "na!aila,le. N!13 Some *or'station !endors incl"de an -$.: daemon *it t eir operatin# systems. So"rce code for an -$.: daemon is a!aila,le ,y anonymo"s KT% at ftp"cisco"com. Ki#"re .+( s o*s o* data flo*s * en t e net*or' is confi#"red for FD% floodin#. FD% Uroadcast Kloodin# 6-7 I':,3'3/1-/% UDP F,!!.-/% N!13 T is topolo#y is ,roadcast intensi!eX,roadcasts sometimes cons"me &O percent of t e Et ernet ,and*idt . 2o*e!er: t is is a fa!ora,le percenta#e * en compared to t e confi#"ration of I% elper addressin#: * ic : in t e same net*or': ca"ses ,roadcasts to cons"me "p to )O percent of t e Et ernet ,and*idt . If t e osts on t e trader net*or's do not s"pport IRD%: t e 2ot Stand,y Ro"tin# %rotocol 92SR%> can ,e "sed to select * ic ro"ter *ill andle "nicast traffic. 2SR% allo*s t e stand,y ro"ter to ta'e o!er M"ic'ly if t e primary ro"ter ,ecomes "na!aila,le. Kor information a,o"t confi#"rin# 2SR%: t e follo*in# command: ip for*ard+protocol t"r,o+flood Ro"ter A Ro"ter U 1.-.)(.5.O 1.-.)(.P.O 1.-.)(.1O.O E1

EO EO E1 TI$ ser!er net*or' 1.-.)(.4.O &OO.&OO.&OO.O Keed Net*or' &OO.&OO.&OO..1 &OO.&OO.&OO..& 1.-.)(.4..1 1.-.)(.4..& 1.-.)(.5..1 1.-.)(.P..1 1.-.)(.1O..1 Trader Net 1 Trader Net & Trader Net ( TI$ TI$ TI$ TI$ 1.-.)(.P..& 1.-.)(.1O..& E- 1.-.)(.5..& E& E( EE& E( Fnicast pac'ets FD% pac'ets I':,3'3/1-/% UDP F,!!.-/% 6-5 Internet*or'in# $ase St"dies N!13 T"r,o floodin# increases t e amo"nt of processin# t at is done at interr"pt le!el: * ic increases t e $%F load on t e ro"ter. T"r,o floodin# may not ,e appropriate on ro"ters t at are already "nder i# $%F load or t at m"st also perform ot er $%Fintensi!e acti!ities. T e follo*in# commands confi#"re FD% floodin# on Ro"ter A. Ueca"se t is confi#"ration does not specify a lo*er pat cost t an t e defa"lt and ,eca"se t e confi#"ration of Ro"ter U specifies a lo*er cost t an t e defa"lt *it re#ard to FD% floodin#: Ro"ter A acts as a ,ac'"p to Ro"ter U. Ueca"se t is confi#"ration specifies an IRD% preference of 1OO and ,eca"se Ro"ter U specifies a IRD% preference of PO 9-: -$.: :$393$3/23 60>: Ro"ter A for*ards "nicast traffic from t e trader net*or's: and Ro"ter U is t e ,ac'"p for "nicast traffic for*ardin#. ARo"ter A: ip for*ard+protocol spannin#+tree ip for*ard+protocol "dp 111 ip for*ard+protocol "dp (OO1 ip for*ard+protocol "dp (OO& ip for*ard+protocol "dp (OO( ip for*ard+protocol "dp (OOip for*ard+protocol "dp (OO) ip for*ard+protocol "dp (OO. ip for*ard+protocol "dp )O&O ip for*ard+protocol "dp )O&1 ip for*ard+protocol "dp )O(O ip for*ard+protocol "dp )OO&

ip for*ard+protocol "dp 1O&4 ip for*ard+protocol "dp .)4 A interface et ernet O ip address &OO.&OO.&OO..1 &)).&)).&)).O ip ,roadcast+address &OO.&OO.&OO.&)) no mop ena,led A interface et ernet 1 ip address 1.-.)(.4..1 &)).&)).&)).1P& ip ,roadcast+address 1.-.)(.4..( ip irdp ip irdp ma3ad!ertinter!al .O ip irdp minad!ertinter!al -) ip irdp oldtime .O ip irdp preference 1OO ,rid#e+#ro"p 1 ,rid#e+#ro"p 1 inp"t+type+list &O1 no mop ena,led A interface et ernet & ip address 1.-.)(.5..1 &)).&)).&)).1P& ip ,roadcast+address 1.-.)(.5..( ip irdp ip irdp ma3ad!ertinter!al .O ip irdp minad!ertinter!al -) ip irdp oldtime .O ip irdp preference 1OO ,rid#e+#ro"p 1 ,rid#e+#ro"p 1 inp"t+type+list &O1 no mop ena,led A interface et ernet ( ip address 1.-.)(.P..1 &)).&)).&)).1P& ip ,roadcast+address 1.-.)(.P..( ip irdp ip irdp ma3ad!ertinter!al .O FD% Uroadcast Kloodin# 6-6 I':,3'3/1-/% UDP F,!!.-/% ip irdp minad!ertinter!al -) ip irdp oldtime .O ip irdp preference 1OO ,rid#e+#ro"p 1 ,rid#e+#ro"p 1 inp"t+type+list &O1 no mop ena,led A

interface et ernet ip address 1.-.)(.1O..1 &)).&)).&)).1P& ip ,roadcast+address 1.-.)(.1O..( ip irdp ip irdp ma3ad!ertinter!al .O ip irdp minad!ertinter!al -) ip irdp oldtime .O ip irdp preference 1OO ,rid#e+#ro"p 1 ,rid#e+#ro"p 1 inp"t+type+list &O1 no mop ena,led A ro"ter i#rp 1 net*or' 1.-.)(.O.O A ip name+ser!er &)).&)).&)).&)) snmp+ser!er comm"nity p",lic RN snmp+ser!er ost 1.-.)(.4.1) p",lic ,rid#e 1 protocol dec ,rid#e 1 priority &)) access+list &O1 deny O3KKKK O3OOOO T e follo*in# commands confi#"re FD% floodin# on Ro"ter U. Ueca"se t is confi#"ration specifies a lo*er pat cost t an t e defa"lt 9>$-.%3-%$!7: " :&1;-2!<1 +0> and ,eca"se t e confi#"ration of Ro"ter A accepts t e defa"lt: Ro"ter U for*ards FD% pac'ets. Ueca"se t is confi#"ration specifies an IRD% preference of PO 9-: -$.: :$393$3/23 60> and ,eca"se Ro"ter A specifies a IRD% preference of 1OO: Ro"ter U acts as t e ,ac'"p for Ro"ter A for for*ardin# "nicast traffic from t e trader net*or's. ARo"ter U ip for*ard+protocol spannin#+tree ip for*ard+protocol "dp 111 ip for*ard+protocol "dp (OO1 ip for*ard+protocol "dp (OO& ip for*ard+protocol "dp (OO( ip for*ard+protocol "dp (OOip for*ard+protocol "dp (OO) ip for*ard+protocol "dp (OO. ip for*ard+protocol "dp )O&O ip for*ard+protocol "dp )O&1 ip for*ard+protocol "dp )O(O ip for*ard+protocol "dp )OO& ip for*ard+protocol "dp 1O&4 ip for*ard+protocol "dp .)4 A interface et ernet O ip address &OO.&OO.&OO..& &)).&)).&)).O ip ,roadcast+address &OO.&OO.&OO.&))

no mop ena,led A interface et ernet 1 ip address 1.-.)(.4..& &)).&)).&)).1P& ip ,roadcast+address 1.-.)(.4..( ip irdp ip irdp ma3ad!ertinter!al .O ip irdp minad!ertinter!al -) ip irdp oldtime .O I':,3'3/1-/% UDP F,!!.-/% 6-"0 Internet*or'in# $ase St"dies ip irdp preference PO ,rid#e+#ro"p 1 ,rid#e+#ro"p 1 pat +cost )O ,rid#e+#ro"p 1 inp"t+type+list &O1 no mop ena,led A interface et ernet & ip address 1.-.)(.5..& &)).&)).&)).1P& ip ,roadcast+address 1.-.)(.5..( ip irdp ip irdp ma3ad!ertinter!al .O ip irdp minad!ertinter!al -) ip irdp oldtime .O ip irdp preference PO ,rid#e+#ro"p 1 ,rid#e+#ro"p 1 pat +cost )O ,rid#e+#ro"p 1 inp"t+type+list &O1 no mop ena,led A interface et ernet ( ip address 1.-.)(.P..& &)).&)).&)).1P& ip ,roadcast+address 1.-.)(.P..( ip irdp ip irdp ma3ad!ertinter!al .O ip irdp minad!ertinter!al -) ip irdp oldtime .O ip irdp preference PO ,rid#e+#ro"p 1 ,rid#e+#ro"p 1 pat +cost )O ,rid#e+#ro"p 1 inp"t+type+list &O1 no mop ena,led A interface et ernet ip address 1.-.)(.1O..& &)).&)).&)).1P& ip ,roadcast+address 1.-.)(.1O..(

ip irdp ip irdp ma3ad!ertinter!al .O ip irdp minad!ertinter!al -) ip irdp oldtime .O ip irdp preference PO ,rid#e+#ro"p 1 ,rid#e+#ro"p 1 pat +cost )O ,rid#e+#ro"p 1 inp"t+type+list &O1 no mop ena,led A ro"ter i#rp 1 net*or' 1.-.)(.O.O A ip name+ser!er &)).&)).&)).&)) snmp+ser!er comm"nity p",lic RN snmp+ser!er ost 1.-.)(.4.1) p",lic ,rid#e 1 protocol dec ,rid#e 1 priority &)) access+list &O1 deny O3KKKK O3OOOO E* NO : "0 S17.8 !9 TCP :3$9!$'&/23 I/1$!.721-!/ : T e Transmission Control ,rotocol 9T$%> and t e Fser Data#ram %rotocol 9FD%> are ,ot I% transport+layer protocols. FD% is a li# t*ei# t protocol t at allo*s applications to ma'e direct "se of t e "nrelia,le data#ram ser!ice pro!ided ,y t e "nderlyin# I% ser!ice. FD% is commonly "sed to s"pport applications t at "se simple M"ery/response transactions: or applications t at s"pport real+time comm"nications. T$% pro!ides a relia,le data+transfer ser!ice: and is "sed for ,ot ,"l' data transfer and interacti!e data applications. T$% is t e maIor transport protocol in "se in most I% net*or's: and s"pports t e transfer of o!er PO percent of all traffic across t e p",lic Internet today. 1i!en t is maIor role for T$%: t e performance of t is protocol forms a si#nificant part of t e total pict"re of ser!ice performance for I% net*or's. In t is article *e e3amine T$% in f"rt er detail: loo'in# at * at ma'es a T$% session perform relia,ly and *ell. T is article dra*s on material p",lis ed in t e Internet ,erformance Survival .uide <1=. O!er!ie* of T$% T$% is t e em,odiment of relia,le end+to+end transmission f"nctionality in t e o!erall Internet arc itect"re. All t e f"nctionality reM"ired to ta'e a simple ,ase of I% data#ram deli!ery and ,"ild "pon t is a control model t at implements relia,ility: seM"encin#: flo* control: and data streamin# is em,edded *it in T$% <&=. T$% pro!ides a comm"nication c annel ,et*een processes on eac ost system. T e c annel is relia,le: f"ll+d"ple3: and streamin#. To ac ie!e t is f"nctionality: t e T$% dri!ers ,rea' "p t e session data stream into discrete se#ments: and attac a T$% eader to eac se#ment. An I% eader is attac ed to t is T$% pac'et: and t e composite pac'et is t en passed to t e net*or' for deli!ery. T is T$% eader as n"mero"s fields t at are "sed to s"pport t e intended T$% f"nctionality. T$% as t e follo*in# f"nctional c aracteristics: /nicast protocol : T$% is ,ased on a "nicast net*or' model: and s"pports data

e3c an#e ,et*een precisely t*o parties. It does not s"pport ,roadcast or m"lticast net*or' models. Connection state : Rat er t an impose a state *it in t e net*or' to s"pport t e connection: T$% "ses sync roniLed state ,et*een t e t*o endpoints. T is sync roniLed state is set "p as part of an initial connection process: so T$% can ,e re#arded as a connection+oriented protocol. M"c of t e protocol desi#n is intended to ens"re t at eac local state transition is comm"nicated to: and ac'no*led#ed ,y: t e remote party. +eliable : Relia,ility implies t at t e stream of octets passed to t e T$% dri!er at one end of t e connection *ill ,e transmitted across t e net*or' so t at t e stream is presented to t e remote process as t e same seM"ence of octets: in t e same order as t at #enerated ,y t e sender. T is implies t at t e protocol detects * en se#ments of t e data stream a!e ,een discarded ,y t e net*or': reordered: d"plicated: or corr"pted. N ere necessary: t e sender *ill retransmit dama#ed se#ments so as to allo* t e recei!er to reconstr"ct t e ori#inal data stream. T is implies t at a T$% sender m"st maintain a local copy of all transmitted data "ntil it recei!es an indication t at t e recei!er as completed an acc"rate transfer of t e data. 0ull duple1 : T$% is a f"ll+d"ple3 protocol@ it allo*s ,ot parties to send and recei!e data *it in t e conte3t of t e sin#le T$% connection. Streaming : Alt o"# T$% "ses a pac'et str"ct"re for net*or' transmission: T$% is a tr"e streamin# protocol: and application+le!el net*or' operations are not transparent. Some protocols e3plicitly encaps"late eac application transaction@ for e!ery write : t ere m"st ,e a matc in# read . In t is manner: t e applicationderi!ed se#mentation of t e data stream into a lo#ical record str"ct"re is preser!ed across t e net*or'. T$% does not preser!e s"c an implicit str"ct"re imposed on t e data stream: so t at t ere is no pairin# ,et*een write and read operations *it in t e net*or' protocol. Kor e3ample: a T$% application may write t ree data ,loc's in seM"ence into t e net*or' connection: * ic may ,e collected ,y t e remote reader in a sin#le read operation. T e siLe of t e data ,loc's 9se#ments> "sed in a T$% session is ne#otiated at t e start of t e session. T e sender attempts to "se t e lar#est se#ment siLe it can for t e data transfer: *it in t e constraints of t e ma3im"m se#ment siLe of t e recei!er: t e ma3im"m se#ment siLe of t e confi#"red sender: and t e ma3i+m"m s"pporta,le nonfra#mented pac'et siLe of t e net*or' pat 9pat 2a1imum Transmission /nit <MTF=>. T e pat MTF is refres ed periodically to adI"st to any c an#es t at may occ"r *it in t e net*or' * ile t e T$% connection is acti!e. +ate adaptation : T$% is also a rate+adapti!e protocol: in t at t e rate of data transfer is intended to adapt to t e pre!ailin# load conditions *it in t e net*or' and adapt to t e processin# capacity of t e recei!er. T ere is no predetermined T$% data+transfer rate@ if t e net*or' and t e recei!er ,ot a!e additional a!aila,le capacity: a T$% sender *ill attempt to inIect more data into t e net*or' to ta'e "p t is a!aila,le space. $on!ersely: if t ere is con#estion: a T$% sender *ill red"ce its sendin# rate to allo* t e net*or' to reco!er. T is adaptation

f"nction attempts to ac ie!e t e i# est possi,le data+transfer rate *it o"t tri##erin# consistent data loss. T e T$% %rotocal 2eader T e T$% eader str"ct"re: s o*n in Ki#"re 1: "ses a pair of 1.+,it so"rce and destination %ort addresses. T e ne3t field is a (&+,it seM"ence n"m,er: * ic identifies t e seM"ence n"m,er of t e first data octet in t is pac'et. T e seM"ence n"m,er does not start at an initial !al"e of 1 for eac ne* T$% connection@ t e selection of an initial !al"e is critical: ,eca"se t e initial !al"e is intended to pre!ent delayed data from an old connection from ,ein# incorrectly interpreted as ,ein# !alid *it in a c"rrent connection. T e seM"ence n"m,er is necessary to ens"re t at arri!in# pac'ets can ,e ordered in t e senderYs ori#inal order. T is field is also "sed *it in t e flo*+control str"ct"re to allo* t e association of a data pac'et *it its correspondin# ac'no*led#ement: allo*in# a sender to estimate t e c"rrent ro"nd+trip time across t e net*or'. Ki#"re 1: T e T$%/I% Data#ram ;Note:$lic' a,o!e for lar#er !ie* T e acknowledgment se3uence number is "sed to inform t e remote end of t e data t at as ,een s"ccessf"lly recei!ed. T e ac'no*led#ment seM"ence n"m,er is act"ally one #reater t an t at of t e last octet correctly recei!ed at t e local end of t e connection. T e data offset field indicates t e n"m,er of fo"r+octet *ords *it in t e T$% eader. Si3 sin#le bit flags are "sed to indicate !ario"s conditions. FR1 is "sed to indicate * et er t e "r#ent pointer is !alid. A$J is "sed to indicate * et er t e acknowledgment field is !alid. %S2 is set * en t e sender *ants t e remote application to p"s t is data to t e remote application. RST is "sed to reset t e connection. SZN 9for synchroni4e > is "sed *it in t e connection start"p p ase: and KIN 9for finish > is "sed to close t e connection in an orderly fas ion. T e window field is a 1.+,it co"nt of a!aila,le ,"ffer space. It is added to t e ac'no*led#ment seM"ence n"m,er to indicate t e i# est seM"ence n"m,er t e recei!er can accept. T e T$% checksum is applied to a synt esiLed eader t at incl"des t e so"rce and destination addresses from t e o"ter I% data#ram. T e final field in t e T$% eader is t e "r#ent pointer: * ic : * en added to t e seM"ence n"m,er: indicates t e seM"ence n"m,er of t e final octet of "r#ent data if t e "r#ent fla# is set. Many options can ,e carried in a T$% eader. T ose rele!ant to T$% performance incl"de: 2a1imum-receive-segment-si4e option : T is option is "sed * en t e connection is ,ein# opened. It is intended to inform t e remote end of t e ma3im"m se#ment siLe: meas"red in octets: t at t e sender is *illin# to recei!e on t e T$% connection. T is option is "sed only in t e initial SZN pac'et 9t e initial pac'et e3c an#e t at opens a T$% connection>. It sets ,ot t e ma3im"m recei!e se#ment siLe and t e ma3im"m siLe of t e ad!ertised T$% *indo*: passed to t e remote end of t e connection. In a ro,"st implementation of T$%: t is option s o"ld ,e "sed *it pat MTF disco!ery to esta,lis a se#ment siLe t at can ,e passed across t e connection *it o"t fra#mentation: an essential attri,"te of a i# +performance data flo*. 5indow-scale option : T is option is intended to address t e iss"e of t e ma3im"m *indo* siLe in t e face of pat s t at e3 i,it a i# +delay ,and*idt

prod"ct. T is option allo*s t e *indo* siLe ad!ertisement to ,e ri# t+s ifted ,y t e amo"nt specified 9in ,inary arit metic: a ri# t+s ift corresponds to a m"ltiplication ,y &>. Nit o"t t is option: t e ma3im"m *indo* siLe t at can ,e ad!ertised is .):)() ,ytes 9t e ma3im"m !al"e o,taina,le in a 1.+,it field>. T e limit of T$% transfer speed is effecti!ely one *indo* siLe in transit ,et*een t e sender and t e recei!er. Kor i# +speed: lon#+delay net*or's: t is performance limitation is a si#nificant factor: ,eca"se it limits t e transfer rate to at most .):)() ,ytes per ro"nd+trip inter!al: re#ardless of a!aila,le net*or' capacity. Fse of t e *indo*+scale option allo*s t e T$% sender to effecti!ely adapt to i# ,and+ *idt : i# +delay net*or' pat s: ,y allo*in# more data to ,e eld in fli# t. T e ma3im"m *indo* siLe *it t is option is & (O ,ytes. T is option is ne#otiated at t e start of t e T$% connection: and can ,e sent in a pac'et only *it t e SZN fla#. Note t at * ile an MTF disco!ery process allo*s optimal settin# of t e ma3im"m+recei!e+se#ment+siLe option: no correspondin# ,and*idt delay prod"ct disco!ery allo*s t e relia,le a"tomated settin# of t e *indo*+scale option <(=. SA$J+permitted option and SA$J option : T is option alters t e ac'no*led#ment ,e a!ior of T$%. SA$J is an acronym for selective acknowledgment . T e SA$J+permitted option is offered to t e remote end d"rin# T$% set"p as an option to an openin# SZN pac'et. T e SA$J option permits selecti!e ac'no*led#ment of permitted data. T e defa"lt T$% ac'no*led#ment ,e a!ior is to ac'no*led#e t e i# est seM"ence n"m,er of inorder ,ytes. T is defa"lt ,e a!ior is prone to ca"se "nnecessary retransmission of data: * ic can e3acer,ate a con#estion condition t at may a!e ,een t e ca"se of t e ori#inal pac'et loss. T e SA$J option allo*s t e recei!er to modify t e ac'no*led#ment field to descri,e noncontin"o"s ,loc's of recei!ed data: so t at t e sender can retransmit only * at is missin# at t e recei!er[s end <-=. Any ro,"st i# +performance implementation of T$% s o"ld ne#otiate t ese parameters at t e start of t e T$% session: ens"rin# t e follo*in#: t at t e session is "sin# t e lar#est possi,le I% pac'et siLe t at can ,e carried *it o"t fra#mentation: t at t e *indo* siLes "sed in t e transfer are adeM"ate for t e ,and*idt +delay prod"ct of t e net*or' pat : and t at selecti!e ac'no*led#ment can ,e "sed for rapid reco!ery from line+error conditions or from s ort periods of mar#inally de#raded net*or' performance. T$% Operation T e first p ase of a T$% session is esta,lis ment of t e connection. T is reM"ires a t ree*ay ands a'e: ens"rin# t at ,ot sides of t e connection a!e an "nam,i#"o"s "nderstandin# of t e seM"ence n"m,er space of t e remote side for t is session. T e operation of t e connection is as follo*s: T e local system sends t e remote end an initial seM"ence n"m,er to t e remote port: "sin# a SZN pac'et. T e remote system responds *it an A$J of t e initial seM"ence n"m,er and t e initial seM"ence n"m,er of t e remote end in a response SZN pac'et. T e local end responds *it an A$J of t is remote seM"ence n"m,er. T e connection is opened. T e operation of t is al#orit m is s o*n in Ki#"re &. T e performance implication of t is protocol e3c an#e is t at it ta'es one and a alf round-trip times 9RTTs> for t e t*o

systems to sync roniLe state ,efore any data can ,e sent. Ki#"re & : T$% $onnection 2ands a'e ;Note:$lic' a,o!e for lar#er !ie* After t e connection as ,een esta,lis ed: t e T$% protocol mana#es t e relia,le e3c an#e of data ,et*een t e t*o systems. T e al#orit ms t at determine t e !ario"s retransmission timers a!e ,een redefined n"mero"s times. T$% is a slidin#+*indo* protocol: and t e #eneral principle of flo* control is ,ased on t e mana#ement of t e ad!ertised *indo* siLe and t e mana#ement of retransmission timeo"ts: attemptin# to optimiLe protocol performance *it in t e o,ser!ed delay and loss parameters of t e connection. T"nin# a T$% protocol stac' for optimal performance o!er a !ery lo*+delay: i# +,and*idt 0AN reM"ires different settin#s to o,tain optimal performance o!er a dial"p Internet connection: * ic in t"rn is different for t e reM"irements of a i# +speed *ide+area net*or'. Alt o"# T$% attempts to disco!er t e delay ,and*idt prod"ct of t e connection: and attempts to a"tomatically optimiLe its flo* rates *it in t e estimated parameters of t e net*or' pat : some estimates *ill not ,e acc"rate: and t e correspondin# efforts ,y T$% to optimiLe ,e a!ior may not ,e completely s"ccessf"l. Anot er critical aspect is t at T$% is an adapti!e flo*+control protocol. T$% "ses a ,asic flo*+control al#orit m of increasin# t e data+flo* rate "ntil t e net*or' si#nals t at some form of sat"ration le!el as ,een reac ed 9normally indicated ,y data loss>. N en t e sender recei!es an indication of data loss: t e T$% flo* rate is red"ced@ * en relia,le transmission is reesta,lis ed: t e flo* rate slo*ly increases a#ain. If no relia,le flo* is reesta,lis ed: t e flo* rate ,ac's f"rt er off to an initial pro,e of a sin#le pac'et: and t e entire adapti!e flo*+control process starts a#ain. T is process as n"mero"s res"lts rele!ant to ser!ice M"ality. Kirst: T$% ,e a!es adaptively : rat er t an predictively . T e flo*+control al#orit ms are intended to increase t e data+flo* rate to fill all a!aila,le net*or' pat capacity: ,"t t ey are also intended to M"ic'ly ,ac' off if t e a!aila,le capacity c an#es ,eca"se of interaction *it ot er traffic: or if a dynamic c an#e occ"rs in t e end+to+end net*or' pat . Kor e3ample: a sin#le T$% flo* across an ot er*ise idle net*or' attempts to fill t e net*or' pat *it data: optimiLin# t e flo* rate *it in t e a!aila,le net*or' capacity. If a second T$% flo* opens "p across t e same pat : t e t*o flo*+control al#orit ms *ill interact so t at ,ot flo*s *ill sta,iliLe to "se appro3imately alf of t e a!aila,le capacity per flo*. T e o,Iecti!e of t e T$% al#orit ms is to adapt so t at t e net*or' is f"lly "sed * ene!er one or more data flo*s are present. In desi#n: tension al*ays e3ists ,et*een t e efficiency of net*or' "se and t e enforcement of predicta,le session performance. Nit T$%: yo" #i!e "p predicta,le t ro"# p"t ,"t #ain a i# ly "tiliLed: efficient net*or'. Interacti!e T$% Interacti!e protocols are typically directed at s"pportin# sin#le c aracter interactions: * ere eac c aracter is carried in a sin#le pac'et: as is its ec o. T e protocol interaction to s"pport t is is indicated in Ki#"re (. Ki#"re (: Interacti!e E3c an#e ;Note:$lic' a,o!e for lar#er !ie* T ese & ,ytes of data #enerate fo"r T$%/I% pac'ets: or 1.O ,ytes of protocol o!er ead. T$% ma'es some small impro!ement in t is e3c an#e t ro"# t e "se of piggybacking : * ere an A$J is carried in t e same pac'et as t e data: and delayed acknowledgment : * ere an A$J is delayed "p to &OO ms ,efore sendin#: to #i!e t e ser!er application t e

opport"nity to #enerate data t at t e A$J can pi##y,ac'. T e res"ltant protocol e3c an#e is indicated in Ki#"re -. Ki#"re -: Intereacti!e E3c an#e *it Delayed A$J ;Note:$lic' a,o!e for lar#er !ie* Kor s ort+delay 0ANs: t is protocol e3c an#e offers accepta,le performance. T is protocol e3c an#e for a sin#le data c aracter and its ec o occ"rs *it in a,o"t 1. ms on an Et ernet 0AN: correspondin# to an interacti!e rate of .O c aracters per second. N en t e net*or' delay is increased in a NAN: t ese small pac'ets can ,e a so"rce of con#estion load. T e T$% mec anism to address t is small+pac'et con#estion *as descri,ed ,y \o n Na#le in RK$ 5P. <)=. $ommonly referred to as t e Nagle Algorithm : t is mec anism in i,its a sender from transmittin# any additional small se#ments * ile t e T$% connection as o"tstandin# "nac'no*led#ed small se#ments. On a 0AN: t is modification to t e al#orit m as a ne#li#i,le effect@ in contrast: on a NAN: it as a dramatic effect in red"cin# t e n"m,er of small pac'ets in direct correlation to t e net*or' pat con#estion le!el 9as s o*n in Ki#"res ) and .>. T e cost is an increase in session Iitter ,y "p to a ro"nd+trip time inter!al. Applications t at are Iitter+sensiti!e typically disa,le t is control al#orit m. Ki#"re ): Nan Interacti!e E3c an#e ;Note:$lic' a,o!e for lar#er !ie* Ki#"re .: Nan Interacti!e E3c an#e *it Na#le Al#orit m ;Note:$lic' a,o!e for lar#er !ie* T$% is not a i# ly efficient protocol for t e transmission of interacti!e traffic. T e typical carria#e efficiency of t e protocol across a 0AN is & ,ytes of payload and 1&O ,ytes of protocol o!er ead. Across a NAN: t e Na#le al#orit m may impro!e t is carria#e efficiency sli# tly ,y increasin# t e n"m,er of ,ytes of payload for eac payload transaction: alt o"# it *ill do so at t e e3pense of increased session Iitter. T$% Vol"me Transfer T e o,Iecti!e for t is application is to ma3imiLe t e efficiency of t e data transfer: implyin# t at T$% s o"ld endea!or to locate t e point of dynamic eM"ili,ri"m of ma3im"m net*or' efficiency: * ere t e sendin# data rate is ma3imiLed I"st prior to t e onset of s"stained pac'et loss. K"rt er increasin# t e sendin# rate from s"c a point *ill r"n t e ris' of #eneratin# a con#estion condition *it in t e net*or': *it rapidly increasin# pac'et+loss le!els. T is: in t"rn: *ill force t e T$% protocol to retransmit t e lost data: res"ltin# in red"ced datatransfer efficiency. On t e ot er and: attemptin# to completely eliminate pac'et+loss rates implies t at t e sender m"st red"ce t e sendin# rate of data into t e net*or' so as not to create transient con#estion conditions alon# t e pat to t e recei!er. S"c an action *ill: in all pro,a,ility: lea!e t e net*or' *it idle capacity: res"ltin# in inefficient "se of a!aila,le net*or' reso"rces. T e notion of a point of eM"ili,ri"m is an important one. T e o,Iecti!e of T$% is to coordinate t e actions of t e sender: t e net*or': and t e recei!er so t at t e net*or' pat as s"fficient data s"c t at t e net*or' is not idle: ,"t it is not so o!erloaded t at a con#estion ,ac'lo# ,"ilds "p and data loss occ"rs. Maintainin# t is point of eM"ili,ri"m reM"ires t e sender and recei!er to ,e sync roniLed so t at t e sender passes a pac'et into t e net*or' at precisely t e same time as t e recei!er remo!es a pac'et from t e net*or'. If t e sender attempts to e3ceed t is eM"ili,ri"m rate: net*or' con#estion *ill

occ"r. If t e sender attempts to red"ce its rate: t e efficiency of t e net*or' *ill drop. T$% "ses a slidin#+*indo* protocol to s"pport ,"l' data transfer 9Ki#"re 4>. Ki#"re 4: T$% Slidin# Nindo* ;Note:$lic' a,o!e for lar#er !ie* T e recei!er ad!ertises to t e sender t e a!aila,le ,"ffer space at t e recei!er. T e sender can transmit "p to t is amo"nt of data ,efore a!in# to a*ait a f"rt er ,"ffer "pdate from t e recei!er. T e sender s o"ld a!e no more t an t is amo"nt of data in transit in t e net*or'. T e sender m"st also ,"ffer sent data "ntil it as ,een A$Jed ,y t e recei!er. T e send *indo* is t e minim"m of t e sender[s ,"ffer siLe and t e ad!ertised recei!er *indo*. Eac time an A$J is recei!ed: t e trailin# ed#e of t e send *indo* is ad!anced. T e minim"m of t e sender[s ,"ffer and t e ad!ertised recei!er[s *indo* is "sed to calc"late a ne* leadin# ed#e. If t is send *indo* encompasses "nsent data: t is data can ,e sent immediately. T e siLe of T$% ,"ffers in eac ost is a critical limitation to performance in NANs. T e protocol is capa,le of transferrin# one send *indo* of data per ro"nd+trip inter!al. Kor e3ample: *it a send *indo* of -OP. ,ytes and a transmission pat *it an RTT of .OO ms: a T$% session is capa,le of s"stainin# a ma3im"m transfer rate of -5 J,ps: re#ardless of t e ,and*idt of t e net*or' pat . Ma3im"m efficiency of t e transfer is o,tained only if t e sender is capa,le of completely fillin# t e net*or' pat *it data. Ueca"se t e sender *ill a!e an amo"nt of data in for*ard transit and an eM"i!alent amo"nt of data a*aitin# reception of an A$J si#nal: ,ot t e sender[s ,"ffer and t e recei!er[s ad!ertised *indo* s o"ld ,e no smaller t an t e Delay+Uand*idt %rod"ct of t e net*or' pat . T at is: 5indow si4e (le or e3# 6andwidth (bytes7sec# (times# +ound-trip time (sec# T e 1.+,it field *it in t e T$% eader can contain !al"es "p to .):)(): imposin# an "pper limit on t e a!aila,le *indo* siLe of .):)() ,ytes. T is imposes an "pper limit on T$% performance of some .- JU per RTT: e!en * en ,ot end systems a!e ar,itrarily lar#e send and recei!e ,"ffers. T is limit can ,e modified ,y t e "se of a *indo*+scale option: descri,ed in RK$ 1(&(: effecti!ely increasin# t e siLe of t e *indo* to a (O+,it field: ,"t transmittin# only t e most si#nificant 1. ,its of t e !al"e. T is allo*s t e sender and recei!er to "se ,"ffer siLes t at can operate efficiently at speeds t at encompass most of t e c"rrent !ery+ i# +speed net*or' transmission tec nolo#ies across distances of t e scale of t e terrestrial intercontinental ca,le systems. Alt o"# t e ma3im"m *indo* siLe and t e RTT to#et er determine t e ma3im"m ac ie!a,le data+transfer rate: t ere is an additional element of flo* control reM"ired for T$%. If a T$% session commenced ,y inIectin# a f"ll *indo* of data into t e net*or': t en t ere is a stron# pro,a,ility t at m"c of t e initial ,"rst of data *o"ld ,e lost ,eca"se of transient con#estion: partic"larly if a lar#e *indo* is ,ein# "sed. Instead: T$% adopts a more conser!ati!e approac ,y startin# *it a modest amo"nt of data t at as a i# pro,a,ility of s"ccessf"l transmission: and t en pro,in# t e net*or' *it increasin# amo"nts of data for as lon# as t e net*or' does not s o* si#ns of con#estion. N en con#estion is e3perienced: t e sendin# rate is dropped and t e pro,in# for additional capacity is res"med. T e dynamic operation of t e *indo* is a critical component of T$% performance for !ol"me transfer. T e mec anics of t e protocol in!ol!e an additional o!erridin# modifier of t e sender[s *indo*: t e congestion window : referred to as cwnd . T e o,Iecti!e of

t e *indo*+mana#ement al#orit m is to start transmittin# at a rate t at as a !ery lo* pro,a,ility of pac'et loss: t en to increase t e rate 9,y increasin# t e cwnd siLe> "ntil t e sender recei!es an indication: t ro"# t e detection of pac'et loss: t at t e rate as e3ceeded t e a!aila,le capacity of t e net*or'. T e sender t en immediately al!es its sendin# rate ,y red"cin# t e !al"e of cwnd : and res"mes a #rad"al increase of t e sendin# rate. T e #oal is to contin"ally modify t e sendin# rate s"c t at it oscillates aro"nd t e tr"e !al"e of a!aila,le net*or' capacity. T is oscillation ena,les a dynamic adI"stment t at a"tomatically senses any increase or decrease in a!aila,le capacity t ro"# t e lifetime of t e data flo*. T e intended o"tcome is t at of a dynamically adI"stin# cooperati!e data flo*: * ere a com,ination of s"c flo*s ,e a!es fairly: in t at eac flo* o,tains essentially a fair s are of t e net*or': and so t at close to ma3imal "se of a!aila,le net*or' reso"rces is made. T is flo*+control f"nctionality is ac ie!ed t ro"# a com,ination of cwnd !al"e mana#ement and pac'et+loss and retransmission al#orit ms. T$% flo* control as t ree maIor parts: t e flo*+control modes of Slow Start and $on#estion A!oidance: and t e response to pac'et loss t at determines o* T$% s*itc es ,et*een t ese t*o modes of operation. T$% Slo* Start T e startin# !al"e of t e cwnd *indo* 9t e Initial Nindo*: or IN> is set to t at of t e Sender Ma3im"m Se#ment SiLe 9SMSS> !al"e. T is SMSS !al"e is ,ased on t e recei!er[s ma3im"m se#ment siLe: o,tained d"rin# t e SZN ands a'e: t e disco!ered pat MTF 9if "sed>: t e MTF of t e sendin# interface: or: in t e a,sence of ot er information: )(. ,ytes. T e sender t en enters a flo*+control mode termed Slow Start . T e sender sends a sin#le data se#ment: and ,eca"se t e *indo* is no* f"ll: it t en a*aits t e correspondin# A$J. N en t e A$J is recei!ed: t e sender increases its *indo* ,y increasin# t e !al"e of cwnd ,y t e !al"e of SMSS. T is t en allo*s t e sender to transmit t*o se#ments@ at t at point: t e con#estion *indo* is a#ain f"ll: and t e sender m"st a*ait t e correspondin# A$Js for t ese se#ments. T is al#orit m contin"es ,y increasin# t e !al"e of cwnd 9and: correspondin#ly: openin# t e siLe of t e con#estion *indo*> ,y one SMSS for e!ery A$J recei!ed t at ac'no*led#es ne* data. If t e recei!er is sendin# an A$J for e!ery pac'et: t e effect of t is al#orit m is t at t e data rate of t e sender do",les e!ery ro"nd+trip time inter!al. If t e recei!er s"pports delayed A$Js: t e rate of increase *ill ,e sli# tly lo*er: ,"t ne!ert eless t e rate *ill increase ,y a minim"m of one SMSS eac ro"nd+trip time. O,!io"sly: t is cannot ,e s"stained indefinitely. Eit er t e !al"e of cwnd *ill e3ceed t e ad!ertised recei!e *indo* or t e sender[s *indo*: or t e capacity of t e net*or' *ill ,e e3ceeded: in * ic case pac'ets *ill ,e lost. T ere is anot er limit to t e slo*+start rate increase: maintained in a !aria,le termed ssthresh : or Slow-Start Threshold . If t e !al"e of cwnd increases past t e !al"e of sst res : t e T$% flo*+control mode is c an#ed from Slow Start to con#estion a!oidance. Initially t e !al"e of sst res is set to t e recei!er[s ma3im"m *indo* siLe. 2o*e!er: * en con#estion is noted: sst res is set to alf t e c"rrent *indo* siLe: pro!idin# T$% *it a memory of t e point * ere t e onset of net*or' con#estion may ,e anticipated in f"t"re.

One aspect to i# li# t concerns t e interaction of t e slo*+start al#orit m *it i# capacity lon#+delay net*or's: t e so+called 0on# Kat Net*or's 9or 0KNs: prono"nced Celep antsC>. T e ,e a!ior of t e slo*+start al#orit m is to send a sin#le pac'et: a*ait an A$J: t en send t*o pac'ets: and a*ait t e correspondin# A$Js: and so on. T e T$% acti!ity on 0KNs tends to cl"ster at eac epoc of t e ro"nd+trip time: *it a M"iet period t at follo*s after t e a!aila,le *indo* of data as ,een transmitted. T e recei!ed A$Js arri!e ,ac' at t e sender *it an inter+A$J spacin# t at is eM"i!alent to t e data rate of t e ,ottlenec' point on t e net*or' pat . D"rin# Slow Start : t e sender transmits at a rate eM"al to t*ice t is ,ottlenec' rate. T e rate adaptation f"nction t at m"st occ"r *it in t e net*or' ta'es place in t e ro"ter at t e entrance to t e ,ottlenec' point. T e sender[s pac'ets arri!e at t is ro"ter at t*ice t e rate of e#ress from t e ro"ter: and t e ro"ter stores t e o!erflo* *it in its internal ,"ffer. N en t is ,"ffer o!erflo*s: pac'ets *ill ,e dropped: and t e slo*+start p ase is o!er. T e important concl"sion is t at t e sender *ill stop increasin# its data rate * en t ere is ,"ffer e3 a"stion: a condition t at may not ,e t e same as reac in# t e tr"e a!aila,le data rate. If t e ro"ter as a ,"ffer capacity considera,ly less t an t e delay+,and*idt prod"ct of t e e#ress circ"it: t e t*o !al"es are certainly not t e same. In t is case: t e T$% slo*+start al#orit m *ill finis *it a sendin# rate t at is *ell ,elo* t e act"al a!aila,le capacity. T e efficient operation of T$%: partic"larly in 0KNs: is critically reliant on adeM"ately lar#e ,"ffers *it in t e net*or' ro"ters. Anot er aspect of Slow Start is t e c oice of a sin#le se#ment as t e initial sendin# *indo*. E3perimentation indicates t at an initial !al"e of "p to fo"r se#ments can allo* for a more efficient session start"p: partic"larly for t ose s ort+d"ration T$% sessions so pre!alent *it Ne, fetc es <.=. O,ser!ation of Ne, traffic indicates an a!era#e Ne, data transfer of 14 se#ments. A slow start from one se#ment *ill ta'e fi!e RTT inter!als to transfer t is data: * ile "sin# an initial !al"e of fo"r *ill red"ce t e transfer time to t ree RTT inter!als. 2o*e!er: fo"r se#ments may ,e too many * en "sin# lo*+speed lin's *it limited ,"ffers: so a more ro,"st approac is to "se an initial !al"e of no more t an t*o se#ments to commence Slow Start <4=. %ac'et 0oss Slo* Start attempts to start a T$% session at a rate t e net*or' can s"pport and t en contin"ally increase t e rate. 2o* does T$% 'no* * en to stop t is increaseY T is slo*start rate increase stops * en t e con#estion *indo* e3ceeds t e recei!er[s ad!ertised *indo*: * en t e rate e3ceeds t e remem,ered !al"e of t e onset of con#estion as recorded in sst res : or * en t e rate is #reater t an t e net*or' can s"stain. Addressin# t e last condition: o* does a T$% sender 'no* t at it is sendin# at a rate #reater t an t e net*or' can s"stainY T e ans*er is t at t is is s o*n ,y data pac'ets ,ein# dropped ,y t e net*or'. In t is case: T$% as to "nderta'e many f"nctions: T e pac'et loss as to ,e detected ,y t e sender. T e missin# data as to ,e retransmitted. T e sendin# data rate s o"ld ,e adI"sted to red"ce t e pro,a,ility of f"rt er pac'et loss. T$% can detect pac'et loss in t*o *ays. Kirst: if a sin#le pac'et is lost *it in a seM"ence of pac'ets: t e s"ccessf"l deli!ery pac'ets follo*in# t e lost pac'et *ill ca"se t e recei!er to #enerate a duplicate A$J for eac s"ccessi!e pac'et T e reception of t ese

d"plicate A$Js is a si#nal of s"c pac'et loss. Second: if a pac'et is lost at t e end of a seM"ence of sent pac'ets: t ere are no follo*in# pac'ets to #enerate d"plicate A$Js. In t is case: t ere are no correspondin# A$Js for t is pac'et: and t e sender[s retransmit timer *ill e3pire and t e sender *ill ass"me pac'et loss. A sin#le d"plicate A$J is not a relia,le si#nal of pac'et loss. N en a T$% recei!er #ets a data pac'et *it an o"t+of+order T$% seM"ence !al"e: t e recei!er m"st #enerate an immediate A$J of t e i# est in+order data ,yte recei!ed. T is *ill ,e a d"plicate of an earlier transmitted A$J. N ere a sin#le pac'et is lost from a seM"ence of pac'ets: all s",seM"ent pac'ets *ill #enerate a d"plicate A$J pac'et. On t e ot er and: * ere a pac'et is rero"ted *it an additional incremental delay: t e reorderin# of t e pac'et stream at t e recei!er[s end *ill #enerate a small n"m,er of d"plicate A$Js: follo*ed ,y an A$J of t e entire data seM"ence: after t e errant pac'et is recei!ed. T e sender distin#"is es ,et*een t ese cases ,y "sin# t ree d"plicate A$J pac'ets as a si#nal of pac'et loss. T e t ird d"plicate A$J tri##ers t e sender to immediately send t e se#ment referenced ,y t e d"plicate A$J !al"e 9fast retransmit > and commence a seM"ence termed 0ast +ecovery . In fast reco!ery: t e !al"e of ssthresh is set to alf t e c"rrent send *indo* siLe 9t e send *indo* is t e amo"nt of "nac'no*led#ed data o"tstandin#>. T e con#estion *indo*: cwnd : is set t ree se#ments #reater t an ssthresh to allo* for t ree se#ments already ,"ffered at t e recei!er. If t is allo*s additional data to ,e sent: t en t is is done. Eac additional d"plicate A$J inflates cwnd ,y a f"rt er se#ment siLe: allo*in# more data to ,e sent. N en an A$J arri!es t at encompasses ne* data: t e !al"e ofcwnd is set ,ac' to sst res : and T$% enters con#estion+a!oidance mode. Kast Reco!ery is intended to rapidly repair sin#le pac'et loss: allo*in# t e sender to contin"e to maintain t e A$J+cloc'ed data rate for ne* data * ile t e pac'et loss repair is ,ein# "nderta'en. T is is ,eca"se t ere is still a seM"ence of A$Js arri!in# at t e sender: so t at t e net*or' is contin"in# to pass timin# si#nals to t e sender indicatin# t e rate at * ic pac'ets are arri!in# at t e recei!er. Only * en t e repair as ,een completed does t e sender drop its *indo* to t e ssthresh !al"e as part of t e transition to con#estiona!oidance mode <5=. T e ot er si#nal of pac'et loss is a complete cessation of any A$J pac'ets arri!in# to t e sender. T e sender cannot *ait indefinitely for a delayed A$J: ,"t m"st ma'e t e ass"mption at some point in time t at t e ne3t "nac'no*led#ed data se#ment m"st ,e retransmitted. T is is mana#ed ,y t e sender maintainin# a +etransmission Timer . T e maintenance of t is timer as performance and efficiency implications. If t e timer tri##ers too early: t e sender *ill p"s d"plicate data into t e net*or' "nnecessarily. If t e timer tri##ers too slo*ly: t e sender *ill remain idle for too lon#: "nnecessarily slo*in# do*n t e flo* of data. T e T$% sender "ses a timer to meas"re t e elapsed time ,et*een sendin# a data se#ment and recei!in# t e correspondin# ac'no*led#ment. Indi!id"al meas"rements of t is time inter!al *ill e3 i,it si#nificant !ariance: and implementations of T$% "se a smoot in# f"nction * en "pdatin# t e retransmission timer of t e flo* *it eac meas"rement. T e commonly "sed al#orit m *as ori#inally descri,ed ,y Van \aco,son <P=: modified so t at t e retransmission timer is set to t e smoot ed ro"nd+trip+time !al"e: pl"s fo"r times a smoot ed mean de!iation factor <1O=.

N en t e retransmission timer e3pires: t e actions are similar to t at of d"plicate A$J pac'ets: in t at t e sender m"st red"ce its sendin# rate in response to con#estion. T e t res old !al"e: ssthresh : is set to alf of t e c"rrent !al"e of o"tstandin# "nac'no*led#ed data: as in t e d"plicate A$J case. 2o*e!er: t e sender cannot ma'e any !alid ass"mptions a,o"t t e c"rrent state of t e net*or': #i!en t at no "sef"l information as ,een pro!ided to t e sender for more t an one RTT inter!al. In t is case: t e sender closes t e con#estion *indo* ,ac' to one se#ment: and restarts t e flo* in slow start +mode ,y sendin# a sin#le se#ment. T e difference from t e initial slow start is t at: in t is case: t e ssthresh !al"e is set so t at t e sender *ill pro,e t e con#estion area more slo*ly "sin# a linear sendin# rate increase * en t e con#estion *indo* reac es t e remem,ered sst res !al"e. $on#estion A!oidance $ompared to Slow Start : con#estion a!oidance is a more tentati!e pro,in# of t e net*or' to disco!er t e point of t res old of pac'et loss. N ere Slow Start "ses an e3ponential increase in t e sendin# rate to find a first+le!el appro3imation of t e loss t res old: con#estion a!oidance "ses a linear #ro*t f"nction. N en t e !al"e of cwnd is #reater t an ssthresh : t e sender increments t e !al"e of cwnd ,y t e !al"e S2SS 8 S2SS7cwnd : in response to eac recei!ed nond"plicate A$J <4=: ens"rin# t at t e con#estion *indo* opens ,y one se#ment *it in eac RTT time inter!al. T e con#estion *indo* contin"es to open in t is fas ion "ntil pac'et loss occ"rs. If t e pac'et loss is isolated to a sin#le pac'et *it in a pac'et seM"ence: t e res"ltant d"plicate A$Js *ill tri##er t e sender to al!e t e sendin# rate and contin"e a linear #ro*t of t e con#estion *indo* from t is ne* point: as descri,ed a,o!e in fast reco!ery. T e ,e a!ior of cwnd in an idealiLed confi#"ration is s o*n in Ki#"re 5: Ki#"re 5: Sim"lation of Sin#le T$% Transfer ;Note:$lic' a,o!e for lar#er !ie* alon# *it t e correspondin# data+flo* rates. T e o!erall c aracteristics of t e T$% al#orit m are an initial relati!ely fast scan of t e net*or' capacity to esta,lis t e appro3imate ,o"nds of ma3imal efficiency: follo*ed ,y a cyclic mode of adapti!e ,e a!ior t at reacts M"ic'ly to con#estion: and t en slo*ly increases t e sendin# rate across t e area of ma3imal transfer efficiency. %ac'et loss: as si#naled ,y t e tri##erin# of t e retransmission timer: ca"ses t e sender to recommence slo*+start mode: follo*in# a timeo"t inter!al. T e correspondin# data+flo* rates are indicated in Ki#"re P. Ki#"re P: Sim"lation of T$% Transfer *it Tail Drop T"e"e ;Note:$lic' a,o!e for lar#er !ie* T e inefficiency of t is mode of performance is ca"sed ,y t e complete cessation of any form of flo* si#nalin# from t e recei!er to t e sender. In t e a,sence of any information: t e sender can only ass"me t at t e net*or' is ea!ily con#ested: and so m"st restart its pro,in# of t e net*or' capacity *it an initial con#estion *indo* of a sin#le se#ment. T is leads to t e performance o,ser!ation t at any form of pac'et+drop mana#ement t at tends to discard t e trailin# end of a seM"ence of data pac'ets may ca"se si#nificant T$% performance de#radation: ,eca"se s"c drop ,e a!ior forces t e T$% session to contin"ally time o"t and restart t e flo* from a sin#le se#ment a#ain.

Assistin# T$% %erformance Net*or'+RED and E$N Alt o"# T$% is an end+to+end protocol: it is possi,le for t e net*or' to assist T$% in optimiLin# performance. One approac is to alter t e M"e"e ,e a!io"r of t e net*or' t ro"# t e "se of +andom *arly 9etection 9RED>. RED permits a net*or' ro"ter to discard a pac'et e!en * en t ere is additional space in t e M"e"e. Alt o"# t is may so"nd inefficient: t e interaction ,et*een t is early pac'et+drop ,e a!io"r and T$% is !ery effecti!e. RED "ses a t e *ei# ted a!era#e M"e"e len#t as t e pro,a,ility factor for pac'et drop. As t e a!era#e M"e"e len#t increases: t e pro,a,ility of a pac'et ,ein# dropped: rat er t an ,ein# M"e"ed: increases. As t e M"e"e len#t decreases: so does t e pac'et+drop pro,a,ility. 9See Ki#"re 1O>. Small pac'et ,"rsts can pass t ro"# a RED filter relati!ely intact: * ile lar#er pac'et ,"rsts *ill e3perience increasin#ly i# er pac'et+discard rates. S"stained load *ill f"rt er increase t e pac'et+discard rates. T is implies t at t e T$% sessions *it t e lar#est open *indo*s *ill a!e a i# er pro,a,ility of e3periencin# pac'et drop: ca"sin# a ,ac'+off in t e *indo* siLe. Ki#"re 1O: Red Ue a!ior ;Note:$lic' a,o!e for lar#er !ie* A maIor #oal of RED is to a!oid a sit"ation in * ic all T$% flo*s e3perience con#estion at t e same time: all t en ,ac' off and res"me at t e same rate: and tend to sync roniLe t eir ,e a!io"r <11:1&=. Nit RED: t e lar#er ,"rstin# flo*s e3perience a i# er pro,a,ility of pac'et drop: * ile flo*s *it smaller ,"rst rates can contin"e *it o"t "nd"e impact. RED is also intended to red"ce t e incidence of complete loss of A$J si#nals: leadin# to timeo"t and session restart in slo*+start mode. T e intent is to si#nal t e ea!iest ,"rstin# T$% sessions t e li'eli ood of pendin# M"e"e sat"ration and tail drop ,efore t e onset of s"c a tail+drop con#estion condition: allo*in# t e T$% session to "nderta'e a fast retransmit reco!ery "nder conditions of con#estion a!oidance. Anot er o,Iecti!e of RED is to allo* t e M"e"e to operate efficiently: *it t e M"e"e dept ran#in# across t e entire M"e"e siLe *it in a timescale of M"e"e dept oscillation t e same order as t e a!era#e RTT of t e traffic flo*s. Ue ind RED is t e o,ser!ation t at T$% sets !ery fe* ass"mptions a,o"t t e net*or's o!er * ic it m"st operate: and t at it cannot co"nt on any consistent performance feed,ac' si#nal ,ein# #enerated ,y t e net*or'. As a minimal approac : T$% "ses pac'et loss as its performance si#nal: interpretin# small+scale pac'et+loss e!ents as pea' load con#estion e!ents and e3tended pac'et loss e!ents as a si#n of more critical con#estion load. RED attempts to increase t e n"m,er of small+scale con#estion si#nals: and in so doin# a!oid lon#+period s"stained con#estion conditions. It is not necessary for RED to discard t e randomly selected pac'et. T e intent of RED is to si#nal t e sender t at t ere is t e potential for M"e"e e3 a"stion: and t at t e sender s o"ld adapt to t is condition. An alternati!e mec anism is for t e ro"ter e3periencin# t e load to mar' pac'ets *it an e3plicit Congestion *1perienced 9$E> ,it fla#: on t e ass"mption t at t e sender *ill see and react to t is fla# settin# in a manner compara,le to its response to sin#le pac'et drop <1(= <1-=. T is mec anism: *1plicit Congestion Notification 9E$N>: "ses a &+,it sc eme: claimin# ,its . and 4 of t e I% Version - Typeof+ Ser!ice 9ToS> field 9or t e t*o $"rrently Fn"sed <$F= ,its of t e I% 9ifferentiated Services field>. Uit . is set ,y t e sender to indicate t at it is an E$N+capa,le transport

system 9t e E$T ,it>. Uit 4 is t e $E ,it: and is set ,y a ro"ter * en t e a!era#e M"e"e len#t e3ceeds confi#"red t res old le!els. T e E$N al#orit m is t at an acti!e ro"ter *ill perform RED: as descri,ed. After a pac'et as ,een selected: t e ro"ter may mar' t e $E ,it of t e pac'et if t e E$T ,it is set@ ot er*ise: it *ill discard t e selected pac'et. 9See Ki#"re 11>. Ki#"re 11: Operation of E3plicit $on#estion Notification ;Note:$lic' a,o!e for lar#er !ie* T e T$% interaction is sli# tly more in!ol!ed. T e initial T$% SZN ands a'e incl"des t e addition of E$N+ec o capa,ility and Congestion 5indow +educed 9$NR> capa,ility fla#s to allo* eac system to ne#otiate *it its peer as to * et er it *ill properly andle pac'ets *it t e $E ,it set d"rin# t e data transfer. T e sender sets t e E$T ,it in all pac'ets sent. If t e sender recei!es a T$% pac'et *it t e E$N+ec o fla# set in t e T$% eader: t e sender *ill adI"st its con#estion *indo* as if it ad "nder#one fast reco!ery from a sin#le lost pac'et. T e ne3t sent pac'et *ill set t e T$% $NR fla#: to indicate to t e recei!er t at it as reacted to t e con#estion. T e additional ca!eat is t at t e sender *ill react in t is *ay at most once e!ery RTT inter!al. K"rt er: T$% pac'ets *it t e E$N+ec o fla# set *ill a!e no f"rt er effect on t e sender *it in t e same RTT inter!al. T e recei!er *ill set t e E$N+ec o fla# in all pac'ets * en it recei!es a pac'et *it t e $E ,it set. T is *ill contin"e "ntil it recei!es a pac'et *it t e $NR ,it set: indicatin# t at t e sender as reacted to t e con#estion. T e E$T fla# is set only in pac'ets t at contain a data payload. T$% A$J pac'ets t at contain no data payload s o"ld ,e sent *it t e E$T ,it clear. T e connection does not a!e to a*ait t e reception of t ree d"plicate A$Js to detect t e con#estion condition. Instead: t e recei!er is notified of t e incipient con#estion condition t ro"# t e e3plicit settin# of a notification ,it: * ic is in t"rn ec oed ,ac' to t e sender in t e correspondin# A$J. Sim"lations of E$N "sin# a RED mar'in# f"nction indicate sli# tly s"perior t ro"# p"t in comparison to confi#"rin# RED as a pac'et+discard f"nction. 2o*e!er: *idespread deployment of E$N is not considered li'ely in t e near f"t"re: at least in t e conte3t of Version - of I%. At t is sta#e: t ere as ,een no e3plicit standardiLation of t e field *it in t e I%!- eader to carry t is information: and t e deployment ,ase of I% is no* so *ide t at any modifications to t e semantics of fields in t e I%!- eader *o"ld need to ,e !ery caref"lly considered to ens"re t at t e c an#ed field interpretation did not e3ercise some malformed ,e a!ior in older !ersions of t e T$% stac' or in older ro"ter soft*are implementations. E$N pro!ides some le!el of performance impro!ement o!er a pac'et+drop RED sc eme. Nit lar#e ,"l' data transfers: t e impro!ement is moderate: ,ased on t e difference ,et*een t e pac'et retransmission and con#estion+*indo* adI"stment of RED and t e con#estion+*indo* adI"stment of E$N. T e most nota,le impro!ements indicated in E$N sim"lation e3periments occ"r *it s ort T$% transactions 9commonly seen in Ne, transactions>: * ere a RED pac'et drop of t e initial data pac'et may ca"se a si3+second retransmit delay. $omparati!ely: t e E$N approac allo*s t e transfer to proceed *it o"t t is len#t y delay. T e maIor iss"e *it E$N is t e need to c an#e t e operation of ,ot t e ro"ters and t e T$% soft*are stac's to accommodate t e operation of E$N. N ile t e E$N proposal is caref"lly constr"cted to allo* an essentially "ncoordinated introd"ction into t e Internet

*it o"t ne#ati!e side effects: t e effecti!eness of E$N in impro!in# o!erall net*or' t ro"# p"t *ill ,e apparent only after t is approac as ,een *idely adopted. As t e Internet #ro*s: its inertial mass #enerates a nat"ral resistance to f"rt er tec nolo#ical c an#e@ t erefore: it may ,e some years ,efore E$N is *idely adopted in ,ot ost soft*are and Internet ro"tin# systems. RED: on t e ot er and: as ad a more rapid introd"ction to t e Internet: ,eca"se it reM"ires only a local modification to ro"ter ,e a!ior: and relies on e3istin# T$% ,e a!ior to react to t e pac'et drop. T"nin# T$% 2o* can t e ost optimiLe its T$% stac' for optim"m performanceY Many recommendations can ,e considered. T e follo*in# s"##estions are a com,ination of t ose meas"res t at a!e ,een *ell st"died and are 'no*n to impro!e T$% performance: and t ose t at appear to ,e i# ly prod"cti!e areas of f"rt er researc and in!esti#ation <1= . /se a good TC, protocol stack : Many of t e performance pat olo#ies t at e3ist in t e net*or' today are not necessarily t e ,yprod"ct of o!ers",scri,ed net*or's and conseM"ent con#estion. Many of t ese performance pat olo#ies e3ist ,eca"se of poor implementations of T$% flo*+control al#orit ms@ inadeM"ate ,"ffers *it in t e recei!er@ poor 9or no> "se of pat +MTF disco!ery@ no s"pport for fast+retransmit flo* reco!ery: no "se of *indo* scalin# and SA$J: imprecise "se of protocol+reM"ired timers: and !ery coarse+#rained timers. It is "nclear * et er net*or' in#ress+imposed T"ality+of+Ser!ice 9ToS> str"ct"res *ill adeM"ately compensate for s"c implementation deficiencies. T e concl"sion is t at attemptin# to address t e symptoms is not t e same as c"rin# t e disease. A #ood protocol stac' can prod"ce e!en ,etter res"lts in t e ri# t en!ironment. Implement a TC, Selective Acknowledgment (SAC:# mechanism : SA$J: com,ined *it a selecti!e repeat+transmission policy: can elp o!ercome t e limitation t at traditional T$% e3periences * en a sender can learn only a,o"t a sin#le lost pac'et per RTT. Implement larger buffers with TC, window-scaling options : T e T$% flo* al#orit m attempts to *or' at a data rate t at is t e minim"m of t e delay,and*idt prod"ct of t e end+to+end net*or' pat and t e a!aila,le ,"ffer space of t e sender. 0ar#er ,"ffers at t e sender and t e recei!er assist t e sender in adaptin# more efficiently to a *ider di!ersity of net*or' pat s ,y permittin# a lar#er !ol"me of traffic to ,e placed in fli# t across t e end+to+end pat . Support TC, *CN negotiation : E$N ena,les t e ost to ,e e3plicitly informed of conditions relatin# to t e onset of con#estion *it o"t a!in# to infer s"c a condition from t e reser!e stream of A$J pac'ets from t e recei!er. T e ost can react to s"c a condition promptly and effecti!ely *it a data flo*+control response *it o"t a!in# to in!o'e pac'et retransmission. /se a higher initial TC, slow-start rate than the current % 2SS (2a1imum Segment Si4e# per +TT . A siLe t at seems feasi,le is an initial ,"rst of & MSS se#ments. T e ass"mption is t at t ere *ill ,e adeM"ate M"e"in# capa,ility to mana#e t is initial pac'et ,"rst@ t e pro!ision to ,ac' off t e send *indo* to 1 MSS se#ment s o"ld remain intact to allo* sta,le operation if t e initial c oice

*as too lar#e for t e pat . A ro,"st initial c oice is t*o se#ments: alt o"# sim"lations a!e indicated t at fo"r initial se#ments is also i# ly effecti!e in many sit"ations. /se a host platform that has sufficient processor and memory capacity to drive the network . T e i# est+M"ality ser!ice net*or' and optimally pro!isioned access circ"its cannot compensate for a ost system t at does not a!e s"fficient capacity to dri!e t e ser!ice load. T is is a condition t at can ,e o,ser!ed in lar#e or !ery pop"lar p",lic Ne, ser!ers: * ere t e pea' application load on t e ser!er dri!es t e platform into a state of memory and processor e3 a"stion: e!en t o"# t e net*or' itself as adeM"ate reso"rces to mana#e t e traffic load. All t ese actions a!e one t in# in common: T ey can ,e deployed incrementally at t e ed#e of t e net*or' and can ,e deployed indi!id"ally. T is allo*s end systems to o,tain s"perior performance e!en in t e a,sence of t e net*or' pro!ider t"nin# t e net*or'[s ser!ice response *it !ario"s internal ToS mec anisms. $oncl"sion T$% is not a predicti!e protocol. It is an adapti!e protocol t at attempts to operate t e net*or' at t e point of #reatest efficiency. T"nin# T$% is not a case of ma'in# T$% pass more pac'ets into t e net*or'. T"nin# T$% in!ol!es reco#niLin# o* T$% senses c"rrent net*or' load conditions: *or'in# t ro"# t e ine!ita,le compromise ,et*een ma'in# T$% i# ly sensiti!e to transient net*or' conditions: and ma'in# T$% resilient to * at can ,e re#arded as noise si#nals. If t e performance of end+to+end T$% is t e percei!ed pro,lem: t e most effecti!e ans*er is not necessarily to add ToS ser!ice differentiation into t e net*or'. Often: t e #reatest performance impro!ement can ,e made ,y "p#radin# t e *ay t at osts and t e net*or' interact t ro"# t e appropriate confi#"ration of t e ost T$% stac's. In t e ne3t article on t is topic: *e *ill e3amine o* T$% is facin# ne* c allen#es *it increasin# "se of *ireless: s ort+li!ed connections: and ,and*idt +limited mo,ile de!ices: as *ell as t e contin"in# effort for impro!ed T$% performance. Ne[ll loo' at a n"m,er of proposals to c an#e t e standard actions of T$% to meet t ese !ario"s reM"irements and o* t ey *o"ld interact *it t e e3istin# T$% protocol.

You might also like