數據鏈路層的趣事 - 走進交換機


本篇文章中,會從局域網及其組件開始,着重介紹 TCP/IP 中數據鏈路層,以及數據的傳輸介質,最后介紹交換機的發展過程及原理。

在閱讀后應該了解如下的內容:

  • 什么是局域網及其組件
  • Hub 和交換機的區別
  • 交換機的轉發規則
  • Switching 機制
  • 現代常用網絡結構模型
  • 數據幀的格式
  • Ethernet2 和 IEEE 制訂的標准的區別以及發展史

LAN

在一定的限制區域內,將多個終端設備連接到一起的形成的網絡叫局域網。常見就是通過交換機連接起來的多台終端。

局域網中常用以下的組件構成:

終端設備:PC,IP 電話,打印機,移動電話,服務器

連接設備:網卡(NIC),網絡介質(網線,無線電波)

網絡設備:以太網交換機,路由器,AP(擴散無線信號,通過 WCL 集中控制)

協議:Ethernet,IP,ARP,DHCP

上圖作為常見局域網的架構圖,可見,交換機對其來說是最重要的部分。

集線器 (Hub)

交換機產生的背景:

對於 2 台 PC 來說,可以將其直接連接起來,實現兩台 PC 之間的通信。但對於 3 台甚至更多的設備,僅僅連線就不行了。在這時,先是出現一個叫 HUB 的設備,用於解決連接多台終端的問題。由於 HUB 本身內部的設計(一根總線,總線分出多根線連接其他設備),就決定了有如下的特性:

  • 工作在物理層,對收到的信號進行放大,以擴大網絡的傳輸距離。

  • 集線器發送數據沒有針對性,而是采用廣播的形式發送,也就是說當它要向某個節點發送數據時,不是直接把數據發送到目的端口,而是把數據包發送到會集線器相連的所有節點

  • 當以 HUB 為中心設備時,網絡中某條線路發生了故障並不影響其他的端口工作

但 HUB 有個非常嚴重的問題,由於本身的設計,導致在同一時間只能有一根線傳遞數據(半雙工工作模式)。

如果 HUB 連接的設備同時發送數據,就會產生沖突。,CSMA/CD,載波監聽多路檢測技術的出現解決了該問題。

對應實現思路就是:

  • 先聽后發

  • 邊聽邊發

  • 沖突停發

  • 隨機分配

交換機

什么是交換機?

由於 HUB 在連接多台終端時存在的諸多問題,交換機進一步被發明出來。

和 HUB 不同,交換機在設計初,用交換矩陣代替了總線的架構。

和 HUB 相比,存在着諸多的優點:

  • 基於硬件轉發,轉發的速度是線性(忽略交換機本身處理數據的時間),有選擇的轉發數據幀

  • 默認全雙工

  • 高速,並具有大量的幀緩存(超過交換機的帶寬時,可緩存到本地)

  • 提供更多的連接端口

  • 可拓展,可分為核心交換機和邊緣交換機,連接起來的多台交換機同屬於同一局域網

交換機的作用

交換機收到數據時,檢查數據包中目的 MAC 地址,然后將其從目的端口轉發。

轉發過程一般分為三種:

  • 直通式轉發:轉發時僅檢查前 12 字節(源,目的 MAC 地址),避免不了轉發無效殘幀(小於 64 字節)
  • 存儲式轉發,檢查數據包的所有字節,可靠性高,但有效率的損失
  • 無碎片式轉發,檢查前 64 字節,在可靠性和效率間取舍。

交換機的原理

交換機內部存在一張 MAC 地址表,其中記錄了 設備 MAC,端口號,老化時間,VLAN 號 信息。

在不提及 VLAN 的情況下,收到數據時會遵循如下的處理流程:

  1. 首先查詢 MAC 表,是否存在端口號和源 MAC 地址信息。

    • 如果存在,不做處理

    • 不存在,則將源 MAC 和入口端口記錄。

  2. 再次查詢 MAC 表,看表中是否存在目的 MAC 地址。

    • 如果存在,則單播轉發。

    • 不存在,進行泛洪操作(廣播)。終端收到后,檢查二層包頭,如果目的 MAC 是自己的話,進行回包,否則丟棄。

規范:

  1. 交換機只記錄源 MAC 地址(轉發過程通過有來回,雙方 MAC 都可以記住)
  2. 廣播幀和組播幀向所有的端口進行轉發
  3. 泛洪:收到未知單播幀(MAC 地址未知)或者廣播幀
  4. 轉發:收到已知的單播幀
  5. 丟棄:FCS 損壞,或者目的 MAC 不是自己

MAC 地址表的老化時間

MAC 地址表項的老化時間為 300 秒。從地址加入后開始計時,如果在老化時間內各端口未收到源地址為該 MAC 地址的幀,那么該地址將從動態轉發地址表(由源 MAC 地址、目的 MAC 地址和它們相對應的交換機的端口號)中被刪除。靜態 MAC 地址表不受地址老化時間影響。

交換機在真正轉發時,實際涉及兩張表 CAM 和 TCAM 表。

