一种数据流转发方法及装置与流程

专利2022-05-09  181


本说明书涉及通信技术领域,尤其涉及一种数据流转发方法及装置。



背景技术:

随着网络在视频和音频等领域的应用,数据流的流量也随之增加。网络设备作为承载数据流转发的关键,压力也逐步增加。

在具有线卡板和网板的网络设备中,线卡板和网板之间以及网板内部的芯片和芯片之间(例如转发芯片和网片)会设置有多条链路。在进行多条数据流的转发时,通过基于五元组信息的哈希算法进行负载分担,以避免一条链路上承载过多的流量而导致拥塞。

但是,对于两条数据流而言,虽然具有不同的五元组信息,但是通过哈希算法所确定的哈希值可能相同,当该数据流在不同芯片之间进行传输时,仍然会被分担到一条链路上进行转发,从而造成该条链路的拥塞,降低了网络设备对数据流进行转发的可靠性。



技术实现要素:

为克服相关技术中存在的问题,本说明书提供了一种数据流转发方法及装置。

结合本说明书实施方式的第一方面,本申请提供了一种数据流转发方法,应用于线卡板上的转发芯片,包括:

接收数据流,确定该数据流在网络设备中的转发路径;

根据转发路径,对数据流封装内部转发头,其中,内部转发头包括哈希选择字段和至少两个哈希值,至少两个哈希值根据数据流的不同的特征信息确定;

在网络设备中转发数据流,以使数据流在转发路径中的芯片上根据哈希选择字段和哈希选择字段所对应的哈希值进行负载分担。

可选的,该方法,还包括:

接收携带有内部转发头的数据流;

若确定内部转发头中所携带的目的芯片标识为自身的芯片标识,则剥离内部转发头,并通过自身所连接的端口对剥离了内部转发头的数据流进行转发。

进一步的,在接收携带有内部转发头的数据流之后,还包括:

若确定内部转发头中所携带的目的芯片标识为广播标识或组播标识,则剥离内部转发头,并通过自身所连接的端口对剥离了内部转发头的数据流进行转发。

进一步的,剥离内部转发头,并通过自身所连接的端口对剥离了内部转发头的数据流进行转发,包括:

剥离内部转发头,获取内部转发头中与哈希选择字段相对应的哈希值;

若确定自身所连接的端口的端口数量小于哈希值,则根据端口数量对哈希值进行取模运算,从自身所连接的端口中确定目标端口;

通过目标端口对剥离了内部转发头的数据流进行转发。

进一步的,剥离内部转发头,并通过自身所连接的端口对剥离了内部转发头的数据流进行转发,包括:

剥离内部转发头;

根据剥离了内部转发头的数据流中的特征信息,通过哈希运算从自身所连接的端口中确定目标端口;

通过目标端口对剥离了内部转发头的数据流进行转发。

结合本说明书实施方式的第二方面,本申请提供了一种数据流转发方法,应用于线卡板上的网片或网板,包括:

接收携带有内部转发头的数据流,其中,内部转发头包括哈希选择字段和至少两个哈希值,至少两个哈希值根据数据流的不同的特征信息确定;

获取该哈希选择字段所对应的哈希值;

修改内部转发头中的哈希选择字段以使哈希选择字段指向下一个哈希值;

通过所获取的哈希值所对应的链路对数据流进行转发。

结合本说明书实施方式的第三方面,本申请提供了一种数据流转发装置,应用于线卡板上的转发芯片,包括:

接收单元,用于接收数据流,确定该数据流在网络设备中的转发路径;

封装单元,用于根据转发路径,对数据流封装内部转发头,其中,内部转发头包括哈希选择字段和至少两个哈希值,至少两个哈希值根据数据流的不同的特征信息确定;

转发单元,用于在网络设备中转发数据流,以使数据流在转发路径中的芯片上根据哈希选择字段和哈希选择字段所对应的哈希值进行负载分担。

可选的,接收单元,还用于接收携带有内部转发头的数据流;

转发单元,还用于若确定内部转发头中所携带的目的芯片标识为自身的芯片标识,则剥离内部转发头,并通过自身所连接的端口对剥离了内部转发头的数据流进行转发。

