傳輸層向上層提供哪些服務(wù)_第1頁
傳輸層向上層提供哪些服務(wù)_第2頁
傳輸層向上層提供哪些服務(wù)_第3頁
傳輸層向上層提供哪些服務(wù)_第4頁
傳輸層向上層提供哪些服務(wù)_第5頁
已閱讀5頁,還剩102頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

傳輸層向上層提供哪些服務(wù)第1頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫TransportLayer’staskistoprovidereliable,cost-effectivedatatransportfromthesourcemachinetothedestinationmachine,independentlyofthephysicalnetworkornetworkscurrentlyinuse.Chapter6.TheTransportLayer

第2頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫

MainTopics:1,傳輸層向上層提供哪些服務(wù)?2,服務(wù)質(zhì)量(QoS)如何描述?3,傳輸層如何向上層提供服務(wù)?4,通過哪些原語向應(yīng)用層提供服務(wù)?6.1TheTransportService第3頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●Twotypesoftransportservice○connection-oriented

○connectionless●Whydoweneedtransportlayer?1、Thetransportlayerserviceissimilartothenetworklayerservice.2、Thenetworklayerisonepartofcommunicationsubnet,whoseservicesareprovidedbyISP.Theusershavenorealcontroloverthenetworklayer.6.1TheTransportService第4頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●Whydoweneedtransportlayer?3、Theonlypossibilityistoputontopofthenetworklayeranotherlayerthatimprovesthequalityoftheservice.4、Evencommunicationsubnethasprovidedverygoodservices,someusersstilldoreliableworkagain.Forexample,band,etc.6.1TheTransportService第5頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●Howtousetransportservice?○Method:serviceaccessprimitives○Site:interface,TSAP●Differencebetweentransportserviceandnetworkservice:○DifferentQoS:networkserviceisn’talwaysreliable.transportlayerprovidereliableservices.○Differentserviceobjectnetworkserviceuser:transportentityTransportserviceuser:application.

6.1.2TransportServicePrimitives第6頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●Establishconnections:1、服務(wù)器執(zhí)行LISTEN原語,阻塞自己直到客戶請求出現(xiàn)。2、客戶端希望與服務(wù)器連接,執(zhí)行CONNECT原語,客戶端的傳輸層發(fā)出連接建立請求的TPDU。TPDU:Themessagessentfromtransportentitytotransportentity.3、服務(wù)器的傳輸層收到該TPDU,檢查服務(wù)器的阻塞情況。如阻塞,喚醒服務(wù)器,回送連接建立的應(yīng)答TPDU4、客戶端的傳輸層收到該TPDU,客戶程序被喚醒,連接建立。6.1.2TransportServicePrimitives第7頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫服務(wù)器y號TSAP應(yīng)用程序x號TSAPListenCRTSAPconnectACCTSAP6.1.2TransportServicePrimitives第8頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●

Datatransmission:1、任何一方A,執(zhí)行RECEIVE原語,阻塞自己,等待對方發(fā)SEND原語。2、對方B執(zhí)行SEND原語,傳輸實體發(fā)送數(shù)據(jù)TPDU,A收到,將數(shù)據(jù)部分交給A,解除阻塞;●

