408考綱(數鏈層部分):
0 概論:數據鏈路層都干什么事,提供啥功能
比物理層再高一層就是數據鏈路層,咱們上一篇講物理層,物理層直接接觸傳輸介質,現在數據鏈路層是使用物理層的傳輸服務,然后實現更多的功能。物理層是只管把比特流傳到傳輸介質上,我只管傳,我不管傳給誰,我也不管我傳的時候別人是不是也正在傳即是不是有沖突,我物理層就只管傳,那么那些事誰來管呢?是你數據鏈路層。
所謂鏈路就是一條物理線路,數據鏈路是物理線路加上規程
提供兩個相鄰的網絡節點或主機及其相連的網絡節點之間的可靠通信
- 將不可靠的物理鏈路變為可靠的邏輯鏈路
- ?流量控制:發送端可能發送過快,導致擁擠和丟失
- 為網絡層提供服務:
- 將來自原機器的網絡層的數據傳送到目標機器的網絡層
- >1.無確認無連接的服務
- (適用于誤碼率低的可靠信道)
- >2.有確認無連接的服務
- >1.無確認無連接的服務
- 將來自原機器的網絡層的數據傳送到目標機器的網絡層
???????????????????????????(適用于不可靠信道、無線信道)
? ? ? ? ? ? ? ? ? ? ? >3.有確認面向連接的服務
? ? ? ? ? ? ? ? ? ? ? ? ? ?(長延遲的不可靠信道)
????????????????有確認就一定有鏈接,不存在有連接沒確認的
- ? ?? ? 鏈路管理:建立鏈路、釋放鏈路、介質訪問控制
然后接下來咱們就一塊一塊來講這些功能都是怎么實現的:
1 組幀:
組幀:從網絡層接受數據,并加上有意義的比特位形成頭部和尾部來攜帶地址和其他控制信息。一個含有這些附加控制信息的數據單元稱為幀。
幀定界又稱幀同步:就是在首尾各加點東西,然后讀的時候先讀到那個代表開始,然后又讀了一次代表結束,使得接收方應該能從接收到的二進制比特流中區分出幀的起始和終止,
有四種方法:
1.1 字符計數
在幀頭部加一個字符,就存幀總共的字符個數(當然計數字符自己也算)
1.2 字符填充
首尾各加一個特殊字符,然后信息位中如果發現有控制字符,就在前面加一個轉義字符(轉義字符本身也算控制字符)
1.3 零比特填充
首位各加一個01111110,然后信息位中每連續遇到5個1就加入一個0(防止有效載荷中出現標志比特)
零比特填充法更容易用硬件來實現,雖然原理跟字符填充法差不多但是性能優于字符填充法
1.4 違規編碼
就比如曼徹斯特編碼,本來前低后高=0,前高后低=1,沒有前高后高或前低后低這種說法,但是我就加入這么一位,讓它來代表開始和終止
因為違規,所以特殊
2 差錯控制:
數據幀可能出現損壞、丟失、重復、亂序現象
比特差錯:0變1了,或者1變0了
ARQ:自動重復請求
FEC:前向糾錯
2.1 檢錯編碼:
循環冗余碼:
循環冗余校驗碼
奇偶校驗碼:
奇偶校驗碼講解視頻
2.2 糾錯編碼:
海明碼:
海明碼講解視頻
3 流量控制&差錯控制:
這一塊有幾個協議,他們之間的關系應該是這樣的:滑動窗口協議是一個大的概念,分為:
- 停止等待協議
- 發送窗口=1,接收窗口=1
- 回退n協議(GBN)
- 發送窗口=n,接收窗口=1
- 選擇重傳協議(SR)
- 發送窗口=n,接收窗口=n
4 介質訪問控制(Media Access Control, MAC):
學到這的時候我一開始有個疑問說最直接接觸傳輸介質的不是物理層么,為啥不由物理層來執行介質訪問控制?網絡分層體系結構的設計者就是這么設計的,這么設計也有一定的合理性,物理層是光管發,我如何發比特流變成各種形式的光信號電信號傳到傳輸介質上,我只管發,至于給誰發、啥時候發、發的時候有沒有跟別人產生沖突,我物理層是不管的,是由你數據鏈路層來管的,所以數據鏈路層可以說使用物理層提供的發送服務,然后實現了介質訪問控、流量控制、差錯控制這些更多的功能。
介質訪問控制其實就是為了解決沖突,主要有以下這些手段。
有靜態和動態之分,這里的靜態和動態是怎么說法呢,就是怎么就靜態怎么就動態了,就是說像靜態這些多路復用,他給每個結點的分配是固定的,公平的,一直就是這個規則不會變,比如時分,咱們就設時間片為5s,你發5s我發5s咱倆輪著來,一直就這么執行。但是動態的話會根據實際情況,可能其他結點都不發就這個結點一直發,也可能多個結點像時分多路復用那樣快速輪換,總之每個結點分到的對這個信道的配額會動態的不斷變化,不是一成不變的,所以叫動態。
王道的思維導圖不錯,放這起個總覽的作用:
4.1 信道劃分介質訪問控制(靜態介質訪問控制)
4.1.1 時分多路復用TDM
數字技術
共享頻率,但不共享時間
4.1.2 頻分多路復用FDM
模擬技術
共享時間,但不共享頻率
4.1.3 波分多路復用WDM
光的頻分多路復用
4.1.4 碼分多路復用CDMA
4.2 隨機介質訪問控制(動態介質訪問控制)
4.2.1?CSMA載波監聽多路訪問
CSMA主要有用的特性是監聽信道,
在具體講CSMA這個協議及其CA和CD變種之前,首先得明確兩個概念,這兩個概念各大教材包括王道都沒講明白,導致理解起來吃力,我自己耗費了很長時間才弄明白,總結在這里:
信道忙閑:
怎么算忙,怎么算閑?咱們說,一個結點監聽信道,它只能監聽自己這一個點,所以不管有沒有結點正在發送,也不管信道上有沒有數據在傳播,只要這個結點檢測到自己這里有來自其他結點的信號經過,那它就認為信道忙,要沒有它就認為是空閑。
我初學時在這里陷入很大的誤區,主要因為教材講解的模糊、不明確,導致我以為“只要信道上有數據就叫忙”,“有結點正在發送就叫忙”。后來看了王道的視頻(他甚至都沒有明說)自己推斷了半天才明白。
碰撞:
這里理解的難點是,實際的碰撞和結點檢測到碰撞是兩回事。
什么叫碰撞了,就是同一時刻,兩股數據出現在了信道的同一位置,這就叫碰撞。
那么結點如何去檢測到碰撞呢?是必須在它發送的過程中檢測到有其他結點的信號到了自己這,它才能檢測到發生了碰撞。
同樣是由于教材和課程的不明確,我初學時在這里也有誤區,以為碰撞檢測是依賴爭用期,只要從開始發時計時,經過爭用期沒有檢測到其他信號就叫沒有發生碰撞。
4.2.2 CSMA/CD
一般的CSMA是發送前監聽信道,監聽到閑了就發送,然后就不再監聽了。
CD則是發送時還監聽,就為了監聽沖突/碰撞。
總體算法可以陳述如下:
忙怎么辦?
忙繼續監聽,和1堅持一樣
爭用期和最小幀長:
看圖3.22的倒數第二行,設想極端情況,當A發送的數據就差一點點到達B時,B突然發了一個bit。
根據上面說忙閑和碰撞的定義,A開始發送數據后需要經過的時間,A發的數據能到達每個結點,使每個結點監聽信道時都能監聽到A的信號,從而不會發送。但是假如說,就在差0.00001秒到
時離A最遠的B突然發了一個bit,那么這是發生碰撞的最極端情況了,這個bit要到達A還需要
的時間。所以爭用期=2
,只要過了爭用期A還沒檢測到其他結點的信號到自己這,A就能確定肯定沒發生碰撞。
最小幀長就是說,根據檢測碰撞的定義,一個結點必須在自己發送數據時同時檢測到有其他結點的信號到自己這,它才能知道碰撞了,還是考慮上面那種極端情況,如果說,那來自B的一個bit到A時,A的數據早發完了,那么A就檢測不到碰撞了。這屬于是實際發生了碰撞但A檢測不到。所以為了確保任何碰撞都能被檢測到,就限制最小幀長為:爭用期*帶寬.
檢測到碰了怎么辦?
二進制指數回避算法,
?? ??? ??? ?確定基本退避時間=爭用期
?? ??? ??? ?確定參數K=min[重傳次數,10]
?? ??? ??? ?確定倍數r,r從[0,1,2,3,---2^k-1]中隨便取一個
?? ??? ??? ?退避時間為:基本退避時間*r
?? ??? ??? ?重傳次數最高為16次,如果超過16次,向上層報錯
?
4.2.3 CSMA/CA
王道計算機考研 計算機網絡
CSMA/CA協議主要用在無線局域網中,那么
為什么不用CD?
1.因為無線網絡中發送信號遠強于接收信號(信號隨距離減弱),且信號不穩定。假如我是結點A,我自己發送的信號很強,而別的結點的發送信號到我這里已經很弱了,那么我自己的發送信號干擾了別的結點的發送信號,我可能就聽不到別的結點也在發送了。
2.隱蔽站問題:
所謂隱蔽站,就是說無線信號的傳播有距離限制,比如就10m,那么我距離接入點8m,你距離接入點7m,咱倆相距15m,那么監聽不監聽都沒用,因為反正咱倆聽不到彼此,咱倆就有可能同時發送造成沖突。
CA和CD相比區別就是不去檢測碰撞而盡量去避免碰撞,所采取的手段就是DIFS、隨機退避和信道預約。
CD是監聽,閑則立即發,忙則繼續監聽,CA是閑則等待DIFS然后發RTS,忙則隨機退避,CA只要發了就不再去檢測沖突。
這部分主要是CSMA/CD會考一些計算題比較難,需要把最小幀長的計算掌握清楚,別的就都是考概念
然后這塊經常會各種MAC協議的優缺點,什么情況下適合選哪種,統一總結一下就是說:
高負載時,無碰撞協議好,
低負載時,碰撞協議好。因為低負載的時候往往無碰撞協議的信道利用率就低了。
4.2.4 令牌環網:
令牌環網,物理星型,邏輯環形
令牌包含:
標記位
發送方信息
接收方信息
數據
過程:
每個節點拿到令牌后有一段固定的令牌持有時間,這段時間可以給令牌里裝數據,同時置標記位為忙
裝完以后把令牌在環網里轉一圈回到手里,置標記位為閑
然后順著環網給下一個人
優缺點:
1.令牌開銷
2.延遲,如果A想發,但令牌在D手里,那要等D->C->B->A
?
5 局域網(Local Area Network,LAN)
王道咸魚老師總結的圖,真的全:
為什么把局域網這個概念放到數鏈層來講呢,因為要實現一個局域網,只需要物理層和數鏈層的協議就夠了,局域網用不到網絡層的路由功能。
IEEE802標準定義的局域網參考模型只對應于OSI參考模型的數據鏈路層和物理層,
LLC:
向網絡層提供無確認無連接、面向連接、帶確認無連接、高速傳送四種不同的連接服務類型
MAC:
組幀拆幀、比特傳輸差錯檢測、透明傳輸、給幀加序號
然后我們現在真正開始進入到“網絡”的階段,之前學習的物理層和數鏈層的差錯控制和介質訪問控制都是基于兩個結點之間通信來說的,現在我們才可以說真正開始研究“網絡”了。
那么網絡里面的一個結點發送幀有三種發幀方式:
單播&組播&多播:
單播:
一個結點,只發給網絡里的一個結點
廣播:
一個結點,發給網絡里的其他全部結點
組播(多播):
一個結點,發給網絡里的部分結點
在第一章計網概論里我們學過,局域網是個按作用范圍劃分的概念,一般是一個學校一個園區這樣的范圍,局域網分為:
5.1 有線局域網(以太網,IEEE802.3&DixEthernetV2)
其中以太網最為出名和常用,一般教材和課程里也只講以太網,我們這里也是,但并不是說有線局域網就一定是以太網,事實上有線局域網還包括:
? ? ? ? 令牌環(Token Ring, IEEE 802.5)
? ? ? ? FDDI(光纖分布數字接口, IEEE802.8)
所謂以太網,是一個技術標準,通俗來說就是一個規則集合,遵守這個規則集合的網絡就是以太網,這個規則集合只規定了數據鏈路層和物理層的事,比如用什么MAC協議,用什么拓撲結構,用什么幀格式,以及用什么流量控制和差錯控制手段,這些都是數鏈層和物理層要做的事,那么這些規則集合就是以太網。
這個規則集合還有不同版本,有802.3和DIX EtherNet V2,
這個規則集合還有一些子集,比如10BASE5,10BASE-T,這些子集規定了物理層的一些規則,這又體現了計算機的分層思想,技術標準也要分層。
總結來說以太網的特點:
????????服務:無連接 無確認 不可靠
????????編碼:曼徹斯特編碼
????????拓撲:物理上星型或拓展星型,邏輯上都是總線
????????交換技術:分組交換
????????介質訪問控制:CSMA/CD
5.1.1 傳統以太網
這些,可以看成是以太網這個技術標準的多種分支
傳統以太網采用廣播方式通信,屬于半雙工通信
5.1.2 高速以太網
100BASE-T:
星形拓撲結構
保持最短幀長不變,但將一個網段的最大電纜長度減小到100m。
記住:T就是雙絞線,F就是光纖
5.1.3?以太網的核心裝備:網卡與MAC地址
然后以太網的實現,具體是依靠一個叫網卡的設備,簡稱網卡,準確來說應該叫有線網卡,指的是專門用于以太網連接的有線網卡,手機里面有一個用于連接wifi的無線網絡適配器也被有人稱作無線網卡,這兩個網卡可不是一回事,我這里說的都是電腦的有線網卡。
網卡又稱為網絡適配器(Adapter)或網絡接口卡(Network Interface Card, NIC),(講真我超級討厭這種起好幾個名字的,明明說的都是同一個事物非要起好幾個名)。
網卡工作在數鏈層和物理層,與局域網通過電纜或雙絞線以串行方式通信,與計算機通過I/O總線以并行方式通信。
然后有線網卡有:串并轉換,幀的發送與接受,幀的封裝與拆封,介質訪問控制,數據的編碼解碼,數據緩存 的功能。
然后最關鍵的來了,網卡上有介質訪問控制地址(MAC地址,為什么叫MAC地址可以理解成是因為網卡控制著主機對于傳輸介質的訪問,你要想通過傳輸介質給這臺主機發數據必須知道其MAC地址)。這個MAC地址是每塊網卡全球唯一的!MAC地址又稱物理地址,總而言之就是MAC地址這個東西在主機所處的局域網里面唯一標識該主機,IP地址都不是全球唯一的,但每臺設備的MAC地址是全球唯一,這東西是計網通信的基礎。
MAC地址是48位,12個16進制數,前24位是廠商代碼,后24位自行分配。
網絡層有個協議叫ARP就是專門在通信過程中查MAC地址的。
5.1.4?以太網的幀
最小幀長和最大幀長:
以太網有最大幀長和最小幀長,最大幀長是規定死的1518B,也就是首尾控制信息一共6+6+2+4一共18B,數據字段最大只能裝1500B,1500B+18=1518B,最小幀長是為了遵從CSMA/CD協議而設定的,最小幀長是64B,也就是數據字段最小也得46B。
幀格式:
以太網有兩種幀格式,分別遵從兩種技術標準,IEEE802.3和DIX EtherNet V2,不過巧的是這兩種技術標準可以共存:
以太網的違規編碼:
以太網傳送幀的時候,每幀之間有一定的間隙,不是說不需要幀結束定界符哦!
目的地址&源地址:
6B,48bit,存放發送主機和目的主機的MAC地址
類型/長度:
IEEE802.3格式的幀就把類型換成長度,長度指的是數據字段的長度。
這兩種標準可以共存,因為最大幀長是1500B,所以類型/長度字段如果小于1500,那就那肯定是長度,如果大于1500,那肯定存的是協議類型。
數據:
把IP數據報整個作為數據
FCS:
32位CRC校驗碼,校驗的是目的地址+源地址+類型+數據
5.2 無線局域網
?5.2.1?有固定基礎設施(基站)的無線局域網(IEEE802.11,WiFi)
固定基礎設施:指預先建立的、能覆蓋一定地理范圍的固定基站
對于此類無線局域網,IEEE制定了802.11標準
使用星形拓撲結構
在MAC層使用CSMA/CA協議
AP:中心點基站稱為Access Point , AP。AP是個數鏈層設備,它只是擴大網絡范圍,其實多個手機連到一個AP,就很類似于多個電腦連到一個交換機。反正最后要統一連到路由器上。
SSID:必須為每個AP分配一個不超過32字節的服務集標識符,也就是使用該AP的無線局域網的名字Service Set Identifier
BSS:基本服務集Basic Service Set,指的就是一個AP以及與此AP相連的幾個移動站(就是圖中一個圈里的),各站在本BSS之內的通信和與其他BSS內站的通信都要經過本BSS的AP
BSA:基本服務區Basic Service Area, 即一個BSS所能覆蓋的區域,直徑一般不超過100m
DS:Distribution System,然后每個BSS可以是孤立的,也可以AP與AP通過一個DS連接起來,構成一個擴展的服務集(ESS,Extended Service System),注意AP與AP是通過有線連接的,即DS是有線的。
Portal:門戶,能將ESS連接到其他局域網,門戶相當于一個網橋
802.11 幀格式:
802.11的幀格式基本就一個考點:三個地址
地址4是用于自組網絡(意思就是不用學了)
發送地址和源地址不是一回事,發送地址是直接給到接收方的人,而源地址是數據的根源
參考咱吉大北一宿舍這塊的校園wifi,我們宿舍小岳桌子下面那個盒子,我們的網線都連到那上面,上面寫著wireless access point,就是個AP,當然它這個AP不是理論模型中傳統的AP,它這個AP集成了擴大wifi信號范圍和有線網交換機兩種功能。現在就是這樣,什么光貓,路由器,AP,交換機,早集成到一塊了,不是以前那樣你就管那功能我就管這功能的了。
5.2.2?無固定基礎設施的自組織網絡
6 廣域網(Wide Area Network)
7 鏈路層設備
7.1 網橋:
透明網橋:
透明網橋的標準是IEEE 802.1d
7.2 交換機:
直通式:
愛讓你計算延遲,直通式是只檢查目的地址那6字節
存儲轉發式: