




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新质生产力专家观点
- 武术课教学试讲课件
- 年产32500台工业信号转换器项目可行性研究报告
- 年产1.8万套SoC芯片项目可行性研究报告
- 年产3万套诊断标定软件项目可行性研究报告
- 年产12万吨己二酸硝酸氧化反应器项目可行性研究报告
- 2025年物业管理高级考试模拟试题及解析
- 2025年爆款流出酒店业必-备接待岗位招聘笔试试题解析
- 2025年猪肉储备库招聘考试必-备知识点
- 2025年初中心理健康特岗教师招聘考试高频考点预测
- 2026高考英语 写作-倡议信 复习课件
- 2025广东广州市从化区社区专职人员招聘33人笔试参考题库附答案解析
- 托管老师岗前培训
- (正式版)HGT 6313-2024 化工园区智慧化评价导则
- 中考语文二轮专题复习:议论文阅读(共27张PPT)
- 建设工地每日消杀记录表
- 建筑施工应急处置明白卡
- 环境污染刑事案件司法解释学习课件
- 信息技术教学德育融合
- 护理品管圈QCC之提高手术物品清点规范执行率
- 高尔夫基础培训ppt课件
评论
0/150
提交评论