計算機網路 | 資料鏈路層
計算機網路 | 資料鏈路層
資料鏈路層是OSI參考模型中的第二層,介乎於物理層和網路層之間。資料鏈路層在物理層提供的服務的基礎上向網路層提供服務,其最基本的服務是將源自網路層來的資料可靠地傳輸到相鄰節點的目標機網路層。
目錄
7.2 PPP協議(Point-to-Point Protocol)
7.3 HDLC協議(High-Level Data Link Control)
1. 基本概念
2. 封裝成幀與透明傳輸
封裝成幀就是將網路層的資料包加頭加尾,相當於將資料包打包,協議資料單元PDU
透明傳輸就是為了防止特殊的資料無法正常傳輸的的情況的發生,比如說在封裝成幀的過程中出現資料中的某些標記符與開始/結束標記符恰巧重複等等情況
幀長,幀的資料部分>=最大傳送單元MTU
2.1 透明傳輸的應用
2.1.1 字元計數法
就是在幀的首部做計數,看看資料是否錯誤
缺點:如果在某一個幀內,標記位後面的某個位元組的資料丟失,那麼會影響後面的幀
比如3 1 1 和 4 2 2 2,如果前面的幀丟失變成 3 1,那麼後面的4就會被補到前面變成 3 1 4導致錯誤
2.1.2 字元填充法
針對字元傳輸
就是加頭加尾分別標記開始結束,和零位元填充法(見下)對比,開始和結束的對應的字元不一樣
但有可能出現資料內某段位元流資料正好與標記欄位重複,從而導致誤判斷的情況
解決方法:新增轉義字元ESC
2.1.3 零位元填充法
針對位元流傳輸
2.1.4 違規編碼法
因為曼徹斯特編碼不使用高-高,低-低來表示,所以如果使用高-高,低-低來表示幀起始和終止就不會與資料衝突
3. 差錯控制
3.1 差錯是什麼,從哪來的
資料鏈路層的差錯檢測的是檢測位元位的錯誤
物理層編碼:針對單個位元,解決傳輸過程中位元同步,採用曼徹斯特編碼(檢測電平)
資料鏈路層編碼:針對一組位元,通過冗餘碼技術實現一組二進位制位元串在傳輸過程是否出現差錯
冗餘編碼:最終傳送資料=要傳送的資料+幀檢驗序列FCS
3.2 為什麼要在資料鏈路層進行差錯控制?
因為錯誤可以儘早發現,不會讓一個錯誤的資料包傳送了很長時間到達最終目的地之後才被發現,從而導致網路資源的浪費
3.3 檢錯編碼(奇偶校驗碼,迴圈冗餘碼CRC)
3.3.1 奇偶校驗碼
缺點:只能檢測出1,3,5,7…等等奇位數錯誤,檢測成功率位50%
3.3.2 迴圈冗餘碼CRC
就是用傳輸資料除以生成多項式得到冗餘碼
實際例子
註釋:
1.階數就是最高位是哪位,然後位數-1,如10011就是5-1=4,1011就是4-1=3
2.異或運算就是相同得0,不同得1,比如100和101做異或,結果就是001
3.出書和最後的餘數新增到要傳送的資料後面,稱為幀檢驗序列FCS
接收方收到資料後進行檢測
需要注意的地方
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,然後填入表格
第四步 檢測並糾錯
就是和上面一樣,將所有校驗位進行運算,得出的結果的值就是錯誤的位
4. 資料鏈路層的流量控制和可靠傳輸
4.1 流量控制與可靠傳輸
流量控制是為了讓傳輸過程中的傳送速度和接受速度匹配,減少傳輸出錯與資源浪費
- 資料鏈路層的流量控制是點對點的,接收方收不下就不回覆,滑動視窗固定
- 傳輸層的流量控制是端到端的,接收端給傳送端一個視窗
可靠傳輸指的是發來的都接收,如果幀掉失、幀重複、幀亂序,這是可靠傳輸需要解決的問題,由傳輸層(運輸層)解決
4.1.1 停止等待協議(Stop-and-Wait)
停止等待協議的無差錯情況
註釋:因為一次就一個,所以用0和1標記ack就行
停止等待協議的有差錯情況
停止等待協議的特點
1.簡單
2.通道利用率低。大部分時間資料都在路上,傳送方很長時間閒置,資源浪費
4.1.2 後退N幀協議(GBN)
因為停止等待協議太浪費時間了,所以嘗試採用GBN,傳送連續多個資料幀,以增大通道利用率
註釋:
傳送視窗劃分:傳送了且確認的、傳送了但等待確認的、還能傳送的、還不能傳送的
累計確認:就是收到一個確認幀,那麼它和它之前的所有幀都預設已收到,反之,如果某個確認幀沒收到,那麼它和它之後的所有幀都預設丟失(即使收到了也丟掉),進行重傳
下圖是一個例項
註釋:此圖傳送2幀時丟失,所以接收方几首收到後面的幀也是直接丟棄並且傳送最晚收到的有效幀1的ACK,直至2幀的超時重傳機制被觸發進行重傳並得到ACK之後,接收方才會接受2幀以及後面的幀
傳送視窗不能無限大,與使用的編號的位元數有關
很簡單,就是1位元編號0和1,同理2位元編號0-3,如果用1位元編號,卻要4個視窗長度,那麼視窗內資料編號都編不過來,直接亂套了
GBN的優缺點也顯而易見,優點是提高了通道利用率,缺點是因為重傳機制的原因導致已經收到資料卻需要強行丟棄而造成浪費
4.1.3 選擇重傳協議(SR)
為了解決GBN的缺點,我們打算嘗試只重傳錯誤的幀,這樣的話就不用浪費資源吧已經收到的幀再重傳一次了。
和GBN相比,兩者都有視窗了,和GBN的區別其實就是做了一個資料快取,已經收到的幀不用扔了,等待之前因意外丟失的幀收到的時候確認即可,但是隻能快取視窗尺寸內的包含的幀(PS,快取咋可能無限大)
SR執行過程
註釋:2幀丟失之後仍然在傳送,但是2幀丟失之後只是快取,並沒有移動視窗,直至最後2幀收到後一次性確認2-5幀
同樣的,因為編號的問題,傳送視窗不能無限大
傳送視窗最好和接受視窗大小相同,這樣利用率比較高
GBN與SR的超時事件的區別:
- GBN會重傳全部已經傳送但沒有確認的幀
- SR只會重傳超時的那一個幀
5. 介質訪問控制技術
傳輸資料用到的兩種鏈路:
- 點對點鏈路,兩個相鄰節點通過一個鏈路相連,沒有第三者,應用:PPP協議,用於廣域網
- 廣播式鏈路,所有主機共享通訊介質,拓撲結構:匯流排型、星型(集線器,物理星型,邏輯匯流排),用於區域網
介質訪問控制medium access control,MAC
就是讓節點之間的通訊不會進行相互干擾
5.1 通道劃分介質訪問控制
雖然使用一條共享通道,但是通過多路複用技術組合進行傳輸,提高了通道的利用率
基於多路複用技術劃分資源:網路負載重:共享通道效率高,且公平;網路負載低,共享通道效率低。
5.1.1 頻分多路複用FDM
5.1.2 時分多路複用TDM
TDM的缺點就是利用率低,所以又衍生出了STDM
5.1.3 統計分時多工STDM
STDM的原則是先到先走,滿了就發,相對於TDM提高了利用率
5.1.4 碼分多路複用CDM
CDM只是做一下記錄,暫時還用不到,有需要請自行查詢資料
5.2 隨機訪問介質訪問控制
所有使用者都可以隨機傳送資訊,傳送時可以佔用全部頻寬,理論上個人使用時比靜態分配通道的速度更快
網路負載重:產生衝突開銷;網路負載低,共享通道效率高,單個結點可利用通道全部頻寬。
隨機訪問介質訪問控制協議,會有衝突的問題。通道劃分介質訪問控制協議和輪詢訪問介質訪問控制協議不會衝突。
5.2.1 ALOHA協議
純ALOHA協議缺點:太隨性,導致效率低,不聽就說
時隙ALOHA協議
相對於純ALOHA協議就是固定了傳送的時間(只能在一個時間片的開始),提高了效率
5.2.2 CSMA協議
CSMA,先聽再說
名稱 | 描述 | 優點 | 缺點 |
---|---|---|---|
1-堅持CSMA | 傳送資訊時監聽通道,一空閒下來就立即傳輸,通道忙也一直監聽,如果傳送時衝突就等待隨機時長之後再監聽 | 立即傳送,利用率高 | 如果多臺裝置同時監聽,那麼會發生衝突 |
非堅持CSMA | 傳送資訊時監聽通道,如果空閒就立即傳輸,通道忙就隨機等待一段時間後再監聽 | 衝突發生的機率減少 | 因為需要等待,所以利用率不高 |
p-堅持CSMA | 傳送資訊時監聽通道,空閒時以概率p進行傳輸,概率1-p不傳輸。通道忙就隨機等待一段時間後再監聽 | 衝突減少的同時效率也比較高 | 即使發生衝突也要堅持傳送資料,資源被浪費 |
5.2.3 CSMA/CD協議
CSMA/CD,先聽再說,邊聽邊說
就是因為鏈路實際有長短,傳送資料需要時間,這個時間內可能就被其他節點當成空閒狀態導致發生碰撞
知道自己發生碰撞的最長時間是2τ(往返傳播時延),就是一去一回
圖示傳播時延對載波監聽的影響
r的最大的範圍是[0,1,2,3,……,1023]
由此我們可以想到最小幀長的問題,因為如果幀太短,幀都傳送完了才檢測到碰撞導致停止,導致無法停止碰撞
最短幀長是64B
5.2.4 CSMA/CA協議
應用在無限區域網上,因為無法做到360度的碰撞檢測和發現隱蔽站。
三個手段(機制)實現碰撞避免:預約通道、ACK確認幀(否則重傳)、RTS/CTS幀(可選,解決隱蔽站的問題)
5.2.5 CSMA/CD 與 CSMA/CA的區別
CSMA/CD檢測電壓擺動值,達到閥值說明有碰撞,檢測碰撞
CSMA/CA檢測是否空閒,採用三種方法混合檢測,避免碰撞
5.3 輪詢訪問介質訪問控制
主要包括兩大類,一個是輪詢協議,另一個是令牌傳遞協議
5.3.1 輪詢協議
就是選出一個代表,讓他控制所有的傳輸
註釋:
輪詢開銷在隨著服務的節點越多,需要用於查詢是否傳送資料傳送的資料幀也就越多,會造成一定開銷
等待延遲就是因為這是輪流“邀請”,所以難免某個節點需要傳送資料,但是主節點還在較遠的需要裡有需求的節點那邊,導致需求得不到立即響應
單點故障,就是代表掛了
5.3.2 令牌傳遞協議
註釋:在節點之間沒有收發資料的需求時,令牌在節點之間迴圈。
傳送資料的流程:
- 當一個節點需要時就可以獲得這個令牌。然後修改這個令牌的狀態(空閒->佔用)
- 再將令牌與資料幀結合,讓其在節點構成的閉環之間流動
- 不是目的地的節點收到令牌也不接受,直接略過,目標節點收到資訊並複製一份到本地(傳輸完成),因為是個閉環,所以傳送節點最後得到令牌
- 最後,傳送令牌的節點對令牌的內容進行檢查,如果發現資料出錯還要重新發一遍
問題基本和輪詢協議相同:
- 令牌開銷,掉失、生成。隨著服務的節點越多,需要用於查詢是否傳送資料傳送的資料幀也就越多,會造成一定開銷
- 等待延遲就是因為這是輪流“邀請”,所以難免某個節點需要傳送資料,但是主節點還在較遠的需要裡有需求的節點那邊,導致需求得不到立即響應
- 單點故障,就是代表掛了
6.區域網
6.1 區域網的概念
概括:範圍大小,速度快,延遲低,節點平等
6.1.1 區域網的網路拓撲結構
常用的是匯流排型拓撲
乙太網就是一種邏輯匯流排型結構
集線器是多埠的物理層裝置
6.1.2 區域網的傳播介質
區域網 | 常用介質 |
---|---|
有線區域網 | 雙絞線,同軸電纜,光纖 |
無線區域網 | 電磁波 |
6.1.3 區域網介質訪問方法
6.2 區域網的分類
乙太網IEEE802.3,無線區域網IEEE802.11(WIFI是WLAN的一種應用)
6.3 IEEE802標準
IEEE802系列是關於區域網、都會網路的技術標準。
- IEEE802.3 乙太網
- IEEE802.5 令牌環網(容易單點故障)
- IEEE802.8 光纖
- IEEE802.11 無線區域網WLAN
6.3.1 IEEE802描述的區域網參考模型
邏輯鏈路控制(Logical Link Control,LLC)
介質訪問控制(medium access control)簡稱MAC
6.4乙太網
6.4.1 乙太網概念
乙太網盡最大努力交付,只實現無差錯接收,不能實現可靠傳輸
無差錯接收指的是傳送方傳送10010,接收方只接收10010,其他的掉棄,差錯控制(檢錯編碼:奇偶校驗碼、迴圈冗餘碼CRC;糾錯編碼:海明碼),由物理層和資料鏈路層解決,乙太網實現
可靠傳輸指的是發來的都接收,如果幀掉失、幀重複、幀亂序,這是可靠傳輸需要解決的問題,由傳輸層(運輸層)解決
6.4.2 乙太網的發展
有了物理層的集線器後,邏輯上匯流排型,物理上星型
6.4.3 介面卡和MAC地址
6.4.4 乙太網MAC幀
註釋:
1.這裡的mac層指的是資料鏈路層
2.之前說過資料鏈路層將上一層網路層ip資料包加頭加尾
頭就是目標地址(6位元組),源地址(6位元組),型別(2位元組,標誌網路層使用的協議)
尾就是FCS(幀檢驗序列),(4位元組)
3.前導碼8B不是MAC幀的一部分,目的是使時鐘同步,7B是101010……前同步碼,1B是幀開始界定符10101011
4.為什麼資料長度時46~1500?
因為有最小幀長,乙太網最小傳輸位元組64位元組,小於64B被認為是碰撞衝突了丟棄,mac佔用6+6+2+4=18,所以資料最小為64-18=46,
1500則是規定的預設最大位元組MTU,沒有理由,規定的
5.為什麼只有幀開始界定符,而沒有幀結束界定符?
因為我們使用的是曼徹斯特編碼,特點是傳送每個位元內有兩個電平變化,不傳送時沒有電平變化。同時有幀最小間隔。
6.4.5 10BASE-T乙太網
10傳輸速率;BASE基帶訊號;T無遮蔽雙絞線
數字到數字:曼徹斯特編碼,一個位元對應兩個碼元,在一個碼元上有兩次訊號變化
CAMA/CD介質訪問控制,載波監聽多點接入/碰撞檢測介質訪問控制,會有衝突,
6.4.6 高速乙太網
交換機是資料鏈路層的裝置
6.5 無線區域網
裝置A在基站AP1傳送,裝置B在基站AP2接收
地址1:RA接收端:基站AP2的mac地址
地址2:TA傳送端:基站AP1的mac地址
地址3:DA目的地址:裝置B的mac地址
地址4:SA源地址:裝置A的mac地址
6.5.1 兩種無線區域網
wifi學名:服務集識別符號
7.廣域網
7.1 廣域網的概述
概括一下,一個字大
結點交換機,屬於交換機,屬於資料鏈路層裝置,在單個網路上轉發分組
路由器,屬於網路層裝置,在多個網路上轉發分組
廣域網與區域網簡單對比:
- 廣域網中有集線器、交換機、路由器,覆蓋物理層資料鏈路層網路層,採用點對點,傳送端和接收端通過全雙工或者半雙工的鏈路連結,強調資源共享
- 區域網只有,只覆蓋物理層資料鏈路層,採用多點接入技術MA,邏輯匯流排型,強調資料傳輸
7.2 PPP協議(Point-to-Point Protocol)
PPP協議是目前使用最廣泛的資料鏈路層協議,撥號基本都是PPP協議
PPP協議僅支援全雙工鏈路
7.2.1 PPP協議需要滿足的要求
透明傳輸:不管資料傳輸的是什麼位元流,都可以完整傳輸過去,即使有幀的定界符,當看不見一樣
差錯檢測:迴圈冗餘編碼CRC,FCS幀檢驗序列,有錯就丟棄
最大傳送單元MTU<=1500
7.2.2 PPP協議不需要滿足的要求
7.2.3 PPP協議組成成分以及功能
LCP物理連結
NCP邏輯連結
7.2.4 PPP協議的幀格式
資料包遇到幀定界符7E一樣的話,前面插入轉義字元7D;遇到轉義字元7D一樣的話,前面插入轉義字元7D
非同步字元
7.3 HDLC協議(High-Level Data Link Control)
7.3.1 HDLC協議概述
同步位元
0位元插入法,傳送時遇到5個1,後面插入一個0;接收時遇到5個1,後面刪除一個0
7.3.2 HDLC的三種站
7.3.3 HDLC的幀格式
7.4 PPP協議和HDLC協議對比
為什麼HDLC協議更可靠,但是我們使用PPP協議?
因為現在網路要求高,資料鏈路層本來就是不可靠的盡力傳輸,差錯控制這些複雜的交給了TCP等
HDLC和PPP都能實現透明傳輸,但是HDLC以位元為單位,只能同步位元,零位元傳輸,PPP以位元組為單位,可以零位元傳輸和字元填充傳輸
差錯檢測就是靠CRC方法的FCS幀檢驗序列
8. 鏈路層裝置
8.1 集線器(Hub)
物理層可以擴充套件乙太網,但是集線器會無腦將一個裝置的所有訊息轉發到集線器所連的所有裝置,故會將所連線的所有裝置變成一個大的衝突域,同時只能有兩臺裝置進行通訊,且裝置越多,衝突越多。由此誕生了網橋
8.2 網橋(Bridge)
使用網橋時,由於網橋會根據mac地址進行過濾,所以不會形成衝突域
8.2.1 兩種網橋
通過自學習演算法來構建轉發表。每一個通過網橋的資料包都會被記錄下網橋收到資料時資料對應的地址和網橋自己的介面,通過許許多多的資料包的構造的快取,網橋就可以知道哪個資料包在哪個介面,以後如果要穿資料包就知道要往哪個介面傳送資料包了
在傳送時,直接將最佳路徑放到幀首部。那麼網橋如何獲得最佳路徑?通過廣播方式想目標地址傳送廣播,此時可能會經過不同路由產生不同的路徑,目標地址收到後再將每一條路徑都發一個響應幀給網橋,網橋經過對比就知道哪個介面最快了
方法:源站以廣播方式向欲通訊的目的站傳送一個發現幀
8.3 交換機
網橋介面越來越多,網橋就變成了交換機
8.4 衝突域和廣播域
因為交換機沒有ip地址,所以不能隔離廣播域
9. 本章總結思維導圖
本章常用中英文對照
End system 端系統
Modem 調變解調器(俗稱:貓)
Base station 基站
Communication link 通訊鏈路
Physical media 物理介質
Coaxial cable 同軸電纜
Fiber optics 光纖
Radio spectrum 射頻頻譜
Transmission rate 傳輸速率
Packets (資料)包,或分組
Routers 路由器
Path 路徑
ISP (Internet Service Provider) 網路服務提供商
FDM (frequency-division multiplexing) 頻分多路複用
TDM (time-division multiplexing) 時分多路複用
WDM (wave-division multiplexing) 波分多路複用
CDM (code-division multiplexing) 碼分多路複用
Statistical Multiplexing 統計複用
Store-and-forward 儲存轉發
Queuing delays 排隊延遲
Transmission delay 傳輸延遲,或傳送延遲
Propagation delay 傳播延遲
Throughput 吞吐量
Internet backbone 骨幹網
Delay 延遲,或時延
Loss 丟包
Message 訊息,或報文
Segment (報文)段
Datagram 資料包
Frames 幀
Madium Access control 介質訪問控制MAC
相關文章
- 計算機網路之資料鏈路層計算機網路
- 【計算機網路】資料鏈路層 | 複習筆記計算機網路筆記
- 計算機網路第四章--資料鏈路層計算機網路
- 【計算機網路】謝希仁筆記 資料鏈路層計算機網路筆記
- 【計算機網路】資料鏈路層——無線區域網與VLAN計算機網路
- 王道考研計算機網路第三章--資料鏈路層計算機網路
- 計算機網路之網路層計算機網路
- 計算機網路之網路介面層計算機網路
- 計算機網路總結(網路層)計算機網路
- 這一次,徹底拿下計算機網路鏈路層!計算機網路
- 【計算機網路】資料鏈路層——基於通道劃分的介質訪問控制計算機網路
- 計算機網路之物理層計算機網路
- 計算機網路--應用層計算機網路
- 計算機網路 - 應用層計算機網路
- 計算機網路的物理層計算機網路
- 計算機網路(二)物理層計算機網路
- 計算機網路 -- 應用層計算機網路
- 【計算機網路】學習筆記,第三篇:資料鏈路層(謝希仁版)計算機網路筆記
- 計算機網路(一):網路層次劃分計算機網路
- 【計算機網路】資料鏈路層——動態劃分通道之輪詢訪問介質控制計算機網路
- 計算機網路七層協議計算機網路協議
- 計算機網路之傳輸層計算機網路
- 計算機網路(四)傳輸層計算機網路
- 計算機網路之運輸層計算機網路
- 《計算機網路》傳輸層 (1)計算機網路
- 資料鏈路層
- 計算機網路-應用層筆記計算機網路筆記
- PCIe資料鏈路層
- 計算機網路資料篇(一)——HTTP計算機網路HTTP
- 談談網路協議 - 資料鏈路層( Data Link)協議
- 計算機網路資料篇(二)——快速理解網路協議計算機網路協議
- 計算機網路 -- 計算機網路的效能指標計算機網路指標
- 計算機網路中的資料交換計算機網路
- 計算機網路計算機網路
- 計算機網路 自頂向下 第6章 鏈路層和區域網(上)讀書筆記計算機網路筆記
- [計算機網路]網路攻擊計算機網路
- 計算機網路(一) --網路模型計算機網路模型
- 第1章 計算機網路的概述——計算機網路計算機網路