(*长期更新)软考网络工程师学习笔记——Section 5 数据链路层
目錄
- 一、數據鏈路層的定義
- 二、海明碼、循環冗余校驗碼
- (一)循環冗余校驗碼
- (二)海明碼
- (三)海明碼的校驗位數
- 三、點對點協議(PPP)
- (一)點對點協議的組成
- (二)點對點鏈路上的通信
- 1、密碼驗證協議(PAP)
- 2、挑戰握手驗證協議(CHAP)
- (三)PPPoE協議
- (四)高級數據鏈路控制(HDCL)
- 四、LLC和MAC
- (一)邏輯鏈路控制層(LLC)
- (二)媒體接入控制層(MAC)
- 1、IEEE 802系列協議
- 2、IEEE 802.3規定的傳輸介質
- 3、以太網V2的MAC幀格式(IEEE 802.3標準的MAC幀)
- 4、MAC地址
- 五、CSMA/CD協議
- (一)CSMA/CD的定義
- (二)堅持算法
- (三)碰撞檢測(沖突檢測)
- (四)退避算法
一、數據鏈路層的定義
數據鏈路層是在物理層的基礎上向網絡層提供服務,將源主機物理層傳來的數據可靠地傳輸至相鄰結點目標機網絡層。
在數據鏈路層上,其處理的數據單位是數據幀,可以說數據鏈路=物理鏈路+必要的通信協議。
數據鏈路層的三個基本問題是:封裝成幀、透明傳輸和差錯檢測。
這里簡單說明這三個基本問題,封裝成幀是在一段數據的前后分別加上首部和尾部,從而構成一個幀,使能根據標記從收到的比特流中識別開始和結束;透明傳輸是指,數據鏈路層對傳輸的數據來說是透明的,即任何比特組合的數據,都能無差錯地通過數據鏈路層;差錯檢測是通過循環冗余檢驗(CRC)進行檢錯。
二、海明碼、循環冗余校驗碼
(一)循環冗余校驗碼
循環冗余校驗碼,只能檢錯,而不能糾錯,其碼距>1。
(二)海明碼
碼字由包含數據位和校驗位的n位單元組成,海明碼距是兩個碼字之間不同的二進制位個數,而編碼系統的碼距是整個編碼系統中兩個碼字的碼距最小值。
海明碼是個多重奇偶檢錯系統,多重奇偶檢錯即原來信息+附加奇偶校驗位,它具有檢錯和糾錯的功能,所以碼距≧3。
(三)海明碼的校驗位數
海明碼的校驗位為k,信息位為m,則m+k+1≦2^k,則
①確定校驗位長
先看信息位長,即m的位長,解得k的最小值。
②CRC校驗碼的計算
添0,即最高階碼,在原始信息后添加相應的最高階碼3,即得到新信息串。
③利用模2除法計算
模2除法(異或,即同為0,異為1),用對應的G(x)位除之前的新信息串,從而得到長度為r位的余數。(當余數不足r時,在余數左邊用相應的0補齊)
④將余數添加到原始信息
⑤CRC校驗
接收方通過使用多項式G(x)來除,當余數為0時,則表示信息無誤(收發方都需使用相同的生成多項式)。
三、點對點協議(PPP)
點對點協議是一種在點到點鏈路上封裝網絡層協議信息的方法,同時它也定義了可擴展的鏈路控制協議(LCP),通過使用驗證協議磋商在鏈路上傳輸網絡層協議前驗證鏈路的對端,另外PPP協議能夠進行差錯檢測,它只檢錯不糾錯,對接收端收到的幀進行檢測,并立即丟棄有差錯的幀。
(一)點對點協議的組成
點對點協議有三個主要的組成:
1、在串行鏈路上封裝數據幀。
2、建立、配置和測試數據鏈路鏈接的LCP協議。
3、建立、配置不同網絡層協議的一組網絡控制協議(NCP)。
(二)點對點鏈路上的通信
首先在建立PPP鏈路的一端發送LCP包來配置數據鏈路,建立后,在進入網絡層協議前,PPP協議提供可選擇的驗證階段,其中有密碼驗證協議(PAP)和挑戰握手驗證協議(CHAP)。
1、密碼驗證協議(PAP)
PAP驗證協議,使用明文身份驗證,無保護措施,即僅通過使用2次握手建立身份驗證(鏈路初始化時),然后不停地向一方發送ID/Password對給驗證者一直到驗證被響應或連接終止為止。
2、挑戰握手驗證協議(CHAP)
CHAP使用3次握手驗證,該驗證不僅在鏈路初始化時使用,也可在其它任何時間都可以重復進行,它通過使用MD5和質詢——響應機制提供一種加密身份驗證:鏈路建立完成后,首先驗證者向對端發送一個challenge信息,對端通過one-way-hash函數計算出的值來響應這個信息,然后驗證者使用自己計算的hash值校驗響應值,若兩個值匹配,則驗證通過,否則不通過。
(三)PPPoE協議
簡單的來說,PPPoE是為寬帶上網的主機使用的協議。
PPPoE通過以太網主機,經使用橋接設備,使以太網主機連到一個遠端的接入集中器上,其中遠端的接入設備可對每個接入用戶進行控制和計費。
PPPoE協議的工作流程分為發現和回話兩個階段,發現是為了獲得PPPoE終結端(在局端的ADSL設備或其它接入設備上)的以太網MAC地址,并建立唯一的ID。在發現階段結束后會進入標準的PPP回話階段。
(四)高級數據鏈路控制(HDCL)
HDCL是面向比特的同步鏈路控制協議,以0111 1110標志作為幀定界符號,采用統一的幀結構進行同步傳輸。HDCL中有三種工作站,主站發送命令給其它站并控制數據流行動,從站響應主站命令并發送命令給其它站,復合站具有主站和從站的雙重功能。
另外HDCL中的幀也分為三種:信息幀(I幀)、管理幀(S幀)、無編號幀(U幀)。
四、LLC和MAC
數據鏈路層分為兩個子層,分別是LLC(邏輯鏈路控制層)和MAC(媒體接入控制層),前者與硬件無關,實現流量控制功能,而媒體接入控制層提供硬件和LLC層的接口。
(一)邏輯鏈路控制層(LLC)
該子層向上提供四種不同類型的服務:
數據報服務,適用于點對點通信、廣播通信、多播通信(組播通信)。
虛電路服務,適合傳送很長的數據文件。
可靠的數據報服務,適合過程控制或自動化中信號的傳輸,只用在令牌總線網中。
高速傳送服務,用于城域網中。
(二)媒體接入控制層(MAC)
MAC子層的主要功能是數據幀的封裝/卸裝、幀的尋址和識別、幀的接收與發送、鏈路的管理、幀的差錯控制等等。
其的主要訪問方式有CSMA/CD(IEEE 802.3)、令牌總線網(IEEE 802.4)和令牌環線網(IEEE 802.5)三種方式。
1、IEEE 802系列協議
(1)IEEE 802.1系列
IEEE 802.1d是生成樹協議(STP);
IEEE 802.1q是虛擬局域網(VLAN)協議,它定義VLAN和封裝技術以及定義了為以太網MAC幀添加的標簽;
IEEE 802.1P是IEEE 802.1q的擴充協議,定義了交換機與優先級相關的流量處理的協議;
IEEE 802.1s是多生成樹協議(MSTP);
IEEE 802.1w是快速生成樹協議(RSTP);
IEEE 802.1x是基于端口的訪問控制協議(PBNAC),用于解決無線局域網用戶的接入認證。
(2)IEEE 802.2系列
IEEE 802.2是邏輯鏈路控制(LLC),提供LAN(局域網)和MAC子層與高層協議間的一致接口。
(3)IEEE 802.3系列
IEEE 802.3是以太網規范,定義CSMA/CD標準的MAC子層和物理層規范。
IEEE 802.3ab是一個傳輸介質為4對CAT-5雙絞線、100m內達到1Gb/s傳輸數據的標準;
IEEE 802.3u是快速以太網;
IEEE 802.3z是千兆以太網,它定義了一種幀突發方式,可以使一個站連續發送多個幀,該方式只適用于半雙工模式;
IEEE 802.3ae是萬兆以太網,只支持光纖傳輸,有兩種連接,一種是以太網連接,稱為LAN PHY,一種是SDH/SONET連接,稱為WAN PHY,另外該標準只支持全雙工模式。
(4)IEEE 802.4:令牌總線網。
(5)IEEE 802.5:令牌環線網。
(6)IEEE 802.6:城域網MAN,定義城域網的MAC子層和物理層規范。
2、IEEE 802.3規定的傳輸介質
傳輸介質使用[速率][傳輸速率]-[傳輸介質]的形式來表示,傳輸速率中可以是Base(基帶)、Broad(寬帶),傳輸介質中可以是T(雙絞線)、F(光纖)。
3、以太網V2的MAC幀格式(IEEE 802.3標準的MAC幀)
以太網V2的MAC幀格式由五個字段組成,前兩個字段為分別為6字節的目的地址和源地址;
第三個字段是2字節的類型字段,它即可表示數據字段長度(IEEE 802.3幀中稱為長度字段),也可表示上層協議類型,以便把收到的MAC幀數據上交給上一層的該協議;
第四個字段是數據字段,其長度在46-1500字節之間(以太網的最小幀長為64字節,是指從目的地址到校驗和的長度),而當數據字段的長度小于64字節時,MAC子層會在數據字段的后面加入一個整數字節的填充字段,以確保以太網的幀長不小于64字節;
第五個字段是幀檢驗序列FCS,通過循環冗余檢驗(CRC)進行檢驗,FCS是添加在數據后面32位的循環冗余碼。
實際上,傳輸媒體傳送的還多8個字節,是因為在開始接收MAC幀時,適配器時鐘未與到達的比特流達成同步,從而造成使傳送的MAC幀無用。故為了實現位同步,從MAC層向下傳至物理層時,還要在幀的前面加上8個字節,這8個字節由兩個字段組成:
第一個字段是7字節的前導字段(前同步碼),是1和0的交替碼,通過調整時鐘頻率實現比特同步。
第二個字段是1字節的幀起始符字段,固定格式為10101011,其前六位和前導字段的作用一樣,最后兩個連續的1通知接收端適配器接收MAC幀信息。
因為以太網上數據是以幀為單位進行傳送的,各幀間有一定的間隙,接收端只需找到幀起始符字段,其后的比特流就都屬于同一個MAC幀。
4、MAC地址
PC與外界局域網之間的連接是通過通信適配器進行的,適配器通俗的來說也就是網絡接口卡NIC,也就是網卡,其上面裝有處理器和存儲器,適配器與局域網的通信通過電纜或雙絞線以串行的方式傳輸,與計算機的通信是通過計算機主板上的I/O總線以并行的方式傳輸,另外由于兩方的數據速率不同,適配器中還必須裝有對數據進行緩存的存儲芯片。
另外以太網的適配器有過濾功能,它只接收單播幀、廣播幀和多播幀。
MAC地址,也稱為硬件地址,實際上也就是適配器地址或適配器標識符,由48比特組成,前24位是廠商編號,后24位是設備地址。
五、CSMA/CD協議
(一)CSMA/CD的定義
CSMA/CD,載波監聽多路訪問/沖突檢測協議是一種爭用型介質訪問控制協議,用于解決訪問沖突,其原理是發送前先監聽信道是否空閑,若空閑,則立即發送數據,然后邊發送邊繼續監聽,若監聽到沖突,則立即停止發送數據,等待一段隨機時間后再重新嘗試。
載波監聽表示在發送數據前檢測總線中是否有數據發送,若有,則進入類似退避算法的程序,進而反復進行載波監聽工作,若沒有,則按一定的堅持算法決定任何發送,且以太網中規定了幀間最小間隔為9.6μs,用作在接收下一幀前清理緩存;另外,多路訪問表示多路計算機連在一根總線上。
CSMA/CD協議的通信效率受網絡負載影響,當負載較小時,通信效率高,但當網絡負載較大時,發送時間增加,發送效率急劇下降,所以CSMA/CD協議適合傳輸非實時數據。
(二)堅持算法
堅持算法分為三類,分別是1-持續CSMA、非持續CSMA和p-持續CSMA。
(三)碰撞檢測(沖突檢測)
CSMA/CD協議采用邊發送邊監聽的方式,即碰撞檢測,適配器在邊發送的同時檢測信道中信號電壓的變化,即若當信號變化幅度超過一定限度,則認為總線上發送沖突,沖突檢測最長時間為2倍的總線端到端的傳播時延(2τ),這里的2τ稱為爭用期,也稱為碰撞窗口,經過該期則認為不會出現碰撞。
而當發生碰撞時,發送數據的站除了立即停止發送當前數據,還需發送32bit或48bit的人為干擾信號,稱為強化碰撞,從而所有的站都會收到阻塞信號(連續幾個字節的全1)。
以太網規定10Mb/s以太網(傳統以太網)的最小幀長為64字節,最大幀長為1518字節,最大傳輸單元(MTU)為1500字節,其爭用期為51.2μs,即可以傳輸512bit數據,即64字節;而千兆以太網(IEEE 802.3z)和萬兆以太網(IEEE 802.3ae)的最小幀長均為512字節。
當規定幀最小長度為64Byte時,只要小于64Byte的幀就被丟棄,則為無效幀,大于等于64Byte又一定能檢測到是否發生碰撞(發生碰撞即中止發送,沒有結束符的幀也會被丟棄)。
電磁波在1km電纜中傳播的時延約為5μs,即5μs后下一站才能收到上一站的數據。
(四)退避算法
以太網使用退避算法中的截斷的二進制指數退避算法來解決發送數據的碰撞問題,它規定發生碰撞的站在信道空閑后不立即發送數據,而是推遲一個隨機時間再發送,基本退避時間為爭用期2τ,當重傳次數大于16次,則丟棄該幀數據并匯報給高層。
截斷的二進制指數退避算法的缺點是當網絡負載越重時,其后退時間越長,沒有對優先級進行定義,所以該算法不適合流式業務和突發性業務,但在網絡重負載下能夠有效地化解沖突。
總結
以上是生活随笔為你收集整理的(*长期更新)软考网络工程师学习笔记——Section 5 数据链路层的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python程序开发——Python实现
- 下一篇: (*长期更新)软考网络工程师学习笔记一—