




已阅读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年中级会计考试决胜策略及试题与答案
- 消防教育与培训效果评估的标准试题及答案
- 医疗旅游行业的广告策略与市场分析
- 医患沟通技巧与商务谈判能力提升
- 2025年建造师常考知识试题及答案
- 应试经验2025中级会计试题及答案
- 矿山地质灾害危险性评估要点
- 泰勒斯威夫特英文介绍演示文稿
- 超星尔雅学习通《带您走进西藏》章节测试答案
- 施工监理投标报价单
- 阳江海上风电项目建议书
- 大学本科毕业设计毕业论文-网上药店管理系统的设计与实现
- DBJ∕T 13-264-2017 福建省石砌体结构加固技术规程
- 洞口县黄桥镇污水处理厂入河排污口设置论证报告
- T∕CGMA 081001-2018 整体式高速齿轮传动装置通用技术规范
- 核事故现场处置中的洗消问题
- FeNO测定及应用
评论
0/150
提交评论