乙太網路交換器基本原理和轉寄流程總結

來源:互聯網
上載者:User

--- IT動力源 ItZero.COMIT快報

      交換器基本原理和轉寄流程總結
      關鍵詞:
      乙太網路集線器Ethernet HUB
      交換器Switch
      虛擬區域網路 VLAN
      路由器 Router
      路由表 Route Table
      位址解析通訊協定 ARP
      ARP表 ARP Table
      MAC表 FIB Table
      三層硬體轉寄表 IP fdb Table
      電腦網路往往由許多種不同類型的網路互連串連而成。如果幾個電腦網路只是在物理上串連在一起,它們之間並不能進行通訊,那麼這種“互連”並沒有什麼實際意義。因此通常在談到“互連”時,就已經暗示這些相互串連的電腦是可以進行通訊的,也就是說,從功能上和邏輯上看,這些電腦網路已經組成了一個大型的電腦網路,或稱為互連網絡,也可簡稱為互連網、互連網。下面將從互連網的漸進曆程逐一闡述各種裝置的工作原理:
      1、Ethernet  HUB
      Ethernet
      HUB的中文名稱叫做乙太網路集線器,其基本工作原理是廣播技術(broadcast),也就是HUB從任何一個連接埠收到一個乙太網路資料幀後,它都將此乙太網路資料幀廣播到其它所有連接埠,HUB不記憶哪一個MAC地址掛在哪一個連接埠——這裡所說的廣播是指HUB將該乙太網路資料幀發送到所有其它連接埠,並不是指HUB將該報文改變為廣播報文。
      乙太網路資料幀中含有源MAC地址和目的MAC地址,對於與資料幀中目的MAC地址相同的電腦執行該報文中所要求的動作;對於目的MAC地址不存在或沒有響應等情況,HUB既不知道也不處理,只負責轉寄。HUB工作原理:
      ① HUB從某一連接埠A收到的報文將發送到所有連接埠;
      ② 報文為非廣播報文時,僅與報文的目的MAC地址相同的連接埠響應使用者A;
      ③ 報文為廣播報文時,所有使用者都響應使用者A。
      隨著網路應用不斷豐富,網路結構日漸複雜,導致傳統的乙太網路串連裝置HUB已經越來越不能滿足網路規劃和系統整合的需要,它的缺陷主要表現在以下兩個方面:
      ① 衝突嚴重——HUB對所串連的區域網路只作訊號的中繼,所有物理裝置構成了一個衝突域;
      ② 廣播泛濫。
      
      2、二層交換技術
      二層交換器的出現能夠在一定程度上解決HUB存在的缺陷——主要是衝突嚴重的問題,其與HUB的區別從大的方面來看可以分為以下三點:
      ①
      從OSI體繫結構來看,HUB屬於OSI模型的第一層物理層裝置,而交換器屬於OSI的第二層資料連結層裝置。也就意味著HUB只是對資料的傳輸起到同步、放大和整形的作用,對資料轉送中的短幀、片段等無法進行有效處理,不能保證資料轉送的完整性和正確性;而交換器不但可以對資料的傳輸做到同步、放大和整形,而且可以過濾短幀、片段等。
      ②
      從工作方式來看,HUB是一種廣播模式,當HUB的某個連接埠工作的時候,其他所有連接埠都能夠收聽到資訊,容易產生廣播風暴,當網路較大時網路效能會受到很大的影響;而當交換器工作的時候,只有發出請求的連接埠和目的連接埠之間相互響應而不影響其他連接埠,因此交換器就能夠隔離衝突域,並在一定程度上抑制廣播風暴。
      ③
      從頻寬來看,HUB不管有多少個連接埠,所有連接埠都是共用一條頻寬,在同一時刻只能有二個連接埠傳送資料,其他連接埠只能等待,同時HUB只能工作在半雙工模式下(半雙工模式——在通道中同時只能沿著一個方向傳輸資料);而對於交換器而言,每個連接埠都有一條獨佔的頻寬,當二個連接埠工作時並不影響其他連接埠的工作,同時交換器不但可以工作在半雙工模式下而且可以工作在全雙工系統模式下(全雙工系統模式——在通道中同時雙向資料轉送的能力)。
      二層交換技術的工作原理:由於二層交換技術是在OSI七層網路模型中的第二層,即資料連結層進行操作的,因此交換器對資料報文的轉寄是建立在MAC(Media
      Access Control )地址--物理地址基礎之上的,對於IP
      網路通訊協定來說,它是透明的,即交換器在轉寄資料報文時,無須知道信源機和信宿機的IP 位址,只需知其物理地址(MAC
      地址)即可。交換器在工作過程當中會不斷的檢測報文的源和目的MAC地址來建立MAC地址表,這個表說明了某個MAC
      地址是在哪個連接埠上被發現的。這樣當交換器收到一個報文時,它便會看一下該資料報文的目的MAC
      地址,核對一下自己的MAC地址表以確認應該從哪個連接埠把資料報文發出去;但若交換器收到的報文在目的MAC地址不能在地址表中找到時,交換器會把IP
      報文廣播出去——這正是二層交換器的弱點所在。
      二層交換器的報文轉寄涉及到兩個關鍵的線程:
      l         學習線程:
          ①交換器接收網段上的所有資料幀,利用接收資料幀的源MAC地址建立MAC地址表;
          ②連接埠移動機制:交換器如果發現一個報文的入連接埠和報文中源MAC地址的所在連接埠不同,就產生連接埠移動,將MAC地址學習到新的連接埠;
          ③地址老化機制:如果交換器在很長一段時間內沒有收到主機發出的報文,則該主機對應的MAC地址就會被刪除,等下次報文來的時候重新學習。
      l         報文轉寄線程:
      ① 交換器在MAC地址表中尋找資料幀的目的MAC地址,如果找到就將該資料發送到相應的連接埠,如果找不到就向所有的連接埠發送(廣播);
      ② 如果交換器收到的報文中源MAC與目的MAC地址相同,則丟棄該報文;
      ③ 交換器向入連接埠以外的所有其它連接埠發送廣播報文。
      二層交換器的缺點:傳統的乙太網路交換器對接收到的資料幀根據MAC地址進行二層轉寄,因此將網段上的衝突域限制到了連接埠級,但卻無法限制廣播域的大小,在主機數量很多的情況下,廣播泛濫的現象仍然很嚴重。
      
      3、VLAN技術
      為解決在區域網路中存在的廣播泛濫和安全性的問題,引出了VLAN即虛擬區域網路的概念,所謂VLAN
      是一種將區域網路內的裝置邏輯地而不是物理地劃分成一個個網段從而實現虛擬工作群組的新興技術。
      VLAN技術允許網路管理者將一個物理的LAN邏輯地劃分成不同的廣播域(或稱虛擬LAN,即VLAN),每一個VLAN都包含一組有著相同需求的電腦工作站,與物理上形成的LAN有著相同的屬性。但由於它是邏輯地而不是物理地劃分,所以同一個VLAN內的各個工作站無須被放置在同一個物理空間裡,即這些工作站不一定屬於同一個物理LAN網段。一個VLAN內部的廣播和單播流量都不會轉寄到其他VLAN中,從而有助於控制流程量、減少裝置投資、簡化網路管理、提高網路的安全性。引入了VLAN以後,對二層交換器的報文轉寄線程產生了如下的影響:
      1)       
      交換器在MAC地址表中尋找資料幀中的目的MAC地址,如果找到(同時還要確保報文的入VLAN和出VLAN是一致的),就將該資料幀發送到相應的連接埠,如果找不到,就向(VLAN內)所有的連接埠發送;
      2)        如果交換器收到的報文中源MAC地址和目的MAC地址所在的連接埠相同,則丟棄該報文;
      3)        交換器向(VLAN內)入連接埠以外的其它所有連接埠轉寄廣播報文。
      Vlan與二層交換的規則:
      l       主機和交換器之間傳送的是untagged報文
      l       交換器之間用幹道鏈路(Trunk)串連
      l       交換器用Tag來標識報文所屬的VLAN
      l       幹道鏈路上傳輸的是Tagged Frame
      l       不同VLAN之間在二層不能相互連訊
      虛擬區域網路將一組位於不同物理網段上的使用者在邏輯上劃分成一個區域網路內,在功能和操作上與傳統LAN基本相同,可以提供一定範圍內終端系統的互聯。VLAN的優勢主要表現在以下四個方面:
      1)        建立虛擬工作群組模型,使虛擬區域網路中的各個裝置很容易相互訪問;
      2)       限制廣播範圍;
      3)      增加網路的安全性;
      4)        動態網路管理。
      
      VLAN的劃分:
      l         基於連接埠的VLAN;
      l         基於MAC的VLAN;
      l         基於協議的VLAN;
      l         基於IP地址的VLAN;
      l         基於IP子網的VLAN;
      l         基於組合策略的VLAN。
      802.1Q協議規定了一段新的乙太網路禎欄位,與標準的乙太網路禎頭相比,VLAN報文格式在源地址後增加了一個4位元組的802.1Q標籤。
      4個位元組的802.1Q標籤中,包含了2個位元組的標籤協議標識(TPID--Tag Protocol
      Identifier,它的值是8100),和兩個位元組的標籤控制資訊(TCI--Tag Control
      Information),TPID是IEEE定義的新的類型,表明這是一個加了802.1Q標籤的報文。1所示:
      圖1
      l         VLAN Identified( VLAN ID ):
      這是一個12位的域,指明VLAN的ID,一共4096個,每個支援802.1Q協議的主機發送出來的資料包都會包含這個域,以指明自己所屬的VLAN。
      l         Canonical Format Indicator( CFI
      ):這一位主要用於匯流排型的乙太網路與FDDI、令牌環網交換資料時的禎格式。
      l         Priority:這3 位指明禎的優先順序。一共有8種優先順序,主要用於當交換器阻塞時,優先發送優先順序高的資料包。
          在交換器中,直接與主機相連的連接埠是無法識別802.1Q報文的,那麼這種連接埠稱為
      Access連接埠;對於交換器相連的連接埠,可以識別和發送802.1Q報文,那麼這種連接埠稱為Tag Aware 連接埠。
      工作原理:在交換器中的報文轉寄過程中,802.1Q報文標識了報文所屬的VLAN;在跨越交換器的報文中,帶有VLAN標籤資訊的報文尤其顯得重要。例如,定義交換器中的1連接埠屬於VLAN
      2,且該連接埠類型為Acess,當 1 連接埠接收到一個資料報文後,交換器會查看該報文中沒有802.1Q標籤,若沒有交換器根據1連接埠所屬的VLAN
      2,自動給該資料包添加一個VLAN
      2的標籤頭,然後再將資料包交給資料庫查詢模組,資料庫查詢模組會根據資料包的目的地址和所屬的VLAN進行尋找,之後交給轉寄模組,轉寄模組看到這是一個包含標籤頭的資料包,根據報文的出連接埠的性質來決定是否保留還是去掉標籤頭。如果連接埠是Tag
      Aware連接埠,則保留標籤,否則刪除標籤頭。一般情況下,兩個交換器互連的連接埠一般都是Tag Aware連接埠,
      交換器和交換器之間交換資料包時是沒有必要去掉標籤的。
      
      VLAN的IVL和SVL方式
      l         IVL: Independent Vlan Learning
      l         SVL: Shared Vlan Learning
            MAC1  VLAN1  PORT1
            MAC2  VLAN2  PORT2
            MAC2  VLAN2  PORT2
            MAC3  VLAN3  PORT3
            MAC1  VLAN1  PORT1
            MAC2  VLAN2  PORT2
            MAC3  VLAN3  PORT3
            
            IVL
            SVL
      圖2
      在IVL方式下:
      每個VLAN都有自己的對應的MAC地址表(抽象的概念並不是物理的),相互之間沒有影響。一個MAC地址可以被學習到不同的VLAN中,因此對一個使用者來說如果屬於多個VLAN,那麼每個VLAN內的資訊都需要重新學習。而SVL方式下,一個地址表項對所有的VLAN都通用,表中的MAC使用者不能有重複。
      
      PVLAN
      PVLAN,Primary-VLAN特性的簡稱,主要通過將使用者劃入不同的VLAN,實現使用者之間二層報文的隔離。為客戶提供了更多的解決方案。
      在PVLAN的設計中採用了多個Secondary vlan包含在一個Primary
      VLAN中的方式,給使用者提供了靈活的配置方式。如果使用者希望實現二層報文的隔離,可以採用了為每個使用者指派一個Secondary
      vlan的方式,每個vlan中只包含使用者串連的連接埠和Uplink
      port;如果希望實現使用者之間二層報文的互連,可以將使用者串連的連接埠劃入同一個VLAN中;同時建立Primary
      vlan,該VLAN包含所有Secondary
      vlan中包含的連接埠和Uplink連接埠,這樣對上層交換器來說,可以認為下層交換器中只有一個Primary
      vlan,用來標識裝置,而不必關心Primary VLAN中的連接埠實際所屬的VLAN,簡化了配置,節省了VLAN資源。
      圖3
      Primary
      vlan中的所有連接埠都不是802.1Q的Trunk連接埠,包括與其它交換器相連的Uplink口。每個連接埠的PVID就是它所屬Secsondary
      VLAN的ID,Uplink連接埠的PVID是Primary
      vlan的ID。3所示,在交換器中可以實現連接埠同時屬於多個VLAN,其中連接埠1為Uplink連接埠,屬於Primary VLAN
      1,連接埠2,3,4為接入連接埠,分別屬於Secsondary VLAN
      2,3,4。這樣,從PVLAN的連接埠接收到的報文,可以被所有Secsondary
      VLAN接收到,而每個Secondary之間,則由於VLAN的隔離作用,而不能互連報文。
          將PVLAN與VLAN的IVL、SVL方式相結合,則圖3中兩種情況的地址表如下:
      l         PVLAN+SVL方式:mac A    vlan 2    port 2
      mac B    vlan 3    port 3
      mac C    vlan 4    port 4
      l         PVLAN+IVL方式:
      1)        vlan 2地址表:mac A      vlan 2  port 2
      2)        vlan 3地址表:mac B       vlan 3  port 3
      3)        vlan 4地址表:mac C      vlan 4  port 4
      4)        vlan 1地址表:mac A      vlan 1  port 2
      mac B      vlan 1  port 3
      mac C      vlan 1  port 4
      採用VLAN(虛擬區域網路)技術確實解決了一些問題,但也引發出一些新的問題:隨著應用的升級,網路規劃者可根據情況在交換式區域網路環境下將使用者劃分在不同VLAN(虛擬區域網路)上,但是VLAN(虛擬區域網路)之間通訊是不允許的,要想通訊就需要用路由器/三層交換器來橋接這些VLAN(虛擬區域網路)。
      4、三層交換技術
      隨著網路模式的不斷擴充,網路的流量情況從80/20向20/80的規則擴充,然而若仍然使用傳統的路由器,則會在轉寄資料方面就會出現網路瓶頸的問題,因此採用三層交換器來代替路由器。
      三層交換技術採用
      Intranet關鍵技術,將第二層交換器和第三層路由器兩者的優勢相結合。上面提到,二層交換技術是在OSI網路標準模型中的第二層——資料連結層進行操作的,而三層交換技術是在網路模型中的第三層實現了資料報文的高速轉寄。因此簡單地說,三層交換技術就是:二層交換技術+三層轉寄技術。下面比較一下三層交換器和路由器的區別:
      ① 效能:傳統路由器基於微處理器轉寄報文,靠軟體處理,三層交換器通過ASIC硬體來進行報文轉寄,效能差別很大;
      ② 介面類型:三層交換器的介面基本上都是乙太網路介面沒有路由介面類型豐富;
      ③ 三層交換器可以工作在二層模式,對於不需要路由的報文可以直接交換,而路由器不具有二層功能。
      三層交換技術的工作原理:假設兩個使用IP協議的網站A、B通過第三層交換器進行通訊,A在開始發送時,把自己的IP地址與B的IP地址比較,判斷B是否與自己在同一子網內。若B與A在同一子網內,則進行二層的轉寄,A通過三層交換器轉寄,廣播一個ARP
      請求報文,B同樣通過三層交換器轉寄返回其MAC
      地址,在此過程中,A與B分別將對方的MAC地址學習到自己的MAC地址表,進行資料的二層轉寄;若兩個網站不在同一子網內,
      A向“預設網關”發出ARP(位址解析)請求報文,而“預設網關”的IP地址其實是三層交換器的三層交換模組。當A對“預設網關”的IP地址發出一個ARP請求報文時,網關向A回複自己的MAC地址,然後A再向網關發出資料報文,這時如果三層交換模組在以前的通訊過程中已經知道B的MAC地址,就通過三層硬體轉寄表IP
      fdb
      Table直接將報文發送出去;否則三層交換模組根據路由資訊向B廣播一個ARP請求,B得到此ARP請求後向三層交換模組回複其MAC地址,三層交換模組將地址儲存到三層硬體轉寄表,這樣後面的工作就可以重複上面的操作,使得報文的轉寄過程得以高效執行。
      舉例:
      圖4
      4所示:交換器上劃分了兩個VLAN——VLAN1和VLAN2,同時交換器中配置了路由介面來實現VLAN1和VLAN2的互連。可以看到主機A和B屬於VLAN1,網關為1.1.1.1;主機C屬於VLAN2,網關為2.2.2.2,另外還假設主機A、B、C的ARP表裡面均沒有彼此的MAC地址。
      l         三層交換器的二層轉寄(A向B發起Ping請求):
      1)        A檢查報文的目的IP地址,發現和自己在同一網段,需要進行二層轉寄;
      2)       
      A檢查自己的ARP表,發現B的MAC地址不在自己的ARP表裡(注意:ARP表裡記錄了IP地址和MAC地址之間的對應關係,因而需要首先檢查ARP表,通過目的IP地址得到MAC地址,再進行資料報文的發送操作);
      3)        A——> Switch發出ARP請求報文(注意:① ARP請求報文是廣播報文;②
      事實上,在二層轉寄時是A——>B發出ARP請求報文,但需要經過交換器進行轉寄);
      4)       
      Switch學習A的MAC地址到自己的MAC地址表(注意:MAC地址表是二層轉寄引擎,並且在二層轉寄時不能學習到Switch的ARP表和三層硬體轉寄表),並廣播ARP請求報文;
      5)        B接收到ARP請求報文,學習A的MAC地址到自己的ARP表;
      6)        B——> Switch發出ARP回應報文;
      7)        Switch學習B的MAC地址到自己的MAC地址表,並向A發出ARP回應報文;
      8)        A接受到B的ARP回應報文,並學習B的MAC的地址;
      9)        A——> Switch發出ICMP請求報文;
      10)     Switch——>B轉寄ICMP請求報文;
      11)     B——> Switch發出ICMP回應報文;
      12)     Switch——>A轉寄ICMP回應報文。
      l         三層交換器的三層轉寄(A向C發起Ping請求):
      1)        A檢查報文的目的IP地址,發現和自己不在同一網段,則需要進行三層轉寄,通過網關轉寄報文資訊;
      2)        A檢查自己的ARP表,發現網關的MAC地址不在自己的ARP表裡;
      3)        A——>Switch(網關)發出ARP請求報文;
      4)        Switch將A的MAC地址學習到自己的MAC地址表、ARP表和三層硬體轉寄表(即IP fdb Table);
      5)        Switch——>A發出ARP回應報文;
      6)        A接收ARP回應報文,並學習Switch(VLAN1路由口)的MAC地址;
      7)       
      A——>Switch發出ICMP請求報文(注意:報文中的目的MAC地址是VLAN1的,源MAC地址是A的,目的IP地址是C的,源IP地址是A的);
      8)        Switch接收ICMP請求報文,判斷出該報文是三層報文(原因:目的MAC地址與Switch的MAC地址相同);
      9)        Switch檢查自己的路由資訊表,發現報文的目的IP地址在自己的直連網段;
      10)     Switch——>C發出ARP請求報文,該報文在VLAN2內廣播;
      11)     C接受到ARP請求報文,並學習Switch(VLAN2路由介面)的MAC地址;
      12)     C——>Switch發出ARP回應報文;
      13)     Switch學習C的MAC地址;
      14)    
      Switch——>C轉寄ICMP請求報文(注意:目的MAC地址是C的,源MAC地址是VLAN2的,目的IP地址是C的,源IP地址是A的);
      15)     C——>Switch發出ICMP回應報文;
      16)     Switch——>A轉寄ICMP回應報文。
         
      從上面的例子可以看到,三層交換器劃分了兩個VLAN,A與B之間的通訊是在一個VLAN內完成的,相對於交換器而言屬於二層資料流;而A與C之間的通訊需要跨越VLAN,因此屬於三層資料流。下面討論三層轉寄技術需要特別注意的幾個問題:
      l        
      交換器如何判斷一個報文是二層報文還是三層報文呢?從上面的例子中可以看出,從A到B的報文由於在同一個VLAN內部,因此目的MAC地址是B的MAC地址;而從A到C的報文由於需要跨越VLAN,這樣報文的目的MAC地址是Switch裝置虛介面上VLAN1的MAC地址。簡單來說,就是當報文的目的MAC地址與Switch的MAC地址相同時,該報文就為三層報文。
      l         三層轉寄的幾個相關的資料表格:MAC地址表(FIB Table),路由表(Route Table),ARP表(ARP
      Table),三層硬體轉寄表(IP fdb
      Table)。MAC地址表是二層轉寄引擎,主要記錄MAC地址和報文發出的連接埠資訊之間的對應關係;路由表記錄路由資訊;ARP表格服務於三層轉寄,主要記錄IP地址與MAC地址之間的對應關係;三層硬體轉寄表能夠記錄路由介面和VLAN的對應關係,以及下一跳的MAC地址和對應連接埠資訊。其中三層硬體轉寄表(IP
      fdb Table)的所有資訊均來源於ARP表和MAC地址表,當這兩個表發生變化時,IP fdb Table也隨著變化。
      l         三層轉寄流程中圍繞涉及IP fdb Table到兩個關鍵的線程:①轉寄線程——硬體根據報文中的資訊尋找IP fdb Table
      來轉寄報文;②學習線程——軟體根據相關的資訊來學習和維護IP fdb
      Table以保證路由的暢通。三層交換器之所以轉寄報文的速度很快,在很大程度上都是這個三層硬體轉寄表的功勞,因為當它記錄了報文的目的MAC地址時,就可以直接通過硬體來實現轉寄,速度極快。
      綜上,本文重點討論了各種網路裝置的交換原理和報文的轉寄流程,其中以三層交換器的報文轉寄流程為例,將三層交換的二層轉寄和三層轉寄進行了詳細的描述。需要特別指出的是,在研究報文轉寄流程時要注意二層和三層的報文轉寄過程的不同以及四種資料表格之間的區別和聯絡。
      本站部分文章收集於網路,著作權歸原作者及出版社所有 如果您覺得侵犯了您的著作權請來信告訴我們,我們會儘快刪除其內容!
      本站原創文章著作權歸本站所有,除特別申明外,大家可以自由轉載,但原作者和來自本站的連結必須保留! 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.