計算機網絡之數據鏈路層要點筆記

兩種信道

點對點信道和廣播信道html

兩種鏈路

物理鏈路與數據鏈路web

數據鏈路層要解決的三個基本問題

封裝成幀、透明傳輸、差錯檢測算法

字符填充和比特填充方法

爲解決透明傳輸問題,就須要將控制字符與通常的字符區分開來,因而產生了字符填充方式與比特填充方式兩種:緩存

  • 字符填充方式:發送端的數據鏈路層在數據中出現控制字符「SOH」或「EOT」的前面插入一個轉義字符「ESC」,在接收端的數據鏈路層在把數據送往網絡層以前刪除這個轉義字符,這就是字符填充方式。
  • 零比特填充方式:在發送端,只要發現有5個連續的1,則當即在其後填入 1個0,接收端對幀中的比特流進行掃描,每當發現5個連續的1,就刪除其後的1個0.

CRC計算

一、在發送端,先把數據劃分爲組。假定待傳送某組數據M,其長度爲k 位,在M的後面再添加差錯檢測用的n位冗餘碼一塊兒發送。網絡

  • 冗餘碼的生成(計算過程)
    • 將M左移n位,右邊填零,變成(k+n)位。這至關於在M後面添加n個0
    • 用左移後的數除以(n+1)位除數P(模二除法),獲得商Q,及n位餘數R
    • 將 n 位餘數R 做爲冗餘碼,拼接在數據 M 後面,發送出去
  • 在接收端將收到的數據進行模二除法,若獲得的餘數爲0,則表示收到的+ 數據沒有發生錯誤,不然數據在傳輸中輸錯,丟棄該數據。

數據鏈路層能夠檢測什麼差錯,不能解決什麼差錯

數據鏈路層可以檢測數據在傳輸過程當中產生的比特差錯,可是不能糾錯。沒法解決幀重發、幀丟失、幀亂序的問題。app

PPP幀格式

  • 1個字節的標誌字段F=0x7E,做爲幀定界符解決了封裝成幀的問題
  • 1個字節的地址字段A 必須爲 0xFF,目前沒什麼做用
  • 1個字節的控制字段C 常置爲 0x03,目前沒什麼做用

PPP如何解決三個基本問題的

在數據鏈路層須要解決三個問題,封裝成幀、透明傳輸、差錯檢測,PPP協議的解決辦法以下:異步

  • 對於封裝成幀:
    • 在幀格式中添加幀首與幀尾兩部分,用於幀的開始與結束的定界
  • 對於透明傳輸:
    • 當 PPP 用在異步傳輸鏈路時,使用軟件進行特定字符填充
    • 當 PPP 用在同步傳輸鏈路時,採用硬件進行零比特填充
  • 對於差錯檢測:
    • 使用CRC循環冗餘校驗碼進行差錯檢測

PPP的三個組成部分、工做過程

PPP爲點對點的數據鏈路層協議,除了解決上述三個問題的PPT協議,還有用於創建、配置、測試、數據鏈路層的鏈路控制協議LCP,以及一套網絡控制協議NCP.svg

  • 工做過程以下:
    • 當用戶撥號接入 ISP 時,路由器的調制解調器對撥號作出確認,並創建物理鏈路
    • 經過一系列LCP 分組(封裝成PPP 幀),協商PPP鏈路層參數,如:是否省略不用的地址和控制字段、鑑別協議、最大幀長等,創建LCP鏈路
    • 經過LCP 分組(封裝成PPP 幀),進行用戶身份鑑別
    • 經過一系列NCP 分組(封裝成PPP 幀),配置PPP網絡層參數,如:使用何種網絡層協議、是否壓縮TCP 及IP 首部、給新接入的 PC 機分配臨時 IP 地址,創建完整的數據鏈路,爲網絡層提供本層服務
  • 此時數據鏈路層的配置完畢,可投入使用,當數據鏈路層取消連接時會進行以下操做
    • 經過NCP 分組釋放網絡控制鏈路,收回原來分配出去的 IP 地址
    • 經過LCP 分組釋放鏈路控制鏈路
    • 釋放物理鏈接
      圖解可表示爲:
      在這裏插入圖片描述

