计算机网络原理(英文版)课件_第1页
计算机网络原理(英文版)课件_第2页
计算机网络原理(英文版)课件_第3页
计算机网络原理(英文版)课件_第4页
计算机网络原理(英文版)课件_第5页
已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论