數(shù)據(jù)鏈路層是計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)中的第二層,位于物理層之上、網(wǎng)絡(luò)層之下。它負(fù)責(zé)在相鄰節(jié)點(diǎn)(通常指同一物理鏈路直接相連的兩個(gè)設(shè)備,如主機(jī)與交換機(jī)、交換機(jī)與交換機(jī))之間提供可靠的數(shù)據(jù)傳輸服務(wù)。數(shù)據(jù)鏈路層的核心功能可以概括為三大控制:幀同步控制、差錯(cuò)控制、流量控制,并通過(guò)一系列協(xié)議來(lái)實(shí)現(xiàn)這些功能。
一、數(shù)據(jù)鏈路層的核心控制功能
1. 幀同步控制
物理層以比特流的形式傳輸原始數(shù)據(jù),數(shù)據(jù)鏈路層需要將這些比特流組織成有意義的邏輯單元——幀。幀同步的目的是讓接收方能準(zhǔn)確識(shí)別出一個(gè)幀的開(kāi)始和結(jié)束位置。常見(jiàn)的幀同步方法有:
- 字符計(jì)數(shù)法:在幀頭部使用一個(gè)特定字段標(biāo)明幀內(nèi)的字符數(shù)。
- 字符填充的首尾定界符法:使用特定的字符(如STX、ETX)作為幀的起始和結(jié)束標(biāo)志,若數(shù)據(jù)中出現(xiàn)相同字符,則通過(guò)填充轉(zhuǎn)義字符(如DLE)來(lái)區(qū)分。
- 比特填充的首尾標(biāo)志法:這是最常用的方法,如HDLC協(xié)議采用特殊的比特模式“01111110”作為幀的起始和結(jié)束標(biāo)志。為確保數(shù)據(jù)中不出現(xiàn)該標(biāo)志,發(fā)送方在連續(xù)5個(gè)“1”后自動(dòng)插入一個(gè)“0”,接收方則刪除該“0”,從而實(shí)現(xiàn)透明傳輸。
- 物理層編碼違禁法:利用物理層編碼中不會(huì)出現(xiàn)的特定信號(hào)來(lái)標(biāo)識(shí)幀邊界。
2. 差錯(cuò)控制
由于信道噪聲、干擾等因素,數(shù)據(jù)傳輸過(guò)程中可能出現(xiàn)比特錯(cuò)誤。數(shù)據(jù)鏈路層的差錯(cuò)控制主要確保幀的可靠傳輸。主要技術(shù)包括:
- 檢錯(cuò)編碼:通過(guò)在數(shù)據(jù)后添加冗余校驗(yàn)碼(如循環(huán)冗余校驗(yàn)CRC),接收方通過(guò)計(jì)算判斷幀是否出錯(cuò)。若出錯(cuò),通常丟棄該幀并要求重傳。它實(shí)現(xiàn)簡(jiǎn)單,效率高,是主要應(yīng)用方式。
- 糾錯(cuò)編碼:除了檢錯(cuò),還能自動(dòng)糾正一定范圍內(nèi)的錯(cuò)誤(如前向糾錯(cuò)FEC),但實(shí)現(xiàn)復(fù)雜,冗余開(kāi)銷大,多用于無(wú)線通信等重傳代價(jià)高的場(chǎng)景。
- 自動(dòng)重傳請(qǐng)求(ARQ):與檢錯(cuò)編碼結(jié)合,通過(guò)確認(rèn)(ACK)和否認(rèn)(NAK)機(jī)制、超時(shí)重傳等,確保出錯(cuò)或丟失的幀能被重傳。常見(jiàn)協(xié)議有停-等ARQ、后退N幀ARQ(GBN)和選擇重傳ARQ(SR)。
3. 流量控制
協(xié)調(diào)發(fā)送方和接收方的工作速度,防止發(fā)送方發(fā)送過(guò)快導(dǎo)致接收方緩沖區(qū)溢出和數(shù)據(jù)丟失。數(shù)據(jù)鏈路層的流量控制通常是點(diǎn)對(duì)點(diǎn)的。主要方法有:
- 停止-等待協(xié)議:發(fā)送方每發(fā)送一幀,必須等待接收方的確認(rèn)幀(ACK)后,才能發(fā)送下一幀。簡(jiǎn)單但信道利用率低。
- 滑動(dòng)窗口協(xié)議:這是最核心、最高效的流量控制(兼差錯(cuò)控制)機(jī)制。發(fā)送方和接收方各自維護(hù)一個(gè)發(fā)送/接收窗口,窗口大小決定了在未收到確認(rèn)前可以連續(xù)發(fā)送的幀數(shù)。它充分利用了鏈路帶寬,GBN和SR都是基于滑動(dòng)窗口的ARQ協(xié)議。
二、典型的數(shù)據(jù)鏈路層協(xié)議
1. 高級(jí)數(shù)據(jù)鏈路控制(HDLC)
由ISO制定的面向比特的同步數(shù)據(jù)鏈路層協(xié)議,是許多其他協(xié)議的基礎(chǔ)。它采用統(tǒng)一的幀格式(標(biāo)志域F、地址域A、控制域C、信息域I、幀校驗(yàn)序列FCS),支持全雙工通信,可靠性高,廣泛應(yīng)用于廣域網(wǎng)設(shè)備間的點(diǎn)對(duì)點(diǎn)鏈路。
2. 點(diǎn)對(duì)點(diǎn)協(xié)議(PPP)
目前應(yīng)用最廣泛的點(diǎn)對(duì)點(diǎn)數(shù)據(jù)鏈路層協(xié)議,常用于家庭撥號(hào)、ADSL、路由器之間的廣域網(wǎng)連接等。特點(diǎn)包括:
- 簡(jiǎn)單:提供不可靠的數(shù)據(jù)報(bào)服務(wù)(檢錯(cuò)但不糾錯(cuò),無(wú)序號(hào)和確認(rèn)機(jī)制)。
- 封裝成幀:使用字節(jié)填充法界定幀。
- 透明性:可傳輸任意網(wǎng)絡(luò)層協(xié)議的數(shù)據(jù)包。
- 多種網(wǎng)絡(luò)層協(xié)議:通過(guò)協(xié)議字段標(biāo)識(shí)上層協(xié)議。
- 差錯(cuò)檢測(cè):使用CRC檢錯(cuò),丟棄錯(cuò)誤幀。
- 連接活性檢測(cè):鏈路控制協(xié)議(LCP)用于建立、配置和測(cè)試數(shù)據(jù)鏈路連接。
- 網(wǎng)絡(luò)層地址協(xié)商:網(wǎng)絡(luò)控制協(xié)議(NCP)用于為兩端分配IP地址等參數(shù)。
3. 以太網(wǎng)協(xié)議(IEEE 802.3)
雖然嚴(yán)格來(lái)說(shuō),以太網(wǎng)涵蓋了物理層和數(shù)據(jù)鏈路層(分為MAC子層和LLC子層),但其在數(shù)據(jù)鏈路層的核心是媒體訪問(wèn)控制(MAC)協(xié)議——帶沖突檢測(cè)的載波監(jiān)聽(tīng)多路訪問(wèn)(CSMA/CD)。該協(xié)議用于解決共享信道(如傳統(tǒng)總線型以太網(wǎng))的多點(diǎn)接入和競(jìng)爭(zhēng)問(wèn)題。其工作原理可概括為“先聽(tīng)后發(fā),邊發(fā)邊聽(tīng),沖突停發(fā),隨機(jī)重發(fā)”。隨著交換式全雙工以太網(wǎng)的普及,CSMA/CD在點(diǎn)對(duì)點(diǎn)鏈路中已基本不再使用,但MAC幀格式(包含源/目的MAC地址、類型/長(zhǎng)度、數(shù)據(jù)、FCS)依然是局域網(wǎng)通信的基礎(chǔ)。
總結(jié)
數(shù)據(jù)鏈路層通過(guò)精密的控制機(jī)制和協(xié)議,將物理層可能出錯(cuò)的原始比特流,轉(zhuǎn)變?yōu)樵诰W(wǎng)絡(luò)層看來(lái)近乎可靠的、以幀為單位的邏輯傳輸鏈路。理解幀同步、差錯(cuò)控制和流量控制(尤其是滑動(dòng)窗口協(xié)議)的原理,以及掌握PPP、以太網(wǎng)MAC等關(guān)鍵協(xié)議,是深入理解計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)流動(dòng)和網(wǎng)絡(luò)設(shè)備工作原理的基石。隨著技術(shù)發(fā)展,雖然一些傳統(tǒng)控制機(jī)制(如共享式以太網(wǎng)的CSMA/CD)的應(yīng)用場(chǎng)景在變化,但其設(shè)計(jì)思想依然深刻影響著現(xiàn)代網(wǎng)絡(luò)技術(shù)。