CAM 表(實際上是 MAC 表)用於精確匹配,對應轉發結果只有兩種情況。如拿 48bit MAC 地址來說,只會出現 48 位完全匹配和不匹配的情況。

而 TCAM (三態內容尋址)表中用於模糊匹配,如 ACL 抓取,匹配 QoS 策略等。

對應匹配結果有三種情況:

  • 精確匹配
  • 不匹配
  • 忽略

思科 Switching 機制

對於交換機和路由器這類轉發設備,在轉發數據的過程中,控制平面和數據平面是經常被提到的一個概念。

  • 控制平面:比如通過路由協議,學習或者配置后生成的路由表,就屬於控制平面。
  • 數據平面(轉發平面):為了更快轉發數據,通過控制平面生成一張轉發平面的數據表,當有數據需要轉發時,直接通過數據平面進行轉發,不在查詢控制層面。

通常來說,控制平面的轉發都需要 CPU 進行計算。而數據平面的轉發,是直接的硬件轉發,性能更高。

在思科設備中可通過 show ip cef 來查看數據層面的轉發表。

對於思科的交換機來說,一般存在三種轉發機制:

  • 進程轉發
  • 快速轉發
  • 思科專有轉發

進程轉發

可以將進程轉發理解成每個數據包都需要經過 CPU 的處理,才能轉發。性能較差。

快速轉發

對於快速轉發來說,第一個數據包會交由 CPU 處理,然后會將其緩存起來,后續去往相同地址數據包都會直接走緩存(硬件轉發),不再交由 CPU 處理。簡單來說,就是一次路由,多次轉發。

路由指的是控制層面,轉發指的是數據層面。

思科專有轉發(CEF)

Cisco Express Forwarding (CEF) 是 Cisco 專有的轉發機制,在思科設備上默認開啟。為了實現更快速度的線性轉發(硬件),設計了如下的數據結構:

  • Forwarding Information Base (FIB): FIB 就是通過路由表(需要 CPU 計算),而再次生成的一個數據結構。當網絡中的路由表發生變化時,FIB 同樣也會發生變化。在轉發數據時,根據 FIB 直接轉發,而不需要看路由表,從而提高效率。

  • Adjacency Table:鄰接表,就是在二層鏈路層維護的一張表,其實就是 ARP 表。用於記錄在鏈路層中,僅需一跳就可以達到的設備。CEF 使用它作為 2 層地址解析,維護了整個 2 層的下一跳地址。

數據鏈路層的傳輸媒介

由於Ethernet 的實際轉發速度取決於實際的傳輸介質,一般為:

  • 雙絞線
  • 光纖
  • 同軸電纜(早期,淘汰)

雙絞線(應用較多)

雙絞的目的,為了屏蔽內部的電磁干擾。一般來說,雙絞線的速度可以從 10 Mbps 到 40 Gbps.,傳輸的最大距離是 100 m.

雙絞線的線序:

T568B 線序為: 橙白,橙,綠白,藍,藍白,綠,粽白,粽

T568A 線序:綠白,綠,橙白,藍,藍白,橙,棕白、棕

其實 1,2 發生數據,3,6 接受數據

不同線序的目的:

同種設備連接需要用交叉線(568a,568b),不同種設備需要用直通線(568b)。原因在於同種設備使用直通線會沖突,因為 1,2 都是發送,3,6是接受。

交叉線:交換機和交換機,路由器和路由器,路由器和PC,PC 和 PC
直通線:交換機和路由器,交換機和 PC,交換機和服務器。

光纖

多模光纖(ST),波長 850nm,1310nm,光由二級發光產生,傳輸距離短,造價低。

單模光纖(SC,LC,FC),波長 1310nm,1550 nm,由激光產生,距離長,造價高。

數據鏈路層-數據幀的結構

數據鏈路層的主要職責是負責傳輸數據,其中常用的協議有:

  • 局域網中的 Ethernet 2 協議
  • 廣域網中的 PPP,HDLC 協議

這里着重介紹下 Ethernet 2 協議,PPP 和 HDLC 請參看這篇

Ethernet 2

1980 年,由 Digital, Intel, Xerox 主導並用其公司首字符聯合開發了 DIX 1.0 標准,該標准也稱為 Ethernet I.

1982 年,Ethernet I 被 DIX2.0 取代,該標准沿用至今,就是為人熟知的 Ethernet II 標准。

但由於這兩個版本的 Ethernet 協議為私有協議,1983 年由 IEEE 主導,為了將網絡設備之間的協議標准化,而不依賴於具體廠商,將其拆分為 MAC 子層和 LLC 子層,其中 MAC 子層,用於處理物理層的訪問。LLC 子層,用於上層協議的復用。推出了 802.3 Ethernet 標准。

其中 LLC 層標准為 - 802.2,MAC 子層根據具體的傳輸介質而不同:

數據鏈路層 LLC 子層 - 與網絡層打交道 802.2 802.2 802.2 802.2
數據鏈路層 MAC 子層 - 與物理層打交道 802.3 802.1 802.5 FDDI
物理層 雙絞線 無線 令牌 光纖

