CN103973416A - 一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法 - Google Patents
一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法 Download PDFInfo
- Publication number
- CN103973416A CN103973416A CN201410209603.2A CN201410209603A CN103973416A CN 103973416 A CN103973416 A CN 103973416A CN 201410209603 A CN201410209603 A CN 201410209603A CN 103973416 A CN103973416 A CN 103973416A
- Authority
- CN
- China
- Prior art keywords
- lwip
- tcp
- value
- cwnd
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法,搭建Cortex-A8处理器、硬实时操作系统μC/OS-III和轻型协议栈LwIP的平台来实现机器视觉系统与外部装置的实时通信;采用NewReno算法优化LwIP中TCP拥塞控制机制的快速重传和快速恢复阶段,避免多个数据包丢失引起的多次快速恢复或慢启动,提高网络数据传输的可靠性和稳定性;采用归一化最小均方误差算法优化LwIP中TCP超时重传机制,准确估计RTO值,减少TCP数据传输中的伪重传,以提升TCP协议在工业环境下的数据吞吐量。
Description
技术领域
本发明涉及使用LwIP实现工业以太网数据拥塞控制领域,具体是指一种应用于工业现场的、高实时性要求的多个嵌入式机器视觉系统的快速可靠的以太网防拥塞方法。
背景技术
随着以太网的日益完善和普及,以太网在工业控制产品中的重要性也日益加大。由于嵌入式机器视觉系统与上位机(PC)、触摸屏等设备交互的数据量大,因此对于嵌入式机器视觉系统而言,以太网通信是必不可少的。在存在多个嵌入式机器视觉系统的工业环境下,机器视觉系统大量图像数据的传输时延要求很小,但由于路由器的存储能力、转发能力有限,主机的数量和数据报流量也会动态变化,所以网络中会出现拥塞的现象,当拥塞发生时,路由器会直接丢弃掉来不及处理的数据报,在这种情况下如果不能及时解决网络拥塞问题,有可能会造成巨大的经济损失或是惨重的人员伤亡。因此,拥塞控制在工业以太网中具有重要的地位。
当前对TCP数据传输拥塞控制的研究主要集中在两个方面,一是拥塞控制机制的研究,根据发送数据包的确认情况来调节拥塞窗口的大小,并通过重传机制确保数据的可靠传输,但在工业现场当多个嵌入式视觉系统通过路由器传递大量的图像数据时,会出现在一个发送窗口出现多个数据包丢失的情况,在现有LwIP中在此情况下发送效率较低;二是对于超时重传机制的研究,合理预测RTO值,当数据包RTO时间内无法得到接收确认包时及时重传丢失数据包,但当多个嵌入式视觉系统同时发送数据包时会使得RTT的变化较大,在此情况下现有LwIP使用固定估计器增益会使得RTO滞后于RTT的变化,从而会导致数据包伪重传以降低数据吞吐量。
本发明在这些研究基础上,根据多个嵌入式视觉系统工作在工业现场的特征,提出了一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法,改进拥塞控制机制和超时重传机制以提高网络数据传输的高效性和可靠性。
发明内容
本发明目的在于提供一种针对多嵌入式视觉系统的工业以太网防拥塞方法,通过改进LwIP协议中的拥塞控制机制和超时重传机制更好的适应工业现场高实时性、高准确率的要求。
为达到此目的,本发明的技术方案如下:
(1)嵌入式实时系统μC/OS-III和嵌入式网络LwIP在Cortex-A8上面的平台搭建,通过修改CPU相关的文件、实时系统内核相关的文件和创建适用 于目标板的板级支持包BSP来完成μC/OS-III平台搭建,通过修改操作系统模拟层和网络驱动层来完成LwIP的平台搭建。
(2)使用NewReno算法改进LwIP中TCP数据包的拥塞控制机制,改变拥塞控制中快速恢复机制,设置拥塞窗口和慢启动门限,修改拥塞窗口在恢复阶段的增长方式,同时增加发送队列的最大序列号,根据确认数据包的序列号判断是否为部分确认,当全部确认后退出差错恢复阶段。
(3)使用归一化最小均方误差算法改进LwIP中TCP数据包的超时重传机制,根据以往的RTT值和RTT估计误差迭代求出最新的RTT权值,使用归一化步长来加速算法的收敛速度,进而估算出下一次的RTT值和RTO值。
本发明优点如下:本发明一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法,采用高速的Cortex-A8处理器,搭载硬实时操作系统和网络通讯协议栈LwIP,满足了工业现场多任务的实时响应。采用NewReno算法解决了LwIP中只能保证重传第一个丢失数据包的问题,避免了多个数据包丢失引起多次快速恢复或慢启动,从而提高了机器视觉系统网络数据传输的可靠性和稳定性。采用归一化最小均方误差算法改善在RTT变化较大时RTO估值不精确的情况,消除了RTO值变化滞后RTT变化的现象,并且减少了TCP数据传输中的伪重传,提升TCP协议在工业环境下的数据吞吐量。
附图说明
图1本发明网络通信平台整体框图
图2本发明NewReno算法拥塞控制流程图
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合具体实施例,并参照附图,对本发明作进一步详细说明。
附图1是本发明的以太网通信平台的整体结构图。
流程包括嵌入式实时系统μC/OS-III和嵌入式网络LwIP在Cortex-A8上面的平台搭建、NewReno算法实现LwIP中TCP的拥塞控制和归一化最小均方误差算法实现TCP的超时重传机制,具体步骤如下:
μC/OS-III和LwIP在Cortex-A8上面的平台搭建
第一步:μC/OS-III在Cortex-A8上的搭建
(1)修改与CPU相关的文件
μC/OS-III中CPU相关文件的修改决定于CPU的架构。与CPU相关的代码被封装在μC/CPU的模块中。要完成的文件有:CPU_DEF.H、CPU.H、CPU_C.C、CPU_CFG.H、CPU_CORE.C、CPU_CORE.H、CPU_A.ASM。
(2)修改与μC/OS-III内核相关的文件
要完成的文件有:OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C。
(3)创建适应于目标板的板级支持包BSP
板级支持包的代码跟用户所使用的目标板有关。要完成的文件有:BSP.C、 BSP.H、BSP_INT.C、BSP_INT.H。
第二步:LwIP在运行μC/OS-III系统的Cortex-A8上的搭建
(1)操作系统模拟层实现
将LwIP内核作为μC/OS-III操作系统的一个任务运行,利用系统模拟层规定协议栈与操作系统之间接口函数的实现。操作系统模拟层的实现函数包括:信号量操作函数、邮箱操作函数、线程创建函数(sys_thread_new())、任务定时函数(sys_arch_timeouts())、临界保护涵数等。
(2)网络驱动层的实现
网络驱动层实现包括LwIP的初始化函数实现和网络驱动函数实现。
(1)LwIP的初始化函数主要有:_ilcInitLwIP()函数、_ilcSetLwIP()函数。
(2)网络驱动函数主要有:ethemetif_init()、ethemetif_init()、low_level_init()、low_level_output()、ethemetif_input()、low_level_input()、GetInputPacketLen()、EMACInit()、EMACReadPacket()、EMACSendPacket()等。
NewReno算法实现LwIP中TCP数据包的拥塞控制
该算法如图2所示,具体算法流程如下:
第一步:慢启动阶段和拥塞避免阶段
慢启动算法和拥塞避免算法需要对每个连接维持两个变量:一个拥塞窗口cwnd和一个慢启动门限ssthresh。
(1)对于一个新建立的连接,初始化阻塞窗口cwnd为1个报文段大小,这个在LwIP中被定义为2048字节,ssthresh被初始化为最大报文大小的10倍。
(2)发送方可以发送的数据量不能超过cwnd和接受方通告窗口的大小。发送方通过前者对网络拥塞进行估计,而接收方则通过后者来通知接收方可用缓存大小。
(3)当发送方检测到拥塞时(超时或收到重复确认),ssthresh的值被设置为:
ssthresh=max(FlightSize/2,2*SMSS)
其中:FlightSize是已发送但未收到确认的字节数,SMSS是发送端能发送的最大数据段的尺寸。
(4)当有新数据得到确认时,发送方就增加cwnd,增加cwnd的方式依赖于是处于慢启动阶段还是拥塞避免阶段:
如果cwnd≤ssthresh,则处于慢启动阶段,cwnd增长方式为:
cwnd+=min(N,SMSS)
其中:N为此次确认中包含的之前未被确认的字节数。
如果cwnd>ssthresh,则处于拥塞避免阶段,cwnd增长方式为:
cwnd+=SMSS*SMSS/cwnd
第二步:快速重传阶段和快速恢复阶段
快速重传和快速恢复算法按如下过程进行实现:
(1)当发送端收到3个重复的ACK(确认包)时,修改慢启动门限ssthresh为:
ssthresh=max(FlightSize/2,2*SMSS)
同时,使用recover变量记录已发送数据包的序列号。
(2)重传丢失的数据段并将cwnd的值设置为:
cwnd=ssthresh+3*SMSS
(3)在此过程中系统仍允许收到重复ACK的同时将cwnd增加SMSS,并在新的cwnd允许的情况下传输一个分组。
(4)当一个确认新数据的ACK到达时,根据确认序列号分为以下两种情况:
如果它的确认序列号不小于recover,则所有处于三次重复的ACK的确认序列号和recover之间的数据包都得到了确认,此时设置cwnd为:
cwnd=min(ssthresh,FlightSize+SMSS)
或者cwnd=ssthresh
从而结束快速恢复算法。
如果它的确认序列号小于recover,则表示这是一部分确认信息,此时重传第一个没有确认的数据段,并且按确认的新数据量来减小cwnd,将cwnd增加一个SMSS并减去新确认的数据段,cwnd值如下所示:
cwnd+=SMSS-ackno+lastack
其中:ackno为返回确认数据包的确认序列号,lastack为上一个发送窗口发送完后的确认数据包的确认序列号。
归一化最小均方误差算法实现TCP的超时重传机制
第一步:计算估计误差均方值的梯度向量
在TCP数据传输过程中,记第n次RTT采样值的前M个RTT值为输入向量为其对应的权重向量为即:
则对各采样值求加权和后得到的预测值为:
在最小均方估计中,算法的计算输出和期望响应存在误差,定义第n次的估计误差为:
定义代价函数为估计误差的均方值:
为求解最小的估计误差值,定义如下的梯度算符:
则代价函数的梯度算符可表示为:
k=1,2,…,M
根据最小均方误差算法,要对观测数据进行准确的估计,估计误差e(n)最小时其均方误差才能达到最小,则其代价函数的导数必须为0。即:
则定义梯度向量为:
第二步:计算出权值归一化迭代公式
根据最小均方误差自适用算法,其权重向量可表示为:
将代价函数的梯度向量的期望值用瞬时值代替,即:
则:
只要确定参数M和步长因子μ(n-1),通过上式就可求出权重向量从而实现对第n+1次RTT值的估计。M值越大,估计精度越高,但是其算法复杂度也随之增大。对于步长因子μ(n-1),其值越小,算法收敛越慢,但稳态误差也越小。
将步长因子μ(n-1)归一化处理,以加速算法收敛速度。即:
式中:α为控制失调的固定收敛因子,β参数是为避免过小导致步长值太小而设置的,满足0<α<2,0≤β≤1。
第三步:计算出TCP定时器RTO的值
和的表达式分别为:
Claims (3)
1.本发明的目的在于提供一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法,其特征是:通过Cortex-A8处理器、μC/OS-III和LwIP的平台搭建来实现机器视觉系统与外部装置的实时通信;采用NewReno算法优化LwIP中TCP拥塞控制机制的快速重传和快速恢复阶段,避免多个数据包丢失引起的多次快速恢复或慢启动;采用归一化最小均方误差算法迭代求出最优权值,优化LwIP中RTO的估计,避免了数据包的伪重传,从而提高机器视觉系统网络数据传输的可靠性和稳定性;包含如下几个步骤:
(1)μC/OS-III和LWIP在Cortex-A8上面的平台搭建
第一步:μC/OS-III在Cortex-A8上的搭建;
第二步:LwIP在运行μC/OS-III系统的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)中,包括:
第一步:计算估计误差均方值的梯度向量
根据第n次RTT采样值的前M个RTT值和权值得到第n+1次的RTT预测值为:
估计误差的均方值的代价函数为:
将代价函数的梯度算符表示为:
k=1,2,…,M
从而代价函数梯度向量为:
第二步:计算出权值归一化迭代公式
权重向量按下式更新:
代价函数的梯度向量的期望值用瞬时值代替:
同时,将步长归一化处理,式中满足0<α<2,0≤β≤1即:
从而:
第三步:计算出TCP定时器RTO的值
和TRTTVAR(n+1)的表达式分别为:
。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410209603.2A CN103973416A (zh) | 2014-05-15 | 2014-05-15 | 一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410209603.2A CN103973416A (zh) | 2014-05-15 | 2014-05-15 | 一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103973416A true CN103973416A (zh) | 2014-08-06 |
Family
ID=51242495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410209603.2A Pending CN103973416A (zh) | 2014-05-15 | 2014-05-15 | 一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103973416A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106060901A (zh) * | 2016-05-17 | 2016-10-26 | 深圳芯智汇科技有限公司 | 嵌入式无线网络系统及其接入无线网络的方法 |
CN114362892A (zh) * | 2022-01-17 | 2022-04-15 | 国网信息通信产业集团有限公司 | 基于CoAP的物联网重传超时更新方法、装置及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1551553A (zh) * | 2003-05-16 | 2004-12-01 | ��ʽ����Ntt����Ħ | 接收设备、发送设备和程序 |
CN101409935A (zh) * | 2008-11-20 | 2009-04-15 | 上海交通大学 | 无线自组织网络中分数窗口步长tcp传输控制方法 |
CN101969432A (zh) * | 2010-09-27 | 2011-02-09 | 江苏科技大学 | 基于随机回退的tcp拥塞窗口的控制方法 |
CN102420676A (zh) * | 2011-11-30 | 2012-04-18 | 中国人民解放军西安通信学院 | 一种适用于深空星际卫星网络的高效交互传输方法 |
CN102769421A (zh) * | 2012-07-26 | 2012-11-07 | 南京理工大学常熟研究院有限公司 | 一种基于eCos和Web服务器的远程电机控制系统 |
CN103149901A (zh) * | 2013-02-04 | 2013-06-12 | 南京理工大学 | 制造装备嵌入式智能监控与远程维护系统 |
CN103560938A (zh) * | 2013-11-14 | 2014-02-05 | 中环天仪股份有限公司 | 一种工业以太网与hart总线协议转换板卡 |
-
2014
- 2014-05-15 CN CN201410209603.2A patent/CN103973416A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1551553A (zh) * | 2003-05-16 | 2004-12-01 | ��ʽ����Ntt����Ħ | 接收设备、发送设备和程序 |
CN101409935A (zh) * | 2008-11-20 | 2009-04-15 | 上海交通大学 | 无线自组织网络中分数窗口步长tcp传输控制方法 |
CN101969432A (zh) * | 2010-09-27 | 2011-02-09 | 江苏科技大学 | 基于随机回退的tcp拥塞窗口的控制方法 |
CN102420676A (zh) * | 2011-11-30 | 2012-04-18 | 中国人民解放军西安通信学院 | 一种适用于深空星际卫星网络的高效交互传输方法 |
CN102769421A (zh) * | 2012-07-26 | 2012-11-07 | 南京理工大学常熟研究院有限公司 | 一种基于eCos和Web服务器的远程电机控制系统 |
CN103149901A (zh) * | 2013-02-04 | 2013-06-12 | 南京理工大学 | 制造装备嵌入式智能监控与远程维护系统 |
CN103560938A (zh) * | 2013-11-14 | 2014-02-05 | 中环天仪股份有限公司 | 一种工业以太网与hart总线协议转换板卡 |
Non-Patent Citations (5)
Title |
---|
李庆华 等: "基于线性均方误差的无线自组网TCP定时器改进", 《中南大学学报(自然科学版)》 * |
杨俊 等: "基于μC/OS-Ⅱ和LwIP的嵌入式Web服务器实现", 《电气自动化》 * |
王文良 等: "基于LwIP的TCP拥塞控制方法的改进", 《长春师范学院学报(自然科学版)》 * |
郑巨明 等: "基于μC/OS-Ⅱ和LwIP的嵌入式以太网接口设计", 《计算机测量与控制》 * |
马涛 等: "Cortex-A8 平台的μC/OS-Ⅱ及LwIP协议栈的移植与实现", 《计算机应用与软件》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106060901A (zh) * | 2016-05-17 | 2016-10-26 | 深圳芯智汇科技有限公司 | 嵌入式无线网络系统及其接入无线网络的方法 |
CN114362892A (zh) * | 2022-01-17 | 2022-04-15 | 国网信息通信产业集团有限公司 | 基于CoAP的物联网重传超时更新方法、装置及介质 |
CN114362892B (zh) * | 2022-01-17 | 2024-05-31 | 国网信息通信产业集团有限公司 | 基于CoAP的物联网重传超时更新方法、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105827537B (zh) | 一种基于quic协议的拥塞改进方法 | |
US11418446B2 (en) | Technologies for congestion control for IP-routable RDMA over converged ethernet | |
US10715282B2 (en) | Method and related device for improving TCP transmission efficiency using delayed ACK | |
EP4123997A2 (en) | Multi-path rdma transmission | |
CN1836418B (zh) | 分组重新排序之后改进传输层性能的方法和系统 | |
US8094557B2 (en) | Adaptive fast retransmit threshold to make TCP robust to non-congestion events | |
KR101130479B1 (ko) | 스퓨리어스 타임아웃에 대한 응답 방법 | |
CN106059951B (zh) | 一种用于dcn中基于多级拥塞反馈的传输控制方法 | |
JP4587053B2 (ja) | 通信装置、通信システム、パケット欠落検出方法、およびパケット欠落検出プログラム | |
CN106789702B (zh) | 控制tcp传输性能的方法及装置 | |
CN101977151A (zh) | 一种用于高丢包率广域网环境下的拥塞控制方法 | |
CN104158760A (zh) | 一种广域网tcp单边加速的方法及系统 | |
JP4924285B2 (ja) | 通信装置、通信システム、転送効率向上方法及び転送効率向上プログラム | |
CN105376173A (zh) | 一种发送窗口流量控制方法和终端 | |
CN105227484B (zh) | 一种面向卫星网络的数据传输控制方法 | |
CN112887063A (zh) | 数据包传输方法和装置、存储介质、电子设备 | |
CN103152278B (zh) | 拥塞确定方法、装置和网络设备 | |
CN104202257A (zh) | 一种基于带宽估计的卫星网络拥塞控制方法 | |
CN103973416A (zh) | 一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法 | |
CN114401208B (zh) | 数据传输方法、装置、电子设备和存储介质 | |
CN102986156A (zh) | 编码方法及设备、解码方法及设备、编解码系统 | |
CN109067663B (zh) | 一种针对应用程序内控制请求响应速率的系统和方法 | |
US20210273889A1 (en) | Communication control apparatus, method, program, and non-transitory computer readable recording medium | |
CN103636157B (zh) | 一种ack信息的发送方法及装置 | |
CN104821843A (zh) | 一种基于丢包率的卫星通信分段式拥塞控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140806 |
|
WD01 | Invention patent application deemed withdrawn after publication |