基于多网络端口实现负载分担的方法和装置的制作方法

文档序号:7722413阅读:182来源:国知局
专利名称:基于多网络端口实现负载分担的方法和装置的制作方法
技术领域
本发明涉及负载分担技术,特别涉及一种基于多网络端口实现负载分担的方法、 以及一种基于多网络端口实现负载分担的装置。
背景技术
现有技术中例如EC (Encoder,视频编码器)等能够提供流数据的终端设备,通常会具有至少两个用于连接交换设备的网络端口,并由此形成与交换设备之间的至少两条链路。对于具有至少两条链路的组网方式,现有技术中提供了一种端口聚合技术、并希望以此在至少两条链路上实现负载分担。但是,现有技术中所提供的上述终端设备通常都不支持端口聚合的特性,因而导致上述终端设备与交换设备之间无法实现负载分担。而且,由于终端设备的至少两个网络端口之间互通,因此,为了避免互通的至少两个网络端口与交换设备构成环路、并引发广播风暴,只能保留一个网络端口与交换设备之间的链路开启、并利用STP特性将其余网络端口与交换设备之间的链路关闭。当开启的链路发生故障后,再利用STP切换出一条新开启的链路。对于某些对于流量连续性较为敏感的情况,STP较长的切换时间无法满足要求,此时,就需要利用毫秒级切换的Smart-link特性。可见,现有技术对于不支持端口聚合特性的终端设备不但无法实现负载分担,而且,还必须采用例如Smart-link等其他特性来避免引发广播风暴。

发明内容
有鉴于此,本发明提供了一种基于多网络端口实现负载分担的方法、以及一种基于多网络端口实现负载分担的装置,能够使不支持网络端口聚合的终端设备实现负载分担。本发明提供的一种基于多网络端口实现负载分担的方法,该方法应用于可提供流数据的终端设备中,该终端设备包括至少两个网络端口和一内部端口,所述至少两个网络端口与终端设备外的同一台交换设备相连,一个内部端口与终端设备内的处理器相连;至少两个网络端口被分别划分至不同的VLAN、一个内部端口被同时划分至所有网络端口所属的VLAN ;且,该方法包括al、将从任一网络端口接收的来自流目的端的流数据请求报文从内部端口转发至处理器;其中,流数据请求报文能够通过携带一负载分担标识来表示其请求的流数据需要负载分担,以使处理器根据该标识决定是否进行负载分担、并在决定进行负载分担的流数据封装报文中携带VLAN标记头;a2、在流数据封装报文中携带有VLAN标记头时,将流数据封装报文携带的VLAN标记头剥除后从属于对应VLAN的网络端口转发。所述步骤a2进一步在流数据封装报文中未携带所述VLAN标记头时,将流数据封装报文通过查找MAC转发表从对应的网络端口转发。该方法在所 述步骤al之前进一步包括a0、将从内部端口接收的注册请求报文通过查找MAC转发表从对应的网络端口转发;其中,该注册请求报文中携带用于表示终端设备支持负载分担的信息、以允许流数据请求报文中携带所述负载分担标识。该方法在所述步骤aO之后进一步包括b0、在所有网口端口中仅有一个可用时, 将从内部端口接收的故障通告报文通过查找MAC转发表从仅有的一个可用的网络端口转发;其中,该故障通告报文中携带用于表示终端设备不支持负载分担的信息、以禁止流数据请求报文中携带所述负载分担标识。本发明提供的一种基于多网络端口实现负载分担的装置,该装置承载于可提供流数据的终端设备中,该终端设备包括至少两个网络端口以及一个内部端口,所述至少两个网络端口与终端设备外的同一台交换设备相连,一个内部端口与终端设备内的处理器相连;至少两个网络端口被分别划分至不同的VLAN、一个内部端口被同时划分至所有网络端口所属的VLAN ;且,该装置包括请求转发模块,将从任一网络端口接收的来自流目的端的流数据请求报文从内部端口转发至处理器;其中,流数据请求报文能够通过携带一负载分担标识来表示其请求的流数据需要负载分担,以使处理器根据该标识决定是否进行负载分担、并在决定进行负载分担的流数据封装报文中携带VLAN标记头;数据转发模块,在流数据封装报文中携带有VLAN标记头时,将流数据封装报文携带的VLAN标记头剥除后从属于对应VLAN的网络端口转发。所述数据转发模块进一步在流数据封装报文中未携带所述VLAN标记头时将流数据封装报文通过查找MAC转发表从对应的网络端口转发。该装置进一步包括注册转发模块,将从内部端口接收的注册请求报文通过查找 MAC转发表从对应的网络端口转发;其中,该注册请求报文中携带用于表示终端设备支持负载分担的信息、以允许流数据请求报文中携带所述负载分担标识。该装置进一步包括通告转发模块,在所有网口端口中仅有一个可用时,将从内部端口接收的故障通告报文通过查找MAC转发表从仅有的一个可用的网络端口转发;其中, 该故障通告报文中携带用于表示终端设备不支持负载分担的信息、以禁止流数据请求报文中携带所述负载分担标识。本发明提供的一种基于多网络端口实现负载分担的方法,该方法用于终端设备向服务器提供流数据,所述终端设备具有至少两个网络端口,所述至少两个网络端口与同一台用于实现服务器与终端设备交互的交换设备相连;至少两个网络端口被分别划分至不同的VLAN ;且,该方法包括Al、接收服务器通过交换设备发送至任一网络端口的流数据请求报文;其中,流数据请求报文能够通过携带一负载分担标识来表示其请求的流数据需要负载分担;A2、在流数据请求报文中携带有所述负载分担标识时,在封装得到的流数据封装报文中携带VLAN标记头、并通过该VLAN标记头对应的VLAN发送至属于该VLAN的网络端口、再将VLAN标记头剥除后从该网络端口通过交换设备向服务器转发。所述步骤A2进一步在流数据请求报文中未携带所述负载分担标识时,将封装得到的流数据封装报文通过查找MAC转发表发送至对应的网络端口、再从该网络端口通过交换设备向服务器转发。该方法在所述步骤Al之前进一步包括A0、将生成的注册请求报文通过查找MAC 转发表发送至对应的网络端口、再从该网络端口通过交换设备向服务器转发;其中,该注册请求报文中携带用于表示终端设备支持负载分担的信息、以允许流数据请求报文中携带所述负载分担标识。该方法在所述步骤AO之后进一步包括B0、在所有网口端口中仅有一个可用时, 将生成的故障通告报文通过查找MAC转发表发送至仅有的一个可用的网络端口、并从该网络端口通过交换设备向服务器转发;其中,该故障通告报文中携带用于表示终端设备不支持负载分担的信息、以禁止流数据请求报文中携带所述负载分担标识。本发明提供的一种基于多网络端口实现负载分担的系统,该系统包括服务器、用于向服务器提供流数据的终端设备、以及用于实现服务器与终端设备交互的交换设备,所述终端设备具有至少两个网络端口、所述至少两个网络端口与同一台交换设备相连;至少两个网络端口被分别划分至不同的VLAN ;服务器,用于向交换设备发送流数据请求报文;其中,流数据请求报文能够通过携带一负载分担标识来表示其请求的流数据需要负载分担;交换设备,用于将流数据请求报文发送至终端设备的任一网络端口 ;终端设备,用于在流数据请求报文中携带有所述负载分担标识时,在封装得到的流数据封装报文中携带VLAN标记头、并通过该VLAN标记头对应的VLAN发送至属于该VLAN 的网络端口、再将VLAN标记头剥除后从该网络端口通过交换设备向服务器转发。终端设备进一步在流数据请求报文中未携带所述负载分担标识时,将封装得到的流数据封装报文通过查找MAC转发表发送至对应的网络端口、再从该网络端口通过交换设备向服务器转发。终端设备进一步在接收流数据请求报文之前将生成的注册请求报文通过查找MAC 转发表发送至对应的网络端口、再从该网络端口通过交换设备向服务器转发;其中,该注册请求报文中携带用于表示终端设备支持负载分担的信息、以允许流数据请求报文中携带所述负载分担标识。终端设备进一步在所有网口端口中仅有一个可用时将生成的故障通告报文通过查找MAC转发表发送至仅有的一个可用的网络端口、并从该网络端口通过交换设备向服务器转发;其中,该故障通告报文中携带用于表示终端设备不支持负载分担的信息、以禁止流数据请求报文中携带所述负载分担标识。由上述技术方案可见,在本发明中,至少两个网络端口连接外部交换设备、并被划分至不同的VLAN,能够利用不同VLAN对各网络端口的隔离避免各网络端口与外部交换设备构成环路、从而能够避免由环路导致的广播风暴,而且,还能够利用对应的VLAN与任意网络端口之间实现转发。这样,对于正常的转发,仍可以通过查找MAC转发表的常规方式来实现;而对于需要负载分担的转发,则可以通过在对应的VLAN内的强行转发来实现。如此一来,无需利用Smart-link、端口聚合等相关特性即可实现可靠的负载分担。


