絡(luò)協(xié)議 “通關(guān)秘籍”:從物理信號(hào)到數(shù)據(jù)傳輸?shù)?“層層解密”)
一、物理層信號(hào)的 “快遞員”物理層是網(wǎng)絡(luò)的 “最底層”負(fù)責(zé)把 0 和 1 的電信號(hào)、光信號(hào)或無線電波在物理介質(zhì)上傳送。它不管數(shù)據(jù)含義只保證信號(hào)能 “跑” 起來。舉例網(wǎng)線里的電脈沖、光纖里的光信號(hào)、Wi-Fi 的無線電波都是物理層在 “干活”。常見的物理層標(biāo)準(zhǔn)有 RJ45、光纖接口、802.11。二、數(shù)據(jù)鏈路層幀的 “打包員” 與 “交警”數(shù)據(jù)鏈路層把物理層的 “原始信號(hào)” 打包成 “幀”給數(shù)據(jù)加頭部和尾部頭部有 MAC 地址尾部有校驗(yàn)位。同時(shí)它還負(fù)責(zé) “流量控制” 和 “差錯(cuò)檢測”就像路口交警指揮交通避免數(shù)據(jù) “撞車”。核心技術(shù)MAC 地址、以太網(wǎng)協(xié)議、PPP 協(xié)議。舉例你的電腦MAC 地址 A給手機(jī)MAC 地址 B發(fā)消息數(shù)據(jù)鏈路層會(huì)給數(shù)據(jù)加上 A 和 B 的 MAC 地址形成 “以太網(wǎng)幀”再交給物理層發(fā)送。如果發(fā)送太快導(dǎo)致對(duì)方收不過來它會(huì)暫停發(fā)送等對(duì)方 “說” 準(zhǔn)備好了再繼續(xù)。三、網(wǎng)絡(luò)層路徑的 “導(dǎo)航員”網(wǎng)絡(luò)層的任務(wù)是 “找路”讓數(shù)據(jù)從 “源 IP” 到 “目標(biāo) IP” 能走對(duì)路線。它會(huì)給數(shù)據(jù)加上 IP 頭部然后通過路由算法選擇最優(yōu)路徑。核心技術(shù)IP 地址、子網(wǎng)掩碼、路由器、ICMP 協(xié)議。舉例你用電腦訪問百度電腦的 IP 是 192.168.1.2百度服務(wù)器 IP 是 14.215.177.38。網(wǎng)絡(luò)層會(huì)給數(shù)據(jù)加上這兩個(gè) IP然后路由器根據(jù)路由表判斷 “14.215.177.38 要走寬帶出口”把數(shù)據(jù)轉(zhuǎn)發(fā)出去。如果路徑不通ICMP 會(huì)返回 “目標(biāo)不可達(dá)” 的提示。四、傳輸層數(shù)據(jù)的 “快遞分揀員”傳輸層負(fù)責(zé) “端到端” 的可靠傳輸區(qū)分同一臺(tái)設(shè)備上的不同應(yīng)用。兩大協(xié)議TCP“可靠的快遞員”會(huì)建立連接、確認(rèn)數(shù)據(jù)收到、重傳丟失的數(shù)據(jù)適合重要數(shù)據(jù)。UDP“快速的跑腿員”不建立連接、不確認(rèn)速度快但可能丟包適合實(shí)時(shí)數(shù)據(jù)。舉例你刷網(wǎng)頁用 TCP因?yàn)椴荒苌賰?nèi)容看視頻用 UDP偶爾卡一下不影響整體觀看。五、會(huì)話層連接的 “管理員”會(huì)話層負(fù)責(zé)建立、管理和終止 “應(yīng)用之間的會(huì)話”就像打電話時(shí)的 “撥號(hào) - 通話 - 掛電話” 流程。它還會(huì)同步數(shù)據(jù)比如文件傳輸時(shí)如果中斷下次可以從斷點(diǎn)繼續(xù)傳。舉例FTP 傳輸文件時(shí)會(huì)話層會(huì)記錄 “已經(jīng)傳了多少字節(jié)”中斷后恢復(fù)會(huì)話就能接著傳。六、表示層數(shù)據(jù)的 “翻譯官” 與 “化妝師”表示層負(fù)責(zé) “數(shù)據(jù)格式轉(zhuǎn)換” 和 “加密壓縮”讓發(fā)送方和接收方的應(yīng)用能 “看懂” 對(duì)方的數(shù)據(jù)。主要功能格式轉(zhuǎn)換比如把 Java 對(duì)象轉(zhuǎn)成 JSON 字符串對(duì)方收到再轉(zhuǎn)回去。加密比如 HTTPS 里對(duì)數(shù)據(jù)加密防止中途被偷看。壓縮比如把大文件壓縮成 ZIP減少傳輸流量。舉例你在微信發(fā)消息文字會(huì)被編碼成 UTF-8 格式對(duì)方收到后用 UTF-8 解碼才能顯示正確的文字。七、應(yīng)用層用戶的 “服務(wù)窗口”應(yīng)用層是 “最頂層”直接和用戶的應(yīng)用程序打交道定義了不同應(yīng)用的通信規(guī)則。我們平時(shí)用的軟件背后都對(duì)應(yīng)著應(yīng)用層協(xié)議。常見協(xié)議HTTP/HTTPS網(wǎng)頁瀏覽比如用瀏覽器訪問百度。FTP文件傳輸比如上傳文件到服務(wù)器。SMTP/POP3郵件發(fā)送和接收比如用 QQ 郵箱發(fā)郵件。DNS域名解析比如把 “www.baidu.comFile” 轉(zhuǎn)成 IP 地址 14.215.177.38這樣網(wǎng)絡(luò)層才能找路。舉例你在瀏覽器輸入 “www.baidu.comFile”首先 DNS 協(xié)議會(huì)把域名轉(zhuǎn)成 IP然后 HTTP 協(xié)議定義 “請求網(wǎng)頁” 的格式把請求發(fā)給百度服務(wù)器服務(wù)器再按 HTTP 格式返回網(wǎng)頁內(nèi)容。八、協(xié)議棧 “協(xié)作流程”一封郵件的 “旅行”假設(shè)你用 QQ 郵箱給朋友發(fā)郵件整個(gè)過程是這樣的應(yīng)用層SMTP 協(xié)議定義郵件格式把你的文字、附件打包成 “郵件請求”。表示層對(duì)郵件內(nèi)容加密壓縮附件大小。會(huì)話層建立和 QQ 郵箱服務(wù)器的會(huì)話準(zhǔn)備傳輸。傳輸層用 TCP 協(xié)議給數(shù)據(jù)分段加上端口號(hào)。網(wǎng)絡(luò)層加上你的電腦 IP 和 QQ 郵箱服務(wù)器 IP路由器通過 IP 找路。數(shù)據(jù)鏈路層加上 MAC 地址打包成以太網(wǎng)幀通過網(wǎng)線 / Wi-Fi 發(fā)送。物理層把幀轉(zhuǎn)成電信號(hào) / 光信號(hào)在物理介質(zhì)上傳送。到了服務(wù)器那邊再從物理層到應(yīng)用層 “拆包”最后朋友的郵箱收到郵件。謝謝