进一步的,转发单元,还用于若确定内部转发头中所携带的目的芯片标识为广播标识或组播标识,则剥离内部转发头,并通过自身所连接的端口对剥离了内部转发头的数据流进行转发。

进一步的,转发单元,包括:

剥离模块,用于剥离内部转发头,获取内部转发头中与哈希选择字段相对应的哈希值;

确定模块,用于若确定自身所连接的端口的端口数量小于哈希值,则根据端口数量对哈希值进行取模运算,从自身所连接的端口中确定目标端口;

转发模块,用于通过目标端口对剥离了内部转发头的数据流进行转发。

进一步的,转发单元,包括:

剥离模块,用于剥离内部转发头;

确定模块,用于根据剥离了内部转发头的数据流中的特征信息,通过哈希运算从自身所连接的端口中确定目标端口;

转发模块,用于通过目标端口对剥离了内部转发头的数据流进行转发。

结合本说明书实施方式的第四方面,本申请提供了一种数据流转发装置,应用于线卡板上的网片或网板,包括:

接收单元,用于接收携带有内部转发头的数据流,其中,内部转发头包括哈希选择字段和至少两个哈希值,至少两个哈希值根据数据流的不同的特征信息确定;

获取单元,用于获取该哈希选择字段所对应的哈希值;

修改单元,用于修改内部转发头中的哈希选择字段以使哈希选择字段指向下一个哈希值;

转发单元,用于通过所获取的哈希值所对应的链路对数据流进行转发。

本说明书的实施方式提供的技术方案可以包括以下有益效果:

本说明书实施方式中,数据流在网络设备内进行转发时,通过携带哈希选择字段和哈希值,该哈希值通过数据流不同的特征信息进行确定,使网络设备中的芯片通过哈希选择字段所对应的哈希值转发,在不同的芯片上根据不同的哈希值进行转发,这样一来,便可以降低多条数据流在同一条转发路径选择相同链路的可能性,从而降低多条数据流集中在一条链路上所带来的网络拥塞,提升了网络设备对数据流进行转发时的可靠性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施方式,并与说明书一起用于解释本说明书的原理。

图1是本申请实施方式所涉及的一种数据流转发方法的流程图,应用于转发芯片;

图2是本申请实施方式所涉及的一种网络设备的结构示意图,其中,对数据流1和数据流2进行转发;

图3是本申请实施方式所涉及的一种网络设备的结构示意图,其中,对数据流3进行转发;

图4是本申请实施方式所涉及的另一种数据流转发方法的流程图,应用于网片或网板;

图5是本申请实施方式所涉及的一种数据流转发装置的结构示意图,应用于转发芯片;

图6是本申请实施方式所涉及的数据流转发装置的结构示意图,应用于网片或网板。

具体实施方式

这里将详细地对示例性实施方式进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施方式中所描述的实施方式并不代表与本说明书相一致的所有实施方式。

本申请提供了一种数据流转发方法,应用于线卡板上的转发芯片,如图1所示,包括:

s100、接收数据流,确定该数据流在网络设备中的转发路径。

在如图2所示的网络设备中,设置有线卡板和网板,两个线卡板之间通过网板进行数据交互。在线卡板中可以设置有转发芯片和网片,也可以仅包含转发芯片。由于转发芯片上能设置的线路限制,在线卡板上分别设置有转发芯片和网片时,可以通过网片连接多个转发芯片,并通过网片与网板连接。这些芯片在网络设备中设置有唯一的标识,用以表示某一个芯片。其中,较粗的线表示芯片之间具有多条链路。

在转发芯片和网片之间、在网片和网板之间以及在转发芯片和网板之间设置有多条链路进行数据传输。在转发芯片上,还连接有多个面板端口,该面板端口指网络设备向其他网络设备转发数据或接收其他网络设备发送的数据时所经过的端口。

在接收到数据流时,转发芯片可以对该数据流进行解析,并从中获取到数据流的五元组信息。针对一条数据流而言,可以由若干数据报文组成,这些数据报文的五元组信息相同。

转发芯片根据五元组信息和接收该数据流的转发芯片(即源芯片)等信息,查找转发芯片中存储的转发表,可以确定该数据流能够从网络设备中的哪一个转发芯片(即目的芯片)向外部进行转发。根据目的芯片以及网络设备中所记录的板卡信息(包含网板和线卡板),转发芯片可以确定出该数据流在网络设备中的转发路径。

