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