一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法

文档序号:7804041阅读:282来源:国知局
一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法
【专利摘要】一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法,搭建Cortex-A8处理器、硬实时操作系统μC/OS-III和轻型协议栈LwIP的平台来实现机器视觉系统与外部装置的实时通信;采用NewReno算法优化LwIP中TCP拥塞控制机制的快速重传和快速恢复阶段,避免多个数据包丢失引起的多次快速恢复或慢启动,提高网络数据传输的可靠性和稳定性;采用归一化最小均方误差算法优化LwIP中TCP超时重传机制,准确估计RTO值,减少TCP数据传输中的伪重传,以提升TCP协议在工业环境下的数据吞吐量。
【专利说明】—种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法
【技术领域】
[0001]本发明涉及使用LwIP实现工业以太网数据拥塞控制领域,具体是指一种应用于工业现场的、高实时性要求的多个嵌入式机器视觉系统的快速可靠的以太网防拥塞方法。
【背景技术】
[0002]随着以太网的日益完善和普及,以太网在工业控制产品中的重要性也日益加大。由于嵌入式机器视觉系统与上位机(PC)、触摸屏等设备交互的数据量大,因此对于嵌入式机器视觉系统而言,以太网通信是必不可少的。在存在多个嵌入式机器视觉系统的工业环境下,机器视觉系统大量图像数据的传输时延要求很小,但由于路由器的存储能力、转发能力有限,主机的数量和数据报流量也会动态变化,所以网络中会出现拥塞的现象,当拥塞发生时,路由器会直接丢弃掉来不及处理的数据报,在这种情况下如果不能及时解决网络拥塞问题,有可能会造成巨大的经济损失或是惨重的人员伤亡。因此,拥塞控制在工业以太网中具有重要的地位。
[0003]当前对TCP数据传输拥塞控制的研究主要集中在两个方面,一是拥塞控制机制的研究,根据发送数据包的确认情况来调节拥塞窗口的大小,并通过重传机制确保数据的可靠传输,但在工业现场当多个嵌入式视觉系统通过路由器传递大量的图像数据时,会出现在一个发送窗口出现多个数据包丢失的情况,在现有LwIP中在此情况下发送效率较低;二是对于超时重传机制的研究,合理预测RTO值,当数据包RTO时间内无法得到接收确认包时及时重传丢失数据包,但当多个嵌入式视觉系统同时发送数据包时会使得RTT的变化较大,在此情况下现有LwIP使用固定估计器增益会使得RTO滞后于RTT的变化,从而会导致数据包伪重传以降低数据吞吐量。
[0004]本发明在这些研究基础上,根据多个嵌入式视觉系统工作在工业现场的特征,提出了一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法,改进拥塞控制机制和超时重传机制以提高网络数据传输的高效性和可靠性。

【发明内容】

[0005]本发明目的在于提供一种针对多嵌入式视觉系统的工业以太网防拥塞方法,通过改进LwIP协议中的拥塞控制机制和超时重传机制更好的适应工业现场高实时性、高准确率的要求。
[0006]为达到此目的,本发明的技术方案如下:
[0007](I)嵌入式实时系统μ C/0S-1II和嵌入式网络LwIP在Cortex_A8上面的平台搭建,通过修改CPU相关的文件、实时系统内核相关的文件和创建适用于目标板的板级支持包BSP来完成μ C/0S-1II平台搭建,通过修改操作系统模拟层和网络驱动层来完成LwIP的平台搭建。
[0008](2)使用NewReno算法改进LwIP中TCP数据包的拥塞控制机制,改变拥塞控制中快速恢复机制,设置拥塞窗口和慢启动门限,修改拥塞窗口在恢复阶段的增长方式,同时增加发送队列的最大序列号,根据确认数据包的序列号判断是否为部分确认,当全部确认后退出差错恢复阶段。
[0009](3)使用归一化最小均方误差算法改进LwIP中TCP数据包的超时重传机制,根据以往的RTT值和RTT估计误差迭代求出最新的RTT权值,使用归一化步长来加速算法的收敛速度,进而估算出下一次的RTT值和RTO值。
[0010]本发明优点如下:本发明一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法,采用高速的Cortex-AS处理器,搭载硬实时操作系统和网络通讯协议栈LwIP,满足了工业现场多任务的实时响应。采用NewReno算法解决了 LwIP中只能保证重传第一个丢失数据包的问题,避免了多个数据包丢失引起多次快速恢复或慢启动,从而提高了机器视觉系统网络数据传输的可靠性和稳定性。采用归一化最小均方误差算法改善在RTT变化较大时RTO估值不精确的情况,消除了 RTO值变化滞后RTT变化的现象,并且减少了 TCP数据传输中的伪重传,提升TCP协议在工业环境下的数据吞吐量。
【专利附图】

