計(jì)算機(jī)網(wǎng)絡(luò)是現(xiàn)代信息社會(huì)的基石,其核心思想是通過(guò)協(xié)議實(shí)現(xiàn)不同計(jì)算機(jī)系統(tǒng)間的可靠通信。理解計(jì)算機(jī)網(wǎng)絡(luò),一個(gè)有效的方法是采用“自頂向下”的視角,即從我們?nèi)粘=佑|的網(wǎng)絡(luò)應(yīng)用(如Web瀏覽、電子郵件)開(kāi)始,層層深入其背后的工作原理。本篇筆記將聚焦于互聯(lián)網(wǎng)的宏觀(guān)概述與核心的協(xié)議分層模型。
一、什么是互聯(lián)網(wǎng)?
互聯(lián)網(wǎng)可以被視為一個(gè)世界范圍的計(jì)算機(jī)網(wǎng)絡(luò),它互聯(lián)了數(shù)以?xún)|計(jì)的計(jì)算設(shè)備(包括傳統(tǒng)PC、服務(wù)器、智能手機(jī)、傳感器等)。這些設(shè)備被稱(chēng)為主機(jī)或端系統(tǒng)。端系統(tǒng)通過(guò)通信鏈路(如光纖、銅線(xiàn)、無(wú)線(xiàn)電頻譜)和分組交換機(jī)(如路由器、交換機(jī))連接在一起,構(gòu)成了一個(gè)龐大、復(fù)雜的網(wǎng)狀結(jié)構(gòu)。
互聯(lián)網(wǎng)的關(guān)鍵特征在于其以分組交換為基礎(chǔ)。當(dāng)一臺(tái)主機(jī)向另一臺(tái)主機(jī)發(fā)送數(shù)據(jù)時(shí),發(fā)送端會(huì)將數(shù)據(jù)分割成較小的數(shù)據(jù)塊,稱(chēng)為分組。每個(gè)分組通過(guò)網(wǎng)絡(luò)中的鏈路和交換機(jī),獨(dú)立地傳向目的地,最終在接收端被重組為原始數(shù)據(jù)。這種方式高效地共享了通信資源。
使這一切成為可能的,正是一系列標(biāo)準(zhǔn)化的協(xié)議。協(xié)議定義了網(wǎng)絡(luò)實(shí)體之間交換報(bào)文的格式、順序以及發(fā)送/接收?qǐng)?bào)文所采取的動(dòng)作。例如,TCP、IP、HTTP、以太網(wǎng)協(xié)議等都是互聯(lián)網(wǎng)中至關(guān)重要的協(xié)議。因此,互聯(lián)網(wǎng)也可以被定義為“網(wǎng)絡(luò)的網(wǎng)絡(luò)”,它由數(shù)以萬(wàn)計(jì)的ISP(互聯(lián)網(wǎng)服務(wù)提供商)網(wǎng)絡(luò)互連而成,并依賴(lài)于全球統(tǒng)一的協(xié)議標(biāo)準(zhǔn)(尤其是TCP/IP協(xié)議族)來(lái)確保互操作性。
二、協(xié)議分層模型
為了降低網(wǎng)絡(luò)設(shè)計(jì)的復(fù)雜性,便于實(shí)現(xiàn)、維護(hù)和更新,網(wǎng)絡(luò)功能被組織成一個(gè)分層棧。每一層為其上層提供服務(wù),同時(shí)利用其下層提供的服務(wù)。分層模型提供了清晰的結(jié)構(gòu)化框架。
1. 協(xié)議分層的核心概念
- 服務(wù):某一層向它的上一層提供的功能。例如,網(wǎng)絡(luò)層(IP)為主機(jī)到主機(jī)的數(shù)據(jù)傳輸提供服務(wù)。
- 協(xié)議:同一層對(duì)等實(shí)體(例如,兩臺(tái)主機(jī)的傳輸層)之間通信規(guī)則的集合。它定義了報(bào)文格式、交換規(guī)則和動(dòng)作。
- 接口:相鄰層之間交換信息的邊界。上層通過(guò)接口調(diào)用下層的服務(wù)。
- 封裝:發(fā)送數(shù)據(jù)時(shí),每一層接收來(lái)自上層的協(xié)議數(shù)據(jù)單元,并在其前面添加本層的首部信息(有時(shí)還有尾部),構(gòu)成新的數(shù)據(jù)單元傳遞給下一層。這個(gè)過(guò)程就像給數(shù)據(jù)包套上了一個(gè)個(gè)信封。接收端則進(jìn)行反向的解封過(guò)程。
2. 五層互聯(lián)網(wǎng)協(xié)議棧(自頂向下)
這是“自頂向下方法”中常用的簡(jiǎn)化模型,也是理解互聯(lián)網(wǎng)工作原理的核心框架。
- 應(yīng)用層(第五層):
- 任務(wù):支持網(wǎng)絡(luò)應(yīng)用,是網(wǎng)絡(luò)應(yīng)用程序及它們應(yīng)用層協(xié)議存留的地方。
- 協(xié)議示例:HTTP(Web)、SMTP(電子郵件)、DNS(域名解析)、FTP(文件傳輸)。
- 報(bào)文單位:報(bào)文。
- 傳輸層(第四層):
- 任務(wù):為運(yùn)行在不同主機(jī)上的應(yīng)用進(jìn)程之間提供邏輯通信服務(wù)。
- 核心服務(wù):
- 可靠數(shù)據(jù)傳輸:確保數(shù)據(jù)完整、有序地送達(dá)(TCP協(xié)議)。
- 吞吐量、定時(shí)保證:提供帶寬和延遲保障(部分服務(wù))。
- 無(wú)連接、盡力而為服務(wù):不建立連接,不保證可靠性(UDP協(xié)議)。
- 報(bào)文單位:報(bào)文段(TCP)或數(shù)據(jù)報(bào)(UDP)。
- 網(wǎng)絡(luò)層(第三層):
- 任務(wù):將網(wǎng)絡(luò)層的分組——數(shù)據(jù)報(bào)——從一臺(tái)主機(jī)移動(dòng)到另一臺(tái)主機(jī)。
- 關(guān)鍵功能:
- 轉(zhuǎn)發(fā):將分組從路由器的輸入鏈路移動(dòng)到合適的輸出鏈路(路由器內(nèi)部動(dòng)作)。
- 路由選擇:決定分組從源到目的地所經(jīng)過(guò)的路徑(網(wǎng)絡(luò)范圍的路徑規(guī)劃)。
- 核心協(xié)議:IP協(xié)議,以及各種路由選擇協(xié)議(如OSPF, BGP)。
- 鏈路層(第二層):
- 任務(wù):將數(shù)據(jù)報(bào)在網(wǎng)絡(luò)的單段鏈路上從一個(gè)節(jié)點(diǎn)(主機(jī)或路由器)移動(dòng)到下一個(gè)節(jié)點(diǎn)。
- 關(guān)鍵功能:成幀、鏈路接入、可靠交付(在相鄰節(jié)點(diǎn)間)、差錯(cuò)檢測(cè)與糾正。
- 協(xié)議示例:以太網(wǎng)(Ethernet)、Wi-Fi(802.11)、PPP。
- 報(bào)文單位:幀。
- 物理層(第一層):
- 任務(wù):將幀中的一個(gè)個(gè)比特從一個(gè)節(jié)點(diǎn)移動(dòng)到下一個(gè)節(jié)點(diǎn)。
- 關(guān)注點(diǎn):信號(hào)的物理特性(電壓、光脈沖頻率、無(wú)線(xiàn)電頻率)、比特時(shí)長(zhǎng)、物理連接器等。
3. OSI七層模型(參考)
除了五層模型,還有理論上的OSI(開(kāi)放系統(tǒng)互連)七層模型,它在應(yīng)用層和傳輸層之間增加了表示層(數(shù)據(jù)轉(zhuǎn)換、加密)和會(huì)話(huà)層(會(huì)話(huà)管理)。在實(shí)際的互聯(lián)網(wǎng)中,TCP/IP五層模型是事實(shí)上的標(biāo)準(zhǔn)。
三、一個(gè)簡(jiǎn)化的通信過(guò)程
假設(shè)主機(jī)A的瀏覽器(應(yīng)用層)訪(fǎng)問(wèn)一個(gè)網(wǎng)頁(yè):
- 應(yīng)用層生成一個(gè)HTTP請(qǐng)求報(bào)文。
- 傳輸層(TCP)將報(bào)文封裝,添加TCP首部,形成報(bào)文段,以提供可靠通信服務(wù)。
- 網(wǎng)絡(luò)層(IP)添加IP首部,形成數(shù)據(jù)報(bào),其中包含源和目的IP地址。
- 鏈路層(如以太網(wǎng))添加幀首部和尾部,形成幀,其中包含下一跳節(jié)點(diǎn)的MAC地址。
- 物理層將幀轉(zhuǎn)換為比特流,通過(guò)物理介質(zhì)發(fā)送出去。
該幀經(jīng)過(guò)路徑上的交換機(jī)(主要處理鏈路層和物理層)和路由器(處理到網(wǎng)絡(luò)層)逐跳轉(zhuǎn)發(fā),最終到達(dá)目的主機(jī)。目的主機(jī)則逆向執(zhí)行解封裝過(guò)程,將HTTP請(qǐng)求報(bào)文交付給其Web服務(wù)器應(yīng)用程序。
理解分層模型是學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)的起點(diǎn)。 它為我們提供了一個(gè)分析復(fù)雜系統(tǒng)的強(qiáng)大工具。在后續(xù)的學(xué)習(xí)中,我們將沿著這個(gè)自頂向下的路徑,逐層深入探究每層的具體協(xié)議與技術(shù)細(xì)節(jié)。