在该板卡信息中,可以包含有板卡的标识、一块板卡上所包含的芯片标识以及该一颗芯片上所连接的端口等信息。那么,在转发芯片确定出一条数据流的转发路径后,该转发芯片就可以确定出在数据流在网络设备上进行转发时所经过的芯片。

上述所提到的转发表,可以为fib(转发信息库,forwardinformationdatabase)表、mac(媒体访问控制,mediaaccesscontrol)表和ilm(入标签映射,incominglabelmap)表等,根据网络设备所采用的组网所不同而选用。

s101、根据转发路径,对数据流封装内部转发头。

在确定转发路径后,转发芯片可以根据数据流的特征信息进行哈希运算。这里所说的数据流的特征信息包括但不限于数据流的五元组信息(可以分别应用五元组信息中的一项),数据流进入网络设备时的源芯片标识(即转发芯片)以及根据转发表确定出的目的芯片标识等。在五元组信息中,包括有源ip(互联网协议,internetprotocol)地址、目的ip地址、源端口、目的端口和协议类型。

在进行网络设备内部的转发时,可以设定计算内部转发头中的哈希值的顺序,比如第一个哈希运算基于五元组信息,第二个哈希运算基于源ip地址,第三个哈希运算基于目的ip地址,第四个哈希运算基于源端口,第五个哈希运算基于源芯片标识。当然,根据网络设备的需求,所设置的哈希运算的执行次数可以更多或更少,所依据的特征信息也可以进行不同的设定,在此不做限制。

根据这些特征信息和所设置的哈希算法,可以确定出若干的哈希值,比如,如图2所示,假设对两条数据流进行转发,根据五元组信息确定这两条数据流都从线卡板0的转发芯片0进入网络设备,从线卡板2的转发芯片3流出。

在所确定的转发路径上,假设确定两条数据流需要经过转发芯片0、网片0、网板0、网片1和转发芯片3这5个芯片。那么,就可以确定在转发路径上5次链路选择,分别为转发芯片0至网片0,网片0至网板0,网板0至网片1,网片1至转发芯片3以及转发芯片3上的端口(面板端口)。

基于网络设备中针对不同级别的哈希运算,转发芯片可以根据数据流相关的特征信息确定出五个哈希值。通过该哈希值以及根据转发路径所确定出的、哈希运算的执行次数,对数据流进行封装。此处,假设第一条数据流的五元组信息和第二条数据流的五元组信息中,源ip地址不同、目的ip地址相同、源端口不同、目的端口不同、协议类型不同。两条数据流都是从线卡板0的转发芯片0进入网络设备,因此,源芯片标识相同,都是通过线卡板2的转发芯片3向外发送,因此,目的芯片标识相同。

此时,虽然基于两条数据流的五元组信息确定出的转发路径可能相同,但是,在计算哈希值时,可以针对数据流不同的特征信息来确定,从而对两条数据流在转发路径上所经过的具体链路进行区分。比如,为第一条数据流所封装的内部转发头如下表1所示。

表1

为第二条数据流所封装的内部转发头如下表2所示。

表1和表2中所展示的内容仅为内部转发头的部分内容,该哈希选择字段中携带有转发路径中需要进行负载分担的次数,该负载分担的次数即为内部转发头中所携带的哈希值的数量。该哈希选择字段的初始值为内部封装头中包含的哈希值的最大值,比如4,指向线卡板0的转发芯片0的哈希值。

从表1和表2中可以看出,第一个哈希值基于五元组信息算出,两条数据流五元组信息虽然不同但经过哈希算法所确定出的哈希值是相同的;第二个哈希值基于源ip地址算出,两条数据流的源ip地址不同并且计算出的哈希值不同;第三个哈希值基于目的ip地址算出,两条数据流的目的ip地址相同,计算出的哈希值相同;第四个哈希值基于源端口算出,两条数据流的源端口不同,计算出的哈希值不同;第五个哈希值基于源芯片标识算出,两条数据流的源芯片标识相同,计算出的哈希值不同。

s102、在网络设备中转发数据流,以使数据流在转发路径中的芯片上根据哈希选择字段和哈希选择字段所对应的哈希值进行负载分担。

