導航:首頁 > 網路連接 > 計算機網路數據鏈路層使用心得

計算機網路數據鏈路層使用心得

發布時間:2022-11-28 05:39:56

計算機網路(三)數據鏈路層

結點:主機、路由器

鏈路:網路中兩個結點之間的物理通道,鏈路的傳輸介質主要有雙絞線、光纖和微波。分為有線鏈路、無線鏈路。

數據鏈路:網路中兩個結點之間的邏輯通道,把實現控制數據傳輸協議的硬體和軟體加到鏈路上就構成數據鏈路。

幀:鏈路層的協議數據單元,封裝網路層數據報。

數據鏈路層負責通過一條鏈路從一個結點向另一個物理鏈路直接相連的相鄰結點傳送數據報。

數據鏈路層在物理層提供服務的基礎上向網路層提供服務,其最基本的服務是將源自網路層來的數據可靠地傳輸到相鄰節點的目標機網路層。其主要作用是加強物理層傳輸原始比特流的功能,將物理層提供的可能出錯的物理連接改造成為 邏輯上無差錯的數據鏈路 ,使之對網路層表現為一條無差錯的鏈路。

封裝成幀就是在一段數據的前後部分添加首部和尾部,這樣就構成了一個幀。接收端在收到物理層上交的比特流後,就能根據首部和尾部的標記,從收到的比特流中識別幀的開始和結束。首部和尾部包含許多的控制信息,他們的一個重要作用:幀定界(確定幀的界限)。

幀同步:接收方應當能從接收到的二進制比特流中區分出幀的起始和終止。

組幀的四種方法:

透明傳輸是指不管所傳數據是什麼樣的比特組合,都應當能夠在鏈路上傳送。因此,鏈路層就「看不見」有什麼妨礙數據傳輸的東西。

當所傳數據中的比特組合恰巧與某一個控制信息完全一樣時,就必須採取適當的措施,使收方不會將這樣的數據誤認為是某種控制信息。這樣才能保證數據鏈路層的傳輸是透明的。

概括來說,傳輸中的差錯都是由於雜訊引起的。

數據鏈路層編碼和物理層的數據編碼與調制不同。物理層編碼針對的是單個比特,解決傳輸過程中比特的同步等問題,如曼徹斯特編碼。而數據鏈路層的編碼針對的是一組比特,它通過冗餘碼的技術實現一組二進制比特串在傳輸過程是否出現了差錯。

較高的發送速度和較低的接收能力的不匹配,會造成傳輸出錯,因此流量控制也是數據鏈路層的一項重要工作。數據鏈路層的流量控制是點對點的,而傳輸層的流量控制是端到端的。

滑動窗口有以下重要特性:

若採用n個比特對幀編號,那麼發送窗口的尺寸W T 應滿足: 。因為發送窗口尺寸過大,就會使得接收方無法區別新幀和舊幀。

每發送完一個幀就停止發送,等待對方的確認,在收到確認後再發送下一個幀。

除了比特出差錯,底層信道還會出現丟包 [1] 問題

「停止-等待」就是每發送完一個分組就停止發送,等待對方確認,在收到確認後再發送下一個分組。其操作簡單,但信道利用率較低

信道利用率是指發送方在一個發送周期內,有效地發送數據所需要的時間占整個發送周期的比率。即

GBN發送方:

GBN接收方:

因連續發送數據幀而提高了信道利用率,重傳時必須把原來已經正確傳送的數據幀重傳,是傳送效率降低。

設置單個確認,同時加大接收窗口,設置接收緩存,緩存亂序到達的幀。

SR發送方:

SR接收方:

發送窗口最好等於接收窗口。(大了會溢出,小了沒意義),即

傳輸數據使用的兩種鏈路

信道劃分介質訪問控制將使用介質的每個設備與來自同一通信信道上的其他設備的通信隔離開來,把時域和頻域資源合理地分配給網路上的設備。

當傳輸介質的帶寬超過傳輸單個信號所需的帶寬時,人們就通過在一條介質上同時攜帶多個傳輸信號的方法來提高傳輸系統的利用率,這就是所謂的多路復用,也是實現信道劃分介質訪問控制的途徑。多路復用技術把多個信號組合在一條物理信道上進行傳輸,使多個計算機或終端設備共享信道資源,提高了信道的利用率。信道劃分的實質就是通過分時、分頻、分碼等方法把原來的一條廣播信道,邏輯上分為幾條用於兩個結點之間通信的互不幹擾的子信道,實際上就是把廣播信道轉變為點對點信道。

頻分多路復用是一種將多路基帶信號調制到不同頻率載波上,再疊加形成一個復合信號的多路復用技術。在物理信道的可用帶寬超過單個原始信號所需帶寬的情況下,可將該物理信道的總帶寬分割成若千與傳輸單個信號帶寬相同(或略寬)的子信道,每個子信道傳輸一種信號,這就是頻分多路復用。

每個子信道分配的帶寬可不相同,但它們的總和必須不超過信道的總帶寬。在實際應用中,為了防止子信道之間的千擾,相鄰信道之間需要加入「保護頻帶」。頻分多路復用的優點在於充分利用了傳輸介質的帶寬,系統效率較高;由於技術比較成熟,實現也較容易。

時分多路復用是將一條物理信道按時間分成若干時間片,輪流地分配給多個信號使用。每個時間片由復用的一個信號佔用,而不像FDM那樣,同一時間同時發送多路信號。這樣,利用每個信號在時間上的交叉,就可以在一條物理信道上傳輸多個信號。

就某個時刻來看,時分多路復用信道上傳送的僅是某一對設備之間的信號:就某段時間而言,傳送的是按時間分割的多路復用信號。但由於計算機數據的突發性,一個用戶對已經分配到的子信道的利用率一般不高。統計時分多路復用(STDM,又稱非同步時分多路復用)是TDM 的一種改進,它採用STDM幀,STDM幀並不固定分配時隙,面按需動態地分配時隙,當終端有數據要傳送時,才會分配到時間片,因此可以提高線路的利用率。例如,線路傳輸速率為8000b/s,4個用戶的平均速率都為2000b/s,當採用TDM方式時,每個用戶的最高速率為2000b/s.而在STDM方式下,每個用戶的最高速率可達8000b/s.

波分多路復用即光的頻分多路復用,它在一根光纖中傳輸多種不同波長(頻率)的光信號,由於波長(頻率)不同,各路光信號互不幹擾,最後再用波長分解復用器將各路波長分解出來。由於光波處於頻譜的高頻段,有很高的帶寬,因而可以實現多路的波分復用

碼分多路復用是採用不同的編碼來區分各路原始信號的一種復用方式。與FDM和 TDM不同,它既共享信道的頻率,又共享時間。下面舉一個直觀的例子來理解碼分復用。

實際上,更常用的名詞是碼分多址(Code Division Multiple Access.CDMA),1個比特分為多個碼片/晶元( chip),每一個站點被指定一個唯一的m位的晶元序列,發送1時發送晶元序列(通常把o寫成-1) 。發送1時站點發送晶元序列,發送o時發送晶元序列反碼。

純ALOHA協議思想:不監聽信道,不按時間槽發送,隨機重發。想發就發

如果發生沖突,接收方在就會檢測出差錯,然後不予確認,發送方在一定時間內收不到就判斷發生沖突。超時後等一隨機時間再重傳。

時隙ALOHA協議的思想:把時間分成若干個相同的時間片,所有用戶在時間片開始時刻同步接入網路信道,若發生沖突,則必須等到下一個時間片開始時刻再發送。

載波監聽多路訪問協議CSMA(carrier sense multiple access)協議思想:發送幀之前,監聽信道。

堅持指的是對於監聽信道忙之後的堅持。

1-堅持CSMA思想:如果一個主機要發送消息,那麼它先監聽信道。

優點:只要媒體空閑,站點就馬上發送,避免了媒體利用率的損失。

缺點:假如有兩個或兩個以上的站點有數據要發送,沖突就不可避免。

非堅持指的是對於監聽信道忙之後就不繼續監聽。

非堅持CSMA思想:如果一個主機要發送消息,那麼它先監聽信道。

優點:採用隨機的重發延遲時間可以減少沖突發生的可能性。

缺點:可能存在大家都在延遲等待過程中,使得媒體仍可能處於空閑狀態,媒體使用率降低。

p-堅持指的是對於監聽信道空閑的處理。

p-堅持CSMA思想:如果一個主機要發送消息,那麼它先監聽信道。

優點:既能像非堅持演算法那樣減少沖突,又能像1-堅持演算法那樣減少媒體空閑時間的這種方案。

缺點:發生沖突後還是要堅持把數據幀發送完,造成了浪費。

載波監聽多點接入/碰撞檢測CSMA/CD(carrier sense multiple access with collision detection)

