1. 程式人生 > >【計算機網路】資料鏈路層總結

【計算機網路】資料鏈路層總結

資料鏈路層

目錄

  1. 資料鏈路層概述
    • 基本概念
    • 資料鏈路層的三個基本問題
  2. 點對點通道的資料鏈路層
    • 概述
    • PPP協議的組成
    • PPP幀的格式和要求
    • PPP協議的工作狀態
  3. 廣播通道的資料鏈路層
    • 區域網和乙太網
    • 廣播通道資料鏈路層的任務
    • 介面卡
    • CSMA/CD協議的要點
    • 乙太網應用CSMA/CD協議
    • 通道利用率
    • 乙太網的MAC層
    • 擴充套件乙太網
    • 高速乙太網以及問題

1. 資料鏈路層概述

基本概念

資料鏈路層討論的是如何把網路層的資料封裝成幀,有效的進行通訊傳輸。

鏈路是指:一個結點到另一個結點的具體的物理線路。

資料鏈路是指:在鏈路上加之實現通訊協議的軟體和硬體。

實現資料鏈路層的硬體和軟體主要是網絡卡(但介面卡工作在物理層和資料鏈路層)。

此層的協議資料單元PDU叫做。這是將資料報加之首部和尾部形成的。

資料鏈路層的三個基本問題

  1. 封裝成幀

    指將資料報加之首部和尾部形成幀。首部和尾部是必要的,主要作用是幀定界、新增控制資訊,以及差錯控制。

  2. 透明傳輸

    如果是文字檔案,可以用SOH/EOT充作幀開始、結束控制符,但資料中可能也出現SOH/EOT,這時需要加轉義字元ESC,如ESC-SOH,ESC-EOT,ESC-ESC,以達到透明傳輸。

    這裡的透明指的是,資料鏈路層對傳輸的資料透明,傳輸的資料實際上感受不到資料鏈路層所做的操作。

  3. 差錯檢測

    奇偶檢測、迴圈冗餘CRC等。

    採用CRC,採用n+1位除數(由生成多項式得到),得到n位餘數,稱作幀檢驗序列FCS。

    檢測時,將傳輸得到的資料除以同一個除數,若餘數0,則可以說無差錯。

    若有差錯,直接丟棄,除此之外,不做任何操作。

    故差錯檢測只是檢測了bit錯誤,並不能解決幀失序、丟失、重複等問題。

    也就是說,資料鏈路層實現的是盡最大努力的交付,即不可靠的傳輸。

2. 點對點通道的資料鏈路層

概述

點對點通道主要用於使用者同ISP(驗證身份)通訊時。早期使用高階資料鏈路控制HDLC,已經淘汰,現在用的是PPP協議

,即point-to-point protocol,點對點通訊協議。

PPP協議的組成

由三個部分組成:

  1. 一個將資料報封裝成幀的方法

  2. 一個用來建立、配置和測試資料鏈路連線的鏈路控制協議LCP

    通訊雙方用以協商。

  3. 套網路控制協議

    每一個協議支援不同的網路層協議,也就是說PPP支援不同的網路層協議。

PPP協議幀的格式和要求

PPP幀的格式如下:

格式劃分 F A C 網路層協議 資料報 FCS F
具體內容 7E FF 03 如C021(IP) 資料部分 - 7E
位元組數 1 1 1 2 <=1500 2 1

其中,F,A,C都是固定的,A是地址,C欄位實際上無用。

實現透明傳輸:

PPP協議為實現透明傳輸,採用的策略是:

  1. 非同步:位元組填充(字元填充)。

    在資料部分,(7E->7D,5E)、(7D->7D,5D)、(小於0x20的,前面新增7D)

  2. 同步:零位元填充

    即每遇到5個1,新增一個0。

PPP協議工作狀態

<課本P81>,重點。

3. 廣播通道的資料鏈路層

區域網和乙太網

