NS2Report.docx
- 文档编号:16181308
- 上传时间:2023-07-11
- 格式:DOCX
- 页数:14
- 大小:174.47KB
NS2Report.docx
《NS2Report.docx》由会员分享,可在线阅读,更多相关《NS2Report.docx(14页珍藏版)》请在冰点文库上搜索。
NS2Report
NS2SimulationsofTCPandUDPtraffic
JanakaPradeepLiyanage
UniversityofColomboSchoolofComputing
NS2isadiscreteeventsimulatorfornetworkingresearch,whichworksatthepacketlevel.Here,wewillbeusingNS2tosimulatetrafficcongestionofTCPandUDPpacketsinsideanetwork.
TwoTCPFlowsCompeting
Tosimulatethisscenariowehaveusedoneofthemostsimplenetworktopologieswithjustonlytwonodes.ThenetworktopologyusedisdepictedinFigure1.
Figure1-ThetopologyusedforTCP-TCPsimulation
ThelinkbetweenthenodesAandBisaduplexone,inwhichthepacketscaneithermovefromnodeAtonodeBorviceversawithadelayof10millisecondstoreachtheotherend.Thelinkhasabandwidthof2megabitspersecond.ThepacketsizesofbothTCPflowswereoriginallysetto1024bytes.BydefaultwehaveusedtheRenoTCPimplementation.Adrop-tailqueueorabufferislocatedatnodeA.Thedefaultsizeofthisqueueissetto10packets.
WehavewrittentwoTCLscriptstoberunbytheNS2.Thesimulationsarerunfor20secondsandthedatarequiredtodrawthegraphsarecollectedineach0.2-secondtimeperiod(i.e.samplingat5Hz).WehavechangedvariousparametersoftheTCPflowsandderivednumberofgraphswhichareshownbelow.
ThefirstTCLscriptisusedtocalculatetheinstantthroughputoftheflowsandthevaluesarewrittentoatextfile,whichissubsequentlyimportedtoMS-Excelfordrawinglinegraphs.
#Createasimulatorobject
setns[newSimulator]
#Openthedatafilesforexcel
setnf[openout.namw]
setINCREMENT0.2
setSTOP20
setPacketSize11024
setPacketSize31024
setLINK_BW2mb
setLINK_LATENCY10ms
setQUEUE_SIZE30
procGetFirstValues{}{
globaltcpBW1tcpBW3tcp1tcp3
settcpBW1[$tcp1setack_]
settcpBW3[$tcp3setack_]
}
#Definea'finish'procedure
procfinish{}{
globalnf
close$nf
exit0
}
procCalculateThroughput{}{
globalfairnesstcpBW1tcpBW3tcp1tcp3nsnf
globalINCREMENT
setBW1[expr[$tcp1setack_]-$tcpBW1]
setBW3[expr[$tcp3setack_]-$tcpBW3]
setd$INCREMENT
setThroughput1[expr$BW1/$d*8*[$tcp1setpacketSize_]/1024]
setThroughput3[expr$BW3/$d*8*[$tcp3setpacketSize_]/1024]
setnow[$nsnow]
#puts"$now$Throughput1$Throughput3$BW1$BW3"
puts$nf"$now$Throughput1$Throughput3$BW1$BW3"
settcpBW1[$tcp1setack_]
settcpBW3[$tcp3setack_]
$nsat[expr$now+$INCREMENT]"CalculateThroughput"
}
#Createfournodes
setn0[$nsnode]
setn1[$nsnode]
#Createlinksbetweenthenodes
$nsduplex-link$n0$n1$LINK_BW$LINK_LATENCYDropTail
#SetQueueSizeoflink(n0-n1)to
$nsqueue-limit$n0$n1$QUEUE_SIZE
#Givenodeposition(forNAM)
$nsduplex-link-op$n0$n1orientright
#Monitorthequeueforlink(n2-n3).(forNAM)
$nsduplex-link-op$n0$n1queuePos0.5
#SetupaTCPconnection1
settcp1[newAgent/TCP/Reno]
$tcp1setpacketSize_$PacketSize1
$nsattach-agent$n0$tcp1
setsink1[newAgent/TCPSink]
$nsattach-agent$n1$sink1
$nsconnect$tcp1$sink1
$tcp1setfid_1
#SetupaTCPconnection3
settcp3[newAgent/TCP/Reno]
$tcp3setpacketSize_$PacketSize3
$nsattach-agent$n0$tcp3
setsink3[newAgent/TCPSink]
$nsattach-agent$n1$sink3
$nsconnect$tcp3$sink3
$tcp3setfid_3
#SetupaFTPoverTCPconnection
setftp1[newApplication/FTP]
$ftp1attach-agent$tcp1
$ftp1settype_FTP
setftp3[newApplication/FTP]
$ftp3attach-agent$tcp3
$ftp3settype_FTP
#ScheduleeventsfortheCBRandFTPagents
$nsat0.1"$ftp1start"
$nsat0.1"$ftp3start"
$nsat0.1"GetFirstValues"
$nsat$STOP"$ftp3stop"
$nsat$STOP"$ftp1stop"
$nsat$INCREMENT"CalculateThroughput"
#Callthefinishprocedure
$nsat[expr$STOP+0.5]"finish"
#Runthesimulation
$nsrun
Notehowwehavedefinedtheparameterstobechangedasvariablesothatitiseasytorunthesimulationforvariousvalesoftheseparameters.
ThesecondTCLscriptisusedtocalculatetheoverallthroughputoftheflowsastheybecomestabilizedovertime.
#Createasimulatorobject
setns[newSimulator]
#OpentheNSdatafileforexcel
setnf[openout.namw]
setINCREMENT0.2
setSTOP20
setPacketSize11024
setPacketSize31024
setLINK_BW2mb
setLINK_LATENCY10ms
setQUEUE_SIZE30
#Definea'finish'procedure
procfinish{}{
globalnf
close$nf
exit0
}
procCalculateThroughput{}{
globaltcp1tcp3nsnf
globalINCREMENT
settcpBW1[$tcp1setack_]
settcpBW3[$tcp3setack_]
setnow[$nsnow]
setd[expr$now-0.1]
setThroughput1[expr$tcpBW1/$d*8*[$tcp1setpacketSize_]/1024]
setThroughput3[expr$tcpBW3/$d*8*[$tcp3setpacketSize_]/1024]
#puts"$now$Throughput1$Throughput3"
puts$nf"$now$Throughput1$Throughput3"
$nsat[expr$now+$INCREMENT]"CalculateThroughput"
}
#Createfournodes
setn0[$nsnode]
setn1[$nsnode]
#Createlinksbetweenthenodes
$nsduplex-link$n0$n1$LINK_BW$LINK_LATENCYDropTail
#SetQueueSizeoflink(n0-n1)to10
$nsqueue-limit$n0$n1$QUEUE_SIZE
#Givenodeposition(forNAM)
$nsduplex-link-op$n0$n1orientright
#Monitorthequeueforlink(n2-n3).(forNAM)
$nsduplex-link-op$n0$n1queuePos0.5
#SetupaTCPconnection1
settcp1[newAgent/TCP/Reno]
$tcp1setpacketSize_$PacketSize1
$nsattach-agent$n0$tcp1
setsink1[newAgent/TCPSink]
$nsattach-agent$n1$sink1
$nsconnect$tcp1$sink1
$tcp1setfid_1
#SetupaTCPconnection3
settcp3[newAgent/TCP/Reno]
$tcp3setpacketSize_$PacketSize3
$nsattach-agent$n0$tcp3
setsink3[newAgent/TCPSink]
$nsattach-agent$n1$sink3
$nsconnect$tcp3$sink3
$tcp3setfid_3
#SetupaFTPoverTCPconnection
setftp1[newApplication/FTP]
$ftp1attach-agent$tcp1
$ftp1settype_FTP
setftp3[newApplication/FTP]
$ftp3attach-agent$tcp3
$ftp3settype_FTP
#ScheduleeventsfortheCBRandFTPagents
$nsat0.1"$ftp1start"
$nsat0.1"$ftp3start"
$nsat$STOP"$ftp3stop"
$nsat$STOP"$ftp1stop"
$nsat$INCREMENT"CalculateThroughput"
#Callthefinishprocedure
$nsat[expr$STOP+0.5]"finish"
#Runthesimulation
$nsrun
TheonlychangeofthisscripttothepreviousoneistheprocedureCalculateThroughputs,whichnowderivestheoverallthroughputratherthaninstantthroughput.
ItistobenotedthatweareusingthenumberofacknowledgementsreceivedbytheTCPsourcetocalculatethethroughputs.ThisisbecauseunlikeintheUDPcasewedonothavevariableintheTCPSinkclasstoaccessthenumberofbytesreceivedbythesink.Asaresultofusingtheacknowledgements,whichwillbereceivedbythesourceafteradelay,tocalculatethethroughputswecannotseethesawtoothpatterninthelinegraphsveryclearly.
ThegraphsderivedfromtheTCLscriptsareshownbelow.PleasenotethattheunitsusedY-Axisarekilobitspersecond.
Figure2-TwoTCPRenoimplementationscompetingwitheachother–Y-axisisinstantthroughputinKbps.
Figure3-TwoRenoTCPimplementationscompetingwitheachother-TheoverallthroughputinKbps.
Theso-calledslow-startphaseofTCPflowscanbeclearlyseeninthetwographsabove.Atthestartthebothflowswillsendpacketsinburstsuntilcongestionoccurs.Afterthat,theflowswilladjusttheircongestionwindowstothecorrectsizewithminimumnumberofpacketdrops.Howevertheflowswilltrytoconsumetheavailablebandwidthtothemaximumwithbackingoffascongestionoccurs.Asaresult,theinstantthroughputswillkeeponfluctuating.
Figure4-Theeffectofdecreasingthelinkbandwidthto0.5MBfromtheoriginal2MB
InFigure5,itseemsthatthereismorefluctuationintheinstantthroughputgraphcomparedtoFigure2.However,thisisbecausethescaleusedfortheY-axisisdifferentinthisgraphcomparedtothatofinFigure2.Itisclearlyseenfromtheoverallthroughputgraphthatevenifthebandwidthisdecreaseditadjustsitselftothecurrentlinkbandwidthtryingtosharethisasfairasispossiblebetweenthetwocompetingflows.Buttheproblemisthattoreachsomestablestatesometestsmustbedonebyeachoftheseflowscompetingforresources.Thesecontinuoustestsbringthenetworkclosetocongestionandpacketlossesareinevitable.Also,theflowratescannotbestable.Competition,tests,congestion,andlosses,whichinducebackoffontransmission,generateoscillationsinthenetwork.
Figure5-Theeffectofincreasingthelinklatencyto100msfromtheoriginal10ms
Inthiscase,sinceittakesmorethan200msfortheacknowledgementstoreachthe
source,ittakesalongertimefortheflowstolearnabouttheconditionsinthenetworkandtoreacttoanycongestionfoundinthenetwork.Thelessfluctuationintheinstantthroughputgraphsisbecauseittakesalongtimetoreacttochangesandfromoverallthroughputgraph,weseethatittakesalongtimetoreachthestablestate.Howeverstilltheavailableisbandwidthisusedfairlybyeachflow.
Figure6-EffectofincreasingthequeuelimitofnodeAto30packetsfromtheoriginal10packets
Increasingthequeuesizecanincreasethefluctuationintheinstantthroughputssincethelargeburstsofoneflowcanbecompletelybufferedbythequeuewithoutdroppinganypackets.Inthiscase,theotherflowwillbestarvedforaninstantasitnowtakesalongtimetoreachtheheadofthequeue.ThisfluctuationisseenclearlyintheinstantthroughputgraphinFigure7.
Figure7-TahoeandReno(top)TCPimplementationscompetingwitheachother–Y-axisis1)instantthroughput2)OverallthroughputinKbps
Figure8-Reno(top)andVegasTCPimplementationscompetingwitheachotherY-axisis1)InstantthroughputinKbps.2)OverallthroughputinKbps
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NS2Report