第三章 數據鏈路層
3.1 鏈路層的功能
物理層使得1010能夠傳到對端,而使1010有意義,就是數據鏈路層,通過組幀的方式實現的。
鏈路是一條無源的點到點的物理線路,中間沒有其他任何交換節點
一. 數據鏈路層的功能
- 鏈路管理,幀同步
- 流量控制,差錯控制
- 數據和控制信息分開
- 透明傳輸和尋址
二. 組幀
-
組幀的概念
(1)封裝成幀是在一段數據的前后分別添加首部和尾部。
(2)確定幀的界限:首部和尾部的作用就是幀的定界
(3)MTU是幀的數據部分的最大長度,也是IP數據報的最大傳輸長度(相當於快遞時限制傳輸包裹不能超過20公斤)
-
用控制符進行幀定界
(1)用控制字符進行幀定界的方法是,在幀的開始和結尾處加上特定的字符,這個字符一般是0X7E
(2)透明傳輸:如果幀的數據部分出現了0X7E(SOH或EOT的字符),則要進行轉義 -
透明傳輸的轉義方法:
(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
進行傳輸
3.2 差錯控制
- 檢測編碼:循環冗余校驗碼
- 糾錯編碼:漢明碼
3.3 流量控制和可靠傳輸
一. 停止-等待協議
-
基本概念
(1)發送端A發送完幀,必須等待獲得對端B對陣個幀發送確認幀,A才能繼續發送下一個幀
(2)由於幀可能再傳輸中由於線路問題而丟失,B收不到幀從而無法發送確認幀。因此A設置一個超時重傳時間。在這個時間后如果還沒收到確認幀,A就重新發送該幀。超時重傳時間一般設置為2\(\tau^+\)。(\(\tau\)為A到B的傳輸時延)
-
停止等待協議的特點
(1)在發完一個分組后,必須暫時保留已發送的分組的副本
(2)分組和確認都必須進行編號(才能知道是對哪個分組進行確認)
(3)超時重傳的時間比數據在分組傳輸的平均往返時間2\(\tau\)更長一些
(4)ack報文丟失的結果:A向B發送數據幀,當B的ACK確認幀丟失后,A通過超時重傳重傳丟失的幀。這個幀實際上已經被B接收到了,如果這個幀沒序號,B就無法識別這是收到的重復的幀
(5)綜上所述,停止等待協議使用的確認和重傳機制,可以在不可靠的傳輸網路上實現可靠地通信。 -
ARQ協議
(1)上面這種可靠傳輸協議常稱為自動重傳請求(ARQ--atomic repeat request)。是停止等待的一種實現
(2)ARQ表明重傳請求是自動進行的,接收方不需要請求發送方重傳某個出錯的數據幀。
(3)停止等待協議的信道利用率:
-
流水線傳輸 - 連續的ARQ協議
發送方可連續發送多個分組,不必發送完一個分組就停下來等待對方確認。可以使信道利用率達到100%。一直有數據向外發送。
(1)連續的ARQ協議:
連續的ARQ協議可以連續發送多個數據幀,連續發送的個數成為發送窗口的大小。發送窗口中的幀分為2部分:已發送沒確認的幀和等待發送的幀。當收到第一個發送幀的ACK幀后,窗口向后滑動一個位置。
-
累積確認
(1)接收方的累計確認是指,接收方不必對分割受到的分組逐一確認,逐一發送ACK幀,而是對按需達到的最后一個分組發送方確認幀,表示這個分組及其之前的幀已經正確收到。
(2)累計確認的優點:容易實現,即使ACK丟失也不必重傳(因為后面的確認幀確認了前面的已經收到)
(3)累計確認的缺點:不能反映出接收方已經正確接受的所有分組的信息。
二. 后退N幀協議(GBN)
- GBN的基本概念
設想一種場景:加入1到5號幀,如果只有3號幀接收失敗,但是要重傳3,4,5號幀),發送方要把后面的3個分組重新再傳一遍。這種方法就叫做Go-Back-N(回退N)。表示需要退回來重傳已經發送的N個分組。
三. 選擇重傳協議(SR)
-
SR的基本概念
(1)當接收方發現某個幀傳輸出錯后,氣候繼續達到的正確幀不能立即送給接收方得高層,需要先存放在一個緩沖區,同時要求發送方重傳出錯的一個幀。
(2)一旦接收到重傳的幀后,就可以和緩沖區中的正確幀按照順序遞交給上層
(3)選擇重傳協議,使用連續ARQ發送,但不能使用累積確認。 -
滑動窗口設置
(1)發送方設置一個變量,作為發送窗口SWS(Send Window Size):表示在沒收到確認幀的情況下,發送端最多能發送的幀個數。(停止等待協議中SWS=1)
接收方設置一個變量,作為接收窗口RWS(Recieve Window Size)
(2)設置滑動窗口的目的是重復使用有限的序號列。(序號需要包含在幀頭部,無限增加的序號會導致幀序號字段所占位數增大。eg:2bit幀序號能表示序號0 ~ 3)
(3)發送窗口的規則:
發送窗口內的幀都是允許發送的幀,不用考慮是否收到確認。
每發送完一個幀,允許發送的幀數就減1,但是發送窗口的位置不變。
如果允許發送的幀數都發送完畢,但沒有收到任何確認,則不能繼續發送任何數據。
發送端沒接受到一個ACK確認,發送窗口向前移動一個幀的位置。
(4)接收窗口的規則(RWS):
- 接收窗口大小RWS,表示能夠接受的幀序號的上限,規定了哪些序號的幀可以接受,哪些不能。即:當收到的幀的序號落在窗口內才允許接受該數據幀。(停止等待協議中的RWS = 1)
- 為了減少開銷,連續的ARQ協議還規定接收端不必每收到一個正確的數據幀就發送一個確認幀,而是連續收到幾個正確幀后,才對最后一個數據幀確認。
- 有時為了減少開銷,也會采用捎帶確認機制(ACK幀不包含發送時間,只有在信道上傳播的時間)
- 接收窗口的大小需要根據需要設定
(1)RWS=1:表示一次只能接受一個幀
(2)RWS=SWS:可以將發送端發送的幀全部接受
(3)RWS>SWS:無意義- 接收窗口的規則:
(1)只有當接收的幀序號和接受窗口的序號一致時才能接受該幀,否則丟棄該幀
(2)沒收到一個序號正確的幀,接受窗口向前滑動一個位置(使可接收序號變化),同時發送ACK確認。所以接收窗口的大小,只是起到了累積確認,按序重組數據幀的作用。
(3)接受窗口滑動了,發送窗口才能滑動。
- 如何設定發送窗口(SWS)的大小:
(1)發送窗口的大小等於序號大小就一定最好嗎
(i) 假設序號為0到7,發送窗口大小設置為8(與序號個數一樣),接收窗口設置為1,這樣好嗎?答案是不好。
(ii) 假設接收方返回的1到8號確認幀丟失了,使得發送方重傳1到8號幀,這是發送方發送的其實是接收方已經接收到的重復幀,但是接收方並沒意識到自己收到的是重復幀。
(iii) 為了解決這個問題,只要把發送窗口大小,設置的比序號至少小1即可。
(2)\(SWS_{max}\) = 序號個數 - RWS:
保證發送窗口大小與接收窗口大小的和為n,就能保證接收方識別出重傳的幀
(3)退后N幀的發送窗口最大:\(2^n -1\)
選擇重傳的發送窗口最大:\(2^{(n-1)}\)
3.4 介質訪問
一. 介質訪問控制
1、 信道划分介質訪問控制
復用是通信技術的基本概念
(1)頻分復用FDM
頻分復用的所有用戶在同樣的時間使用不同的帶寬資源(不同Hz的信道)
(2)時分復用TDM
(i) 時分復用是將時間划分為一段登場的復用幀(TDM幀)。每一個時分復用的用戶在每一個TDM幀中占用固定序號的時隙。
(ii) 每一個用戶所占時隙周期性的出現(周期就是TDM幀的長度)
(iii)TDM信號也成等時
(v) 時分復用的所有用戶在不同時間占用相同的頻帶寬度
(3)波分復用(WDM)
光纖通信中,每個用戶占用不同的波長
(4)碼分復用(CDM)
碼分多址CDMA(Code Division Multiple Access)
(i) 每一個比特時間划分為m個短的間隔,成為碼片。所有用戶一起發送的結果就是這些碼片向量的疊加
(ii) 碼片序列:
每個站被指派一個唯一的m個碼片序列
eg:發送比特1,則發送m個bit的碼片。
發送比特0,就發送這m個bit碼片的二進制反碼
eg:S站的碼片序列為00011011,則如果發送比特0,則發送的是11100100。而CDMA往往用-1代表0(利於后面的正交計算)。所以S站的原始碼片序列為(-1 -1 -1 +1 +1 -1 +1 +1)
(iii) CDMA的特點:每個站分配的碼片必須正交(使用偽隨機碼序列)
eg:向量S為(-1 -1 -1 +1 +1 -1 +1 +1),向量T為(-1 -1 +1 -1 +1 +1 +1 -1)。把向量S和T的各分量之帶入S*T。和為0.
(v)CDMA分碼,使得向量自己和自己做內積,結果是1。向量和自己的反碼做內積,結果是-1.
二. 隨機介質訪問控制
-
ALOHA協議
(1)用戶有幀即可發送。采用沖突監聽與隨機重發機制。這種系統是競爭系統系統
(2)幀長統一,但兩幀沖突或重疊,則會被破壞,因此效率不高
(3)在泊松分布下,每個幀時間為嘗試發送次數G=0.5時,信道吞吐量S=0.184
(4)只能用原信道吞吐量的18.4% -
載波監聽多路訪問CSMA
(1)當一個站點需要發送數據前,需要先監聽總線
(2)如果總線上沒有其他站點發送信號,則該站可以發送信號。如果有其他站點發送信號。則需要等待一段時間再重新監聽總線,再根據總線的忙閑情況決定是否發送數據。 -
CSMA/CD協議
(1)CSMA只是監聽總線是否空閑,當兩個站點同時監聽到總線空閑后,會同時發送數據,還是會造成沖突。
(2)CSMA/CD利用以太網廣播的方式進行單播通信。即線路上的所有站點都能收到總線上的數據,但只有指定的接收方會對該信號作出回應。
(3)CSMA/CD協議用於以太網。以太網的傳輸特點有以下2中方式:
(i) 采用靈活的無連接工作方式。即不必先建立連接就可以發送數據
(ii)以太網對發送的幀不進行編號,也不要求對方發回確認(因為局域網的信道質量很好,產生差錯的概率很低)
(4)以太網提供的服務
以太網提供的是不可靠服務,盡最大努力交付
當目的站收到有差錯數據時就丟棄,其他的什么也不做、
(5)CD的意思是碰撞檢測:就是邊發數據邊檢測是否有其他站點發送信號。發生碰撞時,總線上傳輸的信號產生嚴重失真,無法恢復有用的信息。因此,使用CSMA/CD協議的以太網不能進行全雙工通信,而只能進行雙向交替通信(半雙工通信)。每個站在發送數據后的一小段時間內,都存在遭遇碰撞的可能性。最先發送數據幀的站,最多在發送數據后的2\(\tau\)時間后,就可以知道是否發生了碰撞。
(6)以太網端到端的往返延時2\(\tau\)稱為征用期或碰撞窗口
(7)當發送的時候,檢測到了碰撞,則要二進制指數退避算法延時后再次發送數據
(i)重傳次數k = Min[重傳次數,10],設隨機數r是從0到$ (2^k-1)\(中隨機取出來的整數。重傳所需的時延就是r倍的2\)\tau\( (ii)當重傳16次仍發現沖突時,就丟棄該幀,向上層告報告 (8)以太網征用期的長度為51.2\)\mu s$
因此對於10Mbps的以太網,征用期內能發送512字節的數據幀,即64字節。即如果在發生64自節后,還沒檢測到沖突,則此次發送不會砸發生沖突。
(9)64字節稱為最短有效幀長。
若信道長度為L,帶寬為c,傳播速率為D,則最短有效幀長為\(2*C*\frac{L}{D}\) -
CSMA/CA協議
(1)CSMA/CA在無線網中使用、無線網由於沒有一條確定的通信線路,因此cd算法的征用期無法計算,所以不適合用CSMA/CD協議
(2)CSMA/CA協議盡量在發送時避免沖突,同時使用停止等待,一次只發送一個數據幀。
(3)CSMA/CA的流程:當檢測到信道空閑,還要等待一小段時間后才能發送數據幀,為了讓高優先級的幀發送
3.5 局域網
一. 以太網與IEEE 802.3
-
以太網是符合DIX Ethernet V2標准的局域網。
-
IEEE 802.3規定數據鏈路層分為2層:
(1)LLC邏輯鏈路控制層:與媒體無關,與IP層打交道
(2)MAC媒體控制接入子層 -
MAC地址
(1)共48bit的物理地址:前24位(3字節)由RA負責向廠家分配。后3字節由廠家分配
(2)MAC幀的結構:
MAC幀的數據部分長度范圍是46到1500字節。
上限由MTU決定,下限由最短幀長決定。最短幀長為64字節(黃色部分+粉色的FCS部分占18個字節,加起來就是64字節)
(3)無效MAC幀:
數據字段長度不在46~1500字節的,有效MAC幀長不在64~1518字節的幀都是無效幀。 -
三種不同物理層標准
標准 線路材質 100BASE-TX 使用2對UTP5類線或屏蔽雙絞線STP 100BASE-FX 使用2對光纖 100BASE-T4 使用4對UTP3類線或5類線
3.6 廣域網
一. PPP協議 - 面向字節
- 全世界使用最多的點對點協議PPP
- ppp是點對點的,所以不是總線型,也就不用CSMA/CD協議。一次沒有最短幀限制(不用2t的爭用期),所以信息段范圍是0~1500字節
- 用戶撥號上網電話線介入因特網時,一般使用PPP協議。
- PPP協議由三個部分組成
(1)將IP數據報封裝到串行鏈路的方法
(2)鏈路控制協議LCP
(3)網絡控制協議NCP - PPP在同步線路上采用零比特填充解決透明傳輸(同HDLAC),在異步線路上采用字符定界確定幀邊界0x7E(默認做法)
- PPP不采用幀序號和幀確認,是不可靠鏈路,只能進行全雙工通信。只檢錯不糾錯。
二. HDLAC - 面向比特
- 主站和從站的概念:
- 主站到從站的幀稱為命令幀
從站到主站的幀稱為響應幀 - 采用全雙工通信,對幀編號,采用CRC校驗
- HDLAC只有3種幀:信息幀,監督幀,無編號幀。
3.7 數據鏈路層設備
一. 網橋
-
網橋具備過濾幀的功能:
網橋收到一個幀時,並不是向所有接口發送此幀。而是先檢查此幀的目的地址。然后確定將該幀轉發到哪一個接口。 -
網橋內部結構
-
網橋的好處
(1)過濾通信量
(2)擴大物理范圍
(3)提高可靠性
(4)可互連不同物理層,不同速率的局域網。
(5)網橋可以隔離碰撞域,可以引起廣播風暴(目的地址為FFFFFF) -
網橋轉發表的建立 - 自學習
(1)若A站發出的幀從接口x進入了某網橋,那么從這個接口出發沿反方向一定可以吧一個幀發送到A
(2)網橋每接收到一個幀,如果轉發表中沒有此項,就記下源地址和網橋接口,作為轉發表的一項。如果有該站的表項,則更新表項。
(3)如果發現轉發的地址和源地址在一個接口,則不予轉發
(4)初始時,網橋的轉發表為空,所以網橋會把幀轉發到所有的接口。
(5)網橋中的轉標表項有三個部分:MAC地址,轉發接口,倒計時。倒計時是用來限制轉發表項的生存時間的,因為聯路上的機器時常更新,所以轉發表也要時常更新。比如如果倒計時設為10s,則如果在10秒內沒有幀發往此站,則此轉發表項將刪除
二. 交換機
- 交換機是有十幾個接口的網橋
- 以太網交換機分為共享式和獨占式。如果是共享式,每個接口的帶寬為總代快的n分之1
- 交換機的性能指標 - 轉發技術
(1)直通式交換:收到數據包后,只看幀的前6個字節(目的地址),然后直接轉發
此種方法速度快,但是沒有對幀進行校驗,可能轉發了無效幀
(2)存儲轉發式交換
存儲轉發技術要求交換機在接收到完整的數據報后決定如何轉發。先進行校驗正確性和完整性
(3)碎片隔離式
也是接收完整幀,但只校驗幀長是否大於64字節, - 交換機時延:
從交換機接收到數據包開始向目的端口復制數據包之間的間隔
(1)采用直通轉發的交換機有固定的時延。取決於交換機解讀數據包前6字節目的地址的速率
(2)采用存儲轉發技術的交換機由於要接受完整的數據包,因此時延和幀長度有關
【注】:網橋不能隔離廣播域。但是交換機可以通過組建虛擬局域網來隔離廣播域。