自组网的缓冲区调优方法与流程

文档序号:33642641发布日期:2023-03-29 02:32阅读:63来源:国知局
自组网的缓冲区调优方法与流程

1.本发明涉及通信技术领域,具体涉及一种自组网的缓冲区调优方法。


背景技术:

2.基于csma/ca的802.11技术在无线自组网中变得越来越普遍。为了支持丰富的多媒体应用,如高清视频对讲和视频会议,对自组网的带宽的需求越来越高。常用的802.11n支持高达150mbps的无线速率,但是,这并不代表上层吞吐量也能达到同样的速率,仅mac(multiple access channel,多址接入信道)层的开销就能显著影响整体吞吐量,并且,仅仅提高物理层和mac效率不能保证高系统级吞吐量,还需要考虑mac和物理层之间的交互效率。
3.为了保证速率一般会设置缓冲区,相关技术中,一般的做法是将链路的带宽乘以此链路的流的平均延迟(往返时间),即带宽-延迟乘积(bdp,bandwidth-delay product)作为缓冲区大小的参考系数。
4.然而,上述方法未考虑802.11无线信道的特点:1)网络平均服务速率(带宽)依赖于网络节点数量和其对应的业务流量;2)即使在固定的数据流量下,由于竞争的特性,节点传输的数据包的时间也是随机变化的。由于这两方面的原因,导致计算的缓冲区大小不能实时适应当前情况,在数据流量剧烈变化时,会导致排队延迟增加、收敛性不佳的问题。


技术实现要素:

5.本发明为解决上述技术问题,本发明的目的在于提供一种自组网的缓冲区调优方法。
6.为达上述目的,本发明的实施例提出了一种自组网的缓冲区调优方法,包括以下步骤:设置目标排队时延t'、突发超额参数c、缓冲区最大长度q
max
和缓冲区最小长度q
min
;记录每个数据包到达mac层网络接口队列的时间ts和接收数据包的节点返回ack(acknowledge character,确认字符)消息的时间te,根据ts和te计算每个数据包的平均服务时间t
serv
;根据所述目标排队时延t'和所述平均服务时间t
serv
计算数据包对应的bdp;根据所述突发超额参数c、所述缓冲区最大长度q
max
和所述bdp计算当前第一缓冲区大小q1;设置缓冲区大小的增加步长a'和减小步长b';以第一预设时间t为时间间隔,测量缓冲区空闲时间ti;根据所述第一预设时间t、所述缓冲区空闲时间ti、所述增加步长a'和所述减小步长b'计算缓冲区大小的更新阈值q
new
;根据所述缓冲区大小的更新阈值q
new
、所述缓冲区最大长度q
max
和所述缓冲区最小长度q
min
获取当前第二缓冲区大小q2;根据所述当前第一缓冲区大小q1和所述当前第二缓冲区大小q2获取当前缓冲区大小q。
7.本发明上述提出的自组网的缓冲区调优方法还可以具有如下附加技术特征:
8.根据本发明的一个实施例,具体根据以下公式计算每个数据包的平均服务时间t
serv
:t
serv
=(1-w)t
serv
+w(t
e-ts);其中,t
serv
为所述平均服务时间,w为平滑权重,ts为数据包到达mac层网络接口队列的时间,te为接收数据包的节点返回ack消息的时间。
9.根据本发明的一个实施例,具体根据以下公式计算当前第一缓冲区大小q1:q1=min(bdp+c,q
max
);其中,q1为所述当前第一缓冲区大小,t
serv
为所述平均服务时间,c为所述突发超额参数,q
max
为所述缓冲区最大长度,t'为所述目标排队时延。
10.根据本发明的一个实施例,具体根据以下公式计算缓冲区大小的更新阈值q
new
:q
new
=q+a't
i-b'(t-ti);其中,q
new
为所述缓冲区大小的更新阈值,q为待更新缓冲区大小,a'为所述缓冲区大小的增加步长,b'为所述缓冲区大小的减小步长,ti为所述缓冲区空闲时间,t为所述第一预设时间。
11.根据本发明的一个实施例,具体根据以下公式获取当前第二缓冲区大小q2:其中,q2为所述当前第二缓冲区大小,q
new
为所述缓冲区大小的更新阈值,q
max
为所述缓冲区最大长度,q
min
为缓冲区最小长度。
12.根据本发明的一个实施例,具体根据以下公式获取当前缓冲区大小q:q=min(q1,q2);其中,q为当前缓冲区大小,q1为所述当前第一缓冲区大,q2为所述当前第二缓冲区大小。
13.本发明的有益效果:
14.本发明基于数据包的平均服务时间计算数据包对应的bdp计算缓冲区大小,且监控缓冲区空闲时间对缓冲区大小进行反馈控制,在数据流量剧烈变化时也具有良好的收敛性,可在实现高链路利用的同时最小化排队延迟。
附图说明
15.图1是根据本发明一个实施例的自组网的缓冲区调优方法的流程图。
具体实施方式
16.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
17.图1是根据本发明一个实施例的自组网的缓冲区调优方法的流程图,如图1所示,该方法包括以下步骤:
18.s1,设置目标排队时延t'、突发超额参数c、缓冲区最大长度q
max
和缓冲区最小长度q
min

