時間:2007-08-06 15:05:00來源:shixiang
 圖1 不同VLAN 的工作站通過路由器轉(zhuǎn)發(fā)數(shù)據(jù)[/align]
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ù)該表中的“多播組-端口”對應(yīng)關(guān)系進行轉(zhuǎn)發(fā)[2][3]。
3.1 通過IGMP 竊聽加入某一多播組
[align=center]
圖1 不同VLAN 的工作站通過路由器轉(zhuǎn)發(fā)數(shù)據(jù)[/align]
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ù)該表中的“多播組-端口”對應(yīng)關(guān)系進行轉(zhuǎn)發(fā)[2][3]。
3.1 通過IGMP 竊聽加入某一多播組
[align=center] 圖2 通過IGMP 竊聽加入一個多播組[/align]
    當工作站是某交換組中第一個希望加入某一多播組的工作站時,如圖2 中的工作站A,加入過程如下:工作站A 先主動向路由器發(fā)送一條IGMP 成員報告,交換機通過截取分析該成員報告得知工作站希望加入的多播組,然后為其創(chuàng)建一個多播項目組,并把它鏈接到工作站A 所在的端口和所有的路由器端口。最后交換機把該IGMP 成員報告轉(zhuǎn)發(fā)給路由器端口,以便路由器能夠接收到該IGMP 報告,并相應(yīng)地更新它的多播路由表。
    當工作站希望加入一個已存在的多播組時,如圖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ā)送所離開組的特定組查詢報文,以確認此端口相連的工作站中還有沒有該多播組的其他成員,同時啟動一個查詢響應(yīng)定時器。如果在該定時器超時還沒有收到該多播組的報告報文,則將該端口從相應(yīng)的MAC 多播組中移除。如果MAC 多播組在交換機的各個端口都沒有組成員時,交換機將通知多播路由器將該分支從多播樹中刪除[2]。
4. Cisco 組管理協(xié)議(Cisco Group Management Protocol)
    CGMP 是Cisco 公司專有的組管理協(xié)議,它是在多播路由器和交換機之間使用的一種通信協(xié)議,主要工作方式是多播路由器通過CGMP 報文通知交換機它所得到的IGMP 信息,交換機上的CGMP 模塊會把接收到CGMP 幀中的“多播組-工作站”對應(yīng)關(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ù)幀后,它的處理器到自己的“地址-端口”表中去查找對應(yīng)的USA。一旦USA 在表中被找到,交換機知道了該USA 位于哪個端口,然后它進行下列其中一項操作:
    (1) 為GDA 創(chuàng)建一個新的多播項目組,并把USA 對應(yīng)的端口和所有的路由器端口鏈接到該GDA。
    (2) 如果屬于該GDA 的多播項目組已經(jīng)存在,交換機只是把該USA 對應(yīng)的端口加入到已有GDA 的端口列表中。