以太網幀格式

以太網幀格式

以太網協議如何解決三個基本問題

  • 封裝成幀:
    • 按照幀格式將數據組織爲幀
  • 透明傳輸:透明傳輸過程是由物理層完成,具體以下:
    • 在發送幀前添加幀同步碼與幀開始定界符
    • 在收到數據空閒時表示幀結束
  • 差錯檢測:
    • 使用CRC循環冗餘校驗碼檢錯

CSMA/CD協議做過程

  1. 準備發送:適配器從網絡層得到一個分組,加上以太網的首部和尾部組成以太網幀,放入適配器的緩存中。但在發送以前,必須先檢測信道。
  2. 檢測信道:若檢測到信道忙,則應不停地檢測,一直等待信道轉爲空閒。若檢測到信道空閒,並在96比特時間內信道保持空閒(保證了幀間最小間隔),就發送這個幀。
  3. 在發送過程當中仍不停地檢測信道,即網絡適配器要邊發送邊監聽。這裏只有兩種可能性:
    • 發送成功:在爭用期內一直未檢測到碰撞。這個幀確定可以發送成功。發送完畢後,其餘什麼也不作。而後回到(1)。
    • 發送失敗:在爭用期內檢測到碰撞。這時當即中止發送數據,並按規定發送人爲干擾信號。適配器接着就執行指數退避算法,等待r倍512比特時間後,返回到步驟(2),繼續檢測信道。但若重傳達16次仍不能成功,則中止重傳而向.上報錯。
  4. 以太網每發送完一幀,必定要把已發送的幀暫時保留一下。若是在爭用期內檢測出發生了碰撞,那麼還要在推遲一段時間後再把這個暫時保留的幀重傳一次。

以太網的幀長度、鏈路長度受到哪些因素的制約、如何制約

爲了保證發送數據的碰撞檢測及其在發送期中可以檢測到是否發生了碰撞限制了幀的長度、鏈路長度。具體分析以下:學習

發送時間
T 0 = T_0=\frac{ 幀長}{帶寬}
傳播時間
t = t= \frac{鏈路長度}{傳播速度}
在發送中爲了檢測到是否發生了碰撞,因此發送時長應該大於爭用期(兩倍的時延),即:
= T 0 2 t = \frac{ 幀長}{帶寬}=T_0≥2*t= \frac{鏈路長度}{傳播速度}
在一般狀況下傳輸速度是固定的,不參與討論。結合上式就存在以下結論:測試

  • 在帶寬必定的條件下,幀的長度收到鏈路長度限制,鏈路長度越長,最短幀長也就越長;
  • 在鏈路長度必定的條件下,帶寬越大,最短幀長也就越長;
  • 在最短幀長必定的條件下,帶寬越大,鏈路長度越短。
    信道利用率:

如何在物理層、數據鏈路層和邏輯層面對以太網進行擴展

  • 在物理層對以太網擴展可使用集線器、光調制解調器進行擴展;
  • 在數據鏈路層可以使用網橋、交換機進行擴展;
  • 利用以太網交換機能夠很方便地實現虛擬局域網 VLAN。

以太網交換機的工做原理、自學習過程

  • 轉發幀
    • 交換機要轉發幀以前,查找交換表,看其中有無與所收幀目的地址匹配的項目
    • 如沒有,則向全部其餘接口轉發(進入的接口除外)
    • 若有,則按交換表中給出的接口進行轉發
  • 自學習
    • 交換機收到一幀後,先查找交換表,看其中有無與所收幀的源地址匹配的項目
    • 如沒有,就在交換表中增長一個項目(源地址、進入的接口和有效時間)
    • 若有,則把原有的項目進行更新(進入的接口或有效時間)

要發送數據爲1101011011, 生成多項式爲P(X)=X4+X+1,求餘數。若傳輸過程當中最後一個1變成了0,接收端可否發現?

