登錄

數(shù)據(jù)鏈路層

百科 > 計算機(jī) > 數(shù)據(jù)鏈路層

1.什么是數(shù)據(jù)鏈路層

  數(shù)據(jù)鏈路層是指OSI參數(shù)模型的第二層,它規(guī)定以太網(wǎng)的幀操作,該傳感器在工藝上將兩個特征一致的熱電元反向串聯(lián)或接成差動平衡電路方式,因而能以非接觸式檢測出物體放出的紅外線能量變化 ,數(shù)據(jù)鏈路層故障包括由集線器、路由器、網(wǎng)絡(luò)測試儀提供的關(guān)于幀活動和幀錯誤的統(tǒng)計數(shù)據(jù),并將其轉(zhuǎn)換為電信號輸出。

2.數(shù)據(jù)鏈路層的內(nèi)容

  數(shù)據(jù)鏈路層是OSI參考模型中的第二層,介乎于物理層和網(wǎng)絡(luò)層之間。數(shù)據(jù)鏈路層在物理層提供的服務(wù)的基礎(chǔ)上向網(wǎng)絡(luò)層提供服務(wù),其最基本的服務(wù)是將源自網(wǎng)絡(luò)層來的數(shù)據(jù)可靠地傳輸?shù)较噜徆?jié)點的目標(biāo)機(jī)網(wǎng)絡(luò)層。為達(dá)到這一目的,數(shù)據(jù)鏈路必須具備一系列相應(yīng)的功能,主要有:如何將數(shù)據(jù)組合成數(shù)據(jù)塊,在數(shù)據(jù)鏈路層中稱這種數(shù)據(jù)塊為幀(frame),幀是數(shù)據(jù)鏈路層的傳送單位;如何控制幀在物理信道上的傳輸,包括如何處理傳輸差錯,如何調(diào)節(jié)發(fā)送速率以使與接收方相匹配;以及在兩個網(wǎng)絡(luò)實體之間提供數(shù)據(jù)鏈路通路的建立、維持和釋放的管理。數(shù)據(jù)鏈路控制協(xié)議也稱鏈路通信規(guī)程,也就是OSI參考模型中的數(shù)據(jù)鏈路層協(xié)議。鏈路控制協(xié)議可分為異步協(xié)議和同步協(xié)議兩大類。數(shù)據(jù)鏈路層的主要協(xié)議有:

  (1)點對點協(xié)議(Point-to-PointProtocol);

  (2)以太網(wǎng)(Ethernet);

  (3)高級數(shù)據(jù)鏈路協(xié)議(High-LevelDataLinkProtocol);

  (4)幀中繼(FrameRelay);

  (5)異步傳輸模式(AsynchronousTransferMode)。