4.3 使用CGMP 離開一個多播組
    當使用IGMPv1,工作站希望離開一個多播組時,不發(fā)送IGMP leave 報文, 路由器在兩次連續(xù)的IGMP 詢問沒有收到回應(yīng)后,發(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 報文時,就啟動一個查詢響應(yīng)計時器,并發(fā)送一條查詢報文到接收到該Leave 報文的端口,以確認該端口是否還有工作站希望接收到此多播組數(shù)據(jù)。如果在定時器超時時還沒有收到CGMP Join 報文,則該端口從IGMP Leave 報文所標明的多播組的多播樹中被移除。如果它是該多播組的最后一個端口,交換機就把IGMP Leave 報文轉(zhuǎn)發(fā)到路由器端口。然后路由器通過發(fā)送一個特定組的查詢報文啟動正常的刪除過程,因為不會收到響應(yīng)報文,路由器就在多播路由表中把相應(yīng)的端口刪除掉。同時路由器也發(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 應(yīng)用地址,為多播地址0x01-80-C2-00-00-20。
(2) 源地址,取產(chǎn)生該GMRP 數(shù)據(jù)幀的設(shè)備的單播地址。
(3) 長度,標明整個GMRP 數(shù)據(jù)幀的長度。
(4) LLC 頭,所有GARP 應(yīng)用都使用源地址和目的地址為0x42 的LLC 服務(wù)接入點,控制字段取值為0x03 標明為無連接服務(wù)。
(5) 協(xié)議ID,所有GARP 應(yīng)用都使用值為0x0001 的協(xié)議ID,以便和其他LLC 服務(wù)(如生成樹協(xié)議)相區(qū)別。
[align=center]
圖2 通過IGMP 竊聽加入一個多播組[/align]
    當工作站是某交換組中第一個希望加入某一多播組的工作站時,如圖2 中的工作站A,加入過程如下:工作站A 先主動向路由器發(fā)送一條IGMP 成員報告,交換機通過截取分析該成員報告得知工作站希望加入的多播組,然后為其創(chuàng)建一個多播項目組,并把它鏈接到工作站A 所在的端口和所有的路由器端口。最后交換機把該IGMP 成員報告轉(zhuǎn)發(fā)給路由器端口,以便路由器能夠接收到該IGMP 報告,并相應(yīng)地更新它的多播路由表。
    當工作站希望加入一個已存在的多播組時,如圖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ā)送所離開組的特定組查詢報文,以確認此端口相連的工作站中還有沒有該多播組的其他成員,同時啟動一個查詢響應(yīng)定時器。如果在該定時器超時還沒有收到該多播組的報告報文,則將該端口從相應(yīng)的MAC 多播組中移除。如果MAC 多播組在交換機的各個端口都沒有組成員時,交換機將通知多播路由器將該分支從多播樹中刪除[2]。
4. Cisco 組管理協(xié)議(Cisco Group Management Protocol)
    CGMP 是Cisco 公司專有的組管理協(xié)議,它是在多播路由器和交換機之間使用的一種通信協(xié)議,主要工作方式是多播路由器通過CGMP 報文通知交換機它所得到的IGMP 信息,交換機上的CGMP 模塊會把接收到CGMP 幀中的“多播組-工作站”對應(yīng)關(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ù)幀后,它的處理器到自己的“地址-端口”表中去查找對應(yīng)的USA。一旦USA 在表中被找到,交換機知道了該USA 位于哪個端口,然后它進行下列其中一項操作:
    (1) 為GDA 創(chuàng)建一個新的多播項目組,并把USA 對應(yīng)的端口和所有的路由器端口鏈接到該GDA。
    (2) 如果屬于該GDA 的多播項目組已經(jīng)存在,交換機只是把該USA 對應(yīng)的端口加入到已有GDA 的端口列表中。
4.3 使用CGMP 離開一個多播組
    當使用IGMPv1,工作站希望離開一個多播組時,不發(fā)送IGMP leave 報文, 路由器在兩次連續(xù)的IGMP 詢問沒有收到回應(yīng)后,發(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 報文時,就啟動一個查詢響應(yīng)計時器,并發(fā)送一條查詢報文到接收到該Leave 報文的端口,以確認該端口是否還有工作站希望接收到此多播組數(shù)據(jù)。如果在定時器超時時還沒有收到CGMP Join 報文,則該端口從IGMP Leave 報文所標明的多播組的多播樹中被移除。如果它是該多播組的最后一個端口,交換機就把IGMP Leave 報文轉(zhuǎn)發(fā)到路由器端口。然后路由器通過發(fā)送一個特定組的查詢報文啟動正常的刪除過程,因為不會收到響應(yīng)報文,路由器就在多播路由表中把相應(yīng)的端口刪除掉。同時路由器也發(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 應(yīng)用地址,為多播地址0x01-80-C2-00-00-20。
(2) 源地址,取產(chǎn)生該GMRP 數(shù)據(jù)幀的設(shè)備的單播地址。
(3) 長度,標明整個GMRP 數(shù)據(jù)幀的長度。
(4) LLC 頭,所有GARP 應(yīng)用都使用源地址和目的地址為0x42 的LLC 服務(wù)接入點,控制字段取值為0x03 標明為無連接服務(wù)。
(5) 協(xié)議ID,所有GARP 應(yīng)用都使用值為0x0001 的協(xié)議ID,以便和其他LLC 服務(wù)(如生成樹協(xié)議)相區(qū)別。
[align=center] 圖3 GMRP 幀協(xié)議格式[/align]
(6) GMRP 屬性類別, GMRP 數(shù)據(jù)幀可以包含多個GMRP 信息字段,用值0x00 標明GMRP信息的結(jié)束。GMRP 信息具有兩種屬性類別:當屬性類型為0x01 時表明后面是組成員屬性列表,用來聲明接收特定多播數(shù)據(jù)的需要;當屬性類型為0x02 時是為了保證兼容不支持GARP 的設(shè)備。
(7) GMRP 屬性列表,屬性列表可以包含多個屬性值,每個屬性值包含三個元素:屬性長度;屬性事件,標明對屬性值要采取的行為,加入或離開一個多播組;屬性值,當屬性類別取組成員屬性時為48 位的MAC 多播地址[5][6]。
5.2 GMRP 的多播原則
    GMRP 的實現(xiàn)基于GARP 工作機制,用于維護交換機中的動態(tài)多播注冊信息。所有支持GMRP 特性的交換機都能夠接收來自其他交換機的多播注冊信息,并動態(tài)更新本地的多播注冊信息,同時也能將本地的多播注冊信息向其他交換機傳播,以便使同一交換網(wǎng)內(nèi)所有支持GMRP 特性的設(shè)備的多播信息達成一致。GMRP 依據(jù)下面的原則進行操作[5]:
(1) 設(shè)備通過Join 命令聲明它們加入某多播組的愿望,該聲明可以通過Leave 命令撤銷。
(2) 當同一網(wǎng)段的已有設(shè)備聲明對某一多播組感興趣時,如果另外一個對該多播組感興趣的設(shè)備監(jiān)聽到了該聲明,它無需再明確提出聲明。
(3) 交換機在某一端口監(jiān)聽到對某一多播組的聲明時,它在該端口為該多播組添加一個注冊信息。當聲明某一多播組服務(wù)的所有設(shè)備都離開后,交換機將向其他交換機注銷掉對該多播組的聲明。
(4) 交換機會把一個端口的注冊信息向其他端口廣播,同時多播注冊信息將沿生成樹進行廣播。
6. 四種多播方式的對比分析
    在表1 中對上述四種多播通信方式進行了對比。除VLAN 外,其他幾種多播方式都是針對多播通信特點設(shè)計的多播解決方案,它們本質(zhì)上都是通過某種方法來構(gòu)建二層的多播樹,并減少網(wǎng)絡(luò)上不必要的數(shù)據(jù)傳輸。雖然在控制領(lǐng)域有不少學者提出用VLAN 來解決交換式工業(yè)以太網(wǎng)中的多播問題,但通過第2 小節(jié)的分析可知,VLAN 并不是多播通信的理想解決辦法。它只適合具有較少“生產(chǎn)者-消費者”數(shù)據(jù)組成員個數(shù)的控制網(wǎng)絡(luò),而且不同VLAN 之間的通信應(yīng)限制在一定流量內(nèi),因為它們必須通過路由器轉(zhuǎn)發(fā),當不同VLAN 之間的通信流量較大時,路由器就會成為控制網(wǎng)絡(luò)中的通信瓶頸。因此用VLAN 來實現(xiàn)多播的應(yīng)限制在小型的控制網(wǎng)絡(luò)中。
[align=center]
圖3 GMRP 幀協(xié)議格式[/align]
(6) GMRP 屬性類別, GMRP 數(shù)據(jù)幀可以包含多個GMRP 信息字段,用值0x00 標明GMRP信息的結(jié)束。GMRP 信息具有兩種屬性類別:當屬性類型為0x01 時表明后面是組成員屬性列表,用來聲明接收特定多播數(shù)據(jù)的需要;當屬性類型為0x02 時是為了保證兼容不支持GARP 的設(shè)備。
(7) GMRP 屬性列表,屬性列表可以包含多個屬性值,每個屬性值包含三個元素:屬性長度;屬性事件,標明對屬性值要采取的行為,加入或離開一個多播組;屬性值,當屬性類別取組成員屬性時為48 位的MAC 多播地址[5][6]。
5.2 GMRP 的多播原則
    GMRP 的實現(xiàn)基于GARP 工作機制,用于維護交換機中的動態(tài)多播注冊信息。所有支持GMRP 特性的交換機都能夠接收來自其他交換機的多播注冊信息,并動態(tài)更新本地的多播注冊信息,同時也能將本地的多播注冊信息向其他交換機傳播,以便使同一交換網(wǎng)內(nèi)所有支持GMRP 特性的設(shè)備的多播信息達成一致。GMRP 依據(jù)下面的原則進行操作[5]:
(1) 設(shè)備通過Join 命令聲明它們加入某多播組的愿望,該聲明可以通過Leave 命令撤銷。
(2) 當同一網(wǎng)段的已有設(shè)備聲明對某一多播組感興趣時,如果另外一個對該多播組感興趣的設(shè)備監(jiān)聽到了該聲明,它無需再明確提出聲明。
(3) 交換機在某一端口監(jiān)聽到對某一多播組的聲明時,它在該端口為該多播組添加一個注冊信息。當聲明某一多播組服務(wù)的所有設(shè)備都離開后,交換機將向其他交換機注銷掉對該多播組的聲明。
(4) 交換機會把一個端口的注冊信息向其他端口廣播,同時多播注冊信息將沿生成樹進行廣播。
6. 四種多播方式的對比分析
    在表1 中對上述四種多播通信方式進行了對比。除VLAN 外,其他幾種多播方式都是針對多播通信特點設(shè)計的多播解決方案,它們本質(zhì)上都是通過某種方法來構(gòu)建二層的多播樹,并減少網(wǎng)絡(luò)上不必要的數(shù)據(jù)傳輸。雖然在控制領(lǐng)域有不少學者提出用VLAN 來解決交換式工業(yè)以太網(wǎng)中的多播問題,但通過第2 小節(jié)的分析可知,VLAN 并不是多播通信的理想解決辦法。它只適合具有較少“生產(chǎn)者-消費者”數(shù)據(jù)組成員個數(shù)的控制網(wǎng)絡(luò),而且不同VLAN 之間的通信應(yīng)限制在一定流量內(nèi),因為它們必須通過路由器轉(zhuǎn)發(fā),當不同VLAN 之間的通信流量較大時,路由器就會成為控制網(wǎng)絡(luò)中的通信瓶頸。因此用VLAN 來實現(xiàn)多播的應(yīng)限制在小型的控制網(wǎng)絡(luò)中。
[align=center] 表1 四種多播方式的對比[/align]
    使用CGMP 協(xié)議時,由路由器根據(jù)接收到的IGMP 報文構(gòu)建CGMP 報文然后再發(fā)送給交換機進行二層多播配置,因此在使用CGMP 協(xié)議時,多播路由器是必須的設(shè)備。當使用IP 竊聽時,由于交換機可以代替多播路由器來解析IGMP 信息,通過適當?shù)呐渲?,進行多播配置時可以不需要路由器的介入,而由交換機代理路由器的相關(guān)功能。IGMP 竊聽方法和CGMP 協(xié)議的提出都是源于互聯(lián)網(wǎng)上多媒體通信快速增長的需要,它們在構(gòu)建二層的多播樹時都利用了三層網(wǎng)絡(luò)上的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)絡(luò)接口卡和協(xié)議棧也必須提供對GMRP 的支持,但現(xiàn)有設(shè)備和系統(tǒng)的協(xié)議棧對GMRP 的支持并不充分。
    因此在工業(yè)交換式以太網(wǎng)中,目前可考慮采用CGMP 或IP 竊聽來解決實時數(shù)據(jù)的多播問題,待工作站的接口卡和系統(tǒng)的協(xié)議棧對GMRP 做出相應(yīng)改進后,逐漸過渡到使用GMRP來解決二層控制網(wǎng)絡(luò)中的多播問題。
7. 總結(jié)
    本文分析了工業(yè)控制網(wǎng)絡(luò)中的數(shù)據(jù)通信特點:即存在大量多播數(shù)據(jù),并介紹了目前交換式以太網(wǎng)中比較常用的四種多播方法:VLAN,IGMP 竊聽,CGMP,GMRP,對它們的特點進行了對比分析,指出了各自的使用范圍。另一方面,由于交換機的學習注冊過程需要一定時間,如果在這段時間內(nèi)傳送數(shù)據(jù),對于未知的多播地址,交換機仍然以廣播的方式發(fā)送數(shù)據(jù),依然會導致廣播風暴,引起控制網(wǎng)絡(luò)的不穩(wěn)定性。因此在各工作站正式通信前,有必要引入一個學習期,使各個站點有足夠的時間進行多播地址的注冊,在這段時間內(nèi),交換機也可以學習各個工作站的單播地址,從而在正式傳送控制數(shù)據(jù)時盡可能地減少網(wǎng)絡(luò)上的廣播數(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:http://www.cisco.com/. 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
表1 四種多播方式的對比[/align]
    使用CGMP 協(xié)議時,由路由器根據(jù)接收到的IGMP 報文構(gòu)建CGMP 報文然后再發(fā)送給交換機進行二層多播配置,因此在使用CGMP 協(xié)議時,多播路由器是必須的設(shè)備。當使用IP 竊聽時,由于交換機可以代替多播路由器來解析IGMP 信息,通過適當?shù)呐渲?,進行多播配置時可以不需要路由器的介入,而由交換機代理路由器的相關(guān)功能。IGMP 竊聽方法和CGMP 協(xié)議的提出都是源于互聯(lián)網(wǎng)上多媒體通信快速增長的需要,它們在構(gòu)建二層的多播樹時都利用了三層網(wǎng)絡(luò)上的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)絡(luò)接口卡和協(xié)議棧也必須提供對GMRP 的支持,但現(xiàn)有設(shè)備和系統(tǒng)的協(xié)議棧對GMRP 的支持并不充分。
    因此在工業(yè)交換式以太網(wǎng)中,目前可考慮采用CGMP 或IP 竊聽來解決實時數(shù)據(jù)的多播問題,待工作站的接口卡和系統(tǒng)的協(xié)議棧對GMRP 做出相應(yīng)改進后,逐漸過渡到使用GMRP來解決二層控制網(wǎng)絡(luò)中的多播問題。
