專利名稱:基于多網(wǎng)絡端口實現(xiàn)負載分擔的方法和裝置的制作方法
技術領域:
本發(fā)明涉及負載分擔技術,特別涉及一種基于多網(wǎng)絡端口實現(xiàn)負載分擔的方法、 以及一種基于多網(wǎng)絡端口實現(xiàn)負載分擔的裝置。
背景技術:
現(xiàn)有技術中例如EC (Encoder,視頻編碼器)等能夠提供流數(shù)據(jù)的終端設備,通常會具有至少兩個用于連接交換設備的網(wǎng)絡端口,并由此形成與交換設備之間的至少兩條鏈路。對于具有至少兩條鏈路的組網(wǎng)方式,現(xiàn)有技術中提供了一種端口聚合技術、并希望以此在至少兩條鏈路上實現(xiàn)負載分擔。但是,現(xiàn)有技術中所提供的上述終端設備通常都不支持端口聚合的特性,因而導致上述終端設備與交換設備之間無法實現(xiàn)負載分擔。而且,由于終端設備的至少兩個網(wǎng)絡端口之間互通,因此,為了避免互通的至少兩個網(wǎng)絡端口與交換設備構成環(huán)路、并引發(fā)廣播風暴,只能保留一個網(wǎng)絡端口與交換設備之間的鏈路開啟、并利用STP特性將其余網(wǎng)絡端口與交換設備之間的鏈路關閉。當開啟的鏈路發(fā)生故障后,再利用STP切換出一條新開啟的鏈路。對于某些對于流量連續(xù)性較為敏感的情況,STP較長的切換時間無法滿足要求,此時,就需要利用毫秒級切換的Smart-link特性??梢姡F(xiàn)有技術對于不支持端口聚合特性的終端設備不但無法實現(xiàn)負載分擔,而且,還必須采用例如Smart-link等其他特性來避免引發(fā)廣播風暴。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種基于多網(wǎng)絡端口實現(xiàn)負載分擔的方法、以及一種基于多網(wǎng)絡端口實現(xiàn)負載分擔的裝置,能夠使不支持網(wǎng)絡端口聚合的終端設備實現(xiàn)負載分擔。本發(fā)明提供的一種基于多網(wǎng)絡端口實現(xiàn)負載分擔的方法,該方法應用于可提供流數(shù)據(jù)的終端設備中,該終端設備包括至少兩個網(wǎng)絡端口和一內(nèi)部端口,所述至少兩個網(wǎng)絡端口與終端設備外的同一臺交換設備相連,一個內(nèi)部端口與終端設備內(nèi)的處理器相連;至少兩個網(wǎng)絡端口被分別劃分至不同的VLAN、一個內(nèi)部端口被同時劃分至所有網(wǎng)絡端口所屬的VLAN ;且,該方法包括al、將從任一網(wǎng)絡端口接收的來自流目的端的流數(shù)據(jù)請求報文從內(nèi)部端口轉發(fā)至處理器;其中,流數(shù)據(jù)請求報文能夠通過攜帶一負載分擔標識來表示其請求的流數(shù)據(jù)需要負載分擔,以使處理器根據(jù)該標識決定是否進行負載分擔、并在決定進行負載分擔的流數(shù)據(jù)封裝報文中攜帶VLAN標記頭;a2、在流數(shù)據(jù)封裝報文中攜帶有VLAN標記頭時,將流數(shù)據(jù)封裝報文攜帶的VLAN標記頭剝除后從屬于對應VLAN的網(wǎng)絡端口轉發(fā)。所述步驟a2進一步在流數(shù)據(jù)封裝報文中未攜帶所述VLAN標記頭時,將流數(shù)據(jù)封裝報文通過查找MAC轉發(fā)表從對應的網(wǎng)絡端口轉發(fā)。該方法在所 述步驟al之前進一步包括a0、將從內(nèi)部端口接收的注冊請求報文通過查找MAC轉發(fā)表從對應的網(wǎng)絡端口轉發(fā);其中,該注冊請求報文中攜帶用于表示終端設備支持負載分擔的信息、以允許流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。該方法在所述步驟aO之后進一步包括b0、在所有網(wǎng)口端口中僅有一個可用時, 將從內(nèi)部端口接收的故障通告報文通過查找MAC轉發(fā)表從僅有的一個可用的網(wǎng)絡端口轉發(fā);其中,該故障通告報文中攜帶用于表示終端設備不支持負載分擔的信息、以禁止流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。本發(fā)明提供的一種基于多網(wǎng)絡端口實現(xiàn)負載分擔的裝置,該裝置承載于可提供流數(shù)據(jù)的終端設備中,該終端設備包括至少兩個網(wǎng)絡端口以及一個內(nèi)部端口,所述至少兩個網(wǎng)絡端口與終端設備外的同一臺交換設備相連,一個內(nèi)部端口與終端設備內(nèi)的處理器相連;至少兩個網(wǎng)絡端口被分別劃分至不同的VLAN、一個內(nèi)部端口被同時劃分至所有網(wǎng)絡端口所屬的VLAN ;且,該裝置包括請求轉發(fā)模塊,將從任一網(wǎng)絡端口接收的來自流目的端的流數(shù)據(jù)請求報文從內(nèi)部端口轉發(fā)至處理器;其中,流數(shù)據(jù)請求報文能夠通過攜帶一負載分擔標識來表示其請求的流數(shù)據(jù)需要負載分擔,以使處理器根據(jù)該標識決定是否進行負載分擔、并在決定進行負載分擔的流數(shù)據(jù)封裝報文中攜帶VLAN標記頭;數(shù)據(jù)轉發(fā)模塊,在流數(shù)據(jù)封裝報文中攜帶有VLAN標記頭時,將流數(shù)據(jù)封裝報文攜帶的VLAN標記頭剝除后從屬于對應VLAN的網(wǎng)絡端口轉發(fā)。所述數(shù)據(jù)轉發(fā)模塊進一步在流數(shù)據(jù)封裝報文中未攜帶所述VLAN標記頭時將流數(shù)據(jù)封裝報文通過查找MAC轉發(fā)表從對應的網(wǎng)絡端口轉發(fā)。該裝置進一步包括注冊轉發(fā)模塊,將從內(nèi)部端口接收的注冊請求報文通過查找 MAC轉發(fā)表從對應的網(wǎng)絡端口轉發(fā);其中,該注冊請求報文中攜帶用于表示終端設備支持負載分擔的信息、以允許流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。該裝置進一步包括通告轉發(fā)模塊,在所有網(wǎng)口端口中僅有一個可用時,將從內(nèi)部端口接收的故障通告報文通過查找MAC轉發(fā)表從僅有的一個可用的網(wǎng)絡端口轉發(fā);其中, 該故障通告報文中攜帶用于表示終端設備不支持負載分擔的信息、以禁止流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。本發(fā)明提供的一種基于多網(wǎng)絡端口實現(xiàn)負載分擔的方法,該方法用于終端設備向服務器提供流數(shù)據(jù),所述終端設備具有至少兩個網(wǎng)絡端口,所述至少兩個網(wǎng)絡端口與同一臺用于實現(xiàn)服務器與終端設備交互的交換設備相連;至少兩個網(wǎng)絡端口被分別劃分至不同的VLAN ;且,該方法包括Al、接收服務器通過交換設備發(fā)送至任一網(wǎng)絡端口的流數(shù)據(jù)請求報文;其中,流數(shù)據(jù)請求報文能夠通過攜帶一負載分擔標識來表示其請求的流數(shù)據(jù)需要負載分擔;A2、在流數(shù)據(jù)請求報文中攜帶有所述負載分擔標識時,在封裝得到的流數(shù)據(jù)封裝報文中攜帶VLAN標記頭、并通過該VLAN標記頭對應的VLAN發(fā)送至屬于該VLAN的網(wǎng)絡端口、再將VLAN標記頭剝除后從該網(wǎng)絡端口通過交換設備向服務器轉發(fā)。所述步驟A2進一步在流數(shù)據(jù)請求報文中未攜帶所述負載分擔標識時,將封裝得到的流數(shù)據(jù)封裝報文通過查找MAC轉發(fā)表發(fā)送至對應的網(wǎng)絡端口、再從該網(wǎng)絡端口通過交換設備向服務器轉發(fā)。該方法在所述步驟Al之前進一步包括A0、將生成的注冊請求報文通過查找MAC 轉發(fā)表發(fā)送至對應的網(wǎng)絡端口、再從該網(wǎng)絡端口通過交換設備向服務器轉發(fā);其中,該注冊請求報文中攜帶用于表示終端設備支持負載分擔的信息、以允許流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。該方法在所述步驟AO之后進一步包括B0、在所有網(wǎng)口端口中僅有一個可用時, 將生成的故障通告報文通過查找MAC轉發(fā)表發(fā)送至僅有的一個可用的網(wǎng)絡端口、并從該網(wǎng)絡端口通過交換設備向服務器轉發(fā);其中,該故障通告報文中攜帶用于表示終端設備不支持負載分擔的信息、以禁止流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。本發(fā)明提供的一種基于多網(wǎng)絡端口實現(xiàn)負載分擔的系統(tǒng),該系統(tǒng)包括服務器、用于向服務器提供流數(shù)據(jù)的終端設備、以及用于實現(xiàn)服務器與終端設備交互的交換設備,所述終端設備具有至少兩個網(wǎng)絡端口、所述至少兩個網(wǎng)絡端口與同一臺交換設備相連;至少兩個網(wǎng)絡端口被分別劃分至不同的VLAN ;服務器,用于向交換設備發(fā)送流數(shù)據(jù)請求報文;其中,流數(shù)據(jù)請求報文能夠通過攜帶一負載分擔標識來表示其請求的流數(shù)據(jù)需要負載分擔;交換設備,用于將流數(shù)據(jù)請求報文發(fā)送至終端設備的任一網(wǎng)絡端口 ;終端設備,用于在流數(shù)據(jù)請求報文中攜帶有所述負載分擔標識時,在封裝得到的流數(shù)據(jù)封裝報文中攜帶VLAN標記頭、并通過該VLAN標記頭對應的VLAN發(fā)送至屬于該VLAN 的網(wǎng)絡端口、再將VLAN標記頭剝除后從該網(wǎng)絡端口通過交換設備向服務器轉發(fā)。終端設備進一步在流數(shù)據(jù)請求報文中未攜帶所述負載分擔標識時,將封裝得到的流數(shù)據(jù)封裝報文通過查找MAC轉發(fā)表發(fā)送至對應的網(wǎng)絡端口、再從該網(wǎng)絡端口通過交換設備向服務器轉發(fā)。終端設備進一步在接收流數(shù)據(jù)請求報文之前將生成的注冊請求報文通過查找MAC 轉發(fā)表發(fā)送至對應的網(wǎng)絡端口、再從該網(wǎng)絡端口通過交換設備向服務器轉發(fā);其中,該注冊請求報文中攜帶用于表示終端設備支持負載分擔的信息、以允許流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。終端設備進一步在所有網(wǎng)口端口中僅有一個可用時將生成的故障通告報文通過查找MAC轉發(fā)表發(fā)送至僅有的一個可用的網(wǎng)絡端口、并從該網(wǎng)絡端口通過交換設備向服務器轉發(fā);其中,該故障通告報文中攜帶用于表示終端設備不支持負載分擔的信息、以禁止流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。由上述技術方案可見,在本發(fā)明中,至少兩個網(wǎng)絡端口連接外部交換設備、并被劃分至不同的VLAN,能夠利用不同VLAN對各網(wǎng)絡端口的隔離避免各網(wǎng)絡端口與外部交換設備構成環(huán)路、從而能夠避免由環(huán)路導致的廣播風暴,而且,還能夠利用對應的VLAN與任意網(wǎng)絡端口之間實現(xiàn)轉發(fā)。這樣,對于正常的轉發(fā),仍可以通過查找MAC轉發(fā)表的常規(guī)方式來實現(xiàn);而對于需要負載分擔的轉發(fā),則可以通過在對應的VLAN內(nèi)的強行轉發(fā)來實現(xiàn)。如此一來,無需利用Smart-link、端口聚合等相關特性即可實現(xiàn)可靠的負載分擔。
圖Ia至圖Ie為本發(fā)明實施例中的原理性示意圖;圖2為本發(fā)明實施例中實現(xiàn)負載分擔的方法的示例性流程示意圖;圖3為針對如圖2所示流程的表項學習過程的流程示意圖;圖4為針對如圖2所示流程的能力通告過程的流程示意圖;圖5為針對如圖2所示流程的故障通告過程的流程示意圖。
具體實施例方式為使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明進一步詳細說明。圖Ia至圖Ie為本發(fā)明實施例中的原理性示意圖。在圖Ia至圖Ie中例如EC等可提供流數(shù)據(jù)的終端設備內(nèi)設置有一交換芯片。該交換芯片為終端設備提供至少兩個網(wǎng)絡端口 Pl Pn (η為大于1的正整數(shù))、以及一個內(nèi)部端口 Ρ0。至少兩個網(wǎng)絡端口 Pl Pn分別屬于不同的VLANl VLANn、并與終端設備外的同一臺交換設備上的對應端口 SPl SPn相連,即,每個網(wǎng)絡端口 Pi屬于對應的VLANi (i為大于等于1且小于等于η的正整數(shù))、并與交換設備上的對應端口 SPi相連。這樣,由于分屬于不同VLAN的網(wǎng)絡端口 Pl Pn網(wǎng)絡端口之間相互隔離,因此,即便交換設備上的任意端口 SPi向?qū)木W(wǎng)絡端口 Pi發(fā)送了廣播報文,對應的網(wǎng)絡端口 Pi接收到的廣播報文也不會從其他網(wǎng)絡端口再向交換設備轉發(fā),從而避免與網(wǎng)絡端口 Pl Pn與交換設備構成環(huán)路、以及由環(huán)路導致的廣播風暴。一個內(nèi)部端口 PO同時屬于所有網(wǎng)絡端口 Pl Pn所屬的VLANl VLANn、并與終端設備內(nèi)的處理器相連。這樣,可以由處理器通過內(nèi)部端口 PO進行ARP學習、并保證內(nèi)部端口 PO能夠利用對應的VLANi與任意網(wǎng)絡端口 Pi之間實現(xiàn)轉發(fā)。終端設備上電后,請先后參見圖Ia和圖Ib 1)處理器中尚未學習到任何三層的ARP表項,因此,向交換芯片的內(nèi)部端口 PO發(fā)送以終端設備MAC地址為源地址的ARP請求報文;其中,由于此時的交換芯片也尚未學習到任何二層的MAC轉發(fā)表項,因此,ARP請求報文的源地址為終端設備MAC地址、目的地址為廣播地址;2)交換芯片從內(nèi)部端口 PO接收到處理器發(fā)送的ARP請求報文、并在內(nèi)部端口 PO 學習ARP請求報文的源地址,即,依據(jù)內(nèi)部端口 PO的索引、以及終端設備MAC地址建立下行方向MAC轉發(fā)表項(本文所述的“下行方向”是指從交換設備側至終端設備側的方向)。以及,交換芯片依據(jù)作為ARP請求報文的目的地址的廣播地址,將ARP請求報文依次從各網(wǎng)絡端口 PO Pn轉發(fā)。3)由于ARP請求報文是依次從各網(wǎng)絡端口 PO Pn轉發(fā),因而交換設備的對應端口 SPl SPn接收ARP請求報文的時間存在一定的間隔。那么,如果交換設備的對應端口 SPl SPn未進行聚合,則最終會在最后一個接收到ARP請求報文的端口 SPi上學習到終端設備MAC地址;如果交換設備的對應端口 SPl SPn被聚合,則會在聚合的邏輯端口上學習到終端設備MAC地址。4)交換設備將ARP請求報文繼續(xù)廣播,使ARP請求報文最終能夠到達流目的端。 其中,對于終端設備與例如VM(Vide0 Management,視頻管理)服務器等需要獲取流數(shù)據(jù)的
8服務器處于同一 IP網(wǎng)段的情況,流目的端可以就是該服務器;而對于終端設備與服務器處于不同IP網(wǎng)斷的情況,流目的端可以是網(wǎng)關。5)交換設備接收到來自流目的端的ARP響應報文,該ARP響應報文的源地址為流目的端MAC地址、目的地址為終端設備MAC地址。如果交換設備的對應端口 SPl SPn未進行聚合,則交換設備利用其最終學習到終端設備MAC地址的對應端口 SPi將ARP響應報文向終端設備轉發(fā);如果交換設備的對應端口 SPl SPn被聚合,則交換設備利用預定的算法任選一個對應端口 SPi將ARP響應報文向終端設備轉發(fā)。6)交換芯片從對應于對應端口 SPi的任一網(wǎng)絡端口 Pi接收ARP響應報文、并在接收ARP響應報文的網(wǎng)絡端口 Pi學習ARP響應報文的源地址,即,依據(jù)接收ARP響應報文的網(wǎng)絡端口 Pi的索弓丨、以及流目的端MAC地址建立上行方向MAC轉發(fā)表項(本文所述的“上行方向”是指從終端設備側至交換設備側的方向)。以及,由于ARP響應報文的目的地址為終端設備MAC地址,因此,利用已建立的與內(nèi)部端口 PO對應的下行方向MAC轉發(fā)表項即可將ARP響應報文從內(nèi)部端口 PO轉發(fā)至處理器。7)處理器利用ARP響應報文進行三層的ARP學習、建立ARP表項。經(jīng)過上述如圖Ia和圖Ib所示的過程,即實現(xiàn)了交換芯片中二層的MAC轉發(fā)表項的學習、以及處理器中三層的ARP表項的學習?;诮粨Q芯片中學習到的二層的MAC轉發(fā)表項、以及處理器中學習到的三層的 ARP表項,即交換芯片即可利用學習到流目的端MAC地址的網(wǎng)絡端口 Pi實現(xiàn)正常的流數(shù)據(jù)轉發(fā);而且,基于交換芯片內(nèi)劃分的各VLAN、以及處理器中學習到的三層的ARP表項,交換芯片還能夠利用未學習到流目的端MAC地址的其他網(wǎng)絡端口 Pj實現(xiàn)負載分擔的流數(shù)據(jù)轉發(fā)。為了使需要獲得流數(shù)據(jù)的服務器能夠獲知終端設備具有負載分擔的能力、并觸發(fā)終端設備的負載分擔,還需要通過優(yōu)化現(xiàn)有的注冊機制來實現(xiàn)終端設備上報其具有負載分擔的能力,請再參見圖Ic 8)處理器發(fā)送以流目的端MAC地址為目的地址的注冊請求報文,該注冊請求報文中攜帶用于表示終端設備支持負載分擔的信息、以允許服務器在流數(shù)據(jù)請求報文中攜帶用于表示需要負載分擔的負載分擔標識。9)、交換芯片在其內(nèi)部端口 PO接收到注冊請求報文后,能夠利用其目的地址、即流目的端MAC地址查找到與網(wǎng)絡端口 Pi對應的上行方向MAC轉發(fā)表項,并依據(jù)查找到的上行方向MAC轉發(fā)表項將注冊請求報文從對應的網(wǎng)絡端口 Pi轉發(fā)。10)、由于服務器能夠獲知終端設備具有負載分擔的能力,因此,服務器既可以發(fā)送常規(guī)的流數(shù)據(jù)請求報文、以使終端設備實現(xiàn)正常的轉發(fā),也可以發(fā)送攜帶有負載分擔標識的流數(shù)據(jù)請求報文、以使終端設備實現(xiàn)負載分擔的轉發(fā)。依據(jù)服務器的要求,終端設備即可實現(xiàn)正常轉發(fā)或負載分擔轉發(fā),具體實現(xiàn)方式請參見圖Id和圖Ie 11)交換設備從流目的端接收到需要獲得流數(shù)據(jù)的服務器的流數(shù)據(jù)請求報文,該流數(shù)據(jù)請求報文的源地址為流目的端MAC地址、目的地址為終端設備MAC地址。如果交換設備的對應端口 SPl SPn未進行聚合,則對于每次從流目的端接收到的流數(shù)據(jù)請求報文, 交換設備都會利用其最終學習到終端設備MAC地址的對應端口 SPi向終端設備轉發(fā);如果交換設備的對應端口 SPl SPn被聚合,則對于每次從流目的端接收到的流數(shù)據(jù)請求報文, 交換設備通常都會利用其之前在轉發(fā)ARP響應報文時選定的一個對應端口 SPi向終端設備轉發(fā)。12)交換芯片從其網(wǎng)絡端口 Pi接收流數(shù)據(jù)請求報文。其中,由于交換設備轉發(fā)流數(shù)據(jù)請求報文的對應端口 SPi與之前轉發(fā)ARP響應報文的對應端口 SPi通常是同一端口, 因此,交換芯片接收到流數(shù)據(jù)請求報文的網(wǎng)絡端口 Pi與之前接收ARP響應報文、并已學習到流目的端MAC地址的網(wǎng)絡端口 Pi通常也會是同一端口。那么,交換芯片利用流數(shù)據(jù)請求報文的目的地址、即終端設備MAC地址查找MAC轉發(fā)表,然后,依據(jù)查找到的與內(nèi)部端口 PO 對應的下行方向MAC轉發(fā)表項將流數(shù)據(jù)請求報文從內(nèi)部端口 PO轉發(fā)至處理器。13)處理器接收到流數(shù)據(jù)請求報文后獲知需要發(fā)送流數(shù)據(jù),并依據(jù)流數(shù)據(jù)請求中是否攜帶負載分擔標識來識別出需要發(fā)送的數(shù)據(jù)流是否負載分擔。對于不需要負載分擔的情況,處理器只需要按照常規(guī)方式,利用其學習到的ARP 轉發(fā)表項將來自流數(shù)據(jù)源的流數(shù)據(jù)封裝為流數(shù)據(jù)封裝報文,并設置流數(shù)據(jù)封裝報文的源地址為終端設備的MAC地址、目的地址為流目的端MAC地址。這樣,由于交換芯片中僅有一個網(wǎng)絡端口 Pi學習到了流目的端MAC地址,因此處理器按照常規(guī)方式封裝的流數(shù)據(jù)封裝報文能夠從網(wǎng)絡端口 Pi進行常規(guī)的轉發(fā)。對于需要負載分擔的情況,處理器仍需要按照上述的常規(guī)方式先封裝出流數(shù)據(jù)封裝報文,但還會進一步在流數(shù)據(jù)封裝報文中攜帶VLANj的Tag(標記)頭,以使攜帶VLANj 的Tag頭的流數(shù)據(jù)封裝報文能夠從其他網(wǎng)絡端口 Pj (j為大于等于1且小于等于η的正整數(shù)、j不等于i)轉發(fā)、以負載分擔。假設,服務器為VM服務器、網(wǎng)絡設備為EC,EC的網(wǎng)絡端口共有2個,其中一個學習到網(wǎng)關MAC地址、另一個未學習到網(wǎng)關MAC地址,VM服務器在接收到攜帶用于表示網(wǎng)絡設備支持負載分擔的信息的注冊請求報文后VM服務器收到向EC獲取實況視頻的請求1,如果EC此時尚沒有依據(jù)任何請求提供流數(shù)據(jù)封裝報文,則VM服務器發(fā)送不攜帶標記的常規(guī)的流數(shù)據(jù)請求報文1 ;VM服務器收到向EC獲取實況視頻的請求2,EC此時已針對流數(shù)據(jù)請求報文1提供流數(shù)據(jù)封裝報文,則VM服務器認為需要進行負載分擔,因此發(fā)送攜帶標記的表示需要負載分擔的流數(shù)據(jù)請求報文2 ;此后,VM服務器針對奇數(shù)次的請求發(fā)送常規(guī)的數(shù)據(jù)流請求報文、針對偶數(shù)次的請求發(fā)送表示需要負載分擔的流數(shù)據(jù)請求報文,以要求EC交替地利用學習到網(wǎng)關MAC地址的一個網(wǎng)絡端口實現(xiàn)正常的轉發(fā)、利用未學習到網(wǎng)關MAC地址的另一個網(wǎng)絡端口實現(xiàn)負載分擔的轉發(fā)。14)交換芯片從內(nèi)部端口 PO接收處理器發(fā)送的流數(shù)據(jù)封裝報文后,先判斷該流數(shù)據(jù)封裝報文是否攜帶有針對負載分擔標識的VLANj的Tag頭;在流數(shù)據(jù)封裝報文中未攜帶VLANj的Tag頭時,交換芯片利用流數(shù)據(jù)封裝報文的目的地址、即流目的端MAC地址查找MAC轉發(fā)表,然后,依據(jù)查找到的與Pi對應的上行方向 MAC轉發(fā)表項將流數(shù)據(jù)封裝報文從對應的網(wǎng)絡端口 Pi正常轉發(fā);在流數(shù)據(jù)封裝報文中攜帶有VLANj的Tag頭時,交換芯片利用流數(shù)據(jù)封裝報文的目的地址、即流目的端MAC地址無法查找到任何匹配的MAC轉發(fā)表項,因此,將流數(shù)據(jù)封裝報文從屬于對應VLANj的網(wǎng)絡端口 Pj強行轉發(fā),并且,在轉發(fā)之前還需要剝除流數(shù)據(jù)封裝報文攜帶的VLANj的Tag頭,以便于交換設備無需識別VLANj的Tag頭、并能夠按照常規(guī)方式對網(wǎng)絡端口 Pj轉發(fā)的流數(shù)據(jù)封裝報文進行處理。實際應用中,為了使內(nèi)部端口 PO能夠允許流數(shù)據(jù)封裝報文攜帶VLANj的Tag頭, 可以將內(nèi)部端口 PO設置為Trunk(干線)屬性或hybrid(混合)屬性;而為了使流數(shù)據(jù)封裝報文攜帶的VLANj的Tag頭能夠在轉發(fā)之前被剝除,可以將所有網(wǎng)絡端口 Pl Pn均設置為Access (接入)屬性。1 交換設備的對應端口 SPi或SPj在接收到流數(shù)據(jù)封裝報文,即可按照常規(guī)方式向流目的端轉發(fā)。如果交換設備的對應端口 SPl SPn未進行聚合,則在負載分擔的情況下,交換設備會從對應的端口 SPj接收到流數(shù)據(jù)封裝報文,此時,交換設備就會刪除在端口 SPi學習到的終端設備MAC地址、并在對應的端口 SPj重新學習終端設備MAC地址,即,交換設備需要進行終端設備MAC地址的刷新、使其最終學習到終端設備MAC地址的端口由SPi變更為SPj ;在此之后,交換設備在從流目的端接收到的流數(shù)據(jù)請求報文時,就會利用端口 SPj進行轉發(fā);相應地,交換芯片在接收到數(shù)據(jù)流請求報文的網(wǎng)絡端口 Pj不是已建立的上行方向MAC轉發(fā)表項所對應的網(wǎng)路端口 Pi時,同樣需要進行流目的端MAC地址的刷新、使其學習到流目的端MAC地址的網(wǎng)絡端口由Pi變更為Pj,即,刪除網(wǎng)絡端口 Pi所對應的上行方向MAC轉發(fā)表項,并依據(jù)接收到流數(shù)據(jù)請求報文的網(wǎng)絡端口 Pj的索引、以及作為流數(shù)據(jù)請求報文的源地址的流目的端MAC地址重新建立新的上行方向MAC轉發(fā)表項,那么,后續(xù)的正常轉發(fā)就是通過Pj來實現(xiàn)、而網(wǎng)絡端口 Pi則會用于負載分擔的轉發(fā)。也就是說,在交換設備的對應端口 SPl SPn未進行聚合的情況下,利用Pj進行負載分擔的流數(shù)據(jù)轉發(fā)通常會導致交換設備和交換芯片發(fā)生MAC地址刷新,但并不會影響負載分擔的實現(xiàn)。如果交換設備的對應端口 SPl SPn被聚合為一個邏輯端口,則在負載分擔的情況下,不會導致交換設備進行終端設備MAC地址的刷新;但即便如此,交換設備在轉發(fā)從流目的端接收到的流數(shù)據(jù)請求報文時,也仍有可能使用除在轉發(fā) ARP響應報文時選定的對應端口 SPi之外的其他對應端口 SHi(k為大于等于1且小于等于 η的正整數(shù)、k不等于i),甚至每次轉發(fā)流數(shù)據(jù)請求報文所使用的對應端口 SHi都有可能不同;相應地,即便交換設備沒有進行終端設備MAC地址的刷新,但只要交換芯片接收到數(shù)據(jù)流請求報文的網(wǎng)絡端口 1 不是已建立的上行方向MAC轉發(fā)表項所對應的網(wǎng)路端口 Pi,也還是需要進行流目的端MAC地址的刷新、使其學習到流目的端MAC地址的網(wǎng)絡端口由 Pi變更為Pk,即,刪除網(wǎng)絡端口 Pi所對應的上行方向MAC轉發(fā)表項,并依據(jù)接收到流數(shù)據(jù)請求報文的網(wǎng)絡端口沖的索引、以及作為流數(shù)據(jù)請求報文的源地址的流目的端MAC地址重新建立新的上行方向MAC轉發(fā)表項,那么,后續(xù)的正常轉發(fā)就是通過1 來實現(xiàn)、而網(wǎng)絡端口 Pi則會用于負載分擔的轉發(fā)。也就是說,在交換設備的對應端口 SPl SPn聚合為一個邏輯端口的情況下,交換芯片也隨時有可能發(fā)生MAC地址刷新,但并不會影響負載分擔的實現(xiàn)。
11
如上可見,相互隔離的所有網(wǎng)絡端口 Pl Pn中有一個網(wǎng)絡端口 Pi能夠?qū)W習到流目的端MAC地址,因而利用查找MAC轉發(fā)表項的常規(guī)方式即可通過學習到流目的端MAC地址的一個網(wǎng)絡端口 Pi實現(xiàn)正常的轉發(fā);而雖然網(wǎng)絡端口 Pj其他沒有學習到流目的端MAC 地址,可以通過在對應的VLANj內(nèi)的強行轉發(fā)而實現(xiàn)負載分擔。從而,由于所有網(wǎng)絡端口 Pl Pn均能夠通過查找MAC轉發(fā)表項或VLAN實現(xiàn)轉發(fā)、且所有網(wǎng)絡端口 Pl Pn之間由于被VLAN隔離不會發(fā)生廣播風暴,因而無需利用端口聚合、Smart-link等相關特性即可實現(xiàn)可靠的負載分擔。此外,網(wǎng)絡端口 Pl Pn均有可能會由于鏈路故障等原因而由可用變?yōu)椴豢捎?(即由 “Up” 變?yōu)?“Down”)。如果學習到流目的端MAC地址的網(wǎng)絡端口 Pi變?yōu)椴豢捎?,交換芯片不會再通過網(wǎng)絡端口 Pi所在鏈路轉發(fā)流數(shù)據(jù)請求報文、并刪除網(wǎng)絡端口 Pi所對應的上行方向MAC轉發(fā)表項。相應地,交換設備也不會再通過網(wǎng)絡端口 Pi所在鏈路轉發(fā)流數(shù)據(jù)請求報文,而是需要從其他的網(wǎng)絡端口 1 所在鏈路轉發(fā)流數(shù)據(jù)請求報文,那么,在其他的網(wǎng)絡端口 1 接收到流數(shù)據(jù)請求報文后,可以在接收到流數(shù)據(jù)請求報文的網(wǎng)絡端口 1 學習到用作流數(shù)據(jù)請求報文的源地址的流目的端MAC地址,即,依據(jù)接收到流數(shù)據(jù)請求報文的網(wǎng)絡端口 1 的索引、 以及作為流數(shù)據(jù)請求報文的源地址的流目的端MAC地址建立新的上行方向MAC轉發(fā)表項。 也就是說,學習到流目的端MAC地址的網(wǎng)絡端口 Pi不可用后,會導致交換設備和交換芯片發(fā)生MAC地址刷新,但并不會影響負載分擔的實現(xiàn)。如果未學習到流目的端MAC地址的其他網(wǎng)絡端口 Pj變?yōu)椴豢捎茫瑒t由于處理器能夠通過對所有網(wǎng)絡端口 Pl Pn的狀態(tài)檢測獲知,因而處理器能夠保證在未學習到流目的端MAC地址的其他網(wǎng)絡端口 Pj不可用后,不會再利用該網(wǎng)絡端口 Pj進行負載分擔。因此, 當網(wǎng)絡端口 Pl Pn中出現(xiàn)不可用的網(wǎng)絡端口 Pi或Pj時,但只要可用的總數(shù)至少為兩個, 就不會影響正常的轉發(fā)和用于負載分擔的轉發(fā)。但是,當所有網(wǎng)口端口 Pl Pn中僅剩一個可用時,即便服務器要求進行負載分擔,終端設備也無法實現(xiàn)負載分擔的轉發(fā)。因此,本實施例還提供了一種故障通告機制。具體說,處理器需要發(fā)送以流目的端MAC地址為目的地址的故障通告,該故障通告報文中攜帶用于表示終端設備不支持負載分擔的信息、以使上述服務器或客戶端取消在流數(shù)據(jù)請求報文中攜帶負載分擔標識;交換芯片在從內(nèi)部端口 PO接收到故障通告報文后, 即可依據(jù)查找到的上行方向MAC轉發(fā)表項(按照如前所述的方式在僅剩的一個網(wǎng)絡端口上重新學習到)從僅剩的一個可用的網(wǎng)絡端口沖轉發(fā)。仍假設服務器為VM服務器、終端設備為EC,EC的網(wǎng)絡端口共有2個,其中一個學習到流目的端MAC地址、另一個未學習到流目的端MAC地址。當學習到流目的端MAC地址的一個網(wǎng)絡端口不可用后,會刪除在該網(wǎng)絡端口學習到的流目的端MAC地址,并通過僅剩的一個可用網(wǎng)絡端口向VM服務器發(fā)送故障通告報文,以告知VM服務器該EC目前無法實現(xiàn)負載分擔的轉發(fā)、并禁止VM服務器在流數(shù)據(jù)請求報文中攜帶負載分擔標識?;谝陨系幕驹?,本實施例提供一種基于多網(wǎng)絡端口實現(xiàn)負載分擔的方法, 該方法應用于如圖Ia至如圖Ic中示出的可提供流數(shù)據(jù)的終端設備內(nèi)的交換芯片。如圖2 所示,該方法針對每一次的流數(shù)據(jù)請求,均包括在該交換芯片之行的如下步驟步驟231,從任一網(wǎng)絡端口 Pi接收到來自流目的端的流數(shù)據(jù)請求報文,該流數(shù)據(jù)請求報文能夠通過攜帶一負載分擔標識來表示其請求的流數(shù)據(jù)需要負載分擔。其中,流數(shù)據(jù)請求報文攜帶的負載分擔標識就是由需要獲取流數(shù)據(jù)的服務器所添加,該服務器可以是流目的端、也可以是由網(wǎng)關來作為流目的端。如果本步驟中接收流數(shù)據(jù)請求報文的網(wǎng)絡端口 Pi并不是與當前已建立的上行方向MAC轉發(fā)表項所對應的網(wǎng)絡端口,則需要進一步刪除已建立的上行方向MAC轉發(fā)表項,并依據(jù)在本步驟接收到流數(shù)據(jù)請求報文的網(wǎng)絡端口 Pi的索引、以及流目的端MAC地址建立新的上行方向MAC轉發(fā)表項。此外,如果已建立的上行方向MAC轉發(fā)表項所對應的網(wǎng)絡端口在本步驟之前即不可用,則在步驟之前即會刪除已建立的上行方向MAC轉發(fā)表項,并依據(jù)在本步驟接收到流數(shù)據(jù)請求報文的網(wǎng)絡端口 Pi的索引、以及流目的端MAC地址建立新的上行方向MAC轉發(fā)表項。步驟232,由于接收到的數(shù)據(jù)請求報文以流目的端MAC地址為源地址、以終端設備 MAC地址為目的地址,因此,將從任一網(wǎng)絡端口 Pi接收的流數(shù)據(jù)請求報文通過查找MAC轉發(fā)表的常規(guī)方式從下行方向MAC轉發(fā)表項所對應的內(nèi)部端口 PO轉發(fā)至處理器。在本步驟之后,處理器依據(jù)其學習到的ARP表項,將來自流數(shù)據(jù)源的流數(shù)據(jù)封裝為流數(shù)據(jù)封裝報文。并且,由于接收到的流數(shù)據(jù)請求報文能夠通過攜帶一負載分擔標識來表示其請求的流數(shù)據(jù)需要負載分擔,因此,如果流數(shù)據(jù)請求報文進一步攜帶有表示負載分擔標識,處理器還會在流數(shù)據(jù)報文中攜帶VLANj的Tag頭,以表示不利用當前的上行方向MAC轉發(fā)表項所對應的網(wǎng)絡端口 Pi實現(xiàn)正常的轉發(fā)、而是利用未學習到流目的端MAC地址的其他網(wǎng)絡端口 Pj進行負載分擔的轉發(fā)。其中,VLANj為除上行方向MAC轉發(fā)表項對應的網(wǎng)絡端口 Pi所述VLANi之外的任一 VLAN。步驟233,從內(nèi)部端口接收以流目的端MAC地址為目的地址的流數(shù)據(jù)封裝報文,并判斷流數(shù)據(jù)封裝報文中是否攜帶有針對負載分擔標識的VLANj的Tag頭,如果是,則執(zhí)行步驟235,否則執(zhí)行步驟234。步驟234,在流數(shù)據(jù)封裝報文中未攜帶VLANj的Tag頭時,采用常規(guī)的查找MAC轉發(fā)表的方式,依據(jù)查找到的上行方向MAC轉發(fā)表項將流數(shù)據(jù)封裝報文從對應的網(wǎng)絡端口 Pi 轉發(fā),然后結束針對本次流數(shù)據(jù)請求的流程。步驟235,在流數(shù)據(jù)封裝報文中攜帶有VLANj的Tag頭時,將流數(shù)據(jù)封裝報文攜帶的VLANj的Tag頭剝除后從屬于對應VLANj的網(wǎng)絡端口 Pj轉發(fā),然后結束針對本次流數(shù)據(jù)請求的流程。其中,屬于對應VLANj的網(wǎng)絡端口 j為除上行方向MAC轉發(fā)表項對應的網(wǎng)絡端口 Pi之外的任一網(wǎng)絡端口。至此,針對一次流數(shù)據(jù)請求的流程結束。當然,對于不需要負載分擔的正常轉發(fā),處理器也可以在流數(shù)據(jù)封裝報文中攜帶 VLANi的Tag頭,仍能夠確保該流數(shù)據(jù)報文在攜帶的Tag頭被剝除后從上行方向MAC轉發(fā)表項對應的網(wǎng)絡端口 Pi轉發(fā)。以上如圖2所示流程中所使用的上行方向MAC轉發(fā)表項和下行方向MAC轉發(fā)表項可以是在如圖3所示的流程中建立的。如圖3所示,本實施例中基于多網(wǎng)絡端口實現(xiàn)負載分擔的方法在執(zhí)行如圖2所示流程之前,還需要在交換芯片執(zhí)行可用于建立MAC轉發(fā)表項的如下步驟步驟211,從內(nèi)部端口 PO接收處理器發(fā)送的ARP請求報文。步驟212,依據(jù)內(nèi)部端口 PO的索引、以及作為ARP請求報文的源地址的終端設備 MAC地址建立下行方向MAC轉發(fā)表項。步驟213,依據(jù)作為ARP請求報文的目的地址的廣播地址,將ARP請求報文依次從各網(wǎng)絡端口 Pl Pn轉發(fā)至交換設備。步驟214,從任一網(wǎng)絡端口 Pi接收來自交換設備的ARP響應報文。其中,本步驟接收ARP響應報文的網(wǎng)絡端口 Pi與圖2中步驟231接收流數(shù)據(jù)請求報文的網(wǎng)絡端口 Pi可能是同一個、也可能不是同一個。步驟215,依據(jù)接收ARP響應報文的網(wǎng)絡端口 Pi的索弓丨、以及作為ARP響應報文的源地址的流目的端MAC地址建立上行方向MAC轉發(fā)表項。步驟216,依據(jù)下行方向MAC轉發(fā)表項將目的地址為終端設備MAC地址的ARP響應報文從內(nèi)部端口 PO轉發(fā)至處理器,以供處理器利用ARP響應報文學習ARP表項。至此,上述流程結束。當然,如圖2所示流程中所使用的上行方向MAC轉發(fā)表項和下行方向MAC轉發(fā)表項,也可以不按照如圖3所示的方式建立,而是采用本領域技術人員所能夠?qū)崿F(xiàn)的其他方
式來建立。此外,在建立上行方向MAC轉發(fā)表項和下行方向MAC轉發(fā)表項之后,為了使需要獲取流數(shù)據(jù)的服務器能夠獲知終端設備具備負載分擔的能力,可以利用向該服務器的注冊機制來通告該服務器。因此,本實施例中基于多網(wǎng)絡端口實現(xiàn)負載分擔的方法還可以按照如圖4所示的流程,在交換芯片執(zhí)行用于利用注冊實現(xiàn)負載分擔能力通告的如下步驟步驟221,從內(nèi)部端口 PO接收處理器發(fā)送的以流目的端MAC地址為目的地址的注冊請求報文,該注冊請求報文中攜帶用于表示終端設備支持負載分擔的信息、以允許流數(shù)據(jù)請求報文中攜帶負載分擔標識。步驟222,依據(jù)查找到的上行方向MAC轉發(fā)表項將注冊請求報文從對應的網(wǎng)絡端口 Pi轉發(fā)至交換設備,以使注冊請求報文能夠到達需要獲取流數(shù)據(jù)的服務器。至此,上述流程結束。在上述如圖4所示的流程之后,如果終端設備的網(wǎng)絡端口 Pl Pn中僅剩一個可用,則需要使服務器獲知終端設備當前已不具備負載分擔的能力,可以利用一新的故障通告機制來告知該服務器。因此,本實施例中基于多網(wǎng)絡端口實現(xiàn)負載分擔的方法還可以按照如圖5所示的流程,在交換芯片執(zhí)行用于實現(xiàn)故障通告的如下步驟步驟Ml,在所有網(wǎng)口端口 Pl Pn中僅有一個可用時,從內(nèi)部端口 PO接收到處理器發(fā)送的以流目的端MAC地址為目的地址的故障通告報文,該故障通告報文中攜帶用于表示終端設備不支持負載分擔的信息、以取消流數(shù)據(jù)請求報文中攜帶用于表示流數(shù)據(jù)封裝報文需要負載分擔的標識。步驟M2,依據(jù)查找到的上行方向MAC轉發(fā)表項(經(jīng)過多次MAC地址刷新而對應僅有的一個可用的對應網(wǎng)絡端口沖),將故障通告報文從僅有的一個可用的對應網(wǎng)絡端口 1 轉發(fā)至交換設備,以使故障通告報文能夠到達需要獲取流數(shù)據(jù)的服務器。此外,在所有網(wǎng)口端口 Pl Pn中僅有一個可用時,還可以取消對所有網(wǎng)絡端口Pl 1 以及內(nèi)部端口 PO的VLAN劃分。至此,上述流程結束。本實施例提供的上述基于多網(wǎng)絡端口實現(xiàn)負載分擔的方法可以利用計算機程序來實現(xiàn)。相應地,本實施例還提供一種對應的基于多網(wǎng)絡端口實現(xiàn)負載分擔的裝置,該裝置承載于如圖Ia至如圖Ie中示出的可提供流數(shù)據(jù)的終端設備內(nèi)的交換芯片,并包括請求轉發(fā)模塊,將從任一網(wǎng)絡端口 Pi接收的來自流目的端、并以終端設備MAC地址為目的地址的流數(shù)據(jù)請求報文,通過查找MAC轉發(fā)表的方式從下行方向MAC轉發(fā)表項所對應的內(nèi)部端口 PO轉發(fā)至處理器。其中,流數(shù)據(jù)請求報文能夠通過攜帶一負載分擔標識來表示其請求的流數(shù)據(jù)需要負載分擔,以使處理器根據(jù)該標識決定是否進行負載分擔、并在決定進行負載分擔的流數(shù)據(jù)封裝報文中攜帶VLAN標記頭。此外,如果數(shù)據(jù)請求接收模塊接收流數(shù)據(jù)請求報文的網(wǎng)絡端口 Pi并不是與當前已建立的上行方向MAC轉發(fā)表項所對應的網(wǎng)絡端口,則需要一表項刪除模塊刪除已建立的上行方向MAC轉發(fā)表項,并由一表項刷新模塊依據(jù)數(shù)據(jù)請求接收模塊接收到流數(shù)據(jù)請求報文的網(wǎng)絡端口 Pi的索引、以及作為流數(shù)據(jù)請求報文的源地址的流目的端MAC地址建立新的上行方向MAC轉發(fā)表項。此外,如果已建立的上行方向MAC轉發(fā)表項所對應的網(wǎng)絡端口變?yōu)椴豢捎茫瑒t表項刪除模塊也會刪除已建立的上行方向MAC轉發(fā)表項,并仍由表項刷新模塊依據(jù)數(shù)據(jù)請求接收模塊接收到流數(shù)據(jù)請求報文的網(wǎng)絡端口 Pi的索引、以及作為流數(shù)據(jù)請求報文的源地址的流目的端MAC地址建立新的上行方向MAC轉發(fā)表項。轉發(fā)判斷模塊,判斷處理器發(fā)送到內(nèi)部端口 PO的流數(shù)據(jù)封裝報文中是否攜帶有針對負載分擔標識的VLANj的Tag頭。其中,在流數(shù)據(jù)請求報文中攜帶有負載分擔標識時, 處理器會在與該流數(shù)據(jù)請求報文對應的流數(shù)據(jù)封裝報文中攜帶VLANj的Tag頭。數(shù)據(jù)轉發(fā)模塊,在流數(shù)據(jù)封裝報文中攜帶有VLAN標記頭時,將流數(shù)據(jù)封裝報文攜帶的VLANj的Tag頭剝除后從屬于對應VLANj的網(wǎng)絡端口 Pj轉發(fā);屬于對應VLANj的網(wǎng)絡端口 Pj為除上行方向MAC轉發(fā)表項對應的網(wǎng)絡端口 Pi之外的任一網(wǎng)絡端口。數(shù)據(jù)轉發(fā)模塊,還進一步在流數(shù)據(jù)封裝報文中未攜帶VLANj的Tag頭時,將未攜帶 VLANj的Tag頭的流數(shù)據(jù)封裝報文按照查找MAC轉發(fā)表的常規(guī)方式,從上行方向MAC轉發(fā)表項對應的網(wǎng)絡端口 Pi轉發(fā)。當然,對于不需要負載分擔的正常轉發(fā),處理器也可以在流數(shù)據(jù)封裝報文中攜帶VLANi的Tag頭,仍能夠確保該流數(shù)據(jù)報文在攜帶的Tag頭被剝除后從上行方向MAC轉發(fā)表項對應的網(wǎng)絡端口 Pi轉發(fā)。而且,為了實現(xiàn)上行MAC轉發(fā)表項和下行MAC轉發(fā)表項的建立、以及處理器對ARP 表項的學習,該裝置還包括ARP轉發(fā)模塊,將從內(nèi)部端口 PO接收處理器發(fā)送的以終端設備MAC地址為源地址、 以廣播地址為目的地址的ARP請求報文依次從各網(wǎng)絡端口 Pl Pn轉發(fā)。第一表項模塊,依據(jù)內(nèi)部端口 PO的索引、以及作為ARP請求報文的源地址的網(wǎng)絡設備MAC地址建立下行方向MAC轉發(fā)表項。ARP轉發(fā)模塊,還將從任一網(wǎng)絡端口 Pi接收的以流目的端MAC地址為源地址、以終端設備MAC地址為目的地址的ARP響應報文,通過查找MAC轉發(fā)表的方式從下行方向MAC 轉發(fā)表項對應的內(nèi)部端口 PO轉發(fā)至處理器,以供處理器利用ARP響應報文學習ARP表項;其中,接收ARP響應報文的網(wǎng)絡端口 Pi與數(shù)據(jù)請求接收模塊接收流數(shù)據(jù)請求報文的網(wǎng)絡端口 Pi可能是同一個、也可能不是同一個。第二表項模塊,依據(jù)接收ARP響應報文的網(wǎng)絡端口 Pi的索引、以及作為ARP響應報文的源地址的流目的端MAC地址建立上行方向MAC轉發(fā)表項。為了能夠向網(wǎng)絡中需要獲取流數(shù)據(jù)的服務器注冊、并向該服務器通告終端設備是否能夠支持負載分擔,該裝置還可以包括注冊轉發(fā)模塊,將從內(nèi)部端口 PO接收以流目的端MAC地址為目的地址的注冊請求報文,以查找MAC轉發(fā)表的方式從上行方向MAC轉發(fā)表項對應的網(wǎng)絡端口 Pi轉發(fā)。其中, 該注冊請求報文中攜帶用于表示終端設備支持負載分擔的信息、以允許流數(shù)據(jù)請求報文中攜帶負載分擔標識。通告轉發(fā)模塊,在所有網(wǎng)口端口 Pl Pn中僅有一個可用時,將從內(nèi)部端口 PO接收處理器發(fā)送的以流目的端MAC地址為目的地址的故障通告報文,以查找MAC轉發(fā)表的方式從上行方向MAC轉發(fā)表項對應的僅剩的一個可用的網(wǎng)絡端口 1 轉發(fā)。其中,該故障通告報文中攜帶用于表示終端設備不支持負載分擔的信息、以取消流數(shù)據(jù)請求報文中攜帶負載分擔標識。上述實施例均是以終端設備中的內(nèi)部結構包括交換芯片及處理器為例,實際應用中,終端設備也可以采用任意的結構。那么,為了適用于各種結構的終端設備,本發(fā)明實施例中還基于同樣的基本原理,提供了更為通用的一種基于多網(wǎng)絡端口實現(xiàn)負載分擔的方法、以及一種基于多網(wǎng)絡端口實現(xiàn)負載分擔的系統(tǒng)。本實施例提供的一種基于多網(wǎng)絡端口實現(xiàn)負載分擔的方法,該方法用于終端設備 (例如EC)向服務器(例如VM服務器)提供流數(shù)據(jù),該終端設備具有至少兩個網(wǎng)絡端口 Pl Pn,至少兩個網(wǎng)絡端口 Pl Pn與同一臺用于實現(xiàn)服務器與終端設備交互的交換設備相連;而且,至少兩個網(wǎng)絡端口 Pl Pn被分別劃分至不同的VLANl VLANn、并較佳地均設置為Access屬性;且,該方法包括在終端設備執(zhí)行的如下步驟Al、接收服務器通過交換設備發(fā)送至任一網(wǎng)絡端口 Pi的流數(shù)據(jù)請求報文;其中, 從MAC轉發(fā)表中能夠查找到下行方向MAC轉發(fā)表項(建立該下行方向MAC轉發(fā)表項的方式與前文所述的方式采用相同的原理)、該下行方向MAC轉發(fā)表項可以指向終端設備內(nèi)的用于處理流數(shù)據(jù)請求報文的任意位置處。如果本步驟中接收流數(shù)據(jù)請求報文的網(wǎng)絡端口 Pi并不是與當前已建立的上行方向MAC轉發(fā)表項(建立該上行方向MAC轉發(fā)表項的方式與前文所述的方式采用相同的原理)所對應的網(wǎng)絡端口,則需要進一步刪除已建立的上行方向MAC轉發(fā)表項,并針對在本步驟接收到流數(shù)據(jù)請求報文的網(wǎng)絡端口 Pi建立新的上行方向MAC轉發(fā)表項。此外,如果已建立的上行方向MAC轉發(fā)表項所對應的網(wǎng)絡端口在本步驟之前即不可用,則在步驟之前即會刪除已建立的上行方向MAC轉發(fā)表項,并針對本步驟接收到流數(shù)據(jù)請求報文的網(wǎng)絡端口 Pi建立新的上行方向MAC轉發(fā)表項。在步驟Al之后,終端設備能夠判斷流數(shù)據(jù)請求報文中是否有表示其請求的流數(shù)據(jù)需要負載分擔的負載分擔標識。A2、在流數(shù)據(jù)請求報文中攜帶有所述負載分擔標識時,在封裝得到的流數(shù)據(jù)封裝報文中攜帶VLANj的Tag頭、并將封裝得到的流數(shù)據(jù)封裝報文通過該Tag頭對應的VLANj 發(fā)送至屬于該VLANj的網(wǎng)絡端口 j、再將該Tag頭剝除后從該網(wǎng)絡端口 j通過交換設備向服務器轉發(fā)。上述步驟A2還可以進一步在流數(shù)據(jù)請求報文中未攜帶所述負載分擔標識時,將封裝得到的流數(shù)據(jù)封裝報文通過查找MAC轉發(fā)表發(fā)送至對應的網(wǎng)絡端口 Pi、再從該網(wǎng)絡端口 Pi通過交換設備向服務器轉發(fā);其中,從MAC轉發(fā)表中所查找到的上行方向MAC轉發(fā)表項即指向該網(wǎng)絡端口 Pi。當然,對于不需要負載分擔的正常轉發(fā),處理器也可以在流數(shù)據(jù)封裝報文中攜帶VLANi的Tag頭,仍能夠確保該流數(shù)據(jù)報文在攜帶的Tag頭被剝除后從上行方向MAC轉發(fā)表項對應的網(wǎng)絡端口 Pi轉發(fā)。該方法在步驟Al之前進一步包括用于通過注冊機制向服務器上報負載分擔能力的步驟A0、將生成的注冊請求報文通過查找MAC轉發(fā)表發(fā)送至對應的網(wǎng)絡端口 Pi、再從該網(wǎng)絡端口 Pi通過交換設備向服務器轉發(fā);其中,該注冊請求報文中攜帶用于表示終端設備支持負載分擔的信息、以允許流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。該方法在所述步驟AO之后進一步包括用于向服務器通告故障的步驟B0、在所有網(wǎng)口端口 Pl Pn中僅有一個可用時,將生成的故障通告報文通過查找MAC轉發(fā)表發(fā)送至僅有的一個可用的網(wǎng)絡端口 Pk、并從該網(wǎng)絡端口 1 通過交換設備向服務器轉發(fā);其中,該故障通告報文中攜帶用于表示終端設備不支持負載分擔的信息、以禁止流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。本發(fā)明實施例中提供的一種基于多網(wǎng)絡端口實現(xiàn)負載分擔的系統(tǒng),該系統(tǒng)包括服務器(例如VM服務器)、用于向服務器提供流數(shù)據(jù)的終端設備(例如EC)、以及用于實現(xiàn)服務器與終端設備交互的交換設備,所述終端設備具有至少兩個網(wǎng)絡端口 Pi Pru所述至少兩個網(wǎng)絡端口 Pi Pn與同一臺交換設備相連;至少兩個網(wǎng)絡端口 Pi Pn被分別劃分至不同的VLANl VLANn、并較佳地均設置為Access屬性;服務器,用于向交換設備發(fā)送流數(shù)據(jù)請求報文;其中,流數(shù)據(jù)請求報文能夠通過攜帶一負載分擔標識來表示其請求的流數(shù)據(jù)需要負載分擔;交換設備,用于將流數(shù)據(jù)請求報文發(fā)送至終端設備的任一網(wǎng)絡端口 Pi ;終端設備,用于接收服務器通過交換設備發(fā)送至任一網(wǎng)絡端口 Pi的流數(shù)據(jù)請求報文;其中,從MAC轉發(fā)表中能夠查找到下行方向MAC轉發(fā)表項(建立該下行方向MAC轉發(fā)表項的方式與前文所述的方式采用相同的原理)、該下行方向MAC轉發(fā)表項可以指向終端設備內(nèi)的用于處理流數(shù)據(jù)請求報文的任意位置處。如果當前接收流數(shù)據(jù)請求報文的網(wǎng)絡端口 Pi并不是與當前已建立的上行方向 MAC轉發(fā)表項(建立該上行方向MAC轉發(fā)表項的方式與前文所述的方式采用相同的原理) 所對應的網(wǎng)絡端口,則終端設備需要進一步刪除已建立的上行方向MAC轉發(fā)表項,并針對當前接收到流數(shù)據(jù)請求報文的網(wǎng)絡端口 Pi建立新的上行方向MAC轉發(fā)表項。此外,如果已建立的上行方向MAC轉發(fā)表項所對應的網(wǎng)絡端口在當前接收流數(shù)據(jù)請求報文之前即不可用,則在此之前即會刪除已建立的上行方向MAC轉發(fā)表項,并需要終端設備進一步針對當前接收到流數(shù)據(jù)請求報文的網(wǎng)絡端口 Pi建立新的上行方向MAC轉發(fā)表項。
終端設備還用于判斷流數(shù)據(jù)請求報文中是否有表示其請求的流數(shù)據(jù)需要負載分擔的負載分擔標識。在流數(shù)據(jù)請求報文中攜帶有所述負載分擔標識時,終端設備在封裝得到的流數(shù)據(jù)封裝報文中攜帶VLANj的Tag頭、并通過該Tag頭對應的VLANj發(fā)送至屬于該VLANj的網(wǎng)絡端口 Pj、再將該Tag頭剝除后從該網(wǎng)絡端口 Pj通過交換設備向服務器轉發(fā);以及,在流數(shù)據(jù)請求報文中未攜帶所述負載分擔標識時,終端設備將封裝得到的流數(shù)據(jù)封裝報文通過查找MAC轉發(fā)表發(fā)送至對應的網(wǎng)絡端口 Pi、再從該網(wǎng)絡端口 Pi通過交換設備向服務器轉發(fā)。其中,從MAC轉發(fā)表中所查找到的上行方向MAC轉發(fā)表項即指向該網(wǎng)絡端口 Pi。當然,對于不需要負載分擔的正常轉發(fā),處理器也可以在流數(shù)據(jù)封裝報文中攜帶VLANi的Tag頭,仍能夠確保該流數(shù)據(jù)報文在攜帶的Tag頭被剝除后從上行方向MAC轉發(fā)表項對應的網(wǎng)絡端口 Pi轉發(fā)。為了向服務器上報負載分擔能力,在接收流數(shù)據(jù)請求報文之前,終端設備還可以進一步將生成的注冊請求報文通過查找MAC轉發(fā)表發(fā)送至對應的網(wǎng)絡端口 Pi、再從該網(wǎng)絡端口 Pi通過交換設備向服務器轉發(fā);其中,該注冊請求報文中攜帶用于表示終端設備支持負載分擔的信息、以允許流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。為了能夠向服務器通報故障,在通過注冊機制上報負載分擔能力之后,終端設備還可以進一步在所有網(wǎng)口端口 Pl Pn中僅有一個可用時,將生成的故障通告報文通過查找MAC轉發(fā)表發(fā)送至僅有的一個可用的網(wǎng)絡端口 Pk、并從該網(wǎng)絡端口 1 通過交換設備向服務器轉發(fā);其中,該故障通告報文中攜帶用于表示終端設備不支持負載分擔的信息、以禁止流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換以及改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
18
權利要求
1.一種基于多網(wǎng)絡端口實現(xiàn)負載分擔的方法,該方法應用于可提供流數(shù)據(jù)的終端設備中,該終端設備包括至少兩個網(wǎng)絡端口和一內(nèi)部端口,所述至少兩個網(wǎng)絡端口與終端設備外的同一臺交換設備相連,一個內(nèi)部端口與終端設備內(nèi)的處理器相連;其特征在于,至少兩個網(wǎng)絡端口被分別劃分至不同的VLAN、一個內(nèi)部端口被同時劃分至所有網(wǎng)絡端口所屬的VLAN ;且,該方法包括al、將從任一網(wǎng)絡端口接收的來自流目的端的流數(shù)據(jù)請求報文從內(nèi)部端口轉發(fā)至處理器;其中,流數(shù)據(jù)請求報文能夠通過攜帶一負載分擔標識來表示其請求的流數(shù)據(jù)需要負載分擔,以使處理器根據(jù)該標識決定是否進行負載分擔、并在決定進行負載分擔的流數(shù)據(jù)封裝報文中攜帶VLAN標記頭;a2、在流數(shù)據(jù)封裝報文中攜帶有VLAN標記頭時,將流數(shù)據(jù)封裝報文攜帶的VLAN標記頭剝除后從屬于對應VLAN的網(wǎng)絡端口轉發(fā)。
2.如權利要求1所述的方法,其特征在于,所述步驟a2進一步在流數(shù)據(jù)封裝報文中未攜帶所述VLAN標記頭時,將流數(shù)據(jù)封裝報文通過查找MAC轉發(fā)表從對應的網(wǎng)絡端口轉發(fā)。
3.如權利要求1或2所述的方法,其特征在于,該方法在所述步驟al之前進一步包括 a0、將從內(nèi)部端口接收的注冊請求報文通過查找MAC轉發(fā)表從對應的網(wǎng)絡端口轉發(fā);其中,該注冊請求報文中攜帶用于表示終端設備支持負載分擔的信息、以允許流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。
4.如權利要求3所述的方法,其特征在于,該方法在所述步驟aO之后進一步包括 b0、在所有網(wǎng)口端口中僅有一個可用時,將從內(nèi)部端口接收的故障通告報文通過查找MAC轉發(fā)表從僅有的一個可用的網(wǎng)絡端口轉發(fā);其中,該故障通告報文中攜帶用于表示終端設備不支持負載分擔的信息、以禁止流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。
5.一種基于多網(wǎng)絡端口實現(xiàn)負載分擔的裝置,該裝置承載于可提供流數(shù)據(jù)的終端設備中,該終端設備包括至少兩個網(wǎng)絡端口以及一個內(nèi)部端口,所述至少兩個網(wǎng)絡端口與終端設備外的同一臺交換設備相連,一個內(nèi)部端口與終端設備內(nèi)的處理器相連;其特征在于,至少兩個網(wǎng)絡端口被分別劃分至不同的VLAN、一個內(nèi)部端口被同時劃分至所有網(wǎng)絡端口所屬的VLAN ;且,該裝置包括請求轉發(fā)模塊,將從任一網(wǎng)絡端口接收的來自流目的端的流數(shù)據(jù)請求報文從內(nèi)部端口轉發(fā)至處理器;其中,流數(shù)據(jù)請求報文能夠通過攜帶一負載分擔標識來表示其請求的流數(shù)據(jù)需要負載分擔,以使處理器根據(jù)該標識決定是否進行負載分擔、并在決定進行負載分擔的流數(shù)據(jù)封裝報文中攜帶VLAN標記頭;數(shù)據(jù)轉發(fā)模塊,在流數(shù)據(jù)封裝報文中攜帶有VLAN標記頭時,將流數(shù)據(jù)封裝報文攜帶的 VLAN標記頭剝除后從屬于對應VLAN的網(wǎng)絡端口轉發(fā)。
6.如權利要求5所述的裝置,其特征在于,所述數(shù)據(jù)轉發(fā)模塊進一步在流數(shù)據(jù)封裝報文中未攜帶所述VLAN標記頭時將流數(shù)據(jù)封裝報文通過查找MAC轉發(fā)表從對應的網(wǎng)絡端口轉發(fā)。
7.如權利要求5或6所述的裝置,其特征在于,該裝置進一步包括注冊轉發(fā)模塊,將從內(nèi)部端口接收的注冊請求報文通過查找MAC轉發(fā)表從對應的網(wǎng)絡端口轉發(fā);其中,該注冊請求報文中攜帶用于表示終端設備支持負載分擔的信息、以允許流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。。
8.如權利要求7所述的裝置,其特征在于,該裝置進一步包括通告轉發(fā)模塊,在所有網(wǎng)口端口中僅有一個可用時,將從內(nèi)部端口接收的故障通告報文通過查找MAC轉發(fā)表從僅有的一個可用的網(wǎng)絡端口轉發(fā);其中,該故障通告報文中攜帶用于表示終端設備不支持負載分擔的信息、以禁止流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。
9.一種基于多網(wǎng)絡端口實現(xiàn)負載分擔的方法,該方法用于終端設備向服務器提供流數(shù)據(jù),所述終端設備具有至少兩個網(wǎng)絡端口,所述至少兩個網(wǎng)絡端口與同一臺用于實現(xiàn)服務器與終端設備交互的交換設備相連;其特征在于,至少兩個網(wǎng)絡端口被分別劃分至不同的VLAN ;且,該方法包括Al、接收服務器通過交換設備發(fā)送至任一網(wǎng)絡端口的流數(shù)據(jù)請求報文;其中,流數(shù)據(jù)請求報文能夠通過攜帶一負載分擔標識來表示其請求的流數(shù)據(jù)需要負載分擔;A2、在流數(shù)據(jù)請求報文中攜帶有所述負載分擔標識時,在封裝得到的流數(shù)據(jù)封裝報文中攜帶VLAN標記頭、并通過該VLAN標記頭對應的VLAN發(fā)送至屬于該VLAN的網(wǎng)絡端口、再將VLAN標記頭剝除后從該網(wǎng)絡端口通過交換設備向服務器轉發(fā)。
10.如權利要求9所述的方法,其特征在于,所述步驟A2進一步在流數(shù)據(jù)請求報文中未攜帶所述負載分擔標識時,將封裝得到的流數(shù)據(jù)封裝報文通過查找MAC轉發(fā)表發(fā)送至對應的網(wǎng)絡端口、再從該網(wǎng)絡端口通過交換設備向服務器轉發(fā)。
11.如權利要求9或10所述的方法,其特征在于,該方法在所述步驟Al之前進一步包括AO、將生成的注冊請求報文通過查找MAC轉發(fā)表發(fā)送至對應的網(wǎng)絡端口、再從該網(wǎng)絡端口通過交換設備向服務器轉發(fā);其中,該注冊請求報文中攜帶用于表示終端設備支持負載分擔的信息、以允許流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。
12.如權利要求11所述的方法,其特征在于,該方法在所述步驟AO之后進一步包括B0、在所有網(wǎng)口端口中僅有一個可用時,將生成的故障通告報文通過查找MAC轉發(fā)表發(fā)送至僅有的一個可用的網(wǎng)絡端口、并從該網(wǎng)絡端口通過交換設備向服務器轉發(fā);其中,該故障通告報文中攜帶用于表示終端設備不支持負載分擔的信息、以禁止流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。
13.一種基于多網(wǎng)絡端口實現(xiàn)負載分擔的系統(tǒng),該系統(tǒng)包括服務器、用于向服務器提供流數(shù)據(jù)的終端設備、以及用于實現(xiàn)服務器與終端設備交互的交換設備,所述終端設備具有至少兩個網(wǎng)絡端口、所述至少兩個網(wǎng)絡端口與同一臺交換設備相連;其特征在于,至少兩個網(wǎng)絡端口被分別劃分至不同的VLAN ;服務器,用于向交換設備發(fā)送流數(shù)據(jù)請求報文;其中,流數(shù)據(jù)請求報文能夠通過攜帶一負載分擔標識來表示其請求的流數(shù)據(jù)需要負載分擔;交換設備,用于將流數(shù)據(jù)請求報文發(fā)送至終端設備的任一網(wǎng)絡端口 ;終端設備,用于在流數(shù)據(jù)請求報文中攜帶有所述負載分擔標識時,在封裝得到的流數(shù)據(jù)封裝報文中攜帶VLAN標記頭、并通過該VLAN標記頭對應的VLAN發(fā)送至屬于該VLAN的網(wǎng)絡端口、再將VLAN標記頭剝除后從該網(wǎng)絡端口通過交換設備向服務器轉發(fā)。
14.如權利要求13所述的系統(tǒng),其特征在于,終端設備進一步在流數(shù)據(jù)請求報文中未攜帶所述負載分擔標識時,將封裝得到的流數(shù)據(jù)封裝報文通過查找MAC轉發(fā)表發(fā)送至對應的網(wǎng)絡端口、再從該網(wǎng)絡端口通過交換設備向服務器轉發(fā)。
15.如權利要求13或14所述的系統(tǒng),其特征在于,終端設備進一步在接收流數(shù)據(jù)請求報文之前將生成的注冊請求報文通過查找MAC轉發(fā)表發(fā)送至對應的網(wǎng)絡端口、再從該網(wǎng)絡端口通過交換設備向服務器轉發(fā);其中,該注冊請求報文中攜帶用于表示終端設備支持負載分擔的信息、以允許流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。
16.如權利要求15所述的系統(tǒng),其特征在于,終端設備進一步在所有網(wǎng)口端口中僅有一個可用時,將生成的故障通告報文通過查找MAC轉發(fā)表發(fā)送至僅有的一個可用的網(wǎng)絡端口、并從該網(wǎng)絡端口通過交換設備向服務器轉發(fā);其中,該故障通告報文中攜帶用于表示終端設備不支持負載分擔的信息、以禁止流數(shù)據(jù)請求報文中攜帶所述負載分擔標識。
全文摘要
本發(fā)明公開了一種基于多網(wǎng)絡端口實現(xiàn)負載分擔的方法和裝置。在本發(fā)明中,至少兩個網(wǎng)絡端口連接外部交換設備、并被劃分至不同的VLAN,能夠利用不同VLAN對各網(wǎng)絡端口的隔離避免各網(wǎng)絡端口與外部交換設備構成環(huán)路、從而能夠避免由環(huán)路導致的廣播風暴,而且,還能夠利用對應的VLAN與任意網(wǎng)絡端口之間實現(xiàn)轉發(fā)。這樣,對于正常的轉發(fā),仍可以通過查找MAC轉發(fā)表的常規(guī)方式來實現(xiàn);而對于需要負載分擔的轉發(fā),則可以通過在對應的VLAN內(nèi)的強行轉發(fā)來實現(xiàn)。如此一來,無需利用Smart-link、端口聚合等相關特性即可實現(xiàn)可靠的負載分擔。
文檔編號H04L12/46GK102209040SQ201110194838
公開日2011年10月5日 申請日期2011年7月12日 優(yōu)先權日2011年7月12日
發(fā)明者周迪, 王軍 申請人:杭州華三通信技術有限公司