直播推薦
企業(yè)動態(tài)
- 紛享銷客發(fā)布首個企業(yè)級智能CRM平臺ShareAI
- 揭秘西企業(yè)數(shù)字化+低碳化轉(zhuǎn)型“工具箱”:西門子Xcelerator
- 企業(yè)AI賦能數(shù)智制造,用友U9 cloud世界級云ERP煥新升級
- 《“智“領(lǐng)石化,“質(zhì)“造未來——威圖石化行業(yè)數(shù)智化實踐白皮書》隆重發(fā)布
- 攜手共贏!德國Agfa搭載瑞典IPCO鋼帶,實現(xiàn)印刷設備振動銳減6倍,提升印刷速度與精度
- 創(chuàng)四方集團榮獲“知名商標品牌閃亮”證書,助力品牌戰(zhàn)略升級
- 皇冠CAD(CrownCAD)2025 R3版本來了,率先開啟C“Ai”D時代!
- 電費砍半!中國制冷展:海爾發(fā)布AI建筑最新成果
推薦展會
關(guān)鍵詞:交換式工業(yè)以太網(wǎng);多播;虛擬局域網(wǎng);IGM 竊聽;Cisco 多播管理協(xié)議;GARP 多播注冊協(xié)議
Multicast Methods in Switched Industrial Ethernet
ZHANG Qi-zhi, CAO Chun-sheng, ZHANG Wei-dong
Department of Automation, Shanghai Jiao Tong University, Shanghai, 200030, China
Abstract:Because “producer-consumer” communication mode is widely adopted in industrial control network,
there is a mass of multicast data in the networktraditional switch broadcasts
multicast frames to all ports, which can significantly degrade the performance of
switched Ethernet. This article compares existing several multicast methods and points
out their respective applicable scopes in switched industrial Ethernet.
Keywords: switched industrial Ethernet; multicast; VLAN; IGMP Snooping; CGMP; GMRP
1. 引 言
在工業(yè)控制網(wǎng)絡中,大量的實時數(shù)據(jù)常采用“生產(chǎn)者-消費者”的通信模式進行傳送,其中生產(chǎn)者是發(fā)送實時數(shù)據(jù)的工作站,它產(chǎn)生的數(shù)據(jù)可以同時被多個消費者使用。這種通信模式一方面可以保證同一實時數(shù)據(jù)在空間上的一致性,另一方面可以節(jié)省帶寬,因為每個新產(chǎn)生的實時數(shù)據(jù)只需要發(fā)送一次。
工業(yè)網(wǎng)絡中這種“一對多”的數(shù)據(jù)相應于以太網(wǎng)中的多播數(shù)據(jù)幀,而多播數(shù)據(jù)在傳統(tǒng)以太網(wǎng)交換機中是以廣播的方式發(fā)送,因為交換機一般是通過查看它收到的以太網(wǎng)數(shù)據(jù)幀的源地址來學習各端口相連工作站的MAC 地址的,而多播MAC 地址從來不會被用在一個以太網(wǎng)數(shù)據(jù)幀的源地址中,交換機沒有方法動態(tài)地學習它們。當網(wǎng)絡中存在著大量的多播數(shù)據(jù)時,由多播幀引起的廣播數(shù)據(jù)會消耗掉大量的帶寬,甚至會引起“廣播風暴”使網(wǎng)絡進入不穩(wěn)定狀態(tài)。zui容易想到的方法是為交換機的每個端口靜態(tài)地配置多播地址,這種方法是可行的,但可擴展性和動態(tài)適應性都很差。
本文的第2 到5 小節(jié)對目前交換式以太網(wǎng)中常采用的四種多播方式進行了介紹。第6小節(jié)對它們進行了對比分析,并指出了各自在工業(yè)以太網(wǎng)中的適用范圍。
2. 虛擬局域網(wǎng)(Virtual LAN)
VLAN 是指在交換局域網(wǎng)的基礎(chǔ)上,采用網(wǎng)絡管理軟件構(gòu)建的可跨越不同網(wǎng)段、不同網(wǎng)絡的端到端的邏輯網(wǎng)絡。一個VLAN 組成一個邏輯子網(wǎng),即一個邏輯廣播域,它可以覆蓋多個網(wǎng)絡設備,允許處于不同地理位置的網(wǎng)絡用戶加入到一個邏輯子網(wǎng)中。VLAN 的主要優(yōu)點之一就是可以抑制網(wǎng)絡廣播風暴,一個VLAN 就是一個邏輯廣播域,通過對VLAN 的創(chuàng)建,隔離了廣播,縮小了廣播范圍,可以控制廣播風暴的產(chǎn)生[1]。
從而可以設想將屬于每個“生產(chǎn)者-消費者”數(shù)據(jù)組的工作站組成一個VLAN,當其中的生產(chǎn)者發(fā)送多播數(shù)據(jù)時,只有屬于該VLAN 的數(shù)據(jù)組成員才能接收到相應的多播數(shù)據(jù)??刂凭W(wǎng)絡中只要存在一個“生產(chǎn)者-消費者”數(shù)據(jù)組,就對應于一個VLAN。顯然,某個控制網(wǎng)絡中的應分配的VLAN 數(shù)量將與其中的“生產(chǎn)者-消費者”數(shù)據(jù)組個數(shù)成正比。由于位于控制層的控制器往往參與到多個控制回路中完成優(yōu)化控制運算,它應該同時位于多個VLAN 中,才能與多個控制回路中的工作站交換數(shù)據(jù)。
對于小型的控制網(wǎng)絡,這種多播方式也許是可行的,但對于中等規(guī)模和大規(guī)模的控制網(wǎng)絡,為數(shù)眾多的VLAN 勢必會大大降低控制網(wǎng)絡的性能,并給VLAN 的管理和維護帶來極大的困難,在大型控制網(wǎng)絡中“生產(chǎn)者-消費者”數(shù)據(jù)組個數(shù)甚至會超過可用的VLAN 數(shù)量(4096 個)。
由于VLAN 的安全機制,屬于不同VLAN 的通信成員之間相互通信時必須通過路由器進行轉(zhuǎn)交。如圖1 所示,位于VLAN1 工作站A 有數(shù)據(jù)要向位于VLAN2 中B 發(fā)送時,工作站A 必須首先把自己的數(shù)據(jù)轉(zhuǎn)交給網(wǎng)絡中的路由器,再由路由器其轉(zhuǎn)交給工作站B。路由器的介入勢必會增大數(shù)據(jù)的傳輸延遲,對于實時報文甚至可能使其失去實時性。雖然帶有硬件路由功能的第三層交換機可以增強需要路由傳輸?shù)臄?shù)據(jù)的實時性,但會增加整個網(wǎng)絡的成
本,并會增加網(wǎng)絡管理的復雜性。
圖1 不同VLAN 的工作站通過路由器轉(zhuǎn)發(fā)數(shù)據(jù)
3. IGMP 竊聽(IGMP Snooping)
互聯(lián)網(wǎng)組管理協(xié)議IGMP(Internet Group Management Protocol)定義了工作站如何向路由器注冊以便能接收到特定的IP 多播數(shù)據(jù)。當以太網(wǎng)交換機收到工作站和路由器之間傳遞的IGMP 報文時,通過截取并分析IGMP 報文所帶的信息,在鏈路建立和維護MAC 多播地址轉(zhuǎn)發(fā)表,以后從路由器下發(fā)的多播報文就根據(jù)該表中的“多播組-端口”對應關(guān)系進行轉(zhuǎn)發(fā)[2][3]。
3.1 通過IGMP 竊聽加入某一多播組
圖2 通過IGMP 竊聽加入一個多播組
當工作站是某交換組中*個希望加入某一多播組的工作站時,如圖2 中的工作站A,加入過程如下:工作站A 先主動向路由器發(fā)送一條IGMP 成員報告,交換機通過截取分析該成員報告得知工作站希望加入的多播組,然后為其創(chuàng)建一個多播項目組,并把它鏈接到工作站A 所在的端口和所有的路由器端口。zui后交換機把該IGMP 成員報告轉(zhuǎn)發(fā)給路由器端口,以便路由器能夠接收到該IGMP 報告,并相應地更新它的多播路由表。
當工作站希望加入一個已存在的多播組時,如圖2 中工作站B 希望加入工作站A 已經(jīng)加入的多播組中。交換機只是簡單的將該工作站所在端口鏈接到已存在的多播組上,不再向路由器轉(zhuǎn)發(fā)IGMP 報告,而是使用代理報告(Proxy Reporting)機制每隔10s 向路由器為每個多播組轉(zhuǎn)發(fā)一次IGMP 報告。這種代理報告機制可以減少IGMP 竊聽多播機制消耗的帶寬[3]。
3.2 使用IGMP 竊聽離開一個多播組
當工作站想離開一個多播組時,它可以簡單的忽略周期的IGMP 詢問報文,或者發(fā)送一條IGMP Leave 報文。當交換機收到對某多播組的IGMP Leave 報文時,則會向接收該報文的端口發(fā)送所離開組的特定組查詢報文,以確認此端口相連的工作站中還有沒有該多播組的其他成員,同時啟動一個查詢響應定時器。如果在該定時器超時還沒有收到該多播組的報告報文,則將該端口從相應的MAC 多播組中移除。如果MAC 多播組在交換機的各個端口都沒有組成員時,交換機將通知多播路由器將該分支從多播樹中刪除[2]。
4. Cisco 組管理協(xié)議(Cisco Group Management Protocol)
CGMP 是Cisco 公司專有的組管理協(xié)議,它是在多播路由器和交換機之間使用的一種通信協(xié)議,主要工作方式是多播路由器通過CGMP 報文通知交換機它所得到的IGMP 信息,交換機上的CGMP 模塊會把接收到CGMP 幀中的“多播組-工作站”對應關(guān)系轉(zhuǎn)換為“多播組-端口”對,并基于此建立本地的多播地址轉(zhuǎn)發(fā)表,然后依照這個關(guān)系轉(zhuǎn)發(fā)多播數(shù)據(jù)[3][4]。
4.1 CGMP 的數(shù)據(jù)幀格式
CGMP 是目的地址為0x01-00-0C-DD-DD-DD 以太網(wǎng)數(shù)據(jù)幀, 它主要包含以下字段[4]:
(1) 版本號,1 或2。
(2) 報文類型,加入(Join)或離開(Leave)。
(3) 計數(shù)值,報文幀中包含的多播/單播地址對。
(4) GDA(Group Destination Address),48 位的多播MAC 地址。
(5) USA(Unicast Source Address),欲加入某一多播組的48 位的單播MAC 地址。
4.2 使用CGMP 加入一個多播組
當工作站希望加入某一多播組時,它發(fā)送一條IGMP 成員報告。路由器收到該IGMP報告后,把IGMP 幀中所聲明的多播MAC 地址拷貝到CGMP Join 數(shù)據(jù)幀的GDA 字段中,把發(fā)送站的源MAC 地址拷貝到CGMP Join 數(shù)據(jù)幀的USA 字段中,然后把構(gòu)建好CGMP 數(shù)據(jù)幀發(fā)送給交換機。具有CGMP 多播功能的交換機監(jiān)聽到目的地址為0x01-00-0C-DD-DD-DD 的數(shù)據(jù)幀后,它的處理器到自己的“地址-端口”表中去查找對應的USA。一旦USA 在表中被找到,交換機知道了該USA 位于哪個端口,然后它進行下列其中一項操作:
(1) 為GDA 創(chuàng)建一個新的多播項目組,并把USA 對應的端口和所有的路由器端口鏈接到該GDA。
(2) 如果屬于該GDA 的多播項目組已經(jīng)存在,交換機只是把該USA 對應的端口加入到已有GDA 的端口列表中。
4.3 使用CGMP 離開一個多播組
當使用IGMPv1,工作站希望離開一個多播組時,不發(fā)送IGMP leave 報文, 路由器在兩次連續(xù)的IGMP 詢問沒有收到回應后,發(fā)送IGMP Leave 報文。如果仍舊有用戶對某多播組感興趣,屬于該多播組的端口就不會從多播樹上被刪除掉。當使用IGMPv2 時,工作站希望離開某一多播組時,可以發(fā)送IGMP Leave 報文。CGMPv2 借助該機制可以使工作站快速離開一個組(CGMP Fast-Leave)。
CGMP Fast-Leave 處理方式允許交換機在端口監(jiān)視引擎模塊(具有IGMP 解析功能的硬件模塊)中監(jiān)聽工作站發(fā)往所有路由器多播地址(224.0.0.2)的IGMPv2 Leave 報文。當它發(fā)現(xiàn)有Leave 報文時,就啟動一個查詢響應計時器,并發(fā)送一條查詢報文到接收到該Leave 報文的端口,以確認該端口是否還有工作站希望接收到此多播組數(shù)據(jù)。如果在定時器超時時還沒有收到CGMP Join 報文,則該端口從IGMP Leave 報文所標明的多播組的多播樹中被移除。如果它是該多播組的zui后一個端口,交換機就把IGMP Leave 報文轉(zhuǎn)發(fā)到路由器端口。然后路由器通過發(fā)送一個特定組的查詢報文啟動正常的刪除過程,因為不會收到響應報文,路由器就在多播路由表中把相應的端口刪除掉。同時路由器也發(fā)送一條CGMP Leave 報文給交換機把該多播組從轉(zhuǎn)發(fā)表中刪除掉 [3]。
5. GARP 多播注冊協(xié)議(GARP Multicast Registration Protocol)
在IEEE 802.1D 標準中定義了GMRP,它使用GARP(generic attribute registration protocol)協(xié)議機制聲明和注冊工作站和交換機監(jiān)聽接收多播數(shù)據(jù)的需要。
5.1 GMRP 的幀格式
GMRP 的數(shù)據(jù)幀格式如圖3 所示,其各個字段的意義如下:
(1) GMRP 應用地址,為多播地址0x01-80-C2-00-00-20。
(2) 源地址,取產(chǎn)生該GMRP 數(shù)據(jù)幀的設備的單播地址。
(3) 長度,標明整個GMRP 數(shù)據(jù)幀的長度。
(4) LLC 頭,所有GARP 應用都使用源地址和目的地址為0x42 的LLC 服務接入點,控制字段取值為0x03 標明為無連接服務。
(5) 協(xié)議ID,所有GARP 應用都使用值為0x0001 的協(xié)議ID,以便和其他LLC 服務(如生成樹協(xié)議)相區(qū)別。
圖3 GMRP 幀協(xié)議格式
(6) GMRP 屬性類別, GMRP 數(shù)據(jù)幀可以包含多個GMRP 信息字段,用值0x00 標明GMRP信息的結(jié)束。GMRP 信息具有兩種屬性類別:當屬性類型為0x01 時表明后面是組成員屬性列表,用來聲明接收特定多播數(shù)據(jù)的需要;當屬性類型為0x02 時是為了保證兼容不支持GARP 的設備。
(7) GMRP 屬性列表,屬性列表可以包含多個屬性值,每個屬性值包含三個元素:屬性長度;屬性事件,標明對屬性值要采取的行為,加入或離開一個多播組;屬性值,當屬性類別取組成員屬性時為48 位的MAC 多播地址[5][6]。
5.2 GMRP 的多播原則
GMRP 的實現(xiàn)基于GARP 工作機制,用于維護交換機中的動態(tài)多播注冊信息。所有支持GMRP 特性的交換機都能夠接收來自其他交換機的多播注冊信息,并動態(tài)更新本地的多播注冊信息,同時也能將本地的多播注冊信息向其他交換機傳播,以便使同一交換網(wǎng)內(nèi)所有支持GMRP 特性的設備的多播信息達成一致。GMRP 依據(jù)下面的原則進行操作[5]:
(1) 設備通過Join 命令聲明它們加入某多播組的愿望,該聲明可以通過Leave 命令撤銷。
(2) 當同一網(wǎng)段的已有設備聲明對某一多播組感興趣時,如果另外一個對該多播組感興趣的設備監(jiān)聽到了該聲明,它無需再明確提出聲明。
(3) 交換機在某一端口監(jiān)聽到對某一多播組的聲明時,它在該端口為該多播組添加一個注冊信息。當聲明某一多播組服務的所有設備都離開后,交換機將向其他交換機注銷掉對該多播組的聲明。
(4) 交換機會把一個端口的注冊信息向其他端口廣播,同時多播注冊信息將沿生成樹進行廣播。
6. 四種多播方式的對比分析
在表1 中對上述四種多播通信方式進行了對比。除VLAN 外,其他幾種多播方式都是針對多播通信特點設計的多播解決方案,它們本質(zhì)上都是通過某種方法來構(gòu)建二層的多播樹,并減少網(wǎng)絡上不必要的數(shù)據(jù)傳輸。雖然在控制領(lǐng)域有不少學者提出用VLAN 來解決交換式工業(yè)以太網(wǎng)中的多播問題,但通過第2 小節(jié)的分析可知,VLAN 并不是多播通信的理想解決辦法。它只適合具有較少“生產(chǎn)者-消費者”數(shù)據(jù)組成員個數(shù)的控制網(wǎng)絡,而且不同VLAN 之間的通信應限制在一定流量內(nèi),因為它們必須通過路由器轉(zhuǎn)發(fā),當不同VLAN 之間的通信流量較大時,路由器就會成為控制網(wǎng)絡中的通信瓶頸。因此用VLAN 來實現(xiàn)多播的應限制在小型的控制網(wǎng)絡中。
表1 四種多播方式的對比
使用CGMP 協(xié)議時,由路由器根據(jù)接收到的IGMP 報文構(gòu)建CGMP 報文然后再發(fā)送給交換機進行二層多播配置,因此在使用CGMP 協(xié)議時,多播路由器是必須的設備。當使用IP 竊聽時,由于交換機可以代替多播路由器來解析IGMP 信息,通過適當?shù)呐渲?,進行多播配置時可以不需要路由器的介入,而由交換機代理路由器的相關(guān)功能。IGMP 竊聽方法和CGMP 協(xié)議的提出都是源于互聯(lián)網(wǎng)上多媒體通信快速增長的需要,它們在構(gòu)建二層的多播樹時都利用了三層網(wǎng)絡上的IGMP 報文信息,二層的多播地址是由三層的IP 多播地址轉(zhuǎn)換得到的,因此參加二層多播的工作站也必須配置三層的IP 多播地址。另一方面,CGMP 和IP 竊聽都是專有的多播解決方案,其中CGMP 只被Cisco 的交換機和路由器支持,相比之下,IP 竊聽方法有多個交換機廠商支持,但其實現(xiàn)方法并沒有一個統(tǒng)一的標準。
GMRP 的提出一方面是源于互聯(lián)網(wǎng)上多媒體多播通信快速增長的需要,另一方面也是交換式以太網(wǎng)普遍采用提出的要求(在共享式以太網(wǎng)中不存在多播通信消耗大量帶寬的情況)。CMRP 是純二層的協(xié)議,它所使用的GARP 注冊協(xié)議也同時被VLAN 采用來注冊各個工作站的VLAN 屬性(GVRP,GARP VLAN Registration Protocol),因此在以太網(wǎng)交換機中,CMRP 會獲得越來越廣泛的支持。在使用GMRP 時,工作站的網(wǎng)絡接口卡和協(xié)議棧也必須提供對GMRP 的支持,但現(xiàn)有設備和系統(tǒng)的協(xié)議棧對GMRP 的支持并不充分。
因此在工業(yè)交換式以太網(wǎng)中,目前可考慮采用CGMP 或IP 竊聽來解決實時數(shù)據(jù)的多播問題,待工作站的接口卡和系統(tǒng)的協(xié)議棧對GMRP 做出相應改進后,逐漸過渡到使用GMRP來解決二層控制網(wǎng)絡中的多播問題。
7. 總結(jié)
本文分析了工業(yè)控制網(wǎng)絡中的數(shù)據(jù)通信特點:即存在大量多播數(shù)據(jù),并介紹了目前交換式以太網(wǎng)中比較常用的四種多播方法:VLAN,IGMP 竊聽,CGMP,GMRP,對它們的特點進行了對比分析,指出了各自的使用范圍。另一方面,由于交換機的學習注冊過程需要一定時間,如果在這段時間內(nèi)傳送數(shù)據(jù),對于未知的多播地址,交換機仍然以廣播的方式發(fā)送數(shù)據(jù),依然會導致廣播風暴,引起控制網(wǎng)絡的不穩(wěn)定性。因此在各工作站正式通信前,有必要引入一個學習期,使各個站點有足夠的時間進行多播地址的注冊,在這段時間內(nèi),交換機也可以學習各個工作站的單播地址,從而在正式傳送控制數(shù)據(jù)時盡可能地減少網(wǎng)絡上的廣播數(shù)據(jù)。
參考文獻
[1] IEEE Std 802.1Q. IEEE Standards for Local and Metropolitan Area Networks: Virtual Bridged Local Area Network[S]. 1999
[2] 王軍,吳志美. 交換式以太網(wǎng)上的多播協(xié)議[J]. 軟件學報,2003,14(3): 496-502
[3] Cisco Systems Inc. Multicast in a Campus Network: CGMP and IGMP Snooping [J/OL]. URL:/. 2003
[4] Kennedy C. and Kevin H. Cisco LAN Switching [M]. Cisco Press, 1999, 773-598
[5] IEEE Std 802.1D, 1998 Edition. Media Access Control (MAC) Bridges [S]
[6] Rich Seifert. The Switch Book [M]. Wiley Computer Publishing, 2000, 422-429
免責聲明
- 凡本網(wǎng)注明"來源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請必須注明智能制造網(wǎng),http://www.towegas.com。違反者本網(wǎng)將追究相關(guān)法律責任。
- 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔責任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責任。
- 本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品來源,并自負版權(quán)等法律責任。
- 如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
2025第十一屆中國國際機電產(chǎn)品交易會 暨先進制造業(yè)博覽會
展會城市:合肥市展會時間:2025-09-20