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