區域網(LAN)指的是一個網路為一個單位所擁有,地理位置和站點資料有限,統稱。區域網的工作跨越了物理層和資料鏈路層。

乙太網是區域網的一種實現方式,但如今乙太網佔據了絕大多數市場,故某種意義上,乙太網就是區域網。

以外網的標準有DIX Ethernet V2和IEEE 802.3。二者差別不大,現在廣泛使用的是DIX Ethernet V2。

IEEE 802.3把乙太網的資料鏈路層劃分為:邏輯鏈路控制(LCP)和媒體接入控制(MAC),但LCP實際上並無用,現在只使用MAC層。

以外網的其他特點:

  1. 乙太網採用的是盡最大努力的交付,不可靠的交付。
  2. 乙太網採用使用CSMA/CD協議。
  3. 乙太網採用的是曼徹斯特編碼,基帶訊號傳輸。這種編碼中間躍變,由高->低為1,反之為0。

廣播通道資料鏈路層的任

廣播通道主要由匯流排式網路,環形網,星形網等。

廣播通道的資料鏈路層討論的是如何在一個網路中實現一對一、一對多通訊。這裡要解決的問題是,匯流排網路上不能有兩個站點同時傳送資料,否則就稱碰撞(衝突)。

必須有解決這個問題的協議,這就是CSMA/CD協議。

但首先應瞭解其他幾個概念。

介面卡

即網絡卡,實現了資料鏈路層協議,工作於物理層和資料鏈路層。

介面卡的另一個作用是實現並行通訊和序列通訊的轉換。外網--介面卡為序列,而介面卡--主機為並行。

介面卡還配有ROM,實現快取,這樣可以實現不同速率的相容。

另外,需要注意,介面卡中的ROM中是硬體地址,即MAC地址,而在計算機的儲存器中存有IP地址,即軟體地址。

CSMA/CD協議的要點

CSMA/CD協議全稱:載波多點監聽/碰撞檢測。他解決的問題是如何在匯流排區域網上進行“有效”通訊。

CSMA/CD的要點如下:

  1. 多點接入

    CSMA/CD協議適用於廣播通道,允許總線上多個站點接入。協議的核心是載波監聽和碰撞檢測。

  2. 載波監聽

    由於匯流排型廣播通道上同一時刻只允許一個站點發送資料,故站點需要時時檢測通道上是否有其他站點發送資料,這就是載波監聽。檢測通道通過才能獲得傳送權。

    載波監聽發生在:一個站點發送資料之前,以及傳送資料的過程中。一旦發現有其他站點發送資料,則立即停止傳送。

    順便指出,通道上傳送的是基帶訊號,並沒有載波,“載波”一詞為借用。

  3. 碰撞檢測(衝突檢測)

    碰撞檢測就是“邊傳送邊監聽”。介面卡邊傳送資料邊檢測通道上訊號變化情況,看是否發生了 碰撞。若有兩個計算機同時傳送資料,則通道上的訊號電壓變化幅度會超過一定的門限值,則計算機(介面卡)能夠發現這種變化,後續作出進一步響應。

Question:既然每個站點發送資料前,通道已經清空,為什麼傳送過程中還要碰撞檢測(可能發生碰撞)?

Answer: 訊號傳播需要時間。1Km的電纜傳播時延為5us,記單程端到端時延為\(t\),若A站點向B站點發送資料後,經過極短時間\(e\)\(e\)小於\(t\) us),資料尚未到達B,\(e\)時刻B依然檢測到通道為空,此時B也傳送資料,那麼在時間\(t-e/2\) 時刻,發生碰撞,則A端在\(2t-e\)時刻檢測到碰撞發生。

另外,定義單程端到端時延的兩倍為爭用期,因為從上面分析可以看到,A最遲在\(2t\)時刻檢測到碰撞發生(當\(e\)趨向於0),在A傳送資料\(2t\)時間內若不發生碰撞,則之後不會發生碰撞。下面對乙太網應用CSMA/CD協議的具體規定。

