數(shù)據(jù)鏈路層簡介及其功能
數(shù)據(jù)鏈路層主要有兩個功能 :幀編碼和誤差糾正控制。幀編碼意味著定義一個包含信息頻率、位同步、源地址、目標地址以及其他控制信息的數(shù)據(jù)包。數(shù)據(jù)鏈路層協(xié)議又被分為兩個子層 :邏輯鏈路控制(LLC)協(xié)議和媒體訪問控制(MAC)協(xié)議。
數(shù)據(jù)鏈路層的最基本的功能是向該層用戶提供透明的和可靠的數(shù)據(jù)傳送基本服務。透明性是指該層上傳輸?shù)臄?shù)據(jù)的內容、格式及編碼沒有限制,也沒有必要解釋信息結構的意義;可靠的傳輸使用戶免去對丟失信息、干擾信息及順序不正確等的擔心。在物理層中這些情況都可能發(fā)生,在數(shù)據(jù)鏈路層中必須用糾錯碼來檢錯與糾錯。數(shù)據(jù)鏈路層是對物理層傳輸原始比特流的功能的加強,將物理層提供的可能出錯的物理連接改造成為邏輯上無差錯的數(shù)據(jù)鏈路,使之對網(wǎng)絡層表現(xiàn)為一無差錯的線路。
為了使傳輸中發(fā)生差錯后只將有錯的有限數(shù)據(jù)進行重發(fā),數(shù)據(jù)鏈路層將比特流組合成以太幀為單位傳送。每個幀除了要傳送的數(shù)據(jù)外,還包括校驗碼,以使接收方能發(fā)現(xiàn)傳輸中的差錯。幀的組織結構必須設計成使接收方能夠 明確地從物理層收到的比特流中對其進行識別,也即能從比特流中區(qū)分出幀的起始與終止,這就是幀同步要解決的問題。(1)字節(jié)計數(shù)法:這是一種以一個特殊字符表示一幀的起始并以一個專門字段來標明幀內字節(jié)數(shù)的幀同步方法。接收方可以通過對該特殊字符的識別從比特流中區(qū)分出幀的起始并從專門字段中獲知該幀中隨后跟隨的數(shù)據(jù)字節(jié)數(shù),從而可確定出幀的終止位置。面向字節(jié)計數(shù)的同步規(guī)程的典型代表是DEC公司的數(shù)字數(shù)據(jù)通信報文協(xié)議DDCMP(Digital Data Communications Message Protocol)。控制字符SOH標志數(shù)據(jù)幀的起始。實際傳輸中,SOH前還要以兩個或更多個同步字符來確定一幀的起始,有時也允許本幀的頭緊接著上幀的尾,此時兩幀間就不必再加同步字符。count字段共有14位,用以指示幀中數(shù)據(jù)段中數(shù)據(jù)的字節(jié)數(shù),14位二進制數(shù)的最大值為16383,所以數(shù)據(jù)最大長度為131064。DDCMP協(xié)議就是靠這個字節(jié)計數(shù)來確定幀的終止位置的。DDCMP幀格式中的ACK、SEG、ADDR及FLAG中的第2位CRC1、CRC2分別對標題部分和數(shù)據(jù)部分進行雙重校驗,強調標題部分單獨校驗的原因是,一旦標題部分中的CONUT字段出錯,即失卻了幀邊界劃分的依據(jù)。由于采用字符計數(shù)方法來確定幀的終止邊界不會引起數(shù)據(jù)及其它信息的混淆,因而不必采用任何措施便可實現(xiàn)數(shù)據(jù)的透明性(即任何數(shù)據(jù)均可不受限制地傳輸)。(2)使用字符填充的首尾定界符法:該法用一些特定的字符來定界一幀的起始與終止,為了不使數(shù)據(jù)信息位中出現(xiàn)的與特定字符相同的字符被誤判為幀的首尾定界符,可以在這種數(shù)據(jù)字符前填充一個轉義控制字符(DLE)以示區(qū)別,從而達到數(shù)據(jù)的透明性。但這種方法使用起來比較麻煩,而且所用的特定字符過份依賴于所采用的字符編碼集,兼容性比較差。(3)使用比特填充的首尾標志法:該法以一組特定的比特模式來標志一幀的起始與終止。(4)違法編碼法:該法在物理層采用特定的比特編碼方法時采用。例如,一種被稱作曼徹斯特編碼的方法,是將數(shù)據(jù)比特“1”編碼成“高-低”電平對,而將數(shù)據(jù)比特“0”編碼成“低-高”電平對。而“高-高”電平對和“低-低”電平對在數(shù)據(jù)比特中是違法的。可以借用這些違法編碼序列來定界幀的起始與終止。局域網(wǎng)IEEE 802標準中就采用了這種方法。違法編碼法不需要任何填充技術,便能實現(xiàn)數(shù)據(jù)的透明性,但它只適用于采用冗余編碼的特殊編碼環(huán)境。由于字節(jié)計數(shù)法中COUNT字段的脆弱性以及字符填充法實現(xiàn)上的復雜性和不兼容性,較普遍使用的幀同步法是比特填充和違法編碼法。