CSMA/CD的工作流程:

由圖可知,至多在發送幀後經過時間 就能知道所發送的幀有沒有發生碰撞。因此把乙太網端到端往返時間為 稱為爭周期(也稱沖突窗口或碰撞窗口)。

截斷二進制指數規避演算法:

最小幀長問題:幀的傳輸時延至少要兩倍於信號在匯流排中的傳播時延。

載波監聽多點接入/碰撞避免CSMA/CA(carrier sense multiple access with collision avoidance)其工作原理如下

CSMA/CD與CSMA/CA的異同點:

相同點:CSMA/CD與CSMA/CA機制都從屬於CSMA的思路,其核心是先聽再說。換言之,兩個在接入信道之前都須要進行監聽。當發現信道空閑後,才能進行接入。

不同點:

輪詢協議:主結點輪流「邀請」從屬結點發送數據。

令牌:一個特殊格式的MAC控制幀,不含任何信息。控制信道的使用,確保同一時刻只有一個結點獨占信道。每個結點都可以在一定的時間內(令牌持有時間)獲得發送數據的權利,並不是無限制地持有令牌。應用於令牌環網(物理星型拓撲,邏輯環形拓撲)。採用令牌傳送方式的網路常用於負載較重、通信量較大的網路中。

輪詢訪問MAC協議/輪流協議/輪轉訪問MAC協議:基於多路復用技術劃分資源。

隨機訪問MAC協議: 用戶根據意願隨機發送信息,發送信息時可獨占信道帶寬。 會發生沖突

信道劃分介質訪問控制(MAC Multiple Access Control )協議:既要不產生沖突,又要發送時佔全部帶寬。

區域網(Local Area Network):簡稱LAN,是指在某一區域內由多台計算機互聯成的計算機組,使用廣播信道。其特點有

決定區域網的主要要素為:網路拓撲,傳輸介質與介質訪問控制方法。

區域網的分類

IEEE 802標准所描述的區域網參考模型只對應OSI參考模型的數據鏈路層與物理層,它將數據鏈路層劃分為邏輯鏈路層LLC子層和介質訪問控制MAC子層。

乙太網(Ethernet)指的是由Xerox公司創建並由Xerox、Intel和DEC公司聯合開發的基帶匯流排區域網規范,是當今現有區域網採用的最通用的通信協議標准。乙太網絡使用CSMA/CD(載波監聽多路訪問及沖突檢測)技術。 乙太網只實現無差錯接收,不實現可靠傳輸。

乙太網兩個標准:

乙太網提供無連接、不可靠的服務

10BASE-T是傳送基帶信號的雙絞線乙太網,T表示採用雙絞線,現10BASE-T 採用的是無屏蔽雙絞線(UTP),傳輸速率是10Mb/s。

計算機與外界有區域網的連接是通過通信適配器的。

在區域網中,硬體地址又稱為物理地址,或MAC地址。MAC地址:每個適配器有一個全球唯一的48位二進制地址,前24位代表廠家(由IEEE規定),後24位廠家自己指定。常用6個十六進制數表示,如02-60-8c-e4-b1-21。

最常用的MAC幀是乙太網V2的格式。

IEEE 802.11是無線區域網通用的標准,它是由IEEE所定義的無線網路通信的標准。

廣域網(WAN,Wide Area Network),通常跨接很大的物理范圍,所覆蓋的范圍從幾十公里到幾千公里,它能連接多個城市或國家,或橫跨幾個洲並能提供遠距離通信,形成國際性的遠程網路。

廣域網的通信子網主要使用分組交換技術。廣域網的通信子網可以利用公用分組交換網、衛星通信網和無線分組交換網,它將分布在不同地區的區域網或計算機系統互連起來,達到資源共享的目的。如網際網路(Internet)是世界范圍內最大的廣域網。

點對點協議PPP(Point-to-Point Protocol)是目前使用最廣泛的數據鏈路層協議,用戶使用撥號電話接入網際網路時一般都使用PPP協議。 只支持全雙工鏈路。

PPP協議應滿足的要求

PPP協議的三個組成部分

乙太網交換機

沖突域:在同一個沖突域中的每一個節點都能收到所有被發送的幀。簡單的說就是同一時間內只能有一台設備發送信息的范圍。

廣播域:網路中能接收任一設備發出的廣播幀的所有設備的集合。簡單的說如果站點發出一個廣播信號,所有能接收收到這個信號的設備范圍稱為一個廣播域。

乙太網交換機的兩種交換方式:

直通式交換機:查完目的地址(6B)就立刻轉發。延遲小,可靠性低,無法支持具有不同速率的埠的交換。

存儲轉發式交換機:將幀放入高速緩存,並檢查否正確,正確則轉發,錯誤則丟棄。延遲大,可靠性高,可以支持具有不同速率的埠的交換。

㈡ 通過對計算機網路課程的學習,你學到了什麼

寫出自己學到的內容,再寫出自己的心得體會,範文如下:

通過為期一學期的計算機網路技術課程的學習,作為一個涉及計算機網路不久的我來說收益匪淺。那麼以下就是在此次學習過程中我所總結出來的關於計算機網路學習中所體會到的一些值得記錄的心得。

首先在學習課件製作時始終要與實際應用相結合,不要把主要精力花費在各個命令孤立地學習上;要把學以致用的原則貫穿整個學習過程,以使自己對各項計算機命令有深刻和形象的理解,有利於培養自己應用各種計算機語言製作網頁的能力。

其次WORD作為文字操作專家,它能使我們更加深入地理解、熟練文字操作的命令。要強迫自己做幾個綜合實例,分別詳細地進行文字編輯,使自己可以從全局的角度掌握整個編輯過程,力爭使自己學習完WORD之後就能夠順利有效的進行編輯工作。

最後,在學習期間學會了很多東西,網路常用的操作命令:ipconfig/all、nslookup、ping、pathping、tracert、netstat。現在能了解並運用這些命令。

在學習中,我進一步體會到了網路的神奇,是網路能夠使遠隔萬里之遙的人面對面的聊天,是網路能夠使人們可足不出戶就掌握所有信息從而運籌帷幄,是網路使人們能夠更快的掌握更多的信息,本次學習讓使我對計算機有了更新的認識,更是學到了很多實用技術。

(2)計算機網路數據鏈路層使用心得擴展閱讀:

學習計算機網路課程的重要性:

1、社會與生活的需要

在信息化社會里計算機網路扮演了非常重要的角色,在社會與生活都會被需要。

2、大學生的素質要求

教育部在非計算機專業的計算機課程中,把《計算機網路》是作為計算機的核心課程來定位的。

3、課程的理論性和實踐性都很輕

注重理論與實踐的結合,豐富的實踐教學環節鞏固了理論知識。

㈢ [計算機網路]Ch.3 數據鏈路層

數據鏈路層使用物理層提供的服務在通信信道上發送和接收比特。
(1) 向網路層提供一個定義良好的介面
(2) 處理傳輸錯誤
(3) 調節數據流,確保慢速的接收方不會被快速的發送方淹沒
提供的服務
(1) 無確認的無連接服務 (區域網)
(2) 有確認的無連接服務 (無線通信)
(3) 有確認的有連接服務 (電話)
無線通信,信道使用率很低但數據傳輸的誤碼率相對較高,確認是必要的

成幀:將原始的位流分散到離散的幀中。
成幀的方法有:
(1)字元計數法
(2)帶位元組/字元填充的標志位元組法
(3)比特填充的比特標志法
(4)物理層編碼違例法

位元組計數法:利用幀頭部的一個欄位來標識該幀中的字元數
缺點:簡單,無法恢復,已經很少使用

該方法考慮了錯誤之後重新開始同步的問題,用一些特殊位元組(FLAG)作為幀開始和結束標志,用轉義字元(ESC)來區分二進制數據中存在的特殊位元組。

採用冗餘編碼技術,如曼切斯特編碼,即兩個脈沖寬來表示一個二進制位
數據0:低-高電平對
數據1:高-低電平對
高-高電平對和低-低電平對沒有使用,可用作幀邊界

差錯的種類:

差錯的處理:

計算機網路中主要採用:

海明距離的意義 :如果海明距離為d,則一個碼字需要發生d個1位錯誤才能變成另外一個碼字
海明距離與檢錯和糾錯的關系:

糾正單比特錯的冗餘位下界, m為數據位數 r為校驗位數

將某一位數據位的編號展開成2的乘冪的和,那末每一項所對應的位即為該數據位的校驗位(收方使用)。
如: 11 = 1 + 2 + 8
29 = 1 + 4 + 8 + 16
校驗位1的檢驗集合為所有奇數位。
校驗位2的檢驗集合:2、3、6、7、10、11、…
校驗位4的檢驗集合:4、5、6、7、……
校驗位8的檢驗集合:8、9、10、11、……

