一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种交换机缓存调度方法以及系统与流程

2022-03-26 15:51:41 来源:中国专利 TAG:


1.本技术涉及一种交换机缓存调度方法,具体涉及一种延迟端口的数据发送时间的调度方法。


背景技术:

2.存储转发模式是交换机交换数据通常会采用的一种通用模式,工作原理是交换机的主控单元缓存输入端口接收的数据包,检查数据包并过滤掉冲突数据包,根据目的地址通过查找表查找目的地址的输出端口,发送数据包。缓存是交换机存储数据包的重要能力,交换机采用先进先出的模式利用缓存功能暂时存储数据包。
3.当输入端口的数据大于输出端口的数据时就会出现缓存存满导致数据包溢出产生数据包丢失的问题。因为交换机的缓存能力是由其主ic性能决定的,所以现有的方案中会采用更换缓存能力更大的ic来解决缓存空间不足的问题。
4.但是更换缓存能力更大的ic一方面会导致交换机产品成本增加,另一方面,更换ic不但会导致原有已经部署的设备需要被替换而产生的重大经济损失,而且也需要投入更多的研发力量去解决已部署设备的替换问题,导致更多的投入。


技术实现要素:

5.为了解决交换机缓存容量不足的问题,本技术提供一种交换机缓存调度方法。
6.一种交换机缓存调度方法,包括以下步骤:
7.接收数据包并缓存,判断所述数据包的数据量是否达到缓存总量的预警值,当所述数据量达到所述预警值,统计交换机中每个端口的输入流量和输出流量,根据所述输入流量和输出流量计算每个端口延迟移相发送数据的延迟时间,根据所述延迟时间调节远端端口的数据发送时间。
8.进一步地,根据所述输入流量和输出流量计算每个端口延迟移相发送数据的延迟时间,包括:将每个端口根据所述输入流量从大到小进行排序,从输入流量第二大的端口开始计算所述延迟时间。
9.进一步地,根据所述输入流量和输出流量计算每个端口延迟移相发送数据的延迟时间,具体包括:根据每个端口的所述输入流量和输出流量计算需要控制的端口数量,根据每个端口的所述输出流量和输出流量以及需要控制的端口数量计算每个端口的延迟时间。
10.进一步地,根据每个端口的所述输入流量和输出流量计算需要控制的端口数量,通过以下公式实现:
11.其中,q
in
表示输入流量,q
out
表示输出流量,i表示第i个端口,p表示需要控制的端口数量,i表示交换机的端口总数。
12.进一步地,根据每个端口的所述输出流量和输出流量以及需要控制的端口数量计算每个端口的延迟时间,通过以下公式实现:
13.其中,j=1,2,3
……
p,v表示端口的传输速率。
14.进一步地,根据所述延迟时间调节远端端口的数据发送时间,具体包括:将所述延迟时间通过pause帧发送至每个端口对应的远端端口,根据所述pause帧调节所述远端端口的数据发送时间。
15.进一步地,所述预警值为缓存总量的70%至90%,并且,所述缓存总量减去预警值后剩余的数值为预留量,所述预留量大于等于最大数据单元的数据量。
16.进一步地,所述预警值的计算方法为:
17.其中,up表示预警值,u表示缓存总量。
18.本发明还提供了一种交换机缓存调度系统,包括:
19.判断单元,用于接收数据包,判断所述数据包的数据量是否达到缓存总量的预警值;
20.计算单元,用于统计交换机中每个端口的输入流量和输出流量,根据所述输入流量和输出流量计算每个端口延迟移相发送数据的延迟时间;
21.调节单元,用于根据所述延迟时间调节数据发送时间。
22.进一步地,所述计算单元具体包括:
23.端口数量计算单元,用于计算需要控制的端口数量;
24.延迟时间计算单元,用于计算每个端口的延迟时间。
25.本发明的有益效果为:
26.在本发明中当有大量数据包同时输入交换机时,通过对缓存容量的实时监测,判断数据的缓存量是否超过预警值,当超过预警值时,根据端口数据输入输出情况使部分端口的远端端口数据延迟移相发送,动态调整通讯端口的数据发送接收来提高缓存的利用效率,在保障通讯效率的同时最大限度的提升缓存的使用效率来保障通讯数据的稳定。并且,本发明在不增加缓存总量的情况下提升了交换机的数据通讯能力,有效降低了交换机缓存的需求总量,降低了组网成本,减少了更换交换机提升网络通讯质量带来的重新研发的成本。
附图说明
27.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
28.图1是本方案的步骤流程图。
具体实施方式
29.为使得本技术的申请目的、特征、优点能够更加的明显和易懂,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,下面所描述
的实施例仅仅是本技术一部分实施例,而非全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
30.下面结合附图和具体实施例,进一步阐明本发明。
31.实施例1
32.一种交换机缓存调度方法,如图1所示,包括以下步骤:
33.s1,接收数据包并缓存数据包。在此步骤中,有时还包括对数据包进行检验,过滤错误和重复的数据包,对数据包进行检验是现有技术,在此不再赘述。
34.s2,判断数据包的数据量是否达到缓存总量的预警值,当数据包的数据量达到预警值时,执行s3-s5的步骤,如果没有则按照正常的数据传输流程进行传输。此处的“达到”预警值指数据包的数据量大于或等于预警值。
35.s3,统计交换机中每个端口的输入流量和输出流量。
36.s4,根据每个端口的输入流量和输出流量计算每个端口延迟移相发送数据的延迟时间。
37.s5,根据延迟时间调节数据发送时间并进行数据发送。
38.图中的虚线表示现有技术中的数据传输过程,接收数据包,缓存数据包,不经过本实施例的缓存调度方法就直接发送数据包了。而本方案的技术手段为实线箭头的流程。
39.在步骤s2中所述的预警值一般为缓存总量的70%至90%,并且,缓存总量减去预警值后剩余的数值为预留量,预留量大于等于最大数据单元的数据量。在本实施例中的预警值取缓存总量的80%,预留量必须大于等于1518字节,因为1518字节大小是tcp通讯方式中的最大数据单元。取80%的缓存总量一是可以尽早预警给后续步骤一个启动条件而不是得到缓存容量溢出才发现,二是预留一些流量进行后续的接收工作。
40.其计算方法为:
[0041][0042]
其中,up表示预警值,u表示缓存总量。1518的单位为byte,流量的单位是bit,将两者统一为流量单位,则需要将1518byte乘以8。
[0043]
s4中的计算延迟时间的步骤,具体包括:
[0044]
根据s3统计的每个端口的输入流量和输出流量计算需要控制的端口数量,根据每个端口的输出流量和输出流量以及需要控制的端口数量计算每个端口的延迟时间。
[0045]
在此步骤中,将每个端口根据所述输入流量从大到小进行排序,从输入流量第二大的端口开始计算所述延迟时间,不计算输入流量最大的端口的延迟时间,不延迟发送输入流量最大的端口的数据。本实施例中的延迟发送不延迟流量最大的端口,使流量最大的端口数据能够得到及时接收和转发,而从流量第二的端口开始控制延迟发送。一是因为让流量最大的端口数据放在最先通过可以使后续的缓存空间变大,二是因为流量最大的端口数据一般比较重要。
[0046]
根据每个端口的输入流量和输出流量计算需要控制的端口数量,具体包括:
[0047]
[0048]
其中,q
in
表示当前1ms内的输入流量,q
out
表示当前1ms内的输出流量,p表示需要控制的端口数量,i表示第i个端口,i表示交换机的端口总数。1518的单位为byte,流量的单位是bit,将两者统一为流量单位,需要将1518byte乘以8。需要控制的端口数量通过输入和输出流量的差额进行控制,差额越大则所需要控制的端口数量越多。
[0049]
计算需要控制的端口数量是因为可以放弃控制流量较小的端口,将流量较多的端口进行移相控制,而不用将每个端口都进行移相控制,节省了计算时间和操作流程。
[0050]
根据每个端口的输出流量和输出流量以及需要控制的端口数量计算每个端口的延迟时间,具体包括:
[0051][0052]
其中,j=1,2,3
……
p,v表示端口的传输速率。从流量第二大的端口开始按照计算时间进行控制,也就是j=1,一直计算到第p个端口。在分子上加上1518
×
8来保证至少要延后一个数据单元的时间。
[0053]
s5中根据延迟时间调节数据发送时间,具体包括:
[0054]
根据延迟时间tj发送pause帧至每个端口对应的远端端口,根据pause帧调节所述远端端口的数据发送时间来实现数据发送的移相。pause帧是一个标准协议帧,移相是一个相位概念,在本实施例中1518byte的传输时间为一个相位。
[0055]
本实施例中的1518byte是一个最大数据单元的存储空间,是一个默认值,但在其他实施例中可以根据实际情况进行微调,来适应不同交换机运用对丢包和延时的要求。
[0056]
实施例2
[0057]
本实施例提供一种交换机缓存系统,包括:
[0058]
判断单元,用于接收数据包,判断数据包的数据量是否达到缓存总量的预警值。
[0059]
判断单元做出数据包的数据量超出预警值的判断后,启动缓存调度程序,调用计算单元计算每个端口的延时时间。
[0060]
计算单元,用于统计交换机中每个端口的输入流量和输出流量,根据所述输入流量和输出流量计算每个端口延迟移相发送数据的延迟时间;
[0061]
计算单元具体包括:
[0062]
端口数量计算单元,用于计算需要控制的端口数量;
[0063]
延迟时间计算单元,用于计算每个端口的延迟时间。
[0064]
端口数量计算单元计算出需要控制的端口数量后,将端口数量发送给延迟时间计算单元,延迟时间计算单元根据需要控制的端口数量计算每个端口的延迟时间。并将延迟时间发送给调节单元。
[0065]
调节单元,用于根据所述延迟时间调节数据发送时间。
[0066]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0067]
所述单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根
据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0068]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0069]
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。
[0070]
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献