Releaseconnections:1、asymmetric:任何一方A執(zhí)行DISCONNECT原語,發(fā)送拆除連接TPDU,到達(dá)B,釋放空間,連接釋放。2、symmetric:一方執(zhí)行DISCONNECT后,不發(fā)送數(shù)據(jù)但可以接收數(shù)據(jù),收到對方的拆除TPDU后,拆除連接。6.1.2TransportServicePrimitives第9頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫服務(wù)器y號TSAP應(yīng)用程序x號TSAPReceiveDATATPDUSend6.1.2TransportServicePrimitives第10頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫Figure6-5.ThesocketprimitivesforTCP.6.1.3BerkeleySockets第11頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫6.1.3BerkeleySockets第12頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●ComparabilitybetweenTlayerandDLlayer▲一點到另外一點的問題▲差錯控制、PDU順序、流量控制問題等●DifferencebetweenTlayerandDLlayer1、Mainreason:differentrunningenvironmentDL層實體之間:physicallineT層實體之間:communicationsubnet6.2ElementsofTransportProtocols第13頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●DifferencebetweenTlayerandDLlayer2、Addressing:DL層:和相鄰的DL層實體通信(線路的另外一端),明確T層:和哪個主機的哪個應(yīng)用通信?3、連接建立與拆除DL層:簡單(線路那一端就是對等層實體,連接建立幀丟失和出錯都可以完美地解決)T層:復(fù)雜(子網(wǎng)的分組存儲能力,使得舊的重復(fù)的分組導(dǎo)致錯誤的連接建立)4、數(shù)據(jù)緩存和流量控制DL層:為每一個連接分配的緩存區(qū)是固定的T層:為每一個連接動態(tài)分配緩存區(qū)6.2ElementsofTransportProtocols第14頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●尋址在傳輸層的表現(xiàn):一個應(yīng)用程序指定與哪個遠(yuǎn)程的應(yīng)用程序進(jìn)行連接▲子網(wǎng)上的主機很多,和哪臺主機連接▲主機上的應(yīng)用很多,和哪個應(yīng)用連接●尋址的一般技術(shù):采用TSAP▲TCP/IP:TSAP=(NSAP,Port) (IP,Port)▲服務(wù)守侯在TSAP(某IP的某個端口上),等待著客戶(已分配了IP,Port)和它建立連接6.2.1Addressing第15頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●NSAP,TSAP,N(網(wǎng)絡(luò)連接)和T(傳輸連接)的關(guān)系★2個應(yīng)用(Host1和Host2)通過1個T連接聯(lián)系起來★1個T連接由2個TSAP決定★2個傳輸實體通過1個N連接連接起來★1個T連接建立在1個N連接之上第16頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫服務(wù)器122號TSAP應(yīng)用程序6號TSAPconnect.request6-122TSAPConnect.indication網(wǎng)絡(luò)連接尋址的過程第17頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●一個應(yīng)用如何知道遠(yuǎn)程的服務(wù)器的TSAP。方案1:每一種服務(wù)都有一個固定的TSAP,并且公之于眾。例如:FTPServer的端口號為21,Telnet的端口為23,HTTPServer的端口為80。問題1:只適用于數(shù)量少、固定的服務(wù);問題2:某些服務(wù)很少被使用,服務(wù)進(jìn)程整天守侯在固定TSAP,浪費資源。6.2.1Addressing第18頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫方案2:initialconnectionprotocol(初始連接協(xié)議:機器上負(fù)載較輕的服務(wù)器平時不運行,而是在機器上運行一個processserver,守侯在一個知名TSAP,作為其它服務(wù)的代理。如果客戶進(jìn)程試圖和一些服務(wù)連接,如果服務(wù)器沒有運行,首先和進(jìn)程服務(wù)器連接,進(jìn)程服務(wù)器啟動相應(yīng)服務(wù)器,完成轉(zhuǎn)交連接。)問題:對有些服務(wù)不能夠倉促創(chuàng)建,則不適合使用該協(xié)議。6.2.1Addressing第19頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫▲方案3:名字服務(wù)器(nameserver)或目錄服務(wù)器(directoryserver)△nameserver維護(hù)它所提供的服務(wù)和TSAP的對應(yīng)關(guān)系△用戶首先和nameserver建立連接△用戶詢問指定名字的TSAP,nameserver返回TSAP△用戶拆除與nameserver的連接△用戶和指定TSAP建立連接△類比:電話查詢臺△其它:新的服務(wù)需要向名字服務(wù)器注冊6.2.1Addressing第20頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●本地傳輸實體知道TSAP,如何知道該TSAP所在的機器(NSAP)★層次型地址(hierarchicaladdress):TSAP中包括NSAP地址例如:TSAP=(NSAP,PORT)★平面性地址(flataddress):需要TSAP到NSAP的映射的服務(wù)6.2.1Addressing第21頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫TheInternethastwomainprotocolsinthetransportlayer:1.UDP

connectionlessprotocol2.TCPconnection-orientedprotocol6.4TheInternetTransportProtocols:UDP第22頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●Mainfunction:▲Provideconnectionlessdatatransmissionforupperlayer.●Application:

▲很多交互只有一個請求和一個響應(yīng),數(shù)據(jù)庫訪問▲對這些應(yīng)用建立一個連接效率低●Mainidea:▲User’sdataisencapsulatedintoUDP’Sdatafield.▲PassUDPpackettoIPLayer.▲TransmitUDPpackettoobjecthost.

Passthedataparttodifferentapplicationprocessthroughdifferentportnumber.6.4.1IntroductiontoUDP第23頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫UDP頭格式UDP只在IP的數(shù)據(jù)報服務(wù)之上增加了很少一點的功能,即端口的功能和差錯檢測。6.4.1IntroductiontoUDP第24頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫

雖然UDP用戶數(shù)據(jù)報只能提供不可靠的交付,但UDP在某些方面有其特殊的優(yōu)點:▲發(fā)送數(shù)據(jù)之前不需要建立連接▲UDP的主機不需要維持復(fù)雜的連接狀態(tài)表?!鳸DP用戶數(shù)據(jù)報只有8個字節(jié)的首部開銷?!W(wǎng)絡(luò)出現(xiàn)的擁塞不會使源主機的發(fā)送速率降低,這對某些實時應(yīng)用非常重要。6.4.1IntroductiontoUDP第25頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫6.4.2RemoteProcedureCall在傳統(tǒng)的編程概念中,過程是由程序員在本地編譯完成,并只能局限在本地運行的一段代碼,也即其主程序和過程之間的運行關(guān)系是本地調(diào)用關(guān)系。因此這種結(jié)構(gòu)在網(wǎng)絡(luò)日益發(fā)展的今天已無法適應(yīng)實際需求。傳統(tǒng)過程調(diào)用模式無法充分利用網(wǎng)絡(luò)上其他主機的資源(如CPU、Memory等),也無法提高代碼在實體間的共享程度,使得主機資源大量浪費。

第26頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫Whenaprocessonmachine1callsaprocedureonmachine2,thecallingprocesson1issuspendedandexecutionofthecalledproceduretakesplaceonRemoteProcedureCall第27頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫Informationcanbetransportedfromthecallertothecalleeintheparametersandcancomebackintheprocedureresult.Nomessagepassingisvisibletotheprogrammer.6.4.2RemoteProcedureCall第28頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫ThistechniqueisknownasRPC(RemoteProcedureCall)andhasbecomethebasisformanynetworkingapplications.6.4.2RemoteProcedureCall第29頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫通過RPC我們可以充分利用非共享內(nèi)存的多處理器環(huán)境(例如通過局域網(wǎng)連接的多臺工作站),這樣可以簡便地將應(yīng)用分布在多臺工作站上,應(yīng)用程序就像運行在一個多處理器的計算機上一樣。你可以方便的實現(xiàn)過程代碼共享,提高系統(tǒng)資源的利用率,也可以將以大量數(shù)值處理的操作放在處理能力較強的系統(tǒng)上運行,從而減輕前端機的負(fù)擔(dān)。6.4.2RemoteProcedureCall第30頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫RPC其實也是一種C/S的編程模式,有點類似C/SSocket編程模式,但要比它更高一層。當(dāng)我們在建立RPC服務(wù)以后,客戶端的調(diào)用參數(shù)通過底層的RPC傳輸通道,可以是UDP,也可以是TCP,并根據(jù)傳輸前所提供的目的地址及RPC上層應(yīng)用程序號轉(zhuǎn)至相應(yīng)的RPCApplicationPorgrammeServer,且此時的客戶端處于等待狀態(tài),直至收到應(yīng)答或TimeOut超時信號。

6.4.2RemoteProcedureCall第31頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫RPC是把傳統(tǒng)本地過程調(diào)用的概念加以擴充后引入分布式環(huán)境的一種形式。RPC的形式和行為與傳統(tǒng)本地過程調(diào)用極為相似,差別僅在于被調(diào)用的procedure(過程)實際運行在與調(diào)用者的場點不同的場點上(如圖1).也正是由于這一差別,得通過編寫程序來實現(xiàn)兩場地之間的連接和信息溝通。

6.4.2RemoteProcedureCall第32頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫6.4.2RemoteProcedureCall第33頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫RPC機制的實質(zhì)是實現(xiàn)OSI七層模型中的會話層功能.它在兩個試圖進(jìn)行通信的場點之間建立一條邏輯信道(即會話連接),并利用這個信道交換信息,不用時就釋放連接.下面我們就來看看RPC的通信模型。6.4.2RemoteProcedureCall第34頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫6.4.2RemoteProcedureCall第35頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫Client端:1)

