




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、v51 運(yùn)輸層概述運(yùn)輸層概述 v52 運(yùn)輸服務(wù)運(yùn)輸服務(wù) v53 運(yùn)輸協(xié)議運(yùn)輸協(xié)議 5.1.1 運(yùn)輸層地位與功能 1運(yùn)輸層地位協(xié)議層次結(jié)構(gòu)的核心。 任務(wù):提供進(jìn)程間端到端的、透明的、可靠的、價(jià)格合理的數(shù)據(jù)傳輸,而與當(dāng)前網(wǎng)絡(luò)或使用的網(wǎng)絡(luò)無關(guān)。2運(yùn)輸層功能兩個(gè)目的:第一,提供可靠的端到端的通信;第二,向會(huì)話層提供獨(dú)立于網(wǎng)絡(luò)的運(yùn)輸服務(wù)。主要功能:對(duì)一個(gè)進(jìn)行的對(duì)話或連接提供可靠的運(yùn)輸服務(wù),在通向網(wǎng)絡(luò)的單一連接上實(shí)現(xiàn)該連接的復(fù)用,在單一連接上提供端到端的序號(hào)與流量控制、端到端的差錯(cuò)控制及恢復(fù)等服務(wù)。服務(wù)質(zhì)量指運(yùn)輸層協(xié)議一個(gè)重要內(nèi)容。 網(wǎng)絡(luò)的性能和用戶的要求之間的差異: (1)、用戶要求高速傳輸,但網(wǎng)絡(luò)的吞
2、吐量、傳輸速率和傳輸延遲等性能不能滿足。對(duì)于這個(gè)問題,運(yùn)輸層通過向下多路復(fù)用功能可在很大程度上解決此問題。(2)用戶要求較低的傳輸費(fèi)用,對(duì)于傳輸延遲要求不高:但是網(wǎng)絡(luò)的吞吐量、傳輸速率和傳輸延遲很好,但是費(fèi)用太高,不能滿足。對(duì)于這個(gè)問題,運(yùn)輸層通過向上多路復(fù)用功能可以在一定程度上解決此問題。(3)網(wǎng)絡(luò)的傳輸差錯(cuò)率不能滿足用戶的要求。對(duì)于這個(gè)問題,可以在運(yùn)輸層增加差錯(cuò)檢測(cè)和糾正的功能就可以減低差錯(cuò)率。(4)網(wǎng)絡(luò)層的分組長(zhǎng)度不一定適配用戶數(shù)據(jù)的長(zhǎng)度。對(duì)于這個(gè)問題,可以在運(yùn)輸層中增加分組的分割和重組的功能。(5)網(wǎng)絡(luò)的數(shù)據(jù)流量不一定能滿足用戶的要求等。運(yùn)輸層的具體功能為:彌補(bǔ)高層(上3層)要求與網(wǎng)絡(luò)
3、層(基于下3層)數(shù)據(jù)傳送服務(wù)質(zhì)量間的差異(差錯(cuò)率、差錯(cuò)恢復(fù)能力、吞吐率、延時(shí)、費(fèi)用等)。對(duì)高層屏蔽網(wǎng)絡(luò)層的服務(wù)的差異,提供穩(wěn)定和一致的界面。3端到端通信所謂端到端即從進(jìn)程到進(jìn)程。注意:在OSI的7層模型和TCP/IP模型中,從第4層開始的以上各層實(shí)體間的通信都是端到端的。在互聯(lián)網(wǎng)中,由于Internet是由眾多不同網(wǎng)絡(luò)互聯(lián)起來的大網(wǎng)絡(luò),所以各子網(wǎng)所能提供的服務(wù)往往是不一樣的。為了能使通信子網(wǎng)的用戶得到統(tǒng)一的通信服務(wù),就有必要設(shè)置一個(gè)運(yùn)輸層。以彌補(bǔ)不同網(wǎng)絡(luò)提供服務(wù)的差異和不足,使得各網(wǎng)絡(luò)對(duì)兩端的用戶透明,向用戶提供統(tǒng)一的運(yùn)輸層接口、提供可靠的通信連接和服務(wù)。512 運(yùn)輸協(xié)議分類 分類依據(jù):以網(wǎng)絡(luò)
4、層提供的服務(wù)質(zhì)量1.網(wǎng)絡(luò)服務(wù) 兩個(gè)評(píng)價(jià)參數(shù):(1)殘留差錯(cuò)率(Residual Error Rate)(2)可報(bào)告差錯(cuò)率殘留差錯(cuò):網(wǎng)絡(luò)實(shí)體不可檢測(cè)的差錯(cuò)。殘留差錯(cuò)反映網(wǎng)絡(luò)的差錯(cuò)檢測(cè)能力。殘留差錯(cuò)率,又稱為漏檢差錯(cuò)率,反映網(wǎng)絡(luò)連接的質(zhì)量。差錯(cuò)檢測(cè)率公式為:其中Nk表示所有傳送的網(wǎng)絡(luò)服務(wù)數(shù)據(jù)單元NSDU,并且Nk分為4類: Ns表示成功傳送的NSDU; Ne表示錯(cuò)誤的NSDU; Nl表示丟失的NSDU; Nx表示重復(fù)的NSDU??蓤?bào)告差錯(cuò):網(wǎng)絡(luò)層可檢測(cè)的,但不可恢復(fù)的差錯(cuò)。可報(bào)告差錯(cuò)反映了網(wǎng)絡(luò)層的差錯(cuò)恢復(fù)能力??蓤?bào)告差錯(cuò)率:在可檢測(cè)的差錯(cuò)中不可恢復(fù)的差錯(cuò)所占的比例。檢測(cè)到有不可恢復(fù)的差錯(cuò)的NSDU
5、時(shí),網(wǎng)絡(luò)層實(shí)體并不遞交給運(yùn)輸實(shí)體,而是報(bào)告運(yùn)輸層實(shí)體對(duì)它進(jìn)行恢復(fù)??蓤?bào)告差錯(cuò)率低,表示網(wǎng)絡(luò)層的差錯(cuò)恢復(fù)能力強(qiáng)。根據(jù)網(wǎng)絡(luò)提供的服務(wù)質(zhì)量,將網(wǎng)絡(luò)分為3類: A類網(wǎng)絡(luò)服務(wù):具有可接受的殘留差錯(cuò)率、可接受的可報(bào)告差錯(cuò)率。特點(diǎn):完善、理想、可靠的網(wǎng)絡(luò)服務(wù); 分組不丟失和不失序;在這樣的網(wǎng)絡(luò)條件下,由于網(wǎng)絡(luò)服務(wù)很理想,所以在此種網(wǎng)絡(luò)上增加的運(yùn)輸層就非常簡(jiǎn)單。 B類網(wǎng)絡(luò)服務(wù):具有可接受的殘留差錯(cuò)率、不可接受的可報(bào)告差錯(cuò)率。在這樣網(wǎng)絡(luò)條件下,由于網(wǎng)絡(luò)層的差錯(cuò)恢復(fù)能力很差,所以在此種網(wǎng)絡(luò)之間設(shè)計(jì)運(yùn)輸層時(shí),就必須要考慮差錯(cuò)恢復(fù)功能。 C類網(wǎng)絡(luò)服務(wù):具有不可接受的殘留差錯(cuò)率、不可接受的可報(bào)告差錯(cuò)率。對(duì)于這種網(wǎng)絡(luò),運(yùn)
6、輸層的設(shè)計(jì)者會(huì)很頭痛,因?yàn)樵诖朔N網(wǎng)絡(luò)之上設(shè)計(jì)的運(yùn)輸層必須要具備差錯(cuò)檢測(cè)和差錯(cuò)恢復(fù)的功能。并且,對(duì)于失序、重復(fù)以及錯(cuò)誤投遞的分組,運(yùn)輸層也應(yīng)能檢測(cè)出并進(jìn)行糾正。使用的網(wǎng)絡(luò)服務(wù)運(yùn)輸協(xié)議類主要功能TP0簡(jiǎn)單類(Simple Class)運(yùn)輸連接管理,提供最簡(jiǎn)單的數(shù)據(jù)傳輸能力,僅支持分段/合段功能。ATP1基本差錯(cuò)恢復(fù)類(Basic Error Recovery Class)TP0+差錯(cuò)恢復(fù);BTP2復(fù)用類(Multiplexing Class)TP0+復(fù)用/解復(fù)用;流量控制;ATP3差錯(cuò)恢復(fù)與復(fù)用類(Error Recovery & Multiplexing Class)TP1+TP2;BT
7、P4差錯(cuò)檢測(cè)與恢復(fù)類(Error Detecting & Recovery Class)T P 3 + 有 差 錯(cuò) 檢 測(cè) ;有分流/合流;C ISO定義了5類運(yùn)輸協(xié)議。如圖所示:5.2.1 運(yùn)輸服務(wù)類型 運(yùn)輸服務(wù)是由運(yùn)輸協(xié)議實(shí)體使用運(yùn)輸協(xié)議和網(wǎng)絡(luò)服務(wù)向會(huì)話實(shí)體提供的服務(wù)。運(yùn)輸服務(wù)類型:面向連接的服務(wù)面向無連接的服務(wù)對(duì)比于網(wǎng)絡(luò)層,運(yùn)輸層提供的兩種服務(wù)與網(wǎng)絡(luò)層提供的兩種服務(wù)十分相似,為什么要將它們劃分成兩個(gè)層次呢?1)傳輸層的代碼(協(xié)議)完全運(yùn)行在用戶的機(jī)器上,但是網(wǎng)絡(luò)層協(xié)議主要運(yùn)行在由線路運(yùn)營(yíng)商所控制的路由器上。因此,用戶在網(wǎng)絡(luò)層上并沒有真正的控制權(quán),所以它們不可能通過采用更優(yōu)的路由器
8、,或者通過改進(jìn)數(shù)據(jù)鏈路層糾錯(cuò)能力來改善網(wǎng)絡(luò)服務(wù)不好這個(gè)問題。唯一的解決方法是:在網(wǎng)絡(luò)層之上增加一個(gè)運(yùn)輸層。從本質(zhì)上來講,由于運(yùn)輸層的存在,使得傳輸服務(wù)有可能比網(wǎng)絡(luò)服務(wù)更加可靠。丟失的分組和損壞的數(shù)據(jù)可以在傳輸層上檢測(cè)出來,并且由傳輸層來補(bǔ)償。2)因?yàn)檫\(yùn)輸服務(wù)獨(dú)立于網(wǎng)絡(luò)服務(wù),在運(yùn)輸層中可以采用一種標(biāo)準(zhǔn)的原語集合作為運(yùn)輸服務(wù),而網(wǎng)絡(luò)服務(wù)可能隨網(wǎng)絡(luò)不同而不同。應(yīng)用開發(fā)人員可以根據(jù)這組運(yùn)輸服務(wù)原語來編寫代碼,并且其程序可以運(yùn)行在各種各樣的網(wǎng)絡(luò)上,它們不用處理不同的子網(wǎng)接口,也不用擔(dān)心不可靠的傳輸過程。如果所有實(shí)際的網(wǎng)絡(luò)都是完美無缺的,并且具有相同的服務(wù)原語,也保證不會(huì)發(fā)生變化,那么運(yùn)輸層可能就不再需要
9、了。然而,在現(xiàn)實(shí)世界中,運(yùn)輸層承擔(dān)了將子網(wǎng)技術(shù)、設(shè)計(jì)和各種缺陷與上層隔離的關(guān)鍵作用。由于這個(gè)原因,有人將網(wǎng)絡(luò)的層分成兩部分:第1層至第4層為一部分,被稱為傳輸服務(wù)提供者;第4層之上為另一部分,被稱為傳輸服務(wù)用戶。從這種分類方式中,我們可以看到運(yùn)輸層的重要了!5.2.2 運(yùn)輸服務(wù)質(zhì)量服務(wù)質(zhì)量QoS (Quality of Service)是運(yùn)輸層性能的重要度量值,反映了傳輸質(zhì)量及服務(wù)的可用性。服務(wù)質(zhì)量參數(shù):連接建立延遲、連接建立失敗、吞吐量、輸送延遲等。運(yùn)輸層協(xié)議允許用戶在連接建立時(shí)指明所期望的、可接受的或不可接受的QoS參數(shù)值。并且運(yùn)輸層協(xié)議允許用戶使用連接建立原語向運(yùn)輸服務(wù)提供者進(jìn)行協(xié)商Qo
10、S。協(xié)商過的QoS適用于整個(gè)運(yùn)輸連接的生存期。但是協(xié)商過的QoS可能被服務(wù)提供者或被叫用戶降低。關(guān)于QoS的參數(shù)的定義:1)運(yùn)輸連接建立延遲;2)運(yùn)輸連接失敗概率;3)吞吐量:?jiǎn)挝粫r(shí)間傳輸?shù)挠脩魯?shù)據(jù)的字節(jié)數(shù);在雙工信道上,每個(gè)方向都有吞吐量;最大吞吐量和平均吞吐量。4)輸送延遲:在數(shù)據(jù)請(qǐng)求和相應(yīng)的數(shù)據(jù)指示之間所經(jīng)歷的時(shí)間。在雙工信道上,每個(gè)方向都有輸送延遲。5)殘留差錯(cuò)率 6)運(yùn)輸失敗概率;7)運(yùn)輸連接拆除延遲;8)運(yùn)輸連接拆除失敗概率;9)運(yùn)輸連接保護(hù):服務(wù)提供者為防止用戶信息在未經(jīng)許可的情況下被讀取或操作的相關(guān)措施數(shù)據(jù)保密和隱私保護(hù)的問題;10)運(yùn)輸連接優(yōu)先權(quán);11)運(yùn)輸連接的回彈率:指在
11、規(guī)定時(shí)間間隔內(nèi),服務(wù)提供這發(fā)起的連接拆除(即無連接拆除請(qǐng)求的連接拆除指示)的概率。根據(jù)衡量服務(wù)質(zhì)量的以上參數(shù),將運(yùn)輸層協(xié)議服務(wù)等級(jí)細(xì)分為以下四類:可靠的面向連接的協(xié)議;不可靠的無連接協(xié)議;需要定序和定時(shí)傳輸?shù)脑捯魝鬏攨f(xié)議;需要快速和高可靠的實(shí)時(shí)協(xié)議。5.2.3 傳輸服務(wù)原語運(yùn)輸服務(wù)原語包括:運(yùn)輸連接建立(4種);正常數(shù)據(jù)傳送(2種);加速數(shù)據(jù)傳送(2種);無連接數(shù)據(jù)傳送(2種);運(yùn)輸連接釋放(2種)。這12種服務(wù)原語為運(yùn)輸管理的三個(gè)階段提供4種服務(wù)。具體細(xì)節(jié)參見教材P92 表5-2 T -C O N N E C T .requ es t T -C O N N E C T .co n firm
12、T -C O N N E C T .res p o n s e T -C O N N E C T .in d icatio n T -C O N N E C T .requ es t T -D IS C O N N E C T.in d icatio n T -D ISC O N N E C T .req u es t T -C O N N E C T .in d icatio n 成功建立連接被叫用戶拒絕建立連接 T-C O N N EC T.request T-D ISC O N N EC T.indication 服務(wù)提供者拒絕建立連接 T-EX PED IT ED -D ATA .re
13、quest T-EX PED IT ED -D ATA .indication 正常數(shù)據(jù)傳送 T-D ISC O N N EC T ED .request T-D ISC O N N EC T ED .indication 連接釋放圖 運(yùn)輸連接運(yùn)輸連接狀態(tài)轉(zhuǎn)換圖5.3.1 運(yùn)輸協(xié)議的元素在某些方面,運(yùn)輸層和數(shù)據(jù)鏈路層有相似之處:差錯(cuò)控制、PDU順序、流量控制等運(yùn)輸層協(xié)議與數(shù)據(jù)鏈路層協(xié)議之間的對(duì)比首先,數(shù)據(jù)鏈路層處理點(diǎn)到點(diǎn)的通信;而運(yùn)輸層處理端到端的通信。數(shù)據(jù)鏈路層環(huán)境運(yùn)輸層環(huán)境根據(jù)兩者處理的環(huán)境不同這一特點(diǎn),我們可以看到兩者協(xié)議的不同:在數(shù)據(jù)鏈路層,不必為一個(gè)路由器指明它要與哪個(gè)路由器通話-每
14、條輸出線對(duì)應(yīng)唯一的一個(gè)路由器。在運(yùn)輸層里,需要顯式地給出目的端地址。建立連接的過程差異。子網(wǎng)的存儲(chǔ)能力:運(yùn)輸層下面面對(duì)的是通信子網(wǎng),分組采用存儲(chǔ)轉(zhuǎn)發(fā)的方式進(jìn)行傳遞,所以子網(wǎng)具有存儲(chǔ)分組、延遲分組的能力。這種能力非常具有災(zāi)難性。數(shù)量上的差別:數(shù)據(jù)鏈路層處理單一連接;而運(yùn)輸層處理多連接,在資源管理上,這種差異還體現(xiàn)在數(shù)據(jù)緩沖管理和流量控制方面。5.3.2 編址一個(gè)進(jìn)程希望與另一個(gè)遠(yuǎn)程的應(yīng)用進(jìn)程建立連接時(shí),它必須制定連接到哪個(gè)應(yīng)用進(jìn)程上。通常使用的方法是為那些能夠監(jiān)聽連接請(qǐng)求的進(jìn)程定義相應(yīng)的傳輸?shù)刂?。在Internet上,這些端點(diǎn)稱為端口(port),其術(shù)語是TSAP。同樣地,網(wǎng)絡(luò)層上類似的端點(diǎn)稱為
15、NSAP。IP地址是NSAP的特例。例子:這個(gè)連接的主要目的是主機(jī)1中的應(yīng)用進(jìn)程想要通過傳輸層連接獲得從主機(jī)2中管理時(shí)間的服務(wù)器獲得時(shí)間的服務(wù)。連接方案如圖所示:上面描繪的場(chǎng)景非常美好,但是我們忽略了一個(gè)細(xì)微的問題:主機(jī)1上的用戶進(jìn)程如何知道時(shí)間服務(wù)器被關(guān)聯(lián)到TSAP122上?一種可能,這種關(guān)聯(lián)是一種慣例,大家都知道。在這個(gè)模型中,具有固定TSAP地址的服務(wù)被羅列在操作系統(tǒng)中一些知名的文件中,該文件列出了哪些服務(wù)器被永久地關(guān)聯(lián)到哪些端口上。然而,固定的TSAP地址僅僅對(duì)于少數(shù)永不改變的關(guān)鍵服務(wù)才適合。那么對(duì)于其它情況下,該如何處理服務(wù)器進(jìn)程與TSAP關(guān)聯(lián)呢?初始連接協(xié)議(initial con
16、nection protocol) :增加一個(gè)進(jìn)程服務(wù)器(process server)提供代理功能。它同時(shí)監(jiān)聽一組端口,以等待外來的連接請(qǐng)求。如圖所示:雖然初始連接協(xié)議對(duì)于哪些可以根據(jù)需要而創(chuàng)建的服務(wù)器來說工作得很好,但是,在許多情況下還是有一些服務(wù)必須獨(dú)立與進(jìn)程服務(wù)器而存在。例如,文件系統(tǒng)的服務(wù)器。為了處理這些情形,通??紤]使用另一種方案。在這個(gè)模型中有一個(gè)稱為名字服務(wù)器(name server)的特殊進(jìn)程,有時(shí)稱作名錄服務(wù)器(dictionary server)。 連接過程:為了找到一個(gè)與給定的服務(wù)名字相對(duì)應(yīng)的TSAP地址,用戶需要和名字服務(wù)器(它總是在監(jiān)聽一個(gè)知名的TSAP地址)建立一
17、個(gè)連接。然后,用戶發(fā)送一條消息指定它想要的服務(wù)名稱,名字服務(wù)器送回相應(yīng)的TSAP地址。之后,用戶將它與名字服務(wù)器之間的連接釋放掉,再根據(jù)送回的TSAP與期望的服務(wù)建立一個(gè)新的連接。在這個(gè)模型中,當(dāng)一個(gè)新的服務(wù)被創(chuàng)建的時(shí)候,它必須向名字服務(wù)器注冊(cè),并把它的服務(wù)名稱和TSAP告訴名字服務(wù)器。名字服務(wù)器將這份信息記錄到它的內(nèi)部數(shù)據(jù)庫中,以便用戶查詢。在這個(gè)模型中,一個(gè)很重要的一點(diǎn)是,名字服務(wù)器使用的知名TSAP地址一定是真正眾所周知的(好比電話系統(tǒng)中的110,119,114)。5.3.3 連接建立建立一個(gè)聽起來很容易,但是它實(shí)際上卻出奇的瑣碎。當(dāng)網(wǎng)絡(luò)中可能丟失、存儲(chǔ)或者重復(fù)分組的時(shí)候,問題就會(huì)發(fā)生。
18、這些行為導(dǎo)致了極為嚴(yán)重的復(fù)雜性。我們想象以下子網(wǎng)非常擁塞,確認(rèn)無法及時(shí)到達(dá),產(chǎn)生超時(shí)重傳。對(duì)于數(shù)據(jù)報(bào)方式,每個(gè)分組由于收到擁塞的影響,從而需要很多時(shí)間才能到目標(biāo)。也就是說,它們被存儲(chǔ)在子網(wǎng)內(nèi)部,過一段時(shí)間后才被送出來。例如,一個(gè)用戶與一家銀行建立了一個(gè)連接,并發(fā)送消息告訴銀行將一大筆錢轉(zhuǎn)到一個(gè)并不完全信任的人的賬戶上,然后釋放該連接。不幸的是,此場(chǎng)景中的每個(gè)分組都被復(fù)制并保存在子網(wǎng)中。當(dāng)連接被釋放以后,所有的分組又從子網(wǎng)中冒出來,并且按順序到達(dá)目標(biāo)端:請(qǐng)銀行建立一個(gè)新的連接、轉(zhuǎn)一筆錢(第二次?。缓筢尫胚B接。銀行無法辨別這些是重復(fù)的分組。它必須假定這是第二筆獨(dú)立的交易,所以再轉(zhuǎn)賬一次。以上問
19、題的關(guān)鍵是由于網(wǎng)絡(luò)中存網(wǎng)絡(luò)中存在延遲的重復(fù)分組在延遲的重復(fù)分組。對(duì)付這一問題的方法多種多樣,但是沒有一種方法讓人滿意。一種方式是使用一次性的傳輸?shù)刂罚ㄓ猛曛蠹慈拥簦_@種方式令圖5-8中進(jìn)程服務(wù)器模型無法工作。另一種方法是,發(fā)起方給每個(gè)連接分配一個(gè)連接標(biāo)識(shí)符,并且從該連接發(fā)出的TPDU都包含此連接標(biāo)識(shí)符信息。當(dāng)每個(gè)連接被釋放以后,每個(gè)傳輸實(shí)體可以更新一張內(nèi)部表,該表中以(對(duì)等傳輸實(shí)體,連接標(biāo)識(shí)符)對(duì)的形式列出了所有過期的連接。當(dāng)一個(gè)新請(qǐng)求到來時(shí),傳輸實(shí)體可以在表中進(jìn)行檢查,看它是否屬于某一個(gè)以前被釋放掉的連接。不幸的是,這種方案有一個(gè)最為基本的缺陷:它要求每個(gè)傳輸實(shí)體無限期地維護(hù)一定數(shù)量的歷
20、史信息。如果一臺(tái)機(jī)器崩潰了,它的內(nèi)存全部丟失,那么,它就不可能知道哪些連接標(biāo)識(shí)符已經(jīng)被用過了。因此,我們需要采用不同的方法。我們不再允許分組在子網(wǎng)中可以生存無限長(zhǎng)時(shí)間,而是設(shè)計(jì)一種機(jī)制來消滅掉那些已經(jīng)過時(shí)但仍然停留在子網(wǎng)中的分組。如果我們能夠確保沒有一個(gè)分組的生存期會(huì)超過一個(gè)已知的時(shí)間閾值,那么,問題就會(huì)變得好控制多了。利用下面的一種或多種技術(shù),分組的生存期就可以被限定在一個(gè)已知的最大值之內(nèi):(1)在每個(gè)分組中放置一個(gè)跳計(jì)數(shù)器;(2)為每個(gè)分組打時(shí)間戳;(3)采用受限制的子網(wǎng)設(shè)計(jì)。第一種方法是,將跳計(jì)數(shù)器初始化為某個(gè)適當(dāng)?shù)闹?,然后每次分組被轉(zhuǎn)發(fā)的時(shí)候跳計(jì)數(shù)器減一。協(xié)議簡(jiǎn)單丟棄掉計(jì)數(shù)器為零的分組
21、。第二種方法要求每個(gè)分組攜帶它的創(chuàng)建時(shí)間,路由器負(fù)責(zé)丟棄那些超齡的分組。第二種方法要求同步所有的路由器的時(shí)鐘,這本身并不是一件很容易完成的任務(wù),除非通過網(wǎng)絡(luò)之外的手段能夠?qū)崿F(xiàn)同步。對(duì)于第三種方法,實(shí)際上是對(duì)子網(wǎng)中的分組設(shè)置限定條件:限定最長(zhǎng)可能路徑上擁塞延遲的上界;限定對(duì)序號(hào)的用法。通過限定解決子網(wǎng)存儲(chǔ)重復(fù)分組而造成的潛在的威脅的問題。在實(shí)踐中,不僅要保證一個(gè)分組最終會(huì)死亡,而且要保證它的所有確認(rèn)最終也要死亡,所以引入一個(gè)T值,它是分組的實(shí)際最大生存期的某個(gè)不太大的倍數(shù)。 此倍數(shù)與具體的協(xié)議有關(guān),它只影響T的長(zhǎng)短。如果在一個(gè)分組被發(fā)送出去之后,我們等待了T秒時(shí)間,那么,我們可以確信該分組的所有
22、痕跡現(xiàn)在都沒有了。所以分組和它的確認(rèn)將來不會(huì)突然冒出來而使問題復(fù)雜化。如何安全地建立連接?使用Tomlinson方法。Tomlinson方法的前提:Tomlinson建議讓每臺(tái)主機(jī)都配備一個(gè)報(bào)告時(shí)間的時(shí)鐘。不同的主機(jī)上的時(shí)鐘不需要同步每個(gè)時(shí)鐘均采用了二進(jìn)制計(jì)數(shù)器的形式,并且在每個(gè)統(tǒng)一的時(shí)間間隔內(nèi)計(jì)數(shù)器遞增自己。計(jì)數(shù)器的位數(shù)必須等于或者超過序列號(hào)的位數(shù)。最重要的是,假定時(shí)鐘持續(xù)不停地運(yùn)行,即使主機(jī)停機(jī)它也不停?;舅枷胧牵捍_保兩個(gè)編號(hào)相等的確保兩個(gè)編號(hào)相等的TPDU永遠(yuǎn)不永遠(yuǎn)不會(huì)同時(shí)有效。會(huì)同時(shí)有效。當(dāng)建立一個(gè)連接時(shí),時(shí)鐘的低k位被用于初始序列號(hào)(作為此連接的初始的序列號(hào))。所以,每個(gè)連接都是從
23、一個(gè)完全不同的初始序列號(hào)開始對(duì)它的TPDU進(jìn)行編號(hào)。這要求序列號(hào)空間應(yīng)該足夠大,以便當(dāng)序列號(hào)回繞的時(shí)候,原來那些具有相同序列號(hào)的TPDU都早已經(jīng)消失了。時(shí)間和初始序列號(hào)之間的線性關(guān)系初始序列號(hào)曲線當(dāng)主機(jī)崩潰時(shí)有一個(gè)問題會(huì)發(fā)生:當(dāng)主機(jī)又啟動(dòng)的時(shí)候,它的傳輸實(shí)體并不知道它崩潰時(shí)處在序列號(hào)空間的什么地方!一種方案是要求傳輸實(shí)體在恢復(fù)運(yùn)行之后空等T秒鐘,以便讓所有老的TPDU都死掉。然而,在一個(gè)復(fù)雜的互聯(lián)網(wǎng)環(huán)境中,T可能非常大,所以,這種策略顯然并不切實(shí)可行。為了避免在崩潰之后要求T秒的死等時(shí)間,有必要對(duì)序列號(hào)的用法引入一項(xiàng)新的限制。即對(duì)于任何一個(gè)序列號(hào),在它有可能被用作初始序列號(hào)之前的T秒時(shí)間內(nèi),禁
24、止使用該序列號(hào)(即分配給新的TPDU)。在任何連接上發(fā)送任何TPDU之前,傳輸實(shí)體必須讀取時(shí)鐘信息,并檢查看這個(gè)TPDU的序號(hào)和時(shí)間組合不在禁止區(qū)內(nèi)。如圖所示:(a)TPDU不能進(jìn)入禁止區(qū)域 該協(xié)議在兩種情況可能會(huì)陷入困境:如果一臺(tái)主機(jī)在一個(gè)新打開的連接上發(fā)送了大量的數(shù)據(jù),并且速度太快,則意味著實(shí)際序列號(hào)與時(shí)間之間的曲線有可能比初始序列號(hào)與時(shí)間之間的曲線還要陡。這意味著任何連接上的最大數(shù)據(jù)速率為每個(gè)時(shí)鐘脈沖時(shí)鐘脈沖一個(gè)TPDU。同時(shí)這也意味著,在崩潰并重新啟動(dòng)之后,傳輸實(shí)體在打開一個(gè)新的連接之前必須等待一定數(shù)量的時(shí)鐘脈沖時(shí)鐘脈沖,以免同樣的編號(hào)被使用兩次。這兩點(diǎn)都要求使用短的時(shí)鐘脈沖。不幸的是
25、,由于發(fā)送速度太快而造成由下往上進(jìn)入禁止區(qū)域并不是陷入困境的唯一情形:即使在低于時(shí)鐘速率的任何速率上,實(shí)際使用的序列號(hào)與時(shí)間之間的曲線最終也會(huì)從左邊進(jìn)入禁止區(qū)域中。實(shí)際序列號(hào)曲線的斜度越大,則這種事件越晚發(fā)生。正如上面所述,在發(fā)送每一個(gè)正如上面所述,在發(fā)送每一個(gè)TPDU之前,傳輸實(shí)體必須對(duì)它進(jìn)行之前,傳輸實(shí)體必須對(duì)它進(jìn)行檢查,以確定是否會(huì)進(jìn)入禁止區(qū)域,檢查,以確定是否會(huì)進(jìn)入禁止區(qū)域,如果是的話,則要么延遲如果是的話,則要么延遲T秒再發(fā)送秒再發(fā)送該該TPDU,要么重新同步序列號(hào),要么重新同步序列號(hào)!(b)重新同步問題 對(duì)于這個(gè)算法我們可以這樣理解:(1)主機(jī)發(fā)送TPDU的速度受到限制,任何連接上
26、的最大速率是每個(gè)計(jì)數(shù)單位時(shí)間發(fā)送一個(gè)TPDU。如果想提高實(shí)際的發(fā)送速率的話,主機(jī)需縮短計(jì)數(shù)單位的時(shí)間長(zhǎng)度。(2)如果發(fā)送過快的話,實(shí)際序號(hào)會(huì)從下往上進(jìn)入禁止區(qū),一旦進(jìn)入禁止區(qū),這時(shí)主機(jī)等待T后再發(fā)送該TPDU。(3)如果主機(jī)發(fā)送TPDU過慢的話,實(shí)際序號(hào)會(huì)從左邊進(jìn)入禁止區(qū),一旦進(jìn)入禁止區(qū),這時(shí)主機(jī)要么等待T后再發(fā)送該TPDU,要么兩個(gè)傳要么兩個(gè)傳輸實(shí)體協(xié)商重新同步序列號(hào)輸實(shí)體協(xié)商重新同步序列號(hào)。為了真正有效地使用這種方法,首先必須要建立一個(gè)連接。由于控制TPDU也可能被延遲,所以,要讓雙方對(duì)初始序列號(hào)達(dá)成一致會(huì)有潛在的問題!問題參見教材P99頁第五段。為了解決這個(gè)問題,Tomlinson引入了
27、三步握手的過程:教材中P100頁圖5-10表示的使用三步握手法建立連接時(shí)正常的操作:主機(jī)1選擇一個(gè)序列號(hào)x,并且發(fā)送一個(gè)包含x的CONNECTION REQUEST TPDU給主機(jī)2;主機(jī)2會(huì)一個(gè)ACK TPDU作為對(duì)x的確認(rèn),并且在ACK TPDU中宣告它自己的初始序列號(hào)y;最后,主機(jī)1在它發(fā)送的第一個(gè)數(shù)據(jù)TPDU中,對(duì)主機(jī)2選擇的初始序列號(hào)進(jìn)行確認(rèn)。教材中P100頁圖5-11表示的使用三步握手法建立連接時(shí)老的CONNECTION REQUEST重復(fù)TPDU出現(xiàn)的情況:第一個(gè)TPDU是一個(gè)來自于老的連接中并且被延遲了的重復(fù)CONNECTION REQUEST,該TPDU到達(dá)主機(jī)2,而主機(jī)1對(duì)
28、此并不知情;主機(jī)2對(duì)這個(gè)TPDU進(jìn)行回應(yīng),給主機(jī)1發(fā)送一個(gè)ACK TPDU,其效果相當(dāng)與驗(yàn)證一下主機(jī)1是否真的請(qǐng)求建立一個(gè)新的連接。當(dāng)主機(jī)1拒絕了主機(jī)2的連接建立請(qǐng)求之后,主機(jī)2意識(shí)到這是延遲的重復(fù)TPDU開的一個(gè)玩笑,于是放棄了連接。因此,一個(gè)延遲的重復(fù)TPDU并沒有任何傷害。教材中P100頁圖5-12表示的使用三步握手法建立連接時(shí)CONNECTION REQUEST重復(fù)TPDU和ACK重復(fù)TPDU出現(xiàn)的情況:這里的關(guān)鍵點(diǎn)是,你必須意識(shí)到,主機(jī)2已經(jīng)建議使用y作為從主機(jī)2到主機(jī)1之間流量的初始序列號(hào),同時(shí)也要知道,現(xiàn)在已經(jīng)沒有包含序列號(hào)y的TPDU或者對(duì)y的確認(rèn)了。當(dāng)?shù)诙€(gè)延遲的TPDU到達(dá)
29、主機(jī)2的時(shí)候,主機(jī)2看到z已經(jīng)被確認(rèn)而不是y已被確認(rèn),這個(gè)事實(shí)讓主機(jī)2知道了這也是一個(gè)老的重復(fù)分組。在這里,必須要意識(shí)到的要點(diǎn)是,所有老的TPDU的組合都不能能讓協(xié)議失敗,也不能導(dǎo)致在無人期望的情況下偶然建立一個(gè)連接。5.3.4 釋放連接釋放一個(gè)連接要比建立一個(gè)連接容易的多。然而,這其中也存在許多讓人意想不到的陷阱。終止連接有兩種方式:非對(duì)稱釋放和對(duì)稱釋放。1)非對(duì)稱釋放,任何一方都可以執(zhí)行連接釋放原語,從而導(dǎo)致它的傳輸實(shí)體將一個(gè)釋放TPDU發(fā)送給遠(yuǎn)程的傳輸實(shí)體。另一端收到該TPDU之后,連接就被釋放了。2)對(duì)稱釋放:連接的兩個(gè)方向彼此獨(dú)立,每個(gè)方向需要單獨(dú)被關(guān)閉。當(dāng)一方執(zhí)行釋放原語時(shí),這意味
30、著它不再需要發(fā)送數(shù)據(jù)了,但是它仍然希望接受對(duì)方發(fā)送的數(shù)據(jù)。在這種模型中,只有當(dāng)雙方都執(zhí)行了釋放原語的時(shí)候,一個(gè)連接才真正被釋放。非對(duì)稱釋放方法較為粗暴,可能會(huì)導(dǎo)致數(shù)據(jù)丟失。參見教材P100圖5-13:注:CR = CONNECTION REQUESTDR = DISCONNECTI REQUEST在這里,第二個(gè)DATA丟失了!很顯然,我們需要一個(gè)更加復(fù)雜的釋放協(xié)議以避免數(shù)據(jù)丟失。一種方法是使用對(duì)稱釋放方式。因?yàn)椋趯?duì)稱釋放過程中,每個(gè)方向被單獨(dú)釋放,兩個(gè)方向互補(bǔ)影響。在這種方法中,即使當(dāng)主機(jī)發(fā)送了DISCONNECTION TPDU以后,它仍然可以接收數(shù)據(jù)。當(dāng)連接兩端的每個(gè)進(jìn)程有固定數(shù)量的數(shù)據(jù)
31、要發(fā)送,并且清楚地知道何時(shí)發(fā)送完這些數(shù)據(jù)的時(shí)候,對(duì)稱釋放方法可以很好地完成任務(wù)。但是,對(duì)于其他情況,確定“所有的工作都已經(jīng)完成并且連接應(yīng)該被終止”并不總是顯而易見的。有一個(gè)著名的問題說明了以上問題的要點(diǎn),它被稱為兩軍問題(two-army problem)。問題描述:如圖所示,兩旁的山上都是藍(lán)軍。白軍的實(shí)體超過了兩旁任何一支藍(lán)軍單獨(dú)的力量,但是兩支藍(lán)軍合起來的實(shí)力卻超過了白軍。如果任何一支藍(lán)軍單獨(dú)發(fā)起攻擊,則它將被擊敗,然而,如果兩支藍(lán)軍同時(shí)發(fā)起攻擊,則它們將會(huì)勝利。兩支藍(lán)軍希望能夠同時(shí)發(fā)起進(jìn)攻。然而,它們惟一的通信媒介是派士兵穿過山谷來傳遞消息。然而,士兵在穿過山谷的時(shí)候可能被抓住,從而消息丟失(即它們必須使用一條不可靠的的通信信道)。是否存在一個(gè)讓藍(lán)軍必勝的協(xié)議?假設(shè)藍(lán)軍1號(hào)的指揮官發(fā)送一條消息“我建議3號(hào)早上5點(diǎn)發(fā)起進(jìn)攻。怎么樣?”假設(shè)該消息到達(dá)了藍(lán)軍2號(hào),指揮官同意這一建議,并且他的回信(ACK)安全地回到了藍(lán)軍1號(hào)。進(jìn)攻會(huì)如期進(jìn)行嗎?可能不會(huì)!因?yàn)樗{(lán)軍2號(hào)的指揮官不知道他的回信是否能送到。他認(rèn)為如果回信沒有送過去的話,藍(lán)軍1號(hào)就不會(huì)發(fā)動(dòng)進(jìn)攻,所以對(duì)他來說,貿(mào)然發(fā)動(dòng)進(jìn)攻將是十分愚蠢的?,F(xiàn)對(duì)其進(jìn)行改進(jìn),將它變成一個(gè)三步握手協(xié)議:原始建議的發(fā)起方必須對(duì)應(yīng)答消息原始建議
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 豐田買車銷售合同范本
- 合同范本租房
- 增強(qiáng)民營(yíng)企業(yè)發(fā)展活力促進(jìn)經(jīng)濟(jì)高質(zhì)量增長(zhǎng)
- 吊裝租賃搬運(yùn)合同范本
- 合同范本不需審查
- 合同范本電子版
- 公路工程竣工檢測(cè)合同范本
- 醫(yī)療美容項(xiàng)目合同范例
- 兄弟之間借款合同范例
- 語文-2025年江西省中考第一次模擬考試(全解全析)
- 2024年陜西省初中學(xué)業(yè)水平考試·數(shù)學(xué)
- 統(tǒng)編版九年級(jí)道德與法治上冊(cè)期中考試卷帶答案
- 火電廠汽機(jī)車間安全培訓(xùn)
- 2025初級(jí)會(huì)計(jì)理論考試100題及解析
- 社區(qū)網(wǎng)格員消防安全培訓(xùn)
- 中華人民共和國統(tǒng)計(jì)法
- 某部勞務(wù)派遣服務(wù) 投標(biāo)方案(技術(shù)標(biāo) )
- 運(yùn)用PDCA降低住院患者跌倒、墜床發(fā)生率課件
- 剪刀式登高車安全技術(shù)交底
- 部編人教版小學(xué)4四年級(jí)《道德與法治》下冊(cè)全冊(cè)教案
- 新疆2022年中考數(shù)學(xué)試卷(含答案)
評(píng)論
0/150
提交評(píng)論