Ethernet II 的數據幀格式:

Preamble:

  • 8 字節,用於告知 NIC 網卡有數據傳來。

MAC 地址字段:

  • 大小為 6 字節,48 bits. 前 24 位由 OUI 組成,后 24 位由 vendor 定義組成.

  • 其中第 8 位為 1 時,表示組播,為 0 時表示單播

  • 目的地址為 ffff.ffff.ffff 全 F,表示為廣播地址

  • 目的地址唯一時,為單播地址。

Ether Type:

  • 2 字節,表明該以太網幀中封裝了那種網絡層的協議。
    • '0080' - IPV4
    • '0806' - ARP

data Unit:

  • 數據最小至最大范圍為:46 ~ 1500 字節,如果上層協議長度小於 46 字節,必須補位到 46 字節。

FCS:

  • 4 字節,用於差錯校驗。

IEEE 802.3 Ethernet

前 8 字節和 Ethernet II 類似,1 位前導符加上 7 位幀分隔符。

源 MAC 和目的 MAC 也和之前一樣,每個 6 字節。

接着 5 字節表示 LLC Header:
Length: 兩字節,表示該幀的長度。理論上是 0 - 65534 字節,但由於 Ethernet 幀限制,MTU 最大為 1500 字節。
d:1 字節,表示 DSAP。
s:1 字節,表示 SSAP。
c: 2 字節,表示控制字段

通過 DSAP 和 SSAP 標識內嵌了哪種網絡協議,常見值為:

  • hex '04' - IBM SNA
  • hex '06' - IP 協議

剩下的位置為數據單元和 4 字節的校驗和。

但由於 SAP 的設計方式和一些協議並不兼容,SNAP 又被設計出來,用於改善該問題,使其不兼容的協議可以用 802.3 標准通信。

在使用 SNAP 時,同時將 DSAP 和 SSAP 設置為 AA,Control 設置為 03.

之后的 5 字節作為 SNAP 的頭部:

O:3 字節,表示 Organization Unique Identifier

T:2 字節,表示用到的私有協議。

剩下的同為數據單元和校驗和。

雖然說 802.2 + 802.3 整合可以起到 Ethernet 2 的作用,當由於前者的位數更長,所以支持 Ethernet 2 慢慢成為主流。

但有一個問題就出現了,就是如何區分 Ethernet2 和 802.3 協議呢?

在目的 MAC 之后,Ethernet2 用 2 字節表示所用的協議,802.3 用兩字節表示幀的長度。

由於在以太網中 MTU 最大值為 1500 字節 - hex '05DC',所以如果作為長度時(802.3),該值一定會小於 1500 字節。

進而在大於 1500 字節時,表示的是 Ethernet2 協議,否則為 IEEE 802.3 協議。

具體在傳輸時,通過所在 字段,length 和 ethertype 字段,如果大於 1500 表示 Ethernet 2 否則為 IEEE 802.3.

至於在以太網中,為什么 MTU 的最大值設置成 1500 Byte 字節,可以閱讀阿里這篇文章.

概括來說,MTU=1500 是在考慮傳輸效率和常見帶寬的一個折中方案。

一般來說,協議的傳輸用 802.3,用戶流量用的是 Ethernet2.

企業網絡架構

從扁平網絡到分層網絡:

在最初的設計時,整體采用扁平式的網絡結構,所有的終端設備直接連接交換機,交換機直接連到路由器,從而接入互聯網。很明顯,這樣設計的網絡沒有冗余,存在單點故障的問題,當交換機或者路由器掛掉時,整個網絡都無法正常通信。

隨着網絡規模的增大以及扁平式網絡無法很好的提供服務,逐漸演化成分層式架構,對應也是軟件層面上的解耦,各司其職。

分層式架構常分為三層:

  • 接入層 :一般使用二層交換機,工作在數據鏈路層。
  • 分布層 :一般使用三層交換機,工作在網絡層。
  • 核心層:一般使用三層交換機,工作在網絡層。

接入層:負責設備接入,並且常用來檢查設備是否合規。

分布層( 匯聚層 ):部署策略,提供冗余,容易排錯。

核心層:負責高速轉發數據.

下面兩幅圖是在是否添加了核心層的對比:

沒有核心層:

添加核心層:

可以發現,如果沒有核心層存在的話,核心設備直接相互連接,在拓展性,易用性上,維護成本都存在着極大的挑戰。

常見企業架構模型

發展到現在,下圖中是較為常見的企業架構模型:

  • 企業園區:企業的核心網絡
  • 企業邊緣:
    • Internet 端,用於在連接互聯網時,進行一些安全產品的防護
    • WAN 端,企業分支如何連接僅企業的核心網絡,同樣需要一些安全產品的防護
  • 運營商:這里提供互聯網訪問,和企業內網(WAN,VPN)用於遠程站點的訪問。
  • 遠程站點:公司的分支機構,通過如 VPN 等,連接到企業核心網絡。

參考

Cisco CEF

Ethernet Vs IEEE 802.3


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM