




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 延边州中医院失禁分级评估考核
- 呼伦贝尔市人民医院自身抗体检测考核
- 晋中市中医院机器人手术编码考核
- 矿用防爆电机项目可行性研究报告范文
- 中国聚酰亚胺纤维项目创业计划书
- 赤峰市人民医院辐射防护监测考核
- 佳木斯市中医院感染科护理科研考核
- 呼和浩特市中医院腹部超声造影考核
- 中国大豆酶解蛋白项目商业计划书
- 中国福美钠项目经营分析报告
- 2024年柯城区教育局下属事业单位选调工作人员考试真题
- 高职院校十五五人才培养工作报告
- 售后服务人员工作自我总结范文
- 2025年高考成人政治试题及答案
- 2025年护理质控标准题库及答案
- (2025年)建筑起重信号司索工考试题库(附答案)
- 2025年农作物植保员岗位技术基础知识考试题库附含答案
- 通信管道施工安全培训课件
- 2025年长春市团校入团考试题库及参考答案详解
- 2025年长宁储备人才真题及答案
- 光子嫩肤课件讲解
评论
0/150
提交评论