第一章第五節 計算機網絡的體系結構
因特網是一個極爲複雜的系統,因特網中有包括應用程序、協議、端系統、交換機和鏈路在內的不少部分共同組成,要描述它可不容易。所以須要一種較好的體系結構來描述,實現它。html
Outline
Notes
## 分層結構
- 網絡的體系結構(architecture):計算機網絡的各層及其協議的集合。
- 層的服務模型(service model):某層向上一層提供的服務(service)
- 每層遵循某些網絡協議、依賴底層提供的服務,並經過層內動做完成一種特定的服務/功能;
- 網絡體系結構是指從功能上描述計算機網絡結構,即分層結構。
- 協議分層具備概念化和結構化的優勢
- 有利於識別像計算機網絡這種複雜系統的部件及其關係
- 模塊化的分層有利於系統的更新和維護
- 有利於各層不一樣設備之間的通訊協議標準化
- 缺點
- 但一個潛在的缺點是某層可能重複其較低層的功能,例如許多協議棧都基於鏈路和端到端這兩種狀況提供了差錯恢復
- 第二種潛在的缺點是某層的功能可能須要僅在其餘層纔出現的信息(如時間戳值),這個就違反了分層次的目標。
【分層結構的例子】node
- 實體(entity):表示任何可發送或接收信息的硬件或軟件進程。
- 協議:是控制兩個對等實體進行通訊的規則的集合,即協議是「水平的」。
- 同時任一層實體須要使用下層服務,遵循本層協議,實現本層功能,向上層提供服務,所以服務是「垂直的」
- 下層協議的實現對上層的服務用戶是透明的,下層協議的實現方式的改變對上層沒影響,由於接口是不變的。
- 同系統的相鄰層實體間經過接口進行交互,經過服務訪問點SAP(Service Access Point),交換原語,指定請求的特定服務。
各層的全部協議被稱爲
協議棧(protocol stack)。協議棧由5個層次構成:物理層,鏈路層,網絡層,傳輸層,應用層。
## OSI參考模型
- OSI(Open System Interconnection 開放系統互連)是由國際標準化組織(International Organization for Standardization)於1984年提出的分層網絡體系結構模型。
- 目的:支持異構網絡系統的互連互通,是異構網絡系統互連的國際標準。
- OSI參考模型將網絡通訊在功能上劃分爲7層:物理層,鏈路層,網絡層,傳輸層,會話層,表示層,應用層
OSI |
分層名稱 |
功能 |
每層功能概述 |
1 |
物理層 |
以"0","1"表明電壓的高低,燈光的閃爍。瀏覽器 界定鏈接器和網線的規格安全 |
|
2 |
數據鏈路層 |
互連設備之間傳送和識別數據幀 |
|
3 |
網絡層 |
地址管理和路由選擇 |
|
4 |
運輸層 |
管理兩個節點之間的數據傳輸。網絡 負責可靠傳輸(確保數據被可靠地傳送到目標地址)模塊化 |
|
5 |
會話層 |
通訊管理。負責創建和斷開通訊鏈接(數據流動的邏輯通路)編碼 提供了數據交換定界和同步功能加密 管理傳輸層一下的分層spa |
|
6 |
表示層 |
設備固有數據格式和網絡標準數據格式的轉換計算機網絡 使通訊的應用程序可以解釋交換數據的含義 |
|
7 |
應用層 |
針對特定應用的協議 |
|
【OSI模型的通訊過程】
- 中間系統表示路由器、交換機等設備
- 對等層次之間遵循相關層次的協議進行數據的交換(注意:對等層之間知識邏輯上到達,數據實際上仍是經過物理層的鏈路進行傳輸)。
- 相鄰層之間經過接口來交換數據。
- 咱們不難看出,上4層(應用層、表示層、會話層、傳輸層)直接對應到目的主機對等層次,下3層(網絡層、數據鏈路層、物理層)爲中間系統能夠實現的層次。
- 咱們把上4層稱爲端-端層(不須要中間系統實現)。注:雖然OSI參考模型的4-7層爲端到端層,但並不意味中間系統(如路由器)就絕對不實現這些層次的功能或者運行這些層次的協議,如絕大多數路由器支持以Web(應用層)登錄。
【OSI模型的數據封裝】
- 用戶數據在主機A交給應用層,應用層根據網絡應用及應用層協議不一樣,可能會加上一些控制信息(AH),即應用層頭。這樣就構成了一個協議數據單元(PDU)。應用層將應用層的協議數據單元(A-PDU)經過接口發送給表示層。
- 一樣,表示層在接受到A-PDU後,再將其加上頭表示層規定的一些頭部信息(PH)構成了表示層的協議數據單元(P-PDU)。表示層再將P-PDU交給會話層。
- 依次類推,在網絡層的協議數據單元交給數據鏈路層後,注意數據鏈路層會將其加頭加尾,封裝成幀,再交給物理層進行傳輸。
- 主機B的物理層在接收到的信息中,識別出數據鏈路層的幀,交給鏈路層處理。鏈路層在識別幀後去頭去尾,還原出網絡層的數據單元(N-PDU), 再交給網絡層。
- 網絡層能夠識別出網絡層的協議數據單元,去掉頭部信息,還原成傳輸層協議數據單元(S-PDU),再交給傳輸層。
- 依次類推,數據最後到達應用層後,會被去掉頭,還原成主機A用戶原始發送的數據,再傳遞給主機B的用戶。
【OSI模型的分組和協議棧】
層 |
信息分組名稱 |
協議棧 |
應用層 |
報文(message) |
- HTTP(Web文檔的請求和傳送)
- SMTP(電子郵件報文的傳輸)
- FTP(兩個系統之間的文件傳輸)
- DNS(友好的域名與網絡地址之間的轉換)
|
運輸層 |
報文段(segment) |
- TCP(面向鏈接的服務):確保傳送、流量控制、擁塞控制
- UDP(無鏈接服務):無可靠性、無流量控制、無擁塞控制
|
網絡層 |
數據報(datagram) |
- IP層(將因特網鏈接在一塊兒的粘合劑):
- IP協議:定義了各個字段以及端系統和路由器如何做用於數據報
- 路由選擇協議:決定路由選擇
|
鏈路層 |
幀(frame) |
- 以太網協議
- Wifi協議
- 電纜接入網的DOCSIS協議
|
【OSI模型中的數據封裝】
- 數據封裝其實就是給原始數據加上控制信息,構造協議數據單元(PDU)。
- 控制信息經常包括:
- 地址(Address)信息:標識發送端與接收端
- 差錯檢測編碼(Error-detecting code)信息:用於差錯檢測或糾正
- 協議控制(Protocol control)信息:實現協議功能的附加信息,如:優先級(priority)、服務質量(QoS)和安全控制等。
## OSI模型中各層次承擔的主要功能
【物理層】
在物理層中,定義了以下內容:
- 接口特性
- 機械特性:規定了接口的幾何形狀等
- 電器特性:規定了接口使用的電平大小等
- 功能特性:規定了接口引腳個數及各項功能等
- 規程特性:定義了接口在工做過程當中遵循的相應過程。
- 比特編碼:用比特對信息按照必定規則進行編碼,用於傳輸
- 數據率:即數據傳輸速率
- 比特同步:時鐘同步
- 傳輸模型
- 單工模式(Simplex):只能單向傳輸,如電視機只能單項接收來自電視臺的信號,不能給電視臺發送信號。
- 半雙工模式(half-duplex):只能交替雙向通訊,即主機A與主機B能夠相互發信息,可是不能同時向對方發信息。如對講機,說的時候不能發,發的時候不能說。
- 全雙工模式(full-duplex):能夠同時雙向通訊,如電話。
【數據鏈路層】
- 數據鏈路層主要承擔的功能:
- 負責結點-結點(node to node)數據傳輸
- 組楨(Framing)
- 物理尋址(Physical addressing):在楨頭添加發送端或接收端的物理地址標識數據幀的發送端或接收端
- 流量控制(Flow control):匹配發送端與接收端的發送速度與接收速度,避免數據淹沒接收端。
- 差錯控制(Error control):檢測並重傳損壞或丟失幀,並避免重複幀。
- 訪問(接入)控制(Access control):在任一給定時刻決定哪一個設備擁有鏈路(物理介質)的控制使用權。
【網絡層】
- 網絡層主要承擔的功能:
- 負責源主機到目的主機數據分組(packet)的交付(可能穿越多個網絡)。
- 邏輯尋址(Logical addressing):全局惟一邏輯地址,確保數據分組被送達目的主機,如IP地址(穿越多個網絡時,鏈路層的物理尋址並不能用)。
- 路由(Routing):路由器(或網關)互連網絡,並路由分組至最終目的主機,進行路徑選擇。
- 分組轉發
【傳輸層】
- 傳輸層的主要功能:
- 負責源-目的(端-端)(進程間)完整報文傳輸
- 報文分段與重組
- SAP尋址:確保將完整報文提交給正確進程,如端口號
- 鏈接控制:負責端-端的鏈接控制(創建鏈接、拆除鏈接),是一種邏輯鏈接
- 流量控制:控制端-端傳輸的速度
- 差錯控制:差錯檢測與糾正
【會話層】
- 會話層:插入控制信息"syn",不單獨存在
- 對話控制(dialog controlling):控制對話的創建、維護等
- 同步(synchronization):在數據流中插入「同步控制點「
【表示層】
- 表示層用於處理兩個系統之間交換信息的語法與語義問題
- 數據標識轉化:轉換爲主機獨立的編碼,如數據傳輸到Mac,則須要將其轉換爲Mac的編碼,傳到Win則須要將其轉換爲Win的編碼。
- 加密/解密
- 壓縮/解壓縮
- 實際上由應用層完成實現
【應用層】
應用層是網絡應用軟件以及他們的應用層協議停留的地方
應用層支持用戶經過用戶代理(如瀏覽器)或網絡接口使用網絡(服務):如FTH、SMTP、HTTP等
## TCP/IP參考模型
TCP(Transmission Control Protocol):傳輸控制協議
IP(Internet Protocol):因特爾協議
【五層參考模型的數據封裝】
【與OSI模型的關係】
上圖列出了TCP/IP與OSI分層之間的大概關係,不難看出,TCP/IP與OSI在分層模塊上稍有區別。OSI參考模型注重「通訊協議必要的功能是什麼」,而TCP/IP則更強調「在計算機上實現協議應該開發哪一種程序」。
分組數據包通過以太網的數據鏈路時的大體流程以下圖所示:
更多關於 TCP/IP 請移步 《圖解 TCP/IP》讀書筆記