發(fā)送遠(yuǎn)程過程調(diào)用的消息(以消息包形式)給遠(yuǎn)程的server端;2)

等待,直到收到server端對該請求的回復(fù);3)

一旦接收到來自server端的返回執(zhí)行結(jié)果,就繼續(xù)執(zhí)行后面的程序。Server端:

1)

傾聽狀態(tài),等待client端發(fā)送過程調(diào)用消息;2)

一旦接收到過程調(diào)用消息,server就抽取參數(shù)并分析它,然后執(zhí)行所請求的過程;3)

將執(zhí)行結(jié)果以消息包形式回送給client。

6.4.2RemoteProcedureCall第36頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫其中stub是一組RPC機制的操作原語,這些原語構(gòu)成了RPC的實現(xiàn)細(xì)節(jié),它可以獨立于client、server編程.Fig6.24Stepsinmakingaremoteprocedurecall.6.4.2RemoteProcedureCall第37頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫1)調(diào)用者調(diào)用本地stub中的一個過程(開始遠(yuǎn)程過程調(diào)用請求)。6.4.2RemoteProcedureCall第38頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫2)這個stub過程把有關(guān)的參數(shù)組裝成一個消息包或一組消息包,形成一條消息。運行此執(zhí)行過程的遠(yuǎn)程場點的IP地址和執(zhí)行該過程的進(jìn)程ID號也包含在這條消息中。6.4.2RemoteProcedureCall第39頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫3)將這條消息發(fā)送給對應(yīng)的RPCruntime(RPC運行庫)子程序,由這個子程序?qū)⑾l(fā)送到遠(yuǎn)程場點。6.4.2RemoteProcedureCall第40頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫4)在接收到這條消息時,server端的RPCruntime子程序調(diào)用與被調(diào)用者對應(yīng)的stub中的一個子程序,并讓它來處理消息。6.4.2RemoteProcedureCall第41頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫5)與被調(diào)用者對應(yīng)的stub中的這個子程序解封裝消息,解析出相關(guān)參數(shù),并用本地調(diào)用方式執(zhí)行所指定的過程。6.4.2RemoteProcedureCall第42頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫6)

返回調(diào)用結(jié)果,調(diào)用者對應(yīng)的stub子程序執(zhí)行return語句返回到用戶,整個RPC過程結(jié)束。6.4.2RemoteProcedureCall第43頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫實際上,從上面這個執(zhí)行過程中,我們可以看到RPC的實現(xiàn)主要有兩個問題需要解決。一個是在遠(yuǎn)程過程調(diào)用時,如何定位遠(yuǎn)程場點;另外一個就是相關(guān)的兩個場點必須能協(xié)同工作,所有這些工作對用戶都是透明的,依次執(zhí)行。

6.4.2RemoteProcedureCall第44頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫RTP被定義為傳輸音頻、視頻、模擬數(shù)據(jù)等實時數(shù)據(jù)的傳輸協(xié)議。1、應(yīng)用領(lǐng)域:實時多媒體2、流動的媒體在網(wǎng)絡(luò)上傳輸音/視頻(A/V)等多媒體信息,有下載和流式傳輸兩種方案?!捎孟螺d方式,用戶必須考慮兩個因素:①對客戶端的存儲需求和播放啟動延時。因為A/V文件一般都較大,所以需要的存儲容量也較大;②同時由于網(wǎng)絡(luò)帶寬的限制,下載常常要花數(shù)分鐘甚至數(shù)小時。

6.4.3TheReal-TimeTransportProtocol第45頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫▲流媒體簡單來說就是應(yīng)用流技術(shù)在網(wǎng)絡(luò)上傳輸?shù)亩嗝襟w文件.

流技術(shù)就是把連續(xù)的影象和聲音信息經(jīng)過壓縮處理后放上網(wǎng)站服務(wù)器,讓用戶一邊下載一邊觀看、收聽,而不需要等整個壓縮文件下載到自己機器后才可以觀看的網(wǎng)絡(luò)傳輸技術(shù)。

