夏杰
摘要:數(shù)據(jù)鏈路層是相鄰結(jié)點層次,主要功能是通過校驗、確認和反饋重發(fā)等手段,將不 可靠的物理鏈路改造成對網(wǎng)絡(luò)層來說無差錯的數(shù)據(jù)鏈路,為網(wǎng)絡(luò)層在相鄰結(jié)點間無差錯的傳送以幀為單位的數(shù)據(jù)。數(shù)據(jù)鏈路層還要協(xié)調(diào)收發(fā)雙方的數(shù)據(jù)傳輸速率,即進行流量控制,以防止接收方因來不及處理發(fā)送方發(fā)來的高速數(shù)據(jù)而導(dǎo)致緩沖器溢出丟失。
關(guān)鍵詞:鏈路;差錯;流量控制;幀
數(shù)據(jù)鏈路層的主要功能是在相鄰節(jié)點(如計算機與計算機、路由器與 路由器等)之間無差錯的傳輸數(shù)據(jù)幀。首先,連接兩個節(jié)點的信道是采用點對點信道還是廣播信道,如果是廣播信道,還需要使用專用的共享信道協(xié)議來協(xié)調(diào)廣播域內(nèi)不同主機之間的通信。其次,比特流在信道中傳輸時肯定要受到外界噪聲的干擾,這將產(chǎn)生部分比特的錯誤,對于這些錯誤如何發(fā)現(xiàn),發(fā)現(xiàn)錯誤的幀后是自動糾錯還是讓發(fā)送端重傳,物理層提供的是與具體信息無關(guān) 的透明比特流的傳輸,對于一個個由0和1組成的比特流,在數(shù)據(jù)鏈路層必須生成本層的協(xié) 議數(shù)據(jù)單元(PDU)數(shù)據(jù)幀,如何將比特流轉(zhuǎn)換成數(shù)據(jù)幀,需要由數(shù)據(jù)鏈路層的相關(guān)協(xié)議來完成等。本文將主要圍繞這些問題進行淺談,差錯控制和流量控制方法同樣適用于傳輸層(如傳輸層中TCP報文段的流量控制"不管出現(xiàn)在哪一層,這些技術(shù)的原理是相同的。
數(shù)據(jù)鏈路層要完成相鄰節(jié)點之間比特流的傳輸控制,處理出現(xiàn)的傳輸錯誤,在兩個節(jié)點 之間提供以數(shù)據(jù)幀為單位的傳輸服務(wù)。
以兩臺計算機之間的通信為例,當(dāng)兩臺計算機之間要實現(xiàn)通信時,需要在每臺計算機上安裝一塊網(wǎng)卡(也稱為“網(wǎng)絡(luò)適配器”),兩塊網(wǎng)卡之間通過一條“鏈路”連接,這條鏈路即一段物理線路,也稱為“物理鏈路”。為了能夠在這條鏈路上傳輸數(shù)據(jù),還必須有相應(yīng)的通信控制協(xié)議的協(xié)調(diào),通信控制協(xié)議具體由一組硬件和軟件共同來完 成,在局域網(wǎng)中這些功能集中在網(wǎng)卡上。增加了通信控制協(xié)議的鏈路稱為“邏輯鏈路”或“數(shù)據(jù)鏈路”。
幀即數(shù)據(jù)幀,是數(shù)據(jù)鏈路層的協(xié)議數(shù)據(jù)單元,是在節(jié)點中對網(wǎng)絡(luò)層的PDU(分組或包)添加了數(shù)據(jù)鏈路層的通信控制協(xié)議后構(gòu)成的數(shù)據(jù)單元。假 設(shè)“計算機A”與“計算機B”之間通過TCP/IP協(xié)議進行通信,而且數(shù)據(jù)從“計算機A”發(fā)送 到“計算機B”。其中,“計算機A”的數(shù)據(jù)鏈路層在接收到網(wǎng)絡(luò)層傳下來的分組(IP數(shù)據(jù)報) 后,在其前后分別加上頭部和尾部,從而形成數(shù)據(jù)幀。所以,成幀(framing)就是在分組的前后分別加上代表數(shù)據(jù)鏈路層特征的頭部和尾部的過程。幀到達物理層后,根據(jù)所使用的信道特性,將編碼后的比特流發(fā)送到“計算機B”在接收到比特流后,根據(jù)發(fā)送端 成幀時所使用的規(guī)程協(xié)議,再根據(jù)隱含的定界信息從連續(xù)的比特流中提取一個個幀。如果接收到的幀經(jīng)檢測后無差錯,便去掉頭部和尾部校驗碼,將得到的信息交給高層,如果出錯將要求發(fā)送端重傳該出錯的幀。
頭部和尾部是一個幀的重要標(biāo)志(即幀的定界)。一個完整的幀從頭部開始到尾部結(jié)束,物理層只負責(zé)比特流的接收和發(fā)送,而不考慮信息本身的意義,同時物理層也不能解決數(shù)據(jù)傳輸?shù)?。真正有效和可靠的數(shù)據(jù)傳輸,就需要對傳輸操作嚴(yán)格地控制,這就是數(shù)據(jù)鏈路傳輸控制規(guī)程需要解決的,也就是數(shù)據(jù)鏈路層協(xié)議需要解決的 。
數(shù)據(jù)鏈路層的主要功能是通過一些數(shù)據(jù)鏈路層協(xié)議或鏈路規(guī)程"在不太可靠的物理鏈路上實現(xiàn)可靠的數(shù)據(jù)傳輸。數(shù)據(jù)鏈路層的主要功能包括:
1.鏈路管理
鏈路就是數(shù)據(jù)鏈路的建立、維護和釋放操作。當(dāng)網(wǎng)絡(luò)中的兩個節(jié)點間要進行通信時,數(shù)據(jù)的發(fā)送方知道接收方是否準(zhǔn)備接收的狀態(tài)。為此,在傳輸數(shù)據(jù)之前,通信雙方事先交換信息,讓通信雙方做好數(shù)據(jù)發(fā)送和接收的準(zhǔn)備。即在通信之前,必須在發(fā)送方與接收方之間建立一條數(shù)據(jù)鏈路。
保證數(shù)據(jù)傳輸?shù)目煽啃?,在傳輸?shù)據(jù)的過程中也要維護鏈路。同樣,在通信結(jié)束 后,需要釋放數(shù)據(jù)鏈路,以供其他用戶使用。
2.幀同步
在數(shù)據(jù)鏈路層中,數(shù)據(jù)的傳輸單位是幀。數(shù)據(jù)就是一幀一幀地發(fā)送方傳輸?shù)浇邮辗降?。幀同步是指接收方到的比特流中?zhǔn)確地區(qū)分幀的開始與結(jié)束(即成幀),并讓發(fā)送方將在傳輸中出錯的幀重新發(fā)送(重傳"這樣可避免重新傳輸所有的數(shù)據(jù)。
3.流量控制
在數(shù)據(jù)傳輸過程中,為了讓數(shù)據(jù)高效、可靠地傳輸?shù)浇邮辗?,防止出現(xiàn)數(shù)據(jù)傳輸中的過載和阻塞現(xiàn)象,就需要對數(shù)據(jù)流量進行控制。
流量控制功能用發(fā)送方發(fā)送數(shù)據(jù)的速率,保證接收方能夠來得及接收。當(dāng)接收方來不及接收時,就會出現(xiàn)數(shù)據(jù)溢出或信息丟失。概括地講,流量控制就是使發(fā)送方和接收方的數(shù)據(jù)保持一致。
4.差錯控制
由于信道本身和外界的干擾,不可能所有的幀都能夠準(zhǔn)確無誤地傳輸?shù)綄Ψ?,其中有?些幀在傳輸中會丟失或出錯。在計算機網(wǎng)絡(luò)中,對比特流傳輸?shù)牟铄e率有一定的限制,當(dāng)差錯大于限定值時,將會導(dǎo)致接收方收到的數(shù)據(jù)與發(fā)送方實際發(fā)送的數(shù)據(jù)的不一致。差錯現(xiàn)象包括數(shù)據(jù)的丟失,發(fā)出的數(shù)據(jù)與接收到的數(shù)據(jù)不一致。
5.透明傳輸
傳輸包括兩個功能:一是不管所傳數(shù)據(jù)是什么樣的比特組合,都應(yīng)該能夠在鏈路上傳輸;二是當(dāng)所傳數(shù)據(jù)中的比特正好與某一信息完全相同時,必須能夠采取適當(dāng)?shù)姆绞?,使接收方能辨別其是數(shù)據(jù)還是某種控制信息,此功能的典型實現(xiàn)方法0比特填充法,當(dāng)同時實現(xiàn)這兩個功能時,才能夠保證數(shù)據(jù)鏈路層的傳輸是透明的。
6.尋址
尋址是指在數(shù)據(jù)交換中,發(fā)送方能夠知道將每一幀發(fā)送到什么地方。同時,在接收方收 到每一個幀時,也應(yīng)該知道該幀是從什么地方發(fā)來的,而且是不是發(fā)給自己的。
在OSI參考模型中,將整個通信功能劃分為七個層次,每一層的目的是向相鄰的上一層提供服務(wù),并且屏蔽服務(wù)實現(xiàn)的細節(jié)。模型被設(shè)計成多層,像是在與另一臺計算機對等層通信。實際上,通信是在同一計算機的相鄰層之間進行的。每一層都按照一組協(xié)議來實現(xiàn)某些網(wǎng)絡(luò)的功能。
數(shù)據(jù)鏈路層的主要功能是在物理層提供比特流傳輸服務(wù)的基礎(chǔ)上,從網(wǎng)絡(luò)層接收數(shù)據(jù),加上有意義的比特位形成報文頭部和尾部(用來攜帶地址和其他控制信息),負責(zé)在通信的實體之間建立、維持和拆除數(shù)據(jù)鏈路的連接,在兩個相鄰節(jié)點間的線路上,無差錯地傳送以幀為單位的數(shù)據(jù)。因此,每一幀必須帶有同步、地址、差錯控制以及流量控制等控制信息。數(shù)據(jù)鏈路層協(xié)議用于在不太可靠的物理鏈路上實現(xiàn)可靠的數(shù)據(jù)傳輸。最終,通信子網(wǎng)的實現(xiàn)為資源子網(wǎng)的實現(xiàn)奠定了基礎(chǔ)。