運(yùn)輸層服務(wù)原語_第1頁
運(yùn)輸層服務(wù)原語_第2頁
運(yùn)輸層服務(wù)原語_第3頁
運(yùn)輸層服務(wù)原語_第4頁
運(yùn)輸層服務(wù)原語_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

.在計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)中,運(yùn)輸層處于什么地位?.運(yùn)輸層的功能是什么?,什么是端到端通信?.運(yùn)輸層合同包含哪些要素?[學(xué)習(xí)目標(biāo)]本章主要要求把握運(yùn)輸層的功能和模型;把握運(yùn)輸服務(wù)的概念;理解運(yùn)輸合同的分類;了解運(yùn)輸合同的設(shè)計(jì)中要解決的主要問題和解決問題的一般方法;正確理解運(yùn)輸合同的主要兀素。[學(xué)習(xí)指南]本章學(xué)習(xí)的關(guān)鍵在于首先理解運(yùn)輸層在整個(gè)網(wǎng)絡(luò)體系結(jié)構(gòu)中所處的地位。運(yùn)輸層處于網(wǎng)絡(luò)體系結(jié)構(gòu)的核心位置,它采用通信子網(wǎng)的功能為上層應(yīng)用供應(yīng)肯定QoS的傳輸服務(wù)。把握住這一點(diǎn),就不難理解運(yùn)輸合同分類、連接管理、故障恢復(fù)等概念了。[難重點(diǎn)].運(yùn)輸服務(wù)模型.運(yùn)輸合同類.運(yùn)輸層編址.連接管理.多路復(fù)用.故障恢復(fù)第一節(jié)運(yùn)輸層功能與模型運(yùn)輸層的地位:采用網(wǎng)絡(luò)層的服務(wù)和運(yùn)輸實(shí)體的功能,向會(huì)話層供應(yīng)服務(wù)。運(yùn)輸層是整個(gè)合同層次結(jié)構(gòu)的核心。其任務(wù)是為從源端機(jī)到目的機(jī)供應(yīng)牢靠的、價(jià)格合理的數(shù)據(jù)傳輸,而與當(dāng)前網(wǎng)絡(luò)或使用的網(wǎng)絡(luò)無關(guān)。假如沒有傳輸層,整個(gè)分層合同的概念也就沒有什么意義了。本章涉及到以下概念:■運(yùn)輸實(shí)體(TE,TransportEntity)TS-Userdata用戶數(shù)據(jù)連接建立階段:勝利建立連接、被叫用戶拒絕建立連接、TS供應(yīng)者拒絕建立連接;對(duì)于通信子網(wǎng)的用戶,也就是對(duì)用戶進(jìn)程來說,我們盼望得到的是端到端的牢靠通信服務(wù)。所謂端到端即從進(jìn)程到進(jìn)程。有時(shí)還可能盼望得到其他的服務(wù),例如多對(duì)進(jìn)程之間的通信復(fù)用到一個(gè)網(wǎng)絡(luò)連接上。在互連網(wǎng)的狀況下,各子網(wǎng)所能供應(yīng)的服務(wù)往往是不一樣的。為了能使通信子網(wǎng)的用戶得到一個(gè)統(tǒng)一的通信服務(wù),就有必要設(shè)置一個(gè)運(yùn)輸層。運(yùn)輸層彌補(bǔ)了各個(gè)通信子網(wǎng)供應(yīng)的服務(wù)的差異和缺乏,而在各通信子網(wǎng)供應(yīng)的服務(wù)的基礎(chǔ)上,采用本身的運(yùn)輸合同,增加了服務(wù)功能,使得對(duì)兩端的網(wǎng)絡(luò)用戶來說,各通信子網(wǎng)都變成透亮的,而對(duì)各子網(wǎng)的用戶,面對(duì)通信的運(yùn)輸接口就成為通用的。換言之,運(yùn)輸層向高層用戶屏蔽了下面通信子網(wǎng)的細(xì)節(jié),使高層用戶看不見實(shí)現(xiàn)通信功能的物理鏈路是什么,看不見數(shù)據(jù)鏈路采納的是什么規(guī)程,也看不見下面究竟有幾個(gè)子網(wǎng)以及這些子網(wǎng)是怎樣互連起來的。運(yùn)輸層使高層用戶觀察的就是好象在兩個(gè)運(yùn)輸層實(shí)體之間有一條端到端的牢靠的通信通路。第四節(jié)運(yùn)輸合同一、運(yùn)輸合同的元素傳輸服務(wù)是通過建立連接的兩個(gè)傳輸實(shí)體之間所用的傳輸合同來實(shí)現(xiàn)的。在某些方面,傳輸合同類似數(shù)據(jù)鏈路層合同,二者都必需解決過失掌握、分組挨次、流量掌握及其它問題,但二者之間也存在著顯著的差異。這些差異主要是由于兩個(gè)合同所運(yùn)行的環(huán)境不同所造成的,如圖5.6所示。在數(shù)據(jù)鏈路層,兩個(gè)路由器通過物理通道直接通信;而在運(yùn)輸層,這個(gè)物理通道由整個(gè)子網(wǎng)所取代。這一差異對(duì)合同產(chǎn)生了很多重要的影響。首先,在數(shù)據(jù)鏈路層,不必為一個(gè)路由器指明它要與哪個(gè)路由器通話-每條輸出線對(duì)應(yīng)唯一的一個(gè)路由器。在運(yùn)輸層里,需要顯式地給出目的端地址。其次,在圖5.6(a)中的線路上建立連接的過程很簡潔:另一端總是存在的(只有在它已崩潰的狀況下才不存在),每一方都沒有太多事情要做。對(duì)運(yùn)輸層而言,初始連接的建立要簡單得多,這點(diǎn)我們以后會(huì)看到。數(shù)據(jù)鏈路層和運(yùn)輸層之間另一個(gè)主要的區(qū)分是子網(wǎng)的存儲(chǔ)力量。當(dāng)路由器發(fā)送了一幀時(shí),該幀可能會(huì)到達(dá)目的地,也可能會(huì)喪失,但它不會(huì)徘徊一會(huì)兒,隱藏在網(wǎng)絡(luò)的某個(gè)角落,而在某個(gè)不合適的時(shí)刻又突然冒出來。假如子網(wǎng)內(nèi)部采納數(shù)據(jù)報(bào)和適應(yīng)性路由選擇策略,那么就極可能將一個(gè)分組存儲(chǔ)幾秒鐘,然后再傳送。子網(wǎng)能將分組存儲(chǔ)起來的力量有時(shí)可能會(huì)產(chǎn)生災(zāi)難性后果。因此需要使用特殊的合同。數(shù)據(jù)鏈路層和運(yùn)輸層之間的最終一個(gè)區(qū)分是數(shù)量上的差異而非類型上的差異。在兩層中都需要有數(shù)據(jù)緩沖和流量掌握,但在運(yùn)輸層中消失的大量的、動(dòng)態(tài)變化的連接要求可能需要使用與在數(shù)據(jù)鏈路層中不同的處理方法。在數(shù)據(jù)鏈路層中,有些合同為每個(gè)連接均安排了固定數(shù)目的緩沖區(qū)。在運(yùn)輸層中,由于需要管理很大數(shù)目的連接,因此,為每個(gè)連接安排很多緩沖區(qū)的策略不具有吸引力。在以下的幾小節(jié)中,將考察全部這樣和那樣的問題。二、編址當(dāng)一個(gè)應(yīng)用程序盼望與一個(gè)遠(yuǎn)程應(yīng)用程序建立連接時(shí),它必需指定是與哪個(gè)應(yīng)用程序相連(無連接的傳輸存在同樣的問題:每個(gè)報(bào)文應(yīng)發(fā)送給誰)。一般采納的方法是定義進(jìn)程可以偵聽連接懇求的傳輸?shù)刂贰T谝蛱鼐W(wǎng)中,這些端點(diǎn)是(IP地址,本地端口)對(duì)。在ATM(異步傳輸模式)中,那么為AAL-SAP,我們使用中性術(shù)語傳輸服務(wù)訪問點(diǎn)TSAP(TransportServiceAccessPoint)來描述。網(wǎng)絡(luò)層中類似的端點(diǎn)(即網(wǎng)絡(luò)層地址)那么稱為NSAP。IP地址就是NSAP的例子。圖5.7說明白一個(gè)面對(duì)連接的子網(wǎng)(如ATM)中NSAP,TSAP,網(wǎng)絡(luò)連接和傳輸連接之間的關(guān)系。留意,傳輸實(shí)體通常支持多個(gè)NSAP。在有些網(wǎng)絡(luò)中,也可能存在多個(gè)NSAP,但對(duì)其他網(wǎng)絡(luò),每臺(tái)機(jī)器只有一個(gè)NSAP(如一個(gè)IP地址)。在面對(duì)連接的網(wǎng)絡(luò)層上建立一個(gè)傳輸連接,可能采納的連接方案如下:.主機(jī)2上的定時(shí)器服務(wù)進(jìn)程將自己連到122號(hào)TSAP上,等待即將到來的懇求。一個(gè)進(jìn)程如何將自己與TSAP相連是屬于網(wǎng)絡(luò)模型以外的問題,它完全依靠于本地的操作系統(tǒng)。例如,可以用USTEN調(diào)用。.主機(jī)1上的一個(gè)應(yīng)用進(jìn)程想找出當(dāng)天的時(shí)間,于是發(fā)出一個(gè)CONNECT懇求,將6號(hào)TSAP設(shè)定為源地址,將122號(hào)TSAP設(shè)定為目的地址。.主機(jī)1上的傳輸實(shí)體在其機(jī)器上選擇一個(gè)網(wǎng)絡(luò)地址(假如它不止一個(gè))并在它們之間建立一個(gè)網(wǎng)絡(luò)連接。對(duì)于無連接子網(wǎng),無須建立該網(wǎng)絡(luò)層連接,使用該網(wǎng)絡(luò)連接,主機(jī)1的傳輸實(shí)體便能與主機(jī)2的傳輸實(shí)體通話了。.主機(jī)1上的傳輸實(shí)體向主機(jī)2上對(duì)等端說的第一句話是:“早上好,我想在我的6號(hào)TSAP和你的122號(hào)TSAP之間建立一個(gè)傳輸連接。你認(rèn)為如何?”.主機(jī)2上的傳輸實(shí)體便詢問122號(hào)TSAP的定時(shí)服務(wù)器是否情愿接受一個(gè)新的連接。假如它同意,傳輸連接便建立勝利。留意,傳輸連接是從TSAP到TSAP的,而網(wǎng)絡(luò)連接只是其中的從NSAP到NSAP的局部。主機(jī)1上的用戶進(jìn)程如何知道定時(shí)服務(wù)器是連接到122號(hào)TSAP上的呢?假如我們已經(jīng)解決了這一問題,以上描繪的圖景就很美了。一種可能性是定時(shí)服務(wù)器常年與122號(hào)TSAP相連,并且全部網(wǎng)絡(luò)用戶都漸漸了解到這一點(diǎn)。在這種模型中,各種服務(wù)都有不變的、可以打印出來的TSAP地址,并且能通告給新加入到網(wǎng)絡(luò)中的用戶。圖5.7TSAP,NSAP和連接不變的TSAP地址可能適用于少數(shù)從不轉(zhuǎn)變的關(guān)鍵服務(wù)。一般地,用戶進(jìn)程常常想與其他的用戶進(jìn)程通話,這些用戶進(jìn)程只是短時(shí)間存在并且預(yù)先不知道TSAP地址。而且,假如有很多潛在的服務(wù)器進(jìn)程,而其中的大多數(shù)很少使用,那么,讓每個(gè)進(jìn)程成天處于活動(dòng)狀態(tài)并成天偵聽不變的TSAP地址是一種鋪張。簡而言之,需要一種更好的方案。被UNIX主機(jī)用于因特網(wǎng)上的一種該方案的簡化形式如圖5.8所示,稱為初始連接合同(initialconnectionprotocol)o該方案不再讓每個(gè)可能存在的服務(wù)器去偵聽一個(gè)眾所周知的TSAP地址,而是讓每臺(tái)盼望向遠(yuǎn)端用戶供應(yīng)服務(wù)的機(jī)器運(yùn)行一個(gè)特殊的進(jìn)程服務(wù)器(processserver),它充當(dāng)載荷較輕的服務(wù)器的代理。它同時(shí)偵聽一系列端口,等待TCP連接懇求。需耍某種服務(wù)的用戶通過執(zhí)行CONNECT懇求開頭,然后設(shè)定他們所需服務(wù)的TSAP地址(TCP端口)。假如沒有服務(wù)器在等待它的到來,它將會(huì)連接到進(jìn)程服務(wù)器上,如圖5.8(a)所示。當(dāng)進(jìn)程服務(wù)器收到傳入的懇求后,便裝入用戶懇求的服務(wù)器,并將已經(jīng)建立的與用戶的連接轉(zhuǎn)交給它。于是新的服務(wù)器便開頭執(zhí)行用戶懇求的任務(wù),而進(jìn)程服務(wù)器那么又回去偵聽新的用戶連接懇求,如圖5.8(b)所示。盡管初始連接合同對(duì)于那些需要隨時(shí)創(chuàng)立的服務(wù)器來說是特別有效的,但確實(shí)存在著很多服務(wù)不依靠于進(jìn)程服務(wù)器的狀況。例如,文件服務(wù)器需要在特定的硬件(帶有硬盤的機(jī)器)上遠(yuǎn)行,而不能當(dāng)有用戶想與其通話時(shí)才倉促創(chuàng)立。在這種狀況下常常采納另一種方案。在這種模型中,存在一個(gè)稱為名字服務(wù)器(nameserver),有時(shí)稱作名錄服務(wù)器(dictionaryserver)的特殊進(jìn)程。為了找到與一個(gè)給定服務(wù)名稱(如定時(shí)服務(wù)器("time-of-day”))相對(duì)應(yīng)的TSAP地址,用戶要與該名字服務(wù)器(它始終在偵聽一個(gè)眾所周知的TSAP)建立一個(gè)連接。接著,用戶向名字服務(wù)器發(fā)送一個(gè)報(bào)文,指明服務(wù)的名稱,而名字服務(wù)器那么將相應(yīng)的TSAP地址返回給用戶。接下來,用戶釋放與名字服務(wù)器之間的連接,而與盼望得到的服務(wù)之間建立-個(gè)新的連接。在這種模型中,當(dāng)創(chuàng)立一個(gè)新的服務(wù)時(shí),必需向名字服務(wù)器注冊(cè),給出它的服務(wù)名稱(一般是ASIONREQUEST)TPDU,并等待對(duì)方接受連接(CONNECTIONACCEPTED)的應(yīng)答就足夠了,但當(dāng)網(wǎng)絡(luò)可能喪失、存儲(chǔ)和消失重復(fù)分組時(shí),問題便消失了。設(shè)想一個(gè)子網(wǎng)特別擁塞以至于根本不能準(zhǔn)時(shí)返回“確認(rèn)”,每個(gè)分組由于在規(guī)定時(shí)限內(nèi)得不到確認(rèn)而需要重發(fā)二次或三次的情形。假設(shè)該子網(wǎng)內(nèi)部使用數(shù)據(jù)報(bào),并且每個(gè)分組擁有不同的路由。一些分組可能會(huì)由于子網(wǎng)內(nèi)部的線路擁塞.需要很長一段時(shí)間才能到達(dá),即它們被存儲(chǔ)到子網(wǎng)中,并在很久以后突然消失。最壞的可能性是發(fā)生下面的狀況。一個(gè)用戶與銀行之間建立了一條連接,并發(fā)送報(bào)文讓銀行將一筆巨款轉(zhuǎn)至一個(gè)不能完全信任的人的賬戶下,然后便釋放連接。不幸的是,此時(shí)每個(gè)分組均被復(fù)制并存放于子網(wǎng)中。當(dāng)連接已經(jīng)斷開后。全部的復(fù)制分組又會(huì)從子網(wǎng)中發(fā)出并挨次到達(dá)目的瑞,懇求與銀行建立一個(gè)新的連接并再次轉(zhuǎn)賬,然后釋放連接。而銀行那么無法區(qū)分這些分組是重復(fù)的,便假定這是其次次獨(dú)立的轉(zhuǎn)賬業(yè)務(wù)。于是將巨款再次轉(zhuǎn)移。本節(jié)剩下的局部將特地爭論延遲的重復(fù)分組問題,特殊重點(diǎn)爭論牢靠地建立連接的算法,以防止類似于上述災(zāi)難性問題的發(fā)生。問題的關(guān)鍵是由于子網(wǎng)中存在著延遲的重復(fù)分組。解決這一問題的方法很多,但都不是很令人滿足。一種方法是廢棄使用過的傳輸?shù)刂?。在這種方法中,每次需要一個(gè)傳輸?shù)刂窌r(shí),系統(tǒng)便產(chǎn)生一個(gè)新的。當(dāng)釋放一個(gè)連接時(shí),傳輸?shù)刂繁惚粡U棄了。這一策略使進(jìn)程服務(wù)器變?yōu)闊o效。另一種可能的解決方法是給每個(gè)連接安排一個(gè)連接標(biāo)識(shí)符,即一個(gè)隨連接建立而遞增的挨次號(hào),該標(biāo)識(shí)符由懇求連接方選擇,并放進(jìn)包括連接懇求在內(nèi)的每個(gè)TPDU中。當(dāng)每個(gè)連接被釋放后,各傳輸實(shí)體可以更新一張表,列出全部過時(shí)的連接對(duì)(對(duì)等的傳輸實(shí)體,連接標(biāo)識(shí)符)。每當(dāng)收到一個(gè)連接懇求時(shí),便檢查這張表,看該連接是否屬于以前所釋放的連接。不幸的是,這種方案有一些基本的缺陷:它要求每個(gè)傳送實(shí)體長時(shí)間保持肯定量的歷史信息。假如某臺(tái)機(jī)器由于崩潰而喪失了它存儲(chǔ)的信息,那么它便無法再獲知哪些連接標(biāo)識(shí)符是用過的。因而我們需要實(shí)行一種不同的方法。我們必需設(shè)計(jì)出一種機(jī)制來刪除那些仍在網(wǎng)中”徘徊”的過時(shí)的分組,不讓它們永久存留在子網(wǎng)中。假如我們能夠確保任何一個(gè)分組在子網(wǎng)中的存留時(shí)間都不超過某個(gè)的時(shí)間.那么問題在某種程度上就變得較易處理了。采納下述的技術(shù)之一,可以將分組的生命周期限制在一個(gè)的最大值內(nèi):.受限制的子網(wǎng)設(shè)計(jì);.在每個(gè)分組內(nèi)設(shè)置一個(gè)生存時(shí)間;,為每個(gè)分組加上時(shí)間戳。第一種方法包括防止分組進(jìn)入回路,以及限制延時(shí)不超過(當(dāng)前的)可能最長的路徑時(shí)延。其次種方法是在每次轉(zhuǎn)發(fā)分組時(shí)使生存時(shí)間加1。數(shù)據(jù)鏈路層合同將丟棄那些生存時(shí)間值超過某個(gè)特定值的分組。第三種方法要求每個(gè)分組均包含生成時(shí)間,山路由器負(fù)責(zé)丟棄超過預(yù)定時(shí)間的舊分組。第三種方法要求路由器的時(shí)鐘同步,而同步本身就是一項(xiàng)繁重的任務(wù),除非同步信號(hào)來自子網(wǎng)絡(luò)外部,如通過收聽定期廣播精確時(shí)間的無線電臺(tái)。在實(shí)際應(yīng)用中,我們不僅需要保證一個(gè)分組已經(jīng)無效,而且要保證對(duì)該分組的全部確認(rèn)均告失效,因此,我們現(xiàn)在引進(jìn)T的概念,它表示實(shí)際最長的生命期的某個(gè)不太大的倍數(shù)。該倍數(shù)與所用的合同無關(guān),只是對(duì)延長T有影響。假如在一個(gè)分組發(fā)出后等待了時(shí)間T,我們便可以確定有關(guān)該分組的一切現(xiàn)在已告失效,該分組及其確認(rèn)將不會(huì)再次突然消失而使問題簡單化。依據(jù)分組限定的生命期,有可能設(shè)計(jì)出一種建立牢靠連接的平安方法。下面描述的方法源于Tomlinson(1975),該方法解決了這一問題,但同時(shí)也帶來了特殊問題。這一方法后來經(jīng)Sunshine和Dalal(1978)做了進(jìn)一步的優(yōu)化。該方法以各種形式廣泛用于實(shí)踐中。為了解決系統(tǒng)崩潰后機(jī)器會(huì)喪失全部存儲(chǔ)信息的問題。Tomlinson建議為每臺(tái)主機(jī)增設(shè)一個(gè)計(jì)時(shí)(time-of-day)時(shí)鐘。不同主機(jī)的時(shí)鐘不需同步。假定每個(gè)時(shí)鐘都采納二進(jìn)制計(jì)數(shù)器形式,在統(tǒng)一的時(shí)間間隔內(nèi)累加計(jì)數(shù)。而且,計(jì)數(shù)器內(nèi)的位數(shù)必需等于或大于序列號(hào)內(nèi)的位數(shù)。最終,也是更重要的,是假定時(shí)鐘始終在運(yùn)轉(zhuǎn),即使主機(jī)停機(jī)亦如此。基本思想是確保在同一時(shí)刻永久不會(huì)消失兩個(gè)編號(hào)相同的TPDUo當(dāng)一個(gè)連接建立后,時(shí)鐘的低k位作為初始序號(hào)(也是k位)。這樣便不同于數(shù)據(jù)鏈路層所介紹的合同,每個(gè)連接均以不同的序號(hào)開頭對(duì)其TPDU進(jìn)行編號(hào),序號(hào)空間應(yīng)很大,以便當(dāng)序號(hào)再次(循環(huán)了一周)消失時(shí),具有相同序號(hào)的舊的TPDU早已傳送完畢。時(shí)間和初始序號(hào)之間的線性關(guān)系如圖5.9所示。一旦建立連接的兩個(gè)傳輸實(shí)體接受了初始序號(hào),便可以使用任何滑動(dòng)窗口合同來實(shí)現(xiàn)數(shù)據(jù)流量掌握。實(shí)際上,初始序號(hào)曲線(由粗線表示)并非真正線性的,而是階梯形的,由于時(shí)鐘是以離散形式前進(jìn)的。為簡潔起見,我們忽視這一細(xì)節(jié)。當(dāng)主機(jī)崩潰時(shí)會(huì)消失問題,即當(dāng)主機(jī)再次啟動(dòng)運(yùn)行后,其傳輸實(shí)體不知道它處在序號(hào)空間的什么位置。一種解決方法是要求傳輸實(shí)體在主機(jī)恢復(fù)后空閑等待Ts,以便使全部過時(shí)的TPDU失效。然而,在一個(gè)簡單的網(wǎng)絡(luò)系統(tǒng)中,T值可能很大,所以這種方法不具有吸引力。為了避開在系統(tǒng)崩潰后所要求的Ts空閑等待時(shí)間,有必要對(duì)序號(hào)的使用引入一種新的限制。通過一個(gè)例子我們會(huì)看到這種限制的必要性。設(shè)分組的最長生命期為60S,計(jì)時(shí)時(shí)鐘每秒計(jì)數(shù)一次。如圖5.9所示,對(duì)于x時(shí)刻接通的連接,其初始序號(hào)將為X。設(shè)想當(dāng)t=30s時(shí),發(fā)送至5號(hào)連接(已經(jīng)接通)的一個(gè)一般的數(shù)據(jù)TPDU被給予的序號(hào)為80。不妨稱其為TPDUX。在將TPDUX發(fā)送出去后。主機(jī)即崩潰并且很快重啟。在t=60s的時(shí)亥IJ,它開頭重新接通0至4號(hào)連接。在t=70s時(shí),它依據(jù)連接懇求以初始序號(hào)70重新接通了5號(hào)連接。在接下來的15s內(nèi),主機(jī)發(fā)送出70?80號(hào)數(shù)據(jù)TPDLL于是,當(dāng)t=85s時(shí),一個(gè)序號(hào)為80的新的TPDU以及連接5被送入子網(wǎng)中。不幸的是,此時(shí)TPDUX仍舊存在。假如TPDUX能先于新的TPDU80到達(dá)接收方,它便會(huì)被接受,但正確的TPDU80卻被作為重復(fù)數(shù)據(jù)而拒收。為了避開消失這類問題,我們必需做到在一些序號(hào)可用作初始序號(hào)之前的時(shí)間T內(nèi)禁止使用它們(即給予新的TPDU)。時(shí)間和序號(hào)的非法組合如圖5.9(a)中的禁止區(qū)域所示。任何連接在發(fā)送任何TPDU之前,傳輸實(shí)體都必需讀計(jì)時(shí)值,并進(jìn)行檢查,以確保該TPDU的序號(hào)和時(shí)間組合不在禁止區(qū)域內(nèi)。該合同在兩種不同狀況下可能會(huì)陷入逆境。假如一臺(tái)主機(jī)在一個(gè)剛剛接通的連接上發(fā)送的數(shù)據(jù)太多、太快,實(shí)際的序號(hào)與時(shí)間的關(guān)系曲線要比初始序號(hào)與時(shí)間的關(guān)系曲線更陡些(斜率更大)。這意味著在任何連接上的最大數(shù)據(jù)傳輸速率是每秒鐘傳送一個(gè)TPDU;還意味著在系統(tǒng)崩潰恢復(fù)后接通一個(gè)新的連接之前,傳輸實(shí)體必需空閑等待一段時(shí)間,以免同一序號(hào)被重用。這兩點(diǎn)都要求時(shí)鐘的脈沖間隔要短(幾個(gè)毫秒)。很不幸,由于發(fā)送數(shù)據(jù)太快而從曲線下方進(jìn)入禁止區(qū)域并不是陷入逆境的唯一情形。從圖5.9(b)中可以清晰地看到,當(dāng)任何數(shù)據(jù)傳輸速率低于時(shí)鐘速率時(shí),實(shí)際所用的序號(hào)與時(shí)間曲線將最終從左側(cè)進(jìn)入禁止區(qū)域。實(shí)際所用序號(hào)曲線的斜率越大,該曲線進(jìn)入禁區(qū)的時(shí)間越晚。正如上面講過的,傳輸實(shí)體在發(fā)送兩個(gè)TPDU之前必需檢查該TPDU是否將進(jìn)入禁止區(qū)域,假如是,那么將延遲Ts后再發(fā)送該TPDU,或者重新對(duì)序號(hào)進(jìn)行同步?;跁r(shí)鐘的方法解決了數(shù)據(jù)TPDU的延遲重發(fā)問題,但要使該方法可行,必需首先建立連接。由于掌握TPDU也可能被延遲,所以在使雙方都接受初始序號(hào)這點(diǎn)上可能消失問題。例如,假設(shè)連接是由主機(jī)1向遠(yuǎn)端對(duì)等主機(jī)2發(fā)送連接懇求TPDU而建立的,該TPDU中包含了主機(jī)1建議的初始序號(hào)和目的端口號(hào)。接收方(主機(jī)2)通過回送一個(gè)接受連接TPDU來確認(rèn)該懇求。假如連接懇求TPDU在傳送時(shí)喪失而延遲的重復(fù)連接懇求突然消失在主機(jī)2上,那么連接將會(huì)被錯(cuò)誤地建立。為了解決這一問題,Tomlinson(1975)引入了三次握手(three-wayhandshake)的方法。該建立連接的合同并不要求連接的雙方以相同的序號(hào)開頭發(fā)送數(shù)據(jù),所以它可以在同步方式下使用,而不必非要采納全局計(jì)時(shí)時(shí)鐘的方式。當(dāng)主機(jī)1發(fā)出連接懇求時(shí),連接建立的一般過程:主機(jī)1選擇一個(gè)序號(hào)x并向主機(jī)2發(fā)送一包含了該序號(hào)的連接懇求TPDU;接著,主機(jī)2回應(yīng)一個(gè)接受連接TPDU,確認(rèn)x并聲明自己所選用的初始序號(hào)y;最終,主機(jī)1在其發(fā)送的第一個(gè)數(shù)據(jù)TPDU中確認(rèn)主機(jī)2所選擇的初始序號(hào)。現(xiàn)在來看看當(dāng)消失延遲的重復(fù)掌握TPDU時(shí),三次握手方法是如何工作的。第一個(gè)TPDU是來自于一個(gè)已經(jīng)釋放的連接的延遲重復(fù)的連接懇求,該TPDU在主機(jī)1毫不知曉的狀況下到達(dá)主機(jī)2。主機(jī)2通過向主機(jī)1發(fā)送一個(gè)接受連接TPDU來響應(yīng)TPDU,而該接受連接TPDU的真正目的是要證明主機(jī)I確實(shí)試圖建立一個(gè)新的連接。當(dāng)主機(jī)1拒絕接受主機(jī)2建立連接的意圖時(shí),主機(jī)2便意識(shí)到自己受到了延時(shí)的重復(fù)TPDU的哄騙并放棄該連接。這樣,延時(shí)的重復(fù)數(shù)據(jù)便不會(huì)產(chǎn)生不良后果。最糟糕的狀況是當(dāng)一個(gè)延時(shí)的CR(連接懇求)和一個(gè)對(duì)ACC(接受連接)確實(shí)認(rèn)并存于子網(wǎng)中時(shí),見動(dòng)畫。如上例一樣,主機(jī)2收到了一個(gè)延時(shí)的CR并做了確認(rèn)應(yīng)答。在這里,關(guān)鍵是要熟悉到主機(jī)2已經(jīng)建議使用y作為從主機(jī)2到主機(jī)1進(jìn)行數(shù)據(jù)傳輸?shù)某跏夹蛱?hào),由于主機(jī)2特別清晰當(dāng)前沒有序號(hào)y或?qū)進(jìn)行確認(rèn)的TPDU存在。于是,當(dāng)其次個(gè)延時(shí)的TPDU到達(dá)主機(jī)2時(shí),主機(jī)2依據(jù)它確認(rèn)的是序號(hào)z而不是y知道這也是一個(gè)過時(shí)的重復(fù)TPDLL重要的是要熟悉到此處不會(huì)消失過時(shí)的CR,ACC或其他可能引起合同失敗的TPDU組合的狀況,也不會(huì)無故建立無人要求的連接。另一種針對(duì)延遲的重復(fù)TPDU而能牢靠地建立連接的方案請(qǐng)參見(Waston,1981)。該方案使用了多個(gè)定時(shí)器來排解意外的大事。2.釋放連接連接的釋放要比建立更簡潔些。盡管如此,仍有很多不引人留意的細(xì)節(jié)問題。前面曾提到過,終止連接有兩種方式:非對(duì)稱釋放和對(duì)稱釋放。非對(duì)稱釋放是系統(tǒng)動(dòng)作方式:當(dāng)一方掛機(jī)后,連接即告中斷。對(duì)稱釋放將連接依據(jù)兩個(gè)獨(dú)立的單向連接來處理,要求每一方分別釋放連接。非對(duì)稱釋放很突然,因而可能會(huì)導(dǎo)致喪失數(shù)據(jù)。請(qǐng)看動(dòng)畫中所示的釋放連接(DR)情形。當(dāng)連接建立后,主機(jī)1發(fā)送了一個(gè)數(shù)據(jù)TPDU并正確抵達(dá)主機(jī)2,接著,主機(jī)1發(fā)送了另一個(gè)數(shù)據(jù)TPDU,這次很不幸,主機(jī)2在收到其次個(gè)TPDU之前先發(fā)出了DISCONNECT(釋放連接懇求),結(jié)果是連接被釋放,數(shù)據(jù)被喪失。明顯,我們需要采納更為完善的連接釋放合同來防止數(shù)據(jù)喪失。一種方法是采納對(duì)稱釋放方式,每個(gè)方向獨(dú)立釋放本方的連接。這種方式中,即使主機(jī)已經(jīng)發(fā)出了釋放連接TPDU,仍舊能夠連續(xù)接收數(shù)據(jù)。對(duì)稱釋放方式適用于每個(gè)用戶進(jìn)程有固定數(shù)量的數(shù)據(jù)需要發(fā)送,而且清晰地知道何時(shí)發(fā)送完畢的狀況。其他狀況下,打算全部工作是否已經(jīng)完成和連接是否應(yīng)釋放是沒有把握的??梢灶A(yù)想一種合同,在該合同下,主機(jī)1說:“我發(fā)送完了。你呢?”假如主機(jī)2響應(yīng):”我也發(fā)送完了。再見。“那么,連接變可以被平安釋放。不幸的是,這種合同并非總是有效的。對(duì)此有一個(gè)聞名的問題,稱為兩軍問題(twoarmyproblem)o設(shè)想一支白軍被圍困在一個(gè)山谷中,如圖5.10所示。山谷兩側(cè)是藍(lán)軍。白軍在人數(shù)上比山谷兩側(cè)的任何一支藍(lán)軍都多,但少于兩支藍(lán)軍合在-起的人數(shù)。假如單獨(dú)一支藍(lán)軍對(duì)白軍發(fā)動(dòng)進(jìn)攻,那么必?cái)o疑;但假如兩支藍(lán)軍同時(shí)進(jìn)攻,便可取勝。假設(shè)藍(lán)軍1號(hào)的指揮官發(fā)出消息、:”我建議在3月29日拂曉發(fā)起攻擊。怎么樣?”現(xiàn)在假設(shè)信息送到了,藍(lán)軍2號(hào)的指揮官同意這一建議,并且他的回信平安送回到藍(lán)軍1號(hào)處。那么能否發(fā)動(dòng)進(jìn)攻呢?很可能不會(huì),由于藍(lán)軍2號(hào)的指揮官不知道他的回信是否平安到達(dá)了。假如未送到,藍(lán)軍1號(hào)將不會(huì)適時(shí)發(fā)起攻擊,那么他貿(mào)然進(jìn)攻就是愚蠢的。現(xiàn)在我們采納三次握手的方法來改進(jìn)這一合同。最初提出建議的指揮官必需確認(rèn)對(duì)該建議的應(yīng)答信息。假如信息沒有喪失,藍(lán)軍2號(hào)將收到該確認(rèn)信息,但現(xiàn)在藍(lán)軍1號(hào)指揮官開頭遲疑起來。由于他究竟不知道他確實(shí)認(rèn)信息是否被平安收到了,假如未被收到,他清晰藍(lán)軍2號(hào)不會(huì)按時(shí)發(fā)動(dòng)進(jìn)攻。那么我們現(xiàn)在采納四次握手合同會(huì)如何呢?結(jié)果仍是于事無補(bǔ)。實(shí)際上,可以證明不存在有效解決該問題的合同。假如存在某種合同的話,那么,合同中最終一條信息要么是必需的,要么不是。假如不是,可以刪除它(以及其他任何不必要的信息),直到剩下的合同中每條信息均必不行少。那么假設(shè)最終-條信息沒有平安到達(dá)目的地會(huì)怎樣呢?剛才說過這條信息是必需的,因此,假如它喪失了,進(jìn)攻方案便不會(huì)實(shí)施。由于最終發(fā)出信息的指揮官永久無法確定該信息能否平安到達(dá)。所以他便不會(huì)貿(mào)然行動(dòng)。同樣,另一支藍(lán)軍也明白這個(gè)道理,所以也不會(huì)發(fā)動(dòng)進(jìn)攻。為了看清兩軍問題與釋放連接之間的相關(guān)性,只需用“釋放連接“代替”攻擊”一詞就行了。假如連接的雙方在確信對(duì)方也預(yù)備釋放連接之前都不預(yù)備斷開連接,那么連接將永久也得不到釋放。在實(shí)際應(yīng)用時(shí),人們?cè)诮鉀Q釋放連接問題時(shí)往往預(yù)備冒比進(jìn)攻白軍問題更大的風(fēng)險(xiǎn),所以問題并非完全沒有盼望解決。動(dòng)畫說明白采納三次握手方法進(jìn)行連接釋放的四種狀況。這一合同并非肯定無誤,但它已令人滿足了。正常釋放的情形,此時(shí),一個(gè)用戶發(fā)出一個(gè)DR(釋放連接懇求)TPDU,而首先要求釋放連接。當(dāng)該TPDU到達(dá)后,接收方也回送個(gè)DRTPDU,并同時(shí)啟動(dòng)定時(shí)器以防止其DRTPDU喪失。當(dāng)應(yīng)答方的DR到達(dá)后,最初提出釋放連接的一方又回送一個(gè)ACK(確認(rèn))TPDU,并斷開連接。最終,當(dāng)ACKTPDU抵達(dá)目的地后,接收方也釋放連接。釋放一個(gè)連接意味著傳輸實(shí)體從其記載全部接通的連接的表中刪除該連接的有關(guān)信息并設(shè)法通知該連接的全部者(傳輸用戶)。該操作有別于傳輸用戶調(diào)用DISCONNECT原語的情形。假如最終的ACK(確認(rèn))TPDU喪失,如動(dòng)畫所示,那么就需要用定時(shí)器來補(bǔ)救了。當(dāng)定時(shí)器超過時(shí)限后,連接將被“強(qiáng)行“釋放。現(xiàn)在考察其次個(gè)DR(響應(yīng)的DR)喪失的情形。這時(shí),首先提出釋放連接的用戶將不能收到所期盼的響應(yīng),待到定時(shí)器超時(shí),再次開頭要求釋放連接。從動(dòng)畫中可以看到這種狀況下是如何工作的,假設(shè)其次次沒有任何TPDU喪失,并且全部TPDU都正確、準(zhǔn)時(shí)地到達(dá)目的地。最終一種狀況。除了假設(shè)由于喪失TPDU使全部重發(fā)DR的嘗試均失敗以外,其他狀況與上個(gè)動(dòng)畫完全相同。這樣,經(jīng)過N次嘗試后,發(fā)送方(提出釋放連接的一方)只好放棄努力并斷開連接。同時(shí),接收方(被動(dòng)釋放連接的一方)由于定時(shí)器超時(shí)也釋放掉連接。這種合同通常已經(jīng)滿足需要了,但理論上當(dāng)?shù)谝粋€(gè)DR和全部N次重發(fā)均被喪失的狀況下,該合同便會(huì)失敗。由于此時(shí)發(fā)送方將放棄重發(fā)并釋放連接,而另一方卻對(duì)對(duì)方的釋放連接企圖一無所知,而處于連接有效狀態(tài)。這種狀況將導(dǎo)致一個(gè)半接通的連接。可以實(shí)行一種措施來避開這種問題的發(fā)生,即禁止發(fā)送方在做完N次嘗試后放棄連接而讓它始終連續(xù)下去,直到已收到了一個(gè)應(yīng)答。然而,假如另一方采納超時(shí)而釋放連接的方法,那么,發(fā)送方將會(huì)永久處于發(fā)送DR狀態(tài),由于它不行能再收到應(yīng)答信息了(對(duì)方已經(jīng)釋放連接了)。假如我們禁止接收方采納超時(shí)中斷連接的方法,那么該合同對(duì)圖5.22(b)所示的狀況便會(huì)束手無策。一種消退半接通連接的方法是,假如在一段時(shí)間內(nèi)沒有收到任何TPDU,連接便自動(dòng)釋放。這樣,假如一方已經(jīng)釋放了連接,那么另一方將檢測不到對(duì)方的活動(dòng)因而也斷開連接。當(dāng)然,假如引進(jìn)這一規(guī)章,就需要為每個(gè)傳輸實(shí)體設(shè)置一個(gè)定時(shí)器,每當(dāng)收到一個(gè)TPDU時(shí)都要使定時(shí)器停止并重新啟動(dòng)。假如該定時(shí)器超時(shí),就發(fā)送一個(gè)偽TPDU,目的只是不讓對(duì)方釋放連接。另一方面,假如采納自動(dòng)釋放連接的規(guī)章,并且在一個(gè)處與空閑狀態(tài)的連接上連續(xù)喪失了很多的偽TPDU,那么連接的雙方將會(huì)先后釋放連接。對(duì)這個(gè)問題本書不再作進(jìn)一步說明白,(暨陽社區(qū)版權(quán)全部),但現(xiàn)在應(yīng)清晰,釋放一個(gè)連接并非像初看起來那么簡潔。在連接、虛電路及物理鏈路上,多路復(fù)用幾組對(duì)話的方法在網(wǎng)絡(luò)結(jié)構(gòu)的很多層上都有肯定的作用。在傳輸層中對(duì)多路復(fù)用技術(shù)的需要表現(xiàn)在很多方面。例如,子網(wǎng)內(nèi)部使用虛電路的網(wǎng)絡(luò)中,每個(gè)接通的連接在連接的整個(gè)階段均需占據(jù)路由器中的一些表空間。假如緩沖區(qū)是被安排給每個(gè)路由器中的虛電路的,那么登錄到遠(yuǎn)端機(jī)器上的用戶離開終端去喝咖啡期間,他仍舊在耗費(fèi)著昂貴的資源。盡管這種分組交換的實(shí)現(xiàn)與使用分組交換的主要緣由之一一一用戶只依據(jù)傳輸?shù)臄?shù)據(jù)量而不是依據(jù)連接時(shí)間付費(fèi)相抵觸,但很多通信公司還是選擇了按時(shí)間收費(fèi)的方法,由于它特別類似于他們?cè)谶^去的幾十年中巳經(jīng)習(xí)慣了的電路交換模型。在這種價(jià)格結(jié)構(gòu)下,長時(shí)間保持虛電路的接通特別不利,于是使不同的傳輸連接復(fù)用到同一網(wǎng)絡(luò)連接上的技術(shù)便很有吸引力。這種形式的多路復(fù)用稱為向上多路復(fù)用(upwardmultiplexing),如圖5.11(a)所示。圖中,4個(gè)不同的傳輸連接都使用同一網(wǎng)絡(luò)連接(例如,ATM虛電路)與遠(yuǎn)端主機(jī)相連。當(dāng)連接時(shí)間成為通信費(fèi)用的主要因素時(shí),就由傳輸層依據(jù)傳輸連接的目的地將它們分為不同的組,并將每個(gè)分組映射到最小數(shù)目的網(wǎng)絡(luò)連接上。假如有太多的傳輸連接被映射到同一個(gè)網(wǎng)絡(luò)連接上,性能就會(huì)變得很差,由于窗口通常是滿的,用戶不得不排隊(duì)等待發(fā)送報(bào)文。假如映射到一個(gè)網(wǎng)絡(luò)連接上的傳輸連接過少,那么服務(wù)費(fèi)用會(huì)很昂貴。當(dāng)在ATM上向上多路復(fù)用時(shí),盡管ATM特意為了標(biāo)識(shí)連接而為每個(gè)虛通路供應(yīng)了4000多虛電路號(hào)碼,但我們還是要用傳送報(bào)文頭部的一個(gè)字段來標(biāo)明連接,這真是一個(gè)莫大的挖苦。由于另一個(gè)與傳輸技術(shù)而非價(jià)格因素有關(guān)的緣由,使多路復(fù)用在傳輸層中也可能有用。例如,假定某個(gè)重要的用戶有時(shí)需要高帶寬的連接。假如子網(wǎng)需要用n位序號(hào)作為一個(gè)滑動(dòng)窗口的流量掌握,那么當(dāng)有2n-1分組未得到確認(rèn)時(shí),用戶就必需停止發(fā)送,等待這些分組到達(dá)遠(yuǎn)端主機(jī)并得到確認(rèn)。假如物理連接是通過衛(wèi)星相連的,那么用戶便被嚴(yán)格限制在每540ms傳送2n-1個(gè)分組的速率上。例如,當(dāng)n=8,并且分組大小為128字節(jié)時(shí),可用帶寬大約是4Mb/s,即使物理通道帶寬比它高出100多倍,也是枉然。一種可能的解決方案是讓傳輸層接通多個(gè)網(wǎng)絡(luò)連接,以循環(huán)輪轉(zhuǎn)的策略在這些連接上安排傳輸信息,如圖5.11(b)所示。這種方法的操作稱為向下多路復(fù)用(downwardmultiplexing)o在k個(gè)網(wǎng)絡(luò)連接接通的狀況下,有效帶寬將增加k倍。采納4095條虛電路,128字節(jié)長的分組以及8位的序號(hào),理論上可能會(huì)到達(dá)超過1.6Gb/s的數(shù)據(jù)傳輔速率。當(dāng)然,這種性能只有當(dāng)輸出線中支持1.6Gb/s速率的狀況下才有可能實(shí)現(xiàn)。這是由于全部4095條虛電路仍舊在一條物理線路上發(fā)送數(shù)據(jù),至少在圖5.11(b)中是這樣的。假如采納多條輸出線路,那么向下多路復(fù)用還可能大幅度地提高性能。五、故障恢復(fù)假如主機(jī)和路由器易崩潰,那么就存在著從崩潰恢復(fù)的問題。假如傳輸實(shí)體完全在主機(jī)內(nèi)部,那么從網(wǎng)絡(luò)和路由器崩潰中恢復(fù)是直截了當(dāng)?shù)?。假如網(wǎng)絡(luò)層供應(yīng)數(shù)據(jù)報(bào)服務(wù),傳輸實(shí)體對(duì)喪失的TPDU留有副本,就會(huì)知道如何解決恢復(fù)問題。假如網(wǎng)絡(luò)層供應(yīng)的是面對(duì)連接的服務(wù),那么處理虛電路突然中斷的方法是建立一條新的虛電路,接著探查遠(yuǎn)端機(jī)的傳輸實(shí)體,看它已經(jīng)收到了哪些TPDU以及哪些還未收到,后者可以重發(fā)。一個(gè)較簡單的問題是如何從主機(jī)崩潰中進(jìn)行恢復(fù)。尤其是當(dāng)服務(wù)器崩潰并很快重新啟動(dòng)后,客戶端盼望能夠連續(xù)進(jìn)行崩潰前的操作。為了說明其困難程度,我們假設(shè)客戶端主機(jī)正在使用一個(gè)簡潔的?!龅群贤蜻h(yuǎn)端的文件服務(wù)器主機(jī)發(fā)送一個(gè)長文件。服務(wù)器端的傳輸層只是簡潔地將收到的TPDU依次傳給用戶。在傳送到1/2時(shí),服務(wù)器崩潰了。當(dāng)它重新啟動(dòng)后,它全部的登記表均被初始化,因此它不能確定其發(fā)生崩潰前的狀況。為了能恢復(fù)崩潰前的狀態(tài),服務(wù)器可以以廣播方式向全部其他的主機(jī)發(fā)送一個(gè)TPDU,說明自己剛才發(fā)生崩潰并要求其客戶主機(jī)通知全部接通的連接所處的狀態(tài)。每個(gè)客戶主機(jī)可能處于兩種狀態(tài)之一:有一個(gè)未被確認(rèn)的TPDU-S1狀態(tài),或沒有未被確認(rèn)的TPDU-SO狀態(tài)。依據(jù)這種狀態(tài)信息,客戶主機(jī)必需打算是否要重發(fā)最近的TPDU。乍一看好像很明顯:客戶端在得知遠(yuǎn)端服務(wù)器崩潰而自己有一個(gè)未被確認(rèn)的TPDU時(shí)(即處于狀態(tài)S1)才應(yīng)重發(fā)。然而,再認(rèn)真考慮一下便會(huì)覺察這種簡潔的方法存在的困難。例如,考慮下面這種狀況,遠(yuǎn)端服務(wù)器的傳輸實(shí)體只發(fā)送一個(gè)確認(rèn),當(dāng)確認(rèn)發(fā)生后,又對(duì)應(yīng)用進(jìn)程執(zhí)行一個(gè)寫操作。向輸出流寫一個(gè)TPDU和發(fā)送一個(gè)確認(rèn)是兩個(gè)不同而又不行分的大事,二者不能同時(shí)進(jìn)行。假如在確認(rèn)發(fā)出后而在寫操作執(zhí)行前崩潰發(fā)生了,此時(shí)客戶端將收到這個(gè)確認(rèn)。當(dāng)崩潰恢復(fù)聲明到達(dá)時(shí)它處于狀態(tài)SO??蛻舳藢⒁虼瞬辉僦匕l(fā),由于它錯(cuò)以為那個(gè)TPDU已經(jīng)到達(dá)服務(wù)器端。客戶端的這種打算會(huì)導(dǎo)致喪失一個(gè)TPDU。在這點(diǎn)上讀者可能會(huì)認(rèn)為:這個(gè)問題很簡潔解決。唯一需要做的是重新編寫傳輸實(shí)體的(合同)程序,讓其先進(jìn)行寫操作,然后再發(fā)送確認(rèn)。再試試看,設(shè)想已經(jīng)完成了寫操作但在確認(rèn)發(fā)出前系統(tǒng)發(fā)生了崩潰。此時(shí)客戶端將處于狀態(tài)S1并因此重傳數(shù)據(jù),從而會(huì)導(dǎo)致在服務(wù)器應(yīng)用進(jìn)程的輸出流上消失一個(gè)未經(jīng)檢測的重復(fù)的TPDLL無論怎樣對(duì)發(fā)送方和接收方的合同進(jìn)行編程,總是存在合同不能正確地從故障中恢復(fù)的狀況。服務(wù)器端可以按下述兩種狀況之一進(jìn)行編程:先發(fā)確認(rèn)或先進(jìn)行寫操作??蛻舳丝梢砸罁?jù)四種方式之一進(jìn)行編程:總是重發(fā)最終一個(gè)TPDU;從不重發(fā)最終的TPDU;只有在狀態(tài)SO時(shí)重發(fā),和只有在狀態(tài)S1時(shí)重發(fā)。于是消失了8種組合,但我們會(huì)看到,對(duì)于每種組合都存在一些大事的集合使合同失敗。服務(wù)器端有三種可能的大事:發(fā)送確認(rèn)(A);將數(shù)據(jù)寫入到輸出進(jìn)程(W),和崩潰(C)。這三種大事可能會(huì)依據(jù)六種不同的排列挨次消失、即:AC(W),AWC,C(AW),C(WA),WAC和WC(A)O其中括號(hào)用來說明A或W不能在C后消失(即一旦發(fā)生了崩潰,全部進(jìn)程■網(wǎng)絡(luò)服務(wù)訪問點(diǎn)(NSAP,NetworkServiceAccessPoint)運(yùn)輸服務(wù)訪問點(diǎn)(TSAP,TransportServiceAccessPoint)運(yùn)輸實(shí)體間的運(yùn)輸連接(TC,TransportConnection)運(yùn)輸實(shí)體間的運(yùn)輸層合同(TP,TransportProtocol)運(yùn)輸服務(wù)供應(yīng)者(TS-Provider)運(yùn)輸服務(wù)用戶(TS-User)會(huì)話合同數(shù)據(jù)單元(SPDU,SessionProtocolDataUnit)運(yùn)輸服務(wù)數(shù)據(jù)單元(TSDUJransportServiceDataUnit)運(yùn)輸合同數(shù)據(jù)單元(TPDU,TransportProtocolDataUnit)網(wǎng)絡(luò)服務(wù)數(shù)據(jù)單元(TSDU,TransportServiceDataUnit)運(yùn)輸層的基本功能(可以和貨物運(yùn)輸?shù)臓顩r作類比)運(yùn)輸層依據(jù)會(huì)話層的服務(wù)質(zhì)量(QoS,QualityofService)要求,選擇適當(dāng)?shù)木W(wǎng)絡(luò)層服務(wù)和運(yùn)輸層合同,以供應(yīng)牢靠的、價(jià)格合理的、與網(wǎng)絡(luò)層無關(guān)的數(shù)據(jù)傳送。QoS相當(dāng)于在貨物運(yùn)輸?shù)睦又兴紤]的時(shí)間、牢靠性、費(fèi)用等。選擇網(wǎng)絡(luò)服務(wù)相當(dāng)于在貨物運(yùn)輸?shù)睦又羞x擇運(yùn)輸方式,比方:空運(yùn)、鐵路等。運(yùn)輸層合同相當(dāng)于郵寄信件時(shí)是使用平信,還是掛號(hào)信,等等。運(yùn)輸層處于OSI模型的上3層與下3層之間,供應(yīng)進(jìn)程間端到端的、透亮的、牢靠的數(shù)據(jù)傳送。網(wǎng)絡(luò)層是供應(yīng)系統(tǒng)間的數(shù)據(jù)傳送,而運(yùn)輸層是供應(yīng)進(jìn)程間的數(shù)據(jù)傳送。OSI模型中上3層的功能為:信息傳送,了解數(shù)據(jù)含義,進(jìn)程間通信;下3層的功能為:數(shù)據(jù)傳送,不關(guān)懷數(shù)據(jù)含義,系統(tǒng)間通信。運(yùn)輸層的功能為:數(shù)據(jù)傳送,不關(guān)懷數(shù)據(jù)含義,進(jìn)程間通信;可視為低層的一局部。彌補(bǔ)高層(上3層)要求與網(wǎng)絡(luò)層(基于下3層)數(shù)據(jù)傳送服務(wù)質(zhì)量間的差異(過失率、過失恢復(fù)力量、吞吐率、延時(shí)、費(fèi)用等),對(duì)高層屏蔽網(wǎng)絡(luò)層的服務(wù)的差異,供應(yīng)穩(wěn)定均告停止)圖5.12顯示了客戶端和服務(wù)器端的全部8種組合方案以及對(duì)于每種組合的合法大事排列挨次。留意,對(duì)每種方案都存在引起合同失敗的一系列大事。例如,假如客戶端總是重發(fā)數(shù)據(jù),盡管AC(w)和c(AW)大事可以正確運(yùn)行,但AWC大事將會(huì)產(chǎn)生一個(gè)未經(jīng)檢測的重復(fù)TPDU。進(jìn)一步完善合同也于事無補(bǔ)。即使客戶端和服務(wù)器端在服務(wù)器預(yù)備進(jìn)行寫操作前已經(jīng)交換了幾個(gè)TPDU,以便客戶端能準(zhǔn)確知道將要發(fā)生什么,但客戶端還是無法確定崩潰是在寫操作前還是寫操作之后發(fā)生。因此我們得出如下結(jié)論:基于對(duì)非同時(shí)大事所制訂的基本規(guī)章,無法使主機(jī)崩潰和恢復(fù)做到對(duì)于高層透亮。使用更一般的術(shù)語,這一結(jié)果可以重新表達(dá)為:從第N層崩潰中恢復(fù)只能由第N+1層來完成,并且只有在第N+1層保存有足夠的狀態(tài)信息的狀況下才能完成。正如上面提到的,假如連接的兩端均保持了當(dāng)前的狀態(tài)信息、,傳輸層可以從網(wǎng)絡(luò)層的錯(cuò)誤中進(jìn)行恢復(fù)。這一問題使我們不得不弄清晰所謂的端到端確認(rèn)的真正含義。原那么上,傳輸合同是端到端的,而不像較低層次那樣是鏈接的?,F(xiàn)在考慮用戶為了同遠(yuǎn)端數(shù)據(jù)庫進(jìn)行事務(wù)處理而輸入懇求信息的狀況。假設(shè)遠(yuǎn)程傳輸實(shí)體的編程是先將TPDU傳送到其上一層,然后進(jìn)行確認(rèn)。即使在該種狀況下,在用戶的機(jī)器上收到一個(gè)返回確實(shí)認(rèn)信息并非意味著遠(yuǎn)端主機(jī)運(yùn)行了足夠的時(shí)間,并真正對(duì)數(shù)據(jù)庫進(jìn)行了修改。一個(gè)真正的端到端確實(shí)認(rèn)意味著工作已經(jīng)實(shí)際完成,未確認(rèn)那么表示尚未完成,但這種真正的端到端確實(shí)認(rèn)可能無法實(shí)現(xiàn)。有關(guān)這方面的狀況,(Salter等,1984)已經(jīng)進(jìn)行了更為具體的爭論。[章節(jié)小結(jié)]本章主要從原理上表達(dá)了運(yùn)輸層的作用和掌握機(jī)制。運(yùn)輸層在0SI7層合同中處在一個(gè)承上啟下的作用,負(fù)責(zé)對(duì)上屏蔽低層網(wǎng)絡(luò)的差異,因此運(yùn)輸層要保證端到端的正確傳輸,它之上的上層合同不再關(guān)懷數(shù)據(jù)是如何傳輸,如何保證不出錯(cuò)。運(yùn)輸層為保證端到端的正確傳輸,實(shí)行與數(shù)據(jù)鏈路層相像的策略,但運(yùn)輸層與數(shù)據(jù)鏈路層不同的是,運(yùn)輸層之下的網(wǎng)絡(luò)層其性能在不同的應(yīng)用場合是不同,因此分組在網(wǎng)絡(luò)層上的表達(dá)出的傳輸特性是不同的,如時(shí)延、喪失率等,因此運(yùn)輸層的掌握機(jī)制就簡單了,如重傳時(shí)間的測量、連接建立的三次握手等。所以運(yùn)輸層依據(jù)網(wǎng)絡(luò)層的服務(wù)質(zhì)量分為5類,同時(shí)向上供應(yīng)的復(fù)用解復(fù)用等特性,是依據(jù)上層的服務(wù)質(zhì)量要求和網(wǎng)絡(luò)層能供應(yīng)的服務(wù)由運(yùn)輸層來禰補(bǔ)二者之間在時(shí)間、經(jīng)濟(jì)性、流量等方面的差異。[課后習(xí)題].簡述運(yùn)輸層在OSI模型中所處的地位。.簡述運(yùn)輸層的基本功能。.簡述網(wǎng)絡(luò)服務(wù)分類。劃分的依據(jù)是什么?.OSI模型規(guī)定了哪幾種運(yùn)輸合同類?各供應(yīng)怎樣的功能?.簡述運(yùn)輸服務(wù)的特性。.運(yùn)輸層的連接和數(shù)據(jù)鏈路層的連接有什么區(qū)分?課后習(xí)題答案:.解答:在OSI模型中,運(yùn)輸層位于網(wǎng)絡(luò)層和會(huì)話層之間,采用網(wǎng)絡(luò)層的服務(wù)和運(yùn)輸實(shí)體的功能,向會(huì)話層供應(yīng)服務(wù)。從通信和信息處理的角度看,運(yùn)輸層屬于面對(duì)通信局部的最高層。但從網(wǎng)絡(luò)功能或用戶功能來劃分,那么運(yùn)輸層又屬于用戶功能中的最低層。運(yùn)輸層是整個(gè)網(wǎng)絡(luò)體系結(jié)構(gòu)中關(guān)鍵的一層。在整個(gè)層次結(jié)構(gòu)中起到承上啟下的作用,在通信子網(wǎng)中沒有運(yùn)輸層。運(yùn)輸層只存在于通信子網(wǎng)以外的端主機(jī)中。.解答:運(yùn)輸層依據(jù)會(huì)話層的服務(wù)質(zhì)量(QoS,QualityofService)要求,選擇適當(dāng)?shù)木W(wǎng)絡(luò)層服務(wù)和運(yùn)輸層合同,以供應(yīng)牢靠的、價(jià)格合理的、與網(wǎng)絡(luò)層無關(guān)的數(shù)據(jù)傳送。運(yùn)輸層采納多路復(fù)用/解復(fù)用,分流/合流等方式,彌補(bǔ)高層(上3層)要求與網(wǎng)絡(luò)層(基于下3層)數(shù)據(jù)傳送服務(wù)質(zhì)量間的差異(過失率、過失恢復(fù)力量、吞吐率、延時(shí)、費(fèi)用等),對(duì)高層供應(yīng)穩(wěn)定和全都的界面。運(yùn)輸層還供應(yīng)進(jìn)程間端到端的、透亮的、牢靠的數(shù)據(jù)傳送。.解答:依據(jù)網(wǎng)絡(luò)層供應(yīng)的服務(wù)質(zhì)量(由殘留過失率和可報(bào)告過失率兩個(gè)參數(shù)來評(píng)價(jià))的性質(zhì),網(wǎng)絡(luò)服務(wù)被劃分為三種類型。A類網(wǎng)絡(luò)服務(wù)網(wǎng)絡(luò)連接具有可接受的殘留過失率和可接受的可報(bào)告過失率。網(wǎng)絡(luò)服務(wù)是一個(gè)完善的、抱負(fù)的、牢靠的服務(wù)。B類網(wǎng)絡(luò)服務(wù)網(wǎng)絡(luò)連接具有可接受的殘留過失率和不行接受的可報(bào)告過失率。網(wǎng)絡(luò)服務(wù)是完善的分組傳遞交換。但有網(wǎng)絡(luò)連接釋放或網(wǎng)絡(luò)連接重建問題。C類網(wǎng)絡(luò)服務(wù)網(wǎng)絡(luò)連接具有不行接受的殘留過失率和不行接受的可報(bào)告過失率。這類網(wǎng)絡(luò)服務(wù)質(zhì)量最差。.解答:針對(duì)網(wǎng)絡(luò)服務(wù)質(zhì)量的差異,運(yùn)輸層定義了5個(gè)運(yùn)輸合同類:0類合同0類合同是面對(duì)A類網(wǎng)絡(luò)服務(wù)的。其功能只是建立一個(gè)簡潔的端到端的運(yùn)輸連接和在數(shù)據(jù)傳輸階段具有將長數(shù)據(jù)報(bào)文分段傳送的功能。0類合同是最簡潔的合同。1類合同1類合同是面對(duì)B類網(wǎng)絡(luò)服務(wù)的。其功能是在0類合同的基礎(chǔ)上增加了基本過失恢復(fù)功能。2類合同2類合同也是面對(duì)A類網(wǎng)絡(luò)服務(wù)的。但2類合同具有復(fù)用功能,能進(jìn)行對(duì)運(yùn)輸連接的復(fù)用,合同具有相應(yīng)的流量掌握功能。2類合同中沒有網(wǎng)絡(luò)連接故障恢復(fù)功能。3類合同3類合同是面對(duì)B類網(wǎng)絡(luò)服務(wù)的。3類合同的功能既有過失恢復(fù)功能,又有復(fù)用功能。4類合同4類合同是面對(duì)C類網(wǎng)絡(luò)服務(wù)的。4類合同具有過失檢測、過失恢復(fù)、復(fù)用等功能。它可以在網(wǎng)絡(luò)服務(wù)質(zhì)量差時(shí)保證高牢靠的數(shù)據(jù)傳輸。4類合同是最簡單的合同。.解答:運(yùn)輸服務(wù)特性:1)供應(yīng)運(yùn)輸QoS選擇:吞吐量、延時(shí)、殘留過失率等。在滿足用戶要求的前提下,優(yōu)化資源使用,以到達(dá)最優(yōu)的性能價(jià)格比。2)運(yùn)輸QoS與網(wǎng)絡(luò)QoS獨(dú)立:對(duì)運(yùn)輸用戶供應(yīng)相對(duì)穩(wěn)定的服務(wù)界面。運(yùn)輸層可彌補(bǔ)運(yùn)輸層用戶QoS要求與網(wǎng)絡(luò)層供應(yīng)的QoS間的差異,使運(yùn)輸服務(wù)用戶可不關(guān)懷底層的通信網(wǎng)絡(luò)。3)供應(yīng)端到端數(shù)據(jù)傳送。4)供應(yīng)透亮的數(shù)據(jù)傳送:對(duì)運(yùn)輸用戶的數(shù)據(jù)內(nèi)容、格式和編碼沒有限制。5)良好的尋址系統(tǒng):運(yùn)輸?shù)刂穼?duì)應(yīng)唯一的TSAP,并能映射到相應(yīng)的網(wǎng)絡(luò)層地址機(jī)構(gòu)。.解答:運(yùn)輸層的連接和數(shù)據(jù)鏈路層的連接存在著顯著的差異。這些差異主要是由于兩個(gè)合同所運(yùn)行的環(huán)境不同所造成的。在數(shù)據(jù)鏈路層,兩個(gè)網(wǎng)絡(luò)設(shè)施通過物理通道直接通信;而在傳輸層,這個(gè)物理通道由整個(gè)子網(wǎng)所取代。這些差異主要表現(xiàn)在:1)在數(shù)據(jù)鏈路層,不必指明與誰建立連接一一每條輸出線對(duì)應(yīng)唯一的一個(gè)目的端設(shè)施。在傳輸層里,需要顯式地給出建立連接的目的端地址。2)數(shù)據(jù)鏈路層建立連接的過程很簡潔,而傳輸層建立連接的過程要簡單得多,通常要用到屢次握手的方法。3)對(duì)數(shù)據(jù)鏈路層而言,物理通道沒有存儲(chǔ)力量;而運(yùn)輸層連接那么必需處理由子網(wǎng)的存儲(chǔ)力量而帶來的問題。4)在數(shù)據(jù)鏈路層中,通常為每個(gè)連接安排固定數(shù)目的緩沖區(qū);而運(yùn)輸層的連接是大量的、動(dòng)態(tài)變化的,因此其緩沖區(qū)管理也是動(dòng)態(tài)的。和全都的界面。其次節(jié)運(yùn)輸合同類運(yùn)輸層合同是依據(jù)網(wǎng)絡(luò)層供應(yīng)的服務(wù)質(zhì)量來分類的。經(jīng)過多年的爭論與爭論,ISO于1984年通過了OSI運(yùn)輸合同的標(biāo)準(zhǔn)。這就是ISO8072和ISO8073。CCITT參加了這一標(biāo)準(zhǔn)的制訂,并通過了相應(yīng)的X.214和X.224建議書。歐洲計(jì)算機(jī)廠家協(xié)會(huì)ECMA,美國我國標(biāo)準(zhǔn)學(xué)會(huì)ANSI以及美國我國標(biāo)準(zhǔn)局NBS等也都樂觀參加了運(yùn)輸層合同標(biāo)準(zhǔn)的制訂。NBS已于1988年底改名為我國標(biāo)準(zhǔn)與技術(shù)爭論院NISTo一、網(wǎng)絡(luò)服務(wù)網(wǎng)絡(luò)服務(wù)質(zhì)量參數(shù),網(wǎng)絡(luò)層所供應(yīng)的服務(wù)質(zhì)量是由以下兩個(gè)參數(shù)來評(píng)價(jià)的:殘留過失率?可報(bào)告過失率?殘留過失率(ResidualErrorRate):反映網(wǎng)絡(luò)連接質(zhì)量,網(wǎng)絡(luò)實(shí)體不行檢測;或漏檢過失率。殘留過失是網(wǎng)絡(luò)層未改正的差錯(cuò)且不通知運(yùn)輸層。(1)全部傳送的網(wǎng)絡(luò)服務(wù)數(shù)據(jù)單元(NSDU)的分類(4類):Nk勝利傳送(SuccessfullyTransferred)的NSDU:Ns錯(cuò)誤(Incorrect)的NSDU:Ne喪失的(Lost)NSDU:Nl重復(fù)(Extra)的NSDU:Nx(2)定義:在測量時(shí)間內(nèi),在網(wǎng)絡(luò)連接上傳送的全部錯(cuò)誤的、喪失的和重復(fù)的NSDU與所傳送的全部NSDU之比。(3)公式:可報(bào)告過失率:指在可檢測的過失中不行恢復(fù)的過失所占的比例O(1)殘留過失(ResidualError):網(wǎng)絡(luò)實(shí)體不行檢測的過失;反映過失檢測力量;(2)可報(bào)告過失(SignalledError):網(wǎng)絡(luò)實(shí)體可檢測,但不行恢復(fù)的過失;反映過失恢復(fù)力量。①檢測到有不行恢復(fù)過失的NSDU時(shí),網(wǎng)絡(luò)實(shí)體并不遞交運(yùn)輸實(shí)體,而是報(bào)告運(yùn)輸實(shí)體對(duì)它進(jìn)行恢復(fù);通知運(yùn)輸層的網(wǎng)絡(luò)連接釋放(release)或網(wǎng)絡(luò)連接恢復(fù)(reset)o②可報(bào)告過失率低,表示網(wǎng)絡(luò)實(shí)體的過失恢復(fù)力量強(qiáng)。⑴A類網(wǎng)絡(luò)服務(wù):可接受的殘留過失率、可接受的可報(bào)告過失率;A型網(wǎng)絡(luò)服務(wù)是一個(gè)完善的、抱負(fù)的、牢靠的網(wǎng)絡(luò)服務(wù)。分組在網(wǎng)絡(luò)中傳送時(shí)不會(huì)喪失也不會(huì)失序(失序指分組到達(dá)的挨次與發(fā)送的挨次不全都),這樣,運(yùn)輸層就不需要故障恢復(fù)的服務(wù)和重新排序的服務(wù)等等,因而運(yùn)輸層就特別簡潔。(2)B類網(wǎng)絡(luò)服務(wù):可接受的殘留過失率、不行接受的可報(bào)告過失率;需要運(yùn)輸實(shí)體進(jìn)行過失恢復(fù)。⑶c類網(wǎng)絡(luò)服務(wù):不行接受的殘留過失率、不行接受的可報(bào)告過失率;C型網(wǎng)絡(luò)服務(wù)的質(zhì)量最差。對(duì)于這類網(wǎng)絡(luò),運(yùn)輸合同應(yīng)能檢測出網(wǎng)絡(luò)的過失,同時(shí)要有過失恢復(fù)力量。對(duì)失序、重復(fù)以及錯(cuò)誤投遞的數(shù)據(jù)分組,也應(yīng)能檢測出并進(jìn)行改正。某些局域網(wǎng)和一些具有移動(dòng)結(jié)點(diǎn)的城域網(wǎng)以及具有衰落信道的分組無線電網(wǎng)都局于c型網(wǎng)絡(luò)。二、運(yùn)輸合同類為了能夠在各種不同網(wǎng)絡(luò)上進(jìn)行不同類型的數(shù)據(jù)的傳送,ISO定義了5類(class)運(yùn)輸合同,即第0類至第4類的運(yùn)輸合同。這5類運(yùn)輸合同都是面對(duì)連接的。也就是說,用戶要進(jìn)行通信,必需先建立運(yùn)輸連接。當(dāng)然,這必定要用到網(wǎng)絡(luò)層供應(yīng)的服務(wù),或者說,要建立網(wǎng)絡(luò)連接。同理,在建立網(wǎng)絡(luò)連接時(shí),又需要建立各有關(guān)鏈路的連接。當(dāng)數(shù)據(jù)傳送結(jié)束后,那么必需釋放運(yùn)輸連接。針對(duì)網(wǎng)絡(luò)服務(wù)質(zhì)量的差異,運(yùn)輸層定義了5個(gè)運(yùn)輸合同類,供應(yīng)不同的功能。網(wǎng)絡(luò)層服務(wù)質(zhì)量降低時(shí),對(duì)運(yùn)輸合同的要求就提高,以向運(yùn)輸層用戶供應(yīng)一種比擬穩(wěn)定的服務(wù)界面。表5.1運(yùn)輸合同類主要功能使用的網(wǎng)絡(luò)服務(wù)TPO簡潔類(SimpleClass)運(yùn)輸連接管理;ATP1基本過失恢復(fù)類(BasicErrorRecoveryClass)TP0+過失恢復(fù);BTP2復(fù)用類(MultiplexingClass)TP0+復(fù)用/解復(fù)用;流量掌握;ATP3過失恢復(fù)與復(fù)用類(Er

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論