學(xué)會這一招,網(wǎng)絡(luò)分層再也不會忘!
說到計算機網(wǎng)絡(luò),肯定繞不開要對網(wǎng)絡(luò)分層模型 進(jìn)行了解。
但說實話,很多人一看到七層、四層一大堆專業(yè)名詞就開始頭大:什么物理層、數(shù)據(jù)鏈路層,和我發(fā)個消息有啥關(guān)系?
別急,今天神唱 就用一招,讓你徹底搞懂網(wǎng)絡(luò)分層模型,一次記牢,終身不忘!
1. 為什么要網(wǎng)絡(luò)分層
先講點道理:網(wǎng)絡(luò)分層就像搭積木,把復(fù)雜問題拆小,層層分工、各司其職。
如果你想發(fā)條微信給朋友:
- 你寫內(nèi)容 → 手機打包發(fā)送 → 網(wǎng)絡(luò)轉(zhuǎn)發(fā) → 對方接收展示
- 中間要經(jīng)歷信號、電纜、IP地址、TCP協(xié)議、加密、編碼……
這么多細(xì)節(jié),要是不分層,工程師都瘋了。
所以,分層 = 拆解復(fù)雜通信流程,讓協(xié)議標(biāo)準(zhǔn)化、模塊化、可替換。
對于程序員的我很好理解,網(wǎng)絡(luò)分層的本質(zhì),就像 Java 項目的架構(gòu)設(shè)計:高內(nèi)聚、低耦合,各層定義清晰,既便于開發(fā)維護,也方便替換協(xié)議或組件。如果你所有邏輯都寫在一個類里,那就成了史詩級大坨屎山 , 誰都維護不了。
2. OSI 七層模型
經(jīng)典的 OSI 模型 有 7 層,層層疊疊,像漢堡一樣:
神唱之前一直記不住他們的順序,最后我索性直接記一段話就行,應(yīng)表會傳網(wǎng)數(shù)物 。真實好用忘不掉。
簡化理解:
層級 | 功能通俗解釋 | 舉個例子 |
應(yīng)用層 | 你要干什么? | 瀏覽網(wǎng)頁、收發(fā)郵件 |
表示層 | 數(shù)據(jù)長啥樣? | 編碼格式、加密解密 |
會話層 | 和誰聊?怎么聊? | 建立/維護/斷開連接 |
傳輸層 | 可靠不丟包嗎? | TCP、UDP |
網(wǎng)絡(luò)層 | 走哪條路? | IP尋址、路由選擇 |
數(shù)據(jù)鏈路層 | 哪個車道?怎么送? | MAC 地址、以太網(wǎng)幀 |
物理層 | 電信號/光信號 | 電纜、光纖、無線電波 |
3. TCP/IP 模型:實用派代表
說實話,雖然 OSI 模型概念清晰,但我們實際工程中用得更多的是 TCP/IP 模型,也叫四層模型:
映射關(guān)系一覽表:
TCP/IP 四層 | 對應(yīng) OSI 層級 | 舉例協(xié)議 |
應(yīng)用層 | 應(yīng)用 + 表示 + 會話 | HTTP、FTP、DNS |
傳輸層 | 傳輸層 | TCP、UDP |
網(wǎng)絡(luò)層 | 網(wǎng)絡(luò)層 | IP、ICMP |
網(wǎng)絡(luò)接口層 | 數(shù)據(jù)鏈路 + 物理層 | Ethernet、Wi-Fi |
4. “打包和拆包”的逆向思維
記住一個核心概念:發(fā)送方:從上往下打包 → 接收方:從下往上拆包
假設(shè)你在瀏覽器發(fā)一個 HTTP 請求:
- 應(yīng)用層:寫好內(nèi)容,用 HTTP 封裝
- 傳輸層:打包成 TCP 段
- 網(wǎng)絡(luò)層:加 IP 地址,變成 IP 包
- 數(shù)據(jù)鏈路層:加 MAC 地址,變成以太網(wǎng)幀
- 物理層:變成電信號發(fā)出去!
然后在接收端:
- 物理層:電信號接收
- 數(shù)據(jù)鏈路層:拆出 MAC 地址
- 網(wǎng)絡(luò)層:拆出 IP 包
- 傳輸層:拼裝 TCP 數(shù)據(jù)
- 應(yīng)用層:還原成網(wǎng)頁