我們?yōu)槭裁葱枰W(wǎng)絡(luò)協(xié)議來(lái)傳輸數(shù)據(jù)?
連接互聯(lián)網(wǎng)的各種設(shè)備需要用它們能理解的語(yǔ)言進(jìn)行通信。各種計(jì)算機(jī)系統(tǒng)使用 OSI(Open Systems Interconnectio)模型規(guī)定的標(biāo)準(zhǔn)相互通信。
OSI 模型有七個(gè)抽象層,每個(gè)層都有不同的職責(zé)和協(xié)議。
下圖顯示了 OSI 模型中每一層的功能。每個(gè)中間層都為其上層提供功能,并由其下層提供服務(wù)。
圖片
01 應(yīng)用層
應(yīng)用層最接近終端用戶(hù)。大多數(shù)應(yīng)用程序都位于這一層。我們從后端服務(wù)器請(qǐng)求數(shù)據(jù),無(wú)需了解數(shù)據(jù)傳輸?shù)木唧w細(xì)節(jié)。這一層的協(xié)議包括 HTTP、SMTP、FTP、DNS 等。
02 表現(xiàn)層
這一層處理數(shù)據(jù)編碼、加密和壓縮,為應(yīng)用層準(zhǔn)備數(shù)據(jù)。例如,HTTPS 利用 TLS 實(shí)現(xiàn)客戶(hù)端與服務(wù)器之間的安全通信。
03 會(huì)話層
該層用于打開(kāi)和關(guān)閉兩個(gè)設(shè)備之間的通信。如果數(shù)據(jù)量較大,會(huì)話層就會(huì)設(shè)置檢查點(diǎn),避免從頭開(kāi)始重新發(fā)送。
04 傳輸層
該層處理兩個(gè)設(shè)備之間的端到端通信。它在發(fā)送方將數(shù)據(jù)分解成段,然后在接收方重新組裝。這一層有流量控制,以防止擁塞。這一層的主要協(xié)議是 TCP 和 UDP。
05 網(wǎng)絡(luò)層
這一層實(shí)現(xiàn)不同網(wǎng)絡(luò)之間的數(shù)據(jù)傳輸。它進(jìn)一步將網(wǎng)段或數(shù)據(jù)報(bào)分解成更小的數(shù)據(jù)包,并使用 IP 地址找到通往最終目的地的最佳路由。這一過(guò)程被稱(chēng)為路由選擇。
06 數(shù)據(jù)鏈路層
這一層允許在同一網(wǎng)絡(luò)的設(shè)備之間傳輸數(shù)據(jù)。數(shù)據(jù)包被分解成幀,這些幀被限制在局域網(wǎng)內(nèi)。
07 物理層
這一層通過(guò)電纜和交換機(jī)發(fā)送比特流,因此與設(shè)備之間的物理連接密切相關(guān)。
既然我們已經(jīng)了解了每一層的職責(zé),那就讓我們來(lái)總結(jié)一下圖中的數(shù)據(jù)傳輸過(guò)程。這就是所謂的封裝(encapsulation)和解封裝(decapsulation)。
封裝是指在數(shù)據(jù)向目的地傳輸?shù)倪^(guò)程中為數(shù)據(jù)添加報(bào)頭(header)。解封裝會(huì)移除這些報(bào)頭,以獲取原始數(shù)據(jù)。
步驟 1:當(dāng)設(shè)備 A 使用 HTTP 通過(guò)網(wǎng)絡(luò)向設(shè)備 B 發(fā)送數(shù)據(jù)時(shí),最初會(huì)在應(yīng)用層添加一個(gè) HTTP 報(bào)頭。
步驟 2:在數(shù)據(jù)中添加 TCP 或 UDP 報(bào)頭。它在傳輸層被封裝成 TCP segments。報(bào)頭包含源端口、目的端口和序列號(hào)。
步驟 3:在網(wǎng)絡(luò)層用 IP 報(bào)頭對(duì)這些段落進(jìn)行封裝。IP 報(bào)頭包含源 IP 地址和目的 IP 地址。
步驟 4:在數(shù)據(jù)鏈路層為 IP 數(shù)據(jù)報(bào)添加 MAC 報(bào)頭,其中包含源 MAC 地址和目的 MAC 地址。
第 5 步:封裝幀被發(fā)送到物理層,并作為比特流在網(wǎng)絡(luò)上發(fā)送。
步驟 6-10:設(shè)備 B 從網(wǎng)絡(luò)接收到比特流后,會(huì)啟動(dòng)解封裝過(guò)程,這與封裝過(guò)程相反。報(bào)頭逐層去除,直到設(shè)備 B 可以訪問(wèn)原始數(shù)據(jù)。
請(qǐng)注意,每一層都使用報(bào)頭來(lái)處理指令,而不需要解封上一層的數(shù)據(jù)。
TCP/IP 模型
與理論上的 OSI 模型相比,TCP/IP 模型提供了一個(gè)更實(shí)用的框架。它包含四個(gè)關(guān)鍵層:
應(yīng)用層 支持 HTTP、SMTP 等最終用戶(hù)進(jìn)程
傳輸層 處理主機(jī)到主機(jī)的通信(TCP、UDP)
網(wǎng)絡(luò)層 尋址和路由數(shù)據(jù)包(IP 協(xié)議)
鏈路層 通過(guò)網(wǎng)絡(luò)的物理電線、電纜或無(wú)線信道移動(dòng)比特
這一模型更貼近現(xiàn)實(shí)世界的互聯(lián)網(wǎng)通信,將七個(gè) OSI 層壓縮為這四個(gè)關(guān)鍵層。
審核編輯:劉清
-
數(shù)據(jù)傳輸
+關(guān)注
關(guān)注
9文章
2019瀏覽量
66095 -
SMTP
+關(guān)注
關(guān)注
0文章
32瀏覽量
12215 -
FTP
+關(guān)注
關(guān)注
0文章
115瀏覽量
41427 -
OSI
+關(guān)注
關(guān)注
0文章
85瀏覽量
15654
原文標(biāo)題:面試官:我們?yōu)槭裁葱枰?7 層 OSI 網(wǎng)絡(luò)模型?
文章出處:【微信號(hào):小林coding,微信公眾號(hào):小林coding】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
OSI模型的簡(jiǎn)單理解
CAN現(xiàn)場(chǎng)總線定義OSI網(wǎng)絡(luò)模型
網(wǎng)絡(luò)OSI七層模型視頻教程2
網(wǎng)絡(luò)OSI七層模型視頻教程1
網(wǎng)絡(luò)OSI七層模型視頻教程3
對(duì)OSI七層模型的誤解

評(píng)論