在转发芯片(即线卡板0上的转发芯片0)完成内部转发头的封装后,基于内部转发头中的哈希选择字段(当前的值为4),选择内部转发头的哈希值4=0进行转发,此时,转发芯片0因为执行了一次负载分担,将对哈希选择字段进行修改,即修改为3。此后,从转发芯片0与线卡板0上的网片0之间的链路0向网片0发送封装了内部转发头的数据流。

也就是说,在转发芯片向网络设备中发送携带有内部转发头的数据流时,根据哈希选择字段获取了该哈希选择字段所对应的哈希值进行负载分担,以表1为例,即转发芯片0根据哈希值0通过自身与网片0之间的链路0转发的携带有内部转发头的数据流。

当网络设备中的各个节点(转发芯片、网片和网板)之间进行传输时,参考表1和表2,可以在线卡板0的网片0向网板0进行转发以及在线卡板2的网片1向线卡板2的转发芯片3转发两条数据流的过程中选择不同的链路进行转发,具体如图2中的数据流1和数据流2在转发路径上所标注的链路,从而能够实现在多条数据流选择相同转发路径的情况下,网络设备中的各个节点都通过相同的链路进行转发所带来的拥塞,更加合理地进行负载分担,提高了网络设备内部转发数据流时的可靠性。

在转发芯片接收到网络设备内部转发过来的一条数据流,并需要将该数据流从网络设备中发送出去时,该方法,还包括:

s103、接收携带有内部转发头的数据流。

s104、若确定内部转发头中所携带的目的芯片标识为自身的芯片标识,则剥离内部转发头,并通过自身所连接的端口对剥离了内部转发头的数据流进行转发。

如图3所示,在转发芯片0接收到网络设备内转发过来的数据流,该数据流携带有内部转发头。此时,转发芯片可以根据内部转发头中所携带的哈希选择字段的值,获取与该值对应的哈希值,比如该哈希值为1。

由于该内部转发头中的目的芯片标识为自身的芯片标识,可以认为该数据流在内部转发的过程中,需要自身向网络设备外部转发,因此,转发芯片剥离内部转发头,并通过转发芯片0自身所连接的端口1将剥离了内部转发头的数据流发送出去。

上述的方案同样适用于广播和组播的情况,进一步的,在接收携带有内部转发头的数据流之后,还包括:

s105、若确定内部转发头中所携带的目的芯片标识为广播标识或组播标识,则剥离内部转发头,并通过自身所连接的端口对剥离了内部转发头的数据流进行转发。

在转发芯片接收到外部输入的数据流时,根据转发表还可以确定该数据流是广播流或组播流,此时,在进行内部封装时,目的芯片标识可以为广播标识或组播标识。

除上述的情况外,在转发芯片接收到携带有内部转发头的数据流时,由于该内部转发头中的目的芯片标识为自身的芯片标识,可以认为该数据流在内部转发的过程中,需要自身向网络设备外部转发,因此,转发芯片剥离内部转发头,并通过转发芯片自身所连接的端口将剥离了内部转发头的数据流发送出去。

当然,需要说明的是,在步骤s103-s104以及步骤s105中,如果转发芯片接收到携带有内部转发头的数据流时,仍可以根据哈希选择字段获取对应的哈希值,并在剥离内部转发头后通过该哈希值所对应的端口确定向网络设备外转发数据流。

针对上述的步骤s103~s104和步骤s105中,具体的,剥离内部转发头,并通过自身所连接的端口对剥离了内部转发头的数据流进行转发,包括:

s106a、剥离内部转发头,获取内部转发头中与哈希选择字段相对应的哈希值。

s106b、若确定自身所连接的端口的端口数量小于哈希值,则根据端口数量对哈希值进行取模运算,从自身所连接的端口中确定目标端口。

s106c、通过目标端口对剥离了内部转发头的数据流进行转发。

在转发芯片获取到携带有内部转发头的数据流后,可以获取到内部转发头中所携带的哈希选择字段和该哈希选择字段所对应的哈希值。但由于网络设备中,如图2所示,可能存在不同的转发路径上所经过的芯片的数量不同的情况,比如数据流还可以经过转发芯片0、网片0、网板2直接到达了线卡板1的转发芯片2,相对于经过转发芯片0、网片0、网板0、网片1和到达转发芯片3的情况,至少减少了一次负载分担的过程。

