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