乙太網應用CSMA/CD協議

乙太網應用CSMA/CD協議,實現了半雙工通訊,其具體的規定和要點如下:

  1. 乙太網傳送資料採用曼徹斯特編碼。

  2. 傳送前(中)載波監聽。

  3. 爭用期2t定義為51.2us,對於10Mbit/s的乙太網,可以算出爭用期內傳送了512bit資料,故也稱作512位元時間。在這個時間內,傳播的距離約為5km,但實際上達不到這麼多。

    由於爭用期內必須傳送完512bit才能檢測是否發生了碰撞,故乙太網規定最短幀長為512bit,即64位元組,若資料不夠,則需要填充。

  4. 若檢測到發生碰撞,等到一段時間後再發送。具體的等待時間採用截斷二進位制指數退避演算法,即:

    在區間\([0,1,3,...(2^k-1)]\)內隨機選出一個數\(r\),等待\(r×2t\)時間。即隨機個爭用期的時間。

    具體\(k\)為:\(重傳次數,k = Min(重傳次數,10)\)

    另外,規定重傳次數達到16次,則表示想傳送資料的站點太多,丟棄該幀,向高層報告。

  5. 強化碰撞策略。一旦檢測到發生碰撞,則立即傳送32或48bit的人為干擾訊號,讓所有站點都知道發生了碰撞。

  6. 幀最小間隔為9.6us。因為乙太網的幀並沒有個幀結束定界,故最小間隔是應有的,這樣也可以保證接收站點來得及快取清理和處理。

  7. 時間計算。若傳送時延為\(t0\),傳播時延為\(t\),A傳送完畢到檢測到發生碰撞的時延為\(tB\),強化訊號時延為\(tJ\),則因為碰撞浪費的時延為\(tB+tJ\),匯流排被佔用的時延為\(tB+tJ+t\),因為最後1bit還要經過一個單程端到端時延。

通道利用率

說明乙太網通道利用率。

傳送一幀的時間是(若干個爭用期時間\(2t\))+傳送時延\(T_0\) + 單程端到端時延\(t\)。可見,提高通道利用率,就要減小\(t\)\(T0\)之比。定義:$a = \frac {t} {T_0} \(,希望\)a$越小越好。

通道極限利用率為:假設發生碰撞,極限利用率為:

\(S_{max}=\frac{T_0}{T_0+t}=\frac{1}{1+a}\) ,可見,\(a\)越小越好。

乙太網的MAC層

上面提到過,對於廣播通道,802.3將資料鏈路層劃分為LLC和MAC,但實際上LLC無用,只討論MAC。MAC就是媒體接入控制的意思。因而,實際上廣播通道的資料鏈路層就是指MAC層。

MAC地址

MAC地址是一個硬體地址,於網絡卡的ROM中。他是一個48bit即6個位元組的序列,現在使用的是EUI-48。一個地址是一個站的名字或者識別符號,它由註冊管理機構RA同一頒發。前三個位元組為公司識別符號,即組織唯一識別符號OUI,這是生產公司申請到的。後三個位元組為擴充套件識別符號,為公司自己制定。

IEEE規定,MAC地址的第一位元組的最低位為I/G位,標誌是I(individual)或者G(group),為I時為0,表示單個站地址,G時為1,表示組地址,用來多播。

MAC地址的第一位元組的倒數第二位為G/L位,表示全球管理(0)/本地管理(1),若不申請全球OUI,也可以使用本地管理,即將G/L位置1。

這樣,實際上全球MAC共有\(2^{44}\)個。

區域網內就根據MAC地址進行傳送、接受資料,當某站點接收到幀,檢查MAC目的地址是否與本機MAC相匹配,不匹配則不接受。

傳送的幀包括:單播幀、廣播幀(全1)和多播幀。

