什么是OSI模型數據鏈路層
什么是OSI模型數據鏈路層
數據鏈路層最基本的服務是將源機網絡層來的數據可靠地傳輸到相鄰節點的目標機網絡層。為達到這一目的,數據鏈路層必須具備一系列相應的功能,它們主要有:如何將數據組合成數據塊,在數據鏈路層中將這種數據塊稱為幀(Fram),幀是數據鏈路層的傳送單位;如何控制幀在物理信道上的傳輸,包括如何處理傳輸差錯,如何調節發送速率以使之與接收方相匹配;在兩個網絡實體之間提供數據鏈路通路的建立、維持和釋放管理。
1.幀同步功能
為了使傳輸中發生差錯后只將出錯的有限數據進行重發,數據鏈路層將比特流組織成以幀為單位傳送。幀的組織結構必須設計成使接收方能夠明確地從物理層收到的比特流中對其進行識別,也即能從比特流中區分出幀的起始與終止,這就是幀同步要解決的問題。由于網絡傳輸中很難保證計時的正確和一致,所以不能采用依靠時間間隔關系來確定一幀的起始與終止的方法。下面介紹幾種常用的幀同步法。
(1)字節計數法。這種幀同步方法以一個特殊字符表征一幀的起始,并以一個專門字段來標明幀內的字節數。接收方可以通過對該特殊字符的識別從比特流中區分出幀的起始,并從專門字段中獲知該幀中隨后跟隨的數據字節數,從而可確定出幀的終止位置。
面向字節計數的同步規程的典型實例是DEC公司的數字數據通信報文協議DDcmp(Digital Data Communications Message Protocol)o DDcmP采用的幀格式如下:
格式中控制字符SOH標志數據幀的起始。 Count字段共有14位,用以指示幀中數據段中數據的字節數,數據段最大長度為8×(214-1)=131064位,長度必須為字節(EP 8位)的整倍數,DDCMP協議就是靠這個字節計數來確定幀的終止位置的。 DDCMP幀格式中的Ack、seg、addr及Flag中的第2位,它們的功能分別類似于本節稍后要詳細介紹的hdlC中的N(R)、N(S)、Addr字段及P/F位。 CRC1、CRC2分別對標題部分和數據部分進行雙重校驗,強調標題部分單獨校驗的原因是,一旦標題部分中的Count字段出錯,即失卻了幀邊界劃分的依據,將造成災難性的后果。
由于采用字符計數方法來確定幀的終止邊界不會引起數據及其它信息的混淆,因而不必采用任何措施便可實現數據的透明性,即任何數據均可不受限制地傳輸。
(2)使用字符填充的首尾定界符法。該法用一些特定的字符來定界一幀的起始與終止,本節稍后要介紹的部C規程便是典型例子。為了不使數據信息位中出現的與特定字符相同的字符被誤判為幀的首尾定界符,可以在這種數據字符前填充一個轉義控制字符(DLE)以示區別,從而達到數據的透明性。但這種方法使用起來比較麻煩,而且所用的特定字符依賴于所采用的字符編碼集,兼容性比較差。
(3)使用比特填充的首尾標志法。該法以一組特定的比特模式(如01111110)來標志一幀的起始與終止。本節稍后要詳細介紹的E由LC規程即采用該法。為了不使信息位中出現的與該特定比特模式相似的比特串被誤判為幀的首尾標志,可以采用比特填充的方法。比如,采用特定模式01111110,則對信息位中的任何連續出現的5個"1",發送方自動在其后插入一個"0",而接收方則做該過程的逆操作,即每接收到連續5個"1",則自動刪去其后所跟的"0",以此恢復原始信息,實現數據傳輸的透明性。比特填充很容易由硬件來實現,性能優于字符填充方法。
(4)違法編碼法。該法在物理層采用特定的比特編碼方法時采用。例如,曼徹斯特編碼方法,是將數據比特"1"編碼成"高一低"電平對,將數據比特"0"編碼成"低一高"電平對。而"高一高"電平對和"低低"電平對在數據比特中是違法的。可以借用這些違法編碼序列來定界幀的起始與終止。局域IEEE802標準中就采用了這種方法。違法編碼法不需要任何填充技術,便能實現數據的透明性,但它只適用于采用冗余編碼的特殊編碼環境。
由于字節計數法中Count字段的脆弱性(其值若有差錯將導致災難性后果)以及字符填充法實現上的復雜性和不兼容性,目前較普遍使用的幀同步法是比特填充法和違法編碼法。
2.差錯控制功能
通信系統必須具備發現(即檢測)差錯的能力,并采取措施糾正之,使差錯控制在所能:允許的盡可能小的范圍內,這就是差錯控制過程,也是數據鏈路層的主要功能之一。
接收方通過對差錯編碼(如奇偶校驗碼或αC碼)的檢查,可以判定一幀在傳輸過程中是否發生了差錯。一旦發現差錯,一般可以采用反饋重發的方法來糾正。這就要求接收方收完一幀后,向發送方反饋一個接收是否正確的信息,使發送方據此做出是否需要重新發送的決定。發送方僅當收到接收方已正確接收的反饋信號后才能認為該幀已經正確發送完畢,否則需重發直至正確為止。
物理信道的突發噪聲可能完全"淹沒"一幀,即使得整個數據幀或反饋信息幀丟失,這將導致發送方永遠收不到接收方發來的反饋信息,從而使傳輸過程停滯。為了避免出現這種情況,通常引人計時器(Timer)來限定接收方發回反饋信息的時間間隔,當發送方發送一幀的同時也啟動計時器,若在限定時間間隔內未能收到接收方的反饋信息,即計時器超時(Timeout,則可認為傳出的幀已出錯或丟失,就要重新發送。
由于同一幀數據可能被重復發送多次,就可能引起接收方多次收到同一幀并將其遞交給網絡層的危險。為了防止發生這種危險,可以采用對發送的幀編號的方法,即賦予每幀一個序號,從而使接收方能從該序號來區分是新發送來的幀還是已經接收但又重新發送來的幀,以此來確定要不要將接收到的幀遞交給網絡層。數據鏈路層通過使用計數器和序號來保證每幀最終都能被正確地遞交給目標網絡層一次。
3.流量控制功能
首先需要說明一下,流量控制并不是數據鏈路層特有的功能,許多高層協議中也提供流量控制功能,只不過流量控制的對象不同而已。比如,對于數據鏈路層來說,控制的是相鄰兩節點之間數據鏈路上的流量,而對于運輸層來說,控制的則是從源到最終目的之間端對端的流量。
由于收發雙方各自使用的設備工作速率和緩沖存儲空間的差異,可能出現發送方發送能力大于接收方接收能力的現象,若此時不對發送方的發送速率(也即鏈路上的信息流量)做適當的限制,前面來不及接收的幀將被后面不斷發送來的幀"淹沒",從而造成幀的丟失而出錯。由此可見,流量控制實際上是對發送方數據流量的控制,使其發送速率不致超過接收方所能承受的能力。這個過程需要通過某種反饋機制使發送方知道接收方是否能跟得上發送方的速率。也即需要有一些規則使得發送方知道在什么情況下可以接著發送下一幀,而在什么情況下必須暫停發送,以等待收到某種反饋信息后再繼續發送。本節稍后將要介紹的XON/XOFF方案和窗口機制就是兩種常用的流量控制方法。
4.鏈路管理功能
鏈路管理功能主要用于面向連接的服務。在鏈路兩端的節點要進行通信前,必須首先確認對方已處于就緒狀態,并交換一些必要的信息以對幀序號初始化,然后才能建立連接。在傳輸過程中則要維持該連接。如果出現差錯,需要重新初始化,重新自動建立連接。傳輸完畢后則要釋放連接。數據鏈路層連接的建立,維持和釋放就稱做鏈路管理。在多個站點共享同一物理信道的情況下(例如在局域網中),如何在要求通信的站點間分配和管理信道也屬于數據鏈路層鏈路管理的范疇。
非常好我支持^.^
(4) 100%
不好我反對
(0) 0%
相關閱讀:
- [電子說] 思爾芯出席Arm Tech Symposia,創新解決方案助力Arm架構前端驗證 2023-10-18
- [電子說] SIMATIC S7-1500 PLC的通信及其應用—OSI參考模型 2023-10-17
- [電子說] 構建企業可持續發展生態,中易騰達與Atmosic達成戰略合作 2023-10-16
- [電子說] serialX的posix接口測試 2023-10-13
- [電子說] 面試官:你背誦一下,OSI七層網絡模型 2023-10-09
- [電子說] DoIP系統物理層和數據鏈路層 2023-10-07
- [接口/總線/驅動] POSIX接口標準示例指南筆記 2023-09-27
- [電子說] 誠邀報名|GOSIM Workshop重磅來襲,60+熱點議題點燃開源新時代 2023-09-19
( 發表人:admin )