一种面向以太网的自适应动态流控制系统及方法与流程

文档序号:17861523发布日期:2019-06-11 22:53阅读:144来源:国知局

本发明属于数据通信技术领域,尤其是一种面向以太网的自适应动态流控制系统及方法。



背景技术:

高性能信息处理平台中,多采用光纤进行对外高速接口设计,对内采用40g以太网进行刀片间互连,使用fpga芯片实现光纤接口协议向40g以太网协议的转换和数据转发功能,其中40g以太网的实际发送带宽利用率直接影响接口协议的转换效率和数据转发能力。

40g以太网带宽是10g以太网的4倍,较高的线速率让设计者担心40g以太网在应用过程中出现发送过快而对端设备接收不及时造成丢包的情况,因此在设计时,高性能信息处理平台内fpga实现的40g以太网发送数据的帧长和帧间隔是固定值,且帧间隔设置值较大。为实现实际工作情况下的最大性能,需要多次修改发送数据的帧长和帧间隔设置值,重新修改逻辑代码和综合实现工程,进行回归测试。该方法整改周期长,且存在修改后仍不能适用实际工作情况的风险,该方法不能根据实际应用情况自主可变,缺乏灵活机动性,适用情况单一。

关于流控的专利有一种以太网数据流量控制方法(中国专利cn200610060686)、一种以太网流控方法、装置和网络设备(中国专利cn200910091578),所述方法只适用于百兆以太网或千兆以太网,不适用于40g以太网。暂时还没有对40g以太网流控方法的研究。



技术实现要素:

本发明的目的在于克服上述现有技术的缺点,提供一种面向以太网的自适应动态流控制系统及方法。在传输过程中自主进行流量控制,自动确定发送数据的帧长和真间隔,自适应启动、暂停和结束发送填充过程,实现40g以太网发送带宽利用最大化。

为达到上述目的,本发明采用以下技术方案予以实现:

一种面向以太网的自适应动态流控制系统,包括依次连接的高速协议处理模块、高速数据缓存模块、校验和生成模块、发送控制模块以及以太网mac模块,以太网mac模块与对端网络设备连接;其中校验和生成模块包括依次连接的udp协议包头封装模块、ip协议包头封装模块和乒乓缓存fifo,乒乓缓存fifo与发送控制模块连接。

本发明进一步的改进在于:

高速协议处理模块和高速数据缓存模块均采用标准异步fifo接口。

乒乓缓存fifo包括并联的乒乓缓存afifo和乒乓缓存bfifo,且乒乓缓存fifo能够缓存一帧最大长度40g以太网帧数据。

一种面向以太网的自适应动态流的控制方法,包括以下步骤:

步骤1:高速数据缓存模块缓存高速协议处理模块发送的数据;

步骤2:校验和产生模块监测高速数据缓存模块的空状态;当高速数据缓存模块非空,且乒乓缓存afifo和乒乓缓存bfifo至少一个为空时,则乒乓缓存afifo和乒乓缓存bfifo中为空的从高速数据缓存模块中读取数据;否则不读取数据;

步骤3:发送控制模块监测校验和生成模块内的乒乓缓存fifo和以太网mac模块状态,并将监测结果作为发送控制模块状态机跳转的起始条件,若乒乓缓存fifo非空且以太网mac模块已准备完毕,则发送控制模块状态机跳转并向以太网mac模块传送数据,否则发送控制模块状态机保持idle状态。

所述方法的进一步改进在于:

乒乓缓存afifo和乒乓缓存bfifo中为空的从高速数据缓存模块中读取数据具体为:

步骤2-1:计算udp协议包头封装模块内的udp协议包校验和,并完成udp包头封装;

步骤2-2:计算ip协议包头封装模块内的ip协议包校验和,并完成ip包头封装;

步骤2-3:写入乒乓缓存afifo和乒乓缓存bfifo中为空的。

乒乓缓存afifo和乒乓缓存bfifo中为空的从高速数据缓存模块中读取数据,具体为:

