計算機網絡(三)數據鏈路層
- 1.基本概念
- 2.功能概述
- 3.組幀
- 字符計數法
- 字符填充法
- 零比特填充法
- 違規編碼法
- 4.差錯控制
- 檢錯編碼
- 奇偶校驗碼
- CRC循環冗余碼
- 糾錯編碼
- 海明碼
- 流量控制
- 停止等待協議
- 滑動窗口協議
- 后退N幀協議(GBN)
- 選擇重傳協議
- 5.介質訪問控制
- 靜態劃分信道(信道劃分介質訪問控制)
- 動態分配信道
- 隨機訪問介質訪問控制
- ALOHA協議
- CSMA協議
- 1-堅持CSMA
- 非堅持CSMA
- p-堅持CSMA
- CSMA/CD協議
- CSMA/CA協議
- 輪詢訪問介質訪問控制
- 令牌傳遞協議
1.基本概念
數據鏈路層負責通過一條鏈路從一個結點向另一個物理鏈路直接相連的相鄰結點傳送數據報
結點:主機、路由器
鏈路:網絡中兩個結點之間的物理通道,鏈路的傳輸介質主要有雙絞線、光纖和微波。分為有線鏈路、無線鏈路。
數據鏈路:網絡中兩個結點之間的邏輯通道,把實現控制數據傳輸協議的硬件和軟件加到鏈路上就構成數據鏈路
幀:鏈路層的協議數據單元,封裝網絡層數據報。
2.功能概述
數據鏈路層在物理層提供服務的基礎上向網絡層提供服務,其最基本的服務是將源自網絡層來的數據可靠地傳輸到相鄰節點的目標機網絡層。其主要作用是加強物理層傳輸原始比特流的功能,將物理層提供的可能出錯的物理連接改造成為邏輯上無差錯的數據鏈路,使之對網絡層表現為一條無差錯的鏈路。
功能一:為網絡層提供服務。
功能二:鏈路管理,即連接的建立、維持、釋放(用于面向連接的服務)。
功能三:組幀。
功能四:流量控制。
功能五:差錯控制(幀錯/位錯)
3.組幀
封裝成幀就是在一段數據的前后部分添加首部和尾部,這樣就構成了一個幀。接收端在收到物理層上交的比特流后,就能根據首部和尾部的標記,從收到的比特流中識別幀的開始和結束。首部和尾部包含許多的控制信息,他們的一個重要作用:幀定界(確定幀的界限)。
幀同步:接收方應當能從接收到的二進制比特流中區分出幀的起始和終止。
組幀的四種方法:1.字符計數法,2.字符(節)填充法,3.零比特填充法,4.違規編碼法。
字符計數法
幀首部使用一個計數字段來標明幀內字符數。如圖中,第一個幀是5個字符,第二個是5個字符,第三個是8個,第四個是8個
缺點:如果技術字符出錯,將失去幀邊界劃分的依據,無法進行同步
字符填充法
SOH作為幀的開始,EOT作為結束,當數據里又EOT,SOH時,為了避免被誤判,都會在這些特殊的字符中前加個ESC轉義字符
接受方收到這些數據后,加填充的刪掉
還原
零比特填充法
操作:1.在發送端,掃描整個信息字段,只要連續5個1,就立即填入1個0
2.在接收端收到一個幀時,先找到標志字段確定邊界,再用硬件對比特流進行掃描。發現連續5個1時,就把后面的0刪除。
保證了透明傳輸:在傳送的比特流中可以傳送任意比特組合,而不會引起對幀邊界的判斷錯誤。這種方法也容易由硬件來實現,性能優于字符填充法
違規編碼法
可以用“高-高”,“低-低”來定界幀的起始和終止。
由于字節計數法中Count字段的脆弱性(其值若有差錯將導致災難性后果)及字符填充實現
上的復雜性和不兼容性,目前較普遍使用的幀同步法是比特填充和違規編碼法。
4.差錯控制
傳輸中的差錯是由于噪聲引起的
全局性:1.由于線路本身電氣特性所產生的隨機噪聲(熱噪聲),是信道固有的,隨機存在的。
局部性:2.外界特定的短暫原因所造成的沖擊噪聲,是產生差錯的主要原因。
全局性
解決辦法:提高信噪比來減少或避免干擾。
檢錯編碼
奇偶校驗碼
簡單地說,就是發送方發送數據地時候,如果采用奇校驗,1的個數是奇數,而如果是偶校驗,則是偶校驗
奇偶校驗碼特點:只能查出奇數個錯誤,檢錯能力50%。
CRC循環冗余碼
發送端和接收端雙方會事先商定一個多項式G(x)
例:要發送的數據是1101 0110 11,采用CRC校驗,生成多項式是10011,那么最終發送的數據應該是?
接收端檢錯過程:
把收到的每一個幀都除以同樣的除數,然后檢查得到的余數R。
1.余數為0,判定這個幀沒有差錯,接受。
2.余數為不為0,判定這個幀有差錯(無法確定到位),丟棄。
FCS的生成以及接收端CRC檢驗都是由硬件實現,處理很迅速,因此不會延誤數據的傳輸。
糾錯編碼
海明碼
流量控制
較高的發送速度和較低的接收能力的不匹配,會造成傳輸出錯,因此流量控制也是數據鏈路層的一項重要工作。數據鏈路層的流量控制是點對點的,而傳輸層的流量控制是端到端的。
數據鏈路層流量控制手段:接收方收不下就不回復確認。
傳輸層流量控制手段:接收端給發送端一個窗口公告。
停止等待協議
1.數據幀丟失或檢測到幀出錯
如果在發送過程中數據幀丟失或檢測到幀出錯,此時發送端會接收不到回應,超時計時器在每次發送的時候都會啟動,超時后重傳幀數據
【注】1.每發一個幀,都會保留它的副本,以防出錯或幀丟失
2.數據幀和確認幀都必須編號
2.ACK丟失
3.ACK遲到
缺點:信道利用率比較低,要等到收到ACK后才能在發
滑動窗口協議
后退N幀協議(GBN)
發送窗口:發送方維持一組連續的允許發送的幀的序號
接收窗口:接收方維持一組連續的允許接收幀的序號。
如果2幀在傳輸過程中丟失,接收端只會順序的接收幀,所有之后收到3,4,5幀都會丟棄,同時發送,ACK1,表示幀1已經收到,希望發送端發送幀2來, 而另一邊,發送端幀2計時器出現超時,重新發送幀2.
在GBN中發送端是無需收到上一個ACK后才能開始發送下一幀,而是可以連續發送,而接收到需要按順序的接收到幀,失序的幀都會丟棄,相較于停止-等待協議,信道利用率提高,但是,由于接收端只能按序接收幀,也是它的一個缺點
選擇重傳協議

