計算機網絡 - 數據鏈路層

數據鏈路層概述

基本概念

數據發送模型:

數據鏈路層的信道類型:

  • 點對點信道:這種信道使用一對一的點對點通訊方式。
  • 廣播信道。這種信道使用一對多的廣播通訊方式,所以過程比較複雜。廣播信道上鍊接的主機不少,所以必須使用專用的共享信道協議來協調這些主機的數據發送。

鏈路和數據鏈路:

  • 鏈路(link):是一條點到點的物理線路段,中間沒有任何其餘的點,一條鏈路只是一條通路的一個組成部分
  • 數據鏈路(data link):除了物理線路外,還必須有通訊協議來控制這些數據的傳輸。若把實現這些協議的硬件和軟件加到鏈路上,就構成了數據鏈路。
    • 現最經常使用的方法是使用適配器(即網卡)來實現這些協議的硬件和
      軟件。
    • 通常的適配器都包括了數據鏈路層和物理層這兩層的功能。

幀:

數據鏈路層傳送的是幀算法

數據鏈路層就像一個數字管道

經常在兩個對等的數據鏈路層之間畫出一個數字管道,而在這條數字管道上傳輸的數據單位是幀。緩存

要解決的三個基本問題

封裝成幀

  • 封裝成幀就是在一段數據的先後分別添加首部和尾部,而後就構成了一個幀,用以肯定幀的界限。安全

  • 首部和尾部的一個重要做用就是進行幀定界。網絡

  • 若是發送端發送時出現故障,接收端沒收到完整的頭和尾,就會將幀丟掉異步

透明傳輸

若傳輸的數據是ASCI I碼中「可打印字符(共95個)」集時,一切正常。
若傳輸的數據不是僅由「可打印字符」組成時,就會出問題,以下圖
學習

咱們可使用字節填充法解決透明傳輸的問題:編碼

  • 發送端的數據鏈路層在數據中出現控制字符「SOH」或「EOT」的前面插入一個字符「ESC」 (其十六進制編碼是1B)spa

  • 字節填充(byte stuffing)或字符填充(character stuffing)——接收端的數據鏈路層在將數據送往網絡層以前刪除插入的轉義字符。
  • 若是轉義字符也出現數據當中,那麼應在轉義字符前插入一個轉義字符。當接收端收到連續的兩個轉義字符時,就刪除其中前面的一個。計算機網絡

差錯控制

  • 傳輸過程當中可能會產生比特差錯:1可能會變成0而0也可能變成1。
  • 在一段時間內,傳輸錯誤的比特佔所傳輸比特總數的比率稱爲 誤碼率 BER (Bit Error Rate) 。
  • 誤碼率與信噪比有很大的關係。
  • 爲了保證數據傳輸的可靠性,在計算機網絡傳輸數據時,必須採用各類差錯檢測措施。

咱們可使用 循環冗餘檢測 CRC接口

僅用循環冗餘檢驗CRC差錯檢測技術只能作到無差錯接受(accept)。

  • 「無差錯接受」 是指:「凡是接受的幀( 即不包括丟棄的幀),咱們都能以很是接近於1的機率認爲這些幀在傳輸過程當中沒有產生差錯」。也就是說:「凡是接收端數據鏈路層接受的幀都沒有傳輸差錯」(有差錯的幀就丟棄而不接受)。

要作到 「可靠傳輸」 (即發送 什麼就收到什麼)就必須再加上確認和重傳機制。

  • 考慮:幀重複、幀丟失、幀亂序的狀況

能夠說 「CRC是一種無比特差錯,而不是無傳輸差錯的檢測機制」

  • OSI/RM模型的觀點:數據鏈路層要作成無傳輸差錯的,但這種理念目前不被接受!

使用點對點信道的數據鏈路層(PPP協議)

PPP協議

如今全世界使用的最多的數據鏈路層協議就是 點對點協議PPP協議(Pointer to Pointer Protocol),用戶使用撥號電話線接入因特網時,通常都是使用PPP協議。

PPP協議的使用場合

PPP協議應該知足的要求 PPP協議不須要知足的要求
簡單——這是首要的要求 糾錯
封裝成幀 流量控制
透明性 序號
多種類型鏈路 多點線路
差錯檢測 半雙工或單工鏈路
檢測鏈接狀態
最大傳送單元
網絡層地址協商
數據壓縮協商

