計算機網絡的體系結構篇
計算機網絡體系結構的形成(僅限了解)
計算機網絡是個非常復雜的系統,本篇文章僅從架構層面進行介紹,里面的諸多概念請不要深究,知道計算機網絡是分層的就足夠了。相互通信的兩個計算機系統必須高度協調工作才行,而這種“協調”是相當復雜的。“分層”可將龐大而復雜的問題,轉化為若干較小的局部問題,而這些較小的局部問題就比較易于研究和處理。
1974 年,美國的 IBM 公司宣布了系統網絡體系結構 SNA(System Network Architecture)。這個著名的網絡標準就是按照分層的方法制定的。不久后,其他一些公司也相繼推出自己公司的具有不同名稱的體系結構。由于網絡體系結構的不同,不同公司的設備很難互相連通。
為了使不同體系結構的計算機網絡都能互連,國際標準化組織 ISO(International Organization for Standardization) 于 1977 年成立了專門機構研究該問題,并提出了一個試圖使各種計算機在世界范圍內互連成網的標準框架,即著名的開放系統互連基本參考模型 OSI/RM (Open Systems Interconnection Reference Model),簡稱為 OSI。這也就意味著,只要遵循 OSI 標準,一個系統就可以和位于世界上任何地方的、也遵循這同一標準的其他任何系統進行通信。
OSI 只獲得了一些理論研究的成果,在市場化方面卻失敗了。原因包括:
- OSI 的專家們在完成 OSI 標準時沒有商業驅動力;
- OSI 的協議實現起來過分復雜,且運行效率很低;
- OSI 標準的制定周期太長,因而使得按 OSI 標準生產的設備無法及時進入市場;
- OSI 的層次劃分也不太合理,有些功能在多個層次中重復出現。
法律上的國際標準 OSI 并沒有得到市場的認可。非國際標準 TCP/IP 卻獲得了最廣泛的應用。TCP/IP 常被稱為事實上的國際標準。
協議與劃分層次
計算機網絡中的數據交換必須遵守事先約定好的規則,這些規則明確規定了所交換的數據的格式以及有關的同步問題。
網絡協議 (network protocol),簡稱為協議,是為進行網絡中的數據交換而建立的規則、標準或約定。網絡協議是計算機網絡不可或缺的組成部分。
網絡協議的三個組成要素:
1. 語法:數據與控制信息的結構或格式 。
2. 語義:需要發出何種控制信息,完成何種動作以及做出何種響應。
3. 同步:事件實現順序的詳細說明。
ARPANET 的研制經驗表明,對于非常復雜的計算機網絡協議,其結構應該是層次式的。
計算機網絡的體系結構(architecture)是計算機網絡的各層及其協議的集合。體系結構就是這個計算機網絡及其部件所應完成的功能的精確定義。實現 (implementation) 是遵循這種體系結構的前提下用何種硬件或軟件完成這些功能的問題。體系結構是抽象的,而實現則是具體的,是真正在運行的計算機軟硬件。
如上圖所示,(a)表示 OSI 的七層協議體系結構,其概念清楚,理論也較完整,但它既復雜又不實用。(b)是商業上獲得成功的 TCP/IP 四層體系結構:應用層、運輸層、網際層和網絡接口層。但最下面的網絡接口層并沒有具體內容。(c)是綜合 OSI 和 TCP/IP 的優點,采用一種只有五層協議的體系結構 。
OSI 的七層協議體系結構的理解
應用層:能夠產生流量并與用戶發生交互的應用程序,比如微信、QQ、微博、抖音等應用,像記事本等單機應用不屬于應用層。
表示層:進行加密、壓縮,該層需要開發人員進行考慮。
會話層:服務器和客戶端建立的會話,連接遠程桌面,查木馬,telnet -nb
傳輸層:可靠傳輸、不可靠傳輸、流量控制
網絡層:IP地址編址、選擇最佳路徑
數據鏈路層:輸入如何封裝,添加物理地址。
物理層:電壓、接口標準等。
五層協議體系結構
物理層主要包含:底層傳輸介質,電磁能及其利用,信號中信息的表示,無線電頻率和電壓等電學特性,以及相關聯的硬件。
數據鏈路層:計算機與網絡硬件之間的通信,訪問共享媒體的機制,硬件(MAC)尋址,分組(幀)格式、數據包(幀)類型和解復用、差錯檢測和糾正技術。
網絡層:通過 Internet 實現兩臺計算機之間的通信、數據報的格式、IP地址編址及分配、轉發和路由選擇等等。
運輸層:可靠傳輸、不可靠傳輸、擁塞控制(流量控制)。
應用層:能夠產生流量并與用戶發生交互的應用程序。
TCP/IP 的體系結構
TCP/IP 體系結構包含四層:應用層、運輸層、網際層和網絡結構層。
1、應用層:為用戶的應用程序提供接口,使用戶可以訪問網絡。HTTP 超文本傳輸協議(瀏覽網頁服務)FTP 文件傳輸協議(提供文件上傳,文件下載服務,較慢但是可靠),SMTP 簡單郵件傳輸協議(郵件的發送和轉發)、Talnet 遠程登錄功能(配置交換機、路由器)、DNS 域名系統,將域名解析為IP地址(將百度的域名轉換為服務器的IP地址)。
2、運輸層:提供端到端(Port to Port)的通信(兩臺計算機上的軟件間的連接),對信息流具有調節作用。面向連接的可靠傳輸協議 TCP,以及非面向連接的用戶數據報協議 UDP。
3、網際層:IP數據包的封裝和路徑選擇。主要協議:IP (數據包的封裝,定義IP地址)、ICMP (錯誤診斷,比如用ping 命令測試網絡連通性)、ARP協議(將IP地址解析為MAC地址)和 RARP (將MAC地址轉換為IP地址)
4、網絡接口層:網絡接口層是TCP/IP與各種LAN或WAN的接口,主要功能就是對IP數據包進行拆封。
TCP/IP體系結構,各層主要協議:
兩臺主機之間的通信過程
主機 1 的應用進程數據先傳送到應用層 ,然后加上應用層首部,成為應用層PDU (Protocol Data Unit,協議數據單元,OSI 參考模型把對等層次之間傳送的數據單位稱為該層的協議數據單元 PDU):
應用層 PDU 再傳送到運輸層,加上運輸層首部,形成運輸層報文:
運輸層報文再傳送到網絡層,加上網絡層首部,成為 IP 數據報(或分組):
IP 數據報再傳送到數據鏈路層,加上鏈路層首部和尾部,成為數據鏈路層幀 :
數據鏈路層幀再傳送到物理層,最下面的物理層把比特流傳送到物理媒體 :
電信號(或光信號)在物理媒體(光纖、網線、路由器等)中傳播從發送端物理層傳送到接收端物理層:
主機 2 的物理層收到比特流后交給數據鏈路層:
數據鏈路層剝去幀首部和幀尾部后,把幀的數據部分交給網絡層:
網絡層剝去分組首部后,把分組的數據部分交給運輸層:
運輸層剝去報文首部后,把報文的數據部分交給應用層:
應用層剝去應用層 PDU 首部后,把應用程序數據交給應用進程:
最后,主機 2就可以對收到的應用程序數據進行處理啦!
OSI 參考模型把對等層次之間傳送的數據單位稱為該層的協議數據單元 PDU (Protocol Data Unit)。這個名詞現已被許多非 OSI 標準采用。
任何兩個同樣的層次把數據(即數據單元加上控制信息)通過水平虛線直接傳遞給對方。這就是所謂的“對等層”(peer layers)之間的通信。各層協議實際上就是在各個對等層之間傳遞數據時的各項規定。
實體、協議、服務和服務訪問點
實體 (entity) 表示任何可發送或接收信息的硬件或軟件進程。
協議是控制兩個對等實體進行通信的規則的集合。
服務:即上下層,下層向上層提供服務,上層需要使用下層提供的服務來實現本層的功能。
服務訪問點 SAP (Service Access Point):相鄰兩層實體間交換信息的地方。
本文轉載自微信公眾號「景禹」,可以通過以下二維碼關注。轉載本文請聯系景禹公眾號。