基于物理端口实现的端口汇聚Trunk分流方法及装置与流程

文档序号:14186724阅读:373来源:国知局

本发明涉及通信技术,尤其涉及一种基于物理端口实现的端口汇聚trunk分流方法及装置。



背景技术:

trunk(端口汇聚)是一种封装技术,它是指两个网络节点之间的链路,该链路两端的网络节点具体指的是交换机、路由器或主机等。该链路将两个或多个物理端口组合在一起成为一条逻辑路径,并将这些端口的带宽合并从而增加网络节点之间的带宽。基于trunk功能,允许网络节点之间通过两个或多个端口并行连接同时传输以提供更高带宽、更大吞吐量,大幅度提供整个网络能力。

现有的传统的trunk实现方式多基于hash算法,hash算法指的是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。这种算法存在多种弊端,首先,存在部分端口过载的情况,也就是部分端口流量过大超过端口上限导致丢包,而其他trunk端口空闲;其次,数据流指向的端口无规律可循,当端口流量过载时,需不停的尝试修改报文信息重新进行hash计算使流量均匀,不适合测试场景和部分应用场景;再次,对于报文相似度高的场景区分效果差,分流效果不好。



技术实现要素:

本发明的主要目的在于提供一种基于物理端口实现的端口汇聚trunk分流方法及装置,旨在解决报文发送过程中的丢包率高、分流不均匀、报文区分效果差、报文发送质量差,同时带宽利用不充分的问题。

为实现上述目的,本发明提供一种基于物理端口实现的端口汇聚trunk分流方法,所述基于物理端口实现的端口汇聚trunk分流方法包括以下步骤:

获取报文发送请求;

判断待发送报文的流量是否大于目标端口的限速值;

若否,则将待发送报文发送至目标端口;

若是,则将待发送报文中流量未超出所述目标端口限速值的部分发送至目标端口,并判断是否存在空闲端口;

若存在空闲端口,则获取该空闲端口的限速值,并将所述待发送报文中超出所述的目标端口限速值的部分中未超出所述空闲端口的限速值的部分发送至所述空闲端口。

优选的,所述获取报文转发请求之前还包括步骤:设定每个端口的限速值。

优选的,所述判断是否存在空闲端口具体包括:

依次获取所有非目标端口的瞬时流量;

当所述非目标端口的瞬时流量始终小于该端口预设限速值时,则确定该端口为空闲端口。

优选的,若不存在空闲端口,则丢弃所述待发送报文中超出所述目标端口限速值的部分。

优选的,所有端口共享同一缓存区对待发送报文进行缓存和分配。

本发明还提供一种基于物理端口实现的端口汇聚trunk分流装置,所述基于物理端口实现的端口汇聚trunk分流装置包括:

获取模块,用于获取报文发送请求;

第一判断模块,用于判断待发送报文流量是否大于目标端口的限速值;

第一发送模块,用于在待发送报文流量不大于目标端口的限速值时,将待发送报文发送至目标端口;

第二发送模块,用于在待发送报文流量大于目标端口的限速值时,将待发送报文中流量未超出所述目标端口限速值的部分发送至目标端口;

第二判断模块,用于在待发送报文流量大于目标端口的限速值时判断是否存在空闲端口;

第三发送模块,用于在存在空闲端口时,获取该空闲端口的限速值,并将所述待发送报文中超出所述的目标端口限速值的部分中未超出所述空闲端口的限速值的部分发送至所述空闲端口。

优选的,还包括限速模块,用于设定每个端口的限速值。

优选的,所述第二判断模块具体包括:

获取单元,用于依次获取所有非目标端口的瞬时流量;

判断单元,用于判断所述非目标端口的瞬时流量是否始终小于该端口预设限速值;

确定单元,用于在所述非目标端口的瞬时流量始终小于该端口预设限速值时确定该端口为空闲端口。

优选的,还包括:

丢弃模块,用于在不存在空闲端口时,丢弃所述待发送报文中超出所述目标端口限速值的部分。

优选的,所有端口共享同一缓存区对待发送报文进行缓存和分配。