那么,以表1的内部转发头为例,转发芯片2在接收到数据流时,其内部转发头的哈希选择字段的值为1,指向哈希值0(即表1中所标出的线卡板2的网片1的哈希值),此时,转发芯片2由于确定了该数据流的内部转发头的目的芯片标识是广播标识或组播标识,可以确定该数据流需要从自身向网络设备外转发,则转发芯片2可以剥离内部转发头并将当前的哈希选择字段所对应的哈希值作为自身进行负载分担时所经过的链路并对外转发数据流,即从转发芯片2的端口0向网络设备外部发送数据流。

但是,在这一过程中,可能存在转发芯片的端口与哈希值不匹配的问题,如果哈希值小于转发芯片所连接的端口数量,则直接如上进行转发即可,如果哈希值大于转发芯片所连接的端口数量,则可能无法确定出对应的端口进行转发。

因此,在转发芯片根据哈希选择字段获取到哈希值后,如果确定该哈希值大于了自身所连接的端口的端口数量,则可以进行哈希值的重新计算,计算的方式可以是根据所预设的一个特征信息进行,或者从自身所连接的端口中随机选择,或者,也可以通过自身的端口数量以及哈希值进行取模运算,即通过端口数量对哈希值进行取余,以保证重新算出的哈希值在转发芯片2自身所连接的端口的端口数量范围内,即确定出目标端口。

通过上述的方式,可以使基于芯片所进行的分级负载分担更具有灵活性。

进一步的,剥离内部转发头,并通过自身所连接的端口对剥离了内部转发头的数据流进行转发,包括:

s107a、剥离内部转发头;

s107b、根据剥离了内部转发头的数据流中的特征信息,通过哈希运算从自身所连接的端口中确定目标端口;

s107c、通过目标端口对剥离了内部转发头的数据流进行转发。

步骤s107a~步骤s107c即上述所提及的转发芯片在剥离内部转发头后,经过哈希运算重新确定出一个目标端口进行数据流的转发,在此不重复说明。

相对应的,本申请还提供了一种数据流转发方法,应用于线卡板上的网片或网板,如图4所示,包括:

s200、接收携带有内部转发头的数据流。

其中,内部转发头包括哈希选择字段和至少两个哈希值,至少两个哈希值根据数据流的不同的特征信息确定。

s201、获取该哈希选择字段所对应的哈希值。

s202、修改内部转发头中的哈希选择字段以使哈希选择字段指向下一个哈希值。

s203、通过所获取的哈希值所对应的链路对数据流进行转发。

当转发芯片向网片、网板或者网板向网片转发携带有内部转发头的数据流时,获取内部转发头中所包括的、与哈希选择字段对应的哈希值。由于该数据流需要向转发路径中的下一个芯片进行转发,因此,网片或网板同样需要修改该内部转发头中的哈希选择字段,以使该哈希选择字段指向下一个哈希值。可以理解的是,具体的修改方式可以是通过递减的方式实现,当然也可以通过累加的方式等,对此不做限制。

此后,通过所获取的哈希值选择对应的链路向下一个芯片进行转发。

本说明书实施方式中,数据流在网络设备内进行转发时,通过携带哈希选择字段和哈希值,该哈希值通过数据流不同的特征信息进行确定,使网络设备中的芯片通过哈希选择字段所对应的哈希值转发,在不同的芯片上根据不同的哈希值进行转发,这样一来,便可以降低多条数据流在同一条转发路径选择相同链路的可能性,从而降低多条数据流集中在一条链路上所带来的网络拥塞,提升了网络设备对数据流进行转发时的可靠性。

相对应的,本申请提供了一种数据流转发装置,应用于线卡板上的转发芯片,如图5所示,包括:

接收单元,用于接收数据流,确定该数据流在网络设备中的转发路径;

封装单元,用于根据转发路径,对数据流封装内部转发头,其中,内部转发头包括哈希选择字段和至少两个哈希值,至少两个哈希值根据数据流的不同的特征信息确定;

转发单元,用于在网络设备中转发数据流,以使数据流在转发路径中的芯片上根据哈希选择字段和哈希选择字段所对应的哈希值进行负载分担。