读取数据过程中,当高速数据缓存模块为空时,校验和生成模块停止读取高速数据缓存模块中数据,并将当前已读取数据作为即将传送至发送控制模块的数据,否则持续读取;

当存入乒乓缓存fifo中的数据长度达到最大以太网帧帧长,校验和生成模块停止读取高速数据缓存模块中数据,并将已读数据作为即将传送至发送控制模块的数据,否则持续读取。

步骤3中发送控制模块状态机跳转并向以太网mac模块传送数据,具体为:

当以太网mac模块发送流量使对端网络设备的接收能力溢出时,对端网络设备发送pause帧请求以太网mac模块延迟发送网络数据,以太网mac模块,通过数据包解析确定延迟发送时间,发送控制模块暂停向以太网mac模块发送帧数据,延迟时间完毕,发送控制模块恢复向以太网mac模块发送帧数据;否则发送控制模块持续向以太网mac模块发送数据。

与现有技术相比,本发明具有以下有益效果:

本发明的系统中,高速协议处理模块和高速数据缓存模块采用标准异步fifo接口设计,使得在更改与40g以太网交互的高速接口时,核心代码无需重新设计,简化与不同高速接口交互的功能设计;同时乒乓缓存fifo可缓存一帧最大长度40g以太网帧数据,并主要实现相邻帧数据的隔离缓存,达到内部数据正常处理速率的双倍效果,可提高接口协议数据的转换效率和数据转发能力。

本系统的控制方法,当读取过程中存入乒乓fifo中的数据长度达到最大40g以太网帧帧长,校验和生成模块停止读取高速数据缓冲fifo,当前读取的数据便作为即将发送的40g以太网帧有效数据,通过以上方法可自动确定发送数据帧的帧长;当40g以太网发送流量过大,对端网络设备的接收能力溢出时,40g以太网根据对端设备发出的指令自动控制,可自动确定发送数据帧的帧间隔。通过采用状态监测算法和流控方法,自动确定发送数据的帧长和帧间隔,自适应启动、暂停、结束发送数据填充过程,实现40g以太网发送带宽利用最大化。

【附图说明】

图1为本发明的系统结构示意图;

图2为本发明的校验和生成模块结构示意图;

图3为本发明的控制方法示意图。

其中:1-高速协议处理模块;2-高速数据缓存模块;3-校验和生成模块;4-发送控制模块;5-40g以太网mac模块;31-udp协议包头封装模块;32-ip协议包头封装模块;33-乒乓缓存afifo;34-乒乓缓存bfifo。

【具体实施方式】

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,不是全部的实施例,而并非要限制本发明公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要的混淆本发明公开的概念。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

在附图中示出了根据本发明公开实施例的各种结构示意图。这些图并非是按比例绘制的,其中为了清楚表达的目的,放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。

本发明公开的上下文中,当将一层/元件称作位于另一层/元件“上”时,该层/元件可以直接位于该另一层/元件上,或者它们之间可以存在居中层/元件。另外,如果在一种朝向中一层/元件位于另一层/元件“上”,那么当调转朝向时,该层/元件可以位于该另一层/元件“下”。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

下面结合附图对本发明做进一步详细描述:

参见图1和2,本发明面向以太网的自适应动态流控制系统,包括依次连接的高速协议处理模块1、高速数据缓存模块2、校验和生成模块3、发送控制模块4和40g以太网mac模块5,40g以太网mac模块5与对端网络设备连接;其中校验和生成模块3包括依次连接的udp协议包头封装模块31、ip协议包头封装模块32和乒乓缓存fifo,乒乓缓存fifo与发送控制模块4连接。高速协议处理模块1和高速数据缓存模块2均采用标准异步fifo接口,乒乓缓存fifo包括并联的乒乓缓存afifo33和乒乓缓存bfifo34,且乒乓缓存fifo能够缓存一帧最大长度40g以太网帧数据。

图3是本发明的控制方法示意图,所述控制方法按照以下步骤执行:

s1:发送数据填充空闲状态;

s2:判断40g以太网mac模块是否准备好和乒乓缓冲fifo是否非空;

