




已阅读5页,还剩69页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Chapter3:TransportLayer,Ourgoals:understandprinciplesbehindtransportlayerservices:multiplexing/demultiplexingreliabledatatransferflowcontrolcongestioncontrol,learnabouttransportlayerprotocolsintheInternet:UDP:connectionlesstransportTCP:connection-orientedtransportTCPcongestioncontrol,Chapter3outline,3.1Transport-layerservices3.2Multiplexinganddemultiplexing3.3Connectionlesstransport:UDP3.4PrinciplesofreliabledatatransferrdtModelGBN(GoBackN)SR(SelectiveRepeat),3.5Connection-orientedtransport:TCPsegmentstructurereliabledatatransferflowcontrolconnectionmanagement3.6Principlesofcongestioncontrol3.7TCPcongestioncontrol,Transportservicesandprotocols,providelogicalcommunicationbetweenappprocessesrunningondifferenthoststransportprotocolsruninendsystemssendside:breaksappmessagesintosegments,passestonetworklayerrcvside:reassemblessegmentsintomessages,passestoapplayermorethanonetransportprotocolavailabletoappsInternet:TCPandUDP,Tworklayer,networklayer:logicalcommunicationbetweenhoststransportlayer:logicalcommunicationbetweenprocessesrelieson,enhances,networklayerservices,Internettransport-layerprotocols,reliable,in-orderdelivery(TCP)congestioncontrolflowcontrolconnectionsetupunreliable,unordereddelivery(UDP):no-frillsextensionof“best-effort”IP(不对”尽最大努力服务”的IP协议进行不必要的扩展)servicesnotavailable(QoS):delayguaranteesbandwidthguarantees,QualityofServices,Chapter3outline,3.1Transport-layerservices3.2Multiplexinganddemultiplexing3.3Connectionlesstransport:UDP3.4PrinciplesofreliabledatatransferrdtModelGBN(GoBackN)SR(SelectiveRepeat),3.5Connection-orientedtransport:TCPsegmentstructurereliabledatatransferflowcontrolconnectionmanagement3.6Principlesofcongestioncontrol3.7TCPcongestioncontrol,Multiplexing/demultiplexing,application,transport,network,link,physical,P1,application,transport,network,link,physical,application,transport,network,link,physical,P2,P3,P4,P1,host1,host2,host3,Howdemultiplexingworks,hostreceivesIPdatagramseachdatagramhassourceIPaddress,destinationIPaddresseachdatagramcarries1transport-layersegment,IPdatagramformat,2B,4.13,Howdemultiplexingworks,hostreceivesIPdatagramseachsegmenthassource,destinationportnumberhostusesIPaddressesDatagramSocketmySocket2=newDatagramSocket(99222);UDPsocketidentifiedbytwo-tuple:(destIPaddress,destportnumber),WhenhostreceivesUDPsegment:checksdestinationportnumberinsegmentdirectsUDPsegmenttosocketwiththatportnumberIPdatagramswithdifferentsourceIPaddressesand/orsourceportnumbersdirectedtosamesocket,Connectionlessdemux(cont),DatagramSocketserverSocket=newDatagramSocket(6428);,SPprovides“returnaddress”,Connection-orienteddemux,TCPsocketidentifiedby4-tuple:sourceIPaddresssourceportnumberdestIPaddressdestportnumberrecvhostusesallfourvaluestodirectsegmenttoappropriatesocket,ServerhostmaysupportmanysimultaneousTCPsockets:eachsocketidentifiedbyitsown4-tupleWebservershavedifferentsocketsforeachconnectingclient,Connection-orienteddemux(cont),ClientIP:B,serverIP:C,SP:9157,DP:80,D-IP:C,S-IP:A,D-IP:C,S-IP:B,D-IP:C,S-IP:B,WebServerThread/subprocess,Chapter3outline,3.1Transport-layerservices3.2Multiplexinganddemultiplexing3.3Connectionlesstransport:UDP3.4PrinciplesofreliabledatatransferrdtModelGBN(GoBackN)SR(SelectiveRepeat),3.5Connection-orientedtransport:TCPsegmentstructurereliabledatatransferflowcontrolconnectionmanagement3.6Principlesofcongestioncontrol3.7TCPcongestioncontrol,UDP:UserDatagramProtocolRFC768,“besteffort”service,UDPsegmentsmaybe:lostdeliveredoutofordertoappconnectionless:nohandshakingbetweenUDPsender,receivereachUDPsegmenthandledindependentlyofothers,WhyisthereaUDP?noconnectionestablishment(whichcanadddelay)simple:noconnectionstateatsender,receiversmallsegmentheadernocongestioncontrol:UDPcanblastaway(拼命)asfastasdesired,UDP:more,oftenusedforstreamingmultimediaappslosstolerantratesensitiveotherUDPusesDNSSNMPreliabletransferoverUDP:addreliabilityatapplicationlayerapplication-specificerrorrecovery!,UDPchecksum,Sender:treatsegmentcontentsassequenceof16-bitintegerschecksum:addition(1scomplementsum)ofsegmentcontentssenderputschecksumvalueintoUDPchecksumfield,Receiver:computechecksumofreceivedsegmentifcomputedchecksumequalschecksumfieldvalue:noerrordetectedButmaybeerrors,Goal:detect“errors”intransmittedsegment,InternetChecksumExample,NoteWhenaddingnumbers,acarryfromthemostsignificantbitneedstobeaddedtotheresultExample:addtwo16-bitintegers,InternetChecksumExample,Example:addthree16-bitintegers,0110011001100000,0101010101010101,1000111100001100,Chapter3outline,3.1Transport-layerservices3.2Multiplexinganddemultiplexing3.3Connectionlesstransport:UDP3.4PrinciplesofreliabledatatransferrdtModelGBN(GoBackN)SR(SelectiveRepeat),3.5Connection-orientedtransport:TCPsegmentstructurereliabledatatransferflowcontrolconnectionmanagement3.6Principlesofcongestioncontrol3.7TCPcongestioncontrol,Reliabledatatransfer:gettingstarted,rdt:sendside,rdt:receiveside,Chapter3outline,3.1Transport-layerservices3.2Multiplexinganddemultiplexing3.3Connectionlesstransport:UDP3.4PrinciplesofreliabledatatransferrdtModelGBN(GoBackN)SR(SelectiveRepeat),3.5Connection-orientedtransport:TCPsegmentstructurereliabledatatransferflowcontrolconnectionmanagement3.6Principlesofcongestioncontrol3.7TCPcongestioncontrol,Go-Back-N(GBN),SlideWindow,Sender:k-bitseq#inpktheader:seq#=0-2k-1“window”ofuptoN,consecutiveunackedpktsallowed,连续的未被确认的包的最大数量(序号窗口、窗口、滑动窗口),Go-Back-N(GBN),SlidingWindows,sizeN,SlidingWindows,sizeN,SlidingWindows,sizeN,Sliding-Windowprotocol,收到base包的ACK后:,收到base包的ACK后:,SlideWindow,Go-Back-N(GBN),ACK(n):ACKsallpktsupto,includingseq#n-“cumulativeACK(累计确认)”mayreceiveduplicateACKs(seereceiver)Timer:runningatsendersidesothattimeforbasepkttimeout:senderresendallpktsthathavebeenpreviouslysentbutthathavenotyetbeenacked,GBN:senderFSM(Finite-State-Machine),GBN:receiverFSM,ACK-only:alwayssendACKforcorrectly-receivedpktwithhighestin-orderseq#maygenerateduplicateACKsneedonlyrememberexpectedseqnumout-of-orderpkt:discard(dontbuffer)-noreceiverbuffering!Re-ACKpktwithhighestin-orderseq#,发送窗口尺寸为N,接收窗口尺寸为1。Q:N的最大值?,28,GBNinaction,X,W6,W=expectedseqnum,Chapter3outline,3.1Transport-layerservices3.2Multiplexinganddemultiplexing3.3Connectionlesstransport:UDP3.4PrinciplesofreliabledatatransferrdtModelGBN(GoBackN)SR(SelectiveRepeat),3.5Connection-orientedtransport:TCPsegmentstructurereliabledatatransferflowcontrolconnectionmanagement3.6Principlesofcongestioncontrol3.7TCPcongestioncontrol,SelectiveRepeat(SR),receiverindividuallyacknowledgesallcorrectlyreceivedpktsbufferspkts,asneeded,foreventualin-orderdeliverytoupperlayersenderonlyresendspktsforwhichACKnotreceivedsendertimerforeachunACKedpktsenderwindowNconsecutiveseq#sReceiverwindowNconsecutiveseq#salso,Selectiverepeat:sender,receiverwindows,Selectiverepeat(SR),datafromabove:ifnextseqnumSendBase)SendBase=yif(therearecurrentlynot-yet-acknowledgedsegments)starttimer/*endofloopforever*/,TCP:retransmissionscenarios,TCPretransmissionscenarios(more),TCPACKgenerationRFC1122,RFC2581,EventatReceiverArrivalofin-ordersegmentwithexpectedseq#.Alldatauptoexpectedseq#alreadyACKedArrivalofin-ordersegmentwithexpectedseq#.OneothersegmenthasACKpendingArrivalofout-of-ordersegmenthigher-than-expectseq.#.GapdetectedArrivalofsegmentthatpartiallyorcompletelyfillsgap,TCPReceiveractionDelayedACK.Waitupto500msfornextsegment.Ifnextin-ordersegmentdoesnotarriveinthisinterval,sendanACKImmediatelysendsinglecumulativeACK,ACKingbothin-ordersegmentsImmediatelysendduplicateACK,indicatingseq.#ofnextexpectedbyteImmediatesendACK,providedthatsegmentstartsatlowerendofgap,FastRetransmit,Time-outperiodoftenrelativelylong:longdelaybeforeresendinglostpacketDetectlostsegmentsviaduplicateACKs.Senderoftensendsmanysegmentsback-to-backIfsegmentislost,therewilllikelybemanyduplicateACKs.,Ifsenderreceives3ACKsforthesameSegment,itsupposesthatsegmentafterACKeddatawaslost:fastretransmit:resendsegmentbeforetimerexpires,event:ACKreceived,withACKfieldvalueofyif(ySendBase)SendBase=yif(therearecurrentlynot-yet-acknowledgedsegments)starttimerelseincrementcountofdupACKsreceivedforyif(countofdupACKsreceivedfory=3)resendsegmentwithsequencenumbery,Fastretransmitalgorithm:,aduplicateACKforalreadyACKedsegment,fastretransmit,Chapter3outline,3.5Connection-orientedtransport:TCPsegmentstructurereliabledatatransferflowcontrolconnectionmanagement3.6Principlesofcongestioncontrol3.7TCPcongestioncontrol,3.1Transport-layerservices3.2Multiplexinganddemultiplexing3.3Connectionlesstransport:UDP3.4PrinciplesofreliabledatatransferrdtModelGBN(GoBackN)SR(SelectiveRepeat),TCPFlowControl,receivesideofTCPconnectionhasareceivebuffer:,speed-matchingservice:matchingthesendratetothereceivingappsdrainrate,appprocessmaybeslowatreadingfrombuffer,TCPFlowcontrol:howitworks,(SupposeTCPreceiverdiscardsout-of-ordersegments)spareroomsizeinbufferisRcvWindowRcvWindow=RcvBuffer-LastByteRcvd-LastByteRead,RcvradvertisesspareroombyincludingvalueofRcvWindowinsegmentsSenderlimitsunACKeddatatoRcvWindowguaranteesreceivebufferdoesntoverflow,Chapter3outline,3.5Connection-orientedtransport:TCPsegmentstructurereliabledatatransferflowcontrolconnectionmanagement3.6Principlesofcongestioncontrol3.7TCPcongestioncontrol,3.1Transport-layerservices3.2Multiplexinganddemultiplexing3.3Connectionlesstransport:UDP3.4PrinciplesofreliabledatatransferrdtModelGBN(GoBackN)SR(SelectiveRepeat),TCPConnectionManagement,Recall:TCPsender,receiverestablish“connection”beforeexchangingdatasegmentsinitializeTCPvariables:seq.#sbuffers,flowcontrolinfo(e.g.RcvWindow)client:connectioninitiatorSocketclientSocket=newSocket(hostname,portnumber);server:contactedbyclientSocketconnectionSocket=welcomeSocket.accept();,CreateconnectionThreewayhandshake:Step1:clienthostsendsTCPSYNsegmenttoserverspecifiesinitialseq#nodataStep2:serverhostreceivesSYN,replieswithSYNACKsegmentspecifiesserverinitialseq.#Step3:clientreceivesSYNACK,replieswithACKsegment,whichmaycontaindataserverallocatesbuffers,SYNsynchronization,62,CreateTCPconnectionThreewayhandshake,Request(SYN=1,seq=client_isn),SYN=1,seq=server_isn,ACK=cliect_isn+1,SYN=0,seq=client_isn+1,ACK=server_isn+1,Server,Client,OK,connected,OK,connected,isn=initialsequencenumber,TCPConnectionManagement(cont.),Three-WayHandshake,Why?,Conngranted,仅仅是“准许”连接!,SYNACKSegment,SYNSegment,63,Server,Client,Idontknown!,OK,acceptit!,isn=initialsequencenumber,OK,connected,communicating,ResentRequest(SYN=1,seq=client_isn),OK,acceptit!,CreateTCPconnectionThreewayhandshake,TCPConnectionManagement(cont.),TheServerwillcreateafalse-connectionwhenitreceivesadelayedconnection-request!,timeout,TCPConnectionManagement(cont.),Closingaconnection:clientclosessocket:clientSocket.close();Step1:clientsendsTCPFINcontrolsegmenttoserverStep2:serverreceivesFIN,replieswithACK.Closesconnection,sendsFIN.,FINFINish,TCPConnectionManagement(cont.),Step3:clientreceivesFIN,replieswithACK.Enters“timedwait”-willrespondwithACKtoreceivedFINsStep4:server,receivesACK.Connectionclosed.,client,FIN,server,ACK,ACK,FIN,closing,closing,closed,timedwait,closed,TCPConnectionManagement(cont),TCPclientlifecycle,TCPConnectionManagement(cont),TCPserverlifecycle,Chapter3outline,3.5Connection-orientedtransport:TCPsegmentstructurereliabledatatransferflowcontrolconnectionmanagement3.6Principlesofcongestioncontrol3.7TCPcongestioncontrol,3.1Transport-layerservices3.2Multiplexinganddemultiplexing3.3Connectionlesstransport:UDP3.4Principles
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年综合类-中学化学(高级)-中学化学(高级)-第一章 高中化学课程内容及分析历年真题摘选带答案(5卷单选100题合辑)
- 外部学员培训管理办法
- 2025年综合类-中医外科学-疮疡历年真题摘选带答案(5卷单选100题合辑)
- 安徽乡镇土地管理办法
- 大学技术合同管理办法
- 2025年综合类-一级注册建筑师-一级注册建筑师-第五章暖通空调历年真题摘选带答案(5卷单选100题合辑)
- 大气设备参数管理办法
- 山东电梯广告管理办法
- 2025年煤炭矿山职业技能鉴定考试-给煤机司机历年参考题库含答案解析(5套共100道单选题合辑)
- 安徽抗旱资金管理办法
- 护理人员职业防护课件讲义
- 减刑假释工作 全国获奖
- 耳鼻咽喉应用解剖与生理
- 西游记西游记
- RB/T 303-2016养老服务认证技术导则
- GB/T 32227-2015船用工作救生衣
- GB/T 22258-2008防伪标识通用技术条件
- GB 38454-2019坠落防护水平生命线装置
- FZ/T 01082-2017粘合衬干热尺寸变化试验方法
- 3、《广播电视音像资料编目规范-电视资料部分》标准设计及应用说明【精选文档】
- GB∕T 30074-2013 用电化学技术测量金属中氢渗透(吸收和迁移)的方法
评论
0/150
提交评论