PPP協議的組成

  • 數據鏈路層協議能夠用於異步串行或同步串行介質。

  • 它使用LCP (鏈路控制協議)創建並維護數據鏈路鏈接。

  • 網絡控制協議(NCP)容許在點到點鏈接上使用多種網絡層協議,如圖所示

PPP協議幀格式

字節填充

問題:信息字段中出現了標誌字段的值,可能會被誤認爲是「標誌位」怎麼辦?

  • 將信息字段中出現的每一個0x7E字節轉變成爲2字節序列(0x7D,0x5E)。
  • 若信息字段中出現一個0x7D的字節,則將其轉變成爲2字節序列(0x7D,0x5D)。
  • 若信息字段中出現ASCII 碼的控制字符(即數值小於0x20的字符),則在該字符前面要加入一個0x7D字節,同時將該字符的編碼加以改變。

零比特填充

PPP 協議用在 SONET/SDH 鏈路時,使用同步傳輸(一連串的比特連續傳送)。這時 PPP 協議採用零比特填充方法來實現透明傳輸。
在發送端,只要發現有 5 個連續 1,則當即填入一個0
接收端對幀中的比特流進行掃描。每當發現 5 個連續1時,就把這 5 個連續 1 後的一個 0 刪除

PPP協議工做狀態

當用戶撥號接入ISP 時,路由器的調制解調器對撥號作出確認,並創建一條物理鏈接。
PC機向路由器發送一系列的LCP分組(封裝成多個PPP幀)。
這些分組及其響應選擇一些PPP參數,和進行網絡層配置,NCP給新接入的PC機分配一個臨時的IP地址,使PC機成爲因特網上的一個主機。
通訊完畢時,NCP 釋放網絡層鏈接,收回原來分配出去的IP地址。接着,LCP釋放數據鏈路層鏈接。最後釋放的是物理層的鏈接。

使用廣播信道的數據鏈路層(CSMA/CD協議)

局域網的拓撲

局域網的特色與優勢

局域網最主要的特色是:

  • 網絡爲一個單位所擁有,且地理範圍和站點數目均有限。

局域網具備以下的一些主要優勢:

  • 具備廣播功能,從一個站點可很方便地訪問全網。局域網上的主機可共享鏈接在局域網上的各類硬件和軟件資源。
  • 便於系統的擴展和逐漸地演變,各設備的位置可靈活調整和改變。
  • 提升了系統的可靠性、可用性和生存性。

共享通訊媒體

靜態劃分信道

  • 頻分複用
  • 時分複用
  • 波分複用
  • 碼分複用

動態媒體接入控制(多點接入)

  • 隨機接入(主要被以太網採用! )
  • 受控接入,如多點線路探詢(polling),或輪詢。(目前已不被採用)

認識以太網

最初的以太網是將許多計算機都鏈接到一根總線上。當初認爲這樣的鏈接方法既簡單又可靠,由於總線上沒有有源器件。可是不安全,有可能被非目標計算機抓包

總線上的每個工做的計算機都能檢測到B發送的數據信號。
因爲只有計算機D的地址與數據幀首部寫入的地址一致,所以只有D才接收這個數據幀。
其餘全部的計算機(A,C和E)都檢測到不是發送給它們的數據幀,所以就丟棄這個數據幀而不可以收下來。
具廣播特性的總線上實現了一對一的通訊。

載波監聽多點接入/碰撞檢測 (CSMA/CD)協議

CSMA/CD表示Carrier Sense Multiple Access with Collision Detection。

載波監聽多點接入

「多點接入」表示許多計算機以多點接入的方式鏈接在一根總線上。
「載波監聽」是指每個站在發送數據以前先要檢測一下總線 上是否有其餘計算機在發送數據,若是有,則暫時不要發送數據,以避免發生
碰撞。「載波監聽」就是用電子技術檢測總線上有沒有其餘計算機發送的數據信號。

碰撞檢測

