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