這一部分講的其實也是基礎,只不過前一篇文章講的大部分是基礎概念,這一篇文章主要講解處理計算機網絡問題的基本方法:
1. 層次模型與網絡協議
計算機網絡是個非常複雜的系統。涉及:無差錯的信息傳送、多個用戶共享一條物理線路、按照地址信息,進行路由選擇、信息緩衝和流量控制、會話控制、滿足各種用戶、各種應用的訪問要求等。
一般人們採用“層次結構”的方法來描述計算機網絡,即:將系統所要實現的複雜功能分化爲若干個相對簡單的功能,每一項分功能以相對獨立的方式去實現。
根據功能進行抽象分層,每個層次所要實現的功能或服務均有明確的規定。即功能層次化(layer) 。
不同系統分成相同層次,對等層次有相同功能。
與網絡信息傳遞相似的郵政系統分層實例:
分層的好處與缺點
好處:
- 靈活性好。
- 結構上可分割開。
- 易於實現和維護。
- 能促進標準化工作。
缺點:
- 降低效率。
- 有些功能會在不同的層次中重複出現,因而產生了額外開銷。
層數太少,就會使每一層的協議太複雜;
層數太多,又會在描述和綜合各層功能的系統工程任務時遇到較多的困難。
協議
協議(Protocol)的定義:計算機網絡同等層次中,通信雙方進行信息交換時必須遵守的規則。
協議的三要素:
- 語法(syntax)
- 語義(semantics)
- 時序(timing)
協議必須把所有不利的條件事先都估計到,而不能假定一切都是正常的和非常理想的。
看一個計算機網絡協議是否正確,不能光看在正常情況下是否正確,還必須非常仔細地檢查這個協議能否應付各種異常情況。
協議的分層結構
ARPANET 的研製經驗表明,對於非常複雜的計算機網絡協議,其結構應該是層次式的。
“分層”可將龐大而複雜的問題,轉化爲若干較小的局部問題,而這些較小的局部問題就比較易於研究和處理。
2. 網絡體系結構
網絡體系結構(Network Architecture) 是網絡層次性結構模型及各層通信協議的集合。
體系結構就是這個計算機網絡及其部件所應完成的功能的精確定義。
體系結構是抽象的,而實現則是具體的,是真正在運行的計算機硬件和軟件。
1974 年,美國的 IBM 公司宣佈了系統網絡體系結構SNA (System Network Architecture)。這個著名的網絡標準就是按照分層的方法制定的。
不久後,其他一些公司也相繼推出自己公司的具有不同名稱的體系結構。由於網絡體系結構的不同,不同公司的設備很難互相連通。
爲了使不同體系結構的計算機網絡都能互連,國際標準化組織 ISO 於 1977 年成立了專門機構研究該問題。
他們提出了一個試圖使各種計算機在世界範圍內互連成網的標準框架,即著名的開放系統互連基本參考模型 OSI/RM (Open Systems Interconnection Reference Model),簡稱爲 OSI。
OSI 只獲得了一些理論研究的成果,在市場化方面卻失敗了。原因包括:
- OSI 的專家們在完成 OSI 標準時沒有商業驅動力;
- OSI 的協議實現起來過分複雜,且運行效率很低;
- OSI 標準的制定週期太長,因而使得按 OSI 標準生產的設備無法及時進入市場;
- OSI 的層次劃分也不太合理,有些功能在多個層次中重複出現。
- 法律上的 (de jure) 國際標準 OSI 並沒有得到市場的認可。
非國際標準 TCP/IP 卻獲得了最廣泛的應用。TCP/IP 常被稱爲事實上的 (de facto) 國際標準。
3. OSI/RM與TCP/IP
ISO/OSI參考模型
低三層與通信雙方的端系統有關,高三層嚮應用進程提供直接支持的功能。
傳輸層則是連接上、下兩組功能,提供完整的端到端的通信服務(傳輸層是計算機網絡體系結構中非常重要的一層)。
OSI理論概念
實體 (entity) 表示任何可發送或接收信息的硬件或軟件進程。
協議是控制兩個對等實體進行通信的規則的集合。
在協議的控制下,兩個對等實體間的通信使得本層能夠向上一層提供服務。
要實現本層協議,還需要使用下層所提供的服務。
OSI模型把對等層次之間傳送的數據單位稱爲該層的協議數據單元 PDU (Protocol Data Unit)。這個名詞現已被許多非 OSI 標準採用
協議和服務在概念上是不一樣的
協議的實現保證了能夠向上一層提供服務。
本層的服務用戶只能看見服務而無法看見下面的協議。即下面的協議對上面的服務用戶是透明的。
-
協議是“水平的”,即協議是控制對等實體之間通信的規則。
-
服務是“垂直的”,即服務是由下層向上層通過層間接口提供的。
上層使用服務原語獲得下層所提供的服務。
TCP/IP 的體系結構
應用層(TCP/IP)
包含OSI模型的應用層、表示層、會話層的所有功能:
- 數據表示
- 數據加密
- 會話控制
傳輸層(TCP/IP)
傳輸層定義了兩個端到端的協議,TCP和UDP 爲應用程序提供可供選擇的邏輯信道:
- TCP 提供可靠的字節流信道,是一個面向連接的協議,允許字節流無差錯地發往其它機器,還處理流量控制,有連接,類似打電話。
- UDP 提供不可靠的無連接的協議,類似於發信、發電報。
互連網絡層(TCP/IP)
網際協議(IP)支持多種網絡技術互連爲一個邏輯網絡,是TCP/IP的關鍵部分,使主機可以把分組發往任何網絡,並使分組獨立地傳向目標(可能經不同的網絡),分組到達的順序和發送的順序可能不同。
互連網絡層實現的功能:
- 確定路徑
- 分組轉發.
網絡接口層
有多種網絡協議,這些協議由硬件(網絡適配器)和軟件(如網絡設備驅動程序)共同實現。
如:以太網或光纖分佈式接口(FDDI)協議在這一層,則一層可以分爲多個子層。
TCP/IP 體系結構的另一種表示方法
實際上,現在的互聯網使用的 TCP/IP 體系結構有時已經發生了演變,即某些應用程序可以直接使用 IP 層,或甚至直接使用最下面的網絡接口層。
沙漏計時器形狀的 TCP/IP 協議族:
客戶進程和服務器進程使用 TCP/IP 協議棧進行通信:
功能較強的計算機可同時運行多個服務器進程 :
OSI/RM與TCP/IP比較
4. 具有五層協議的體系結構
OSI/RM 的七層協議體系結構的概念清楚,理論也較完整,但它既複雜又不實用。
TCP/IP 是四層體系結構:應用層、運輸層、網際層和網絡接口層,但最下面的網絡接口層並沒有具體內容。
因此往往採取折中的辦法,即綜合 OSI 和 TCP/IP 的優點,採用一種只有五層協議的原理體系結構 。
各層協議的主要功能
- 物理層: 如何在物理媒體上傳送比特流。
- 數據鏈路層: 相鄰節點間的線路上無差錯地傳送以幀(frame)爲單位的數據。
- 網絡層: 如何將分組(Packet)從源主機通過中間路由器傳送到目的主機。
- 運輸層: 提供不同主機上通信進程間的數據傳輸服務。
- 應用層: 如何通過應用進程間的交互來完成特定網絡應用。
5. 數據流(包)分析
網絡體系結構的分層禁止了不同主機間的對等層之間的直接物理通信。因此,主機A的每一層必須依靠主機A相鄰層提供的服務來與主機B的對應層通信(間接或虛擬通信)。
網絡體系結構把對等層次之間傳送的數據單位稱爲該層的協議數據單元 PDU (Protocol Data Unit)。這個名詞現已被許多非 OSI 標準採用。
任何兩個同樣的層次把數據(即數據單元加上控制信息)通過水平虛線直接傳遞給對方。這就是所謂的“對等層”(peer layers)之間的通信。
各層協議實際上就是在各個對等層之間傳遞數據時的各項規定。
下面將以主機 1 向主機 2 發送數據爲例具體講解: