




已阅读5页,还剩105页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TransportLayer,3-1,Chapter3TransportLayer,ComputerNetworking:ATopDownApproach6theditionJimKurose,KeithRossAddison-WesleyMarch2012,Anoteontheuseofthesepptslides:Weremakingtheseslidesfreelyavailabletoall(faculty,students,readers).TheyreinPowerPointformsoyouseetheanimations;andcanadd,modify,anddeleteslides(includingthisone)andslidecontenttosuityourneeds.Theyobviouslyrepresentalotofworkonourpart.Inreturnforuse,weonlyaskthefollowing:,Ifyouusetheseslides(e.g.,inaclass)thatyoumentiontheirsource(afterall,wedlikepeopletouseourbook!)Ifyoupostanyslidesonawwwsite,thatyounotethattheyareadaptedfrom(orperhapsidenticalto)ourslides,andnoteourcopyrightofthismaterial.Thanksandenjoy!JFK/KWRAllmaterialcopyright1996-2013J.FKuroseandK.W.Ross,AllRightsReserved,TransportLayer,3-2,Chapter3:TransportLayer,ourgoals:understandprinciplesbehindtransportlayerservices:multiplexing,demultiplexingreliabledatatransferflowcontrolcongestioncontrol,learnaboutInternettransportlayerprotocols:UDP:connectionlesstransportTCP:connection-orientedreliabletransportTCPcongestioncontrol,TransportLayer,3-3,Chapter3outline,3.1transport-layerservices3.2multiplexinganddemultiplexing3.3connectionlesstransport:UDP3.4principlesofreliabledatatransfer,3.5connection-orientedtransport:TCPsegmentstructurereliabledatatransferflowcontrolconnectionmanagement3.6principlesofcongestioncontrol3.7TCPcongestioncontrol,TransportLayer,3-4,Transportservicesandprotocols,providelogicalcommunicationbetweenappprocessesrunningondifferenthoststransportprotocolsruninendsystemssendside:breaksappmessagesintosegments,passestonetworklayerrcvside:reassemblessegmentsintomessages,passestoapplayermorethanonetransportprotocolavailabletoappsInternet:TCPandUDP,TransportLayer,3-5,Tworklayer,networklayer:logicalcommunicationbetweenhoststransportlayer:logicalcommunicationbetweenprocessesrelieson,enhances,networklayerservices,12kidsinAnnshousesendinglettersto12kidsinBillshouse:hosts=housesprocesses=kidsappmessages=lettersinenvelopestransportprotocol=AnnandBillwhodemuxtoin-housesiblingsnetwork-layerprotocol=postalservice,householdanalogy:,TransportLayer,3-6,Internettransport-layerprotocols,reliable,in-orderdelivery(TCP)congestioncontrolflowcontrolconnectionsetupunreliable,unordereddelivery:UDPno-frillsextensionof“best-effort”IPservicesnotavailable:delayguaranteesbandwidthguarantees,TransportLayer,3-7,Chapter3outline,3.1transport-layerservices3.2multiplexinganddemultiplexing3.3connectionlesstransport:UDP3.4principlesofreliabledatatransfer,3.5connection-orientedtransport:TCPsegmentstructurereliabledatatransferflowcontrolconnectionmanagement3.6principlesofcongestioncontrol3.7TCPcongestioncontrol,TransportLayer,3-8,Multiplexing/demultiplexing,process,socket,transport,application,physical,link,network,P2,P1,transport,application,physical,link,network,P4,transport,application,physical,link,network,P3,TransportLayer,3-9,Howdemultiplexingworks,hostreceivesIPdatagramseachdatagramhassourceIPaddress,destinationIPaddresseachdatagramcarriesonetransport-layersegmenteachsegmenthassource,destinationportnumberhostusesIPaddresses,whenhostreceivesUDPsegment:checksdestinationport#insegmentdirectsUDPsegmenttosocketwiththatport#,recall:whencreatingdatagramtosendintoUDPsocket,mustspecifydestinationIPaddressdestinationport#,IPdatagramswithsamedest.port#,butdifferentsourceIPaddressesand/orsourceportnumberswillbedirectedtosamesocketatdest,TransportLayer,3-11,Connectionlessdemux:example,DatagramSocketserverSocket=newDatagramSocket(6428);,transport,application,physical,link,network,P3,transport,application,physical,link,network,P1,transport,application,physical,link,network,P4,DatagramSocketmySocket1=newDatagramSocket(5775);,DatagramSocketmySocket2=newDatagramSocket(9157);,TransportLayer,3-12,Connection-orienteddemux,TCPsocketidentifiedby4-tuple:sourceIPaddresssourceportnumberdestIPaddressdestportnumberdemux:receiverusesallfourvaluestodirectsegmenttoappropriatesocket,serverhostmaysupportmanysimultaneousTCPsockets:eachsocketidentifiedbyitsown4-tuplewebservershavedifferentsocketsforeachconnectingclientnon-persistentHTTPwillhavedifferentsocketforeachrequest,TransportLayer,3-13,Connection-orienteddemux:example,transport,application,physical,link,network,P3,transport,application,physical,link,P4,transport,application,physical,link,network,P2,host:IPaddressA,host:IPaddressC,network,P6,P5,P3,threesegments,alldestinedtoIPaddress:B,destport:80aredemultiplexedtodifferentsockets,server:IPaddressB,TransportLayer,3-14,Connection-orienteddemux:example,transport,application,physical,link,network,P3,transport,application,physical,link,transport,application,physical,link,network,P2,host:IPaddressA,host:IPaddressC,server:IPaddressB,network,P3,P4,threadedserver,TransportLayer,3-15,Chapter3outline,3.1transport-layerservices3.2multiplexinganddemultiplexing3.3connectionlesstransport:UDP3.4principlesofreliabledatatransfer,3.5connection-orientedtransport:TCPsegmentstructurereliabledatatransferflowcontrolconnectionmanagement3.6principlesofcongestioncontrol3.7TCPcongestioncontrol,TransportLayer,3-16,UDP:UserDatagramProtocolRFC768,“nofrills,”“barebones”Internettransportprotocol“besteffort”service,UDPsegmentsmaybe:lostdeliveredout-of-ordertoappconnectionless:nohandshakingbetweenUDPsender,receivereachUDPsegmenthandledindependentlyofothers,UDPuse:streamingmultimediaapps(losstolerant,ratesensitive)DNSSNMPreliabletransferoverUDP:addreliabilityatapplicationlayerapplication-specificerrorrecovery!,TransportLayer,3-17,UDP:segmentheader,sourceport#,destport#,32bits,applicationdata(payload),UDPsegmentformat,length,checksum,length,inbytesofUDPsegment,includingheader,noconnectionestablishment(whichcanadddelay)simple:noconnectionstateatsender,receiversmallheadersizenocongestioncontrol:UDPcanblastawayasfastasdesired,whyisthereaUDP?,TransportLayer,3-18,UDPchecksum,sender:treatsegmentcontents,includingheaderfields,assequenceof16-bitintegerschecksum:addition(onescomplementsum)ofsegmentcontentssenderputschecksumvalueintoUDPchecksumfield,receiver:computechecksumofreceivedsegmentcheckifcomputedchecksumequalschecksumfieldvalue:NO-errordetectedYES-noerrordetected.Butmaybeerrorsnonetheless?Morelater.,Goal:detect“errors”(e.g.,flippedbits)intransmittedsegment,TransportLayer,3-19,Internetchecksum:example,example:addtwo16-bitintegers,1111001100110011011101010101010101110111011101110111101110111011110010100010001000011,wraparound,sum,checksum,Note:whenaddingnumbers,acarryoutfromthemostsignificantbitneedstobeaddedtotheresult,TransportLayer,3-20,Chapter3outline,3.1transport-layerservices3.2multiplexinganddemultiplexing3.3connectionlesstransport:UDP3.4principlesofreliabledatatransfer,3.5connection-orientedtransport:TCPsegmentstructurereliabledatatransferflowcontrolconnectionmanagement3.6principlesofcongestioncontrol3.7TCPcongestioncontrol,TransportLayer,3-21,Principlesofreliabledatatransfer,importantinapplication,transport,linklayerstop-10listofimportantnetworkingtopics!,characteristicsofunreliablechannelwilldeterminecomplexityofreliabledatatransferprotocol(rdt),TransportLayer,3-22,characteristicsofunreliablechannelwilldeterminecomplexityofreliabledatatransferprotocol(rdt),Principlesofreliabledatatransfer,importantinapplication,transport,linklayerstop-10listofimportantnetworkingtopics!,TransportLayer,3-23,characteristicsofunreliablechannelwilldeterminecomplexityofreliabledatatransferprotocol(rdt),importantinapplication,transport,linklayerstop-10listofimportantnetworkingtopics!,Principlesofreliabledatatransfer,TransportLayer,3-24,Reliabledatatransfer:gettingstarted,sendside,receiveside,TransportLayer,3-25,well:incrementallydevelopsender,receiversidesofreliabledatatransferprotocol(rdt)consideronlyunidirectionaldatatransferbutcontrolinfowillflowonbothdirections!usefinitestatemachines(FSM)tospecifysender,receiver,state1,state2,eventcausingstatetransition,actionstakenonstatetransition,state:wheninthis“state”nextstateuniquelydeterminedbynextevent,event,actions,Reliabledatatransfer:gettingstarted,TransportLayer,3-26,rdt1.0:reliabletransferoverareliablechannel,underlyingchannelperfectlyreliablenobiterrorsnolossofpacketsseparateFSMsforsender,receiver:sendersendsdataintounderlyingchannelreceiverreadsdatafromunderlyingchannel,Waitforcallfromabove,packet=make_pkt(data)udt_send(packet),rdt_send(data),extract(packet,data)deliver_data(data),Waitforcallfrombelow,rdt_rcv(packet),sender,receiver,TransportLayer,3-27,underlyingchannelmayflipbitsinpacketchecksumtodetectbiterrorsthequestion:howtorecoverfromerrors:acknowledgements(ACKs):receiverexplicitlytellssenderthatpktreceivedOKnegativeacknowledgements(NAKs):receiverexplicitlytellssenderthatpkthaderrorssenderretransmitspktonreceiptofNAKnewmechanismsinrdt2.0(beyondrdt1.0):errordetectionreceiverfeedback:controlmsgs(ACK,NAK)rcvr-sender,rdt2.0:channelwithbiterrors,Howdohumansrecoverfrom“errors”duringconversation?,TransportLayer,3-28,underlyingchannelmayflipbitsinpacketchecksumtodetectbiterrorsthequestion:howtorecoverfromerrors:acknowledgements(ACKs):receiverexplicitlytellssenderthatpktreceivedOKnegativeacknowledgements(NAKs):receiverexplicitlytellssenderthatpkthaderrorssenderretransmitspktonreceiptofNAKnewmechanismsinrdt2.0(beyondrdt1.0):errordetectionfeedback:controlmsgs(ACK,NAK)fromreceivertosender,rdt2.0:channelwithbiterrors,TransportLayer,3-29,rdt2.0:FSMspecification,Waitforcallfromabove,sndpkt=make_pkt(data,checksum)udt_send(sndpkt),extract(rcvpkt,data)deliver_data(data)udt_send(ACK),rdt_rcv(rcvpkt),SocketconnectionSocket=welcomeSocket.accept();,TransportLayer,3-78,Q:will2-wayhandshakealwaysworkinnetwork?variabledelaysretransmittedmessages(e.g.req_conn(x)duetomessagelossmessagereorderingcant“see”otherside,2-wayhandshake:,Letstalk,OK,ESTAB,ESTAB,choosex,req_conn(x),ESTAB,ESTAB,acc_conn(x),Agreeingtoestablishaconnection,TransportLayer,3-79,Agreeingtoestablishaconnection,2-wayhandshakefailurescenarios:,TransportLayer,3-80,TCP3-wayhandshake,ESTAB,TransportLayer,3-81,TCP3-wayhandshake:FSM,closed,L,listen,SYNrcvd,SYNsent,ESTAB,SocketclientSocket=newSocket(hostname,portnumber);,SYN(seq=x),SocketconnectionSocket=welcomeSocket.accept();,SYN(x),SYNACK(seq=y,ACKnum=x+1)createnewsocketforcommunicationbacktoclient,SYNACK(seq=y,ACKnum=x+1),ACK(ACKnum=y+1),ACK(ACKnum=y+1),L,TransportLayer,3-82,TCP:closingaconnection,client,servereachclosetheirsideofconnectionsendTCPsegmentwithFINbit=1respondtoreceivedFINwithACKonreceivingFIN,ACKcanbecombinedwithownFINsimultaneousFINexchangescanbehandled,TransportLayer,3-83,TCP:closingaconnection,clientstate,serverstate,ESTAB,ESTAB,TransportLayer,3-84,Chapter3outline,3.1transport-layerservices3.2multiplexinganddemultiplexing3.3connectionlesstransport:UDP3.4principlesofreliabledatatransfer,3.5connection-orientedtransport:TCPsegmentstructurereliabledatatransferflowcontrolconnectionmanagement3.6principlesofcongestioncontrol3.7TCPcongestioncontrol,TransportLayer,3-85,congestion:informally:“toomanysourcessendingtoomuchdatatoofastfornetworktohandle”differentfromflowcontrol!manifestations:lostpackets(bufferoverflowatrouters)longdelays(queueinginrouterbuffers)atop-10problem!,Principlesofcongestioncontrol,TransportLayer,3-86,Causes/costsofcongestion:scenario1,twosenders,tworeceiversonerouter,infinitebuffersoutputlinkcapacity:Rnoretransmission,maximumper-connectionthroughput:R/2,unlimitedsharedoutputlinkbuffers,HostA,originaldata:lin,HostB,throughput:lout,largedelaysasarrivalrate,lin,approachescapacity,TransportLayer,3-87,onerouter,finitebufferssenderretransmissionoftimed-outpacketapplication-layerinput=application-layeroutput:lin=louttransport-layerinputincludesretransmissions:linlin,finitesharedoutputlinkbuffers,HostA,lin:originaldata,HostB,lout,lin:originaldata,plusretransmitteddata,Causes/costsofcongestion:scenario2,TransportLayer,3-88,idealization:perfectknowledgesendersendsonlywhenrouterbuffersavailable,finitesharedoutputlinkbuffers,lin:originaldata,lout,lin:originaldata,plusretransmitteddata,copy,freebufferspace!,Causes/costsofcongestion:scenario2,HostB,A,TransportLayer,3-89,lin:originaldata,lout,lin:originaldata,plusretransmitteddata,copy,nobufferspace!,Idealization:knownlosspacketscanbelost,droppedatrouterduetofullbufferssenderonlyresendsifpacketknowntobelost,Causes/costsofcongestion:scenario2,A,HostB,TransportLayer,3-90,lin:originaldata,lout,lin:originaldata,plusretransmitteddata,freebufferspace!,Causes/costsofcongestion:scenario2,Idealization:knownlosspacketscanbelost,droppedatrouterduetofullbufferssenderonlyresendsifpacketknowntobelost,A,HostB,TransportLayer,3-91,A,lin,lout,lin,copy,freebufferspace!,R/2,R/2,lout,HostB,Realistic:duplicatespacketscanbelost,droppedatrouterduetofullbufferssendertimesoutprematurely,sendingtwocopies,bothofwhicharedelivered,Causes/costsofcongestion:scenario2,TransportLayer,3-92,R/2,lout,“costs”ofcongestion:morework(retrans)forgiven“goodput”unneededretransmissions:linkcarriesmultiplecopiesofpktdecreasinggoodput,R/2,Causes/costsofcongestion:scenario2,Realistic:duplicatespacketscanbelost,droppedatrouterduetofullbufferssendertimesoutprematurely,sendingtwocopies,bothofwhicharedelivered,TransportLayer,3-93,foursendersmultihoppathstimeout/retransmit,Q:whathappensaslinandlinincrease?,finitesharedoutputlinkbuffers,HostA,lout,Causes/costsofcongestion:scenario3,HostB,HostC,HostD,lin:originaldata,lin:originaldata,plusretransmitteddata,A:asredlinincreases,allarrivingbluepktsatupperqueuearedropped,bluethroughputg0,TransportLayer,3-94,another“cost”ofcongestion:whenpacketdropped,any“upstreamtransmissioncapacityusedforthatpacketwaswasted!,Causes/costsofcongestion:scenario3,C/2,C/2,lout,lin,TransportLayer,3-95,Approachestowardscongestioncontrol,twobroadapproachestowardscongestioncontrol:,end-endcongestioncontrol:noexplicitfeedbackfromnetworkcongestioninferredfromend-systemobservedloss,delayapproachtakenbyTCP,network-assistedcongestioncontrol:routersprovidefeedbacktoendsystemssinglebitindicatingcongestion(SNA,DECbit,TCP/IPECN,ATM)explicitrateforsendertosendat,TransportLayer,3-96,Casestudy:ATMABRcongestioncontrol,ABR:availablebitrate:“elasticservice”ifsenderspath“underloaded”:sendershoulduseavailablebandwidthifsenderspathcongested:senderthrottledtominimumguaranteedrate,RM(resourcemanagement)cells:sentbysender,interspersedwithdatacellsbitsinRMcellsetbyswitches(“network-assisted”)NIbit:noincreaseinrate(mildcongestion)CIbit:congestionindicationRMcellsreturnedtosenderbyreceiver,withbitsintact,TransportLayer,3-97,Casestudy:ATMABRcongestioncontrol,two-byteER(explicitrate)fieldinRMcellcongestedswitchmaylowerERvalueincellsenderssendratethusmaxsupportablerateonpathEFCIbitindatacells:setto1incongestedswitchifdatacellprecedingRMcellhasEFCIset,receiversetsCIbitinreturnedRMcell,RMcell,datacell,TransportLayer,3-98,Chapter3outline,3.1transport-layerservices3.2multiplexinganddemultiplexing3.3connectionlesstransport:UDP3.4principlesofreliabledatatransfer,3.5connection-orientedtransport:TCPsegmentstructurereliabledatatransferflowcontrolconnectionmanagement3.6principlesofcongestioncontrol3.7TCPcongestioncontrol,TransportLayer,3-99,TCPcongestioncontrol:additiveincreasemultiplicativedecrease,approach:senderincreasestransmissionrate(windowsize),probingforusablebandwidth,untillossoccursadditiveincrease:increasecwndby1MSSeveryRTTuntillossdetectedmultiplicativedecrease:cutcwndinhalfafterloss,cwnd:TCPsendercongestionwindowsize,AIMDsawtoothbehavior:probingforbandwidth,additivelyincreasewindowsize.untillossoccurs(thencutwindowinhalf),time,TransportLayer,3-100,TCPCongestionControl:details,senderlimitstransmission:cwndisdynamic,functionofperceivednetworkcongestion,TCPsendingrate:roughly:sendcwndbytes,waitRTTforACKS,thensendmorebytes,lastbyteACKed,sent,not-yetACKed(“in-flight”),lastbytesent,cwnd,LastByteSent-LastByteAcked,cwnd,sendersequencenumberspace,rate,bytes/sec,TransportLayer,3-101,TCPSlowStart,whenconnectionbegins,increaserateexponentiallyuntilfirstlossevent:initiallycwnd=1MSSdoublecwndeveryRTTdonebyincrementingcwndforeveryACKreceivedsummary:initialrateisslowbutrampsupexponentiallyfast,HostA,onesegment,RTT,HostB,twosegments,foursegments,TransportLayer,3-102,TCP:detecting,reactingtoloss,lossindicatedbytimeout:cwndsetto1MSS;windowthengrowsexponentially(asinslowstart)tothreshold,thengrowslinearlylossindicatedby3duplicateACKs:TCPRENOdupACKsindicatenetworkcapableofdeliveringsomesegmentscwndiscutinhalfwindowthengrowslinearlyTCPTahoealwayssetscwndto1(timeoutor3duplicateacks),TransportLayer,3-103,Q:whenshouldtheexponentialincreaseswitchtolinear?A:whencwndgetsto1/2ofitsvaluebeforetimeout.,Implementation:variablessthreshonlossevent,ssthreshissetto1/2o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第一节 3S技术的集成及其应用教学设计高中地理人教版选修7地理信息技术应用-人教版2004
- 2025年新能源行业企业绿色能源技术创新与应用报告
- 跨境支付行业2025年区块链技术应用与跨境支付安全风险防范
- 2025年新能源汽车售后服务市场细分领域研究报告
- 1.2 地球的运动 说课稿2025-2026学年人教版地理七年级上册
- 3古诗三首《寒食》(教学设计 )统编版语文六年级下册
- Unit 3 Amazing animals PartA Let's talk (教学设计)-人教PEP版(2024)英语三年级上册
- 2025年中国甘氨胆酸钠盐行业市场分析及投资价值评估前景预测报告
- 人教版七下信息技术第一单元第一课认识photoshop说课稿
- 2025年智能交通设备制造业数字化转型关键技术综述
- 施工三方协议7篇
- 水生产处理工三级安全教育(班组级)考核试卷及答案
- MCN机构签约合同范本
- 2025至2030中国魔芋行业项目调研及市场前景预测评估报告
- 2024新译林版英语八年级上Unit 3 To be a good learner单词表(开学版)
- 2025门窗买卖销售订购确认书
- DGTJ08-2310-2019 外墙外保温系统修复技术标准
- 软件开发分包管理措施
- 2025至2030中国碳刷行业产业运行态势及投资规划深度研究报告
- 冬季四防培训课件
- 建筑公司研发管理制度
评论
0/150
提交评论