7. 總結(jié)
    本文分析了工業(yè)控制網(wǎng)絡(luò)中的數(shù)據(jù)通信特點:即存在大量多播數(shù)據(jù),并介紹了目前交換式以太網(wǎng)中比較常用的四種多播方法:VLAN,IGMP 竊聽,CGMP,GMRP,對它們的特點進行了對比分析,指出了各自的使用范圍。另一方面,由于交換機的學習注冊過程需要一定時間,如果在這段時間內(nèi)傳送數(shù)據(jù),對于未知的多播地址,交換機仍然以廣播的方式發(fā)送數(shù)據(jù),依然會導致廣播風暴,引起控制網(wǎng)絡(luò)的不穩(wěn)定性。因此在各工作站正式通信前,有必要引入一個學習期,使各個站點有足夠的時間進行多播地址的注冊,在這段時間內(nèi),交換機也可以學習各個工作站的單播地址,從而在正式傳送控制數(shù)據(jù)時盡可能地減少網(wǎng)絡(luò)上的廣播數(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:http://www.cisco.com/. 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)版權(quán)與免責聲明:凡本網(wǎng)注明[來源:傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為傳動網(wǎng)(www.surachana.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責任。
相關(guān)資訊
產(chǎn)品新聞
更多>2025-10-31
2025-10-22
2025-10-17
2025-10-11
2025-10-09
2025-09-23