天天看點

《分布式系統:概念與設計》一3.3.6 擁塞控制

網絡的能力受到通信鍊路性能和交換結點性能的限制。當任何鍊路或結點的負載接近其負載能力時,試圖發送資料包的主機中就會建立隊列,傳輸資料的中間結點因為被其他資料傳輸所阻塞而建立隊列。如果負載繼續維持在這樣的高水準,那麼等待發送的隊列就會不斷增長,直到達到可用的緩沖區空間的上限為止。

一旦結點達到這樣的狀态,結點隻能将以後到達的資料包丢棄。前面已經提到過,在網絡層偶爾出現資料包丢失是允許的,這種損失可以通過從更高層重傳丢失的資料包來彌補。而當資料包丢失率和重傳率達到一個很高的水準,那麼會給網絡的吞吐量帶來災難性的後果。道理很簡單:如果資料包在中間結點被丢棄,那麼已經占用的網絡資源就被浪費掉了,而重傳還要再消耗同樣多的資源。經驗表明,當網絡的負載超過其能力的80%,系統的總吞吐量會因為資料包丢失而下降,除非控制高負載鍊路的使用。

為了避免資料包在網絡中傳遞時經過擁塞結點而被丢棄的情況,最好将資料包儲存在發生擁塞之前的結點中直到擁塞減少。這固然會增加資料包的延遲,但不會極大降低整個網絡的吞吐量。用于實作該目的的技術稱為擁塞控制。

通常,擁塞控制是通過通知發生擁塞的路由上的結點而實作的,是以它們的資料包傳輸率會有所減少。對中間結點來說,這意味着進入的資料包将會緩沖很長時間。而作為發出資料包的源主機,結果就是把要發送的資料包在主機中排隊,或者阻塞産生這些資料包的應用程式,直到網絡能妥善地處理資料包為止。

所有基于資料報的網絡層,包括ip和以太網,都依靠端-端的流量控制。也就是說,發送結點必須基于收到的接收方的資訊降低其發出資料包的速率。要為發送結點提供擁塞資訊,可以通過顯式地傳輸一個請求減少傳輸率的特殊消息(被稱為阻塞資料包),也可以通過實作一個專門的傳輸控制協定(tcp的名字也由此而來,3.4.6節将解釋tcp中的機制),或通過觀察丢棄資料包發生的情況(假設協定要确認每一個資料包)來實作。

在一些基于虛電路的網絡中,每個結點可以接收到擁塞資訊,擁塞資訊也可以作用于每個結點。盡管atm使用虛電路傳遞,但它仍要依靠服務品質管理(見第20章)來保證每個電路都能完成所要求的流量。102

不同的網絡、鍊路和實體層協定形成了不同的網絡技術。區域網路絡是基于以太網和atm技術建立起來的,而廣域網是基于各種數字和模拟電話網絡、衛星連結和廣域atm網絡建立的。單個的計算機和區域網路則是通過數據機、無線連接配接和dsl連接配接接入網際網路或企業内部網的。

為了建立一個內建的網絡(互連網絡),我們必須內建許多子網,而它們各自基于上述某種網絡技術。為了實作內建,需要實作以下幾方面:

1)統一的互連網絡尋址方案,使得資料包可以找到接入任一子網的任一主機。

2)定義互連網絡中的資料包格式并給出相應處理規則的協定。

3)互連元件,用于按照互連網絡位址将資料包路由到目的地,可用具有多種網絡技術的子網傳遞資料包。

對于網際網路而言,ip位址可實作上面第1個要求,第2個要求是ip協定,第3個要求由稱為網際網路路由器的元件實作。ip協定和ip尋址将在3.4節較長的描述。這裡我們将讨論網際網路路由器和其他用來連接配接各網絡的元件的功能。

圖3-10展示了一個英國大學的企業内部網的一小部分,更多細節将在後面的小節中加以解釋。這裡我們要注意的是,圖中包含通過路由器互連的多個子網的部分。該部分有5個子網,其中3個子網共享ip網絡138.37.95(使用了無等級的域間路由方案,見3.4.3節)。圖上的數字是ip位址,它們的結構将在3.4.1節中解釋。圖上的路由器是多個子網的成員,它們在每個子網中都有一個ip位址(位址就寫在連接配接的鍊路上)。

路由器(主機名:hammer和sickle)實際上是一個通用的計算機,也能完成其他任務,其中一個任務是作為防火牆使用。防火牆的作用和路由功能是緊密相關的,我們将在下面讨論這一點。138.37.95.232/29子網在ip層并沒有和網絡中的其他部分相連。隻有檔案伺服器custard可以通路它,該伺服器在與其相連的列印機上通過一個伺服器程序(監控和控制列印機的使用)提供列印服務。

