天天看點

《路由設計的優化》一1.2 可靠性

本節書摘來自異步社群《路由設計的優化》一書中的第1章,第1.2節,作者【美】russ white , don slice , alvaro retana,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

路由設計的優化

可靠性和彈性是相輔相成的,彈性網絡可以為網絡應用提供更可靠、可穩定的運作平台,而檢視一個高可靠性網絡時,也必然能夠發現其具備非常好的彈性能力。需要注意的是,不要将彈性能力與備援性混為一談,雖然備援性能夠在某些場合下提供很好的彈性能力,但是僅僅簡單地在網絡中部署備援機制,是無法持續提高網絡彈性能力的。

首先來看一下什麼是可靠的網絡,簡單來說,可靠的網絡就是能夠為商業應用提供不間斷運作的平台。那麼商業應用的可靠運作又依賴于網絡的哪些方面呢?當然是網絡的可靠性和資料傳送的及時性,換言之,可靠的網絡必須能夠在合理的時間内将網絡所接受的每個資料包都正确無誤地傳送到目的地。這個定義包括以下4層意思。

并不是連接配接在網絡上的所有裝置發出的每個資料包都會被網絡所接受。

并不是每個被網絡所接受的資料包都需要進行傳送。

被網絡所接受的需要傳送的資料包必須被快速傳送。

被網絡所接受的需要傳送的資料包必須被穩定傳送。

雖然有關qos(quality of service,服務品質)的話題超出了本書寫作範圍,但是在進行網絡設計時保持更高的視角來審視資料包傳送問題仍然是十分必要的。

如果網絡的職責就是可靠地傳送由連接配接在網絡上的裝置所發送的大量資料包所組成的資料,那麼為何網絡還會拒絕某些流量呢?原因在于這些網絡裝置所發送的聚合流量常常超出了網絡能夠處理的流量極限,比方說,某個房子前的街道通常都隻有很少的車流,但如果某一天,其鄰居在同一時刻都走出家門,同時坐進汽車,又都同時通過這條街道外出時,這條街道可能将無法處理這麼大的聚合流量,此時,某些人就必須等待很長時間才能穿過這條街道,某些人則會放棄出行而回家呆着,是以可以說,該街道的寬度限制了從這所房子進入高速公路的流量。

從某種程度上來說,雖然所有的網絡都有可能限制進入某個網絡的流量,但通常限制發生點都位于網絡邊緣,例如,如果遠端站點與網絡邊緣路由器之間是一條中速串行鍊路,那麼該網絡邊緣就必然會被附加相應的流量接收政策,因為該遠端站點無法向公司總部站點發送比這條中速串行鍊路所能承載的更高流量。

雖然從技術上來說,wfq(weighted fair queuing,權重公平隊列)和llq(low latency queuing,低延遲時間隊列)等qos技術不屬于包接納控制政策,但是當網絡中出現了此類限制因素時,這些技術可以決定允許哪些流量進入網絡。

通常來說,在特定的時間和條件下,網絡工程師可以确定網絡将要承載多大的合法流量,進而據此來規劃網絡容量和制定相應的流量政策。通常需要在承載更多流量的網絡能力與網絡成本之間進行折中,而網絡能力與網絡成本之間的合理關系最終應取決于商業因素,而非網絡設計因素。雖然可以采取一定的技術手段來限制網絡中的非法流量,如阻塞某些應用協定或禁止通路某些伺服器,但在實際應用中幾乎沒有人會單純依靠這些技術手段來限制網絡流量。

一旦網絡接受了這些資料,就必須保證能夠可靠地傳送這些數。當然,對不同的應用來說,“可靠傳送”的含義也有所不同。例如,對于語音和視訊資料包來說,丢棄這些資料包比亂序傳送或延時傳送要好得多,而對于ftp(file transit protocol,檔案傳送協定)流來說,慢慢傳送這些資料流則比丢棄這些資料流要好得多。

這是因為對voip(voice over ip,ip語音)流來說,隻要被丢棄的資料包足夠少,使用者就不會有任何感覺。但是對ftp流來說,即便被丢棄的資料包很少,也會因傳送速率過低而導緻網絡不可用,這是因為ftp使用的是tcp(transmission control protocol,傳輸控制協定),而tcp控制資料傳送速率的準則就是丢包的數量。