3.數(shù)據(jù)鏈路層的分類

  數(shù)據(jù)鏈路層包含LLC邏輯鏈路層子層和MAC介質(zhì)訪問控制子層兩個子層

  • 邏輯控制子層

  數(shù)據(jù)鏈路層的LLC子層用于設(shè)備間單個連接的錯誤控制,流量控制。與MAC層不同,LLC和物理媒介全無關(guān)系。媒介是CSMA/CD的802.3還是802.5的令牌環(huán)都沒關(guān)系。它在LAN中是獨立的802.2。在LLC之上的網(wǎng)絡(luò)層可以是無連接、響應(yīng)的無連接或面向連接的不同業(yè)務(wù)。LLC用業(yè)務(wù)接入點SAP訪問上層協(xié)議,有了SAP,站點就能在LLC層只用一個接口同時與幾個高層協(xié)議玩。一個SAP是簡單的地址或協(xié)議ID,內(nèi)容則為空的LLC幀。LLC協(xié)議數(shù)據(jù)單元(LLCPDU)即LPDU。它包括:DSAP(目的SAP)/SSAP(源SAP);一個定義吞吐量優(yōu)先級的控制;和含帶數(shù)據(jù)的信息域。在接收方,DSAP例如協(xié)議ID就是消息要被遞送的,通常DSAP和SSAP是一樣的,因為兩端只有在同種協(xié)議間才能通信。例如當(dāng)SAP為AA,代表SNAP(子層接入?yún)f(xié)議)。SNAP是個非標(biāo)準(zhǔn)化的,或廠商特定的協(xié)議,用于接入?yún)f(xié)議的業(yè)務(wù)。例如當(dāng)SAP為06,則代表IP協(xié)議;當(dāng)SAP為FO,代表NetBIOS(網(wǎng)絡(luò)基本輸入/輸出協(xié)議)。SAP為FF表示廣播的Global協(xié)議。

  SNAP機(jī)制:規(guī)范種DSAP都只有一個字節(jié),那不足夠區(qū)分所有協(xié)議了。SNAP就來了,而且它支持在LLC幀上傳廠商的協(xié)議。這樣傳遞的協(xié)議就被放入所謂SNAP幀中了。SNAP”ㄍ酚形遄紙冢前三字節(jié)為廠商號,后兩字節(jié)指示協(xié)議。以太網(wǎng)有兩種版本:IEEE(802.2、802.3);DIX(DEC、Intel、Xerox)又稱V2以太網(wǎng)。DIX幀在源地址之后是兩字節(jié)的Type,例如IP。IEEE以太網(wǎng)幀,在源地址后是幀長度指示,在隨后的數(shù)據(jù)域中才是標(biāo)準(zhǔn)的LPDU封裝,包括DSAP/SSAP/控制域/Data。在這個Data中會有協(xié)議ID、以太類型指示,例如以太類型806表示地址解析協(xié)議ARP。以太網(wǎng)卡通過跳針或軟件可以設(shè)置需要的以太網(wǎng)版本,DIX通常都設(shè)的,因為大約90%的網(wǎng)絡(luò)都用此版本。請注意網(wǎng)絡(luò)所有要通信的站點應(yīng)設(shè)成相同版本。

  • 介質(zhì)訪問層

  介質(zhì)訪問控制是解決當(dāng)局域網(wǎng)中共用信道的使用產(chǎn)生競爭時,如何分配信道的使用權(quán)問題。邏輯鏈路Logical Links是實際電路或邏輯電路上交換通信信息的兩個端系統(tǒng)之間的一種協(xié)議驅(qū)動通信會話。協(xié)議棧定義了兩個系統(tǒng)在某種介質(zhì)上的通信。在協(xié)議棧低層定義可用的多種不同類型的通信協(xié)議,如局域網(wǎng)絡(luò)(LAN)、城域網(wǎng)(MAN)和象X.25或幀中繼這樣的分組交換網(wǎng)絡(luò)。邏輯鏈路在物理鏈路(可以是銅線、光纖或其他介質(zhì))上的兩個通信系統(tǒng)之間形成。根據(jù)OSI協(xié)議模型,這些邏輯鏈路只在物理層以上存在。你可以認(rèn)為邏輯鏈路是存在于網(wǎng)絡(luò)兩個末斷系統(tǒng)間的線路。面向連接服務(wù) 為了保證可靠的通信,需要建立邏輯線路,但在兩個端系統(tǒng)間要維持會話。面向需要應(yīng)答連接的服務(wù) 分組傳輸并有返回信號的邏輯線路。這種服務(wù)產(chǎn)生更大的開銷,但更加可靠。無應(yīng)答不連接服務(wù) 無需應(yīng)答和預(yù)先的傳送。在端系統(tǒng)間沒有會話。

  OSI協(xié)議棧中的數(shù)據(jù)鏈路層可進(jìn)一步細(xì)分為較低的介質(zhì)訪問控制(MAC)子層和較高的邏輯鏈路控制(LLC)子層。當(dāng)它接收到一個分組后,它從MAC子層向上傳送。如果有多個網(wǎng)絡(luò)和設(shè)備相連,LLC層可能將分組送給另一個網(wǎng)絡(luò)。例如,在一個NetWare服務(wù)器上,你可能既安裝了以太網(wǎng)絡(luò)適配器又安裝了令牌網(wǎng)絡(luò)適配器,NetWare自動地在連接到適配器的網(wǎng)絡(luò)間橋接,這樣原來在以太網(wǎng)上的分組就可以傳送到令牌網(wǎng)上的目的地了,LLC層就象網(wǎng)絡(luò)段間的交換或鏈路中繼,它將以太網(wǎng)的幀重裝成令牌環(huán)網(wǎng)的幀。