本发明的实施例包括步骤:获取报文发送请求;判断待发送报文的流量是否大于目标端口的限速值;若否,则将待发送报文发送至目标端口;若是,则将待发送报文中流量未超出所述目标端口限速值的部分发送至目标端口,并判断是否存在空闲端口;若存在空闲端口,则获取空闲端口的限速值,并将所述待发送报文中超出所述的目标端口限速值的部分中未超出所述空闲端口的限速值的部分发送至所述空闲端口。本发明的实施例可以降低报文发送过程中的丢包率,使分流更均匀,提升报文区分效果,提高报文发送质量,最大限度的应用了设备之间的端口带宽。

附图说明

图1为本发明基于物理端口实现的端口汇聚trunk分流方法第一实施例的流程示意图;

图2为本发明基于物理端口实现的端口汇聚trunk分流方法第二实施例的流程示意图;

图3为本发明基于物理端口实现的端口汇聚trunk分流方法第三实施例中判断是否存在空闲端口的细化流程示意图;

图4为本发明基于物理端口实现的端口汇聚trunk分流装置第一实施例的功能模块示意图;

图5为本发明基于物理端口实现的端口汇聚trunk分流装置第二实施例的功能模块示意图;

图6为本发明基于物理端口实现的端口汇聚trunk分流装置第三实施例的第二判断模块的细化功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种基于物理端口实现的端口汇聚trunk分流方法,参照图1,在一实施例中,该基于物理端口实现的端口汇聚trunk分流方法包括:

s100、获取报文发送请求。

本实施例的技术方案是基于trunk功能实现的,尤其是应用于局域网中各网络节点之间的报文发送。具体的,应用于路由器和交换机之间、两个路由器之间的报文发送、两个交换机之间的报文发送、主机与路由器或交换机之间的报文传递过程中。各网络节点之间均设有多个相连的,用于数据传递发送的物理端口。

s200、判断待发送报文流量是否大于目标端口的限速值;若否,则执行步骤s310,若是,则执行步骤s320。

应当理解的是,从报文从当前节点发送至目标节点过程中,当前节点默认设有一发送报文的端口,该默认的端口即为发送报文的目标端口。当获取报文发送请求后,首先对待发送报文流量和该默认的目标端口的限速值进行比较,进而根据待发送流量的大小选择恰当的处理方式。需要强调的是,为了避免报文被直接丢弃,对报文流量和端口限速值的判断应当在报文进入端口缓存后进行。

下面对具体的处理方式做出进一步解释。

s310、将待发送报文发送至目标端口。

显然,待发送报文流量不大于目标端口的限速值的时候,可以直接通过该目标端口发送报文,保证报文的完整性。

s320、将待发送报文中流量未超出所述目标端口限速值的部分发送至目标端口。

s321、判断是否存在空闲端口;若存在,则执行步骤s410。

当待发送报文流量大于目标端口的限速值的时候,由于报文流量过大,必然会导致报文无法直接发送。此时,如果通过各种算法对报文进行压缩,处理过程较复杂,同时无法保证还原质量。为此,本实施例中,将待发送报文中流量未超出所述目标端口限速值的部分发送至目标端口,充分利用了目标端口的流量,同时也保证不会因为通过该端口的流量过大而导致端口出现过载丢包等问题。在将待发送报文中流量未超出所述目标端口限速值的部分发送至目标端口之后,本实施例中进一步判断是否存在空闲端口。

s410、则获取空闲端口的限速值,并将所述待发送报文中超出所述的目标端口限速值的部分中未超出所述空闲端口的限速值的部分发送至所述空闲端口。

当存在空闲端口时,将所述待发送报文中超出所述目标端口限速值的部分发送至所述空闲端口。本实施例中,为了充分利用空闲端口的流量,首先获取空闲端口的限速值,并将发送至空闲端口的报文中未超出该空闲端口限速值的部分通过该空闲端口转发。由于网络节点之间存在多个端口,其中某些端口未得到充分利用,本实施例的技术方案通过进一步对这些空闲端口加以利用,通过空闲端口发送待发送报文中超出所述目标端口限速值的部分,提高了传输效率,同时也有效避免了目标端口出现过载的情况,同时由于利用的是空闲端口,也实现了对流量的合理分配。

更为具体的,本实施例中优选将当前选择的空闲端口确认为新的目标端口,并重复循环执行上述步骤s200及后续步骤,直至报文全部发送完毕或不存在空闲端口为止。

