數據鏈路層
數據鏈路層是什么?
數據鏈路層工作在七層網絡模型的第二層,它定義了在單個鏈路上如何傳輸數據。
數據鏈路層:是為了提供功能上和規程上的方法,以便建立、維護和釋放網絡實體間的數據鏈路 。
物理鏈路(物理線路):是由傳輸介質與設備組成的。原始的物理傳輸線路是指沒有采用高層差錯控制的基本的物理傳輸介質與設備。
數據鏈路(邏輯線路):在一條物理線路之上,通過一些規程或協議來控制這些數據的傳輸,以保證被傳輸數據的正確性。實現這些規程或協議的硬件和軟件加到物理線路,這樣就構成了數據鏈路。從數據發送點到數據接收點所經過的傳輸途徑。
當采用復用技術時,一條物理鏈路上可以有多條數據鏈路。
為什么需要數據鏈路層?
在原始的物理線路上傳輸數據信號總是不盡人意的會出現各種錯誤。
設計數據鏈路層的主要目的就是在原始的、有差錯的物理傳輸線路的基礎上,采取差錯檢測、差錯控制與流量控制等方法,將有差錯的物理線路改進成邏輯上無差錯的數據鏈路,向網絡層提供高質量的服務。
該層用戶提供透明的和可靠的數據傳送基本服務。透明性是指該層上傳輸的數據的內容、格式及編碼沒有限制,也沒有必要解釋信息結構的意義;可靠的傳輸使用戶免去對丟失信息、干擾信息及順序不正確等的擔心。在物理層中這些情況都可能發生,在數據鏈路層中必須用糾錯碼來檢錯與糾錯。數據鏈路層是對物理層傳輸原始比特流的功能的加強,將物理層提供的可能出錯的物理連接改造成為邏輯上無差錯的數據鏈路,使之對網絡層表現為一無差錯的線路。
幀同步
為了使傳輸中發生差錯后只將有錯的有限數據進行重發,數據鏈路層將比特流組合成以幀為單位傳送。每個幀除了要傳送的數據外,還包括校驗碼,以使接收方能發現傳輸中的差錯。幀的組織結構必須設計成使接收方能夠 明確地從物理層收到的比特流中對其進行識別,也即能從比特流中區分出幀的起始與終止,這就是幀同步要解決的問題。由于網絡傳輸中很難保證計時的正確和一致,所以不可采用依靠時間間隔關系來確定一幀的起始與終止的方法。
(1)字節計數法:
(2)使用字符填充的首尾定界符法:
(3)使用比特填充的首尾標志法:
(4)違法編碼法:
差錯控制
一個實用的通信系統必須具備發現(即檢測)這種差錯的能力,并采取某種措施糾正之,使差錯被控制在所能允許的盡可能小的范圍內,這就是差錯控制過程,也是數據鏈路層的主要功能之一。對差錯編碼(如奇偶校驗碼,檢查和或CRC)的檢查,可以判定一幀在傳輸過程中是否發生了錯誤。一旦發現錯誤,一般可以采用反饋重發的方法來糾正。這就要求接收方收完一幀后,向發送方反饋一個接收是否正確的信息,使發送方所在此作出是不需要重新發送的決定,也即發送方僅當收到接收方已正確接收的反饋信號后才能認為該幀已經正確發送完畢,否則需要重新發送直至正確為止。物理信道的突發噪聲可能完全“淹沒”一幀,即使得整個數據幀或反饋信息幀丟失,這將導致發送方永遠收不到接收方發來的反饋信息,從而使傳輸過程停滯.為了避免出現這種情況,通常引入計時器來限定接收方發回反饋信息的時間間隔,當發送方發送一幀的同時也啟動計時器,若在限定時間間隔內未能收到接收方的反饋信息,即計時器超時,則可認為傳的幀已出錯或丟失,繼而要重新發送。由于同一幀數據可能被重復發送多次,就可能引起接收方多次收到同一幀并將其遞交給網絡層的危險。為了防止發生這種危險,可以采用對發送的幀編號的方法,即賦予每幀一個序號,從而使接收方能從該序號來區分是新發送來的幀還是已經接收但又重新發送來的幀,以此來確定要不要將接收到的幀遞交給網絡層。數據鏈路層通過使用計數器和序號來保證每幀最終都被正確地遞交給目標網絡層一次。
流量控制
流量控制并不是數據鏈路層所特有的功能,許多高層協議中也提供流時控功能,只不過流量控制的對象不同而已。對于數據鏈路層來說,控制的是相鄰兩節點之間數據鏈路上的流量,而對于運輸層來說,控制的則是從源到最終目的之間端的流量。由于收發雙方各自使用的設備工作速率和緩沖存儲的空間的差異,可能出現發送方發送能力大于接收方接收能力的現象,如若此時不對發送方的發送速率(也即鏈路上的信息流量)作適當的限制,前面來不及接收的幀將被后面不斷發送來的幀“淹沒”,從而造成幀的丟失而出錯。由此可見,流量控制實際上是對發送方數據流量的控制,使其發送率不致超過接收方所能承受的能力。這個過程需要通過某種反饋機制使發送方知道接收方是否能跟上發送方,也即需要有一些規則使得發送方知道在什么情況下可以接著發送下一幀,而在什么情況下必須暫停發送,以等待收到某種反饋信息后繼續發送。
鏈路管理
鏈路管理功能主要用于面向連接的服務。當鏈路兩端的節點要進行通信前,必須首先確認對方已處于就緒狀態,并交換一些必要的信息以對幀序號初始化,然后才能建立連接,在傳輸過程中則要能維持該連接。如果出現差錯,需要重新初始化,重新自動建立連接。傳輸完畢后則要釋放連接。數據連路層連接的建立維持和釋放就稱作鏈路管理。在多個站點共享同一物理信道的情況下(例如在LAN中)如何在要求通信的站點間分配和管理信道也屬于數據鏈路層管理的范疇。
差錯控制
用以使發送方確定接收方是否正確收到了由它發送的數據信息的方法稱為反饋差錯控制。通常采用反饋檢測和自動重發請求兩種基本方法實現。
反饋檢測法
反饋檢測法也稱回送校驗或“回聲”法,主要用于面向字符的異步傳輸中,如終端與遠程計算機間的通信,這是一種無須使用任何特殊代碼的錯誤檢測法。雙方進行數據傳輸時,接收方將接收到的數據(可以是一個字符,也可以是一幀)重新發回發送方,由發送方檢查是否與原始數據完全相符。若不相符,則發送方發送一個控制字符(如DEL)通知接收方刪去出錯的數據,并重新發送該數據;若相符,則發送下一個數據。反饋檢測法原理簡單、實現容易,也有較高的可靠性,但是,每個數據均被傳輸兩次,信道利用率很低。一般,在面向字符的異步傳輸中,信道效率并不是主要的,所以這種差錯控制方法仍被廣泛使用。
自動重發法
(ARQ法):實用的差錯控制方法,應該既要傳輸可靠性高,又要信道利用率高。為此讓發送方將要發送的數據幀附加一定的冗余檢錯碼一并發送,接收方則根據檢錯碼對數據幀進行錯誤檢測,若發現錯誤,就返回請求重發的答,發送方收到請求重發的應答后,便重新傳送該數據幀。這種差錯控制方法就稱為自動請求法,簡稱ARQ法。ARQ法僅返回很少的控制信息,便可有效地確認所發數據幀是否被正確接收。
流量控制
流量控制涉及鏈路上字符或幀的傳輸速率的控制,以使接收方在接收前有足夠的緩沖存儲空間來接受每一個字符或幀。例如,在面向字符的終端--計算機鏈路中,若遠程計算機為許多臺終端服務,它就有可能因不能在高峰時按預定速率傳輸全部字符而暫時過載。同樣,在面向幀的自動重發請求系統中,當待確認幀數量增加時,有可能超出緩沖器存儲容量,也造成過載。
原創文章,作者:TQT,如若轉載,請注明出處:http://www.www58058.com/75816