s3:读取乒乓缓冲fifo数据;

s4:判断是否延迟发送;

s5:发送延迟等待计时;

s6:判断帧长是否达到40g以太网帧的最大帧长;

s7:判断乒乓缓冲fifo是否为空;

s8:发送数据填充结束状态。

具体的:

高速协议处理模块1接收到数据后,经过协议解析将有效数据缓存在高速数据缓存模块2中,校验和生成模块3监测高速数据缓存模块2、乒乓缓存afifo33和乒乓缓存bfifo34的空状态。当高速数据缓存模块2不为空,乒乓缓存afifo或乒乓缓存bfifo至少一个为空时,校验和生成模块3发起读取高速数据缓存模块2的操作。读取的数据经过udp协议包头封装模块31和ip协议包头封装模块32的封装处理,成为符合ip协议的包数据,然后通过控制写入乒乓缓存afifo或乒乓缓存bfifo。乒乓缓存fifo可缓存一帧最大长度40g以太网帧数据,并主要实现相邻帧数据的隔离缓存,达到内部数据正常处理速率的双倍效果,可提高接口协议数据的转换效率和数据转发能力。

发送控制模块4监测乒乓缓存afifo、乒乓缓存bfifo的空状态和40g以太网mac模块的准备状态,当乒乓缓存afifo或乒乓缓存bfifo不为空,且40g以太网mac模块已准备好,即s2条件满足时,发送控制模块4发起对乒乓缓存afifo或乒乓缓存bfifo的读取操作,即s3。读取数据后进行s4条件的判断,如果判断为真,则进行s5操作,待s5计时结束进行s6条件的判断;如果判断为假,则直接进行s6条件的判断。当s6为真,因达到40g以太网帧的最大帧长,当前帧数据填充完毕,即跳转到s8状态;当s6为假,进一步判断s7。若s7为真,因乒乓缓存fifo无数据等待发送,当前帧数据填充完毕,即跳转到s8状态;若s7为假,则重复进入s2的判断,依次类推。

其中高速数据缓存模块2非空且存入乒乓缓存fifo中的数据长度未达到最大40g以太网帧帧长时,校验和生成模块3会持续读取高速数据缓存模块2。当读取过程中高速数据缓存模块2变空时,校验和生成模块3停止读取高速数据缓存模块3,当前读取的数据便作为即将发送的40g以太网帧有效数据。当读取过程中存入乒乓缓存fifo中的数据长度达到最大40g以太网帧帧长,校验和生成模块3停止读取高速数据缓存模块2,当前读取的数据便作为即将发送的40g以太网帧有效数据。通过以上方法可自动确定发送数据帧的帧长。

发送控制模块4监测校验和生成模块3内部的乒乓缓存fifo是否非空、40g以太网mac模块5是否准备好,监测结果作为内部发送控制状态机跳转的起始条件,否则发送控制状态机保持idle状态。发送控制状态机开始跳转后,依次完成40g以太网帧的帧头和有效数据的发送填充。在填充数据过程中,40g以太网mac模块5将填充的发送数据实时发送。帧间隔设置为最小值,在正常发送完整帧的过程中,帧间隔保持最小值,节省40g以太网mac模块5发送空闲状态的开销。当40g以太网mac模块5发送流量过大,对端网络设备的接收能力溢出时,对端设备发送pause帧请求40g以太网延迟发送网络数据,40g以太网mac模块5收到pause帧后,通过数据包解析自动确定延迟发送时间,发送控制模块4自动暂停向40gmac模块填充当前帧数据,待延迟时间计时完毕,发送控制模块4自动恢复向40g以太网mac模块5填充当前帧数据。通过以上方法可自动确定发送数据帧的帧间隔。

根据上述方案,用veriloghdl语言对自适应动态流控功能进行描述,并完成逻辑综合与布局布线;将逻辑设计映射到可编程逻辑器件中实现,并对自适应动态流控功能进行测试。测试结果表明本发明具有很好的可实施性,且性能满足预期。

以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。

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