標籤:
一、網路體繫結構的概念
電腦網路就是一組通過一定形式串連起來的電腦系統,它需要四個要素的支援,即通訊線路和通訊裝置、有獨立功能的電腦、網路軟體的支援、能實現資料通 信與資源共用。電腦網路具有兩大參考模型,分別為OSI模型和TCP/IP模型,其中OSI模型為理論模型,而TCP/IP模型則已成為互連網事實的工業標準,現在的通訊網路一般都是採用TCP/IP協議簇,而應用編程都是採用socket通訊端進行編程。
二、網路分層模型
分層能使複雜的問題簡單化,網路分層也是基於此原理。網路分層簡化了網路設計,提高網路互聯的標準化程度。網路分層是上一層都依賴於下一層,只有最底層才是物理的實際通訊,其他對等層是虛擬通訊。分層原理與方法如所示,網路分層模型涉及以下一些術語。
① 實體:每一層中的使用中的元素,可以是任何可發送或接收資訊的硬體或軟體進程,許多情況下,實體就是一個特定的軟體模組。 ② 對等實體:位於不同機器上同一層中的的實體。 ③ 服務提供者:n層(下層)是 n+1層(上層)的服務提供者。 ④ 服務使用者:n+1層(上層)是n層(下層)的服務使用者。 ⑤ 服務存取點(SAP):服務提供的地點,也即介面上相鄰兩層實體交換資訊之處。 ⑥ 服務和協議的關係:服務是垂直的,協議是水平的。n層的服務使用者只能看見n層的服務而無法看見n層的協議,在n層協議控制下兩個對等實體間的通訊使得n層能夠向n+1層提供服務,要實現n層協議,需要使用n-1層提供的服務。
網路分層模型圖 互連網兩大網路模型(OSI模型和TCP/IP模型)都是基於分層原理實現的。通過網路分層,可以獲得好處有:各層之間相互獨立,相鄰層間互動只通過介面, 使整個問題複雜度下降。結構上可分割開,各層都可以採用最合適的技術來實現。每一層功能簡單,易於實現和維護。某一層改動時,只要不改變介面服務的關係, 其他層則不受影響,靈活性好。分層有利於促進網路通訊協定的標準化。
三、互連網架構設計的具體目標 網路架構設計中的核心目標,那就是“effective(有效)”,但是卻沒有說明有效互聯具體要達成什麼樣的目標。下面列表中設定了網路架構設計的詳細目標: 1) 面臨故障時的通訊生存能力; 2) 支援多種類型的通訊服務;
3) 支援不同類型網路的接入;
4) 支援資源的分布式管理;
5) 要考慮成本效益因素;
6) 主機接入互連網的代價要低;
7) 支援網路資源的計費統計。
這些具體目標看起來是網路系統需求的一個完整列表。 可重要的是我們需要理解這些目標先後順序的重要性。 如果順序發生改變, 將會導致完全不同的網路架構。 例如, 對于軍用網路, 意味著在傳輸資料時可能遭到敵方破壞的複雜情況, 那麼通訊生存能力就會成為首要目標, 而計費管理能力則是排在最後的目標。 在戰爭期間, 我們更關心如何儘快地將收集到的資訊可靠地傳遞到目的地,而不考慮通訊費用。 所以最初大家並不關心資源的計費管理,而對於商用網路架構的設計, 資源的計費管理應該放在首要位置。同理, 成本效益因素也是我們的目標, 但是排在資源的分布式管理和支援不同類型網路接入之後。 一些流行的商用網路會專門針對特定的傳輸介質做最佳化, 比如基於長途電話線實現的儲存轉寄網路可以在很低的成本下通訊良好, 但對於其他類型網路的支援可能卻很差,因為商用網路架構設計會更多考慮成本效益問題。
四、面臨故障時的通訊生存能力
互連網
最重要的目標是具有較強的生存能力或者說是自我恢複的能力。 如果兩個實體通過互連網進行通訊的過程中出現故障使得通訊臨時中斷,它能夠重新設定網路恢複通訊服務, 然後實體間的通訊可以繼續, 而不用重建立立更高層的會話。 傳輸層協議並不總向用戶端報告網路臨時中斷故障, 它總是假定故障可以很快恢複, 反覆嘗試後確定網路無法恢複時才向用戶端報告。互連網架構選擇的方案是把狀態資訊收集起來儲存在 網路通訊的兩端 。這種方式稱為“fate-sharing(生死與共)”。 它的意思是通訊的一端消失了, 那麼另一端也同時將自己儲存的狀態資訊丟掉。傳輸層的狀態資訊儲存在主機中, 主機串連到整個網路並且使用整個網路上的服務。“fate-sharing” 模式比“複製” 模式有兩大優勢: 第一,能夠不受任何網路中間節點故障的影響; 第二,工程實現更容易。 “fate-sharing” 模式意味著兩點: 第一, 中間封包交換節點或網關都不儲存當前通訊會話的狀態資訊, 換句話說, 它們是無狀態的封包交換。 因此這種網路架構常常被稱為資料報網路。 第二, 在這種架構中主機的作用更重要, 因為它不像有些網路本身提供可靠的Data Transmission Service, 而它利用主機端的傳輸層演算法保證了資料被有序傳輸、 丟包重傳和確認等, 而主機上的應用程式不必關心資料轉送上的細節問題。
五、支援多種類型的通訊服務
互連網架構的另一個核心目標是可以支援多種類型的通訊服務。 不同類型的通訊服務在傳輸速度、 延遲、 可靠性等方面差別很大。傳輸服務中最傳統的類型是一種雙向可靠的Data Transmission Service。 這種服務又被稱為
“虛電路” 服務, 適用於遠程登陸和檔案傳輸這類應用, 這是在使用 TCP 的互連網架構中首要提供的服務。很早人們就認識到即使是傳統的“虛電路”服務也無法滿足多樣性的需求。 比如其中的遠程登陸和檔案傳輸, 前者要求服務延遲不能太大,但對頻寬並沒有過高要求; 而對於檔案傳輸,更關心的是資料的輸送量而不是傳輸延時。 此前, TCP 嘗試同時提供這兩種服務,結果並不理想。最初 TCP 的設計目標是讓它足夠通用,但是由於網路環境的多樣性,使得使用一個協議來承載不太可能。所以更好的做法是,建立一種服務,能夠處理每個通過網路的資料,而不必要求每個位元組都可靠地按序交付。 TCP 不適用的服務是即時通訊傳輸,電話會議和電視直播就用到了這一服務。 即時通訊傳輸服務的首要要求是, 在傳輸資料包時, 有更小和更平滑的延時, 而並不要求很高的可靠性。 也就是說在電話會議中傳輸過來的語音及時且連續就行, 不需要每個音節都很清晰準確。 大致過程是應用程式層將類比語音數字化, 並打包這些位元據, 然後按序通過網路發送。 這些資料包必須有序才能保證還原成正確的語音訊號。 如果一些資料包未按預期到達,那就不能及時的再現語音了。 在使用 TCP 的情況下做了一系列的研究對傳輸延時進行控制,最後驚訝地發現, 傳輸的可靠性才是導致延時的主要原因。 這是因為典型的可靠傳輸協議發現丟包時會發送一個重傳請求, 並會延遲後續資料包的傳輸, 直到丟包重傳成功了才會滑動發送視窗傳輸後續資料包。這種情況一旦發生會造成數倍的額外延時, 也可能會完全中斷。導致最終得到的語音資料是完整的, 但卻只能聽到斷斷續續無法識別的聲音。 這顯然是不合適的, 事實上, 對於丟包的處理可以非常簡單。 那就是當遇到丟包時使用一段空語音(沒聲音)替代,因為在大部分情況下這對聽者分辨語音內容沒有影響,然後繼續傳輸後續資料。即使產生影響了, 要麼可以使用進階錯誤修正, 要麼聽者讓對方重複一遍就行了。
互連網架構中對於多種服務的支援不應該由下層網路來提供, 否則會背離互連網架構設計的目標。 因而, 我們希望由主機和網關來提供演算法, 將各種服務從基本的資料報服務(IP資料報) 中抽象出來。
六、總結與展望
TCP/IP 協議已經在各個領域廣泛應用並且衍生出了很多相似的架構。資料報很好地達成了大多數重要的設計目標,但是當我們試圖完成後續一些目標的時候, 發現計費統計資源管理很難在基於資料報的環境下實現。 多數
資料報是從源端到目的端傳送的一系列資料包的一部分, 無法區分應用程式層次上獨立的單元。 然而, 這一系列資料包對網關是透明的, 因為網關獨立處理每個資料包。 因此, 必須對每個資料包獨立進行計費統計資源管理, 由於丟包重傳等對網關透明無法對應用實際傳輸的資料量進行準確統計。 在網路層利用資料報模型使得網路層喪失了重要的資訊源, 也就很難達成計費統計資源管理等這些目標。這說明在下一代網路架構中可能有比資料報更好的抽象封裝方式。 不論採用任何特定的服務類型, 它都可以標識從源端發送到目的端的一系列資料包, 可以用“流” 來描述這種抽象封裝方式。 這種方式需要記住通過網路的資料流的特徵屬性, 但這卻挑戰了網路中間裝置不記錄通訊狀態資訊的架構原則。 同時如前文所述, 網關的分布式管理控制與互連網協議越來越臃腫複雜的現狀, 讓我們開始考慮集中管理控制方式, 以及基於“流” 的抽象封裝方式,這從根本上挑戰了互連網架構。這麼理解的話, SDN 和 OpenFlow 似乎在互連網架構變革的路上, 資料面和控制面分離的方法也為基於“流” 的抽象封裝方式提供了技術支撐; 部分地顛覆分布式原則的集中管理控制(網路局部) 策略又為記錄基於“流” 的通訊狀態資訊帶來了方便, 因為雲端式計算的資料中心可以高效快速地儲存和處理流狀態資訊, 從而使得網路更加智能。
附:(1)TCP/IP模型 http://zh.wikipedia.org/wiki/TCP/IP或者百度一下
(2)資料報意義 參考:互連網架構的設計哲學v1.0(3)OSI模型 http://blog.csdn.net/yaopeng_2005/article/details/7064869
互連網體繫結構的理解