图Ia至图Ie为本发明实施例中的原理性示意图;图2为本发明实施例中实现负载分担的方法的示例性流程示意图;图3为针对如图2所示流程的表项学习过程的流程示意图;图4为针对如图2所示流程的能力通告过程的流程示意图;图5为针对如图2所示流程的故障通告过程的流程示意图。
具体实施例方式为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。图Ia至图Ie为本发明实施例中的原理性示意图。在图Ia至图Ie中例如EC等可提供流数据的终端设备内设置有一交换芯片。该交换芯片为终端设备提供至少两个网络端口 Pl Pn (η为大于1的正整数)、以及一个内部端口 Ρ0。至少两个网络端口 Pl Pn分别属于不同的VLANl VLANn、并与终端设备外的同一台交换设备上的对应端口 SPl SPn相连,即,每个网络端口 Pi属于对应的VLANi (i为大于等于1且小于等于η的正整数)、并与交换设备上的对应端口 SPi相连。这样,由于分属于不同VLAN的网络端口 Pl Pn网络端口之间相互隔离,因此,即便交换设备上的任意端口 SPi向对应的网络端口 Pi发送了广播报文,对应的网络端口 Pi接收到的广播报文也不会从其他网络端口再向交换设备转发,从而避免与网络端口 Pl Pn与交换设备构成环路、以及由环路导致的广播风暴。一个内部端口 PO同时属于所有网络端口 Pl Pn所属的VLANl VLANn、并与终端设备内的处理器相连。这样,可以由处理器通过内部端口 PO进行ARP学习、并保证内部端口 PO能够利用对应的VLANi与任意网络端口 Pi之间实现转发。终端设备上电后,请先后参见图Ia和图Ib 1)处理器中尚未学习到任何三层的ARP表项,因此,向交换芯片的内部端口 PO发送以终端设备MAC地址为源地址的ARP请求报文;其中,由于此时的交换芯片也尚未学习到任何二层的MAC转发表项,因此,ARP请求报文的源地址为终端设备MAC地址、目的地址为广播地址;2)交换芯片从内部端口 PO接收到处理器发送的ARP请求报文、并在内部端口 PO 学习ARP请求报文的源地址,即,依据内部端口 PO的索引、以及终端设备MAC地址建立下行方向MAC转发表项(本文所述的“下行方向”是指从交换设备侧至终端设备侧的方向)。以及,交换芯片依据作为ARP请求报文的目的地址的广播地址,将ARP请求报文依次从各网络端口 PO Pn转发。3)由于ARP请求报文是依次从各网络端口 PO Pn转发,因而交换设备的对应端口 SPl SPn接收ARP请求报文的时间存在一定的间隔。那么,如果交换设备的对应端口 SPl SPn未进行聚合,则最终会在最后一个接收到ARP请求报文的端口 SPi上学习到终端设备MAC地址;如果交换设备的对应端口 SPl SPn被聚合,则会在聚合的逻辑端口上学习到终端设备MAC地址。4)交换设备将ARP请求报文继续广播,使ARP请求报文最终能够到达流目的端。 其中,对于终端设备与例如VM(Vide0 Management,视频管理)服务器等需要获取流数据的
8服务器处于同一 IP网段的情况,流目的端可以就是该服务器;而对于终端设备与服务器处于不同IP网断的情况,流目的端可以是网关。5)交换设备接收到来自流目的端的ARP响应报文,该ARP响应报文的源地址为流目的端MAC地址、目的地址为终端设备MAC地址。如果交换设备的对应端口 SPl SPn未进行聚合,则交换设备利用其最终学习到终端设备MAC地址的对应端口 SPi将ARP响应报文向终端设备转发;如果交换设备的对应端口 SPl SPn被聚合,则交换设备利用预定的算法任选一个对应端口 SPi将ARP响应报文向终端设备转发。6)交换芯片从对应于对应端口 SPi的任一网络端口 Pi接收ARP响应报文、并在接收ARP响应报文的网络端口 Pi学习ARP响应报文的源地址,即,依据接收ARP响应报文的网络端口 Pi的索弓丨、以及流目的端MAC地址建立上行方向MAC转发表项(本文所述的“上行方向”是指从终端设备侧至交换设备侧的方向)。以及,由于ARP响应报文的目的地址为终端设备MAC地址,因此,利用已建立的与内部端口 PO对应的下行方向MAC转发表项即可将ARP响应报文从内部端口 PO转发至处理器。7)处理器利用ARP响应报文进行三层的ARP学习、建立ARP表项。经过上述如图Ia和图Ib所示的过程,即实现了交换芯片中二层的MAC转发表项的学习、以及处理器中三层的ARP表项的学习。基于交换芯片中学习到的二层的MAC转发表项、以及处理器中学习到的三层的 ARP表项,即交换芯片即可利用学习到流目的端MAC地址的网络端口 Pi实现正常的流数据转发;而且,基于交换芯片内划分的各VLAN、以及处理器中学习到的三层的ARP表项,交换芯片还能够利用未学习到流目的端MAC地址的其他网络端口 Pj实现负载分担的流数据转发。为了使需要获得流数据的服务器能够获知终端设备具有负载分担的能力、并触发终端设备的负载分担,还需要通过优化现有的注册机制来实现终端设备上报其具有负载分担的能力,请再参见图Ic 8)处理器发送以流目的端MAC地址为目的地址的注册请求报文,该注册请求报文中携带用于表示终端设备支持负载分担的信息、以允许服务器在流数据请求报文中携带用于表示需要负载分担的负载分担标识。9)、交换芯片在其内部端口 PO接收到注册请求报文后,能够利用其目的地址、即流目的端MAC地址查找到与网络端口 Pi对应的上行方向MAC转发表项,并依据查找到的上行方向MAC转发表项将注册请求报文从对应的网络端口 Pi转发。10)、由于服务器能够获知终端设备具有负载分担的能力,因此,服务器既可以发送常规的流数据请求报文、以使终端设备实现正常的转发,也可以发送携带有负载分担标识的流数据请求报文、以使终端设备实现负载分担的转发。依据服务器的要求,终端设备即可实现正常转发或负载分担转发,具体实现方式请参见图Id和图Ie 11)交换设备从流目的端接收到需要获得流数据的服务器的流数据请求报文,该流数据请求报文的源地址为流目的端MAC地址、目的地址为终端设备MAC地址。如果交换设备的对应端口 SPl SPn未进行聚合,则对于每次从流目的端接收到的流数据请求报文, 交换设备都会利用其最终学习到终端设备MAC地址的对应端口 SPi向终端设备转发;如果交换设备的对应端口 SPl SPn被聚合,则对于每次从流目的端接收到的流数据请求报文, 交换设备通常都会利用其之前在转发ARP响应报文时选定的一个对应端口 SPi向终端设备转发。12)交换芯片从其网络端口 Pi接收流数据请求报文。其中,由于交换设备转发流数据请求报文的对应端口 SPi与之前转发ARP响应报文的对应端口 SPi通常是同一端口, 因此,交换芯片接收到流数据请求报文的网络端口 Pi与之前接收ARP响应报文、并已学习到流目的端MAC地址的网络端口 Pi通常也会是同一端口。那么,交换芯片利用流数据请求报文的目的地址、即终端设备MAC地址查找MAC转发表,然后,依据查找到的与内部端口 PO 对应的下行方向MAC转发表项将流数据请求报文从内部端口 PO转发至处理器。13)处理器接收到流数据请求报文后获知需要发送流数据,并依据流数据请求中是否携带负载分担标识来识别出需要发送的数据流是否负载分担。对于不需要负载分担的情况,处理器只需要按照常规方式,利用其学习到的ARP 转发表项将来自流数据源的流数据封装为流数据封装报文,并设置流数据封装报文的源地址为终端设备的MAC地址、目的地址为流目的端MAC地址。这样,由于交换芯片中仅有一个网络端口 Pi学习到了流目的端MAC地址,因此处理器按照常规方式封装的流数据封装报文能够从网络端口 Pi进行常规的转发。对于需要负载分担的情况,处理器仍需要按照上述的常规方式先封装出流数据封装报文,但还会进一步在流数据封装报文中携带VLANj的Tag(标记)头,以使携带VLANj 的Tag头的流数据封装报文能够从其他网络端口 Pj (j为大于等于1且小于等于η的正整数、j不等于i)转发、以负载分担。假设,服务器为VM服务器、网络设备为EC,EC的网络端口共有2个,其中一个学习到网关MAC地址、另一个未学习到网关MAC地址,VM服务器在接收到携带用于表示网络设备支持负载分担的信息的注册请求报文后VM服务器收到向EC获取实况视频的请求1,如果EC此时尚没有依据任何请求提供流数据封装报文,则VM服务器发送不携带标记的常规的流数据请求报文1 ;VM服务器收到向EC获取实况视频的请求2,EC此时已针对流数据请求报文1提供流数据封装报文,则VM服务器认为需要进行负载分担,因此发送携带标记的表示需要负载分担的流数据请求报文2 ;此后,VM服务器针对奇数次的请求发送常规的数据流请求报文、针对偶数次的请求发送表示需要负载分担的流数据请求报文,以要求EC交替地利用学习到网关MAC地址的一个网络端口实现正常的转发、利用未学习到网关MAC地址的另一个网络端口实现负载分担的转发。14)交换芯片从内部端口 PO接收处理器发送的流数据封装报文后,先判断该流数据封装报文是否携带有针对负载分担标识的VLANj的Tag头;在流数据封装报文中未携带VLANj的Tag头时,交换芯片利用流数据封装报文的目的地址、即流目的端MAC地址查找MAC转发表,然后,依据查找到的与Pi对应的上行方向 MAC转发表项将流数据封装报文从对应的网络端口 Pi正常转发;在流数据封装报文中携带有VLANj的Tag头时,交换芯片利用流数据封装报文的目的地址、即流目的端MAC地址无法查找到任何匹配的MAC转发表项,因此,将流数据封装报文从属于对应VLANj的网络端口 Pj强行转发,并且,在转发之前还需要剥除流数据封装报文携带的VLANj的Tag头,以便于交换设备无需识别VLANj的Tag头、并能够按照常规方式对网络端口 Pj转发的流数据封装报文进行处理。实际应用中,为了使内部端口 PO能够允许流数据封装报文携带VLANj的Tag头, 可以将内部端口 PO设置为Trunk(干线)属性或hybrid(混合)属性;而为了使流数据封装报文携带的VLANj的Tag头能够在转发之前被剥除,可以将所有网络端口 Pl Pn均设置为Access (接入)属性。1 交换设备的对应端口 SPi或SPj在接收到流数据封装报文,即可按照常规方式向流目的端转发。如果交换设备的对应端口 SPl SPn未进行聚合,则在负载分担的情况下,交换设备会从对应的端口 SPj接收到流数据封装报文,此时,交换设备就会删除在端口 SPi学习到的终端设备MAC地址、并在对应的端口 SPj重新学习终端设备MAC地址,即,交换设备需要进行终端设备MAC地址的刷新、使其最终学习到终端设备MAC地址的端口由SPi变更为SPj ;在此之后,交换设备在从流目的端接收到的流数据请求报文时,就会利用端口 SPj进行转发;相应地,交换芯片在接收到数据流请求报文的网络端口 Pj不是已建立的上行方向MAC转发表项所对应的网路端口 Pi时,同样需要进行流目的端MAC地址的刷新、使其学习到流目的端MAC地址的网络端口由Pi变更为Pj,即,删除网络端口 Pi所对应的上行方向MAC转发表项,并依据接收到流数据请求报文的网络端口 Pj的索引、以及作为流数据请求报文的源地址的流目的端MAC地址重新建立新的上行方向MAC转发表项,那么,后续的正常转发就是通过Pj来实现、而网络端口 Pi则会用于负载分担的转发。也就是说,在交换设备的对应端口 SPl SPn未进行聚合的情况下,利用Pj进行负载分担的流数据转发通常会导致交换设备和交换芯片发生MAC地址刷新,但并不会影响负载分担的实现。如果交换设备的对应端口 SPl SPn被聚合为一个逻辑端口,则在负载分担的情况下,不会导致交换设备进行终端设备MAC地址的刷新;但即便如此,交换设备在转发从流目的端接收到的流数据请求报文时,也仍有可能使用除在转发 ARP响应报文时选定的对应端口 SPi之外的其他对应端口 SHi(k为大于等于1且小于等于 η的正整数、k不等于i),甚至每次转发流数据请求报文所使用的对应端口 SHi都有可能不同;相应地,即便交换设备没有进行终端设备MAC地址的刷新,但只要交换芯片接收到数据流请求报文的网络端口 1 不是已建立的上行方向MAC转发表项所对应的网路端口 Pi,也还是需要进行流目的端MAC地址的刷新、使其学习到流目的端MAC地址的网络端口由 Pi变更为Pk,即,删除网络端口 Pi所对应的上行方向MAC转发表项,并依据接收到流数据请求报文的网络端口沖的索引、以及作为流数据请求报文的源地址的流目的端MAC地址重新建立新的上行方向MAC转发表项,那么,后续的正常转发就是通过1 来实现、而网络端口 Pi则会用于负载分担的转发。也就是说,在交换设备的对应端口 SPl SPn聚合为一个逻辑端口的情况下,交换芯片也随时有可能发生MAC地址刷新,但并不会影响负载分担的实现。
11
如上可见,相互隔离的所有网络端口 Pl Pn中有一个网络端口 Pi能够学习到流目的端MAC地址,因而利用查找MAC转发表项的常规方式即可通过学习到流目的端MAC地址的一个网络端口 Pi实现正常的转发;而虽然网络端口 Pj其他没有学习到流目的端MAC 地址,可以通过在对应的VLANj内的强行转发而实现负载分担。从而,由于所有网络端口 Pl Pn均能够通过查找MAC转发表项或VLAN实现转发、且所有网络端口 Pl Pn之间由于被VLAN隔离不会发生广播风暴,因而无需利用端口聚合、Smart-link等相关特性即可实现可靠的负载分担。此外,网络端口 Pl Pn均有可能会由于链路故障等原因而由可用变为不可用 (即由 “Up” 变为 “Down”)。如果学习到流目的端MAC地址的网络端口 Pi变为不可用,交换芯片不会再通过网络端口 Pi所在链路转发流数据请求报文、并删除网络端口 Pi所对应的上行方向MAC转发表项。相应地,交换设备也不会再通过网络端口 Pi所在链路转发流数据请求报文,而是需要从其他的网络端口 1 所在链路转发流数据请求报文,那么,在其他的网络端口 1 接收到流数据请求报文后,可以在接收到流数据请求报文的网络端口 1 学习到用作流数据请求报文的源地址的流目的端MAC地址,即,依据接收到流数据请求报文的网络端口 1 的索引、 以及作为流数据请求报文的源地址的流目的端MAC地址建立新的上行方向MAC转发表项。 也就是说,学习到流目的端MAC地址的网络端口 Pi不可用后,会导致交换设备和交换芯片发生MAC地址刷新,但并不会影响负载分担的实现。如果未学习到流目的端MAC地址的其他网络端口 Pj变为不可用,则由于处理器能够通过对所有网络端口 Pl Pn的状态检测获知,因而处理器能够保证在未学习到流目的端MAC地址的其他网络端口 Pj不可用后,不会再利用该网络端口 Pj进行负载分担。因此, 当网络端口 Pl Pn中出现不可用的网络端口 Pi或Pj时,但只要可用的总数至少为两个, 就不会影响正常的转发和用于负载分担的转发。但是,当所有网口端口 Pl Pn中仅剩一个可用时,即便服务器要求进行负载分担,终端设备也无法实现负载分担的转发。因此,本实施例还提供了一种故障通告机制。具体说,处理器需要发送以流目的端MAC地址为目的地址的故障通告,该故障通告报文中携带用于表示终端设备不支持负载分担的信息、以使上述服务器或客户端取消在流数据请求报文中携带负载分担标识;交换芯片在从内部端口 PO接收到故障通告报文后, 即可依据查找到的上行方向MAC转发表项(按照如前所述的方式在仅剩的一个网络端口上重新学习到)从仅剩的一个可用的网络端口沖转发。仍假设服务器为VM服务器、终端设备为EC,EC的网络端口共有2个,其中一个学习到流目的端MAC地址、另一个未学习到流目的端MAC地址。当学习到流目的端MAC地址的一个网络端口不可用后,会删除在该网络端口学习到的流目的端MAC地址,并通过仅剩的一个可用网络端口向VM服务器发送故障通告报文,以告知VM服务器该EC目前无法实现负载分担的转发、并禁止VM服务器在流数据请求报文中携带负载分担标识。基于以上的基本原理,本实施例提供一种基于多网络端口实现负载分担的方法, 该方法应用于如图Ia至如图Ic中示出的可提供流数据的终端设备内的交换芯片。如图2 所示,该方法针对每一次的流数据请求,均包括在该交换芯片之行的如下步骤步骤231,从任一网络端口 Pi接收到来自流目的端的流数据请求报文,该流数据请求报文能够通过携带一负载分担标识来表示其请求的流数据需要负载分担。其中,流数据请求报文携带的负载分担标识就是由需要获取流数据的服务器所添加,该服务器可以是流目的端、也可以是由网关来作为流目的端。如果本步骤中接收流数据请求报文的网络端口 Pi并不是与当前已建立的上行方向MAC转发表项所对应的网络端口,则需要进一步删除已建立的上行方向MAC转发表项,并依据在本步骤接收到流数据请求报文的网络端口 Pi的索引、以及流目的端MAC地址建立新的上行方向MAC转发表项。此外,如果已建立的上行方向MAC转发表项所对应的网络端口在本步骤之前即不可用,则在步骤之前即会删除已建立的上行方向MAC转发表项,并依据在本步骤接收到流数据请求报文的网络端口 Pi的索引、以及流目的端MAC地址建立新的上行方向MAC转发表项。步骤232,由于接收到的数据请求报文以流目的端MAC地址为源地址、以终端设备 MAC地址为目的地址,因此,将从任一网络端口 Pi接收的流数据请求报文通过查找MAC转发表的常规方式从下行方向MAC转发表项所对应的内部端口 PO转发至处理器。在本步骤之后,处理器依据其学习到的ARP表项,将来自流数据源的流数据封装为流数据封装报文。并且,由于接收到的流数据请求报文能够通过携带一负载分担标识来表示其请求的流数据需要负载分担,因此,如果流数据请求报文进一步携带有表示负载分担标识,处理器还会在流数据报文中携带VLANj的Tag头,以表示不利用当前的上行方向MAC转发表项所对应的网络端口 Pi实现正常的转发、而是利用未学习到流目的端MAC地址的其他网络端口 Pj进行负载分担的转发。其中,VLANj为除上行方向MAC转发表项对应的网络端口 Pi所述VLANi之外的任一 VLAN。步骤233,从内部端口接收以流目的端MAC地址为目的地址的流数据封装报文,并判断流数据封装报文中是否携带有针对负载分担标识的VLANj的Tag头,如果是,则执行步骤235,否则执行步骤234。步骤234,在流数据封装报文中未携带VLANj的Tag头时,采用常规的查找MAC转发表的方式,依据查找到的上行方向MAC转发表项将流数据封装报文从对应的网络端口 Pi 转发,然后结束针对本次流数据请求的流程。步骤235,在流数据封装报文中携带有VLANj的Tag头时,将流数据封装报文携带的VLANj的Tag头剥除后从属于对应VLANj的网络端口 Pj转发,然后结束针对本次流数据请求的流程。其中,属于对应VLANj的网络端口 j为除上行方向MAC转发表项对应的网络端口 Pi之外的任一网络端口。至此,针对一次流数据请求的流程结束。当然,对于不需要负载分担的正常转发,处理器也可以在流数据封装报文中携带 VLANi的Tag头,仍能够确保该流数据报文在携带的Tag头被剥除后从上行方向MAC转发表项对应的网络端口 Pi转发。以上如图2所示流程中所使用的上行方向MAC转发表项和下行方向MAC转发表项可以是在如图3所示的流程中建立的。如图3所示,本实施例中基于多网络端口实现负载分担的方法在执行如图2所示流程之前,还需要在交换芯片执行可用于建立MAC转发表项的如下步骤步骤211,从内部端口 PO接收处理器发送的ARP请求报文。步骤212,依据内部端口 PO的索引、以及作为ARP请求报文的源地址的终端设备 MAC地址建立下行方向MAC转发表项。步骤213,依据作为ARP请求报文的目的地址的广播地址,将ARP请求报文依次从各网络端口 Pl Pn转发至交换设备。步骤214,从任一网络端口 Pi接收来自交换设备的ARP响应报文。其中,本步骤接收ARP响应报文的网络端口 Pi与图2中步骤231接收流数据请求报文的网络端口 Pi可能是同一个、也可能不是同一个。步骤215,依据接收ARP响应报文的网络端口 Pi的索弓丨、以及作为ARP响应报文的源地址的流目的端MAC地址建立上行方向MAC转发表项。步骤216,依据下行方向MAC转发表项将目的地址为终端设备MAC地址的ARP响应报文从内部端口 PO转发至处理器,以供处理器利用ARP响应报文学习ARP表项。至此,上述流程结束。当然,如图2所示流程中所使用的上行方向MAC转发表项和下行方向MAC转发表项,也可以不按照如图3所示的方式建立,而是采用本领域技术人员所能够实现的其他方
式来建立。此外,在建立上行方向MAC转发表项和下行方向MAC转发表项之后,为了使需要获取流数据的服务器能够获知终端设备具备负载分担的能力,可以利用向该服务器的注册机制来通告该服务器。因此,本实施例中基于多网络端口实现负载分担的方法还可以按照如图4所示的流程,在交换芯片执行用于利用注册实现负载分担能力通告的如下步骤步骤221,从内部端口 PO接收处理器发送的以流目的端MAC地址为目的地址的注册请求报文,该注册请求报文中携带用于表示终端设备支持负载分担的信息、以允许流数据请求报文中携带负载分担标识。步骤222,依据查找到的上行方向MAC转发表项将注册请求报文从对应的网络端口 Pi转发至交换设备,以使注册请求报文能够到达需要获取流数据的服务器。至此,上述流程结束。在上述如图4所示的流程之后,如果终端设备的网络端口 Pl Pn中仅剩一个可用,则需要使服务器获知终端设备当前已不具备负载分担的能力,可以利用一新的故障通告机制来告知该服务器。因此,本实施例中基于多网络端口实现负载分担的方法还可以按照如图5所示的流程,在交换芯片执行用于实现故障通告的如下步骤步骤Ml,在所有网口端口 Pl Pn中仅有一个可用时,从内部端口 PO接收到处理器发送的以流目的端MAC地址为目的地址的故障通告报文,该故障通告报文中携带用于表示终端设备不支持负载分担的信息、以取消流数据请求报文中携带用于表示流数据封装报文需要负载分担的标识。步骤M2,依据查找到的上行方向MAC转发表项(经过多次MAC地址刷新而对应仅有的一个可用的对应网络端口沖),将故障通告报文从仅有的一个可用的对应网络端口 1 转发至交换设备,以使故障通告报文能够到达需要获取流数据的服务器。此外,在所有网口端口 Pl Pn中仅有一个可用时,还可以取消对所有网络端口Pl 1 以及内部端口 PO的VLAN划分。至此,上述流程结束。本实施例提供的上述基于多网络端口实现负载分担的方法可以利用计算机程序来实现。相应地,本实施例还提供一种对应的基于多网络端口实现负载分担的装置,该装置承载于如图Ia至如图Ie中示出的可提供流数据的终端设备内的交换芯片,并包括请求转发模块,将从任一网络端口 Pi接收的来自流目的端、并以终端设备MAC地址为目的地址的流数据请求报文,通过查找MAC转发表的方式从下行方向MAC转发表项所对应的内部端口 PO转发至处理器。其中,流数据请求报文能够通过携带一负载分担标识来表示其请求的流数据需要负载分担,以使处理器根据该标识决定是否进行负载分担、并在决定进行负载分担的流数据封装报文中携带VLAN标记头。此外,如果数据请求接收模块接收流数据请求报文的网络端口 Pi并不是与当前已建立的上行方向MAC转发表项所对应的网络端口,则需要一表项删除模块删除已建立的上行方向MAC转发表项,并由一表项刷新模块依据数据请求接收模块接收到流数据请求报文的网络端口 Pi的索引、以及作为流数据请求报文的源地址的流目的端MAC地址建立新的上行方向MAC转发表项。此外,如果已建立的上行方向MAC转发表项所对应的网络端口变为不可用,则表项删除模块也会删除已建立的上行方向MAC转发表项,并仍由表项刷新模块依据数据请求接收模块接收到流数据请求报文的网络端口 Pi的索引、以及作为流数据请求报文的源地址的流目的端MAC地址建立新的上行方向MAC转发表项。转发判断模块,判断处理器发送到内部端口 PO的流数据封装报文中是否携带有针对负载分担标识的VLANj的Tag头。其中,在流数据请求报文中携带有负载分担标识时, 处理器会在与该流数据请求报文对应的流数据封装报文中携带VLANj的Tag头。数据转发模块,在流数据封装报文中携带有VLAN标记头时,将流数据封装报文携带的VLANj的Tag头剥除后从属于对应VLANj的网络端口 Pj转发;属于对应VLANj的网络端口 Pj为除上行方向MAC转发表项对应的网络端口 Pi之外的任一网络端口。数据转发模块,还进一步在流数据封装报文中未携带VLANj的Tag头时,将未携带 VLANj的Tag头的流数据封装报文按照查找MAC转发表的常规方式,从上行方向MAC转发表项对应的网络端口 Pi转发。当然,对于不需要负载分担的正常转发,处理器也可以在流数据封装报文中携带VLANi的Tag头,仍能够确保该流数据报文在携带的Tag头被剥除后从上行方向MAC转发表项对应的网络端口 Pi转发。而且,为了实现上行MAC转发表项和下行MAC转发表项的建立、以及处理器对ARP 表项的学习,该装置还包括ARP转发模块,将从内部端口 PO接收处理器发送的以终端设备MAC地址为源地址、 以广播地址为目的地址的ARP请求报文依次从各网络端口 Pl Pn转发。第一表项模块,依据内部端口 PO的索引、以及作为ARP请求报文的源地址的网络设备MAC地址建立下行方向MAC转发表项。ARP转发模块,还将从任一网络端口 Pi接收的以流目的端MAC地址为源地址、以终端设备MAC地址为目的地址的ARP响应报文,通过查找MAC转发表的方式从下行方向MAC 转发表项对应的内部端口 PO转发至处理器,以供处理器利用ARP响应报文学习ARP表项;其中,接收ARP响应报文的网络端口 Pi与数据请求接收模块接收流数据请求报文的网络端口 Pi可能是同一个、也可能不是同一个。第二表项模块,依据接收ARP响应报文的网络端口 Pi的索引、以及作为ARP响应报文的源地址的流目的端MAC地址建立上行方向MAC转发表项。为了能够向网络中需要获取流数据的服务器注册、并向该服务器通告终端设备是否能够支持负载分担,该装置还可以包括注册转发模块,将从内部端口 PO接收以流目的端MAC地址为目的地址的注册请求报文,以查找MAC转发表的方式从上行方向MAC转发表项对应的网络端口 Pi转发。其中, 该注册请求报文中携带用于表示终端设备支持负载分担的信息、以允许流数据请求报文中携带负载分担标识。通告转发模块,在所有网口端口 Pl Pn中仅有一个可用时,将从内部端口 PO接收处理器发送的以流目的端MAC地址为目的地址的故障通告报文,以查找MAC转发表的方式从上行方向MAC转发表项对应的仅剩的一个可用的网络端口 1 转发。其中,该故障通告报文中携带用于表示终端设备不支持负载分担的信息、以取消流数据请求报文中携带负载分担标识。上述实施例均是以终端设备中的内部结构包括交换芯片及处理器为例,实际应用中,终端设备也可以采用任意的结构。那么,为了适用于各种结构的终端设备,本发明实施例中还基于同样的基本原理,提供了更为通用的一种基于多网络端口实现负载分担的方法、以及一种基于多网络端口实现负载分担的系统。本实施例提供的一种基于多网络端口实现负载分担的方法,该方法用于终端设备 (例如EC)向服务器(例如VM服务器)提供流数据,该终端设备具有至少两个网络端口 Pl Pn,至少两个网络端口 Pl Pn与同一台用于实现服务器与终端设备交互的交换设备相连;而且,至少两个网络端口 Pl Pn被分别划分至不同的VLANl VLANn、并较佳地均设置为Access属性;且,该方法包括在终端设备执行的如下步骤Al、接收服务器通过交换设备发送至任一网络端口 Pi的流数据请求报文;其中, 从MAC转发表中能够查找到下行方向MAC转发表项(建立该下行方向MAC转发表项的方式与前文所述的方式采用相同的原理)、该下行方向MAC转发表项可以指向终端设备内的用于处理流数据请求报文的任意位置处。如果本步骤中接收流数据请求报文的网络端口 Pi并不是与当前已建立的上行方向MAC转发表项(建立该上行方向MAC转发表项的方式与前文所述的方式采用相同的原理)所对应的网络端口,则需要进一步删除已建立的上行方向MAC转发表项,并针对在本步骤接收到流数据请求报文的网络端口 Pi建立新的上行方向MAC转发表项。此外,如果已建立的上行方向MAC转发表项所对应的网络端口在本步骤之前即不可用,则在步骤之前即会删除已建立的上行方向MAC转发表项,并针对本步骤接收到流数据请求报文的网络端口 Pi建立新的上行方向MAC转发表项。在步骤Al之后,终端设备能够判断流数据请求报文中是否有表示其请求的流数据需要负载分担的负载分担标识。A2、在流数据请求报文中携带有所述负载分担标识时,在封装得到的流数据封装报文中携带VLANj的Tag头、并将封装得到的流数据封装报文通过该Tag头对应的VLANj 发送至属于该VLANj的网络端口 j、再将该Tag头剥除后从该网络端口 j通过交换设备向服务器转发。上述步骤A2还可以进一步在流数据请求报文中未携带所述负载分担标识时,将封装得到的流数据封装报文通过查找MAC转发表发送至对应的网络端口 Pi、再从该网络端口 Pi通过交换设备向服务器转发;其中,从MAC转发表中所查找到的上行方向MAC转发表项即指向该网络端口 Pi。当然,对于不需要负载分担的正常转发,处理器也可以在流数据封装报文中携带VLANi的Tag头,仍能够确保该流数据报文在携带的Tag头被剥除后从上行方向MAC转发表项对应的网络端口 Pi转发。该方法在步骤Al之前进一步包括用于通过注册机制向服务器上报负载分担能力的步骤A0、将生成的注册请求报文通过查找MAC转发表发送至对应的网络端口 Pi、再从该网络端口 Pi通过交换设备向服务器转发;其中,该注册请求报文中携带用于表示终端设备支持负载分担的信息、以允许流数据请求报文中携带所述负载分担标识。该方法在所述步骤AO之后进一步包括用于向服务器通告故障的步骤B0、在所有网口端口 Pl Pn中仅有一个可用时,将生成的故障通告报文通过查找MAC转发表发送至仅有的一个可用的网络端口 Pk、并从该网络端口 1 通过交换设备向服务器转发;其中,该故障通告报文中携带用于表示终端设备不支持负载分担的信息、以禁止流数据请求报文中携带所述负载分担标识。本发明实施例中提供的一种基于多网络端口实现负载分担的系统,该系统包括服务器(例如VM服务器)、用于向服务器提供流数据的终端设备(例如EC)、以及用于实现服务器与终端设备交互的交换设备,所述终端设备具有至少两个网络端口 Pi Pru所述至少两个网络端口 Pi Pn与同一台交换设备相连;至少两个网络端口 Pi Pn被分别划分至不同的VLANl VLANn、并较佳地均设置为Access属性;服务器,用于向交换设备发送流数据请求报文;其中,流数据请求报文能够通过携带一负载分担标识来表示其请求的流数据需要负载分担;交换设备,用于将流数据请求报文发送至终端设备的任一网络端口 Pi ;终端设备,用于接收服务器通过交换设备发送至任一网络端口 Pi的流数据请求报文;其中,从MAC转发表中能够查找到下行方向MAC转发表项(建立该下行方向MAC转发表项的方式与前文所述的方式采用相同的原理)、该下行方向MAC转发表项可以指向终端设备内的用于处理流数据请求报文的任意位置处。如果当前接收流数据请求报文的网络端口 Pi并不是与当前已建立的上行方向 MAC转发表项(建立该上行方向MAC转发表项的方式与前文所述的方式采用相同的原理) 所对应的网络端口,则终端设备需要进一步删除已建立的上行方向MAC转发表项,并针对当前接收到流数据请求报文的网络端口 Pi建立新的上行方向MAC转发表项。此外,如果已建立的上行方向MAC转发表项所对应的网络端口在当前接收流数据请求报文之前即不可用,则在此之前即会删除已建立的上行方向MAC转发表项,并需要终端设备进一步针对当前接收到流数据请求报文的网络端口 Pi建立新的上行方向MAC转发表项。
终端设备还用于判断流数据请求报文中是否有表示其请求的流数据需要负载分担的负载分担标识。在流数据请求报文中携带有所述负载分担标识时,终端设备在封装得到的流数据封装报文中携带VLANj的Tag头、并通过该Tag头对应的VLANj发送至属于该VLANj的网络端口 Pj、再将该Tag头剥除后从该网络端口 Pj通过交换设备向服务器转发;以及,在流数据请求报文中未携带所述负载分担标识时,终端设备将封装得到的流数据封装报文通过查找MAC转发表发送至对应的网络端口 Pi、再从该网络端口 Pi通过交换设备向服务器转发。其中,从MAC转发表中所查找到的上行方向MAC转发表项即指向该网络端口 Pi。当然,对于不需要负载分担的正常转发,处理器也可以在流数据封装报文中携带VLANi的Tag头,仍能够确保该流数据报文在携带的Tag头被剥除后从上行方向MAC转发表项对应的网络端口 Pi转发。为了向服务器上报负载分担能力,在接收流数据请求报文之前,终端设备还可以进一步将生成的注册请求报文通过查找MAC转发表发送至对应的网络端口 Pi、再从该网络端口 Pi通过交换设备向服务器转发;其中,该注册请求报文中携带用于表示终端设备支持负载分担的信息、以允许流数据请求报文中携带所述负载分担标识。为了能够向服务器通报故障,在通过注册机制上报负载分担能力之后,终端设备还可以进一步在所有网口端口 Pl Pn中仅有一个可用时,将生成的故障通告报文通过查找MAC转发表发送至仅有的一个可用的网络端口 Pk、并从该网络端口 1 通过交换设备向服务器转发;其中,该故障通告报文中携带用于表示终端设备不支持负载分担的信息、以禁止流数据请求报文中携带所述负载分担标识。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
18
权利要求
1.一种基于多网络端口实现负载分担的方法,该方法应用于可提供流数据的终端设备中,该终端设备包括至少两个网络端口和一内部端口,所述至少两个网络端口与终端设备外的同一台交换设备相连,一个内部端口与终端设备内的处理器相连;其特征在于,至少两个网络端口被分别划分至不同的VLAN、一个内部端口被同时划分至所有网络端口所属的VLAN ;且,该方法包括al、将从任一网络端口接收的来自流目的端的流数据请求报文从内部端口转发至处理器;其中,流数据请求报文能够通过携带一负载分担标识来表示其请求的流数据需要负载分担,以使处理器根据该标识决定是否进行负载分担、并在决定进行负载分担的流数据封装报文中携带VLAN标记头;a2、在流数据封装报文中携带有VLAN标记头时,将流数据封装报文携带的VLAN标记头剥除后从属于对应VLAN的网络端口转发。
2.如权利要求1所述的方法,其特征在于,所述步骤a2进一步在流数据封装报文中未携带所述VLAN标记头时,将流数据封装报文通过查找MAC转发表从对应的网络端口转发。
3.如权利要求1或2所述的方法,其特征在于,该方法在所述步骤al之前进一步包括 a0、将从内部端口接收的注册请求报文通过查找MAC转发表从对应的网络端口转发;其中,该注册请求报文中携带用于表示终端设备支持负载分担的信息、以允许流数据请求报文中携带所述负载分担标识。
4.如权利要求3所述的方法,其特征在于,该方法在所述步骤aO之后进一步包括 b0、在所有网口端口中仅有一个可用时,将从内部端口接收的故障通告报文通过查找MAC转发表从仅有的一个可用的网络端口转发;其中,该故障通告报文中携带用于表示终端设备不支持负载分担的信息、以禁止流数据请求报文中携带所述负载分担标识。
5.一种基于多网络端口实现负载分担的装置,该装置承载于可提供流数据的终端设备中,该终端设备包括至少两个网络端口以及一个内部端口,所述至少两个网络端口与终端设备外的同一台交换设备相连,一个内部端口与终端设备内的处理器相连;其特征在于,至少两个网络端口被分别划分至不同的VLAN、一个内部端口被同时划分至所有网络端口所属的VLAN ;且,该装置包括请求转发模块,将从任一网络端口接收的来自流目的端的流数据请求报文从内部端口转发至处理器;其中,流数据请求报文能够通过携带一负载分担标识来表示其请求的流数据需要负载分担,以使处理器根据该标识决定是否进行负载分担、并在决定进行负载分担的流数据封装报文中携带VLAN标记头;数据转发模块,在流数据封装报文中携带有VLAN标记头时,将流数据封装报文携带的 VLAN标记头剥除后从属于对应VLAN的网络端口转发。
6.如权利要求5所述的装置,其特征在于,所述数据转发模块进一步在流数据封装报文中未携带所述VLAN标记头时将流数据封装报文通过查找MAC转发表从对应的网络端口转发。
7.如权利要求5或6所述的装置,其特征在于,该装置进一步包括注册转发模块,将从内部端口接收的注册请求报文通过查找MAC转发表从对应的网络端口转发;其中,该注册请求报文中携带用于表示终端设备支持负载分担的信息、以允许流数据请求报文中携带所述负载分担标识。。
8.如权利要求7所述的装置,其特征在于,该装置进一步包括通告转发模块,在所有网口端口中仅有一个可用时,将从内部端口接收的故障通告报文通过查找MAC转发表从仅有的一个可用的网络端口转发;其中,该故障通告报文中携带用于表示终端设备不支持负载分担的信息、以禁止流数据请求报文中携带所述负载分担标识。
9.一种基于多网络端口实现负载分担的方法,该方法用于终端设备向服务器提供流数据,所述终端设备具有至少两个网络端口,所述至少两个网络端口与同一台用于实现服务器与终端设备交互的交换设备相连;其特征在于,至少两个网络端口被分别划分至不同的VLAN ;且,该方法包括Al、接收服务器通过交换设备发送至任一网络端口的流数据请求报文;其中,流数据请求报文能够通过携带一负载分担标识来表示其请求的流数据需要负载分担;A2、在流数据请求报文中携带有所述负载分担标识时,在封装得到的流数据封装报文中携带VLAN标记头、并通过该VLAN标记头对应的VLAN发送至属于该VLAN的网络端口、再将VLAN标记头剥除后从该网络端口通过交换设备向服务器转发。
10.如权利要求9所述的方法,其特征在于,所述步骤A2进一步在流数据请求报文中未携带所述负载分担标识时,将封装得到的流数据封装报文通过查找MAC转发表发送至对应的网络端口、再从该网络端口通过交换设备向服务器转发。
11.如权利要求9或10所述的方法,其特征在于,该方法在所述步骤Al之前进一步包括AO、将生成的注册请求报文通过查找MAC转发表发送至对应的网络端口、再从该网络端口通过交换设备向服务器转发;其中,该注册请求报文中携带用于表示终端设备支持负载分担的信息、以允许流数据请求报文中携带所述负载分担标识。
12.如权利要求11所述的方法,其特征在于,该方法在所述步骤AO之后进一步包括B0、在所有网口端口中仅有一个可用时,将生成的故障通告报文通过查找MAC转发表发送至仅有的一个可用的网络端口、并从该网络端口通过交换设备向服务器转发;其中,该故障通告报文中携带用于表示终端设备不支持负载分担的信息、以禁止流数据请求报文中携带所述负载分担标识。
13.一种基于多网络端口实现负载分担的系统,该系统包括服务器、用于向服务器提供流数据的终端设备、以及用于实现服务器与终端设备交互的交换设备,所述终端设备具有至少两个网络端口、所述至少两个网络端口与同一台交换设备相连;其特征在于,至少两个网络端口被分别划分至不同的VLAN ;服务器,用于向交换设备发送流数据请求报文;其中,流数据请求报文能够通过携带一负载分担标识来表示其请求的流数据需要负载分担;交换设备,用于将流数据请求报文发送至终端设备的任一网络端口 ;终端设备,用于在流数据请求报文中携带有所述负载分担标识时,在封装得到的流数据封装报文中携带VLAN标记头、并通过该VLAN标记头对应的VLAN发送至属于该VLAN的网络端口、再将VLAN标记头剥除后从该网络端口通过交换设备向服务器转发。
14.如权利要求13所述的系统,其特征在于,终端设备进一步在流数据请求报文中未携带所述负载分担标识时,将封装得到的流数据封装报文通过查找MAC转发表发送至对应的网络端口、再从该网络端口通过交换设备向服务器转发。
15.如权利要求13或14所述的系统,其特征在于,终端设备进一步在接收流数据请求报文之前将生成的注册请求报文通过查找MAC转发表发送至对应的网络端口、再从该网络端口通过交换设备向服务器转发;其中,该注册请求报文中携带用于表示终端设备支持负载分担的信息、以允许流数据请求报文中携带所述负载分担标识。
16.如权利要求15所述的系统,其特征在于,终端设备进一步在所有网口端口中仅有一个可用时,将生成的故障通告报文通过查找MAC转发表发送至仅有的一个可用的网络端口、并从该网络端口通过交换设备向服务器转发;其中,该故障通告报文中携带用于表示终端设备不支持负载分担的信息、以禁止流数据请求报文中携带所述负载分担标识。
全文摘要
本发明公开了一种基于多网络端口实现负载分担的方法和装置。在本发明中,至少两个网络端口连接外部交换设备、并被划分至不同的VLAN,能够利用不同VLAN对各网络端口的隔离避免各网络端口与外部交换设备构成环路、从而能够避免由环路导致的广播风暴,而且,还能够利用对应的VLAN与任意网络端口之间实现转发。这样,对于正常的转发,仍可以通过查找MAC转发表的常规方式来实现;而对于需要负载分担的转发,则可以通过在对应的VLAN内的强行转发来实现。如此一来,无需利用Smart-link、端口聚合等相关特性即可实现可靠的负载分担。
文档编号H04L12/46GK102209040SQ201110194838
公开日2011年10月5日 申请日期2011年7月12日 优先权日2011年7月12日
发明者周迪, 王军 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1