「碰撞檢測」 就是計算機邊發送數據邊檢測信道上的信號電壓大小

  • 當幾個站同時在總線上發送數據時,總線上的信號電壓擺動值將會增大(互相疊加)
  • 當一個站檢測到的信號電壓擺動值超過必定的門限值時,就認爲總線上至少有兩個站同時在發送數據,代表產生了碰撞
  • 所謂「碰撞」就是發生了衝突。所以「碰撞檢測」也稱爲「衝突檢測」

檢測到碰撞後:

  • 在發生碰撞時,總線上傳輸的信號產生了嚴重的失真,沒法從中恢復出有用的信息來。
  • 每個正在發送數據的站,一旦發現總線上出現了碰撞,就要當即中止發送,省得繼續浪費網絡資源,而後等待一段隨機時間後再次發送。

爭用期

最早發送數據幀的站,在發送數據幀後至多通過時間 ( 兩倍的端到端的往返時延)就可知道發送的數據幀是否遭受了碰撞。通過爭用期這段時間尚未檢測到碰撞,才能確定此次發送不會發生碰撞。

以太網的爭用期

  • 以太網的端到端往返時延2τ稱爲爭用期,或碰撞窗口。一般,取51.2 μs爲爭用期的長度。
  • 對於10 Mb/s以太網,在爭用期內可發送512 bit, 即64字節。
  • 以太網在發送數據時,若前64字節未發生衝突,則後續的數據就不會發生衝突。

最短有效幀長

  • 若是發生衝突,就必定是在發送的前64字節以內
  • 因爲一檢測到衝突就當即停止發送,這時已經發送出去的數據必定小於64字節。
  • 以太網規定了最短有效幀長爲64字節,凡長度小於64字節的幀都是因爲衝突而異常停止的無效幀。

二進制指數類型退避算法

發生碰撞的站在中止發送數據後,要推遲(退避) 一個隨機時間才能再發送數據。

  • 肯定基本退避時間,通常是取爲爭用期2τ。
  • 定義參數k,k = Min[重傳次數, 10]
  • 從整數集合[0,1,...,(2^k -1)]中隨機地取出一個數,記爲 г 。
    重傳所需的時延就是r倍的基本退避時間。當重傳達16次仍不能成功時即丟棄該幀,並向高層報告。

以太局域網(以太網)

以太網的兩個標準

  • DIX Ethernet V2 是世界上第一個局域網產品(以太網)的規約
  • IEEE 的802.3標準。
    • DIX Ethernet V2標準與IEEE 的802. 3標準只有很小的差異,所以能夠將802. 3局域網簡稱爲「以太網」。嚴格說來,「以太網」 應當是指符合DIX Ethernet V2標準的局域網。

以太網與數據鏈路層的兩個子層

爲了使數據鏈路層能更好地適應多種局域網標準,802委員會就將局域網的數據鏈路層拆成兩個子層:

  • 邏輯鏈路控制LLC (Logical Link Control)子層
  • 媒體接入控制MAC (Medium Access Control)子層。

與接入到傳輸媒體有關的內容都放在MAC子層,而LLC子層則與傳輸媒體無關,無論採用何種協議的局域網對LLC子層來講都是透明的。

因爲TCP/IP體系常用的局域網是DIX Ethernet V2而不是802.3標準中的幾種局域網,所以如今802委員會制定的邏輯鏈路控制子層LLC (即802. 2標準)的做用已經不大了。不少廠商生產的適配器上就僅裝有MAC協議而沒有LLC 協議。

星型拓撲

傳統以太網最初是使用粗同軸電纜,後來演進到使用比較便宜的細同軸電纜,最後發展爲使用更便宜和更靈活的雙絞線。不用電纜而使用無屏蔽雙絞線。每一個站須要用兩對雙絞線,分別用於發送和接收。
這種以太網採用星形拓撲,在星形的中心則增長了一種可靠性很是高的設備,
叫作集線器(hub)

集線器的一些特色:

集線器是使用電子器件來模擬實際電纜線的工做,所以整個系統仍然像一個傳統的以太網那樣運行。集線器使用了大規模集成電路芯片,所以這樣的硬件設備的可靠性已大大提升了。

使用集線器的以太網在邏輯上還是一個總線網,各工做站使用的仍是CSMA/CD協議,並共享邏輯上的總線。

集線器很像一個多接口的轉發器,工做在物理層

