一、數據鏈路層的基本概念
1. 數據鏈路層的簡單模型
數據鏈路層不關心物理層解決的問題,只關心幀頭幀尾和校驗。
2. 數據鏈路層使用的信道主要有以下兩種類型:
- 點對點信道。這種信道使用一對一的點對點通信方式。
- 廣播信道。這種信道使用一對多的廣播通信方式,因此過程比較復雜。廣播信道上連接的主機很多,因此必須使用專用的共享信道協議來協調這些主機的數據發送
3. 數據鏈路和幀
- 鏈路(link)是一條無源的點到點的物理線路段,中間沒有任何其他的交換結點。
- 一條鏈路只是一條通路的一個組成部分。
- 數據鏈路(data link) 除了物理線路外,還必須有通信協議來控制這些數據的傳輸。若把實現這些協議的硬件和軟件加到鏈路上,就構成了數據鏈路。
- 現在最常用的方法是使用適配器(即網卡)來實現這些協議的硬件和軟件。
- 一般的適配器都包括了數據鏈路層和物理層這兩層的功能。
- 幀:在網絡層,給數據包增加了接收端和發送端的IP地址。在數據鏈路層里,增加了幀頭幀尾,MAC地址和校驗值。
二、三個基本問題(重點)
1. 封裝成幀
封裝成幀(framing)就是在一段數據的前后分別添加首部和尾部,然后就構成了一個幀。確定幀的界限。
首部和尾部的一個重要作用就是進行幀定界
2. 透明傳輸
解決透明傳輸:
- 發送端的數據鏈路層在數據中出現控制字符“SOH”或“EOT”的前面插入一個轉義字符“ESC”(其十六進制編碼是 1B)。
- 字節填充(byte stuffing)或字符填充(character stuffing)——接收端的數據鏈路層在將數據送往網絡層之前刪除插入的轉義字符。
- 如果轉義字符也出現數據當中,那么應在轉義字符前面插入一個轉義字符。當接收端收到連續的兩個轉義字符時,就刪除其中前面的一個。
3. 差錯控制(CRC重點)
- 在傳輸過程中可能會產生比特差錯:1 可能會變成 0 而 0 也可能變成 1。
- 在一段時間內,傳輸錯誤的比特占所傳輸比特總數的比率稱為誤碼率 BER (Bit Error Rate)。
- 誤碼率與信噪比有很大的關系。
- 為了保證數據傳輸的可靠性,在計算機網絡傳輸數據時,必須采用各種差錯檢測措施。
在數據鏈路層傳送的幀中,廣泛使用了循環冗余檢驗 CRC 的檢錯技術。
循環冗余檢驗原理:
- 在發送端,先把數據划分為組。假定每組 k 個比特。
- 假設待傳送的一組數據 M = 101001(現在 k = 6)。我們在 M 的后面再添加供差錯檢測用的 n 位冗余碼一起發送。
冗余碼計算:
- 用二進制的模 2 運算進行 2n 乘 M 的運算,這相當於在 M 后面添加 n 個 0。
- 得到的 (k + n) 位的數除以事先選定好的長度為 (n + 1) 位的除數 P,得出商是 Q 而余數是 R,余數 R 比除數 P 少1 位,即 R 是 n 位。
主要看例子上面的注釋
例子:
幀檢驗序列 FCS
- 在數據后面添加上的冗余碼稱為幀檢驗序列 FCS (Frame Check Sequence)。
- 循環冗余檢驗 CRC 和幀檢驗序列 FCS並不等同。
- CRC 是一種常用的檢錯方法,而 FCS 是添加在數據后面的冗余碼。
- FCS 可以用 CRC 這種方法得出,但 CRC 並非用來獲得 FCS 的唯一方法。
應當注意:
- 僅用循環冗余檢驗 CRC 差錯檢測技術只能做到無差錯接受(accept)。
- “無差錯接受”是指:“凡是接受的幀(即不包括丟棄的幀),我們都能以非常接近於 1 的概率認為這些幀在傳輸過程中沒有產生差錯”。
- 也就是說:“凡是接收端數據鏈路層接受的幀都沒有傳輸差錯”(有差錯的幀就丟棄)。
- 要做到“可靠傳輸”(即發送什么就收到什么)就必須再加上確認和重傳機制。
例題
三、點對點協議 PPP
-
現在全世界使用得最多的數據鏈路層協議是點對點協議 PPP (Point-to-Point Protocol)。
-
用戶使用撥號電話線接入因特網時,一般都是使用 PPP 協議。
1. PPP 協議應滿足的需求
- 簡單——這是首要的要求
- 封裝成幀
- 透明性
- 多種網絡層協議
- 多種類型鏈路
- 差錯檢測
- 檢測連接狀態
- 最大傳送單元
- 網絡層地址協商
- 數據壓縮協商
2. PPP 協議不需要的功能
- 糾錯
- 流量控制
- 序號
- 多點線路
- 半雙工或單工鏈路
3. PPP 協議的組成
數據鏈路層協議可以用於異步串行或同步串行介質;
PPP 協議有三個組成部分
- 一個將 IP 數據報封裝到串行鏈路的方法。
- 鏈路控制協議 LCP (Link Control Protocol),使用LCP(鏈路控制協議)建立並維護數據鏈路連接,可以實現身份驗證和欠費管理 。
- 網絡控制協議 NCP (Network Control Protocol)允許在點到點連接上使用多種網絡層協議,如下圖 :
4. PPP 協議的幀格式
- 標志字段 F = 0x7E (符號“0x”表示后面的字符是用十六進制表示。十六進制的 7E 的二進制表示是 01111110)。
- 地址字段 A 只置為 0xFF。地址字段實際上並不起作用。
- 控制字段 C 通常置為 0x03。
- PPP 是面向字節的,所有的 PPP 幀的長度都是整數字節。
- 協議字段是標識信息部分是什么東西
5. 透明傳輸問題 :字符填充
-
將信息字段中出現的每一個 0x7E 字節轉變成為 2 字節序列(0x7D, 0x5E)。
-
若信息字段中出現一個 0x7D 的字節, 則將其轉變成為 2 字節序列(0x7D, 0x5D)。
-
若信息字段中出現 ASCII 碼的控制字符(即數值小於 0x20 的字符),則在該字符前面要加入一個 0x7D 字節,同時將該字符的編碼加以改變。
6. 透明傳輸問題 :零比特填充
- PPP 協議用在 SONET/SDH 鏈路時,是使用同步傳輸(一連串的比特連續傳送)。這時 PPP 協議采用零比特填充方法來實現透明傳輸。
- 在發送端,只要發現有 5 個連續 1,則立即填入一個 0。接收端對幀中的比特流進行掃描。每當發現 5 個連續1時,就把這 5 個連續 1 后的一個 0 刪除,
7. 不提供使用序號和確認機制
PPP 協議之所以不使用序號和確認機制是出於以下的考慮:
-
在數據鏈路層出現差錯的概率不大時,使用比較簡單的 PPP 協議較為合理。
-
在因特網環境下,PPP 的信息字段放入的數據是 IP 數據報。數據鏈路層的可靠傳輸並不能夠保證網絡層的傳輸也是可靠的。
-
幀檢驗序列 FCS 字段可保證無差錯接受。
8. PPP 協議的工作狀態
- 當用戶撥號接入 ISP 時,路由器的調制解調器對撥號做出確認,並建立一條物理連接。
- PC 機向路由器發送一系列的 LCP 分組(封裝成多個 PPP 幀)。
- 這些分組及其響應選擇一些 PPP 參數,和進行網絡層配置,NCP 給新接入的 PC機分配一個臨時的 IP 地址,使 PC 機成為因特網上的一個主機。
- 通信完畢時,NCP 釋放網絡層連接,收回原來分配出去的 IP 地址。接着,LCP 釋放數據鏈路層連接。最后釋放的是物理層的連接。
四、使用廣播信道的數據鏈路層 (局域網)
局域網最主要的特點是:網絡為一個單位所擁有,且地理范圍和站點數目均有限。
局域網具有如下的一些主要優點:
- 具有廣播功能,從一個站點可很方便地訪問全網。局域網上的主機可共享連接在局域網上的各種硬件和軟件資源。
- 便於系統的擴展和逐漸地演變,各設備的位置可靈活調整和改變。
- 提高了系統的可靠性、可用性和殘存性。
1. 局域網拓撲
2. 共享通信媒體
靜態划分信道:
- 頻分復用
- 時分復用
- 波分復用
- 碼分復用
動態媒體接入控制(多點接入)
- 隨機接入(主要被以太網采用)
- 受控接入 ,如多點線路探詢(polling),或輪詢。
3. 認識以太網
最初的以太網是將許多計算機都連接到一根總線上,當初認為這樣連接即簡單又可靠,因為總線上沒有有源器件。
總線上每一個主機都能檢測到B發送的數據。但是只有D的地址和數據幀首部寫入的地址一致,所以只有D接收。其余計算機都能檢測到這不是發送給他們的數據幀,所以就丟棄這個數據幀。
這是一種具有廣播特性的總線上實現了一對一通信。這種方式不安全。
4. 以太網使用CSMA/CD 協議
CSMA/CD 表示 Carrier Sense Multiple Access with Collision Detection。
載波監聽多點接入/碰撞檢測
- “多點接入”表示許多計算機以多點接入的方式連接在一根總線上。
- “載波監聽”是指每一個站在發送數據之前先要檢測一下總線上是否有其他計算機在發送數據,如果有,則暫時不要發送數據,以免發生碰撞。
- 總線上並沒有什么“載波”。因此, “載波監聽”就是用電子技術檢測總線上有沒有其他計算機發送的數據信號。
碰撞檢測:
- “碰撞檢測”就是計算機邊發送數據邊檢測信道上的信號電壓大小。
- 當幾個站同時在總線上發送數據時,總線上的信號電壓擺動值將會增大(互相疊加)。
- 當一個站檢測到的信號電壓擺動值超過一定的門限值時,就認為總線上至少有兩個站同時在發送數據,表明產生了碰撞。
- 所謂“碰撞”就是發生了沖突。因此“碰撞檢測”也稱為“沖突檢測”。
檢測到碰撞后:
- 在發生碰撞時,總線上傳輸的信號產生了嚴重的失真,無法從中恢復出有用的信息來。
- 每一個正在發送數據的站,一旦發現總線上出現了碰撞,就要立即停止發送,免得繼續浪費網絡資源,然后等待一段隨機時間后再次發送。
5. CSMA/CD的重要特性
- 使用 CSMA/CD 協議的以太網不能進行全雙工通信而只能進行雙向交替通信(半雙工通信)。
- 每個站在發送數據之后的一小段時間內,存在着遭遇碰撞的可能性。
- 這種發送的不確定性使整個以太網的平均通信量遠小於以太網的最高數據率。
6. 爭用期
- 最先發送數據幀的站,在發送數據幀后至多經過時間 2t (兩倍的端到端往返時延)就可知道發送的數據幀是否遭受了碰撞。
- 以太網的端到端往返時延2t 稱為爭用期,或碰撞窗口。
- 經過爭用期這段時間還沒有檢測到碰撞,才能肯定這次發送不會發生碰撞。
爭用期的長度 :
- 以太網取 51.2 ms 為爭用期的長度。
- 對於 10 Mb/s 以太網,在爭用期內可發送512 bit,即 64 字節。
- 以太網在發送數據時,若前 64 字節沒有發生沖突,則后續的數據就不會發生沖突。
最短有效幀長 :
- 如果發生沖突,就一定是在發送的前 64 字節之內。
- 由於一檢測到沖突就立即中止發送,這時已經發送出去的數據一定小於 64 字節。
- 以太網規定了最短有效幀長為 64 字節,凡長度小於 64 字節的幀都是由於沖突而異常中止的無效幀。
7. 二進制指數類型退避算法
發生碰撞的站在停止發送數據后,要推遲(退避)一個隨機時間才能再發送數據。
- 確定基本退避時間,一般是取為爭用期 2t。
- 定義重傳次數 k ,k £ 10,即
k = Min[重傳次數, 10]
- 從整數集合[0,1,…, (2k -1)]中隨機地取出一個數,記為 r。重傳所需的時延就是 r 倍的基本退避時間。
- 當重傳達 16 次仍不能成功時即丟棄該幀,並向高層報告。
五、以太網
1. 以太網的兩個標准
- DIX Ethernet V2 是世界上第一個局域網產品(以太網)的規約。
- IEEE 的 802.3 標准。
- DIX Ethernet V2 標准與 IEEE 的 802.3 標准只有很小的差別,因此可以將 802.3 局域網簡稱為“以太網”。
- 嚴格說來,“以太網”應當是指符合 DIX Ethernet V2 標准的局域網
2. 以太網與數據鏈路層的兩個子層
為了使數據鏈路層能更好地適應多種局域網標准,802 委員會就將局域網的數據鏈路層拆成兩個子層:
- 邏輯鏈路控制 LLC (Logical Link Control)子層
- 媒體接入控制 MAC (Medium Access Control)子層。
與接入到傳輸媒體有關的內容都放在 MAC子層,而 LLC 子層則與傳輸媒體無關,不管采用何種協議的局域網對 LLC 子層來說都是透明的
由於局域網標准一般是DIX Ethernet V2而不是IEEE 802.3,所以802.2標准的LLC子層作用已經不大了,很多廠商適配器沒有LLC協議
3. 以太網提供的服務
- 以太網提供的服務是不可靠的交付,即盡最大努力的交付。
- 當目的站收到有差錯的數據幀時就丟棄此幀,其他什么也不做。差錯的糾正由高層來決定。
- 如果高層發現丟失了一些數據而進行重傳,但以太網並不知道這是一個重傳的幀,而是當作一個新的數據幀來發送
4. 以太網發送的數據都使用 曼徹斯特(Manchester)編碼
5. 以太網的星型拓撲結構
物理上是星型,邏輯上是總線型。
- 為了降低成本,最初由粗的同軸電纜變成細的同軸電纜最后變成無屏蔽雙絞線。
- 每個站需要用兩對雙絞線,分別用於發送和接收;
- 在星形的中心增加了一種可靠性高的設備,為集線器(hub)。
- 現在基本不在使用
集線器的特點:
- 集線器是使用電子器件來模擬實際電纜線的工作,因此整個系統仍然像一個傳統的以太網那樣運行。
- 使用集線器的以太網在邏輯上仍是一個總線網,各工作站使用的還是 CSMA/CD 協議,並共享邏輯上的總線。
- 集線器很像一個多接口的轉發器,工作在物理層。
6. 以太網的信道利用率
以太網的信道被占用的情況:
- 爭用期長度為 2t,即端到端傳播時延的兩倍。檢測到碰撞后不發送干擾信號。
- 幀長為 L (bit),數據發送速率為 C (b/s),因而幀的發送時間為 L/C = T0 (s)。
對以太網參數的要求:
- 當數據率一定時,以太網的連線的長度受到限制,否則 t 的數值會太大。
- 以太網的幀長不能太短,否則 T0 的值會太小,使 a 值太大。
信道利用率的最大值:
六、MAC層
1. MAC 層的硬件地址
- 在局域網中,硬件地址又稱為物理地址,或 MAC 地址
- MAC地址前3個字節(24位)是廠家分配的地址字段,后3個字節(24位)是廠家自定義,稱為擴展標識符,必須保證生產出的適配器沒有重復地址。
- 一個地址塊可以產生2^24個地址,這種48位地址稱為MAC-48,通用名為EUI-48,這就是MAC地址;
- MAC地址實際上是每一個站的名字或標識符。
2. 適配器檢查 MAC 地址
適配器從網絡上每收到一個 MAC 幀就首先用硬件檢查 MAC 幀中的 MAC 地址.
- 如果是發往本站的幀則收下,然后再進行其他的處理。
- 否則就將此幀丟棄,不再進行其他的處理。
“發往本站的幀”包括以下三種幀:
- 單播(unicast)幀(一對一)
- 廣播(broadcast)幀(一對全體)
- 多播(multicast)幀(一對多)
3. MAC 幀的格式
6 + 6 + 2 + 46 + 4 =64 byte,這就是為什么IP數據報的最短長度為46字節。
類型字段用來標志上一層使用的是什么協議,以便把收到的 MAC 幀的數據上交給上一層的這個協議。
數據字段的正式名稱是 MAC 客戶數據字段,最小長度 64 字節 - 18 字節的首部和尾部 = 數據字段的最小長度
4. 無效的 MAC 幀
- 數據字段的長度與長度字段的值不一致;
- 幀的長度不是整數個字節;
- 用收到的幀檢驗序列 FCS 查出有差錯;
- 數據字段的長度不在 46 ~ 1500 字節之間。
- 有效的 MAC 幀長度為 64 ~ 1518 字節之間。
- 對於檢查出的無效 MAC 幀就簡單地丟棄。以太網不負責重傳丟棄的幀。
5. 幀間最小間隔
- 幀間最小間隔為 9.6 ms,相當於 96 bit 的發送時間。
- 一個站在檢測到總線開始空閑后,還要等待 9.6 ms 才能再次發送數據。
- 這樣做是為了使剛剛收到數據幀的站的接收緩存來得及清理,做好接收下一幀的准備。
七、擴展以太網
1. 在物理層擴展局域網
- 距離的擴展 :主機使用光纖和一對光纖調制解調器連接到集線器。
- 數量的擴展 集線器集聯:使網絡中計算機增加,變成一個大的沖突域,會造成效率降低。
2. 在數據鏈路層擴展局域網
在數據鏈路層擴展局域網是使用網橋。
- 網橋工作在數據鏈路層,它根據 MAC 幀的目的地址對收到的幀進行轉發。
- 網橋具有過濾幀的功能。當網橋收到一個幀時,並不是向所有的接口轉發此幀,而是先檢查此幀的目的 MAC 地址,然后再確定將該幀轉發到哪一個接口
網橋的優點和缺點:
- 過濾通信量。
- 擴大了物理范圍。
- 提高了可靠性。
- 可互連不同物理層、不同 MAC 子層和不同速率(如10 Mb/s 和 100 Mb/s 以太網)的局域網。
- 存儲轉發增加了時延。
- 在MAC 子層並沒有流量控制功能。
- 具有不同 MAC 子層的網段橋接在一起時時延更大。
- 網橋只適合於用戶數不太多(不超過幾百個)和通信量不太大的局域網,否則有時還會因傳播過多的廣播信息而產生網絡擁塞。這就是所謂的廣播風暴。
3. 透明網橋
目前使用得最多的網橋是透明網橋(transparent bridge)。
- “透明”是指局域網上的站點並不知道所發送的幀將經過哪幾個網橋,因為網橋對各站來說是看不見的。
- 透明網橋是一種即插即用設備,其標准是 IEEE 802.1D。
4. 多接口網橋——以太網交換機
- 1990 年問世的交換式集線器(switching hub),可明顯地提高局域網的性能。
- 交換式集線器常稱為以太網交換機(switch)或第二層交換機(表明此交換機工作在數據鏈路層)。
- 以太網交換機通常都有十幾個接口。因此,以太網交換機實質上就是一個多接口的網橋,可見交換機工作在數據鏈路層。
以太網交換機的特點
- 以太網交換機的每個接口都直接與主機相連,並且一般都工作在全雙工方式。
- 交換機能同時連通許多對的接口,使每一對相互通信的主機都能像獨占通信媒體那樣,進行無碰撞地傳輸數據。
- 以太網交換機由於使用了專用的交換結構芯片,其交換速率就較高。
隨着網橋的接口的增加, 后來網橋和集線器合並了,計算機可以直接和交換機連接,這就是交換機。
交換機就是網橋和集線器的合並升級版,能全雙工,安全通信。
端口帶寬獨享; 安全; 基於MAC地址轉發; 通過學習構建MAC地址表。
5. 虛擬局域網
虛擬局域網 VLAN 是由一些局域網網段構成的與物理位置無關的邏輯組。
- 這些網段具有某些共同的需求。
- 每一個 VLAN 的幀都有一個明確的標識符,指明發送這個幀的工作站是屬於哪一個 VLAN。
虛擬局域網其實只是局域網給用戶提供的一種服務,而並不是一種新型局域網
八、高速以太網
1. 100BASE-T 以太網
- 速率達到或超過 100 Mb/s 的以太網稱為高速以太網。
- 在雙絞線上傳送 100 Mb/s 基帶信號的星型拓撲以太網,仍使用 IEEE 802.3 的CSMA/CD 協議。100BASE-T 以太網又稱為快速以太網(Fast Ethernet)。
2. 100BASE-T 以太網的特點
- 可在全雙工方式下工作而無沖突發生。因此,不使用 CSMA/CD 協議。
- MAC 幀格式仍然是 802.3 標准規定的。
- 保持最短幀長不變,但將一個網段的最大電纜長度減小到 100 m。
- 幀間時間間隔從原來的 9.6 ms 改為現在的 0.96 ms。
3. 吉比特以太網
- 允許在 1 Gb/s 下全雙工和半雙工兩種方式工作。
- 使用 802.3 協議規定的幀格式。
- 在半雙工方式下使用 CSMA/CD 協議(全雙工方式不需要使用 CSMA/CD 協議)。
- 與 10BASE-T 和 100BASE-T 技術向后兼容。