數據鏈路層
出自 MBA智库百科(https://wiki.mbalib.com/)
目錄 |
數據鏈路層是指OSI參數模型的第二層,它規定了乙太網的幀操作,該感測器在工藝上將兩個特征一致的熱電元反向串聯或接成差動平衡電路方式,因而能以非接觸式檢測出物體放出的紅外線能量變化 ,數據鏈路層故障包括由集線器、路由器、網路測試儀提供的關於幀活動和幀錯誤的統計數據,並將其轉換為電信號輸出。
數據鏈路層是OSI參考模型中的第二層,介乎於物理層和網路層之間。數據鏈路層在物理層提供的服務的基礎上向網路層提供服務,其最基本的服務是將源自網路層來的數據可靠地傳輸到相鄰節點的目標機網路層。為達到這一目的,數據鏈路必須具備一系列相應的功能,主要有:如何將數據組合成數據塊,在數據鏈路層中稱這種數據塊為幀(frame),幀是數據鏈路層的傳送單位;如何控制幀在物理通道上的傳輸,包括如何處理傳輸差錯,如何調節發送速率以使與接收方相匹配;以及在兩個網路實體之間提供數據鏈路通路的建立、維持和釋放的管理。數據鏈路控制協議也稱鏈路通信規程,也就是OSI參考模型中的數據鏈路層協議。鏈路控制協議可分為非同步協議和同步協議兩大類。數據鏈路層的主要協議有:
(1)點對點協議(Point-to-PointProtocol);
(2)乙太網(Ethernet);
(3)高級數據鏈路協議(High-LevelDataLinkProtocol);
(4)幀中繼(FrameRelay);
(5)非同步傳輸模式(AsynchronousTransferMode)。
數據鏈路層包含LLC邏輯鏈路層子層和MAC介質訪問控制子層兩個子層
- 邏輯控制子層
數據鏈路層的LLC子層用於設備間單個連接的錯誤控制,流量控制。與MAC層不同,LLC和物理媒介全無關係。媒介是CSMA/CD的802.3還是802.5的令牌環都沒關係。它在LAN中是獨立的802.2。在LLC之上的網路層可以是無連接、響應的無連接或面向連接的不同業務。LLC用業務接入點SAP訪問上層協議,有了SAP,站點就能在LLC層只用一個介面同時與幾個高層協議玩。一個SAP是簡單的地址或協議ID,內容則為空的LLC幀。LLC協議數據單元(LLCPDU)即LPDU。它包括:DSAP(目的SAP)/SSAP(源SAP);一個定義吞吐量優先順序的控制;和含帶數據的信息域。在接收方,DSAP例如協議ID就是消息要被遞送的,通常DSAP和SSAP是一樣的,因為兩端只有在同種協議間才能通信。例如當SAP為AA,代表SNAP(子層接入協議)。SNAP是個非標準化的,或廠商特定的協議,用於接入協議的業務。例如當SAP為06,則代表IP協議;當SAP為FO,代表NetBIOS(網路基本輸入/輸出協議)。SAP為FF表示廣播的Global協議。
SNAP機制:規範種DSAP都只有一個位元組,那不足夠區分所有協議了。SNAP就來了,而且它支持在LLC幀上傳廠商的協議。這樣傳遞的協議就被放入所謂SNAP幀中了。SNAP”ㄍ酚形遄紙冢前三位元組為廠商號,後兩位元組指示協議。乙太網有兩種版本:IEEE(802.2、802.3);DIX(DEC、Intel、Xerox)又稱V2乙太網。DIX幀在源地址之後是兩位元組的Type,例如IP。IEEE乙太網幀,在源地址後是幀長度指示,在隨後的數據域中才是標準的LPDU封裝,包括DSAP/SSAP/控制域/Data。在這個Data中會有協議ID、以太類型指示,例如以太類型806表示地址解析協議ARP。乙太網卡通過跳針或軟體可以設置需要的乙太網版本,DIX通常都設的,因為大約90%的網路都用此版本。請註意網路所有要通信的站點應設成相同版本。
- 介質訪問層
介質訪問控制是解決當區域網中共用通道的使用產生競爭時,如何分配通道的使用權問題。邏輯鏈路Logical Links是實際電路或邏輯電路上交換通信信息的兩個端系統之間的一種協議驅動通信會話。協議棧定義了兩個系統在某種介質上的通信。在協議棧低層定義可用的多種不同類型的通信協議,如區域網絡(LAN)、城域網(MAN)和象X.25或幀中繼這樣的分組交換網路。邏輯鏈路在物理鏈路(可以是銅線、光纖或其他介質)上的兩個通信系統之間形成。根據OSI協議模型,這些邏輯鏈路只在物理層以上存在。你可以認為邏輯鏈路是存在於網路兩個末斷系統間的線路。面向連接的服務 為了保證可靠的通信,需要建立邏輯線路,但在兩個端系統間要維持會話。面向需要應答連接的服務 分組傳輸並有返回信號的邏輯線路。這種服務產生更大的開銷,但更加可靠。無應答不連接服務 無需應答和預先的傳送。在端系統間沒有會話。
OSI協議棧中的數據鏈路層可進一步細分為較低的介質訪問控制(MAC)子層和較高的邏輯鏈路控制(LLC)子層。當它接收到一個分組後,它從MAC子層向上傳送。如果有多個網路和設備相連,LLC層可能將分組送給另一個網路。例如,在一個NetWare伺服器上,你可能既安裝了乙太網絡適配器又安裝了令牌網路適配器,NetWare自動地在連接到適配器的網路間橋接,這樣原來在乙太網上的分組就可以傳送到令牌網上的目的地了,LLC層就象網路段間的交換或鏈路中繼,它將乙太網的幀重裝成令牌環網的幀。
數據鏈路層的最基本的功能是向該層用戶提供透明的和可靠的數據傳送基本服務。透明性是指該層上傳輸的數據的內容、格式及編碼沒有限制,也沒有必要解釋信息結構的意義;可靠的傳輸使用戶免去對丟失信息、干擾信息及順序不正確等的擔心。在物理層中這些情況都可能發生,在數據鏈路層中必須用糾錯碼來檢錯與糾錯。數據鏈路層是對物理層傳輸原始比特流的功能的加強,將物理層提供的可能出錯的物理連接改造成為邏輯上無差錯的數據鏈路,使之對網路層表現為一無差錯的線路。如果您想用儘量少的詞來記住數據鏈路層,那就是:“幀和介質訪問控制”。
為了使傳輸中發生差錯後只將有錯的有限數據進行重發,數據鏈路層將比特流組合成以幀為單位傳送。每個幀除了要傳送的數據外,還包括校驗碼,以使接收方能發現傳輸中的差錯。幀的組織結構必須設計成使接收方能夠 明確地從物理層收到的比特流中對其進行識別,也即能從比特流中區分出幀的起始與終止,這就是幀同步要解決的問題。由於網路傳輸中很難保證計時的正確和一致,所以不可採用依靠時間間隔關係來確定一幀的起始與終止的方法。
(1)位元組計數法:這是一種以一個特殊字元表示一幀的起始並以一個專門欄位來標明幀內位元組數的幀同步方法。接收方可以通過對該特殊字元的識別從比特流中區分出幀的起始並從專門欄位中獲知該幀中隨後跟隨的數據位元組數,從而可確定出幀的終止位置。面向位元組計數的同步規程的典型代表是DEC公司的數字數據通信報文協議DDCMP(Digital Data Communications Message Protocol)。
控制字元SOH標誌數據幀的起始。實際傳輸中,SOH前還要以兩個或更多個同步字元來確定一幀的起始,有時也允許本幀的頭緊接著上幀的尾,此時兩幀間就不必再加同步字元。 count欄位共有14位,用以指示幀中數據段中數據的位元組數,14位二進位數的最大值為2-1=16383,所以數據最大長度為8×16383=131064。DDCMP協議就是靠這個位元組計數來確定幀的終止位置的。DDCMP幀格式中的ACK、SEG、ADDR及FLAG中的第2位,CRC1、CRC2分別對標題部分和數據部分進行雙重校驗,強調標題部分單獨校驗的原因是,一旦標題部分中的CONUT欄位出錯,即失卻了幀邊界劃分的依據,將造成災難性的後果。由於採用字元計數方法來確定幀的終止邊界不會引起數據及其它信息的混淆,因而不必採用任何措施便可實現數據的透明性(即任何數據均可不受限制地傳輸)。
(2)使用字元填充的首尾定界符法:該法用一些特定的字元來定界一幀的起始與終止,為了不使數據信息位中出現的與特定字元相同的字元被誤判為幀的首尾定界符,可以在這種數據字元前填充一個轉義控制字元(DLE)以示區別,從而達到數據的透明性。但這種方法使用起來比較麻煩,而且所用的特定字元過份依賴於所採用的字元編碼集,兼容性比較差。
(3)使用比特填充的首尾標誌法:該法以一組特定的比特模式(如01111110)來標誌一幀的起始與終止。本章稍後要詳細介紹的HDLC規程即採用該法。為了不使信息位中出現的與特定比特模式相似的比特串被誤判為幀的首尾標誌,可以採用比特填充的方法。比如,採用特定模式01111110,則對信息位中的任何連續出現的五個“1”,發送方自動在其後插入一個“0”,而接收則做該過程的逆操作,即每接收到連續五個“1”,則自動刪去其後所跟的“0”,以此恢復原始信息,實現數據傳輸的透明性。比特填充很容易由硬體來實現,性能優於字元填充方法。
(4)違法編碼法:該法在物理層採用特定的比特編碼方法時採用。例如,一種被稱作曼徹斯特編碼的方法,是將數據比特“1”編碼成“高-低”電平對,而將數據比特“0”編碼成“低-高”電平對。而“高-高”電平對和“低-低”電平對在數據比特中是違法的。可以借用這些違法編碼序列來定界幀的起始與終止。區域網IEEE 802標準中就採用了這種方法。違法編碼法不需要任何填充技術,便能實現數據的透明性,但它只適用於採用冗餘編碼的特殊編碼環境。由於位元組計數法中COUNT欄位的脆弱性以及字元填充法實現上的複雜性和不兼容性,目前較普遍使用的幀同步法是比特填充和違法編碼法。
- 差錯控制
一個實用的通信系統必須具備發現(即檢測)這種差錯的能力,並採取某種措施糾正之,使差錯被控制在所能允許的儘可能小的範圍內,這就是差錯控制過程,也是數據鏈路層的主要功能之一。對差錯編碼(如奇偶校驗碼,檢查和或CRC)的檢查,可以判定一幀在傳輸過程中是否發生了錯誤。一旦發現錯誤,一般可以採用反饋重發的方法來糾正。這就要求接收方收完一幀後,向發送方反饋一個接收是否正確的信息,使發送方所在此作出是不需要重新發送的決定,也即發送方僅當收到接收方已正確接收的反饋信號後才能認為該幀已經正確發送完畢,否則需要重新發送直至正確為止。物理通道的突發雜訊可能完全“淹沒”一幀,即使得整個數據幀或反饋信息幀丟失,這將導致發送方永遠收不到接收方發來的反饋信息,從而使傳輸過程停滯.為了避免出現這種情況,通常引入計時器(Timer)來限定接收方發回反饋信息的時間間隔,當發送方發送一幀的同時也啟動計時器,若在限定時間間隔內未能收到接收方的反饋信息,即計時器超時(Timeout),則可認為傳的幀已出錯或丟失,繼而要重新發送。由於同一幀數據可能被重覆發送多次,就可能引起接收方多次收到同一幀並將其遞交給網路層的危險。為了防止發生這種危險,可以採用對發送的幀編號的方法,即賦予每幀一個序號,從而使接收方能從該序號來區分是新發送來的幀還是已經接收但又重新發送來的幀,以此來確定要不要將接收到的幀遞交給網路層。數據鏈路層通過使用計數器和序號來保證每幀最終都被正確地遞交給目標網路層一次。
- 流量控制
流量控制並不是數據鏈路層所特有的功能,許多高層協議中也提供流時控功能,只不過流量控制的對象不同而已。比如,對於數據鏈路層來說,控制的是相鄰兩節點之間數據鏈路上的流量,而對於運輸層來說,控制的則是從源到最終目的之間端的流量。由於收發雙方各自使用的設備工作速率和緩衝存儲的空間的差異,可能出現發送方發送能力大於接收方接收能力的現象,如若此時不對發送方的發送速率(也即鏈路上的信息流量)作適當的限制,前面來不及接收的幀將被後面不斷發送來的幀“淹沒”,從而造成幀的丟失而出錯。由此可見,流量控制實際上是對發送方數據流量的控制,使其發送率不致超過接收方所能承受的能力。這個過程需要通過某種反饋機制使發送方知道接收方是否能跟上發送方,也即需要有一些規則使得發送方知道在什麼情況下可以接著發送下一幀,而在什麼情況下必須暫停發送,以等待收到某種反饋信息後繼續發送。
- 鏈路管理
鏈路管理功能主要用於面向連接的服務。當鏈路兩端的節點要進行通信前,必須首先確認對方已處於就緒狀態,並交換一些必要的信息以對幀序號初始化,然後才能建立連接,在傳輸過程中則要能維持該連接。如果出現差錯,需要重新初始化,重新自動建立連接。傳輸完畢後則要釋放連接。數據連路層連接的建立維持和釋放就稱作鏈路管理。在多個站點共用同一物理通道的情況下(例如在LAN中)如何在要求通信的站點間分配和管理通道也屬於數據鏈路層管理的範疇。