5.介質訪問控制
靜態劃分信道(信道劃分介質訪問控制)
1.頻分多路復用FDM
2.時分多路復用TDM
3.波分多路復用WDM
4.碼分多路復用
動態分配信道
隨機訪問介質訪問控制
ALOHA協議
純ALOHA協議:不監聽信道,不按時間槽發送,隨機重發
沖突如何檢測?
如果發生沖突,接收方在就會檢測出差錯,然后不予確認,發送方在一定時間內收不到就判斷發生沖突。
沖突如何解決?
超時后等一隨機時間再重傳。
時隙ALOHA協議:把時間分成若干個相同的時間片,所有用戶在時間片開始時刻同步接入網絡信道,若發生沖突,則必須等到下一個時間片開始時刻再發送
1.純ALOHA比時隙ALOHA吞吐量更低,效率更低。
2.純ALOHA想發就發,時隙ALOHA只有在時間片段開始時才能發。
CSMA協議
CS:載波偵聽/監聽,每一個站在發送數據之前要檢測一下總線上是否有其他計算機在發送數據。
當幾個站同時在總線上發送數據時,總線上的信號電壓擺動值將會增大(互相疊加)。當一個站檢測到的信號電壓擺動值超過一定門限值時,就認為總線上至少有兩個站同時在發送數據,表明產生了碰撞,即發生了沖突。
MA:多點接入,表示許多計算機以多點接入的方式連接在一根總線上。
協議思想:發送幀之前,監聽信道
1-堅持CSMA
1-堅持CSMA思想:如果一個主機要發送消息,那么它先監聽信道。空閑則直接傳輸,不必等待。忙則一直監聽,直到空閑馬上傳輸。如果有沖突(一段時間內未收到肯定回復),則等待一個隨機長的時間再監聽,重復上述過程。
優點:只要媒體空閑,站點就馬上發送,避免了媒體利用率的損失。
缺點:假如有兩個或兩個以上的站點有數據要發送,沖突就不可避免。
非堅持CSMA
非堅持指的是對于監聽信道忙之后就不繼續監聽。
非堅持CSMA思想:如果一個主機要發送消息,那么它先監聽信道。空閑則直接傳輸,不必等待。忙則等待一個隨機的時間之后再進行監聽。
優點:采用隨機的重發延遲時間可以減少沖突發生的可能性。
缺點:可能存在大家都在延遲等待過程中,使得媒體仍可能處于空閑狀態,媒體使用率降低
p-堅持CSMA
p-堅持指的是對于監聽信道空閑的處理。
p-堅持CSMA思想:如果一個主機要發送消息,那么它先監聽信道。空閑則以p概率直接傳輸,不必等待;概率1-p等待到下一個時間槽再傳輸。忙則持續監聽直到信道空閑再以p概率發送。若沖突則等到下一個時間槽開始再監聽并重復上述過程。
優點:既能像非堅持算法那樣減少沖突,又能像1-堅持算法那樣減少媒體空閑時間的這種方案。
CSMA/CD協議
CS:載波偵聽/監聽,每一個站在發送數據之前以及發送數據時都要檢測一下總線上是否有其他計算機在發送數據。
MA:多點接入,表示許多計算機以多點接入的方式連接在一根總線上。
CD:碰撞檢測(沖突檢測),“邊發送邊監聽”,適配器邊發送數據邊檢測信道上信號電壓的變化情況,以便判斷自己在發送數據時其他站是否也在發送數據
CSMA/CA協議
1.發送數據前,先檢測信道是否空閑。
2.空閑則發出RTS(request to send),RTS包括發射端的地址、接收端的地址、下一份數據將持續發送的時間等信息;信道忙則等待。
3.接收端收到RTS后,將響應CTS(clear to send)。
4.發送端收到CTS后,開始發送數據幀(同時預約信道:發送方告知其他站點自己要傳多久數據)。
5.接收端收到數據幀后,將用CRC來檢驗數據是否正確,正確則響應ACK幀。
6.發送方收到ACK就可以進行下一個數據幀的發送,若沒有則一直重傳至規定重發次數為止(采用二進制指數退避算法來確定隨機的推遲時間)。
CSMA/CD與CSMA/CA相同點:CSMA/CD與CSMA/CA機制都從屬于CSMA的思路,其核心是先聽再說。換言之,兩個在接入信道之前都須要
進行監聽。當發現信道空閑后,才能進行接入。
不同點:
- 傳輸介質不同:CSMA/CD 用于總線式以太網【有線】,而CSMA/CA用于無線局域網【無線】。
2.載波檢測方式不同:因傳輸介質不同,CSMA/CD與CSMA/CA的檢測方式也不同。CSMA/CD通過電纜中電壓的變化來檢測,當數據發生碰撞時,電纜中的電壓就會隨著發生變化;而CSMA/CA采用能量檢測(ED)、載波檢測(CS)和能量載波混合檢測三種檢測信道空閑的方式。
3.CSMA/CD檢測沖突,CSMA/CA避免沖突,二者出現沖突后都會進行有上限的重傳。
輪詢訪問介質訪問控制
令牌傳遞協議
令牌:一個特殊格式的MAC控制幀,不含任何信息。控制信道的使用,確保同一時刻只有一個結點獨占信道。每個結點都可以在一定的時間內(令牌持有時間)獲得發送數據的權利,并不是無限制地持有令牌。