流技術(shù)先在使用者端的電腦上創(chuàng)建緩沖區(qū),于播放前預(yù)先下載一段數(shù)據(jù)作為緩沖,當(dāng)網(wǎng)路實際連線速度小于播放所耗用資料的速度時,播放程序就會取用這一小段緩沖區(qū)內(nèi)的數(shù)據(jù),避免播放的中斷,使得播放品質(zhì)得以維持。6.4.3TheReal-TimeTransportProtocol第46頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫支持流媒體傳輸?shù)木W(wǎng)絡(luò)協(xié)議:(1)實時傳輸協(xié)議RTP(Real-timeTransportProtocol),一種用于Internet上針對多媒體數(shù)據(jù)流的一種傳輸協(xié)議。(2)實時傳輸控制協(xié)議RTCP(Real-timeTransportControlProtocol),和RTP一起提供流量控制和擁塞控制服務(wù)。(3)實時流協(xié)議RTSP(RealTimeStreamingProtocol)

,定義了一對多的應(yīng)用程序如何有效地通過IP網(wǎng)絡(luò)傳送多媒體數(shù)據(jù)。(4)RSVP協(xié)議(ResourceReserveProtocol),正在開發(fā)的Internet上的資源預(yù)訂協(xié)議。

6.4.3TheReal-TimeTransportProtocol第47頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫Figure6-25.(a)ThepositionofRTPintheprotocolstack.(b)Packetnesting.6.4.3TheReal-TimeTransportProtocol第48頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫前面講到UDP,它是一種無連接、不可靠的服務(wù),一般應(yīng)用在多媒體或C/S模型中,但大多數(shù)情況下需要可靠的數(shù)據(jù)傳輸服務(wù)。

6.5TheInternetTransportProtocols:TCP第49頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫△功能:提供可靠的,面向連接的數(shù)據(jù)傳輸服務(wù),定義在RFC793?!鱐CP協(xié)議的設(shè)計目標(biāo):⑴IP協(xié)議提供的數(shù)據(jù)傳輸服務(wù)不可靠。

⑵TCP協(xié)議在IP協(xié)議提供的數(shù)據(jù)傳輸服務(wù)基礎(chǔ)上,提供可靠的、端到端的字節(jié)流服務(wù)。

6.5.1IntroductiontoTCP第50頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫TSAP:套接字(socket)●

Port:一個UDP、TCP實體可以向多個高層用戶提供服務(wù),使用端口區(qū)分不同的用戶。▲小于1024的端口是知名端口(well-knownport),例:HTTP80;FTP21;TELNET23●TSAP=IP地址+16bit端口號▲服務(wù)器守侯在哪個IP地址的哪個Port?▲一個客戶應(yīng)用程序在哪個IP地址的機器上,并且使用什么端口?▲套接字(socket):TCP/UDP協(xié)議中的TSAP6.5.2TheTCPServiceModel第51頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●TCP

connection:△發(fā)送方套接字+接收方套接字(2endpoints)△一個套接字可以被多個連接使用,例子ftpServer●TCPfactors:△Asender,areceiver△Reliable,orderedbytestream.

fullduplex:Trafficcangoinbothdirectionsatthesametime.△

connection-oriented:在通信之前,交換控制信息,初始化表空間等操作?!?/p>

