协议知识概述
目錄
- 1. 申明
- 2. 目的
- 3. 背景知識(shí)
- 4. 兩種模型之間的關(guān)系
- 5. OSI七層協(xié)議模型
- 6. 七層協(xié)議模型作用介紹
- 6.1 物理層
- 6.2 數(shù)據(jù)鏈路層
- 6.3 網(wǎng)絡(luò)層
- 6.4 傳輸層
- 6.5 會(huì)話層
- 6.6 表示層
- 6.7 應(yīng)用層
- 7. 專欄知識(shí)鏈接
- 8. 寫在最后
1. 申明
本文章屬于原創(chuàng),其中參考的代碼及文章在結(jié)尾處標(biāo)明,侵刪。
2. 目的
本文是為OSI及TCP/IP模型做簡(jiǎn)介。
3. 背景知識(shí)
OSI 是 Open System Interconnect的 縮寫,意為開放式系統(tǒng)互聯(lián)。
20世紀(jì)60年代以來(lái),計(jì)算機(jī)網(wǎng)絡(luò)得到了飛速增長(zhǎng)。各大廠商為了在數(shù)據(jù)通信網(wǎng)絡(luò)領(lǐng)域占據(jù)主導(dǎo)地 位,紛紛推出了各自的網(wǎng)絡(luò)架構(gòu)體系和標(biāo)準(zhǔn),如IBM公司的SNA,Novell IPX/SPX協(xié)議,Apple公司的AppleTalk協(xié)議,DEC公司的DECnet,以及廣泛流行的TCP/IP協(xié)議。同時(shí),各大廠商針對(duì)自己的協(xié)議生產(chǎn)出了不同的硬件和軟件。各個(gè)廠商的共同努力促進(jìn)了網(wǎng)絡(luò)技術(shù)的快速發(fā)展和網(wǎng)絡(luò)設(shè)備種類的迅速增長(zhǎng)。但由于多種協(xié)議的并存,也使網(wǎng)絡(luò)變得越來(lái)越復(fù)雜;而且,廠商之間的網(wǎng)絡(luò)設(shè)備大部分不能兼容,很難進(jìn)行通信。
為了解決網(wǎng)絡(luò)之間的兼容性問題,幫助各個(gè)廠商生產(chǎn)出可兼容的網(wǎng)絡(luò)設(shè)備,國(guó)際標(biāo)準(zhǔn)化組織ISO于1984年提出了OSI RM(OpenSystem Interconnection Reference Model,開放系統(tǒng)互連參考模型)。OSI 參考模型很快成為計(jì)算機(jī)網(wǎng)絡(luò)通信的基礎(chǔ)模型。在設(shè)計(jì)OSI 參考模型時(shí),遵循了以下原則:各個(gè)層之間有清晰的邊界,實(shí)現(xiàn)特定的功能;層次的劃分有利于國(guó)際標(biāo)準(zhǔn)協(xié)議的制定;層的數(shù)目應(yīng)該足夠多,以避免各個(gè)層功能重復(fù)。
由于OSI模型和協(xié)議比較復(fù)雜,所以并沒有得到廣泛的應(yīng)用。
而TCP/IP(transfer control protocol/internet protocol,傳輸控制協(xié)議/網(wǎng)際協(xié)議)模型因其開放性和易用性在實(shí)踐中得到了廣泛的應(yīng)用,TCP/IP協(xié)議棧也成為互聯(lián)網(wǎng)的主流協(xié)議。
TCP/IP模型各個(gè)層次分別對(duì)應(yīng)于不同的協(xié)議。TCP/IP協(xié)議棧是數(shù)據(jù)通信協(xié)議的集合 ,包含許多協(xié)議。其協(xié)議棧名字來(lái)源于其中最主要的兩個(gè)協(xié)議TCP(傳輸控制協(xié)議)和IP(網(wǎng)際協(xié)議)。TCP/IP協(xié)議棧負(fù)責(zé)確保網(wǎng)絡(luò)設(shè)備之間能夠通信。它是一組規(guī)則,規(guī)定了信息如何在網(wǎng)絡(luò)中傳輸。
4. 兩種模型之間的關(guān)系
| 應(yīng)用層 | 文件傳輸,電子郵件,文件服務(wù),虛擬終端 | TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 |
| 表示層 | 數(shù)據(jù)格式化,代碼轉(zhuǎn)換,數(shù)據(jù)加密 | 沒有協(xié)議 |
| 會(huì)話層 | 解除或建立與別的接點(diǎn)的聯(lián)系 | 沒有協(xié)議 |
| 傳輸層 | 提供端對(duì)端的接口 | TCP,UDP |
| 網(wǎng)絡(luò)層 | 為數(shù)據(jù)包選擇路由 | IP,ICMP,OSPF,EIGRP,IGMP |
| 數(shù)據(jù)鏈路層 | 傳輸有地址的幀以及錯(cuò)誤檢測(cè)功能 | SLIP,CSLIP,PPP,MTU |
| 物理層 | 以二進(jìn)制數(shù)據(jù)形式在物理媒體上傳輸數(shù)據(jù) | ISO2110,IEEE802,IEEE802.2 |
5. OSI七層協(xié)議模型
七層結(jié)構(gòu)記憶方法:應(yīng)、表、會(huì)、傳、網(wǎng)、數(shù)、物
具體結(jié)構(gòu)如下圖
6. 七層協(xié)議模型作用介紹
6.1 物理層
在OSI參考模型中,物理層(Physical Layer)是參考模型的最低層。物理層的作用是實(shí)現(xiàn)相鄰計(jì)算機(jī)節(jié)點(diǎn)之間比特流的透明傳送,盡可能屏蔽掉具體傳輸介質(zhì)和物理設(shè)備的差異?!巴该鱾魉捅忍亓鳌北硎窘?jīng)實(shí)際電路傳送后的比特流沒有發(fā)生變化,對(duì)傳送的比特流來(lái)說(shuō),這個(gè)電路好像是看不見的。
物理層標(biāo)準(zhǔn)規(guī)定了物理介質(zhì)和用于將設(shè)備與物理介質(zhì)相連的接頭。
6.2 數(shù)據(jù)鏈路層
數(shù)據(jù)鏈路層(Data Link Layer)是OSI模型的第二層,負(fù)責(zé)建立和管理節(jié)點(diǎn)間的鏈路。該層的主要功能是:通過各種控制協(xié)議,將有差錯(cuò)的物理信道變?yōu)闊o(wú)差錯(cuò)的、能可靠傳輸數(shù)據(jù)幀的數(shù)據(jù)鏈路。在計(jì)算機(jī)網(wǎng)絡(luò)中由于各種干擾的存在,物理鏈路是不可靠的。因此,這一層的主要功能是在物理層提供的比特流的基礎(chǔ)上,通過差錯(cuò)控制、流量控制方法,使有差錯(cuò)的物理線路變?yōu)闊o(wú)差錯(cuò)的數(shù)據(jù)鏈路,即提供可靠的通過物理介質(zhì)傳輸數(shù)據(jù)的方法。數(shù)據(jù)鏈路層的具體工作是接收來(lái)自物理層的位流形式的數(shù)據(jù),并封裝成幀,傳送到上一層;同樣,也將來(lái)自上層的數(shù)據(jù)幀,拆裝為位流形式的數(shù)據(jù)轉(zhuǎn)發(fā)到物理層;并且,還負(fù)責(zé)處理接收端發(fā)回的確認(rèn)幀的信息,以便提供可靠的數(shù)據(jù)傳輸。
6.3 網(wǎng)絡(luò)層
網(wǎng)絡(luò)層(Network Layer)是OSI模型的第三層,它是OSI參考模型中最復(fù)雜的一層。它在下兩層的基礎(chǔ)上向資源子網(wǎng)提供服務(wù)。其主要任務(wù)是:通過路由選擇算法,為報(bào)文或分組通過通信子網(wǎng)選擇最適當(dāng)?shù)穆窂?/strong>。具體地說(shuō),數(shù)據(jù)鏈路層的數(shù)據(jù)在這一層被轉(zhuǎn)換為數(shù)據(jù)包,然后通過路徑選擇、分段組合、順 序、進(jìn)/出路由等控制,將信息從一個(gè)網(wǎng)絡(luò)設(shè)備傳送到另一個(gè)網(wǎng)絡(luò)設(shè)備。一般地,數(shù)據(jù)鏈路層是解決同一網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)之間的通信,而網(wǎng)絡(luò)層主要解決不同子網(wǎng)間的通信。例如在廣域網(wǎng)之間通信時(shí),必然會(huì)遇到路由(即兩節(jié)點(diǎn)間可能有多條路徑)選擇問題。
6.4 傳輸層
傳輸層(Transport Layer)是OSI模型的第4層。因此該層是通信子網(wǎng)和資源子網(wǎng)的接口和橋梁,起到承上啟下的作用。該層的主要任務(wù)是:向用戶提供可靠的端到端的差錯(cuò)和流量控制,保證報(bào)文的正確傳輸。傳輸層的作用是向高層屏蔽下層數(shù)據(jù)通信的細(xì)節(jié),即向用戶透明地傳送報(bào)文。該層常見的協(xié)議:TCP/IP中的TCP協(xié)議和UDP協(xié)議。傳輸層提供會(huì)話層和網(wǎng)絡(luò)層之間的傳輸服務(wù),這種服務(wù)從會(huì)話層獲得數(shù)據(jù),并在必要時(shí),對(duì)數(shù)據(jù)進(jìn)行分割。然后,傳輸層將數(shù)據(jù)傳遞到網(wǎng)絡(luò)層,并確保數(shù)據(jù)能正確無(wú)誤地傳送到網(wǎng)絡(luò)層。因此,傳輸層負(fù)責(zé)提供兩節(jié)點(diǎn)之間數(shù)據(jù)的可靠傳送,當(dāng)兩節(jié)點(diǎn)的聯(lián)系確定之后,傳輸層則負(fù)責(zé)監(jiān)督工作。綜上,傳輸層的主要功能如下:監(jiān)控服務(wù)質(zhì)量。
6.5 會(huì)話層
會(huì)話層(Session Layer)是OSI模型的第5層,是用戶應(yīng)用程序和網(wǎng)絡(luò)之間的接口,主要任務(wù)是:向兩個(gè)實(shí)體的表示層提供建立和使用連接的方法。將不同實(shí)體之間的表示層 的連接稱為會(huì)話。因此會(huì)話層的任務(wù)就是組織和協(xié)調(diào)兩個(gè)會(huì)話進(jìn)程之間的通信,并對(duì)數(shù)據(jù)交換進(jìn)行管理。 用戶可以按照半雙工、單工和全雙工的方式建立會(huì)話。當(dāng)建立會(huì)話時(shí),用戶必須提供他們想要連接的遠(yuǎn)程地址。而這些地址與MAC(介質(zhì)訪問控制子層)地址或網(wǎng)絡(luò)層的邏輯地址不同,它們是為用戶專門設(shè)計(jì)的,更便于用戶記憶。
6.6 表示層
表示層(Presentation Layer)是OSI模型的第六層,它對(duì)來(lái)自應(yīng)用層的命令和數(shù)據(jù)進(jìn)行解釋,對(duì)各種語(yǔ)法賦予相應(yīng)的含義,并按照一定的格式傳送給會(huì)話層。其主要功能是“處理用戶信息的表示問題,如編碼、數(shù)據(jù)格式轉(zhuǎn)換和加密解密”等。
6.7 應(yīng)用層
應(yīng)用層(Application Layer)是OSI參考模型的最高層,它是計(jì)算機(jī)用戶,以及各種應(yīng)用程序和網(wǎng)絡(luò)之間的接口,其功能是直接向用戶提供服務(wù),完成用戶希望在網(wǎng)絡(luò)上完成的各種工作。它在其他6層工作的基礎(chǔ)上,負(fù)責(zé)完成網(wǎng)絡(luò)中應(yīng)用程序與網(wǎng)絡(luò)操作系統(tǒng)之間的聯(lián)系,建立與結(jié)束使用者之間的聯(lián)系,并完成網(wǎng)絡(luò)用戶提出的各種網(wǎng)絡(luò)服務(wù)及 應(yīng)用所需的監(jiān)督、管理和服務(wù)等各種協(xié)議。此外,該層還負(fù)責(zé)協(xié)調(diào)各個(gè)應(yīng)用程序間的工作。
劃重點(diǎn): 至此,我們根據(jù)上文的描述,已經(jīng)對(duì)網(wǎng)絡(luò)中的各個(gè)層級(jí)關(guān)系有了初步的認(rèn)知,在此基礎(chǔ)上,本模塊會(huì)針對(duì)網(wǎng)絡(luò)中常見的各種協(xié)議進(jìn)行描述、解析,也歡迎大家討論和補(bǔ)充。
7. 專欄知識(shí)鏈接
1. H264分辨率解碼概述
2. H265分辨率解碼概述
3. 以太網(wǎng)Ethernet解碼概述
8. 寫在最后
本文引用了以下文章作者的代碼或思路,
并結(jié)合了實(shí)際項(xiàng)目中的代碼整理出的demo,如有問題歡迎指正。
https://blog.csdn.net/freeking101/article/details/77977941
附一個(gè)查找各種協(xié)議RFC文檔的地址鏈接
https://www.rfc-editor.org/search/rfc_search_detail.php?rfc=2341&pubstatus%5B%5D=Any&pub_date_type=any
總結(jié)