可选的,接收单元,还用于接收携带有内部转发头的数据流;

转发单元,还用于若确定内部转发头中所携带的目的芯片标识为自身的芯片标识,则剥离内部转发头,并通过自身所连接的端口对剥离了内部转发头的数据流进行转发。

进一步的,转发单元,还用于若确定内部转发头中所携带的目的芯片标识为广播标识或组播标识,则剥离内部转发头,并通过自身所连接的端口对剥离了内部转发头的数据流进行转发。

进一步的,转发单元,包括:

剥离模块,用于剥离内部转发头,获取内部转发头中与哈希选择字段相对应的哈希值;

确定模块,用于若确定自身所连接的端口的端口数量小于哈希值,则根据端口数量对哈希值进行取模运算,从自身所连接的端口中确定目标端口;

转发模块,用于通过目标端口对剥离了内部转发头的数据流进行转发。

进一步的,转发单元,包括:

剥离模块,用于剥离内部转发头;

确定模块,用于根据剥离了内部转发头的数据流中的特征信息,通过哈希运算从自身所连接的端口中确定目标端口;

转发模块,用于通过目标端口对剥离了内部转发头的数据流进行转发。

相对应的,本申请提供了一种数据流转发装置,应用于线卡板上的网片或网板,如图6所示,包括:

接收单元,用于接收携带有内部转发头的数据流,其中,内部转发头包括哈希选择字段和至少两个哈希值,至少两个哈希值根据数据流的不同的特征信息确定;

获取单元,用于获取该哈希选择字段所对应的哈希值;

修改单元,用于修改内部转发头中的哈希选择字段以使哈希选择字段指向下一个哈希值;

转发单元,用于通过所获取的哈希值所对应的链路对数据流进行转发。

本说明书的实施方式提供的技术方案可以包括以下有益效果:

本说明书实施方式中,数据流在网络设备内进行转发时,通过携带哈希选择字段和哈希值,该哈希值通过数据流不同的特征信息进行确定,使网络设备中的芯片通过哈希选择字段所对应的哈希值转发,在不同的芯片上根据不同的哈希值进行转发,这样一来,便可以降低多条数据流在同一条转发路径选择相同链路的可能性,从而降低多条数据流集中在一条链路上所带来的网络拥塞,提升了网络设备对数据流进行转发时的可靠性。

应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。

以上所述仅为本说明书的较佳实施方式而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。


技术特征:

1.一种数据流转发方法,其特征在于,应用于线卡板上的转发芯片,包括:

接收数据流,确定该数据流在网络设备中的转发路径;

根据所述转发路径,对所述数据流封装内部转发头,其中,所述内部转发头包括哈希选择字段和至少两个哈希值,所述至少两个哈希值根据所述数据流的不同的特征信息确定;

在所述网络设备中转发所述数据流,以使所述数据流在所述转发路径中的芯片上根据所述哈希选择字段和所述哈希选择字段所对应的哈希值进行负载分担。

2.根据权利要求1所述的方法,其特征在于,还包括:

接收携带有内部转发头的数据流;

若确定所述内部转发头中所携带的目的芯片标识为自身的芯片标识,则剥离所述内部转发头,并通过自身所连接的端口对剥离了所述内部转发头的数据流进行转发。

3.根据权利要求2所述的方法,其特征在于,在所述接收携带有内部转发头的数据流之后,还包括:

若确定所述内部转发头中所携带的目的芯片标识为广播标识或组播标识,则剥离所述内部转发头,并通过自身所连接的端口对剥离了所述内部转发头的数据流进行转发。

4.根据权利要求2或3所述的方法,其特征在于,所述剥离所述内部转发头,并通过自身所连接的端口对剥离了所述内部转发头的数据流进行转发,包括:

剥离所述内部转发头,获取所述内部转发头中与所述哈希选择字段相对应的哈希值;

若确定自身所连接的端口的端口数量小于所述哈希值,则根据所述端口数量对所述哈希值进行取模运算,从自身所连接的端口中确定目标端口;

通过所述目标端口对剥离了所述内部转发头的数据流进行转发。

5.根据权利要求2或3所述的方法,其特征在于,所述剥离所述内部转发头,并通过自身所连接的端口对剥离了所述内部转发头的数据流进行转发,包括:

