專利名稱:數據在虛擬局域網中定向傳播的方法
技術領域:
本發明涉及虛擬局域網技術領域,特別是指一種組播數據在虛擬局域網(VLAN)中定向傳播的方法。
背景技術:
目前,劃分VLAN的常用方法是根據以太網交換機的端口進行劃分,屬于同一VLAN的端口可以不連續,也可以跨越數個以太網交換機。比如有兩個交換機--交換機1和交換機2,每個交換機有若干個端口,每個端口又可連接多個主機,可將交換機1的1~6端口和交換機2的1~4端口劃分為同一VLAN。通常,一個VLAN中的多個端口通過一個VLAN接口與外界通訊,所以只需為VLAN接口配置一個IP地址,即可實現VLAN整體與外部的通訊。
當VLAN與外部通訊時,外部數據傳送到VLAN接口上,由于VLAN接口對應若干個物理端口,因此,傳送到VLAN接口上的數據將從這些端口轉發下去,即外部傳送過來的信息將會在VLAN內進行廣播,使VLAN內各端口下的主機對數據共享,而不會將傳入的數據僅發向某個具體的端口。VLAN與局域網(LAN)相比,克服了地域的限制,可以劃分在不同交換機的端口上。但因此,當外部傳送過來的數據量較大時,這些數據在VLAN內的廣播可能涉及到不止一臺的交換機,因此會占用大量的帶寬資源。
舉例來說,假設VLAN內某端口下的一主機加入了某個組播組。這里所述的組播組,是采用了組地址的概念,把需要接收相同數據的用戶編入一個組即組播組中,因此組播源發送的數據包的目的地址不是一個而是一組,形成組地址,所有加入該組的成員,都能接收到流向該組地址的數據。同時,根據多播路由協議,如果一個VLAN端口下的某個主機加入一個組播組,則該VLAN將整體作為一個分支加入多播樹。因此,發給此組播組的組播數據會在VLAN內廣播,VLAN內所有的端口都會收到并轉發該組播數據。VLAN各個端口下的主機可能加入不同的組播組,在這種情況下,VLAN內會有大量組播數據的傳播,由于VLAN包含的各端口常常跨越數個以太網交換機,在組播數據進行廣播時,必然占用大量網絡帶寬,使得可使用的帶寬將急劇下降。另一方面,由于數據被廣播,這些數據可能會被其他非法成員利用,形成安全隱患。
發明內容
有鑒于此,本發明的主要目的在于提供一種數據在VLAN中定向傳播的方法,使組播數據在VLAN中僅定向發送至含有該組播組主機的端口。
實現本發明,需要以下步驟1)在VLAN接口上設置一個存儲結構,存儲結構采用端口鏈表,該端口鏈表設置有用來標識VLAN中各端口的端口索引(PortIndex)、用來標識端口下所含組播組的組鏈表(Group)、用來標識端口所在VLAN的虛擬局域網識別號(VLAN ID)、用來標識端口的狀態的端口參數(Parameter),其中,Group表中還設置有用來標識組播組地址的組播組地址(Address)、用來描述該組剩余多長時間超時的組超時時間(time)。
2)VLAN內廣播查詢報文,屬于組播組的主機通過與之相連的VLAN端口返回應答報文。
3)VLAN接口收到主機應答報文后,記錄端口與組播組的對應關系在端口鏈表中查找到標識為收到響應報文端口的PortIndex,然后在該PortIndex對應的Group表中的Address下插入該端口下發送響應報文主機所屬組播組的地址。
4)當VLAN接口接收到組播數據后,根據當前組播數據中的組播組地址,以及VLAN接口中所記錄的端口與組播組之間的對應關系,將當前的組播數據發向含有該組播組主機的端口。
該方法進一步包括VLAN接口在VLAN內周期性廣播查詢報文,屬于組播組的主機返回應答報文的時間超過端口鏈表中該主機所在端口索引下Group表中對應的該組播組的Time值;或,屬于組播組的主機通過與之相連的端口返回離開報文,則認為這個主機退出該組播組。當VLAN端口下所有屬于同一組播組的主機退出該組播組時,刪除該端口與該組播組的對應關系在組播組鏈表的PortIndex對應的Group鏈表中,刪除Address中所退出的組播組地址。
由上述方法可以看出,本發明在VLAN中,對組播組成員的管理對應到VLAN的每個端口,即根據屬于組播組的主機通過與之相連的端口返回信息,建立起端口與組播組的關系;VLAN收到對應該組播組的數據時,只向與該組播組有關系的端口發送這些組播數據,避免了VLAN中與該組播組無關的端口收到不必要的組播數據報文,從而節省了網絡帶寬,提高安全性。
圖1為VLAN組網的一實施例示意圖。
圖2為本發明中在VLAN接口上設置的端口鏈表結構示意圖。
具體實施例方式
本發明的核心思想是在VLAN接口上設置一個存儲VLAN中每個端口信息的存儲結構,以實現數據在VLAN中的定向傳播。
圖1是VLAN組網的一實施例示意圖,如圖1所示,以太網交換機端口1和端口2處于同一個VLAN內,每個端口可以直接連主機,也可以通過二層交換機連接主機。
以組播組數據在圖1所示VLAN中定向傳播為例。本實施例中,所設置的存儲結構采用端口鏈表,且該端口鏈表為雙向循環鏈表;假設當前有且僅有主機A加入了一個組播組。那么,參照圖1所示,組播組數據在VLAN中定向傳播主要包括以下的步驟步驟1在VLAN接口上運行IGMP協議,IGMP查詢報文在該VLAN內廣播,從端口1、端口2分別發送給各自端口下的主機A、B、C;同時,IGMP設置并初始化端口鏈表的結構查找接口下所有的端口,在VLAN接口數據結構中添加端口鏈表。圖2為端口鏈表結構圖。如圖2所示,端口鏈表包括端口參數(Parameter)、端口索引(PortIndex)、組鏈表(Group)、虛擬局域網識別號(VLAN ID)等。其中,Parameter中含有VLAN的端口狀態參數等,用來說明各端口的狀態;PortIndex是端口的索引,以標識VLAN中的各個端口;Group表是端口鏈表的一個子表,用來說明所VLAN各端口含有哪些組播組,Group表進一步包括組播組地址(Address)、組超時時間(Time)等,Group表是雙向循環鏈表;VLAN ID用來標識此端口屬于哪個VLAN。
步驟2主機A、B、C收到IGMP報文后,由于主機A加入了組播組,所以只有主機A從以太網交換機端口1返回IGMP應答報文。
步驟3以太網交換機從端口1收到主機A的IGMP應答報文后,更新VLAN當前端口鏈表的內容在端口鏈表中查找到標識為端口1的PortIndex,然后在這個PortIndex對應的Group表中的Address下插入主機A所加入的組播組地址,從而建立端口1與該組播組之間的關系。
在端口鏈表建立起端口和組播組的關系后,若有組播組數據發送過來時,查找VLAN接口的端口鏈表,若在PortIndex對應的Group表中的Address找到該組播組地址,組播數據就向該PortIndex所標識的端口轉發,否則就不向該端口轉發。在本實施例中,只有端口1下的主機A加入了組播組,端口鏈表中只有端口1與主機A所屬組播組之間的關系,那么,當有發向該組播組的組播數據時,僅端口1會轉發當前的組播數據,而在同一VLAN下的端口2不再轉發當前的組播數據。
步驟4當主機A退出組播組時,主機A會發送離開報文到端口1,VLAN從端口1收到該報文后,更新其端口鏈表內容,具體的做法是在端口鏈表中查找到標識為端口1的PortIndex,然后在這個PortIndex對應的Group表中的Address下刪除主機A所退出的組播組地址。
主機A退出組播組時,也可以不發離開報文,VLAN可通過周期性的檢測來獲知主機A的退出。具體做法是VLAN接口定時在VLAN內廣播IGMP查詢報文,主機A在未退出時,會立即返回應答報文,那么,一旦主機A響應的時間超過端口鏈表下標識為端口1的PortIndex對應的Group表中該組播組的Time值,即這段時間內沒有收到主機A的應答報文,則認為主機A沒有回應,已經退出了該組播組,此時同樣按上面所述的方法更新端口鏈表內容。
在實際應用中,更多的是一個以太網交換機端口下連接不僅一個主機,這些主機都會加入同一組播組,此時,如果有主機離開,首先向該端口發送特定組查詢,如果這個端口下還有其它主機需要接收數據的話,這些主機就會發送IGMP應答報文,這樣端口認為端口下還有主機處于此組播組中,并不刪除端口上的多播組。僅當這個端口下所有的主機都退出該組播組時,即沒有主機返回應答報文時,才執行以上步驟4,對端口鏈表進行更新。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
權利要求
1.一種組播數據在虛擬局域網(VLAN)中定向傳播的方法,其特征在于該方法包括以下步驟A、在VLAN接口上設置一個存儲結構;B、VLAN內廣播查詢報文,屬于組播組的主機通過與之相連的VLAN端口返回應答報文;C、VLAN接口收到主機應答報文后,在步驟A所設置的存儲結構中記錄端口與組播組的對應關系;D、當VLAN接口接收到組播數據后,根據當前組播數據中的組播組地址,以及VLAN接口中所記錄的端口與組播組之間的對應關系,將當前的組播數據發向含有該組播組主機的端口。
2.根據權利要求1所述的方法,其特征在于步驟A所述存儲結構是端口鏈表,該方法進一步包括設置該端口鏈表中至少包括用來標識VLAN中每個端口的端口索引(PortIndex)、用來標識端口下所含組播組的組鏈表(Group);該Group表中還設置有用來標識組播組地址的組播組地址(Address)。
3.根據權利要求2所述的方法,其特征在于所述端口鏈表中進一步設置有用來標識端口所在VLAN的虛擬局域網識別號(VLAN ID)、用來標識端口的狀態的端口參數(Parameter)。
4.根據權利要求2所述的方法,其特征在于所述組鏈表中進一步設置有用來描述該組剩余多長時間超時的組超時時間(time)。
5.根據權利要求2所述的方法,其特征在于步驟C中所述記錄端口與組播組對應關系的方法進一步包括在端口鏈表中查找到標識為收到響應報文端口的PortIndex,然后在該PortIndex對應的Group表中的Address下插入該端口下發送響應報文主機所屬組播組的地址。
6.根據權利要求1所述的方法,其特征在于該方法進一步包括一個VLAN端口下所有屬于同一組播組的主機退出該組播組時,刪除該端口與該組播組的對應關系。
7.根據權利要求6所述的方法,其特征在于所述刪除端口與組播組對應關系的方法進一步包括在組播組鏈表的PortIndex對應的Group鏈表中,刪除Address中所退出的組播組地址。
8.根據權利要求6所述的方法,其特征在于確定每個主機退出該組播組的方法進一步包括VLAN接口在VLAN內周期性廣播查詢報文,屬于組播組的主機返回應答報文的時間超過端口鏈表中該主機所在端口索引下Group表中對應的該組播組的Time值。
9.根據權利要求6所述的方法,其特征在于確定每個主機退出該組播組的方法進一步包括屬于組播組的主機通過與之相連的端口返回離開報文。
全文摘要
本發明公開了一種組播數據在虛擬局域網(VLAN)中定向傳播的方法,包括以下步驟A)在VLAN接口上設置一個存儲結構;B)VLAN內廣播查詢報文,屬于組播組的主機通過與之相連的VLAN內某端口返回應答報文;C)VLAN接口收到主機應答報文后,在步驟A所設置的存儲結構中記錄端口與組播組的對應關系;D)當VLAN接口接收到組播數據后,根據當前組播數據中的組播組地址,以及VLAN接口中所記錄的端口與組播組之間的對應關系,將當前的組播數據發向含有該組播組主機的端口。應用本發明的方法,可實現傳入VLAN的組播數據僅發向含有該組播組的端口。
文檔編號H04L12/24GK1540935SQ03127938
公開日2004年10月27日 申請日期2003年4月25日 優先權日2003年4月25日
發明者趙輝, 趙 輝 申請人:華為技術有限公司