本实施例的技术方案通过利用空闲端口发送报文中流量超出目标端口限速值的部分,可以有效降低报文发送过程中的丢包率,使分流更均匀,提升报文区分效果,提高报文发送质量,最大限度的应用了端口带宽。

请参阅图2,在本发明的方法基于上述第一实施例的第二实施例中,所述获取报文转发请求之前还包括步骤:s010、设定每个端口的限速值。

应当理解的是,由于设备端口性能各不相同,为了保证设备正常工作,应当根据设备的情况而具体设定端口的限速值,需要设定的项目包括但不限于端口吞吐量、突发处理能力、缓存大小等。

如图3所示,在本发明的方法基于上述实施例的第三实施例中,所述判断是否存在空闲端口具体包括:

s322、依次获取所有非目标端口的瞬时流量;

s323、当所述非目标端口的瞬时流量始终小于该端口预设限速值时,则确定该端口为空闲端口。

本实施例中,由于两个设备之间存在多个相连的端口,所以本实施例中需要依次获得所有非目标端口的瞬时流量,并将所述非目标端口的瞬时流量与该端口预设限速值相比较。具体使用过程中,应当多次获取所有非目标端口的瞬时流量,并确定空闲端口,其中,可以设置为确定指定数量的空闲端口后就停止检测,例如一个或两个,也可以确定所有的空隙端口后停止检测。

s420、若不存在空闲端口,则丢弃所述待发送报文中超出所述目标端口限速值的部分。

若不存在空闲端口,为了不影响其余报文的发送质量,本实施例中丢弃了所述待发送报文中超出所述目标端口限速值的部分,可以最大限度在保证报文传递质量的前提下减少报文丢失。

在本发明的方法基于上述实施例的第五实施例中,所有端口共享同一缓存区对待发送报文进行缓存和分配。

应当理解的是,端口缓存应当尽量大,以适应大流量报文。为了防止大流量报文发现端口时造成丢包,本实施例中优选所有端口共享同一缓存区,即方便对报文进行缓存和分配,也可以尽可能的扩大报文的缓存区,在报文发送过后,应当及时释放缓存,以缓存后续接收的报文。对于流量超出端口限速值的报文,应当尽快发往下一个端口,同时应当采用先入先出的方式,减少报文对缓存的占用。

本发明对在流量小于默认的目标端口限速值的报文进行校验,而对流量大于默认的目标端口的报文采用cutthrough(直通)方式,即不校验直接转发,不需要接收完整的一帧报文再发送,可以持续发送报文,这样报文在转发的情况下减少了缓存占用并减少了转发时延,并解决了重复校验问题。应当理解的是,本发明的技术方案中因为发送报文的端口并不固定,因此需要关闭trunk端口的mac地址学习功能。

本发明还提供一种基于物理端口实现的端口汇聚trunk分流装置100,参照图4,在一实施例中,本发明提供的基于物理端口实现的端口汇聚trunk分流装置包括:

获取模块10,用于获取报文发送请求。

本实施例的技术方案是基于trunk功能实现的,尤其是应用于局域网中各网络节点之间的报文发送。具体的,应用于路由器和交换机之间、两个路由器之间的报文发送、两个交换机之间的报文发送、主机与路由器或交换机之间的报文传递过程中。各网络节点之间均设有多个相连的,用于数据传递发送的物理端口。

第一判断模块20,用于判断待发送报文流量是否大于目标端口的限速值。

应当理解的是,从报文从当前节点发送至目标节点过程中,当前节点默认设有一发送报文的端口,该默认的端口即为发送报文的目标端口。当获取报文发送请求后,首先对待发送报文流量和该默认的目标端口的限速值进行比较,进而根据待发送流量的大小选择恰当的处理方式。需要强调的是,为了避免报文被直接丢弃,对报文流量和端口限速值的判断应当在报文进入端口缓存后进行。

第一发送模块30,用于在待发送报文流量不大于目标端口的限速值时,将待发送报文发送至目标端口。

显然,待发送报文流量不大于目标端口的限速值的时候,可以直接通过该目标端口发送报文,保证报文的完整性。

第二发送模块40,用于在待发送报文流量大于目标端口的限速值时,将待发送报文中流量未超出所述目标端口限速值的部分发送至目标端口。