海明碼糾錯過程(只糾錯1位)
首先將差錯計數器置「0」。
當海明碼數據到達接收端後,接收端逐個檢查各個校驗位的奇偶性。
如發現某一校驗位和它所檢測的集合的奇偶性不正確,就將該檢驗位的編號加到差錯計數器中。
待所有校驗位核對完畢:
若差錯計數器仍為「0」值,則說明該碼字接收無誤。
非「0」值,差錯計數器的值為出錯位的編號,將該位求反就可得到正確結果。

例子:

經計算需要的檢驗字個數的最小值 r應滿足 ( 所以r最小值為4,再根據校驗位的對應規則可得下表:

Data: 1011010
Even: 1011010 0 (偶校驗)
Odd: 1011010 1 (奇校驗)

使用CRC編碼時發送方和接收方必須預先商定一個生成多項式G(x),假設有一個m為的幀M(x),使用G(x)生成的幀的步驟如下:
假設G(x)的階為r, 那麼M(x)在末尾添加r個0,得到 m+r位的位模式 。
利用模2出發,用G(x)去除 ,得到對應的余數(總是小於等於r位)。
利用 減去(模2減法)第2步中得到的余數,得到的位模式就是即將被傳輸的帶校驗和的幀
Sender
在數據幀的低端加上r個零,對應多項式為XrM(x)
採用模2除法,用G(x)去除XrM(x),得余數
採用模2減法,用XrM(x)減去余數,得到帶CRC校驗和的幀
Receiver
用收到的幀去除以G(x)
為零:無錯誤產生。非零:發生了錯誤,重傳

在一定條件下運作:

缺點

缺點

對協議2的改進:

確認幀
只在接收無差錯時才發確認幀,出錯時不發確認幀。
重發
網路中採用檢錯碼,無法糾正錯誤,由重發原來幀的方式來恢復正確的幀。
計時器
控制何時重發,防止無限期等待(死鎖)。
幀序號
防止重發時接收端收到重復的幀,序號還用於接收時排序。
保證送給網路層的都是按序無重復的分組

幀格式:

****

與前三個協議不同,這是一個雙向傳遞的協議。 之後的三個協議都屬於滑動窗口協議。

滑動窗口協議
如果發送端可以連續發送一批數據幀,必須考慮接收端是否來得及接納與處理這么多的幀,這里就提出了網路流量控制問題

N回退協議 選擇重傳協議:
由於傳輸過程中存在延遲,即數據在傳播過程中需要時間,那麼如果使用上面所提及的協議,傳輸過程中有大量的時間存在阻塞狀態,所以為了充分利用帶寬,我們讓發送方一次發送w個幀。所以就存在如何處理在傳輸過程中出現的幀錯誤的問題

協議四的基本工作原理:
窗口設置

窗口滑動機制

特點

出錯情況
連續發送W個數據幀,其中有一幀出錯,但其後續幀被成功發送

接收方的接收策略: 丟棄錯幀,其後續幀因不是期望接收幀也被丟棄(接收窗口為1)。
發送方的重傳策略: 緩存在發送窗口中的出錯幀以及其後續幀全部重發

W<=2BD+1(個幀)
BD:帶寬-延遲乘積,bit乘積出來之後換算成幀的個數

該圖的發送方和接收方的窗口大小都是7,那麼也就是說發送方一次最多隻能發送7個幀,剛開始發送方只能發送序號為0~6的數據幀,圖中發送方收到序列號為第0和第1號幀的確認幀,那麼整個窗口向前滑動,發送方可以發送序列號為7和8 的數據幀,但是不幸的是2號數據幀並沒有收到確認幀,所以整個窗口並不會向前滑動,此時只能等待2號數據幀的計時器超時,那麼超時後發送方將會從2號數據幀開始發送,重復這個過程。
實現

出錯情況

原因:如果錯誤很少發生,那麼協議5可以很好的工作。一旦線路質量很差,那麼重傳幀需要浪費大量帶寬。而選擇重傳節約了帶寬,允許接收方緩存丟失幀之後的所有幀

接收方的接收策略: 丟棄錯幀,緩存後續正確接收幀
發送方的重傳策略: 只重發出錯幀。

基本概念:

選擇重傳策略:
接收方丟掉壞幀,但接受並緩存壞幀後面的所有好幀。

否定重傳策略
當接收方收到錯誤,他就發送一個否定確認(NAK)信息,而不需要等到相應的計數器超時,提高協議性能。

滑動窗口長度w的選擇
協議5(回退n幀) W = MAX_SEQ
協議6(選擇重傳) W= (MAX_SEQ + 1) / 2

發送方和接收方的窗口大小 W=((MAX_SEQ+1))/2,原因是 防止窗口重疊,在確認幀丟失的情況下而導致的數據錯誤

接收方在某個幀出錯後繼續接受和緩存後續發送的數據包,直到整個窗口的填滿後,把幀進行排序後才傳遞給網路層。

面向字元的數據鏈路協議
PPP 是一種在鏈路上傳輸分組的常用方法

3個主要特性:

PPP兩種認證協議: PAP and CHAP

PPP的幀格式

PPP成幀是面向位元組填充的:
具體細節可以參考上面的位元組填充法, 因為PPP重用了HDLC的技術,所以PPP使用標志字(0x7E 01111110)來標記幀的起始,使用0x7D來作為轉義字元, 具體操作如下:

接收方接收到幀後進行下面處理:
在幀中遇到0x7D 就把0x7D刪除,在把緊跟在0x7D 後的位元組和0x20進行異或運算,就得到對應的數據

LCP ( Link Control Protocol)提供了建立、配置、維護和終止點對點鏈接的方法

PPP的工作過程

㈣ 帶你弄懂計算機網路的數據鏈路層(經典)

差錯是不可避免的。而且不同的傳輸介質的差錯程度也是不同的。鏈路層的任務就是分析差錯產生的原因,檢查差錯,然後糾正差錯。 下面的圖展示了差錯的來源

當數據信號從發送端發送到物理線路時,由於物理線路存在雜訊,因此數據信號經過物理線路的雜訊,到達接收端時,已經是數據+雜訊的疊加。這就是差錯的來源。

滑動窗口機制?

㈤ 計算機網路-02-物理層和數據鏈路層

物理層主要功能是為數據端設備提供傳送數據的通路以及傳輸數據。

信道是往一個方向傳送信息的媒體,一條通信電路包含一個接收信道和一個發送信道。

分用-復用技術 允許多個用戶使用一個共享信道進行通信,可以降低成本,提高利用率。

數據鏈路層在物理層提供的服務的基礎上向網路層提供服務,其最基本的功能是向該層用戶提供透明的和可靠的數據傳送基本服務。

數據鏈路層有兩個功能: 幀編碼 和 差錯控制 。

物理層只負責傳輸比特流,為了使傳輸過程發生差錯後只將有限數據進行重發,數據鏈路層將比特流組合成以太幀作為單位傳送。

每個幀除了要傳送的數據外,還包括校驗碼,以使接收方能發現傳輸中的差錯。

假設現在從網路層過來了一個IP數據報,數據鏈路層會將這個數據報作為幀進行傳送。

當然物理層是不管你幀不幀的,它只會將數據鏈路層傳過來的幀以比特流的形式發送給另一台物理設備。

由前面的文章可知: 總時延 = 發送時延 + 排隊時延 + 傳播時延 + 處理時延

數據鏈路層的數據幀不是無限大的,數據幀過大或過小都會影響傳輸的效率,數據鏈路層使用MTU來限制數據幀長度。

乙太網MTU一般為1500位元組, 路徑MTU由鏈路中MTU的最小值決定

一個實用的通信系統必須具備發現(即檢測)這種差錯的能力,並採取某種措施糾正之,使差錯被控制在所能允許的盡可能小的范圍內,這就是差錯控制過程。物理層只管傳輸比特流,無法控制是否出錯,所以差錯檢測成了數據鏈路層的主要功能之一。

一般的檢測方法有 奇偶校驗碼 和 CRC循環冗餘校驗碼 。

網路中需要唯一標識物理設備的地址,用於確定數據傳輸時的發送地址和目的地址。

MAC地址(物理地址、硬體地址)共48位,使用十六進製表示,每一個設備都擁有唯一的MAC地址。

雖然MAC地址是物理硬體地址,但其屬於數據鏈路層的MAC子層。

乙太網(Ethernet)是一種使用廣泛的區域網技術,它是應用於數據鏈路層的協議,使用乙太網可以完成相鄰設備的數據幀傳輸。

乙太網數據報文主要由五個部分組成:

類型主要表示幀數據的類型,例如網路層的IP數據。

定義完數據結構後,就需要進行數據傳輸。由上文可知,MAC地址唯一標識了設備,那麼怎麼獲得目的設備的MAC地址呢?

MAC地址表記錄了與本設備相連的設備的MAC地址。

假設主機A發送了一個乙太網數據報文,數據幀到達路由器,路由器取出前6位元組(通過報文數據結構可知前6位位目的地址)。

路由器匹配MAC地址表,找到對應的網路介面,路由器往該網路介面發送數據幀。

當路由器的MAC地址表中沒有目的地址,此時路由器會將此MAC地址進行廣播(發送方A除外),接收區域網中與該路由其相連的其他設備的MAC地址並記錄。

由於MAC地址表只能知道當前設備的下一個設備的MAC地址,簡而言之就是只能進行相鄰物理節點的數據傳輸。

有關跨設備傳輸數據的功能是交由網路層處理的,具體見下一章。

㈥ 02 - 數據鏈路層的詳細認識

時間有限我這里只寫了一部分內容,更詳細的內容可以直接看我的筆記 第三章數據鏈路層

數據鏈路層的任務就是將分組從一個網路中或一個鏈路上的一端傳送到另一端。數據鏈路層傳送的數據單元稱為幀(frame)。所以也可以說數據鏈路層的任務就是在一個網路(或一段鏈路上)傳送以幀為單位的數據

數據鏈路層屬於計算機網路的底層,僅在物理層的上方,在網路層的下方,網路中的主機、路由器等都必須實現數據鏈路層。數據鏈路層使用的信道主要有兩種類型,點對點信道,廣播信道

在點對點信道中最重要的是如何實現可靠傳輸(在實際中並不會在數據鏈路層實現可靠傳輸,而是交給上層)

網路層的IP數據報必須向下傳達到數據鏈路層,在數據報前後分別加上首部和尾部,封裝成為一個完整的幀。因為在數據鏈路層就是以幀為單位傳輸和處理數據,因此,數據鏈路層中的幀長就是數據部分加上首部和尾部的長度。

發送方將幀以比特流的形式發送給接收方(在物理層會轉換成電信號),接收方為了能夠處理幀數據,必須正確認識每個幀的開始和結束,這就需要進行幀定界

幀定界有很多種,比如乙太網就是在傳輸的幀與幀之間插入時間間隔來實現,只有首部有幀定界符,尾部沒有幀定界符。還有一種就是在幀的首部和尾部都加上一個幀定界符。

幀定界符:
不同類型:

幀定界符在透明傳輸中的問題和解決
問題: 傳輸數據存在使用幀定界符所使用的字元或比特組合,會出現錯誤的幀定界
解決:

注意:

通信鏈路的傳輸都不會是理想的,比特在傳輸過程中可能會產生差錯,比如1變為0,0變為1,這叫做比特差錯,因此就需要在接收端進行差錯檢測。

發送方需要採用某種差錯檢測演算法,使用發送的數據計算出差錯檢測碼EDC,差錯檢測碼隨數據一起發送給接收方,接收方使用同樣的差錯檢測演算法計算出差錯檢測碼EDC',如果兩者不一致,則表示出現差錯,一般採用循環冗餘檢驗(CRC)來檢錯

差錯檢測演算法:

接收雙方需要約定好一個多項式,之後按照下圖的方式進行處理

案例說明

發送方的冗餘校驗:

說明:

接收方的冗餘校驗:

說明:

注意:

有些情況下數據鏈路層需要向上層的網路層提供「可靠傳輸」的服務,也就是發送端發送什麼,對應的接收端就必須接收什麼。我們通過可靠傳輸協議來實現數據鏈路層的可靠傳輸,有三種,停止等待協議SW、回退N步協議GBN、選擇重傳協議SR。
可靠傳輸協議就是要在不可靠的信道上實現可靠的數據傳輸服務。

在計算機網路中實現可靠傳輸的基本方法就是:如果發現錯誤就重傳

使用分組確認和超時重傳機制就可以在不可靠的信道上實現可靠的數據傳輸。

解決: 可以在發送方發送完一個數據分組後,啟動一個超時計時器,若超出了設置的重傳時間,發送方仍沒有收到接收方的任何確認分組,就會重傳原來的分組。

注意: 重傳時間的選擇一般是略大於「從發送方到接收方的平均往返時間」數據鏈路層的往返時間是比較確定的,可以使用這種方式

說明:

上面也可以看到停止等待協議的信道利用率很低,所以需要採用流水線傳輸方式,發送方不間斷的發送分組來提高信道利用率。但是這種方式有可能會使接收方來不及處理這些分組,從而導致分組的丟失。因此需要限制發送方連續發送分組的個數避免這個問題,而這種方式就是回退N步協議。
簡單理解回退N步協議就是停止等待協議只能發送一個分組就等待,回退N步協議是發送多個分組才處於等待狀態

原理: 回退N步協議在流水線傳輸的基礎上利用發送窗口來限制發送方連續發送分組的個數,是一種連續的ARQ協議

注意:

選擇重傳協議是在回退N步協議的基礎上,只重傳出現差錯的分組,這時接收窗口不再為1,以便先收下失序到達但仍然處於接收窗口中的分組,等到所缺分組收齊後再一並送交上層,這就是選擇重傳協議。

注意:

㈦ 數據鏈路層怎樣保證數據傳輸的可靠性

剛從書上看的(計算機網路):

數據鏈路層傳輸以幀為單位的數據包,
並採用差錯控制與流量控制方法,
使有差錯的物理線路變成無差錯的數據鏈路。

㈧ 計算機網路:數據鏈路層

互聯網是指很多異構的網路由路由器聯系起來的一個大網路。在研究這個大網路之前,我們要庖丁解牛,先研究其局部和單元。最小的網路單元就是區域網,區域網是一個單位所擁有,且地理范圍和站點數量都很有限。

區域網內的計算機通信不需要路由器,所以不會用到網路層的協議,而是依賴數據鏈路層。

上圖說明了數據鏈路層在整個互聯網體系中的位置。數據鏈路層的信道分為兩種:

在點到點信道的數據鏈路層協議上,可以採用簡化的三層模型。無論是主機和主機,主機和路由器,或者兩個路由器之間,我們都可以看成結點和結點之間的通信。

數據鏈路層不必考慮物理層是如何實現比特傳輸的細節,我們甚至可以簡單設想,節點A沿著數據鏈路層的水平方向把幀輸出給結點B。

數據鏈路層的協議有多個,但有三個共性問題。

從上圖可以得出以下結論:

利用轉義字元(ESC,十六進制編碼0x1B)來解決幀的數據部分包含控制字元的問題

信道往往不是理想的,所以通信會帶來誤差。常用誤碼率來衡量傳輸誤差。誤碼率BER(bit error rate)等於錯誤的比特佔全部比特的百分比。

那麼我們怎麼知道所接受到的幀有沒有錯誤比特呢?這就需要校驗機制,目前數據鏈路層廣泛採用循環冗餘校驗CRC((Cyclic Rendancy Check)。其原理是在幀的數據部分後面加上冗餘碼(FCS),接受方利用冗餘碼校驗數據部分。具體細節請參考《計算機網路》。

綜上,封裝成幀和透明傳輸保證收到完整的幀,差錯檢驗保證收到正確的幀。這三種機制能保證幀的無差錯傳輸,但不能保證可靠傳輸(發送什麼就接收到什麼)。造成不可靠傳輸的原因有兩類:

1. 幀中的比特錯誤
2. 幀重復,幀丟失,幀失序
數據鏈路層的幀的三種機制只能消除第一種錯誤,至於第二種則需要確認和重傳機制。在早期互聯網中,數據鏈路層曾經保證可靠傳輸,但隨著光纖技術的發展,誤碼率大大下降,數據鏈路層就採用了簡單的不可靠傳輸協議,把可靠運輸的實現放在了運輸層中。實踐證明,這樣可以提高通信效率。

最後,我們可以看到,計算機網路本質是通信問題,裡麵包含了很多通信元素:完整,誤差,校驗,重復,丟失,失序,可靠傳輸等。

㈨ 計算機網路(3)| 數據鏈路層

數據鏈路層屬於計算機網路的低層。數據鏈路層使用的信道主要是兩種類型:
(1)點對點信道 。即信道使用的是一對一點對點通信方式。
(2)廣播信道 。這種信道使用的是一對多的光播通信方式,相對復雜。在廣播信道上連接的主機很多,因此必須使用專用的共享信道協議來協調這些主機的數據發送。

首先我們應該了解一些有關點對點信道的一點基本概念。
(1)數據鏈路 。值得是當我們需要在一條線路上傳送數據時,除了有一條物理線路外(鏈路),還必須有一些必要的通信協議來控制這些數據的傳輸,若把實現這些協議的硬體和軟體加到鏈路上就構成了數據鏈路。
(2)幀 。幀指的是點對點信道的數據鏈路層的協議數據單元,即數據鏈路層把網路層交下來的數據構成幀發送到鏈路上以及把接收到的幀中的數據取出並上交給網路層。

點對點信道的數據鏈路層在進行通信時的主要步驟如下:
(1)結點A的數據鏈路層把網路層交下來的IP數據報添加首部和尾部封裝成幀。
(2)結點A把封裝好的幀發送給結點B的數據鏈路層。
(3)若B接收的幀無差錯,則從接收的幀中提取出IP數據報上交給上面的網路層;否則丟棄這個幀。

接下來是來介紹數據鏈路層的三個基本問題,而這三個問題對於各種數據鏈路層的協議都是通用的。

(1)封裝成幀 。指的是在一段數據的前後分別添加首部和尾部,這樣就構成了一個幀,從而能夠作為數據鏈路層的基本單位進行數據傳輸。在發送幀時,是從幀的首部開始發送的。各種數據鏈路層協議都對幀首部和幀尾部的格式有著明確的規定,且都規定了所能傳送的 幀的數據部分 長度上限—— 最大傳送單元MTU 。首部和尾部的作用是進行幀定界,幀定界可以使用特殊的 幀定界符 ,當數據在傳輸中出現差錯時,通過幀的幀定界符就可以知道收到的數據是一個不完整的幀(即只有首部開始符而沒有結束符)。

(2)透明傳輸 。從上面的介紹中知道幀的開始和結束標記使用了專門的控制字元,因此所傳輸的數據中任何與幀定界符相同的比特編碼是不允許出現的,否則就會出現幀定界錯誤。當傳送的幀是用文本文件組成的幀時,它的數據部分一定不會出現和幀定界符相同的字元,這樣的傳輸就叫做 透明傳輸 。為了解決其他類型文件傳輸時產生的透明傳輸問題,就將幀定界符的前面插入一個 轉義字元ESC ,這種方法稱為 位元組填充 。如果轉義字元也出現在數據中,就在轉義字元前面加上一個轉義字元,當接收端收到兩個轉義字元時,就刪除前面的那一個。

(3)差錯檢測 。在現實中,通信鏈路都不會是完美的,在傳輸比特的過程當中都是會產生差錯的,1變成0或者0變成1都是可能發生的,我們把這樣的錯誤叫做差錯檢測。在數據鏈路層中,為了保證數據傳輸的可靠性,減少差錯出現的數量,就會採用各種差錯檢測措施,目前最常使用的檢錯技術是 循環冗餘校驗 。它的原理簡單來說就是在被傳輸的數據M後面添加供錯檢測用的n為冗餘碼,構成一個幀數據發送出去。關於n位冗餘碼的得出方式與檢驗方式,可以 點擊這里進一步了解 。

對於點對點鏈路,點對點協議PPP是目前使用得最廣泛的數據鏈路層協議。由於網際網路的用戶通常都要連接到某個ISP才能接入到網際網路,PPP協議就是用戶計算機和ISP進行通信所使用的數據鏈路層協議。

在設計PPP協議時必須要考慮以下多方面的需求:
(1)簡單 。簡單的設計可使協議在實現時不容易出錯,這樣使得不同廠商對協議的不同實現的互操作性提高了。
(2)封裝成幀 。PPP協議必須規定特殊的字元作為幀定界符(即標志一個幀的開始和結束的字元),以便使接收端從收到的比特流中能准確的找出幀的開始和結束的位置。
(3)透明性 。PPP協議必須保證數據傳輸的透明性。如果說是數據中碰巧出現和幀定界符一樣的比特組合時,就要採用必要的措施來解決。
(4)多種網路層協議 。PPP協議必須能夠在同一條物理鏈路上同時支持多種網路層協議(IP和IPX等)的運行。
(5)多種類型鏈路 。除了要支持多種網路層的協議外,PPP還必須能夠在多種鏈路上運行(串列與並行鏈路)。
(6)差錯檢測 。PPP協議必須能夠對接收端收到的幀進行檢測,並舍棄有差錯的幀。
(7)檢測連接狀態 。必須具有一種機制能夠及時(不超過幾分鍾)自動檢測出鏈路是否處於正常工作狀態。
(8)最大傳送單元 。協議對每一種類型的點對點鏈路設置最大傳送單元MTU。
(9)網路層地址協商 。協議必須提供一種機制使通信的兩個網路層(如兩個IP層)的實體能夠通過協商知道或能夠配置彼此的網路層地址。
(10)數據壓縮協商 。協議必須能夠提供方法來協商使用數據壓縮演算法。但PPP協議不要求將數據壓縮演算法進行標准化。

PPP協議主要是由三個方面組成的:
(1) 一個將IP數據報封裝到串列鏈路的方法。
(2) 一個用來建立、配置和測試數據鏈路連接的鏈路控制協議LCP(Link Control Protocol)。
(3) 一套網路控制協議NCP(Network Control Protocol),其中的每一個協議支持不同的網路層協議,如IP、OSI的網路層、DECnet,以及AppleTalk等。

最後來介紹PPP協議幀的格式:

首先是各個欄位的意義。首部中的地址欄位A規定為0xFF,控制欄位C規定為0x03,這兩個欄位並沒有攜帶PPP幀的信息。首部的第一個欄位和尾部的第二個欄位都是標識欄位F(Flag)。首部的第四個欄位是2位元組的協議欄位。當協議欄位為0x0021時,PPP幀的信息部分欄位就是IP數據報。若為0xC021,則信息欄位是PPP鏈路控制協議LCP的數據,而 0x8021表示這是網路層的控制數據。尾部中的第一個欄位(2位元組)是使用CRC的幀檢驗序列FCS。

接著是關於PPP協議的差錯檢測的方法,主要分為位元組填充和零比特填充。當是PPP非同步傳輸時,採用的是位元組填充的方法。位元組填充是指當信息欄位中出現和標志欄位一樣的比特(0x7E)組合時,就必須採取一些措施使這種形式上和標志欄位一樣的比特組合不出現在信息欄位中。而當PPP協議使用的是同步傳輸時,就會採用零比特填充方法來實現透明傳輸,即只要發現有5個連續1,則立即填入一個0的方法。

廣播信道可以進行一對多的通信。由於區域網採用的就是廣播通信,因此下面有關廣播通信的討論就是基於區域網來進行的。

首先我們要知道區域網的主要 特點 ,即網路為一個單位所擁有,且地理范圍和站點數目均有限。在區域網才出現時,區域網比廣域網有著較高的數據率、較低的時延和較小的誤碼率。

區域網的 優點 主要有一下幾個方面:
(1) 具有廣播功能,從一個站點可方便地訪問全網。
(2) 便於系統的擴展和逐漸地演變,各設備的位置可靈活地調整和改變。
(3) 提高了系統的可靠性(reliability)、可用性(availibility)、生存性(survivability)。

關於區域網的分類,我們一般是對區域網按照網路拓撲進行分類:
1.星狀網: 由於集線器的出現和雙絞線大量用於區域網中,星形乙太網和多級星形結構的乙太網獲得了非常廣泛的應用。
2.環形網: 顧名思義,就是將各個主機像環一樣串起來的拓撲結構,最典型的就是令牌環形網。
3.匯流排網: 各站直接連在匯流排上。匯流排兩端的匹配電阻吸收在匯流排上傳播的電磁波信號的能量,避免在匯流排上產生有害的電磁波反射。

乙太網主要有兩個標准,即DIX Ethernet V2和IEEE 802.3標准,這兩種標準的差別很小,可以不是很嚴格的區分它們。

但是由於有關廠商的商業上的激烈競爭,導致IEEE 802委員會未能形成一個最佳的區域網標准而制定了幾個不同的區域網標准,所以為了數據鏈路層能夠更好的適應各種不同的標准,委員會就把區域網的數據鏈路層拆成兩個子層: 邏輯鏈路控制LLC子層 媒體接入控制MAC子層

計算機與外界區域網的連接是通過通信適配器(adapter)來進行的。適配器本來是在電腦主機箱內插入的一塊網路介面板(或者是在筆記本電腦中插入一塊PCMCIA卡),這種介面板又稱為網路介面卡NIC(Network Interface Card)或簡稱為網卡。適配器和區域網之間的通信是通過電纜或雙絞線以串列傳輸方式進行的,而適配器和計算機之間的通信則是通過計算機主板上的I/O匯流排以並行傳輸方式進行的,因此適配器的一個重要功能就是要進行數據串列傳輸和並行傳輸的轉換。由於網路上的數據率和計算機匯流排上的數據率並不相同,所以在適配器中必須裝有對數據進行緩存的存儲晶元。若在主板上插入適配器時,還必須把管理該適配器的設備驅動程序安裝在計算機的操作系統中。這個驅動程序以後就會告訴適配器,應當從存儲器的什麼位置上把多長的數據塊發送到區域網,或應當在存儲器的什麼位置上把區域網傳送過來的數據塊存儲下來。適配器還要能夠實現乙太網協議。

要注意的是,適配器在接收和發送各種幀時是不使用計算機的CPU的,所以這時計算機中的CPU可以處理其他的任務。當適配器收到有差錯的幀時,就把這個幀丟棄而不必通知計算機,而當適配器收到正確的幀時,它就使用中斷來通知該計算機並交付給協議棧中的網路層。當計算機要發送IP數據報時,就由協議棧把IP數據報向下交給適配器,組裝成幀後發送到區域網。特別注意: 計算機的硬體地址—MAC地址,就在適配器的ROM中。計算機的軟體地址—IP地址,就在計算機的存儲器中。

CSMA/CD協議主要有以下3個要點:
1.多點接入 :指的是這是匯流排型網路,許多計算機以多點接入的方式連接在一根匯流排上。
2.載波監聽 :就是用電子技術檢測匯流排上有沒有其他的計算機也在發送。載波監聽也稱為檢測信道,也就是說,為了獲得發送權,不管在發送前,還是在發送中,每一個站都必須不停的檢測信道。如果檢測出已經有其他站在發送,則自己就暫時不發送數據,等到信道空閑時才發送數據。而在發送中檢測信道是為了及時發現有沒有其他站的發送和本站發送的碰撞。
3.碰撞檢測 :也就是邊發送邊監聽。適配器一邊發送數據一邊檢測信道上的信號電壓的變化情況,以便判斷自己在發送數據時其他站是否也在發送數據。所謂碰撞就是信號之間產生了沖突,這時匯流排上傳輸的信號嚴重失真,無法從中恢復出有用的信息來。

集線器的一些特點如下:
(1)使用集線器的乙太網在邏輯上仍然是一個匯流排網,各個站點共享邏輯上的匯流排,使用的還是CSMA/CD協議。
(2)一個集線器是有多個介面。一個集線器就像一個多介面的轉發器。
(3)集線器工作在物理層,所以它的每一個介面僅僅是簡單的轉發比特。它不會進行碰撞檢測,所以當兩個介面同時有信號的輸入,那麼所有的介面都將收不到正確的幀。
(4)集線器自身採用了專門的晶元來進行自適應串音回波抵消。這樣可使介面轉發出去的較強的信號不致對該介面收到的較弱信號產生干擾。
(5)集線器一般都有少量的容錯能力和網路管理能力,也就是說如果在乙太網中有一個適配器出現了故障,不停地發送乙太網幀,這是集線器可以檢測到這個問題從而斷開與故障適配器的連線。

在區域網中,硬體地址又稱為物理地址或者MAC地址,這種地址是用在MAC幀中的。由於6位元組的地址欄位可以使全世界所有的區域網適配器具有不同的地址,所以現在的區域網適配器都是使用6位元組MAC地址。

主要負責分配地址欄位的6個位元組中的前3個位元組。世界上凡事要生產局域適配器的廠家都必須向IEEE購買這3個位元組構成的地址號,這個地址號我們通常叫做 公司標識符 ,而地址欄位的後3個位元組則由廠家自行指派,稱為 擴展標識符

IEEE規定地址欄位的第一位元組的最低位為I/G位。當I/G位為0時,地址欄位表示一個單個站地址,而當I/G位為1時表示組地址,用來進行多播。所以IEEE只分配地址欄位前三個位元組中的23位,當I/G位分別為0和1時,一個地址塊可分別生 2^24 個單個站地址和2^24個組地址。IEEE還把地址欄位第1個位元組的最低第二位規定為G/L位。當G/L位為0時是全球管理,來保證在全球沒有相同的地址,廠商向IEEE購買的都屬於全球管理。當地址段G/L位為1時是本地管理,這時用戶可以任意分配網路上的地址,但是乙太網幾乎不會理會這個G/L位的。

適配器對MAC幀是具有的過濾功能的,當適配器從網路上每收到一個MAC幀就先用硬體檢查MAC幀中的目的地址。如果是發往本站的幀則收下,然後再進行其他的處理,否則就將此幀丟棄。這樣做就可以不浪費主機的處理機和內存資源這里發往本站的幀包括以下三種幀:
(1)單播幀:即收到的幀的MAC地址與本站的硬體地址相同。
(2)廣播幀:即發送給本區域網上所有站點的幀。
(3)多播幀:即發送給本區域網上一部分站點的幀。

常用的乙太網MAC幀格式是乙太網V2的MAC幀格式。如下圖:

可以看到乙太網V2的MAC幀比較的簡單,有五個欄位組成。前兩個欄位分別為6位元組長的目的地址和源地址欄位。第三個欄位是2位元組的類型欄位,用來標志上一層使用的是什麼協議,以便把收到的MAC幀的數據上交給上一層的這個協議。下一個欄位是數據欄位,其長度在46到1500位元組之間。最後一個欄位是4位元組的幀檢驗序列FCS(使用CRC檢驗)。

從圖中可以看出,採用乙太網V2的MAC幀並沒有一個結構來存儲一個數據的幀長度。這是由於在曼徹斯特編碼中每一個碼元的正中間一定有一次電壓的轉換,如果當發送方在發送完一個MAC幀後就不再發送了,則發送方適配器的電壓一定是不會在變化的。這樣接收方就可以知道乙太網幀結束的位置,在這個位置減去FCS序列的4個位元組,就可以知道幀的長度了。

當數據欄位的長度小於42位元組時,MAC子層就會在MAC幀後面加入一個整數位元組來填充欄位,來保證乙太網的MAC幀的長度不小於64位元組。當MAC幀傳送給上層協議後,上層協議必須具有能夠識別填充欄位的功能。當上層使用的是IP協議時,其首部就有一個總長度欄位,因此總長度加上填充欄位的長度,就是MAC幀的數據欄位的長度。

從圖中還可以看出,在傳輸MAC幀時傳輸媒體上實際是多發送了8個位元組,這是因為當MAC幀開始接收時,由於適配器的時鍾尚未與比特流達成同步,因此MAC幀的最開始的部分是無法接收的,結果就是會使整個MAC成為無用幀。所以為了接收端能夠迅速的與比特流形成同步,就需要在前面插入這8個位元組。這8個位元組是由兩個部分組成的,第一個部分是由前7個位元組構成的前同步碼,它的主要作用就是就是實現同步。第二個部分是幀開始界定符,它的作用就是告訴接收方MAC幀馬上就要來了。需要注意的是,幀與幀之間的傳輸是需要一定的間隔的,否則接收端在收到了幀開始界定符後就會認為後面的都是MAC幀而會造成錯誤。

乙太網上的主機之間的距離不能太遠,否則主機發送的信號經過銅線的傳輸就會衰減到使CSMA/CD協議無法正常工作,所以在過去常常使用工作在物理層的轉發器來拓展乙太網的地理覆蓋范圍。但是現在隨著雙絞線乙太網成為乙太網的主流類型,拓展乙太網的覆蓋范圍已經很少使用轉發器,而是使用光纖和一對光纖數據機來拓展主機和集線器之間的距離。

光纖解調器的作用是進行電信號與光信號的轉換。由於光纖帶來的時延很小,並且帶寬很寬,所以才用這種方法可以很容易地使主機和幾公里外的集線器相連接。

如果是使用多個集線器,就可以連接成覆蓋更大范圍的多級星形結構的乙太網:

使用多級星形結構的乙太網不僅能夠讓連接在不同的乙太網的計算機能夠進行通信,還可以擴大乙太網的地理覆蓋范圍。但是這樣的多級結構也帶來了一些缺點,首先這樣的結構會增大它們的碰撞域,這樣做會導致圖中的某個系的兩個站在通信時所傳送的數據會通過所有的集線器進行轉發,使得其他系的內部在這時都不能進行通信。其次如果不同的乙太網採用的是不同的技術,那麼就不可能用集線器將它們互相連接起來。

拓展乙太網的更常用的方法是在數據鏈路層中進行的,在開始時人們使用的是網橋。但是現在人們更常用的是 乙太網交換機

乙太網交換機實質上是一個多介面的網橋,通常是有十幾個或者更多的介面,而每一個介面都是直接與一個單台主機或者另一個乙太網交換機相連。同時乙太網交換機還具有並行性,即能同時連通多對介面,使多對主機能同時通信,對於相互通信的主機來說都是獨占傳輸媒體且無碰撞的傳輸數據。

乙太網交換機的介面還有存儲器,能夠在輸出埠繁忙時把到來的幀進行緩存,等到介面不再繁忙時再將緩存的幀發送出去。

乙太網交換機還是一種即插即用的設備,它的內部的地址表是通過自學習演算法自動的建立起來的。乙太網交換機由於使用了專用的交換結構晶元,用硬體轉發,它的轉發速率是要比使用軟體轉發的網橋快很多。

如下圖中帶有4個介面的乙太網交換機,它的4個介面各連接一台計算機,其MAC地址分別為A、B、C、D。在開始時,乙太網交換機裡面的交換表是空的。

首先,A先向B發送一幀,從介面1進入到交換機。交換機收到幀後,先查找交換表,但是沒有查到應從哪個介面轉發這個幀,接著交換機把這個幀的源地址A和介面1寫入交換表中,並向除介面1以外的所有介面廣播這個幀。C和D因為目的地址不對會將這個幀丟棄,只有B才收下這個目的地址正確的幀。從新寫入的交換表(A,1)可以得出,以後不管從哪一個介面收到幀,只要其目的地址是A,就應當把收到的幀從介面1轉發出去。以此類推,只要主機A、B、C也向其他主機發送幀,乙太網交換機中的交換表就會把轉發到A或B或C應當經過的借口號寫入到交換表中,這樣交換表中的項目就齊全了,以後要轉發給任何一台主機的幀,就都能夠很快的在交換表中找到相應的轉發介面。

考慮到有時可能要在交換機的介面更換主機或者主機要更換其網路適配器,這就需要更改交換表中的項目,所以交換表中每個項目都設有一定的有效時間。

但是這樣的自學習有時也會在某個環路中無限制的兜圈子,如下圖:

假設一開始主機A通過介面交換機#1向主機B發送一幀。交換機#1收到這個幀後就向所有其他介面進行廣播發送。其中一個幀的走向:離開#1的3->交換機#2的介面1->介面2->交換機#1的介面4->介面3->交換機#2的介面1......一直循環下去,白白消耗網路資源。所以為了解決這樣的問題,IEEE制定了一個生成樹協議STP,其要點就是不改變網路的實際拓撲,但在邏輯上切斷某些鏈路,從而防止出現環路。

虛擬區域網VLAN是由一些區域網網段構成的與物理位置無關的邏輯組,而這些網段具有某些共同的需求。每一個VLAN的幀都有一個明確的標識符,指明發送這個幀的計算機屬於VLAN。要注意虛擬區域網其實只是區域網給用戶提供的一種服務,而不是一種新型區域網。

現在已經有標準定義了乙太網的幀格式的擴展,以便支持虛擬區域網。虛擬區域網協議允許在乙太網的幀格式中插入一個4位元組的標識符,稱為VLAN標記,它是用來指明發送該幀的計算機屬於哪一個虛擬區域網。VLAN標記欄位的長度是4位元組,插入在乙太網MAC幀的源地址欄位和類型欄位之間。VLAN標記的前兩個位元組總是設置為0x8100,稱為IEEE802.1Q標記類型。當數據鏈路層檢測到MAC幀的源地址欄位後面的兩個位元組的值是0x8100時,就知道現在插入了4位元組的VLAN標記。於是就接著檢查後面兩個位元組的內容,在後面的兩個位元組中,前3位是用戶優先順序欄位,接著的一位是規范格式指示符CFI,最後的12位是該虛擬區域網VLAN標識符VID,它唯一的標志了這個以台網屬於哪一個VLAN。

高速乙太網主要是分為三種,即100BASE-T乙太網、吉比特乙太網和10吉比特乙太網:

㈩ 計算機網路第三章(數據鏈路層)

3.1、數據鏈路層概述

概述

鏈路 是從一個結點到相鄰結點的一段物理線路, 數據鏈路 則是在鏈路的基礎上增加了一些必要的硬體(如網路適配器)和軟體(如協議的實現)

網路中的主機、路由器等都必須實現數據鏈路層

區域網中的主機、交換機等都必須實現數據鏈路層

從層次上來看數據的流動

僅從數據鏈路層觀察幀的流動

主機H1 到主機H2 所經過的網路可以是多種不同類型的

注意:不同的鏈路層可能採用不同的數據鏈路層協議

數據鏈路層使用的信道

數據鏈路層屬於計算機網路的低層。 數據鏈路層使用的信道主要有以下兩種類型:

點對點信道

廣播信道

區域網屬於數據鏈路層

區域網雖然是個網路。但我們並不把區域網放在網路層中討論。這是因為在網路層要討論的是多個網路互連的問題,是討論分組怎麼從一個網路,通過路由器,轉發到另一個網路。

而在同一個區域網中,分組怎麼從一台主機傳送到另一台主機,但並不經過路由器轉發。從整個互聯網來看, 區域網仍屬於數據鏈路層 的范圍

三個重要問題

數據鏈路層傳送的協議數據單元是 幀

封裝成幀

封裝成幀 (framing) 就是在一段數據的前後分別添加首部和尾部,然後就構成了一個幀。

首部和尾部的一個重要作用就是進行 幀定界 。

差錯控制

在傳輸過程中可能會產生 比特差錯 :1 可能會變成 0, 而 0 也可能變成 1。

可靠傳輸

接收方主機收到有誤碼的幀後,是不會接受該幀的,會將它丟棄

如果數據鏈路層向其上層提供的是不可靠服務,那麼丟棄就丟棄了,不會再有更多措施

如果數據鏈路層向其上層提供的是可靠服務,那就還需要其他措施,來確保接收方主機還可以重新收到被丟棄的這個幀的正確副本

以上三個問題都是使用 點對點信道的數據鏈路層 來舉例的

如果使用廣播信道的數據鏈路層除了包含上面三個問題外,還有一些問題要解決

如圖所示,主機A,B,C,D,E通過一根匯流排進行互連,主機A要給主機C發送數據,代表幀的信號會通過匯流排傳輸到匯流排上的其他各主機,那麼主機B,D,E如何知道所收到的幀不是發送給她們的,主機C如何知道發送的幀是發送給自己的

可以用編址(地址)的來解決

將幀的目的地址添加在幀中一起傳輸

還有數據碰撞問題

隨著技術的發展,交換技術的成熟,

在 有線(區域網)領域 使用 點對點鏈路 和 鏈路層交換機 的 交換式區域網 取代了 共享式區域網

在無線區域網中仍然使用的是共享信道技術

3.2、封裝成幀

介紹

封裝成幀是指數據鏈路層給上層交付的協議數據單元添加幀頭和幀尾使之成為幀

幀頭和幀尾中包含有重要的控制信息

發送方的數據鏈路層將上層交付下來的協議數據單元封裝成幀後,還要通過物理層,將構成幀的各比特,轉換成電信號交給傳輸媒體,那麼接收方的數據鏈路層如何從物理層交付的比特流中提取出一個個的幀?

答:需要幀頭和幀尾來做 幀定界

但比不是每一種數據鏈路層協議的幀都包含有幀定界標志,例如下面例子

前導碼

前同步碼:作用是使接收方的時鍾同步

幀開始定界符:表明其後面緊跟著的就是MAC幀

另外乙太網還規定了幀間間隔為96比特時間,因此,MAC幀不需要幀結束定界符

透明傳輸

透明

指某一個實際存在的事物看起來卻好像不存在一樣。

透明傳輸是指 數據鏈路層對上層交付的傳輸數據沒有任何限制 ,好像數據鏈路層不存在一樣

幀界定標志也就是個特定數據值,如果在上層交付的協議數據單元中, 恰好也包含這個特定數值,接收方就不能正確接收

所以數據鏈路層應該對上層交付的數據有限制,其內容不能包含幀定界符的值

解決透明傳輸問題

解決方法 :面向位元組的物理鏈路使用 位元組填充 (byte stuffing) 或 字元填充 (character stuffing),面向比特的物理鏈路使用比特填充的方法實現透明傳輸

發送端的數據鏈路層在數據中出現控制字元「SOH」或「EOT」的前面 插入一個轉義字元「ESC」 (其十六進制編碼是1B)。

接收端的數據鏈路層在將數據送往網路層之前刪除插入的轉義字元。

如果轉義字元也出現在數據當中,那麼應在轉義字元前面插入一個轉義字元 ESC。當接收端收到連續的兩個轉義字元時,就刪除其中前面的一個。

幀的數據部分長度

總結

3.3、差錯檢測

介紹

奇偶校驗

循環冗餘校驗CRC(Cyclic Rendancy Check)

例題

總結

循環冗餘校驗 CRC 是一種檢錯方法,而幀校驗序列 FCS 是添加在數據後面的冗餘碼

3.4、可靠傳輸

基本概念

下面是比特差錯

其他傳輸差錯

分組丟失

路由器輸入隊列快滿了,主動丟棄收到的分組

分組失序

數據並未按照發送順序依次到達接收端

分組重復

由於某些原因,有些分組在網路中滯留了,沒有及時到達接收端,這可能會造成發送端對該分組的重發,重發的分組到達接收端,但一段時間後,滯留在網路的分組也到達了接收端,這就造成 分組重復 的傳輸差錯

三種可靠協議

停止-等待協議SW

回退N幀協議GBN

選擇重傳協議SR

這三種可靠傳輸實現機制的基本原理並不僅限於數據鏈路層,可以應用到計算機網路體系結構的各層協議中

停止-等待協議

停止-等待協議可能遇到的四個問題

確認與否認

超時重傳

確認丟失

既然數據分組需要編號,確認分組是否需要編號?

要。如下圖所示

確認遲到

注意,圖中最下面那個數據分組與之前序號為0的那個數據分組不是同一個數據分組

注意事項

停止-等待協議的信道利用率

假設收發雙方之間是一條直通的信道

TD :是發送方發送數據分組所耗費的發送時延

RTT :是收發雙方之間的往返時間

TA :是接收方發送確認分組所耗費的發送時延

TA一般都遠小於TD,可以忽略,當RTT遠大於TD時,信道利用率會非常低

像停止-等待協議這樣通過確認和重傳機制實現的可靠傳輸協議,常稱為自動請求重傳協議ARQ( A utomatic R epeat re Q uest),意思是重傳的請求是自動進行,因為不需要接收方顯式地請求,發送方重傳某個發送的分組

回退N幀協議GBN

為什麼用回退N幀協議

在相同的時間內,使用停止-等待協議的發送方只能發送一個數據分組,而採用流水線傳輸的發送方,可以發送多個數據分組

回退N幀協議在流水線傳輸的基礎上,利用發送窗口來限制發送方可連續發送數據分組的個數

無差錯情況流程

發送方將序號落在發送窗口內的0~4號數據分組,依次連續發送出去

他們經過互聯網傳輸正確到達接收方,就是沒有亂序和誤碼,接收方按序接收它們,每接收一個,接收窗口就向前滑動一個位置,並給發送方發送針對所接收分組的確認分組,在通過互聯網的傳輸正確到達了發送方

發送方每接收一個、發送窗口就向前滑動一個位置,這樣就有新的序號落入發送窗口,發送方可以將收到確認的數據分組從緩存中刪除了,而接收方可以擇機將已接收的數據分組交付上層處理

累計確認

累計確認

優點:

即使確認分組丟失,發送方也可能不必重傳

減小接收方的開銷

減小對網路資源的佔用

缺點:

不能向發送方及時反映出接收方已經正確接收的數據分組信息

有差錯情況

例如

在傳輸數據分組時,5號數據分組出現誤碼,接收方通過數據分組中的檢錯碼發現了錯誤

於是丟棄該分組,而後續到達的這剩下四個分組與接收窗口的序號不匹配

接收同樣也不能接收它們,講它們丟棄,並對之前按序接收的最後一個數據分組進行確認,發送ACK4, 每丟棄一個數據分組,就發送一個ACK4

當收到重復的ACK4時,就知道之前所發送的數據分組出現了差錯,於是可以不等超時計時器超時就立刻開始重傳,具體收到幾個重復確認就立刻重傳,根據具體實現決定

如果收到這4個重復的確認並不會觸發發送立刻重傳,一段時間後。超時計時器超時,也會將發送窗口內以發送過的這些數據分組全部重傳

若WT超過取值范圍,例如WT=8,會出現什麼情況?

習題

總結

回退N幀協議在流水線傳輸的基礎上利用發送窗口來限制發送方連續發送數據分組的數量,是一種連續ARQ協議

在協議的工作過程中發送窗口和接收窗口不斷向前滑動,因此這類協議又稱為滑動窗口協議

由於回退N幀協議的特性,當通信線路質量不好時,其信道利用率並不比停止-等待協議高

選擇重傳協議SR

具體流程請看視頻

習題

總結

3.5、點對點協議PPP

點對點協議PPP(Point-to-Point Protocol)是目前使用最廣泛的點對點數據鏈路層協議

PPP協議是網際網路工程任務組IEIF在1992年制定的。經過1993年和1994年的修訂,現在的PPP協議已成為網際網路的正式標准[RFC1661,RFC1662]

數據鏈路層使用的一種協議,它的特點是:簡單;只檢測差錯,而不是糾正差錯;不使用序號,也不進行流量控制;可同時支持多種網路層協議

PPPoE 是為寬頻上網的主機使用的鏈路層協議

幀格式

必須規定特殊的字元作為幀定界符

透明傳輸

必須保證數據傳輸的透明性

實現透明傳輸的方法

面向位元組的非同步鏈路:位元組填充法(插入「轉義字元」)

面向比特的同步鏈路:比特填充法(插入「比特0」)

差錯檢測

能夠對接收端收到的幀進行檢測,並立即丟棄有差錯的幀。

工作狀態

當用戶撥號接入 ISP 時,路由器的數據機對撥號做出確認,並建立一條物理連接。

PC 機向路由器發送一系列的 LCP 分組(封裝成多個 PPP 幀)。

這些分組及其響應選擇一些 PPP 參數,並進行網路層配置,NCP 給新接入的 PC 機

分配一個臨時的 IP 地址,使 PC 機成為網際網路上的一個主機。

通信完畢時,NCP 釋放網路層連接,收回原來分配出去的 IP 地址。接著,LCP 釋放數據鏈路層連接。最後釋放的是物理層的連接。

可見,PPP 協議已不是純粹的數據鏈路層的協議,它還包含了物理層和網路層的內容。

3.6、媒體接入控制(介質訪問控制)——廣播信道

媒體接入控制(介質訪問控制)使用一對多的廣播通信方式

Medium Access Control 翻譯成媒體接入控制,有些翻譯成介質訪問控制

區域網的數據鏈路層

區域網最主要的 特點 是:

網路為一個單位所擁有;

地理范圍和站點數目均有限。

區域網具有如下 主要優點 :

具有廣播功能,從一個站點可很方便地訪問全網。區域網上的主機可共享連接在區域網上的各種硬體和軟體資源。

便於系統的擴展和逐漸地演變,各設備的位置可靈活調整和改變。

提高了系統的可靠性、可用性和殘存性。

數據鏈路層的兩個子層

為了使數據鏈路層能更好地適應多種區域網標准,IEEE 802 委員會就將區域網的數據鏈路層拆成 兩個子層 :

邏輯鏈路控制 LLC (Logical Link Control)子層;

媒體接入控制 MAC (Medium Access Control)子層。

與接入到傳輸媒體有關的內容都放在 MAC子層,而 LLC 子層則與傳輸媒體無關。 不管採用何種協議的區域網,對 LLC 子層來說都是透明的。

基本概念

為什麼要媒體接入控制(介質訪問控制)?

共享信道帶來的問題

若多個設備在共享信道上同時發送數據,則會造成彼此干擾,導致發送失敗。

隨著技術的發展,交換技術的成熟和成本的降低,具有更高性能的使用點對點鏈路和鏈路層交換機的交換式區域網在有線領域已完全取代了共享式區域網,但由於無線信道的廣播天性,無線區域網仍然使用的是共享媒體技術

靜態劃分信道

信道復用

頻分復用FDM (Frequency Division Multiplexing)

將整個帶寬分為多份,用戶在分配到一定的頻帶後,在通信過程中自始至終都佔用這個頻帶。

頻分復用 的所有用戶在同樣的時間 佔用不同的帶寬資源 (請注意,這里的「帶寬」是頻率帶寬而不是數據的發送速率)。

閱讀全文

與計算機網路數據鏈路層使用心得相關的資料

熱點內容
刺客游戲有哪些不需要網路 瀏覽:437
酒店移動網路共享是什麼 瀏覽:424
如何關閉電腦睡眠關閉網路 瀏覽:806
兼職網路工程師哪個網校好 瀏覽:82
杭州網路優化哪裡好 瀏覽:236
通信網路如何升級 瀏覽:228
電腦連接到網路時怎麼不顯示 瀏覽:393
計算機網路四級通過率 瀏覽:465
最快的無線網路 瀏覽:67
5g手機就有5g網路嗎 瀏覽:984
電腦之間網路共用 瀏覽:827
手機網路一直閃是怎麼回事 瀏覽:132
當今電信手機網路質量好不好 瀏覽:959
有一台計算機無法訪問共享網路 瀏覽:749
安冉網路設像機軟體 瀏覽:660
華為手機是2g網路怎麼變回4g 瀏覽:51
萬能路由器沒有網路可以用嗎 瀏覽:798
有網路連接但電腦無法上網 瀏覽:308
魔豆車主網路連接 瀏覽:596
手機網路怎麼看多少人用 瀏覽:828

友情鏈接