版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章傳輸層協(xié)議《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議2本章學(xué)習(xí)要求:掌握:用戶數(shù)據(jù)報(bào)協(xié)議UDP。掌握:傳輸控制協(xié)議TCP。了解:StreamControlTransmissionProtocolSCTP
《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議35.1網(wǎng)絡(luò)環(huán)境中分布式進(jìn)程通信的基本概念《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議4網(wǎng)絡(luò)層及以下的各層實(shí)現(xiàn)了網(wǎng)絡(luò)中主機(jī)之間的通信,但是數(shù)據(jù)通信不是最終的目的;計(jì)算機(jī)網(wǎng)絡(luò)最本質(zhì)的活動(dòng)是分布在不同地理位置的主機(jī)之間的進(jìn)程通信,以實(shí)現(xiàn)各種網(wǎng)絡(luò)服務(wù)功能;設(shè)置傳輸層的主要目的就是要實(shí)現(xiàn)分布式進(jìn)程通信。
《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議55.1.1單機(jī)系統(tǒng)中的進(jìn)程通信方法
進(jìn)程和進(jìn)程通信是操作系統(tǒng)中的一個(gè)最基本的概念;程序是一個(gè)在時(shí)間上按照嚴(yán)格次序的前后相繼的操作序列,是一個(gè)靜態(tài)的概念;進(jìn)程是一個(gè)動(dòng)態(tài)的概念,它是一個(gè)程序?qū)δ硞€(gè)數(shù)據(jù)集的執(zhí)行過(guò)程;《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議6正在運(yùn)行的進(jìn)程叫做運(yùn)行態(tài);等待分配CPU的進(jìn)程叫做就緒態(tài);等待其他的條件的進(jìn)程叫做等待態(tài);進(jìn)程狀態(tài)反映出進(jìn)程執(zhí)行過(guò)程的變化;要保證系統(tǒng)正常地工作,操作系統(tǒng)必須對(duì)進(jìn)程的創(chuàng)建、撤消與狀態(tài)轉(zhuǎn)換進(jìn)行控制;從進(jìn)程的觀點(diǎn)看,操作系統(tǒng)的核心則是控制和協(xié)調(diào)這些進(jìn)程的運(yùn)行,解決進(jìn)程之間的通信?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議7在解決單機(jī)環(huán)境下操作系統(tǒng)的進(jìn)程通信中:BSDUNIX引入了管道(pipe)、命名管道(namedpipe)和軟中斷信號(hào)(signal)機(jī)制;AT&TUNIX引入了消息(message)、共享存儲(chǔ)區(qū)(sharedmemory)和信號(hào)量(semaphore)等;UNIX系統(tǒng)的消息、共享存儲(chǔ)區(qū)和信號(hào)量統(tǒng)稱為進(jìn)程通信(interprocesscommunication,IPC)機(jī)制;IPC機(jī)制也不適應(yīng)于網(wǎng)絡(luò)環(huán)境中的進(jìn)程通信?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議85.1.2網(wǎng)絡(luò)環(huán)境中分布式進(jìn)程通信的特點(diǎn)用一句最簡(jiǎn)單的話去描述計(jì)算機(jī)網(wǎng)絡(luò),那就是:
“計(jì)算機(jī)網(wǎng)絡(luò)是分布在不同地理位置的多臺(tái)獨(dú)立的計(jì)算機(jī)系統(tǒng)的集合”?!蔼?dú)立的計(jì)算機(jī)系統(tǒng)”意味著連網(wǎng)的每一臺(tái)計(jì)算機(jī)的操作與資源是由自己的操作系統(tǒng)所管理;用戶共享的網(wǎng)絡(luò)資源及網(wǎng)絡(luò)所能提供的服務(wù)功能最終是通過(guò)網(wǎng)絡(luò)環(huán)境中的分布式進(jìn)程通信來(lái)實(shí)現(xiàn)的?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議9網(wǎng)絡(luò)環(huán)境中的進(jìn)程通信與單機(jī)系統(tǒng)內(nèi)部的進(jìn)程通信的主要區(qū)別:網(wǎng)絡(luò)中主機(jī)的高度自治性;不是在同一個(gè)主機(jī)系統(tǒng)之中,沒(méi)有一個(gè)統(tǒng)一的高層進(jìn)行控制與管理;網(wǎng)絡(luò)中一臺(tái)主機(jī)對(duì)其他主機(jī)的
?活動(dòng)狀態(tài);
?位于其他主機(jī)系統(tǒng)中的各個(gè)進(jìn)程狀態(tài);
?這些進(jìn)程什么時(shí)間參與網(wǎng)絡(luò)活動(dòng);
?希望與網(wǎng)絡(luò)中哪一臺(tái)主機(jī)的什么進(jìn)程通信一概無(wú)從知道?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議101.網(wǎng)絡(luò)環(huán)境中分布式進(jìn)程通信需要解決:進(jìn)程命名與尋址方法多重協(xié)議的識(shí)別進(jìn)程間相互作用的模式《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議112.網(wǎng)絡(luò)環(huán)境中進(jìn)程標(biāo)識(shí)在一臺(tái)計(jì)算機(jī)中,不同的進(jìn)程用進(jìn)程號(hào)或進(jìn)程標(biāo)識(shí)(processID)惟一地標(biāo)識(shí)出來(lái)。網(wǎng)絡(luò)環(huán)境中完整的進(jìn)程標(biāo)識(shí)應(yīng)該是:
?本地主機(jī)地址-本地進(jìn)程標(biāo)識(shí);
?遠(yuǎn)程主機(jī)地址-遠(yuǎn)程進(jìn)程標(biāo)識(shí)。進(jìn)程地址也叫做端口號(hào)(portnumber)。
《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議123.多重協(xié)議的識(shí)別UNIX操作系統(tǒng)的TCP/IP的傳輸層就有TCP協(xié)議和UDP協(xié)議;網(wǎng)絡(luò)環(huán)境中一個(gè)進(jìn)程的全網(wǎng)惟一的標(biāo)識(shí)需要一個(gè)三元組來(lái)表示:協(xié)議,本地地址,本地端口號(hào)。《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議13網(wǎng)絡(luò)環(huán)境中一個(gè)完整的進(jìn)程通信標(biāo)識(shí)需要一個(gè)五元組來(lái)表示:
協(xié)議本地地址本地端口號(hào)遠(yuǎn)地地址遠(yuǎn)地端口號(hào)在UNIX操作系統(tǒng)中:三元組又叫做半相關(guān)half-association
五元組叫做一個(gè)相關(guān)association《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議145.1.3進(jìn)程間相互作用模式:Client/Server模型
1.Client/Server模型的基本概念
網(wǎng)絡(luò)中每臺(tái)聯(lián)網(wǎng)的計(jì)算機(jī)既為本地用戶提供服務(wù),也為網(wǎng)絡(luò)的其他主機(jī)的用戶提供服務(wù);每臺(tái)聯(lián)網(wǎng)的計(jì)算機(jī)的硬件、軟件與數(shù)據(jù)資源應(yīng)該既是本地用戶可以使用的資源,也是網(wǎng)絡(luò)的其他主機(jī)的用戶可以共享的資源;每一項(xiàng)網(wǎng)絡(luò)服務(wù)都是對(duì)應(yīng)一個(gè)“服務(wù)程序”進(jìn)程;
“服務(wù)程序”進(jìn)程要為每一個(gè)獲準(zhǔn)的網(wǎng)絡(luò)用戶請(qǐng)求執(zhí)行一組規(guī)定的動(dòng)作,以滿足用戶網(wǎng)絡(luò)資源共享的需要;
《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議15網(wǎng)絡(luò)環(huán)境中進(jìn)程通信要解決的進(jìn)程間相互作用的模式;在TCP/IP協(xié)議體系中,進(jìn)程間的相互作用采用客戶/服務(wù)器(Client/Server)模型;客戶與服務(wù)器分別表示相互通信的兩個(gè)應(yīng)用程序的進(jìn)程;客戶向服務(wù)器發(fā)出服務(wù)請(qǐng)求,服務(wù)器響應(yīng)客戶的請(qǐng)求,提供客戶機(jī)所需要的網(wǎng)絡(luò)服務(wù)?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議162.為什么要采用客戶機(jī)/服務(wù)器模型?網(wǎng)絡(luò)資源分布的不均勻性網(wǎng)絡(luò)資源分布的不均勻性表現(xiàn)在硬件、軟件和數(shù)據(jù)等三個(gè)方面;網(wǎng)絡(luò)資源分布的不均勻性是客觀存在的,同時(shí)也是網(wǎng)絡(luò)應(yīng)用系統(tǒng)設(shè)計(jì)者的設(shè)計(jì)思想的體現(xiàn);“資源共享”就是因?yàn)榫W(wǎng)絡(luò)不同結(jié)點(diǎn)之間在硬件配置、計(jì)算能力、存儲(chǔ)能力,以及數(shù)據(jù)分布等方面存在著差距與不均勻性;能力強(qiáng)、資源豐富的充當(dāng)服務(wù)器,能力弱或需要某種資源的成為客戶。《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議17網(wǎng)絡(luò)環(huán)境中進(jìn)程通信的異步性
分布在不同主機(jī)系統(tǒng)中的進(jìn)程什么時(shí)間發(fā)出通信請(qǐng)求,希望和哪一臺(tái)主機(jī)的哪一個(gè)進(jìn)程通信,以及對(duì)方進(jìn)程是否能接受通信請(qǐng)求是不確定的;網(wǎng)絡(luò)分布式進(jìn)程之間不存在一個(gè)高層的調(diào)度與協(xié)調(diào);必須要建立一個(gè)體制,為準(zhǔn)備通信的進(jìn)程之間建立起連接,在進(jìn)程交換數(shù)據(jù)的過(guò)程中維護(hù)連接,為數(shù)據(jù)交換提供同步?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議18客戶—一次進(jìn)程通信中發(fā)起的一方;服務(wù)器—接受進(jìn)程通信的請(qǐng)求,提供服務(wù)的一方;每一次通信由客戶進(jìn)程隨機(jī)啟動(dòng);服務(wù)器進(jìn)程處于等待狀態(tài),及時(shí)響應(yīng)客戶服務(wù)請(qǐng)求?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議195.1.4進(jìn)程通信中Client/Server模型實(shí)現(xiàn)方法客戶機(jī)/服務(wù)器模型的工作實(shí)質(zhì)是“請(qǐng)求驅(qū)動(dòng)”;在網(wǎng)絡(luò)環(huán)境中,客戶進(jìn)程發(fā)出請(qǐng)求完全隨機(jī)。在同一個(gè)時(shí)刻,可能有多個(gè)客戶進(jìn)程向一個(gè)服務(wù)器發(fā)出服務(wù)請(qǐng)求;
為了實(shí)現(xiàn)服務(wù)器的功能,在服務(wù)器的設(shè)計(jì)中要解決服務(wù)器的:并發(fā)請(qǐng)求處理能力并發(fā)服務(wù)器的進(jìn)程標(biāo)識(shí)服務(wù)器安全《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議20解決服務(wù)器處理并發(fā)請(qǐng)求的基本方案:設(shè)計(jì)一個(gè)并發(fā)服務(wù)器;采用重復(fù)服務(wù)器的方法?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議21并發(fā)服務(wù)器(concurrentserver)并發(fā)服務(wù)器的核心是使用一個(gè)守護(hù)程序(daemon);守護(hù)程序在系統(tǒng)啟動(dòng)的時(shí)候隨之啟動(dòng),在沒(méi)有客戶的服務(wù)請(qǐng)求到達(dá)時(shí),并發(fā)服務(wù)器處于等待狀態(tài);一旦客戶機(jī)的服務(wù)請(qǐng)求到達(dá),服務(wù)器根據(jù)客戶的服務(wù)請(qǐng)求的進(jìn)程號(hào),去激活相應(yīng)的子進(jìn)程,而服務(wù)器回到等待狀態(tài);并發(fā)服務(wù)器叫做主服務(wù)器(master),把子服務(wù)器叫做從服務(wù)器(slave);主服務(wù)器必須擁有一個(gè)全網(wǎng)公認(rèn)的進(jìn)程地址;網(wǎng)絡(luò)中的客戶進(jìn)程可以根據(jù)服務(wù)器進(jìn)程的公認(rèn)地址,向服務(wù)器提出服務(wù)請(qǐng)求?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議22客戶與并發(fā)服務(wù)器建立傳輸連接的過(guò)程《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議23重復(fù)服務(wù)器(interativeserver)通過(guò)設(shè)置一個(gè)請(qǐng)求隊(duì)列來(lái)存儲(chǔ)客戶機(jī)的服務(wù)請(qǐng)求;服務(wù)器采用先來(lái)先服務(wù)的原則來(lái)順序處理客戶機(jī)的服務(wù)請(qǐng)求。《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議24比較并發(fā)服務(wù)器:并發(fā)服務(wù)器可以處理多個(gè)客戶的服務(wù)請(qǐng)求;從服務(wù)器不依賴主服務(wù)器而獨(dú)立處理客戶服務(wù)請(qǐng)求;不同的從服務(wù)器可以分別處理不同的客戶的服務(wù)請(qǐng)求;系統(tǒng)的實(shí)時(shí)性好。重復(fù)服務(wù)器:處理客戶的服務(wù)請(qǐng)求的數(shù)量受到請(qǐng)求隊(duì)列長(zhǎng)度的限制,但可以有效地控制請(qǐng)求處理的時(shí)間并發(fā)服務(wù)器適應(yīng)于面向連接的服務(wù)類型;重復(fù)服務(wù)器適應(yīng)于無(wú)連接的服務(wù)類型。
《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議25討論主動(dòng)啟動(dòng)與服務(wù)器進(jìn)程通信的程序叫做客戶;服務(wù)器是一個(gè)用來(lái)提供某種服務(wù)的,有特殊權(quán)限的專用程序;服務(wù)器程序在網(wǎng)絡(luò)中一臺(tái)計(jì)算機(jī)上運(yùn)行,接受來(lái)自遠(yuǎn)程客戶的服務(wù)請(qǐng)求,提供一種服務(wù);服務(wù)器程序需要硬件配置較高的計(jì)算機(jī)和操作系統(tǒng)的支持;客戶/服務(wù)器是軟件設(shè)計(jì)中進(jìn)程間相互作用關(guān)系的模型。
《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議265.2傳輸層的基本功能
5.2.1傳輸層的端-端通信
《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議275.2.2傳輸層協(xié)議的基本功能
1.傳輸層在協(xié)議層次結(jié)構(gòu)中的位置
傳輸層的目標(biāo)是向應(yīng)用層應(yīng)用程序進(jìn)程之間的通信,提供有效、可靠、保證質(zhì)量的服務(wù);傳輸層在網(wǎng)絡(luò)分層結(jié)構(gòu)中起著承上啟下的作用,通過(guò)執(zhí)行傳輸層協(xié)議,屏蔽通信子網(wǎng)在技術(shù)、設(shè)計(jì)上的差異和服務(wù)質(zhì)量的不足,向高層提供一個(gè)標(biāo)準(zhǔn)的、完善的通信服務(wù);從通信和信息處理的角度看,應(yīng)用層是面向信息處理的,而傳輸層是為應(yīng)用層提供通信服務(wù)的。《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議282.傳輸協(xié)議數(shù)據(jù)單元傳輸層之間傳輸?shù)膱?bào)文叫做傳輸協(xié)議數(shù)據(jù)單元(TransportProtocolUnit,TPDU);TPDU有效載荷是應(yīng)用層的數(shù)據(jù)。《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議295.2.3網(wǎng)絡(luò)服務(wù)與服務(wù)質(zhì)量QoS
服務(wù)(Service)網(wǎng)絡(luò)層次結(jié)構(gòu)中,各層之間有嚴(yán)格的依賴關(guān)系各層次的分工和協(xié)作集中地體現(xiàn)在相鄰層之間的界面上;服務(wù)是描述相鄰層之間關(guān)系的重要概念;網(wǎng)絡(luò)服務(wù)體現(xiàn)在低層向相鄰上層提供的一組操作;低層是服務(wù)提供者,高層是服務(wù)的用戶?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議30衡量服務(wù)質(zhì)量QoS的主要指標(biāo)連接建立延遲/連接釋放延遲;連接建立/釋放失敗概率;傳輸時(shí)延;吞吐率;殘留誤碼率;傳輸失敗概率。
《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議31連接建立延遲從傳輸服務(wù)用戶要求建立連接到收到連接確認(rèn)之間所經(jīng)歷的時(shí)間;它包括了遠(yuǎn)端傳輸實(shí)體的處理延遲;連接建立延遲越短,服務(wù)質(zhì)量越好。連接建立失敗的概率在最大連接建立延遲時(shí)間內(nèi),連接未能建立的可能性;由于網(wǎng)絡(luò)擁塞,缺少緩沖區(qū)或其他原因造成的失敗。
《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議32吞吐率吞吐率是在某個(gè)時(shí)間間隔內(nèi)測(cè)得的每秒鐘傳輸?shù)挠脩魯?shù)據(jù)的字節(jié)數(shù);每個(gè)傳輸方向分別用各自的吞吐率來(lái)衡量。傳輸延遲傳輸延遲是指從源主機(jī)傳輸用戶發(fā)送報(bào)文開(kāi)始到目的主機(jī)傳輸用戶接收到報(bào)文為止的時(shí)間;每個(gè)方向的傳輸延遲是不同的?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議33殘余誤碼率殘余誤碼率用于測(cè)量丟失或亂序的報(bào)文數(shù)占整個(gè)發(fā)送的報(bào)文數(shù)的百分比;理論上殘余誤碼率應(yīng)為零,實(shí)際上它可能是一較小的值。安全保護(hù)安全保護(hù)為傳輸用戶提供了傳輸層的保護(hù),以防止未經(jīng)授權(quán)的第三方讀取或修改數(shù)據(jù)。
《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議34優(yōu)先級(jí)為傳輸用戶提供用以表明哪些連接更為重要的方法;當(dāng)發(fā)生擁塞事件時(shí),確保高優(yōu)先級(jí)的連接先獲得服務(wù)。恢復(fù)功能當(dāng)出現(xiàn)內(nèi)部問(wèn)題或擁塞情況下,傳輸層本身自發(fā)終止連接的可能性?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議35在討論傳輸層服務(wù)質(zhì)量參數(shù)時(shí)需要注意以下幾個(gè)問(wèn)題:服務(wù)質(zhì)量參數(shù)是傳輸用戶在請(qǐng)求建立連接時(shí)設(shè)定的,表明希望值和最小可接受的值;傳輸層通過(guò)檢查服務(wù)質(zhì)量參數(shù)可以立即發(fā)現(xiàn)其中某些值是無(wú)法達(dá)到的,傳輸層可以不去與目的主機(jī)連接,而直接通知傳輸用戶連接請(qǐng)求失敗與失敗的原因;有些情況下,傳輸層發(fā)現(xiàn)不能達(dá)到用戶希望的質(zhì)量參數(shù),但可以達(dá)到稍微低一些的要求,然后再請(qǐng)求建立連接;并非所有的傳輸連接都需要提供所有的參數(shù),大多數(shù)僅僅是要求殘余誤碼,而其他參數(shù)則是為了完善服務(wù)質(zhì)量而設(shè)置的。《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議365.3用戶報(bào)文協(xié)議UDP
5.3.1UDP協(xié)議的主要特點(diǎn)
UDP是一種無(wú)連接的、不可靠的傳輸層協(xié)議;在完成進(jìn)程到進(jìn)程的通信中提供了有限的差錯(cuò)檢驗(yàn)功能;設(shè)計(jì)比較簡(jiǎn)單的UDP協(xié)議的目的是希望以最小的開(kāi)銷來(lái)達(dá)到網(wǎng)絡(luò)環(huán)境中的進(jìn)程通信目的;進(jìn)程發(fā)送的報(bào)文較短,同時(shí)對(duì)報(bào)文的可靠性要求不高,那么可以使用UDP協(xié)議?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議375.3.2UDP的基本工作過(guò)程UDP用戶數(shù)據(jù)報(bào)傳輸過(guò)程中的封裝與拆封
《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議38UDP基本工作過(guò)程描述UDP數(shù)據(jù)報(bào)的發(fā)送和接收通過(guò)UDP端口實(shí)現(xiàn)端口是一個(gè)可讀寫(xiě)的結(jié)構(gòu),具有內(nèi)部的報(bào)文緩沖區(qū)數(shù)據(jù)報(bào)發(fā)送UDP軟件將用戶數(shù)據(jù)封裝在UDP數(shù)據(jù)報(bào)中轉(zhuǎn)交給IP軟件,進(jìn)行IP封裝和轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)的接收IP層接收到UDP數(shù)據(jù)報(bào),提交給UDP軟件的各端口端口判斷該報(bào)文的目的端口號(hào)是否與當(dāng)前端口匹配若匹配成功,將該數(shù)據(jù)報(bào)保存到相應(yīng)端口的接收隊(duì)列中;(若隊(duì)列已滿,則丟棄該數(shù)據(jù)報(bào))若未匹配,則丟棄該數(shù)據(jù)報(bào),同時(shí)向源端發(fā)送“端口不可達(dá)”的ICMP包《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議39UDP報(bào)文傳輸隊(duì)列《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議40UDP的復(fù)用和分用《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議415.3.3UDP端口號(hào)TCP/IP協(xié)議族中用端口號(hào)來(lái)標(biāo)識(shí)進(jìn)程;端口號(hào)是在0到65535之間的整數(shù);客戶程序隨機(jī)選取的臨時(shí)端口號(hào);每一種服務(wù)器程序被分配了確定的全局一致的熟知端口號(hào);每一個(gè)客戶進(jìn)程都知道相應(yīng)的服務(wù)器進(jìn)程的熟知端口號(hào)?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議42UDP使用的熟知端口號(hào)《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議435.3.4UDP數(shù)據(jù)報(bào)格式《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議44SourcePort—16位。源端口是可選字段。當(dāng)使用時(shí),它表示發(fā)送程序的端口,同時(shí)它還被認(rèn)為是沒(méi)有其它信息的情況下需要被尋址的答復(fù)端口。如果不使用,設(shè)置值為0。DestinationPort—16位。目標(biāo)端口在特殊因特網(wǎng)目標(biāo)地址的情況下具有意義。Length—16位。該用戶數(shù)據(jù)報(bào)的八位(字節(jié))長(zhǎng)度,包括協(xié)議頭和數(shù)據(jù)。長(zhǎng)度最小值為8,最長(zhǎng)長(zhǎng)度為65515(IP的最大長(zhǎng)度65535減去20)。Checksum—16位。IP協(xié)議頭、UDP協(xié)議頭和數(shù)據(jù)位,最后用0填補(bǔ)的信息假協(xié)議頭總和。如果必要的話,可以由兩個(gè)八位(字節(jié))復(fù)合而成。注意:計(jì)算校驗(yàn)和時(shí),在UDP用戶數(shù)據(jù)報(bào)之前要增加12字節(jié)的偽頭部。Data—
包含上層數(shù)據(jù)信息?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議45UDP檢驗(yàn)和的檢驗(yàn)范圍:偽頭部
UDP頭應(yīng)用層數(shù)據(jù)偽頭部只在計(jì)算校驗(yàn)和時(shí)起作用,是臨時(shí)的,不用于傳輸?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議46偽頭部:偽報(bào)頭并非UDP數(shù)據(jù)報(bào)中實(shí)際的有效成分偽報(bào)頭是一個(gè)虛擬的數(shù)據(jù)結(jié)構(gòu):其中的信息是從數(shù)據(jù)報(bào)所在IP分組頭的分組頭中提取的使用偽報(bào)頭是為了驗(yàn)證UDP數(shù)據(jù)報(bào)是否正確地傳到了目的系統(tǒng)中偽報(bào)頭的采用在一定程度上違反了網(wǎng)絡(luò)結(jié)構(gòu)分層的原則《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議47《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議48《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議49Answerthefollowingquestions:a.WhatistheminimumsizeofaUDPdatagram?b.WhatisthemaximumsizeofaUDPdatagram?c.WhatistheminimumsizeoftheprocessdatathatcanbeencapsulatedinaUDPdatagram?d.WhatisthemaximumsizeoftheprocessdatathatcanbeencapsulatedinaUDPdatagram?《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議50Q&A:ThefollowingisadumpofaUDPheaderinhexadecimalformat. CB84000D001C001Ca.Whatisthesourceportnumber?b.Whatisthedestinationportnumber?c.Whatisthetotallengthoftheuserdatagram?d.Whatisthelengthofthedata?e.Isthepacketdirectedfromaclienttoaserverorviceversa?《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議51SolutionThesourceportnumberisthefirstfourhexadecimaldigits(CB8416),whichmeansthatthesourceportnumberis52100.Thedestinationportnumberisthesecondfourhexadecimaldigits(000D16),whichmeansthatthedestinationportnumberis13.Thethirdfourhexadecimaldigits(001C16)definethelengthofthewholeUDPpacketas28bytes.Thelengthofthedataisthelengthofthewholepacketminusthelengthoftheheader,or28–8=20bytes.Sincethedestinationportnumberis13(well-knownport),thepacketisfromtheclienttotheserver.《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議525.4傳輸控制協(xié)議TCP
5.4.1TCP協(xié)議的主要特點(diǎn)
TCP是一種面向連接的、可靠的傳輸層協(xié)議;全雙工通信;TCP協(xié)議建立在不可靠的網(wǎng)絡(luò)層IP協(xié)議之上,IP不能提供任何可靠性機(jī)制,TCP的可靠性完全由自己實(shí)現(xiàn);TCP采用的最基本的可靠性技術(shù)是:
確認(rèn)與超時(shí)重傳;
流量控制。《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議53TCP協(xié)議與其他協(xié)議的層次關(guān)系《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議545.4.2TCP的端口號(hào)分配和Socket地址TCP常用的熟知端口號(hào)《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議555.4.3TCP報(bào)文段格式《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議56TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG比特08162431填充源端口和目的端口字段——各占2字節(jié)。端口是運(yùn)輸層與應(yīng)用層的服務(wù)接口。運(yùn)輸層的復(fù)用和分用功能都要通過(guò)端口才能實(shí)現(xiàn)。《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議57TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG比特08162431填充序號(hào)字段——占4字節(jié)。TCP連接中傳送的數(shù)據(jù)流中的每一個(gè)字節(jié)都編上一個(gè)序號(hào)。序號(hào)字段的值則指的是本報(bào)文段所發(fā)送的數(shù)據(jù)的第一個(gè)字節(jié)的序號(hào)?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議58TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG比特08162431填充確認(rèn)號(hào)字段——占4字節(jié),是期望收到對(duì)方的下一個(gè)報(bào)文段的數(shù)據(jù)的第一個(gè)字節(jié)的序號(hào)?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議59TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG比特08162431填充數(shù)據(jù)偏移——占4bit,它指出TCP報(bào)文段的數(shù)據(jù)起始處距離TCP報(bào)文段的起始處有多遠(yuǎn)。“數(shù)據(jù)偏移”的單位不是字節(jié)而是32bit字(4字節(jié)為計(jì)算單位)?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議60TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG比特08162431填充保留字段——占6bit,保留為今后使用,但目前應(yīng)置為0?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議61TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG比特08162431填充緊急比特URG——當(dāng)URG1時(shí),表明緊急指針字段有效。它告訴系統(tǒng)此報(bào)文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(相當(dāng)于高優(yōu)先級(jí)的數(shù)據(jù))。《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議62TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG比特08162431填充確認(rèn)比特ACK——只有當(dāng)ACK1時(shí)確認(rèn)號(hào)字段才有效。當(dāng)ACK0時(shí),確認(rèn)號(hào)無(wú)效?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議63TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG比特08162431填充推送比特PSH(PuSH)——接收TCP收到推送比特置1的報(bào)文段,就盡快地交付給接收應(yīng)用進(jìn)程,而不再等到整個(gè)緩存都填滿了后再向上交付?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議64TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG比特08162431填充復(fù)位比特RST(ReSeT)——當(dāng)RST1時(shí),表明TCP連接中出現(xiàn)嚴(yán)重差錯(cuò)(如由于主機(jī)崩潰或其他原因),必須釋放連接,然后再重新建立運(yùn)輸連接。《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議65TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG比特08162431填充同步比特SYN——同步比特SYN置為1,就表示這是一個(gè)連接請(qǐng)求或連接接受報(bào)文?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議66TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG比特08162431填充終止比特FIN(FINal)——用來(lái)釋放一個(gè)連接。當(dāng)FIN1時(shí),表明此報(bào)文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運(yùn)輸連接。《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議67TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG比特08162431填充窗口字段——占2字節(jié)。窗口字段用來(lái)控制對(duì)方發(fā)送的數(shù)據(jù)量,單位為字節(jié)。TCP連接的一端根據(jù)設(shè)置的緩存空間大小確定自己的接收窗口大小,然后通知對(duì)方以確定對(duì)方的發(fā)送窗口的上限?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議68TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG比特08162431填充檢驗(yàn)和——占2字節(jié)。檢驗(yàn)和字段檢驗(yàn)的范圍包括首部和數(shù)據(jù)這兩部分。在計(jì)算檢驗(yàn)和時(shí),要在TCP報(bào)文段的前面加上12字節(jié)的偽首部?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議69TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG比特08162431填充緊急指針字段——占16bit。緊急指針指出:在本報(bào)文段中緊急數(shù)據(jù)共有多少個(gè)字節(jié)(緊急數(shù)據(jù)放在本報(bào)文段數(shù)據(jù)的最前面)。
《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議70TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG比特08162431填充選項(xiàng)字段——長(zhǎng)度可變。MSS是TCP報(bào)文段中的數(shù)據(jù)字段的最大長(zhǎng)度。數(shù)據(jù)字段加上TCP首部才等于整個(gè)的TCP報(bào)文段?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議71TCPOptionsUsedtoextendTCPfunctionalityDefinedTCPoptions:EndofOptionListNoOperationMaximumSegmentSizeTCPWindowScaleSelectiveAcknowledgement(SACK)TCPTimestamps《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議72EndOfOptionListandNoOperationEndofOptionListAsingleoctetwiththeoptionkindsetto0,whichindicatesthatnootheroptionsfollowNoOperationAsingleoctetwiththeoptionkindsetto1,whichisusedbetweenTCPoptionsfor4-bytealignment《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議73AMultiple-OctetTCPoptionOptionKindOptionLengthOptionoctets...《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議74IPTCPSegmentIPMTUMSSTCPMaximumSegmentSize《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議75OptionKindOptionLengthMaximumSegmentSize=2=4MaximumSegmentSizeOption■OptionKindSetto2(0x02)toindicatetheMSSoptionkind.■OptionLengthSetto4(0x04)toindicatethatthesizeoftheentireMSSoptionis4bytes.■MaximumSegmentSizeTwobytesthatindicatetheMSSofreceivedsegments.ForIPdatagramssentonanEthernetnetworksegmentusingEthernetIIencapsulation,theMSSis1460(anIPMTUof1500minus40bytesforminimum-sizedIPandTCPheaders).《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議76TCPWindowScaleOptionOptionKindOptionLengthShiftCount=3=3■ShiftCountOnebytethatindicatesthescalingfactorastheexponentof2.Forexample,foraShiftCountof5,thescalingfactoris2^5,or32.SelectiveAcknowledgmentOptionTwodifferentTCPoptions:■TheSelectiveAcknowledgment(SACK)-Permittedoptiontonegotiatetheuseofselectiveacknowledgmentsduringtheconnectionestablishmentprocess■TheSACKoptiontoindicatethenoncontiguousdata(非相鄰數(shù)據(jù)或不連續(xù)數(shù)據(jù))blocksthathavebeenreceived《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議78SACKPermittedOptionOptionKindOptionLength=4=2TheSACK-PermittedoptionissentinsegmentswiththeSYNflagsetandindicatesthattheTCPpeercanreceiveandinterpret(/explain)theTCPSACKoptionwhendataisflowingontheconnection.《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議79SACKOptionOptionKindOptionLengthLeftEdgeof1stBlockRightEdgeof1stBlockLeftEdgeof2ndBlockRightEdgeof2ndBlock...=5TheSACKoptionissentasneededinsegmentsoftheopenconnectionwiththeACKflagset.《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議80TCPTimestampsOptionOptionKindOptionLengthTsValueTsEchoReply=8=10《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議81TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG比特08162431填充填充字段——這是為了使整個(gè)首部長(zhǎng)度是4字節(jié)的整數(shù)倍?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議82EXAMPLE:TCPFrameFragmentTCP:-----TCPheader-----TCP:TCP:Sourceport=4704TCP:Destinationport=23(Telnet)TCP:Sequencenumber=399TCP:Acknowledgmentnumber=738299106TCP:Dataoffset=20bytesTCP:Flags=18TCP:..0.....=(Nourgentpointer)TCP:...1....=AcknowledgmentTCP:....1...=PushTCP:.....0..=(Noreset)TCP:......0.=(NoSYN)TCP:.......0=(NoFIN)TCP:Window=512TCP:Checksum=43E2(correct)《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議83TCP:NoTCPoptionsTCP:[1byte(s)ofdata]TCP:Telnet:-----Telnetdata-----ADDRHEXASCII0000104002608C06384102608C115176AAAA.@.`..8A.`..Qv..00100300000008004500002903190000FF06......E..)......00206EB6243500C3243800D0126000170000n.$5..$8...`....0030018F2C018CE25018020043E200005300..,...P...C...S.004001FFFD03....《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議84Q&A:SupposeaTCPconnectionistransferringafileof5,000bytes.Thefirstbyteisnumbered10,001.Whatarethesequencenumbersforeachsegmentifdataaresentinfivesegments,eachcarrying1,000bytes?《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議85《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議865.4.4TCP傳輸連接建立與連接釋放TCP傳輸連接建立過(guò)程示意圖
連接請(qǐng)求報(bào)文SYN應(yīng)答報(bào)文SYN+ACK建立傳輸連接確認(rèn)報(bào)文ACK《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議87Note:ASYNsegmentcannotcarrydata,butitconsumesonesequencenumber.ASYN+ACKsegmentcannotcarrydata,butdoesconsumeonesequencenumber.AnACKsegment,ifcarryingnodata,consumesnosequencenumber.Onthecontrary,ifcarryingdata,consumessequencenumber.《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議88ATCPconnectioncanoptionallybemaintainedthroughtheperiodicexchangeofaTCPkeepalivesegment,whichisanACKsegmentcontainingnodata.TCPConnectionMaintenance《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議89TCP在傳輸連接釋放過(guò)程中4次握手過(guò)程《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議905.4.5小段小段是小于MSS(最大段長(zhǎng)度)的TCP段。(Telnet會(huì)話過(guò)程,有些時(shí)候會(huì)出現(xiàn)1個(gè)有效字節(jié)40個(gè)包頭(IP頭+TCP頭)的這樣低效的包,增加網(wǎng)絡(luò)負(fù)擔(dān)從而影響網(wǎng)絡(luò)性能。)Nagle算法是:如果發(fā)送方發(fā)送小的數(shù)據(jù)報(bào)時(shí),沒(méi)有收到上一次發(fā)送的應(yīng)答,那么將暫時(shí)緩沖這個(gè)數(shù)據(jù)。笨拙窗口綜合癥:一次接收/處理一字節(jié),接收窗口以一字節(jié)前進(jìn)的現(xiàn)象。(接收方通過(guò)不發(fā)送新的窗口尺寸來(lái)避免,除非窗口至少是一個(gè)MSS,或者是最大的接收窗口尺寸的一半;發(fā)送方通過(guò)發(fā)布的接收窗口尺寸至少達(dá)到MSS
才發(fā)送來(lái)避免)
《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議91Nagle’sAlgorithmissimple:1.ThesendingTCPsendsthefirstpieceofdataitreceivesfromthesendingapplicationprogramevenifitisonly1byte.2.Aftersendingthefirstsegment,thesendingTCPaccumulatesdataintheoutputbufferandwaitsuntileitherthereceivingTCPsendsanacknowledgmentoruntilenoughdatahasaccumulatedtofillamaximum-sizesegment.Atthistime,thesendingTCPcansendthesegment.3.Step2isrepeatedfortherestofthetransmission.Segment3issentimmediatelyifanacknowledgmentisreceivedforsegment2,orifenoughdatahaveaccumulatedtofillamaximum-sizesegment.《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議92TCP高效與可靠的相關(guān)算法滑動(dòng)窗口慢開(kāi)始算法:一次增加一MSS(在每收到一個(gè)對(duì)新的報(bào)文段的確認(rèn)后,將擁塞窗口增加至多一個(gè)MSS的數(shù)值)。(達(dá)到擁塞閥值后)擁塞避免算法:累次增加(+1,線性增加),倍次減少(乘1/2)??熘貍魉惴ǎ阂?guī)定發(fā)送端只要一連收到三個(gè)重復(fù)的ACK即可斷定有分組丟失了,就應(yīng)立即重傳丟失的報(bào)文段而不必繼續(xù)等待為該報(bào)文段設(shè)置的重傳計(jì)時(shí)器的超時(shí)。快恢復(fù)算法:累次增加《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議93往返時(shí)延的自適應(yīng)算法
記錄每一個(gè)報(bào)文段發(fā)出的時(shí)間,以及收到相應(yīng)的確認(rèn)報(bào)文段的時(shí)間。這兩個(gè)時(shí)間之差就是報(bào)文段的往返時(shí)延。將各個(gè)報(bào)文段的往返時(shí)延樣本加權(quán)平均,就得出報(bào)文段的平均往返時(shí)延
RTT。每測(cè)量到一個(gè)新的往返時(shí)延樣本,就按下式重新計(jì)算一次平均往返時(shí)延RTT:平均往返時(shí)延RTT
(舊的RTT)(1
)(新的往返時(shí)延樣本)(7-2)在上式中,0
1。《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議94慢開(kāi)始算法的原理在主機(jī)剛剛開(kāi)始發(fā)送報(bào)文段時(shí)可先將擁塞窗口cwnd設(shè)置為一個(gè)最大報(bào)文段MSS的數(shù)值。在每收到一個(gè)對(duì)新的報(bào)文段的確認(rèn)后,將擁塞窗口增加至多一個(gè)MSS的數(shù)值。用這樣的方法逐步增大發(fā)送端的擁塞窗口cwnd,可以使分組注入到網(wǎng)絡(luò)的速率更加合理。《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議95TCP連接的狀態(tài)TCP原理與技術(shù)一條TCP連接在其生命期內(nèi)會(huì)經(jīng)歷一系列的狀態(tài)。這些狀態(tài)有:LISTEN:正在等待一個(gè)來(lái)自任何遠(yuǎn)程TCP和端口的連接請(qǐng)求。SYN-SENT:在已經(jīng)發(fā)出一個(gè)連接請(qǐng)求后正在等待一個(gè)匹配的連接請(qǐng)求SYN-RECEIVED:在已經(jīng)收到并發(fā)出了一個(gè)連接請(qǐng)求后等待 一個(gè)證實(shí)連接請(qǐng) 求的確認(rèn)。ESTABLISHED:一個(gè)打開(kāi)的連接。通過(guò)此連接接收到的數(shù)據(jù)能夠被傳遞到用戶。 該狀態(tài)是此連接的數(shù)據(jù)傳輸階段的正常狀態(tài)。FIN-WAIT-1:或正在等待一個(gè)針對(duì)先前發(fā)送的連接終止請(qǐng)求的確認(rèn)。FIN-WAIT-2:正在等待一個(gè)來(lái)自遠(yuǎn)程TCP的連接終止請(qǐng)求。CLOSE-WAIT:正在等待一個(gè)來(lái)自本地用戶的連接終止請(qǐng)求CLOSING:正在等待一個(gè)來(lái)自遠(yuǎn)程TCP的連接終止請(qǐng)求的確認(rèn)。LAST-ACK:正在等待一個(gè)先前發(fā)往遠(yuǎn)程TCP的連接終止請(qǐng)求的確認(rèn)(包括對(duì) 其連接終止請(qǐng)求的確認(rèn))TIME-WAIT:等足夠的時(shí)間以確保遠(yuǎn)程TCP接收到了其連接終止請(qǐng)求的確認(rèn)CLOSED:根本不存在連接的狀態(tài)。《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議96TCP連接的建立過(guò)程TCP原理與技術(shù)
TCPA
TCPB1.CLOSE LISTEN2.SYN-SENT→<SEQ=100><CTL=SYN> →SYN-RECEIVED3.ESTABLISHED←<SEQ=300><ACK=101><CTL=SYN,ACK> ←SYN-RECEIVED4.ESTABLISHED→<SEQ=101><ACK=301><CTL=ACK> →ESTABLISHED5.ESTABLISHED→<SEQ=101><ACK=301><CTL=ACK><DATA> →ESTABLSHED說(shuō)明:
TCPA、B在初始時(shí)分別是處于CLOSED和LISTEN狀態(tài)。A端首先發(fā)送一個(gè)SEQ=100的初始化序列,SYN置位,占用一個(gè)序列號(hào);B端在收到該請(qǐng)求后,發(fā)送一個(gè)序列號(hào)為300,確認(rèn)號(hào)為101的段,這個(gè)段的SYN、ACK均置位,說(shuō)明B端的初始發(fā)送序列號(hào)為300,同時(shí)又確認(rèn)了A的SEQ=100的段,A在收到了B的應(yīng)答后,對(duì)其初始序列號(hào)確認(rèn),來(lái)響應(yīng)B的初始化序列,然后A就可以發(fā)送事件了。其中第2、3、4行,稱之為“三次握手”《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議97TCP連接的關(guān)閉過(guò)程TCP原理與技術(shù)
TCPA TCPB1.ESTABLISHED ESTABLISHED2.(關(guān)閉)
FIN-WAIT-1→<SEQ=100><ACK=300><CTL=FIN,ACK> …CLOSE-WAIT3.FIN-WAIT-2←<SEQ=300><ACK=101><CTL=ACK> ←CLOSE-WAIT4. (關(guān)閉)
TIME-WAIT←<SEQ=300><ACK=101><CTL=FIN,ACK> ←LAST-ACK5.TIME-WAIT→<SEQ=101><ACK=301><CTL=ACK> →CLOSED6.(2MSL)關(guān)閉TCPA啟動(dòng)TCP關(guān)閉某連接的,TCPB收到一個(gè)FIN段,進(jìn)入CLOSEWAIT狀態(tài)。在第3行中,如果TCPB還有數(shù)據(jù)要發(fā)送,在報(bào)頭之后,會(huì)有數(shù)據(jù),同時(shí)對(duì)TCPA發(fā)來(lái)的FIN確認(rèn)(FIN占用一個(gè)序列號(hào))。發(fā)送完數(shù)據(jù)后,在第4行,TCPB再發(fā)送一個(gè)FIN段,在沒(méi)有收到確認(rèn)之前是LAST-ACK(等待發(fā)往遠(yuǎn)程TCP的FIN的確認(rèn))狀態(tài)。第5行中,TCPB在收到了它發(fā)出的FIN的確認(rèn)后,進(jìn)入CLOSED狀態(tài),TCPA在超時(shí)時(shí)間到后,自動(dòng)關(guān)閉。下面是完整的狀態(tài)變遷圖《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議98《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議99TCP的有限狀態(tài)機(jī)TCP有限狀態(tài)機(jī)的圖中每一個(gè)方框都是TCP可能具有的狀態(tài)。每個(gè)方框中的大寫(xiě)英文字符串是TCP標(biāo)準(zhǔn)所使用的TCP連接狀態(tài)名。狀態(tài)之間的箭頭表示可能發(fā)生的狀態(tài)變遷。箭頭旁邊的字,表明引起這種變遷的原因,或表明發(fā)生狀態(tài)變遷后又出現(xiàn)什么動(dòng)作。圖中有三種不同的箭頭。粗實(shí)線箭頭表示對(duì)客戶進(jìn)程的正常變遷。粗虛線箭頭表示對(duì)服務(wù)器進(jìn)程的正常變遷。另一種細(xì)線箭頭表示異常變遷。
《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議100TCP
的
有
限
狀
態(tài)
機(jī)CLOSEDESTABLISHEDLISTENCLOSE_WAITFIN_WAIT_1SYN_RCVDFIN_WAIT_2CLOSINGTIME_WAITSYN_SENTLAST_ACK主動(dòng)打開(kāi)被動(dòng)打開(kāi)被動(dòng)關(guān)閉主動(dòng)關(guān)閉起點(diǎn)被動(dòng)打開(kāi)主動(dòng)打開(kāi)發(fā)送SYN同時(shí)打開(kāi)收到SYN,發(fā)送SYN,ACK收到ACK數(shù)據(jù)傳送階段關(guān)閉發(fā)送FIN關(guān)閉發(fā)送FIN關(guān)閉發(fā)送FIN收到RST收到SYN發(fā)送SYN,ACK關(guān)閉或超時(shí)收到ACK收到SYN,ACK發(fā)送ACK收到ACK收到ACK收到FIN發(fā)送ACK收到FIN,ACK
發(fā)送ACK收到FIN發(fā)送ACK同時(shí)關(guān)閉收到FIN發(fā)送ACK發(fā)送SYN定時(shí)經(jīng)過(guò)兩倍報(bào)文段壽命后關(guān)閉《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議1015.4.5TCP流量與擁塞控制TCP的數(shù)據(jù)編碼與確認(rèn)
擁塞控制:隨機(jī)早期檢測(cè)RED算法(如圖所示):當(dāng)隊(duì)列長(zhǎng)度處在給定的最小閾值和最大閾值之間時(shí),按相應(yīng)的概率,選擇性的丟棄被標(biāo)記的數(shù)據(jù)包?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議103TCP協(xié)議是面向字節(jié)的。
TCP協(xié)議把所要傳輸?shù)膱?bào)文段看成是一個(gè)一個(gè)字節(jié)組成的數(shù)據(jù)流,并且要為每一個(gè)字節(jié)分配一個(gè)序號(hào)。TCP每次所發(fā)送的報(bào)文段的頭部中的序號(hào)值表示的是該報(bào)文段數(shù)據(jù)部分的第一個(gè)字節(jié)的序號(hào)。全雙工通信,捎帶確認(rèn)的方法。TCP有3種基本機(jī)制來(lái)控制報(bào)文段發(fā)送的方法:1)控制最大段長(zhǎng)度(MSS)2)TCP支持的推送(PUSH)操作3)發(fā)送端維持一個(gè)計(jì)時(shí)器《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議104TCP窗口概念
《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議105窗口與TCP的流量控制《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議1065.4.6TCP差錯(cuò)控制差錯(cuò)檢測(cè)和糾正檢驗(yàn)和確認(rèn)超時(shí)針對(duì)的幾種情況受損傷的報(bào)文段丟失的報(bào)文段重復(fù)的報(bào)文段亂序的報(bào)文段丟失的確認(rèn)《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議107傳輸出錯(cuò)報(bào)文段的處理超時(shí)重傳《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議108丟失的報(bào)文段
《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議109確認(rèn)丟失《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議1105.4.7TCP的計(jì)時(shí)器為了實(shí)現(xiàn)TCP協(xié)議的功能,TCP使用了4種計(jì)時(shí)器:重傳計(jì)時(shí)器、堅(jiān)持計(jì)時(shí)器、保持計(jì)時(shí)器和時(shí)間等待計(jì)時(shí)器。重傳計(jì)時(shí)器為了控制丟失的或丟棄的報(bào)文段,TCP使用了處理報(bào)文段的確認(rèn)的等待重傳時(shí)間的重傳計(jì)時(shí)器。堅(jiān)持計(jì)時(shí)器TCP為每一個(gè)連接使用一個(gè)堅(jiān)持計(jì)時(shí)器;當(dāng)發(fā)送方的TCP收到一個(gè)窗口大小為零的確認(rèn)時(shí),就需要啟動(dòng)堅(jiān)持計(jì)時(shí)器;當(dāng)堅(jiān)持計(jì)時(shí)器期限到時(shí),發(fā)送方的TCP就發(fā)送一個(gè)特殊的探測(cè)報(bào)文段?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議111保持計(jì)時(shí)器保持計(jì)時(shí)器又叫做激活計(jì)時(shí)器,它是用來(lái)防止在兩個(gè)TCP之間的連接處以長(zhǎng)時(shí)期空閑。時(shí)間等待計(jì)時(shí)器時(shí)間等待計(jì)時(shí)器是在連接終止期間使用的;當(dāng)TCP關(guān)閉一個(gè)連接時(shí),它并不認(rèn)為這個(gè)連接馬上就真正地關(guān)閉了。在時(shí)間等待期間中,連接還處于一種過(guò)渡狀態(tài);時(shí)間等待計(jì)時(shí)器的值通常設(shè)置為一個(gè)報(bào)文段的壽命期待值的兩倍?!毒W(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議112SCTPisanewtransport-layerprotocol.SCTPisamessage-oriented,reliableprotocolthatcombinesthebestfeaturesofUDPandTCP.Itpreservesthemessageboundariesandatthesametimedetectslostdata,duplicatedata,andout-of-orderdata.Italsohascongestioncontrolandflowcontrolmechanisms.5.6StreamControlTransmissionProtocol(SCTP)《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議1131.Process-to-processcommunication:SCTPusesallwell-knownportsintheTCPspace.TablelistssomeextraportnumbersusedbySCTP.SCTPServices《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議1142.MultipleStreamsEachconnectionbetweenaTCPclientandaTCPserverinvolvesonesinglestream.
Theproblemwiththisapproachisthatalossatanypointinthestreamblocksthedeliveryoftherestofthedata.Thiscanbeacceptablewhenwearetransferringtext;itisnotwhenwearesendingreal-timedatasuchasaudioorvideo.
SCTPallowsmultistreamserviceineachconnection,whichiscalledassociationinSCTPterminology.Ifoneofthestreamsisblocked,theotherstreamscanstilldelivertheirdata.Theideaissimilartomultiplelanesonahighway.Eachlanecanbeusedforadifferenttypeoftraffic.《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議1153.Multihoming(多重連接)ATCPconnectioninvolvesonesourceandonedestinationIPaddress.Thismeansthatevenifthesenderorreceiverisamultihomedhost(connectedtomorethanonephysicaladdresswithmultipleIPaddresses),onlyoneoftheseIPaddressesperendcanbeutilizedduringtheconnection.AnSCTPassociationsupportsmultihomingservice.《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議116LetusfirstdiscussthegeneralfeaturesofSCTPandthencomparethemwiththoseofTCP.SCTPFEATURESTransmissionSequenceNumber(TSN):TheunitofdatainTCPisabyte.DatatransferinTCPiscontrolledbynumberingbytesusingasequencenumber.TheunitofdatainSCTPisadatachunk(數(shù)據(jù)塊).DatatransferinSCTPiscontrolledbynumberingthedatachunks.SCTPusesatransmissionsequencenumber(TSN)tonumberthedatachunks.StreamIdentifier(SI):InTCP,thereisonlyonestreamineachconnection.InSCTP,theremaybeseveralstreamsineachassociation(關(guān)聯(lián)).EachstreaminSCTPneedstobeidentifiedusingaSI.《網(wǎng)絡(luò)協(xié)議分析及應(yīng)用》第5章傳輸層協(xié)議117St
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 野外地質(zhì)勘探不間斷電源租賃合同
- 自行車租賃體驗(yàn)活動(dòng)協(xié)議
- 地下人行通道錨桿施工合同
- 企業(yè)退出協(xié)議書(shū)范本
- 建筑工程保險(xiǎn)合同ktv
- 國(guó)際博物館粉刷施工合同模板
- 大型建筑構(gòu)件吊裝龍門(mén)吊租賃合同
- 美容助理聘用合同范例
- 試駕活動(dòng)試駕員選拔協(xié)議
- 機(jī)場(chǎng)跑道施工備案委托協(xié)議
- 醫(yī)院導(dǎo)醫(yī)個(gè)人工作總結(jié)
- 建筑工地塌陷應(yīng)急預(yù)案
- 南京財(cái)經(jīng)大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)期末考題及答案
- 社區(qū)電動(dòng)車棚新(擴(kuò))建及修建充電車棚施工方案(純方案-)
- 2023珠寶消費(fèi)趨勢(shì)調(diào)查報(bào)告-周大福-202403
- 2016-2023年湖南外貿(mào)職業(yè)學(xué)院高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
- 家長(zhǎng)進(jìn)課堂關(guān)于人工智能的知識(shí)介紹
- 《利水滲濕藥茯苓》課件
- 梅奧診所簡(jiǎn)介中文課件
- 無(wú)人機(jī)技術(shù)在物流配送中的應(yīng)用
- 酒吧sop服務(wù)流程
評(píng)論
0/150
提交評(píng)論