4.數(shù)據(jù)鏈路層的功能

  數(shù)據(jù)鏈路層的最基本的功能是向該層用戶提供透明的和可靠的數(shù)據(jù)傳送基本服務(wù)。透明性是指該層上傳輸?shù)?a href="/wiki/%E6%95%B0%E6%8D%AE" title="數(shù)據(jù)">數(shù)據(jù)的內(nèi)容、格式及編碼沒有限制,也沒有必要解釋信息結(jié)構(gòu)的意義;可靠的傳輸使用戶免去對丟失信息、干擾信息及順序不正確等的擔(dān)心。在物理層中這些情況都可能發(fā)生,在數(shù)據(jù)鏈路層中必須用糾錯碼來檢錯與糾錯。數(shù)據(jù)鏈路層是對物理層傳輸原始比特流的功能的加強(qiáng),將物理層提供的可能出錯的物理連接改造成為邏輯上無差錯的數(shù)據(jù)鏈路,使之對網(wǎng)絡(luò)層表現(xiàn)為一無差錯的線路。如果您想用盡量少的詞來記住數(shù)據(jù)鏈路層,那就是:“幀和介質(zhì)訪問控制”。

  為了使傳輸中發(fā)生差錯后只將有錯的有限數(shù)據(jù)進(jìn)行重發(fā),數(shù)據(jù)鏈路層將比特流組合成以幀為單位傳送。每個幀除了要傳送的數(shù)據(jù)外,還包括校驗碼,以使接收方能發(fā)現(xiàn)傳輸中的差錯。幀的組織結(jié)構(gòu)必須設(shè)計成使接收方能夠 明確地從物理層收到的比特流中對其進(jìn)行識別,也即能從比特流中區(qū)分出幀的起始與終止,這就是幀同步要解決的問題。由于網(wǎng)絡(luò)傳輸中很難保證計時的正確和一致,所以不可采用依靠時間間隔關(guān)系來確定一幀的起始與終止的方法。

 ?。?)字節(jié)計數(shù)法:這是一種以一個特殊字符表示一幀的起始并以一個專門字段來標(biāo)明幀內(nèi)字節(jié)數(shù)的幀同步方法。接收方可以通過對該特殊字符的識別從比特流中區(qū)分出幀的起始并從專門字段中獲知該幀中隨后跟隨的數(shù)據(jù)字節(jié)數(shù),從而可確定出幀的終止位置。面向字節(jié)計數(shù)的同步規(guī)程的典型代表是DEC公司的數(shù)字?jǐn)?shù)據(jù)通信報文協(xié)議DDCMP(Digital Data Communications Message Protocol)。

  控制字符SOH標(biāo)志數(shù)據(jù)幀的起始。實際傳輸中,SOH前還要以兩個或更多個同步字符來確定一幀的起始,有時也允許本幀的頭緊接著上幀的尾,此時兩幀間就不必再加同步字符。 count字段共有14位,用以指示幀中數(shù)據(jù)段中數(shù)據(jù)的字節(jié)數(shù),14位二進(jìn)制數(shù)的最大值為2-1=16383,所以數(shù)據(jù)最大長度為8×16383=131064。DDCMP協(xié)議就是靠這個字節(jié)計數(shù)來確定幀的終止位置的。DDCMP幀格式中的ACK、SEG、ADDR及FLAG中的第2位,CRC1、CRC2分別對標(biāo)題部分和數(shù)據(jù)部分進(jìn)行雙重校驗,強(qiáng)調(diào)標(biāo)題部分單獨校驗的原因是,一旦標(biāo)題部分中的CONUT字段出錯,即失卻了幀邊界劃分的依據(jù),將造成災(zāi)難性的后果。由于采用字符計數(shù)方法來確定幀的終止邊界不會引起數(shù)據(jù)及其它信息的混淆,因而不必采用任何措施便可實現(xiàn)數(shù)據(jù)的透明性(即任何數(shù)據(jù)均可不受限制地傳輸)。

 ?。?)使用字符填充的首尾定界符法:該法用一些特定的字符來定界一幀的起始與終止,為了不使數(shù)據(jù)信息位中出現(xiàn)的與特定字符相同的字符被誤判為幀的首尾定界符,可以在這種數(shù)據(jù)字符前填充一個轉(zhuǎn)義控制字符(DLE)以示區(qū)別,從而達(dá)到數(shù)據(jù)的透明性。但這種方法使用起來比較麻煩,而且所用的特定字符過份依賴于所采用的字符編碼集,兼容性比較差。

 ?。?)使用比特填充的首尾標(biāo)志法:該法以一組特定的比特模式(如01111110)來標(biāo)志一幀的起始與終止。本章稍后要詳細(xì)介紹的HDLC規(guī)程即采用該法。為了不使信息位中出現(xiàn)的與特定比特模式相似的比特串被誤判為幀的首尾標(biāo)志,可以采用比特填充的方法。比如,采用特定模式01111110,則對信息位中的任何連續(xù)出現(xiàn)的五個“1”,發(fā)送方自動在其后插入一個“0”,而接收則做該過程的逆操作,即每接收到連續(xù)五個“1”,則自動刪去其后所跟的“0”,以此恢復(fù)原始信息,實現(xiàn)數(shù)據(jù)傳輸的透明性。比特填充很容易由硬件來實現(xiàn),性能優(yōu)于字符填充方法。

 ?。?)違法編碼法:該法在物理層采用特定的比特編碼方法時采用。例如,一種被稱作曼徹斯特編碼的方法,是將數(shù)據(jù)比特“1”編碼成“高-低”電平對,而將數(shù)據(jù)比特“0”編碼成“低-高”電平對。而“高-高”電平對和“低-低”電平對在數(shù)據(jù)比特中是違法的。可以借用這些違法編碼序列來定界幀的起始與終止。局域網(wǎng)IEEE 802標(biāo)準(zhǔn)中就采用了這種方法。違法編碼法不需要任何填充技術(shù),便能實現(xiàn)數(shù)據(jù)的透明性,但它只適用于采用冗余編碼的特殊編碼環(huán)境。由于字節(jié)計數(shù)法中COUNT字段的脆弱性以及字符填充法實現(xiàn)上的復(fù)雜性和不兼容性,目前較普遍使用的幀同步法是比特填充和違法編碼法。

  • 差錯控制

  一個實用的通信系統(tǒng)必須具備發(fā)現(xiàn)(即檢測)這種差錯的能力,并采取某種措施糾正之,使差錯被控制在所能允許的盡可能小的范圍內(nèi),這就是差錯控制過程,也是數(shù)據(jù)鏈路層的主要功能之一。對差錯編碼(如奇偶校驗碼,檢查和或CRC)的檢查,可以判定一幀在傳輸過程中是否發(fā)生了錯誤。一旦發(fā)現(xiàn)錯誤,一般可以采用反饋重發(fā)的方法來糾正。這就要求接收方收完一幀后,向發(fā)送方反饋一個接收是否正確的信息,使發(fā)送方所在此作出是不需要重新發(fā)送的決定,也即發(fā)送方僅當(dāng)收到接收方已正確接收的反饋信號后才能認(rèn)為該幀已經(jīng)正確發(fā)送完畢,否則需要重新發(fā)送直至正確為止。物理信道的突發(fā)噪聲可能完全“淹沒”一幀,即使得整個數(shù)據(jù)幀或反饋信息幀丟失,這將導(dǎo)致發(fā)送方永遠(yuǎn)收不到接收方發(fā)來的反饋信息,從而使傳輸過程停滯.為了避免出現(xiàn)這種情況,通常引入計時器(Timer)來限定接收方發(fā)回反饋信息的時間間隔,當(dāng)發(fā)送方發(fā)送一幀的同時也啟動計時器,若在限定時間間隔內(nèi)未能收到接收方的反饋信息,即計時器超時(Timeout),則可認(rèn)為傳的幀已出錯或丟失,繼而要重新發(fā)送。由于同一幀數(shù)據(jù)可能被重復(fù)發(fā)送多次,就可能引起接收方多次收到同一幀并將其遞交給網(wǎng)絡(luò)層的危險。為了防止發(fā)生這種危險,可以采用對發(fā)送的幀編號的方法,即賦予每幀一個序號,從而使接收方能從該序號來區(qū)分是新發(fā)送來的幀還是已經(jīng)接收但又重新發(fā)送來的幀,以此來確定要不要將接收到的幀遞交給網(wǎng)絡(luò)層。數(shù)據(jù)鏈路層通過使用計數(shù)器和序號來保證每幀最終都被正確地遞交給目標(biāo)網(wǎng)絡(luò)層一次。

  • 流量控制

  流量控制并不是數(shù)據(jù)鏈路層所特有的功能,許多高層協(xié)議中也提供流時控功能,只不過流量控制的對象不同而已。比如,對于數(shù)據(jù)鏈路層來說,控制的是相鄰兩節(jié)點之間數(shù)據(jù)鏈路上的流量,而對于運輸層來說,控制的則是從源到最終目的之間端的流量。由于收發(fā)雙方各自使用的設(shè)備工作速率和緩沖存儲的空間的差異,可能出現(xiàn)發(fā)送方發(fā)送能力大于接收方接收能力的現(xiàn)象,如若此時不對發(fā)送方的發(fā)送速率(也即鏈路上的信息流量)作適當(dāng)?shù)南拗?,前面來不及接收的幀將被后面不斷發(fā)送來的幀“淹沒”,從而造成幀的丟失而出錯。由此可見,流量控制實際上是對發(fā)送方數(shù)據(jù)流量的控制,使其發(fā)送率不致超過接收方所能承受的能力。這個過程需要通過某種反饋機(jī)制使發(fā)送方知道接收方是否能跟上發(fā)送方,也即需要有一些規(guī)則使得發(fā)送方知道在什么情況下可以接著發(fā)送下一幀,而在什么情況下必須暫停發(fā)送,以等待收到某種反饋信息后繼續(xù)發(fā)送。

  • 鏈路管理

  鏈路管理功能主要用于面向連接的服務(wù)。當(dāng)鏈路兩端的節(jié)點要進(jìn)行通信前,必須首先確認(rèn)對方已處于就緒狀態(tài),并交換一些必要的信息以對幀序號初始化,然后才能建立連接,在傳輸過程中則要能維持該連接。如果出現(xiàn)差錯,需要重新初始化,重新自動建立連接。傳輸完畢后則要釋放連接。數(shù)據(jù)連路層連接的建立維持和釋放就稱作鏈路管理。在多個站點共享同一物理信道的情況下(例如在LAN中)如何在要求通信的站點間分配和管理信道也屬于數(shù)據(jù)鏈路層管理的范疇。

評論  |   0條評論