因而,在設計網絡時必須仔細考慮的一個問題就是網絡中的應用類型以及這些應用的流量屬性,必須為這些不同的流量制定不同的邊緣接納控制政策,并考慮其他qos問題。雖然本書不會展開讨論這些問題,而是将重點聚焦到路由設計上,但是,由于網絡是一個系統,即便可以獨立探讨不同的網絡設計因素,但是在實際工作中必須全面考慮網絡設計過程中遇到的所有問題。

在讨論資料包傳送及時性的時候,首要考慮到的因素就是資料包穿越網絡的總時延,即資料包從本端裝置發出到被對端裝置接收到所花費的時間。但是,該時延并不是解決資料包傳送時間所要處理的唯一問題(即便有時是首要問題),在很多場合下,資料包穿越網絡所産生的時延(即傳播時延[propagation delay])并不是唯一最重要的問題,時延的一緻性(即抖動[jitter])也是非常重要的。圖1-1解釋了資料包穿越網絡時的時延與抖動之間的差異。

《路由設計的優化》一1.2 可靠性

當然,不同的網絡應用對傳播時延的敏感度不一樣:

由于使用者不可能知道流式音頻連接配接中某個資料包的發送時間,因而此時的傳播時延就不那麼重要,但流式音頻資料包的抖動卻會嚴重劣化音頻品質;

當使用者通過終端程式與遠端主機進行互動時,雖然一般不會在意資料流中資料包的抖動,但是如果傳播時延過大,可能會讓使用者感到網速太慢甚至不可用;

隻要網絡的傳播時延較小或适度,那麼voip就能工作得很好,但是必須保證抖動名額足夠小,以允許接收端能夠以恒定速率緩沖并回放所接收到的資料包。

要想确定網絡為滿足各種應用所允許的最大傳播時延和抖動名額,就必須仔細分析每種流量的類型并确定每種應用流量的時延和抖動預算,雖然qos問題不是本書的讨論重點,本書也不會深入讨論如何确定時延和抖動預算,但在實際工作中認真做好這項工作卻是非常必要的。

由于本書的重點是讨論三層網絡的設計(包括路由協定),因而在考慮qos問題時,需要解決的問題是:

網絡設計(特别是在路由協定部署方面)會對網絡的qos造成哪些影響?

更準确地說,應該考慮以下問題:

某些場合下,路由及路由系統的設計會影響網絡的qos;

拓撲結構以及網絡拓撲結構的設計會決定網絡中任意兩點之間的路徑長度,進而會影響傳播時延及抖動;

路由協定負責在網絡中傳送資料流量,在網絡各節點之間沿着正确的路徑傳送資料流量(流量工程[traffic engineering],即te)是進行網絡優化的重要因素;

網絡的可靠性會影響網絡為各種應用程式提供所需服務等級的能力。如果網絡不可靠,那麼就無法可靠地傳送資料包或者無法在容許的傳播時延及抖動預算下可靠地傳送資料包。

例如,分析對比資料流穿越網絡中每條路徑時的時延和抖動預算以及這些路徑的最大時延和抖動是非常有意義的(如圖1-2所示)。

《路由設計的優化》一1.2 可靠性

主機a通過路由器c和路由器d到達主機b的路徑是一條輕載的中速鍊路,而通過路由器e和路由器f的路徑則是一條重載的高速鍊路。雖然沿着路由器e和路由器f這條路徑傳送資料包的時延應該較低,但由于該鍊路是重載鍊路,因而抖動或資料包傳送時間的變化值可能更大。與此相對,雖然沿着路由器c和路由器d這條路徑傳送資料包的時延雖然較高,但由于該鍊路是輕載鍊路,因而抖動相對較小。

在了解了這些與網絡實體設計和拓撲結構設計相關的影響因素之後,就可以與網絡中運作的各種應用程式的需求進行比對,在滿足這些應用程式的網絡傳送要求的情況下,制定最有效的設計方案,包括各種qos技術(不在本書讨論範圍之内),以確定滿足各種cos(class of service,服務等級)。

cisco press發行了兩本非常有價值的qos參考讀物,分别是由tim szigeti與christina編著的end-to-end qos network design和由wendell odom與michael cavanaugh編著的cisco qos exam certification guide。

繼續閱讀