計算機網路筆記-第三章 資料鏈路層
第三章 資料鏈路層
- 鏈路層的功能
- 鏈路層的兩種通道
- 區域網,廣域網
- 鏈路層的裝置
3.1資料鏈路層的功能
3.1.1為網路層提供的服務
服務 | 特點 | 應用 |
---|---|---|
無確認無連線服務 | 適用於實時通訊或誤位元速率較低的通訊通道 | 乙太網 |
有確認無連線的服務 | 適用於誤位元速率較高的通訊通道 | 無線通訊 |
有確認有連結的服務 | 適用於通訊要求(可靠性、實時性)較高的通訊通道 |
3.1.2鏈路管理
資料鏈路層的連線的建立、維持和釋放的過程
主要用於面向連線的服務。
3.1.3幀定界、幀同步和透明傳輸
兩臺主機之間傳輸資訊時,必須將網路層的分組封裝成幀,一陣的格式傳遞
幀定界: 首尾部中的控制資訊可以用來確定幀的界限。
幀同步: 接收方應能接收到的二進位制位元流中區分出幀的起始和終止
透明傳輸: 傳送的位元組對於資料鏈路層來說是透明的,無論什麼組合都可以傳遞
3.1.4流量控制
:限制傳送方的資料流量,使其傳送速率不超過接收方的接受能力
對於資料鏈路層來說,控制的是相鄰兩節點之間資料鏈路上的流量
對於 運輸層 來說, 控制的則是從源端到目的端之間的流量
3.1.5差錯控制
3.2.封裝成幀(組幀)和透明傳輸
封裝成幀就是加將資料加頭加尾,相當於將資料打包
透明傳輸就是為了防止特殊的資料無法正常傳輸的的情況的發生,比如說在封裝成幀的過程中出現數據中的某些標記符與開始/結束標記符恰巧重複等等情況
3.2.1透明傳輸的應用
3.2.1.1字元計數法
就是在幀的首部做計數,檢視資料是否有誤
缺點:如果在某一個幀內,標記位後面的某個位元組的資料丟失,那麼會影響後面的幀
比如3 1 1 和 4 2 2 2,如果前面的幀丟失變成 3 1,那麼後面的4就會被補到前面變成 3 1 4導致錯誤
3.2.1.2字元填充法
就是加頭加尾分別標記開始結束,和零位元填充法(見下)對比,開始和結束的對應的字元不一樣
但有可能出現數據內某段位元流資料正好與標記欄位重複,從而導致誤判斷的情況
解決方法:新增轉義字元
3.2.1.3零位元填充法
3.2.1.4違規編碼法
因為曼徹斯特編碼不使用高-高,低-低來表示,所以如果使用高-高,低-低來表示幀起始和終止就不會與資料衝突
3.3差錯控制(檢錯編碼)
3.3.1 差錯是什麼,從哪來的
資料鏈路層的差錯檢測的是位元的錯誤
3.3.2為什麼要在資料鏈路層進行差錯控制?
因為錯誤可以儘早發現,不會讓一個錯誤的資料包傳送了很長時間到達最終目的地之後才被發現,從而導致網路資源的浪費
3.3.3檢錯編碼(奇偶校驗碼,迴圈冗餘碼CRC)
奇偶校驗碼
缺點:只能檢測出1,3,5,7…等等奇位數錯誤,檢測成功率位50%
迴圈冗餘碼CRC
就是用傳輸資料除以生成多項式得到冗餘碼
實際例子
註釋:
1.階數就是最高位是哪位,然後位數-1,如10011就是5-1=4,1011就是4-1=3
2.異或運算就是相同得0,不同得1,比如100和101做異或,結果就是001
3.出書和最後的餘數新增到要傳送的資料後面,稱為幀檢驗序列FCS
接收方收到資料後進行檢測
注意
3.3.4糾錯編碼(海明碼)
分為四步
第一步 確認校驗碼位數r
第二步 確定校驗碼和資料的位置
註釋:
1.為什麼是10為資料位?因為4位校驗碼+6位資訊位=10位
2.校驗碼放到2的幾次方的位置,其他的地方按順序放已知的資訊位
第三步 求出校驗碼的值
註釋
1.先是通過二進位制位確定有幾位。本題中因為最大位10的二進位制是1010,所以是4為,將其標註
2.然後從p1開始看,看p1的二進位制位的數值和所有資訊位的對應位置的數值是否相同,然後找出來這些位
這裡有點難理解,這裡以p1為例輔助理解,這裡找出來的就是P1,D1,D2,D4,D5
然後計算異或值,比如說這裡D1=1,D2=0,D4=1,D5=0,就是p1要同時和0,1,0,1進行異或之後得到0,為了標識我加粗原始計算資料
舉例:0和1異或得1,1和0異或得1,1和1異或得0,那麼p1和0異或得0,p1就是0了
3.其他同理,按順序計算出P2,P3,P4,然後填入表格
第四步 檢測並糾錯
就是和上面一樣,將所有校驗位進行運算,得出的結果的值就是錯誤的位
小結
3.4資料鏈路層的流量控制和可靠傳輸
3.4.1 流量控制與可靠傳輸
流量控制是為了讓傳輸過程中的傳送速度和接受速度匹配,減少傳輸出錯與資源浪費
可靠傳輸是傳送端傳送什麼,接收端就要受到什麼
資料鏈路層的流量控制是點對點的,而傳輸層的流量控制是端到端的。
資料鏈路層流量控制手段:接收方收不下就不回覆確認。
傳輸層流量控制手段:接收端給傳送端一個視窗公告。
流量控制的方法
3.4.2停止等待協議
停止等待協議的無差錯情況
註釋:因為一次就一個,所以用0和1標記ack就行
停止等待協議的有差錯情況
停止等待協議的特點
1.簡單
2.通道利用率低。大部分時間資料都在路上,傳送方很長時間閒置,資源浪費
3.4.3後退N幀協議(GBN)
因為停止等待協議太浪費時間了,所以嘗試採用GBN,傳送連續多個數據幀,以增大通道利用率
註釋:
累計確認:就是收到一個確認幀,那麼它和它之前的所有幀都預設已收到,反之,如果某個確認幀沒收到,那麼它和它之後的所有幀都預設丟失(即使收到了也丟掉),進行重傳
下圖是一個例項
註釋:此圖傳送2幀時丟失,所以接收方几首收到後面的幀也是直接丟棄並且傳送最晚收到的有效幀1的ACK,直至2幀的超時重傳機制被觸發進行重傳並得到ACK之後,接收方才會接受2幀以及後面的幀
傳送視窗不能無限大,與使用的編號的位元數有關
很簡單,就是1位元編號0和1,同理2位元編號0-3,如果用1位元編號,卻要4個視窗長度,那麼視窗內資料編號都編不過來,直接亂套了
GBN的優缺點也顯而易見,優點是提高了通道利用率,缺點是因為重傳機制的原因導致已經收到資料卻需要強行丟棄而造成浪費
GBN協議效能分析—
因連續傳送資料幀而提高了通道利用率
在重傳時必須把原來已經正確傳送的資料幀重傳,是傳送效率降低。
3.4.4選擇重傳協議(SR)
為了解決GBN的缺點,我們打算嘗試只重傳錯誤的幀,這樣的話就不用浪費資源吧已經收到的幀再重傳一次了。
和GBN相比,兩者都有視窗了,和GBN的區別其實就是做了一個數據快取,已經收到的幀不用扔了,等待之前因意外丟失的幀收到的時候確認即可,但是隻能快取視窗尺寸內的包含的幀(PS,快取咋可能無限大)
SR執行過程
註釋:2幀丟失之後仍然在傳送,但是2幀丟失之後只是快取,並沒有移動視窗,直至最後2幀收到後一次性確認2-5幀
同樣的,因為編號的問題,傳送視窗不能無限大
WTmax=WRmax=2的(n-1)次方
傳送視窗最後和接受視窗大小相同,這樣利用率比較高
3.5介質訪問控制
就是讓節點之間的通訊不會進行相互干擾
3.5.1通道劃分介質訪問控制(靜態劃分)
通道劃分
介質訪問控制
通道劃分介質訪問控制:雖然使用一條共享通道,但是通過多路複用技術組合進行傳輸,提高了通道的利用率
頻分多路複用FDM
時分多路複用TDM
改進的時分複用——統計時分複用STDM
波分多路複用WDM(一般不考)
碼分多路複用CDM
小結
3.5.2動態劃分-隨機訪問介質訪問控制
所有使用者都可以隨機發送資訊,傳送時可以佔用全部頻寬,理論上個人使用時比靜態分配通道的速度更快
1.ALOHA協議
純ALOHA協議缺點:太隨性,導致效率低
改進的ALOHA協議——時隙ALOHA協議
相對於純ALOHA協議就是固定了傳送的時間(只能在一個時間片的開始),提高了效率
兩者聯絡與區別
2.CSMA協議
名稱 | 描述 | 優點 | 缺點 |
---|---|---|---|
1-堅持CSMA | 傳送資訊時監聽通道,一空閒下來就立即傳輸,通道忙也一直監聽,如果傳送時衝突就等待隨機時長之後再監聽 | 立即傳送,利用率高 | 如果多臺裝置同時監聽,那麼會發生衝突 |
非堅持CSMA | 傳送資訊時監聽通道,如果空閒就立即傳輸,通道忙就隨機等待一段時間後再監聽 | 衝突發生的機率減少 | 因為需要等待,所以利用率不高 |
p-堅持CSMA | 傳送資訊時監聽通道,空閒時以概率p進行傳輸,概率1-p不傳輸。通道忙就隨機等待一段時間後再監聽 | 衝突減少的同時效率也比較高 | 即使發生衝突也要堅持傳送資料,資源被浪費 |
1-堅持CSMA
非堅持CSMA
p-堅持CSMA
三種CSMA的區別
3.CSMA/CD協議
就是因為鏈路實際有長短,傳送資料需要時間,這個時間內可能就被其他節點當成空閒狀態導致發生碰撞
知道自己發生碰撞的最長時間是2τ(兩倍的傳播時延),就是一去一回
傳播時延可能導致衝突
確定衝突後的重傳時機
例題
最小幀長
可以想到最小幀長的問題,因為如果幀太短,幀都發送完了才檢測到碰撞導致停止,導致無法停止碰撞
小結
4.CSMA/CA協議
工作原理
對比CSMA/CD
3.5.3動態劃分-輪詢訪問介質訪問控制
輪詢協議
就是選出一個代表,讓他控制所有的傳輸
註釋:
輪詢開銷在隨著服務的節點越多,需要用於查詢是否傳送資料傳送的資料幀也就越多,會造成一定開銷
等待延遲就是因為這是輪流“邀請”,所以難免某個節點需要傳送資料,但是主節點還在較遠的需要裡有需求的節點那邊,導致需求得不到立即響應
單點故障很好理解,就是代表掛了
令牌傳遞協議
註釋:在節點之間沒有收發資料的需求時,令牌在節點之間迴圈。
傳送資料的流程
》當一個節點需要時就可以獲得這個令牌。然後修改這個令牌的狀態(空閒->佔用)
》再將令牌與資料幀結合,讓其在節點構成的環之間流動
》不是目的地的節點收到令牌也不接受,直接略過,目標節點收到資訊並複製一份到本地(傳輸完成),因為是個閉環,所以傳送節點最後得到令牌
》最後,傳送令牌的節點對令牌的內容進行檢查,如果發現數據出錯還要重新發一遍
問題基本和輪詢協議相同
- 令牌持有者、不能一直髮送資料,有一定的時間t來限制
3.6區域網
3.6.1區域網的概念
3.6.1.1區域網的網路拓撲結構
常用的是匯流排型拓撲
3.6.1.2 區域網的傳播介質
區域網 | 常用介質 |
---|---|
有線區域網 | 雙絞線,同軸電纜,光纖 |
無線區域網 | 電磁波 |
3.6.1.3區域網介質訪問方法
3.6.2 區域網的分類
3.6.3 IEEE802標準
3.6.3.1 IEEE802描述的區域網參考模型
區域網小結
3.6.4乙太網
3.6.4.1 乙太網概念
3.6.4.2 乙太網的發展
3.6.4.3 介面卡和MAC地址
3.6.4.4 乙太網MAC幀
註釋:
1.這裡的mac層指的是資料鏈路層
2.之前說過資料鏈路層將上一層ip資料包加頭加尾
頭就是目標地址(6位元組),源地址(6位元組),型別(2位元組)
尾就是FCS(幀檢驗序列),(4位元組)
3.前導碼不是MAC幀的一部分,目的是使時鐘同步
4.為什麼資料長度時46~1500?
因為有最小傳輸位元組64位元組,mac佔用6+6+2+4=18,所以資料最小為64-18=46,1500則是規定的預設最大位元組,沒有理由
3.6.4.5 10BASE-T乙太網
3.6.4.6 高速乙太網
乙太網小結
3.6.5 無線區域網
3.6.5.1 兩種無線區域網
3.7廣域網
3.7.1 廣域網的概述
概括一下,一個字大
3.7.2 PPP協議(Point-to-Point Protocol)
PPP協議是目前使用最廣泛的資料鏈路層協議,撥號基本都是PPP協議
PPP協議僅支援全雙工鏈路
3.7.2.1 PPP協議需要滿足的要求
3.7.2.2 PPP協議不需要滿足的要求
3.7.2.3 PPP協議組成成分以及功能
3.7.2.4 PPP協議的幀格式
3.7.3 HDLC協議(High-Level Data Link Control)
3.7.3.1 HDLC協議概述
3.7.3.2 HDLC的三種站
3.7.3.3 HDLC的幀格式
3.7.4 PPP協議和HDLC協議對比
為什麼HDLC協議更可靠,但是我們使用PPP協議?
因為現在網路要求高,資料鏈路層本來就是不可靠的盡力傳輸,差錯控制這些複雜的交給了TCP等
小結
3.8. 鏈路層裝置
3.8.1 集線器(Hub)
可以擴充套件乙太網,但是集線器會無腦將一個裝置的所有訊息轉發到集線器所連的所有裝置,故會將所連線的所有裝置變成一個大的衝突域,同時只能有兩臺裝置進行通訊,且裝置越多,衝突越多。由此誕生了網橋
3.8.2 網橋(Bridge)
使用網橋時,由於網橋會根據mac地址進行過濾,所以不會形成衝突域
3.8.2.1 兩種網橋
透明網橋
通過自學習來構建轉發表。每一個通過網橋的資料包都會被記錄下網橋收到資料時資料對應的地址和網橋自己的介面,通過許許多多的資料包的構造的快取,網橋就可以知道哪個資料包在哪個介面,以後如果要穿資料包就知道要往哪個介面傳送資料包了
原路由網橋
在傳送時,直接將最佳路徑放到幀首部。那麼網橋如何獲得最佳路徑?通過廣播方式想目標地址傳送廣播,此時可能會經過不同路由產生不同的路徑,目標地址收到後再將每一條路徑都發一個響應幀給網橋,網橋經過對比就知道哪個介面最快了
3.8.3 交換機
網橋介面越來越多,網橋就變成了交換機