剥离所述内部转发头;

根据剥离了所述内部转发头的数据流中的特征信息,通过哈希运算从自身所连接的端口中确定目标端口;

通过所述目标端口对剥离了所述内部转发头的数据流进行转发。

6.一种数据流转发方法,其特征在于,应用于线卡板上的网片或网板,包括:

接收携带有内部转发头的数据流,其中,所述内部转发头包括哈希选择字段和至少两个哈希值,所述至少两个哈希值根据所述数据流的不同的特征信息确定;

获取该哈希选择字段所对应的哈希值;

修改所述内部转发头中的哈希选择字段以使所述哈希选择字段指向下一个哈希值;

通过所获取的哈希值所对应的链路对所述数据流进行转发。

7.一种数据流转发装置,其特征在于,应用于线卡板上的转发芯片,包括:

接收单元,用于接收数据流,确定该数据流在网络设备中的转发路径;

封装单元,用于根据所述转发路径,对所述数据流封装内部转发头,其中,所述内部转发头包括哈希选择字段和至少两个哈希值,所述至少两个哈希值根据所述数据流的不同的特征信息确定;

转发单元,用于在所述网络设备中转发所述数据流,以使所述数据流在所述转发路径中的芯片上根据所述哈希选择字段和所述哈希选择字段所对应的哈希值进行负载分担。

8.根据权利要求7所述的装置,其特征在于,

所述接收单元,还用于接收携带有内部转发头的数据流;

所述转发单元,还用于若确定所述内部转发头中所携带的目的芯片标识为自身的芯片标识,则剥离所述内部转发头,并通过自身所连接的端口对剥离了所述内部转发头的数据流进行转发。

9.根据权利要求8所述的装置,其特征在于,所述转发单元,还用于若确定所述内部转发头中所携带的目的芯片标识为广播标识或组播标识,则剥离所述内部转发头,并通过自身所连接的端口对剥离了所述内部转发头的数据流进行转发。

10.根据权利要求8或9所述的装置,其特征在于,所述转发单元,包括:

剥离模块,用于剥离所述内部转发头,获取所述内部转发头中与所述哈希选择字段相对应的哈希值;

确定模块,用于若确定自身所连接的端口的端口数量小于所述哈希值,则根据所述端口数量对所述哈希值进行取模运算,从自身所连接的端口中确定目标端口;

转发模块,用于通过所述目标端口对剥离了所述内部转发头的数据流进行转发。

11.根据权利要求8或9所述的装置,其特征在于,所述转发单元,包括:

剥离模块,用于剥离所述内部转发头;

确定模块,用于根据剥离了所述内部转发头的数据流中的特征信息,通过哈希运算从自身所连接的端口中确定目标端口;

转发模块,用于通过所述目标端口对剥离了所述内部转发头的数据流进行转发。

12.一种数据流转发装置,其特征在于,应用于线卡板上的网片或网板,包括:

接收单元,用于接收携带有内部转发头的数据流,其中,所述内部转发头包括哈希选择字段和至少两个哈希值,所述至少两个哈希值根据所述数据流的不同的特征信息确定;

获取单元,用于获取该哈希选择字段所对应的哈希值;

修改单元,用于修改所述内部转发头中的哈希选择字段以使所述哈希选择字段指向下一个哈希值;

转发单元,用于通过所获取的哈希值所对应的链路对所述数据流进行转发。

技术总结
本说明书提供一种数据流转发方法及装置,应用于通信技术领域。一种数据流转发方法,应用于线卡板上的转发芯片,包括:接收数据流,确定该数据流在网络设备中的转发路径;根据转发路径,对数据流封装内部转发头,其中,内部转发头包括哈希选择字段和至少两个哈希值,至少两个哈希值根据数据流的不同的特征信息确定;在网络设备中转发数据流,以使数据流在转发路径中的芯片上根据哈希选择字段和哈希选择字段所对应的哈希值进行负载分担。通过上述方法,能够降低网络设备中链路的拥塞,提高网络设备对数据流进行转发时的可靠性。

技术研发人员:阮米根
受保护的技术使用者:新华三信息安全技术有限公司
技术研发日:2021.03.15
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-608.html

最新回复(0)