接收端可以發現。使用CRC循環冗餘校驗碼須要經歷以下步驟:計算冗餘碼、發送數據、接收並檢驗數據。詳細過程以下:

  • 計算冗餘碼:
    • 由生成多項式獲得除數爲10011,將發送數據左移4位,並作模二除法,獲得發送數據爲:11010110111110
      在這裏插入圖片描述
    • 發送數據11010110111110
    • 在傳輸過程當中最後一個1變成了0,也就是接收端接收到數據爲11010110111100
  • 數據校驗
    • 對接收到的數據進行模二除法獲得餘數爲0010,不爲0, 表示數據在傳輸過程當中出錯,
      在這裏插入圖片描述

要發送數據爲101110,生成多項式爲P(X)=X3+1,求餘數。

餘數爲011,計算過程以下:
在這裏插入圖片描述

假定1km長的CSMA/CD網絡的數據率爲1Gb/s, 設信號在網絡上的傳輸速率爲200000km/s,求能使用此協議的最短幀長。

在極限的條件下,發送時間等於時延,即:
= 2 \frac{ 幀長}{帶寬}=2* \frac{鏈路長度}{傳播速度}
計算獲得最短幀長爲:
2 = 2 1 1 0 9 b / s 1 1 0 3 m 2 1 0 5 1 0 3 / s = 10000 b i t \frac{ 帶寬*2*鏈路長度}{傳播速度}= \frac{2* 1*10^9 b/s * 1*10^3 m }{2*10^5*10^3 /s}= 10000 bit
或1250字節.

使用CSMA/CD協議的10Mb/s以太網中某個站在發送數據時檢測到碰撞,執行退避算法時選擇了隨機數r=100。問這個站需等待多長時間後才能再次發送數據?若是是100Mb/s的以太網呢?

10 M b i t / s 10Mbit/s 以太網,發送64字節 = 64 × 8 b = 512 b =64×8b=512b ,須要 512 / 10 M = 51.2 u s 512/10M=51.2us .要保證在發完一幀後不可能出現衝突,就要保證 2 τ 51.2 μ s 2 \tau ≤51.2 \mu s ,取爭用期長度爲 2 τ = 51.2 u s 2\tau=51.2us ,等待時間爲 r × 2 τ = 100 51.2 μ s = 5120 μ s = 5.12 m s r×2\tau = 100*51.2\mu s = 5120\mu s=5.12ms

100 M b i t / s 100Mbit/s 以太網,發送64字節 = 64 × 8 b = 512 b =64×8b=512b ,須要 512 / 100 M = 5.12 u s . 512/100M=5.12us. 要保證在發完一幀後不可能出現衝突,就要保證 2 τ 5.12 μ s 2\tau≤5.12\mu s ,取爭用期長度爲 2 τ = 5.12 u s 2\tau=5.12us ,等待時間爲 r × 2 τ = 100 5.12 μ s = 5120 μ s = 5.12 m s r×2\tau = 100*5.12\mu s = 5120\mu s=5.12ms

有10個站鏈接到以太網,計算如下狀況每一個站能獲得的帶寬

  • 10個站接到一個10Mb/s以太網集線器

  • 10個站接到一個100Mb/s以太網集線器

  • 10個站接到一個10Mb/s以太網交換機

    • 集線器在中每個站能獲得的數據是總數據的1/N, 10個站接到一個10Mb/s以太網,集線器每一個站點獲得帶寬1Mb/s;
    • 10個站接到一個100Mb/s以太網集線器,集線器每一個站點獲得帶寬
    • 10Mb/s.交換機在通訊時獨佔信道,每一個站點的帶寬都是10Mb/s

結合下圖與表,描述一下交換的機的自學習過程。

在這裏插入圖片描述

動做 交換機的狀態 向那些接口轉發幀 說明
A發送幀給D 1-A 二、三、四、五、6
D發送幀給A 1-A, 4-D 1
E發送幀給A 1-A,4-D,5-E 1
A發送幀給E 1-A,4-D,5-E 5

工做過程:

  • 交換機收到一幀後,先查找交換表,看其中有無與所收幀的源地址匹配的項目
  • 如沒有,就在交換表中增長一個項目(源地址、進入的接口和有效時間)
  • 若有,則把原有的項目進行更新(進入的接口或有效時間)