MAC幀格式

MAC幀(+最前面插入8位元組)格式如下:

前同步碼 幀開始定界符 目的地址 源地址 型別 資料 FCS
1010..10 1010101011 目的MAC 本站MAC 網路層型別 資料報 CRC檢驗
7位元組 1位元組 6位元組 6位元組 2位元組 46-1500位元組 4位元組
  1. 上面的表格中,前8個位元組不屬於MAC幀內容,只是為了幀同步和開始定界,CRC也不檢測前8位元組是否出錯。
  2. MAC幀的範圍是64位元組-1518位元組,資料部分是46-1500位元組。

擴充套件乙太網

擴充套件乙太網主要從下面兩方面。

物理層上擴充套件乙太網

工作在物理層的轉發器、集線器,將多個區域網連線起來,擴大碰撞域,但並不增加吞吐量。

資料鏈路層擴充套件乙太網

使用工作在資料鏈路層的乙太網交換機,擴大乙太網。交換機可以實現全雙工,並行,儲存資料幀快取,以及自學習交換表(地址表)進行轉發。這種方式增加了吞吐量。

應注意自學習交換表的方法,P100,另外,為了防止資料在物理環路上繞圈子,採用“生成樹協議STP”,將某些鏈路在邏輯上切斷,其過程類似於最小生成樹。

虛擬區域網

不同區域網內的幾個計算機可以虛擬的連線起來構成虛擬區域網VLAN,以實現某些特定目的。

VLAN就是由一些區域網網段構成的與物理位置無關的邏輯組。

VLAN的幀增加了4個位元組的VLAN識別符號,標記此站點屬於哪個VLAN。

這樣可以防止廣播風暴。

器件

總結工作在物理層的:轉發器、集線器hub。

工作於資料鏈路層:交換機。

工作於物理+資料鏈路層:介面卡。

高速乙太網以及問題

傳統乙太網指的是10BASE T,意義10:10Mbit/s,BASE:基帶訊號,T:雙絞線。

之前還有:

10BASE 5:10:10Mbit/s,BASE:基帶訊號,5:500m粗纜。

10BASE 2:10:10Mbit/s,BASE:基帶訊號,2:200m細纜。

現在頻寬逐漸提高,已經有:

100BASE T:100:100Mbit/s,BASE:基帶訊號,T:雙絞線。

吉位元乙太網、10吉位元乙太網等。

100BASE T

將頻寬提高10倍,幀格式不變。引數\(a=\frac{t}{T_0}\)\(T_0\)變為\(1/10\),則\(a\)增加10倍,通道利用率降低。100 BASE T採用的策略是保證最短幀長不變,爭用期減少到\(1/10\),即爭用期為5.12us,幀最小間隔是0.96us,(這其實是將物理線路最長長度減少到\(1/10\),實際中100BASE-TX是100m)

吉位元乙太網

傳送速率1G bit/s。幀格式不變,吉位元乙太網可以工作在半雙工和全雙工下,保持\(a\)不變,採取:

  1. 半雙工下

    仍然保持物理線路最長為100m(與100BASE-T同),最短幀長依然為512bit(64位元組),但爭用期不再是512bit時間,而是512位元組時間(擴大8倍),這樣,傳送不足512位元組的幀,需要進行填充處理,使得達到512位元組,這叫載波延伸。另外,還有分組突發功能,第一個短幀採用載波延伸,後面跟著的短幀則一個接一個傳送,形成長度達到1500位元組的資料。(這是為了保證不要每個短幀都填充,只要過了爭用期就好了。)

  2. 全雙工下

    不需要載波延伸和分組突發,因為不會發生衝突。

10吉位元乙太網(10GE)

幀格式不變,只工作於全雙工,不使用CSMA/CD協議,沒有爭用期之說。

NOTE:半雙工下采用CSMA/CD,全雙工不用CSMA/CD。