以太網的信道利用率

以太網的信道被佔用的狀況:

  • 爭用期長度爲2τ,即端到端傳播時延的兩倍。檢測到碰撞後不發送干擾信號。
  • 幀長爲L (bit), 數據發送速率爲C (b/s),於是幀的發送時間爲L/C = T₀ (s)

一個幀從開始發送,經可能發生的碰撞後,將再重傳數次,到發送成功且信道轉爲空閒(即再通過時間τ使 得信道上無信號在傳播)時爲止,是發送一幀所需的平均時間。

以太網的信道利用率:參數a

  • 要提升以太網的信道利用率,就必須減少 τ 與 T₀ 之比。在以太網中定義了參數a,它是以太網單程端到端時延τ與幀的發送時間 T₀ 之比: $$a = \frac τ {T₀}$$

  • a- >0表示一發生碰撞就當即能夠檢測出來,並當即中止發送,於是信道利用率很高。
  • a越大,代表爭用期所佔的比例增大,每發生一次碰撞就浪費許多信道資源,使得信道利用率明顯下降。

以太網的信道利用率:最大值

對以太網參數的要求

  • 當數據率必定時,以太網的連線的長度受到限制,不然 τ 的數值會太大

  • 以太網的幀長不能過短,不然 T₀ 的值會過小,使 a 值太大。

信道利用率的最大值

  • 在理想化的狀況下,以太網上的各站發送數據都不會產生碰撞(這顯然
    已經不是CSMA/CD, 而是須要使用一種特殊的調度方法),即總線一旦
    空閒就有某一個站當即發送數據。

  • 發送一幀佔用線路的時間是 T₀+ t,而幀自己的發送時間是 T₀,因而
    咱們可計算出理想狀況下的極限信道利用率$S_{max}$爲:

MAC層的硬件地址(MAC地址)

在局域網中,硬件地址又稱爲物理地址,或 MAC地址

802 標準所說的 「地址」 嚴格地講應當是每個站的 「名字」 或 標識符。但鑑於你們都早已習慣了將這種48位的「名字」稱爲「地址」,因此本文也採用這種習慣用法,儘管這種說法並不太嚴格。

  • IEEE的註冊管理機構RA負責向廠家分配地址字段的前三個字節(即高位24位)。
  • 地址字段中的後三個字節(即低位24位)由廠家自行指派,稱爲擴展標識符,必須保證生產出的適配器沒有重複地址。
  • 一個地址塊能夠生成2²⁴個不一樣的地址。這種48位地址稱爲MAC- 48,它的通用名稱是EUI-48。
  • 「MAC地址」 實際上就是適配器地址或適配器標識符EUI-48。

在同一個交換機上的計算機MAC地址不可相同,不然會產生網絡故障,MAC地址能夠手動修改

適配器檢查 MAC 地址

適配器從網絡上每收到一個MAC幀就首先用硬件檢查MAC幀中的MAC地址

  • 若是是發往本站的幀則收下,而後再進行其餘的處理。
  • 不然就將此幀丟棄,再也不進行其餘的處理。

「發往本站的幀」包括如下三種幀:

  • 單播(unicast)幀(一對一 )
  • 廣播(broadcast)幀(一對全體)
  • 多播(multicast)幀(一對多)

MAC 幀格式

經常使用的以太網MAC幀格式有兩種標準:

  • DIX Ethernet V2 標準

  • IEEE 的 802.3 標準

最經常使用的MAC幀是以太網V2的格式。

無效的 MAC 幀

  • 幀的長度不是整數個字節;
  • 用收到的幀檢驗序列FCS 查出有差錯;
  • 數據字段的長度不在 46 ~ 1500 字節之間。
  • 有效的MAC幀長度爲 64 ~ 1518 字節之間。
  • 對於檢查出的無效MAC幀就簡單地丟棄。以太網不負責重傳丟棄的幀。

幀間最小間隔

  • 幀間最小間隔爲9.6 μs,至關於96 bit的發送時間。
  • 一個站在檢測到總線開始空閒後,還要等待9.6 μs才能再次發送數據。
  • 這樣作是爲了使剛剛收到數據幀的站的接收緩存來得及清理,作好接收下一幀的準備。

