學過計算機網絡的朋友們應該都知道OSI七層模型,今天要聊的數據鏈路層是屬于七層模型中的第二層。所以應該算是計算機網絡體系中的底層了。
數據鏈路層使用的信道主要有兩種類型:
我們先來通過一個例子數據鏈路層所處的位置。下圖展示的是典型的網絡圖。
主機1向主機2發送數據,下圖展示的數據真正流動的路徑(畫的有點丑,意思到了就行了):
華為存儲查看鏈路命令,
當我們專門研究鏈路層的時候,我們只需要關心鏈路層即可。于是,主機1向主機2發送數據時,我們可以認為是從左到右的數據傳遞。如下圖:
鏈路層的意義
物理層的線路有傳輸介質與通信設備組成,比特流在傳輸介質上傳輸時肯定會存在誤差的。這樣就引入了數據鏈路層在物理層之上,采用差錯檢測、差錯控制和流量控制等方法,向網絡層提供高質量的數據傳輸服務。
對于網絡層,由于鏈路層的存在,而不需要關心物理層具體采用了那種傳輸介質和通信設備。
硬盤降級是什么意思?那鏈路層的功能有哪些呢?需要完成哪些事情呢?
其實就是在幀的前后添加首部和尾部,這樣就能界定幀的邊界了。一幀多大呢?MTU就是幀的數據部分的最大長度,也就是IP數據報的最大長度。如下圖:
答案就是在幀的開始和結束的地方加上特定的字符,一般是0X7E,如下圖:
答案就是如果幀內部的數據出現了0x7e,則要轉義,轉義的方法如下:
icloud儲存空間降級?(1) 字符填充
因為0x7E
=0111 1110
,字符填充是在這兩個字節中,填充進0xD5。變為(0x7D,0x5E)的組合。
即0111 1101 1001 1110
(2)零比特填充
因為0x7E
=0111 1110,帶有連續的6個1.因此發送端發送幀數據時,每當發現有連續的5個1,立即填充一個0發送。接收端對幀中的比特流掃描,每當發現5個連續的1,就把后面的1個0刪除
eg:0111 1110
變成0111 1101 0
進行傳輸
差錯是不可避免的。而且不同的傳輸介質的差錯程度也是不同的。鏈路層的任務就是分析差錯產生的原因,檢查差錯,然后糾正差錯。下面的圖展示了差錯的來源
當數據信號從發送端發送到物理線路時,由于物理線路存在噪聲,因此數據信號經過物理線路的噪聲,到達接收端時,已經是數據+噪聲的疊加。這就是差錯的來源。
差錯控制分為兩種不同的策略:
糾錯碼:每個傳輸的分組帶上足夠的冗余信息,接收端能發現并自動糾正差錯。
華為存儲單鏈路故障?檢測嗎:分組包含能夠發現差錯的冗余信息,接收端能夠發現差錯。
由于糾錯碼實現比較復雜,檢測碼雖然不能糾錯,但是足夠簡單,能夠檢測出差錯,配合重傳機制即可。所以廣泛采用檢測碼。
檢測碼有循環冗余編碼(CRC)等方式,工作原理就暫且略過,講起來很費篇幅。
數據鏈路層的工作過程分為三個階段:建立數據鏈路,幀傳輸,釋放數據鏈路;結合數據鏈路和物理層的流程如下圖:
前面提到了用檢錯碼來檢測幀傳輸過程中是否發生了差錯,如果發生了錯誤,就需要滑動窗口協議來解決。滑動窗口協議分為兩種類型:
emc存儲多鏈路綁定。
單幀停止等待協議:發送端發送1幀之后,需要等待接受端返回確認幀,如果接收到ack,表示OK,發送下一幀;如果接收到nak,表示傳輸錯誤,重新發送該幀。如下圖所示(字反了見諒):
多幀發送協議:分為兩種類型,后退N幀(GBN)拉回重發方式和選擇重發(SR)方式。前者是只要有一幀發送失敗,則當前發送的全部幀都重新發送,這樣就會導致重發很多幀,流量控制不佳。后者是當前發送的幀中有差錯,在下次發送的時候只是重新發送錯誤的幀就行了。
在GBN和SR中,發送端可以連續發送多個數據幀,從流量控制的角度出發,發送端連續發送數據幀的數量必然會收到限制:
1. 接收端的緩沖區可以用于接受新的幀的容量
工作在數據鏈路層的網絡設備、2. 接收端處理數據幀的速度
3. 接收端需要等待重傳的幀的數量
引入滑動窗口的目的:對可以連續發出的最多幀數(已發出但未確認的幀)作限制
發送窗口(Ws):表示在收到對方確認的信息之前,以連續發出的最多數據幀數 接受窗口(Wr):可以連續接收的最多數據幀數(只有序號在窗口內的幀才可以接收,否則丟棄)
覺得不錯,記得轉發收藏“在看”
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态