Flowcontrol:發(fā)送端不會淹沒接收端6.5.2TheTCPServiceModel第52頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●TCP協(xié)議交換的數(shù)據(jù)單位:段(segment)△段的結(jié)構(gòu):20字節(jié)的頭部+一些字節(jié)的選項0或多個字節(jié)的數(shù)據(jù)△段的大?。河蒚CP實體確定,但是要受到兩個限制形成的數(shù)據(jù)段不大于65515個字節(jié)數(shù)據(jù)段的長度>網(wǎng)絡(luò)MTU(一般為1500)時將該IP分組分段每一個fragment都有TCP頭和IP頭6.5.3TheTCPProtocol第53頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫段和應(yīng)用數(shù)據(jù)的關(guān)系●應(yīng)用數(shù)據(jù)作為段的數(shù)據(jù)部分●應(yīng)用數(shù)據(jù)可以幾塊一起作為一個段的數(shù)據(jù)部分●也可以將一塊應(yīng)用數(shù)據(jù)分解成幾個部分,分別作為段的數(shù)據(jù)部分Figure6-28.(a)Four512-bytesegmentssentasseparateIPdatagrams.(b)The2048bytesofdatadeliveredtotheapplicationinasingleREADcall.6.5.3TheTCPProtocol第54頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●TCP協(xié)議的流量控制△使用滑動窗口協(xié)議,窗口的大小由發(fā)送端向接收端申請,由接收端確定。△發(fā)送窗口的大小是動態(tài)地由接收端調(diào)整的,最大尺寸是變化的?!魇褂?2位序號(段的標(biāo)識、確認(rèn)、流量控制)△發(fā)送段給對方,對方將確認(rèn)信息和窗口信息通過反向數(shù)據(jù)捎帶過來6.5.3TheTCPProtocol第55頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●TCP協(xié)議的復(fù)雜性△IP協(xié)議提供的服務(wù)不可靠△而TCP協(xié)議要在IP協(xié)議的基礎(chǔ)上向應(yīng)用層提供可靠的數(shù)據(jù)傳遞服務(wù)△一些復(fù)雜的情況分組丟失或因為擁塞而延遲,超時重發(fā)可能要分段,目標(biāo)端TCP重組失序,目標(biāo)端TCP排序6.5.3TheTCPProtocol第56頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫Sourceport:源端口DesPort:目標(biāo)端口6.5.4TheTCPSegmentHeader第57頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫sequencenumber:順序號6.5.4TheTCPSegmentHeader第58頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫acknowledgementnumber:希望對方下一個傳輸?shù)淖止?jié)號是從ACKNUM開始6.5.4TheTCPSegmentHeader第59頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫Headerlen:指明TCP的頭部長度,4字節(jié)為單位,也指數(shù)據(jù)開始的地方6.5.4TheTCPSegmentHeader第60頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫6bit未用6.5.4TheTCPSegmentHeader第61頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫6個1bit標(biāo)志6.5.4TheTCPSegmentHeader第62頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫URG:緊急指針被使用的話,置為16.5.4TheTCPSegmentHeader第63頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫ACK:當(dāng)ACK=1時,ACKNUM是有效的;6.5.4TheTCPSegmentHeader第64頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫PSH:PSH=1,接收端TCP實體立即將數(shù)據(jù)交付給應(yīng)用層實體,而不是等緩沖區(qū)滿6.5.4TheTCPSegmentHeader第65頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫RST:表示拒絕連接或拒絕非法的數(shù)據(jù)段,由于復(fù)位或主機崩潰造成的錯誤的連接出現(xiàn)6.5.4TheTCPSegmentHeader第66頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫SYN:用于連接管理,連接建立;當(dāng)SYN=1,ACK=0時:連接請求;當(dāng)SYN=1,ACK=1時:連接接受6.5.4TheTCPSegmentHeader第67頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫FIN:用于連接管理,連接釋放;FIN=1,表明,本方已沒有數(shù)據(jù)發(fā)送了,但可以接收數(shù)據(jù),單向連接狀態(tài)6.5.4TheTCPSegmentHeader第68頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫Winsize:窗口大小,接收端愿意接收的byte個數(shù)Checksum:校驗和,增加可靠性6.5.4TheTCPSegmentHeader第69頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫▲校驗范圍:將整個段和偽頭部▲計算校驗和的技術(shù):以16bit為單位(如果不足補1個byte),以補碼形式相加,最后對結(jié)果求補▲違反了分層的原則。Checksum:校驗和,增加可靠性第70頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫Option:選項:增加額外設(shè)置,變長6.5.4TheTCPSegmentHeader第71頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫傳輸層連接建立的復(fù)雜性1、傳輸層實體之間是整個子網(wǎng);2、子網(wǎng)的存儲能力,會造成延遲的重復(fù)分組問題6.5.5TCPConnectionEstablishment第72頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●傳輸層連接技術(shù):three-wayhandshake▲CR:主機1選擇一個初始序號x,向主機2發(fā)送一個連接請求的TPDU▲ACC:主機2接收該TPDU,并回送一個確認(rèn)TPDU,包含了自己的序號y▲DATA:主機1向主機2發(fā)送的第一個數(shù)據(jù)TPDU中確認(rèn)了主機2的序號y6.5.5TCPConnectionEstablishment第73頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫Three-wayhandshake:●情況1:延遲重復(fù)分組▲CR是延遲的重復(fù)分組▲主機2接收主機1的請求,并回應(yīng)ACC,序號為y▲主機1拒絕連接的建立▲主機2釋放半連接有錯6.5.5TCPConnectionEstablishment第74頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●情況2:延遲重復(fù)分組▲存在延遲的CR和對ACC確認(rèn),而且它們的時序配合的很好▲主機2收到CR,回應(yīng)一個確認(rèn)ACK,序號為y?!鴣砹艘粋€對ACK的確認(rèn)-DATA(延遲的),序號為x,但是ACK序號為不同于Y▲主機2拒絕這個連接▲主機1拒絕這個連接Three-wayhandshake:6.5.5TCPConnectionEstablishment第75頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫釋放連接的兩種方式非對稱釋放