擴展以太網

在物理層考慮擴展

  • 主機使用光纖和一對光纖調制解調器鏈接到集線器

  • 用一個集線器鏈接多個集線器(數量不宜超過30臺計算機,鏈接越多,效率越低)

在數據鏈路層考慮擴展

  • 在數據鏈路層擴展局域網是使用網橋
  • 網橋工做在數據鏈路層,它根據MAC幀的目的地址對收到的幀進行轉發。
  • 網橋具備過濾幀的功能。當網橋收到一個幀時,並非向全部的接口轉發此幀,而是先檢查此幀的目的MAC地址,而後再肯定將該幀轉發到哪個接口。

網橋的內部結構

image-20200316220739181

使用網橋擴展以太網

網橋擴展以太網的優缺點

優勢:

  • 過濾通訊量。
  • 擴大了物理範圍。
  • 提升了可靠性。
  • 可互連不一樣物理層、不一樣MAC子層和不一樣速率(如10 Mb/s和100Mb/s以太網)的局域網。

缺點:

  • 存儲轉發增長了時延。
  • 在MAC子層並無流量控制功能。
  • 具備不一樣MAC子層的網段橋接在一塊兒時時延更大。
  • 網橋只適合於用戶數不太多(不超過幾百個)和通訊量不太大的局域網,不然有時還會因傳播過多的廣播信息而產生網絡擁塞。這就是所謂的廣播風暴。

透明網橋

  • 目前使用得最多的網橋是透明網橋(transparent br idge)。
  • 「透明」是指局域網上的站點並不知道所發送的幀將通過哪幾個網橋,由於網橋對各站來講是看不見的
  • 透明網橋是一種即插即用設備,其標準是IEEE 802.1D

網橋的自學習算法

  • 若從 A 發出的幀從接口 x 進入了某網橋,那麼從這個接口出發沿相反方向必定可把一個幀傳送到 A 。
  • 網橋每收到一個幀,就記下其源地址和進入網橋的接口,做爲轉發表中的一個項目。
  • 在創建轉發表時是把幀首部中的源地址寫在 「地址」 這一欄的下面。
  • 在轉發幀時,則是根據收到的幀首部中的目的地址來轉發的。這時就把在「地址」欄下面已經記下的源地址看成目的地址,而把記下的進入接口看成轉發接口。

用交換機擴展以太網

虛擬局域網

LAN和VLAN

  • 交換機的使用使得VLAN的建立成爲可能

  • 虛擬局域網VLAN是由一些局域網網段構成的與物理位置無關的邏輯組。
    • 這些網段具備某些共同的需求。

    • 每個VLAN的幀都有-個明確的標識符,指明發送這個幀的工做站是屬於哪個VLAN。

  • 虛擬局域網其實只是局域網給用戶提供的一種服務,而並非一種新型局域網。

虛擬局域網枕格式

虛擬局域網協議容許在以太網的幀格式中插入一個4字節的標識符,稱爲VLAN 標記(tag),用來指明發送該幀的工做站屬於哪個虛擬局域網。

高速以太網

100BASE-T

速率達到或超過100 Mb/s的以太網稱爲高速以太網
在雙絞線上傳送100 Mb/s基帶信號的星型拓撲以太網,仍使用IEEE 802. 3的CSMA/CD協議。100BASE T以太網又稱爲快速以太網(Fast Ethernet) 。

特色:

  • 可在全雙工方式下工做而無衝突發生。所以,不使用CSMA/CD 協議。MAC幀格式仍然是802.3標準規定的。
  • 保持最短幀長不變,但將一個網段的最大電纜長度減少到100 m。幀間時間間隔從原來的9.6 μs改成如今的0. 96 μs。

吉比特以太網

  • 容許在1 Gb/s 下全雙工和半雙工兩種方式工做。
  • 使用802. 3協議規定的幀格式。
  • 在半雙工方式下使用CSMA/CD協議(全雙工方式不須要使用CSMA/CD協議)
  • 與10BASE-T和100BASE- T技術向後兼容。
  • 當吉比特以太網工做在全雙工方式時(即通訊雙方可同時進行發送和接收數據),不使用載波延伸和分組突發。
相關文章
相關標籤/搜索