【附图说明】
[0011]图1本发明网络通信平台整体框图
[0012]图2本发明NewReno算法拥塞控制流程图
【具体实施方式】
[0013]为使本发明的目的、技术方案和优点更加清楚明白,下面结合具体实施例,并参照附图,对本发明作进一步详细说明。
[0014]附图1是本发明的以太网通信平台的整体结构图。
[0015]流程包括嵌入式实时系统μ C/0S-1II和嵌入式网络LwIP在Cortex_A8上面的平台搭建、NewReno算法实现LwIP中TCP的拥塞控制和归一化最小均方误差算法实现TCP的超时重传机制,具体步骤如下:
[0016]μ C/0S-1II 和 LwIP 在 Cortex_A8 上面的平台搭建
[0017]第一步:μC/0S-1II 在 Cortex_A8 上的搭建
[0018](I)修改与CPU相关的文件
[0019]μ C/0S-1II中CPU相关文件的修改决定于CPU的架构。与CPU相关的代码被封装在 μ C/CPU 的模块中。要完成的文件有:CPU_DEF.H、CPU.H、CPU_C.C、CPU_CFG.H、CPU_CORE.C、CPU_C0RE.H、CPU_A.ASM。
[0020](2)修改与yC/OS-1II内核相关的文件
[0021 ]要完成的文件有:0S_CPU.H、0S_CPU_A.ASM、0S_CPU_C.C。
[0022](3)创建适应于目标板的板级支持包BSP
[0023]板级支持包的代码跟用户所使用的目标板有关。要完成的文件有:BSP.C、BSP.H、BSP_INT.C、BSP_INT.Η。
[0024]第二步:LwIP在运行μ C/0S-1II系统的Cortex_A8上的搭建
[0025](I)操作系统模拟层实现
[0026]将LwIP内核作为yC/OS-1II操作系统的一个任务运行,利用系统模拟层规定协议栈与操作系统之间接口函数的实现。操作系统模拟层的实现函数包括:信号量操作函数、邮箱操作函数、线程创建函数(sys_thread_new())、任务定时函数(sys_arch_timeoutsO)、临界保护涵数等。
[0027](2)网络驱动层的实现
[0028]网络驱动层实现包括LwIP的初始化函数实现和网络驱动函数实现。
[0029](I) LwIP 的初始化函数主要有:_ilcInitLwIP O 函数、_ilcSetLwIP O 函数。
[0030](2)网络驱动函数主要有:ethemetif_init O、ethemetif_init O、low_level_init()、low_level_output() > ethemetif_input()、low_level_input() >GetInputPacketLen ()、EMACInit ()、EMACReadPacket ()、EMACSendPacket ()等。
[0031 ] NewReno算法实现LwIP中TCP数据包的拥塞控制
[0032]该算法如图2所示,具体算法流程如下:
[0033]第一步:慢启动阶段和拥塞避免阶段
[0034]慢启动算法和拥塞避免算法需要对每个连接维持两个变量:一个拥塞窗口 cwnd和一个慢启动门限ssthresh。
[0035](I)对于一个新建立的连接,初始化阻塞窗口 cwnd为I个报文段大小,这个在LwIP中被定义为2048字节,ssthresh被初始化为最大报文大小的10倍。
[0036](2)发送方可以发送的数据量不能超过cwnd和接受方通告窗口的大小。发送方通过前者对网络拥塞进行估计,而接收方则通过后者来通知接收方可用缓存大小。
[0037](3)当发送方检测到拥塞时(超时或收到重复确认),ssthresh的值被设置为:
[0038]ssthresh = max(FlightSize/2,2*SMSS)
[0039]其中:FlightSize是已发送但未收到确认的字节数,SMSS是发送端能发送的最大数据段的尺寸。
[0040](4)当有新数据得到确认时,发送方就增加cwnd,增加cwnd的方式依赖于是处于慢启动阶段还是拥塞避免阶段:
[0041]如果cwnd ( ssthresh,则处于慢启动阶段,cwnd增长方式为:
[0042]cwnd+ = min (N, SMSS)
[0043]其中:N为此次确认中包含的之前未被确认的字节数。
[0044]如果cwnd > ssthresh,则处于拥塞避免阶段,cwnd增长方式为:
[0045]cwnd+ = SMSS*SMSS/cwnd
[0046]第二步:快速重传阶段和快速恢复阶段
[0047]快速重传和快速恢复算法按如下过程进行实现:
[0048](I)当发送端收到3个重复的ACK (确认包)时,修改慢启动门限ssthresh为:
[0049]ssthresh = max(FlightSize/2,2*SMSS)
[0050]同时,使用recover变量记录已发送数据包的序列号。
[0051](2)重传丢失的数据段并将cwnd的值设置为:
[0052]cwnd = ssthresh+3*SMSS
[0053](3)在此过程中系统仍允许收到重复ACK的同时将cwnd增加SMSS,并在新的cwnd允许的情况下传输一个分组。
[0054](4)当一个确认新数据的ACK到达时,根据确认序列号分为以下两种情况:[0055]如果它的确认序列号不小于recover,则所有处于三次重复的ACK的确认序列号和recover之间的数据包都得到了确认,此时设置cwnd为:
[0056]cwnd = min (ssthresh, FlightSize+SMSS)
[0057]或者cwnd = ssthresh
[0058]从而结束快速恢复算法。
[0059]如果它的确认序列号小于recover,则表不这是一部分确认信息,此时重传第一个没有确认的数据段,并且按确认的新数据量来减小cwnd,将cwnd增加一个SMSS并减去新确认的数据段,cwnd值如下所示:
[0060]cwnd+ = SMSS-ackno+lastack
[0061]其中:ackno为返回确认数据包的确认序列号,Iastack为上一个发送窗口发送完后的确认数据包的确认序列号。 [0062]归一化最小均方误差算法实现TCP的超时重传机制
[0063]第一步:计算估计误差均方值的梯度向量
[0064]在TCP数据传输过程中,记第η次RTT采样值的前M个RTT值为输入向量为尤(X),其对应的权重向量为妒O),即:
[0065]
【权利要求】
1.本发明的目的在于提供一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法,其特征是:通过Cortex-AS处理器、μ C/0S-1II和LwIP的平台搭建来实现机器视觉系统与外部装置的实时通信;采用NewReno算法优化LwIP中TCP拥塞控制机制的快速重传和快速恢复阶段,避免多个数据包丢失引起的多次快速恢复或慢启动;采用归一化最小均方误差算法迭代求出最优权值,优化LwIP中RTO的估计,避免了数据包的伪重传,从而提高机器视觉系统网络数据传输的可靠性和稳定性;包含如下几个步骤: (1)μ C/0S-1II和LWIP在Cortex-A8上面的平台搭建 第一步:μ C/0S-1II在Cortex_A8上的搭建; 第二步=LwIP在运行μ C/0S-1II系统的Cortex-A8上的搭建; (2)NewReno算法实现LwIP中TCP数据包的拥塞控制 第一步:慢启动阶段和拥塞避免阶段的拥塞控制; 第二步:快速重传阶段和快速恢复阶段; (3)归一化最小均方误差算法实现TCP的超时重传机制 第一步:计算估计误差均方值的梯度向量; 第二步:计算出权值归一化迭代公式; 第三步:计算出TCP定时器RTO的值。
2.根据权利要求1所述一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法,其特征是:所述NewReno算法实现LwIP中TCP数据包的拥塞控制(2)第二步中,包括: 第一步:当发送端收到3个重复的确认包时,修改ssthresh为已发送但未收到确认的字节数的一半但至少为两个最大发送数据段的大小,并且用recover变量记录已发送数据包的序列号; 第二步:重传丢失的数据段并将cwnd的值设为ssthresh加上三倍的最大发送数据段大小; 第三步:在此过程中仍允许收到重复确认包的同时将cwnd增加一个最大发送数据段大小,并在新的cwnd允许的情况下传输一个分组; 第四步:当一个确认新数据的确认包到达时,根据确认序列号分为部分确认和全部确认: 如果确认序列号不小于recover,则为全部确认,调整cwnd为ssthresh和已发送但未收到确认的字节数加上一个最大发送数据段大小中的较小者,或者调整cwnd为ssthresh退出快速恢复阶段进入慢启动阶段; 如果确认序列号小于recover,则为部分确认,这时需要重传第一个未被确认的数据段,将cwnd增加一个最大发送数据段大小并减去新确认的数据段。
3.根据权利要求1所述一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法,其特征是:所述归一化最小均方误差算法实现TCP的超时重传机制(3)中,包括: 第一步:计算估计误差均方值的梯度向量 根据第η次RTT采样值的前M个RTT值和权值得到第η+1次的RTT预测值为:


Mχ{η +1) = Σ w, {n)x{n - / +1)




/=] 估计误差的均方值的代价函数为:
【文档编号】H04L1/18GK103973416SQ201410209603
【公开日】2014年8月6日 申请日期:2014年5月15日 优先权日:2014年5月15日
【发明者】白瑞林, 马敏锐, 李新, 过志强 申请人:无锡信捷电气股份有限公司, 江南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1