19.具体地,接收到数据包的节点可以根据数据包的rtt(round-trip time,往返时间)计算目标排队时延t',也可以简单设置为固定值200ms(近似rtt的最大值)。设置合理的突发超额数据包c,根据实际经验c=200能满足大部分网络条件,设置缓冲区最大长度q
max
(例如400)和缓冲区最小长度q
min
,此参数根据实际情况设定即可。
20.s2,记录每个数据包到达mac层网络接口队列的时间ts和接收数据包的节点返回
ack消息的时间te,根据ts和te计算每个数据包的平均服务时间t
serv

21.s3,根据目标排队时延t'和平均服务时间t
serv
计算数据包对应的bdp。
22.具体地,节点通过本节点的数据包服务时间来计算服务速率,对每个上层到来的数据包进行如下处理:记录数据包到达mac层网络接口队列的时间ts;等待接收到该数据包对端返回的ack消息,表示该数据包被正确接收,记录服务结束时间(接收数据包的节点返回ack消息的时间te)。
23.使用指数平均方式计算数据包平均服务时间t
serv
,具体根据以下公式计算每个数据包的平均服务时间t
serv

24.t
serv
=(1-w)t
serv
+w(t
e-ts);
25.其中,t
serv
为平均服务时间,w为平滑权重,ts为数据包到达mac层网络接口队列的时间,te为接收数据包的节点返回ack消息的时间。
26.平滑权重w根据实际情况设置,w可以为0.001,1/t
serv
表示为站点业务服务速率,t'/t
serv
为对应的bdp。
27.s4,根据突发超额参数c、缓冲区最大长度q
max
和bdp计算当前第一缓冲区大小q1。
28.进一步地,根据本发明的一个实施例,具体根据以下公式计算当前第一缓冲区大小q1:
29.q1=min(bdp+c,q
max
);
[0030][0031]
其中,q1为当前第一缓冲区大小,t
serv
为平均服务时间,c为突发超额参数,q
max
为缓冲区最大长度,t'为目标排队时延。
[0032]
计算结果使得当前第一缓冲区大小始终和bdp正相关,当服务速率下降时,缓冲区大小减小,服务速率上升时,缓冲区大小增加,以此保证稳定的排队时间t'。同时为了对抗tcp(transmission control protocol,传输控制协议)短时突发数据流的影响,加入突发超额参数c。
[0033]
s5,设置缓冲区大小的增加步长a'和减小步长b'。
[0034]
具体地,a'和b'可以根据实际情况设定,例如,a'=10,b'=1。
[0035]
s6,以第一预设时间t为时间间隔,测量缓冲区空闲时间ti。
[0036]
具体地,以t秒为时间间隔,t根据实际情况提前设定,测量缓冲区空闲时间ti,繁忙时间为t-ti。
[0037]
s7,根据第一预设时间t、缓冲区空闲时间ti、增加步长a'和减小步长b'计算缓冲区大小的更新阈值q
new

[0038]
进一步地,根据本发明的一个实施例,具体根据以下公式计算缓冲区大小的更新阈值q
new

[0039]qnew
=q+a't
i-b'(t-ti);
[0040]
其中,q
new
为缓冲区大小的更新阈值,q为待更新缓冲区大小(更新前当前缓冲区的大小),a'为缓冲区大小的增加步长,b'为缓冲区大小的减小步长,ti为缓冲区空闲时间,t为第一预设时间。
[0041]
根据阈值更新规则,当a'ti=b't(-ti),q收敛,链路利用率为(t-ti)/t=1/(1+b'/
a'),b'/a'越小,链路利用率越大。
[0042]
s8,根据缓冲区大小的更新阈值q
new
、缓冲区最大长度q
max
和缓冲区最小长度q
min
获取当前第二缓冲区大小q2。
[0043]
根据本发明的一个实施例,具体根据以下公式获取当前第二缓冲区大小q2:
[0044][0045]
其中,q2为当前第二缓冲区大小,q
new
为缓冲区大小的更新阈值,q
max
为缓冲区最大长度,q
min
为缓冲区最小长度。
[0046]
s9,根据当前第一缓冲区大小q1和当前第二缓冲区大小q2获取当前缓冲区大小,根据当前缓冲区大小q进行缓冲区大小的更新。
[0047]
根据本发明的一个实施例,具体根据以下公式获取当前缓冲区大小q:
[0048]
q=min(q1,q2);
[0049]
其中,q为当前缓冲区大小,q1为当前第一缓冲区大,q2为当前第二缓冲区大小。
[0050]
具体地,结合步骤s4和步骤s8的计算结果,2获取当前缓冲区大小,根据当前缓冲区大小q进行缓冲区大小的更新。当信道条件变化时,通过步骤s2测量带宽调整缓冲区大小,收敛时间依赖w。步骤s2收敛后,结果稳定在一个值附近,通过步骤s6来进一步减小多路复用的冗余,以获得最佳的缓冲大小配置。
[0051]
综上所述,根据本发明实施例的自组网的缓冲区调优方法,基于数据包的平均服务时间计算数据包对应的bdp计算缓冲区大小,且监控缓冲区空闲时间对缓冲区大小进行反馈控制,在数据流量剧烈变化时也具有良好的收敛性,可在实现高链路利用的同时最小化排队延迟。
[0052]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0053]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0054]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0055]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用
于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0056]
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。
[0057]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0058]
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0059]
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1