当待发送报文流量大于目标端口的限速值的时候,由于报文流量过大,必然会导致报文无法直接发送。此时,如果通过各种算法对报文进行压缩,处理过程较复杂,同时无法保证还原质量。为此,本实施例中,将待发送报文中流量未超出所述目标端口限速值的部分发送至目标端口,充分利用了目标端口的流量,同时也保证不会因为通过该端口的流量过大而导致端口出现过载丢包等问题。

第二判断模块50,用于在待发送报文流量大于目标端口的限速值时判断是否存在空闲端口。

在将待发送报文中流量未超出所述目标端口限速值的部分发送至目标端口之后,本实施例中进一步判断是否存在空闲端口。

第三发送模块60,用于在存在空闲端口时,获取该空闲端口的限速值,并将所述待发送报文中超出所述的目标端口限速值的部分中未超出所述空闲端口的限速值的部分发送至所述空闲端口。

当存在空闲端口时,将所述待发送报文中超出所述目标端口限速值的部分发送至所述空闲端口。本实施例中,为了充分利用空闲端口的流量,首先获取空闲端口的限速值,并将发送至空闲端口的报文中未超出该空闲端口限速值的部分通过该空闲端口转发。由于网络节点之间存在多个端口,其中某些端口未得到充分利用,本实施例的技术方案通过进一步对这些空闲端口加以利用,通过空闲端口发送待发送报文中超出所述目标端口限速值的部分,提高了传输效率,同时也有效避免了目标端口出现过载的情况,同时由于利用的是空闲端口,也实现了对流量的合理分配。

本实施例的技术方案通过利用空闲端口发送报文中流量超出目标端口限速值的部分,可以有效降低报文发送过程中的丢包率,使分流更均匀,提升报文区分效果,提高报文发送质量,最大限度的应用了端口带宽。

请参阅图5,在本发明的装置基于上述第一实施例的第二实施例中,还包括限速模块70,用于设定每个端口的限速值。

应当理解的是,由于设备端口性能各不相同,为了保证设备正常工作,应当根据设备的情况而具体设定端口的限速值,需要设定的项目包括但不限于端口吞吐量、突发处理能力、缓存大小等。

如图6所示,在本发明的装置基于上述实施例的第三实施例中,所述第二判断模块50具体包括:

获取单元51,用于依次获取所有非目标端口的瞬时流量;

判断单元52,用于判断所述非目标端口的瞬时流量是否始终小于该端口预设限速值;

确定单元53,用于在所述非目标端口的瞬时流量始终小于该端口预设限速值时确定该端口为空闲端口。

本实施例中,由于两个设备之间存在多个相连的端口,所以本实施例中需要依次获得所有端口的瞬时流量,并将端口的瞬时流量与该端口预设限速值相比较。具体使用过程中,应当多次获取所有端口的瞬时流量,并确定空闲端口,其中,可以设置为确定指定数量的空闲端口后就停止检测,例如一个或两个,也可以确定所有的空隙端口后停止检测。

在本发明的装置基于上述实施例的第四实施例中,还包括丢弃模块,用于在不存在空闲端口时,则丢弃所述待发送报文中超出所述目标端口限速值的部分。

若不存在空闲端口,为了不影响其余报文的发送质量,本实施例中丢弃了所述待发送报文中超出所述目标端口限速值的部分,可以最大限度在保证报文传递质量的前提下减少报文丢失。

在本发明的装置基于上述实施例的第五实施例中,所有端口共享同一缓存区对待发送报文进行缓存和分配。

应当理解的是,端口缓存应当尽量大,以适应大流量报文。为了防止大流量报文发现端口时造成丢包,本实施例中优选所有端口共享同一缓存区,即方便对报文进行缓存和分配,也可以尽可能的扩大报文的缓存区,在报文发送过后,应当及时释放缓存,以缓存后续接收的报文。对于流量超出端口限速值的报文,应当尽快发往下一个端口,同时应当采用先入先出的方式,减少报文对缓存的占用。

本发明对在流量小于默认的目标端口限速值的报文进行校验,而对流量大于默认的目标端口的报文采用cutthrough(直通)方式,即不校验直接转发,不需要接收完整的一帧报文再发送,可以持续发送报文,这样报文在转发的情况下减少了缓存占用并减少了转发时延,并解决了重复校验问题。应当理解的是,本发明的技术方案中因为发送报文的端口并不固定,因此需要关闭trunk端口的mac地址学习功能。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1