《分布式系統:概念與設計》一3.3.6 擁塞控制

圖3-10中所有的鍊路都是以太網。大部分鍊路的帶寬是100mbps,但有一個鍊路的帶寬是1000mbps,因為它支援着大量學生使用的計算機與承載所有檔案的檔案伺服器custard間的巨大資料流量。

在圖示的這部分網絡中,有兩個以太網交換機和幾個以太網集線器。兩者對ip資料包來說都是透明的。以太網集線器隻是一種将以太網電纜的多個段連接配接在一起的手段,在網絡協定層,這些段形成一個以太網。主機收到的所有以太網資料包将轉播到所有的段。以太網交換機連接配接了幾個以太網,用于将進入的資料包路由到目的主機所在的以太網中。

路由器 我們已經提到,除了像以太網和無線網絡(這些網絡中的主機由一種傳輸媒體連接配接),其他所有網絡都需要路由。圖3-7顯示了一個由6條鍊路連接配接5個路由器組成的網絡。在一個互連網絡中,可由直接連接配接将路由器連結起來(見圖3-7),也可以通過子網将路由器互連,如圖3-10中的custard。在這兩種情況下,路由器都負責将從任一連接配接來的互連網絡資料包準确地發送到下一條連接配接。路由器也因為這個目的而維護路由表。

網橋 網橋連結不同種類的網絡。一些網橋連結幾個網絡,它們也被稱為網橋/路由器,因為它們也表現出了路由的功能。例如,更大的校園網包括一個光纖分布式資料接口(fibre distributed data interface,fddi)主幹(沒有在圖3-10中顯示),它就是由網橋/路由器連接配接到圖3-10中的以太網子網中的。

集線器 集線器是将主機、以太網和其他廣播型區域網路技術的擴充網段連接配接起來的一種友善的手段。它有多個插槽(通常有4~64個),每一個插槽都可以連接配接一台計算機。它們也用于克服單個網段帶來的距離上的限制,提供添加額外主機的途徑。

交換機 交換機的功能與路由器相似,但路由器隻用于區域網路(一般是以太網)。也就是說,它們将多個分離的以太網互連,将到達的資料包路由到适當的外出網絡中。它們在以太網的網絡協定層上完成這一任務。起初它們對互連網絡有多大範圍一無所知,通過觀察資料流量以及在缺少資訊時采取廣播請求的方式建立其路由表。

與集線器相比,交換機的好處是它分離了到達的流量,僅在相關的外出網絡上傳輸資料包,減少了所連接配接網絡的擁塞。

隧道 網橋和路由器通過網絡層協定和一個互連網絡協定的轉換,實作在各種底層網絡上傳輸互連網絡資料包,不過在一種情形下,底層網絡協定可以被隐藏起來不被其上的層看到,不需要使用互連網絡協定。當一對連接配接到同一類型的兩個網絡中的結點需要通過另一種類型的網絡進行通信時,它們之間通過構造協定“隧道”來達到這一目标。協定隧道其實就是在相異網絡環境中傳輸資料包的軟體層。

下面類比解釋了選擇“隧道”這一術語的原因,同時也提供了另一種方式來思考隧道的含義。穿山隧道使得車輛通過成為可能,如果沒有隧道這是不可能實作的。公路是連續的,隧道對于應用(車輛)來說是透明的。公路是傳輸機制,而隧道使得它能在相異的環境中工作。

 圖3-11 ipv6遷移使用的隧道105圖3-11顯示的是隧道的一種建議使用方法,它支援從網際網路遷移到ipv6協定。ipv6将會取代現在使用的ip協定版本ipv4,但它們不相容(ipv4和ipv6的描述見3.4節)。在向ipv6過渡的過程中,ipv4的“海洋”中會不斷出現ipv6“島嶼”。在圖3-11中,a和b就是這樣的島嶼。在島嶼的邊界處,ipv6資料包被封裝成ipv4的格式,并以該種方式在ipv4網絡中傳輸。

《分布式系統:概念與設計》一3.3.6 擁塞控制

看另一個例子,移動ip協定(其描述見3.4.5節)通過建立從本地基站到任一網絡位置的隧道,來将ip資料包傳輸到網際網路上的任何移動主機。中間的網絡結點不需要為處理移動ip協定而加以修改。ip多點傳播協定在處理方式上也與此相似,依靠一些支援ip多點傳播路由的路由器來決定路由,但通過使用标準ip位址的路由器來傳輸ip資料包,另一個例子是在串行鍊路上傳輸ip資料包的ppp協定。

繼續閱讀