當(dāng)一方發(fā)出DR(DisconnectRequest)后,雙方通信中斷非常突然,可能會造成數(shù)據(jù)丟失不適合于傳輸層數(shù)據(jù)通信6.5.6TCPConnectionRelease第76頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫釋放連接的兩種方式對稱釋放(四次揮手)將一個雙向連接看成兩個方向的單向連接構(gòu)成一方發(fā)出DR后,不發(fā)送數(shù)據(jù),但能夠接收數(shù)據(jù)(結(jié)束了這一方向到對方的單向連接)另外一方在發(fā)出DR后,結(jié)束了另一個方向的單向連接整個通信終止DRDR6.5.6TCPConnectionRelease第77頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫釋放連接(正常情況)1、主機1發(fā)出DR,啟動定時器2、主機2收到DR,啟動定時器,并回應(yīng)3、主機1收到回應(yīng),再發(fā)送一個對回應(yīng)的確認(rèn)ACK,釋放連接4、主機2收到ACK,釋放連接6.5.6TCPConnectionRelease第78頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫釋放連接(異常)▲ACK丟失1、主機2定時器超時2、主機2釋放連接6.5.6TCPConnectionRelease第79頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫釋放連接(異常)第二個DR丟失1、主機1的定時器超時2、再次要求釋放連接6.5.6TCPConnectionRelease第80頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫釋放連接(異常)第二個DR丟失,且主機1重發(fā)的DR也丟失1、N次超時之后,主機1釋放2、主機2定時器超時,釋放連接6.5.6TCPConnectionRelease第81頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫釋放連接的三次握手技術(shù)▲失敗的情況主機1的DR丟失,并且以后重發(fā)的DR都丟失。主機1重發(fā)N次之后,釋放連接。主機2沒有收到釋放連接的要求,維持連接。半連通狀態(tài)?!缓玫慕鉀Q辦法主機1重發(fā)N次之后,仍然維持連接。問題主機2有可能收到DR(主機2的DR丟失),已經(jīng)釋放▲解決辦法在一段時間內(nèi)沒有收到任何TPDU,連接自動釋放。要求雙方,在沒有數(shù)據(jù)發(fā)送期間,通過定時器的觸發(fā),發(fā)送一些偽TPDU。6.5.6TCPConnectionRelease第82頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫6.5.8TCPTransmissionPolicy第83頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●DL層的數(shù)據(jù)傳輸策略▲發(fā)送端有幀落入發(fā)送窗口,允許就發(fā)送▲接收端只要將幀收到并交付給上層就發(fā)確認(rèn)給對方,讓發(fā)送窗口向前走。●DL層的傳輸策略不適合傳輸層▲主要問題:效率太低?!粋€例子:客戶端是telnet客戶程序;服務(wù)器是交互式編輯器。6.5.8TCPTransmissionPolicy第84頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫◆客戶每輸入一個字符,交給TCP,形成一個IP分組,41字節(jié)◆接收端TCP,每收到一個IP分組,發(fā)確認(rèn)分組,40B1:Typeachar2:totcp3:DATAPDU4:ACK6:Buffer8:result7:result5:toServer一個例子第85頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫◆接收端服務(wù)器接受1個字符,發(fā)一個分組告訴發(fā)送端緩沖區(qū)向前移動,40Bytes◆處理結(jié)果返回客戶端(回顯),41Bytes◆對每個輸入的字符共162B,并發(fā)送4個數(shù)據(jù)段。6.5.8TCPTransmissionPolicy1:Typeachar2:totcp3:DATAPDU4:ACK6:Buffer8:result7:result5:toServer第86頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫1:Typeachar2:totcp3:DATAPDU4:ACK6:Buffer8:result7:result5:toServer第87頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●Nagle‘salgorithm▲目的:使發(fā)送方不再發(fā)送小的數(shù)據(jù)段▲原理:1,Whendatacomeintothesenderonebyteatatime,justsendthefirstbyteandbufferalltherestuntiltheoutstandingbyteisacknowledged.2,ThensendallthebufferedcharactersinoneTCPsegmentandstartbufferingagainuntiltheyareallacknowledged.6.5.8TCPTransmissionPolicy第88頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫1、接收TCP收到很大的數(shù)據(jù)塊,將它的緩存用完sillywindowsyndrome第89頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫2、接收端的應(yīng)用一次只從TCP中取走一個字符sillywindowsyndrome第90頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫3、接收TCP向發(fā)送端TCP報告它出現(xiàn)了一個字符的可用緩存sillywindowsyndrome第91頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫4、發(fā)送端發(fā)送一個字符,緩存用完,停止發(fā)送sillywindowsyndrome第92頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫5、接收端的應(yīng)用再次從TCP中取走一個字符sillywindowsyndrome第93頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫6、接收端TCP向發(fā)送端TCP報告它出現(xiàn)了一個可用的緩存sillywindowsyndrome第94頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●Solution:clarkalgorithm▲禁止接收端發(fā)送較少字節(jié)的窗口更新信息▲等到緩存有最大段大小的空間;▲或緩存區(qū)有1/2空閑時;▲以上兩者的最小值?!癜l(fā)送端和接收端相互配合▲解決問題:一次發(fā)送一個字符的問題,效率低。▲發(fā)送端:采用nagle算法,或發(fā)送端積攢一個完整的數(shù)據(jù)段或接收緩存區(qū)的1/2時發(fā)送,解決發(fā)送方不要發(fā)送太小的數(shù)據(jù)段?!邮斩耍篶lark算法,解決接收方不要請求太小的數(shù)據(jù)段。sillywindowsyndrome第95頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●Congestion▲擁塞:分組的數(shù)量已超過了子網(wǎng)的處理能力?!鴵砣刂浦饕枷耄航档拖蜃泳W(wǎng)中發(fā)送分組的速率。●分組的來源▲網(wǎng)絡(luò)層的數(shù)據(jù)大都來源于傳輸層,傳輸層是源?!罱K來源于應(yīng)用,對于用戶而言,不可能要求他們減少數(shù)據(jù)產(chǎn)生的速率。6.5.9TCPCongestionControl第96頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫●原因:應(yīng)用很多,假如在應(yīng)用層進(jìn)行擁塞控制,將用戶的數(shù)據(jù)緩存起來不是一個很有效的方案?!裨趥鬏攲訉嶓w中體現(xiàn)擁塞控制,緩存所有應(yīng)用產(chǎn)生的數(shù)據(jù),減少發(fā)往子網(wǎng)的速率,是很有效的方法?!駬砣臋z測▲以定時器超時作為擁塞的指標(biāo)▲定時器超時的原因分組由于出錯而丟失,情況比較少分組由于擁塞而被路由器丟棄,情況比較多分組由于接收端緩存不夠而被目標(biāo)主機拋棄,通過預(yù)留緩存區(qū)辦法很少發(fā)生●分組被丟棄的原因接收端緩存有限,一次發(fā)送分組的數(shù)量>緩存區(qū)網(wǎng)絡(luò)處理能力有限,超過了網(wǎng)絡(luò)的容量6.5.9TCPCongestionControl第97頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫Figure6-36.(a)Afastnetworkfeedingalow-capacityreceiver.(b)Aslownetworkfeedingahigh-capacityreceiver.6.5.9TCPCongestionControl第98頁,共107頁,2023年,2月20日,星期日百度文庫百度文庫發(fā)送方維持的兩個窗口●擁塞窗口(congestionwindow):目的是不讓發(fā)送速率超過子網(wǎng)處理能力●接收窗

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論