【計算機網絡】數據鏈路層總結

數據鏈路層

目錄

  1. 數據鏈路層概述
    • 基本概念
    • 數據鏈路層的三個基本問題
  2. 點對點信道的數據鏈路層
    • 概述
    • PPP協議的組成
    • PPP幀的格式和要求
    • PPP協議的工做狀態
  3. 廣播信道的數據鏈路層
    • 局域網和以太網
    • 廣播信道數據鏈路層的任務
    • 適配器
    • CSMA/CD協議的要點
    • 以太網應用CSMA/CD協議
    • 信道利用率
    • 以太網的MAC層
    • 擴展以太網
    • 高速以太網以及問題

1. 數據鏈路層概述

基本概念

數據鏈路層討論的是如何把網絡層的數據封裝成幀,有效的進行通訊傳輸。算法

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

數據鏈路是指:在鏈路上加之實現通訊協議的軟件和硬件。網絡

實現數據鏈路層的硬件和軟件主要是網卡(但適配器工做在物理層和數據鏈路層)。異步

此層的協議數據單元PDU叫作。這是將數據報加之首部和尾部造成的。學習

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

  1. 封裝成幀測試

    指將數據報加之首部和尾部造成幀。首部和尾部是必要的,主要做用是幀定界、添加控制信息,以及差錯控制。編碼

  2. 透明傳輸spa

    若是是文本文件,能夠用SOH/EOT充做幀開始、結束控制符,但數據中可能也出現SOH/EOT,這時須要加轉義字符ESC,如ESC-SOH,ESC-EOT,ESC-ESC,以達到透明傳輸。同步

    這裏的透明指的是,數據鏈路層對傳輸的數據透明,傳輸的數據實際上感覺不到數據鏈路層所作的操做。it

  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。

廣播信道數據鏈路層的任

廣播信道主要由總線式網絡,環形網,星形網等。

廣播信道的數據鏈路層討論的是如何在一個網絡中實現一對1、一對多通訊。這裏要解決的問題是,總線網絡上不能有兩個站點同時發送數據,不然就稱碰撞(衝突)。

必須有解決這個問題的協議,這就是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。

相關文章
相關標籤/搜索