CN102006625A - 基于前向纠错的车载自组网可靠广播协议的系统及方法 - Google Patents

基于前向纠错的车载自组网可靠广播协议的系统及方法 Download PDF

Info

Publication number
CN102006625A
CN102006625A CN2010105379891A CN201010537989A CN102006625A CN 102006625 A CN102006625 A CN 102006625A CN 2010105379891 A CN2010105379891 A CN 2010105379891A CN 201010537989 A CN201010537989 A CN 201010537989A CN 102006625 A CN102006625 A CN 102006625A
Authority
CN
China
Prior art keywords
packet loss
node
message
sub
frame
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.)
Granted
Application number
CN2010105379891A
Other languages
English (en)
Other versions
CN102006625B (zh
Inventor
向勇
徐家强
刘瑞霖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN 201010537989 priority Critical patent/CN102006625B/zh
Publication of CN102006625A publication Critical patent/CN102006625A/zh
Application granted granted Critical
Publication of CN102006625B publication Critical patent/CN102006625B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开一种基于前向纠错的车载自组网可靠广播协议的系统及方法,主要是为了提供一种更适合车载自组网,且广播可靠性更高的广播协议而设计。本发明包括:编解码器,设置在节点的数据链路层,基于数据链路层获取的发送码率,完成数据链路层广播帧的发送与接收的编解码;以及,FEC管理器,设置在接收方,接收节点的数据链路层计算输出的本次接收丢包率,对本节点下一次接收同一发送节点的广播帧的接收丢包率进行评估,并生成丢包率反馈帧,周期性地将丢包率反馈帧对外广播;设置在发送方,监听各邻居节点的数据链路层广播的丢包率反馈帧,利用发送码率调节算法计算出本节点的发送码率。本发明有效的改善了车载自组网广播通信的可靠性。

Description

基于前向纠错的车载自组网可靠广播协议的系统及方法
技术领域
本发明涉及车载自组网广播协议。
背景技术
近几年来,以提高行车安全性和改善汽车驾驶体验为目的,在智能交通系统中应用无线通信技术,成为了学术界和工业界共同关注的热门话题。道路上行驶的车辆和路边基站通过无线信道组成的自组织网络称为车载自组织网络,简称车载自组网(VehicularAd-hoc Networks,VANET)。
安全预警信息和实时交通状况信息等很多重要的车载自组网应用数据都是通过广播方式发送的。相对于传感器网络和Mesh网络等其他自组织网络形式,车载自组网具有移动性强和网络拓扑变化快的特点。由于道路环境在节点移动过程中不断变化,节点之间的相对位置和速度也是不断变化的,所以节点间的通信质量是不稳定的,信道的误码率随时间和车辆相对位置而变化。信道的不可靠性增加了,进而加大了保证广播通信可靠性的难度。
车载自组网广播不可靠主要有两个因素:
1、介质访问控制子层(MediumAccess Control,简称MAC层)协议的不完善导致的不可靠性,如隐藏终端、数据冲突;
2、无线信道本身不稳定导致的不可靠性。这个因素在节点移动速度快、道路环境复杂时尤为突出。
已有的车载自组网可靠广播方案大多着眼于提高MAC层协议的可靠性。但单纯的MAC层机制不能缓解车载无线信道质量剧烈变化所带来的不可靠问题,需要在数据链路层(Data-Link Layer)中增加差错恢复的机制,以提高广播通信的可靠性。
计算机网络中常用的差错恢复机制是差错重传(Automatic Repeat reQuest,ARQ)和前向纠错(Forward Error Correction,FEC)。差错重传机制需要预先确定接收节点集合,并要求接收节点给发送节点回复接收确认消息,然后发送节点根据接收节点的接收情况决定是否需要重传。车载自组网的节点的高速运动特征导致很难预先确定接收节点集合。因此,差错重传机制很难应用到车载自组网的广播中。
前向纠错码是一种按照一定的编码方法从数据生成冗余纠错信息的技术。在数据通信中,发送节点通过产生并发送一定数量的冗余纠错信息,使得接收节点在出现数据接收错误时可以直接从冗余信息中恢复原始数据,从而减少在数据丢失或出错时的数据重传次数。因此,前向纠错机制更适合作为车载自组网广播的差错恢复机制。
当前已有不少基于前向纠错的组播或者广播协议,但它们是针对有线网络或者无线传感器网络这类拓扑相对固定的网络而设计的,不能很好适应车载自组网的节点高速运行特性。比如,RMDP(Reliable Multicast data Distribution Protocol)是一个面向有线网络的基于前向纠错的可靠组播协议,使用混合的ARQ/FEC策略。在RMDP中,发送节点预先生成一定数量的冗余报文,然后先发送原始数据报文;接收节点在接收完所有的原始报文后,通过报文序列号统计丢失的报文数量,并通过消息反馈给发送节点;发送节点根据所有接收节点的丢包情况,决定发送多少冗余报文。由于车载自组网的丢包率变化比较剧烈,很难预先选择一个恰当的冗余报文数量,因此,该协议不能直接应用到车载自组网中。
发明内容
针对上述问题,本发明提供一种能够有效提高车载自组网广播可靠性的基于前向纠错的数据链路可靠广播协议。
为达到上述目的,本发明基于前向纠错的车载自组网可靠广播协议的系统,包括:
编解码器,设置在节点的数据链路层,基于数据链路层获取的发送码率,完成数据链路层广播帧的发送与接收的编解码;以及,
FEC管理器,设置在接收方,接收节点的数据链路层计算输出的本次接收丢包率,基于该接收丢包率对本节点下一次接收同一发送节点的广播帧的接收丢包率进行评估,并生成丢包率反馈帧,周期性地将丢包率反馈帧通过数据链路层对外广播;设置在发送方,监听各邻居节点的数据链路层广播的丢包率反馈帧,并基于监听到的丢包率反馈帧利用发送码率调节算法计算出本节点的发送码率,并将其存储于FEC管理器中。
其中,所述的丢包率反馈帧包含各邻居节点的数据链路层地址和节点接收各邻居节点的广播帧的接收丢包率评估值。
本发明所述基于前向纠错的车载自组网可靠广播协议的方法,包括以下步骤:
(1)编解码器基于节点的发送码率将广播帧编码生成可发送的报文,节点将其对外广播;
(2)邻居节点接收报文,并检测接收到的报文数量是否足以恢复广播帧;是,解码出广播帧,并进行下一步骤,否,继续接收;
(3)邻居节点计算本次接收丢包率,并对下一次接收该节点的广播帧的接收丢包率进行评估,然后,生成丢包率反馈帧,并周期性地对外广播;
(4)节点实时监听丢包率反馈帧,采用发送码率调节算法计算出节点的发送码率,并将其记录下来以备下次广播使用。
其中,步骤(1)具体实现如下:
1.1扩展数据链路层的帧头部;
1.2节点的数据链路层的MAC层接收到LLC层发送的广播帧时,MAC层进行信道竞争;
1.3等信道可用后,编解码器根据广播帧的长度计算出原始子报文数量n;然后,将广播帧划分为n个子报文,并依据该节点的发送码率生成k个冗余子报文;最后,将n+k个子报文中的每一个子报文分别封装在各自独立的数据链路层帧中,并设置各帧扩展后的帧头部的相关域;
1.4节点的MAC层将封装后的n+k个子报文保存在发送队列中,并发送出去。
步骤(2)具体实现如下:
2.1各节点为每一个邻居节点均创建并维护一个独立的子报文接收队列,并将其与一计时器相关联;
2.2邻居节点的数据链路层接收节点发送的子报文,根据子报文中节点数据链路层地址找出当前子报文所属的子报文接收队列,并判断当前子报文接收队列是否为空;是,设置子报文接收队列的序列号为当前接收的子报文的帧序列号,将接收到的子报文加入到子报文接收队列中,同时设置与其关联的计时器,否,进行下一步骤;
2.3判断当前接收的子报文的帧序列号是否与子报文接收队列的序列号相等;是,将接收到的子报文加入到子报文接收队列中,并进行下一步骤,否,解码出广播帧,并释放子报文接收队列;
2.4判断当前接收的子报文是否是该序列号的最后一个子报文,是,解码出广播帧,释放子报文接收队列,否,进行下一步骤;
2.5基于超时处理机制判断节点是否已经发送完所有子报文,是,解码出广播帧,否,继续步骤2.2。
进一步地,所述的解码出广播帧,具体实现步骤如下:
2.3.1编解码器从子报文接收队列中的任一子报文的帧头部获取FEC信息;
2.3.2判断接收到的子报文数量是否大于等于广播帧子报文数量n;是,将接收到的子报文通过RS解码算法解码出广播帧,并将解码出的广播帧的长度恢复为编码前的真实长度,否,结束解码。
其中,所述的FEC信息包括:广播帧子报文数量n,冗余子报文数量k以及广播帧的负载长度。
步骤(3)具体实现如下:
3.1邻居节点设置一接收丢包率列表,其中存储有各其他节点的数据链路层的地址,以及与各地址相对应的历史丢包率平均值估计d,丢包率抖动平均值评估v和时间戳;
3.2邻居节点的数据链路层依据广播帧报文数量n,冗余子报文数量k以及节点本次接收到的子报文数量p,计算出本次接收丢包率:r=(n+k-p)/(n+k);
3.3依据步骤3.2得出的接收丢包率r,并依据接收丢包率列表中已存储的接收丢包率平均值评估d和丢包率抖动平均值评估v,对下一次接收各发送节点发送的广播帧的各接收丢包率进行评估,计算式为:
d’=d+α(r-d),v’=v+β(|r-d|-v)
其中,α和β是协议参数,α取0.1,β取0.2;然后,将得出的值分别添加到接收丢包率列表的相应表项中,更新表项中已有的接收丢包率平均评估值d和丢包率抖动平均值评估v,生成丢包率反馈帧;
3.4邻居节点的数据链路层将步骤3.3生成的丢包率反馈帧周期性地对外广播。
进一步地,所述步骤3.3生成丢包率反馈帧的步骤具体为:
3.3.1节点设有一监听丢包率列表,其中存储有上一次节点接收到的各邻居节点广播的反馈帧信息;
3.3.2判断各邻居节点的数据链路层地址是否在节点的接收丢包率列表中存在;不存在,不作处理并返回,存在,进行下一步骤;
3.3.3查询监听丢包率表,若表中该数据链路层地址的丢包率小于节点的接收丢包率列表中的丢包率或者该表项已经过期,则将监听丢包率表中的丢包率更新为接收丢包率列表中的丢包率,并将时间戳更新为当前时间;否则,新增一个监听丢包率表的表项,并设置该数据链路层地址表项的丢包率为接收丢包率列表中的丢包率,时间戳为当前时间;
3.3.4节点读取接收丢包率列表中接收丢包率平均评估值d和丢包率抖动平均值评估v,计算出节点接收各邻居节点广播帧的接收丢包率的评估值,计算式为:e=d+2v;
3.3.5若节点接收某一邻居节点广播帧的接收丢包率估计值e≥0.6,则该节点对应该邻居节点的接收丢包率的评估值e不加入到丢包率反馈帧中;
若节点的监听丢包率表中没有与某一邻居节点的数据链路层地址相对应的表项,则将节点到该邻居节点的接收丢包率的评估值加入到丢包率反馈帧中;
若节点的监听丢包率表中的某一表项已经过期,则删除该表项,并将该节点到该表项相对应的邻居节点的接收丢包率的评估值加入到丢包率反馈帧中;
若节点的监听丢包率列表中的某一表项的丢包率比e小,则将该节点到该表项相对应的邻居节点的接收丢包率的评估值加入到丢包率反馈帧中,否则,不加入到丢包率反馈帧中;
3.3.6完成本次丢包率反馈帧的生成。
步骤(4)具体实现如下:
4.1节点设置一发送丢包率列表,其中存储有各邻居节点的数据链路层地址,丢包率和时间戳;
4.2节点的数据链路层接收各邻居节点广播的反馈帧,并依据本节点的数据链路层地址在接收到的反馈帧中查找,找出地址相同表项对应的丢包率信息;
4.3将步骤4.2查找出的丢包率信息加入到所述发送丢包率列表中的相应表项,并设置时间戳为当前时间;
4.4发送节点每隔3秒扫描一遍发送丢包率列表,若当前时间与列表中表项的时间戳相差大于3秒,则删除该表项;
4.5查找发送丢包率列表中丢包率最高的邻居节点的丢包率emax,计算出发送节点广播帧的发送码率,计算式为:f=emax/(1-emax),同时计算出发送节点广播丢包率反馈帧的发送码率,计算式为:f=emax/(1-emax)+0.25;
4.6将上述得出的各发送码率记录下来以备下一次广播使用。
本发明首先将广播帧划分为多个大小相同的子报文,然后通过前向纠错编码产生若干个冗余子报文,最后将这些子报文分别封装在独立的数据链路层帧中广播。如果部分子报文丢失,接收节点仍可以利用成功接收到的子报文来尝试恢复原始的网络层报文,从而在网络丢包时改善广播通信的可靠性。
另外,本发明在基本差错恢复方法的基础上,自动调整发送码率,即根据与邻居节点的通信情况选择恰当的FEC强度,从而在保证协议的差错恢复效果的同时,把FEC的开销控制在合理的范围之内。为了让协议了解邻居节点的通信质量,本发明还提出了一种高效的通信质量反馈机制,使得协议在保持有效性的同时,大大降低了反馈引起的开销。
附图说明
图1为本发明所述数据链路层扩展后的帧头部格式;
图2为本发明所述节点接收报文的流程图;
图3为本发明所述基于前向纠错的车载自组网可靠广播协议的系统的结构示意图。
具体实施方式
下面结合说明书附图对本发明的具体实施方式做详细描述。
实施例一
本实施例采用成熟的IEEE 802.11协议作为MAC层。IEEE 802.11协议是目前应用最广泛的无线MAC层和物理层协议,而且IEEE正在制定802.11p标准,以用于车载自组网中。因此,基于802.11协议来描述本发明,不仅具有很好的说明性,还具有实用价值。
此外,本实施例采用最经典的线性分块编码算法——Reed-Solomon编码,简称RS编码,作为编解码算法。从原理上说,使用其他线性分块编码算法并不会影响协议的适用性。本实施例是这样实现的:
首先,在数据链路层中加入编解码功能。
为了提高编码后发送数据的效率,本实施例采用本发明所述基于前向纠错的数据链路可靠广播协议(FEC-based Reliable data-link layer Broadcast Protocol,简称FRBP)在MAC层实现了编解码协议。在数据发送节点,当MAC层收到LLC层发送的广播帧时,MAC层首先会进行信道竞争,等到信道可用后,通过编解码器对待发送的广播帧进行编码生成真正需要发送的报文并发送出去。其生成过程为:编码解码器首先将帧负载划分成n个原始子报文;然后,对这些子报文进行RS编码,生成k个冗余子报文;最后,将这些子报文封装在各自独立的数据链路层帧中并发送出去。
对称地,数据接收节点的MAC层检查成功收到的子报文数量是否足以恢复原始的帧负载。如果可以恢复则将恢复后的原始帧交给LLC层做进一步处理。
为了支持MAC层的编解码,所述的基于前向纠错的数据链路可靠广播协议FRBP对802.2LLC以及802.11MAC层帧头部格式进行了扩展,加入协议所需要的域,其中,
LLC层帧头部扩展的扩展域2,包括:
rate:由FEC码率的字符串表示,用于指定MAC编解码时使用的码率,长度为64bit,是一个保留6位有效数字的浮点数的字符串表示;以及,
type:LLC帧类型,包括IP数据帧和LLC控制帧两种类型,长度为8bit。
MAC层帧头部扩展的扩展域1,加入针对FEC的域,包括:
n:原始子报文数量n,长度为8bit;
k:冗余子报文数量k,长度为8bit;
subpkt_no:子报文序列号,长度为8bit;以及,
orig_length:原始帧负载的长度,长度为16bit;这些域紧跟在原有的802.11帧头部之后。扩展后的数据链路层帧格式如图1所示。
下面是本实施例中发送节点对一个数据链路层帧的负载进行FEC编码过程的详细描述,具体步骤如下:
1.1根据帧负载的长度len计算恰当的子报文长度t,从而计算出原始子报文数量n;
1.2将帧负载划分为n个子报文,然后按照LLC层指定的码率(数据链路层帧头部中的rate域)利用RS编码生成k个冗余子报文;
1.3将每个子报文封装在一个数据链路层帧里面,设置该帧头部的相关域,其中header.n=n,header.k=k,header.orig_length=len,设置subpkt_no为当前的子报文序列号,并使序列号加一。
其中,802.11协议本身的头部就包含一个帧序列号,用于区分不同的帧。编解码器把属于同一个原始帧的所有子帧头部中的帧序列号都设置为原始帧序列号,以便于区分属于不同原始帧的子帧。在此需要特别注意的是,802.11协议的帧序列号与FRBP中扩展的subpkt_no域是不同的。前者用于区别原始帧,而后者用于区别属于同一个原始帧的各个子帧。
上述步骤1.1中所述的子报文长度t和原始子报文数量n的求解过程如下:
1.1.1假设扩展后的数据链路层帧头部长度为h,FRBP取子报文长度的下限,即t=2h。
1.1.2如果帧负载长度len<t,则选定子报文长度为t=len,此时原始子报文数量n=1;
1.1.3如果帧负载长度t≤len<4t,则子报文的长度为t,原始子报文数量
Figure BSA00000340143700101
即len/t向上取整;如果最后一个子帧的负载长度不足t,则在子报文末尾填充0;
1.1.4如果帧负载长度大于等于4t,则取n=4,子报文长度取
Figure BSA00000340143700102
len/4向上取整;如果最后一个子帧负载长度不足len/4,则在子报文末尾填充0。
编码后,MAC层将这n+k个子报文保存在发送队列中,当信道进入空闲状态时,MAC层将这些子报文发送出去。为了减小发送的延迟,FRBP要求同一个原始帧的所有子报文必须连续发送,以保证子报文发送序列不被其他报文的发送和接收所中断。
为了保证子报文序列发送的连续性,本发明所述的FRBP协议在一个子报文发送完毕后等待一个SIFS(Short Inter-Frame Space)的时间,然后立即发送下一个子报文。其中,SIFS是802.11协议中发送两个帧之间的最小时间间隔。802.11协议保证在SIFS的时间间隙内邻居节点不会发送数据,从而保证属于同一个原始帧的子报文被连续发送。
下面是接收节点接收子报文并从中解码出原始帧的过程描述。
由于每个数据链路层的帧都会被划分为多个子报文发送,所以接收节点需要为每个邻居节点维护一个子报文接收队列,等待某一邻居节点已经发送完属于一个原始帧的所有子报文之后,再尝试恢复原始帧,并且删除该子报文接收队列。队列结构中记录当前正在接收的原始帧的序列号。
接收子报文的过程如图2所示,步骤如下:
2.1各节点为每一个邻居节点均创建并维护一个独立的子报文接收队列,并将其与一计时器相关联;
2.2邻居节点的数据链路层接收节点发送的子报文,根据子报文中节点数据链路层地址找出当前子报文所属的子报文接收队列,并判断当前子报文接收队列是否为空;是,则表明是新建的队列,设置子报文接收队列的序列号为当前接收的子报文的帧序列号,将接收到的子报文直接加入到子报文接收队列中,同时设置与其关联的计时器,否,进行下一步骤;
2.3判断当前接收的子报文的帧序列号是否与子报文接收队列的序列号相等;是,则表明该子报文属于当前正在接收的广播帧,可将接收到的子报文直接加入到子报文接收队列中,并进行下一步骤,否,则表明发送节点已经开始发送下一广播帧了,可以从当前的队列中解码出上一广播帧,并释放子报文接收队列,然后重新创建一个新的子报文接收队列;
2.4判断当前接收的子报文是否是该序列号的最后一个子报文,是,解码出广播帧,释放子报文接收队列,然后重新创建一个新的子报文接收队列,否,进行下一步骤;
2.5基于超时处理机制判断节点是否已经发送完所有子报文,是,此种情况是当广播帧的最后一个子报文丢失时,接收节点就可以解码出广播帧,释放子报文接收队列,然后重新创建一个新的子报文接收队列,否,继续步骤2.2。
FRBP通过超时处理机制来判断发送节点已经发送完所有的子报文,因此在上述过程中,每个新创建的子报文接收队列都会关联一个计时器,该计时器在接收到第一个子报文的时候被设置。其中,所述的超时处理机制中,计时器的超时时间按照如下过程计算得出:假设接收到的第一个子报文序列号为i,则仍有n+k-i个子报文等待发送,发送这些子报文共需要T=(n+k-i)×(t+SIFS),其中,t为发送一个子报文所需要的时间。本发明所述的FRBP协议将计时器的超时时间设置为T+SIFS。当接收节点判断发送节点已经发送完成了属于同一个原始帧的所有子报文之后,就会解码原始帧。
从保存在子报文接收队列中的子报文解码原始帧的负载的过程如下:
3.1从任何一个子帧的头部中获取FEC信息:原始子报文数量n,冗余子报文数量k,原始帧负载的长度orig_length;
3.2如果收到的子报文数量p≥n,则由收到的这些子报文通过RS解码算法解码出原始帧的负载,否则转步骤3.4;
3.3去除编码过程中加入的填充数据0,将恢复的原始负载截短为编码前的真实长度orig_length;
3.4结束解码。
然后,本发明所述的FRBP协议中增加了码率自适应机制。
本发明所述的码率自适应机制的实现过程描述如下:
4.1接收节点接收到数据之后,首先,从任何一个接收到的子帧中获取FEC信息:原始子报文数量n和冗余子报文数量k;然后,计算出本次接收中子报文的丢包率r=(n+k-p)/(n+k),其中,p为接收节点成功接收到的子报文。
4.2基于该接收节点接收各邻居发送节点的广播帧的历史接收丢包率评估值,并采用接收丢包率的评估算法,接收节点分别对下一次接收各邻居发送节点的广播帧的接收丢包率进行评估,同时生成丢包率反馈帧;
4.3每个接收节点周期性地广播丢包率反馈帧;
4.4每个发送节点接收邻居节点反馈的丢包率反馈帧,并从中查找地址相同表项对应的丢包率信息,然后将查找出的丢包率信息作为自己到邻居节点的发送丢包率,并将其列入到发送丢包率列表中;
4.5广播数据时,发送节点根据发送列表中自己到各个邻居的发送丢包率信息,基于发送码率调节算法计算出发送码率,并设置在广播帧的帧头部相应域。
其中,所述的接收丢包率评估算法,计算步骤如下:
4.2.1每个接收节点维护一个接收丢包率列表,每个表项对应接收一个邻居发送节点的广播数据时的子报文丢包率。每当完成对一个数据链路层帧的接收时,接收节点都会更新接收丢包率列表中与源节点对应的表项。每个表项包含如下四项信息:邻居的数据链路层地址、丢包率平均值估计r、丢包率抖动平均值估计v和时间戳。
4.2.2假设某次接收数据链路层帧时检测到的接收丢包率为d,接收节点根据数据链路层地址找到广播该帧的邻居发送节点对应的表项;如果不存在,新建一个表项,并初始化r=d,v=0,转步骤4.2.3;
如果存在,设置新的丢包率平均值估计为r=r+α(d-r),新的丢包率抖动平均值估计为v=v+β(|d-r|-v);其中,α和β均为协议参数,默认取α=0.1,β=0.2。
4.2.3更新表项对应的时间戳为当前时间。
4.2.4接收节点每隔3秒扫描一遍接收丢包率列表,如果当前时间与表格中表项的时间戳之差大于3秒,则删除该表项。即如果某个邻居的丢包率信息在3秒内没有进行更新,则认为它已经离开了通信范围。
所述的发送码率调节算法,计算步骤如下:
4.5.1读取当前发送丢包率表中丢包率最高的邻居节点的丢包率emax
4.5.2对于IP广播帧,发送码率为f=emax/(1-emax);
4.5.3对于丢包率反馈帧,发送码率为f=emax(1-emax)+0.25;
在接收丢包率评估算法比较准确的前提下,通过上述方法选取的码率可以使得所有邻居节点成功接收该帧。丢包率反馈帧的发送码率略高于IP数据帧的原因是,反馈帧对于协议的正确性有比较大的影响,所以需要额外提高其传输的可靠性。
步骤4.4中所述的发送丢包率列表为类似与接收丢包率的列表,每个节点均维护一个发送丢包率列表,其中存储了从本节点到各个邻居节点发送数据时的丢包率。表项包含三部分信息:邻居数据链路层地址,丢包率,时间戳。
每个节点在收到邻居节点的丢包率反馈帧之后,根据本节点的数据链路层地址在里面查找属于自己的丢包率信息。该丢包率为邻居节点接收本节点数据时的接收丢包率评估值,即本节点发送数据到该邻居时的丢包率。如果查找到属于本节点的丢包率,则将它保存到发送丢包率表中。假设丢包率为e,节点通过以下过程来更新发送丢包率表:
4.4.1找到邻居节点数据链路层地址对应的表项,如果不存在则创建一个新的表项。
4.4.2设置该表项的丢包率为e,设置时间戳为当前时间。
4.4.3节点每隔3秒扫描一遍发送丢包率表,如果当前时间与表格中表项的时间戳之差大于3秒,则删除该表项。即如果某个邻居的丢包率信息在3秒内没有进行更新,则认为它已经离开了通信范围。
最后,本发明所述FRBP协议还设置了面向广播的高效的丢包率反馈机制。
每个节点每秒对外广播一个反馈帧,反馈帧的负载为本节点的接收丢包率列表。每个表项记录了接收某邻居广播帧时的接收丢包率评估值。每个表项具体包含有:邻居节点的数据链路层地址addr和接收丢包率评估值rate。其中,接收丢包率评估值rate为邻居节点广播数据到本节点的丢包率的评估值。以下可以用二元组(addr,rate)表示来表示反馈帧的一个条目。
本发明所述的FRBP协议的系统通过监听邻居节点广播的反馈帧,每个节点维护一个监听丢包率表,该表中每个表项由三个域组成:数据链路层地址addr’,丢包率rate’和时间戳timestamp。以下可以用三元组(addr’,rate’,timestamp)表示监听丢包率表的一个表项。
更新监听丢包率表的过程如下:
5.1对于接收到的反馈帧中每一个条目(addr,rate),节点查找该条目的数据链路层地址是否存在于本节点的接收丢包率列表中;不存在,不作处理并返回,存在,进行下一步骤;
5.2如果在监听丢包率表中存在一个表项(addr’,rate’,timestamp),满足addr’=addr,且rate’<rate或者该表项已经过期,则更新rate’=rate,并将timestamp更新为当前时间并返回;
5.3如果监听丢包率表中不存在满足addr’=addr的表项,那么新增一个表项,并设置表项的addr’=addr,rate’=rate,timestamp为当前时间。
其中,判断监听丢包率表中某个表项是否过期的方法是:如果当前时间与该表项的时间戳之差大于3秒,则认为该表项已经过期。
节点根据监听丢包率表的内容决定自己要在反馈帧中广播哪些邻居的接收丢包率,即选择反馈帧条目的过程如下:
6.1对于接收丢包率列表中的每个表项,依据表项中的r,v值,计算出接收丢包率的评估值e=r+2v;
6.2如果e≥0.6,即估计的丢包率高于60%,则不将e加入到反馈帧中,返回;
如果在监听丢包率表中没有与该表项的数据链路层地址对应的表项,将丢包率e加入反馈帧,返回;
如果监听丢包率表中的项已经过期,此时需要删除监听丢包率表中的表项,并且将e加入反馈帧,返回;
如果监听丢包率表项中的丢包率比e小,那么将e加入反馈帧,返回,否则,不将e加入反馈帧中,返回。
如图3所示,本发明所述基于前向纠错的车载自组网可靠广播协议的系统。系统分为两部分,一部分是编解码器,分别设置在发送节点和接收节点,它实现了编解码协议,第二部分是FEC管理器,分别与发送节点和接收节点的LLC层合作,实现码率的控制与自适应。
图中画出了本发明所述的FRBP协议的数据流,实线表示与发送IP广播报文相关的数据流,而虚线表示与发送LLC层丢包率反馈帧相关的数据流;3为发送方,4为接收方。
发送方3,当LLC层收到一个网络层要求发送的IP广播报文时,它首先从FEC管理器获取发送数据的码率,然后将报文封装在一个LLC帧里面,将数据链路层帧头部中的rate域设置为该码率,将帧头部中的type域设置为IP数据类型,并将该帧传递给MAC层发送。
接收方4,MAC层首先计算接收丢包率并传递到FEC管理器,然后检查是否收到足够多的子报文以恢复上层报文,如果可以恢复则将恢复后的上层报文交给LLC层。
FEC管理器与LLC层一起实现码率自适应机制,其中,LLC层负责发送和接收丢包率反馈帧,而FEC管理器根据上面描述的码率自适应机制生成和处理丢包率反馈帧。FEC管理器每隔1秒将需要反馈的丢包率封装在数据链路层帧中并传递给LLC层,LLC层再传递给MAC层发送。这个帧的type域设置为LLC控制帧类型,而rate域则由FEC管理器根据上面描述的自适应机制来选择。MAC层发送和接收丢包率反馈帧的流程与IP广播报文是一样的。最后,丢包率反馈帧被传递给接收节点的LLC层,LLC层将该帧传递给FEC管理器。
本发明所涉及的术语及其解释,如表1。
表1术语及其解释
Figure BSA00000340143700171
本发明基于丢包率估计算法保证了反馈丢包率的准确性,而丢包率反馈机制则及时地把节点的丢包率反馈给发送节点,实现了高效的通讯质量反馈机制,且有效改善了车载自组网广播通信的可靠性。
以上,仅为本发明的较佳实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。

Claims (10)

1.一种基于前向纠错的车载自组网可靠广播协议的系统,其特征在于,包括:
编解码器,设置在节点的数据链路层,基于数据链路层获取的发送码率,完成数据链路层广播帧的发送与接收的编解码;以及,
FEC管理器,设置在接收方,接收节点的数据链路层计算输出的本次接收丢包率,基于该接收丢包率对本节点下一次接收同一发送节点的广播帧的接收丢包率进行评估,并生成丢包率反馈帧,周期性地将丢包率反馈帧通过数据链路层对外广播;设置在发送方,监听各邻居节点的数据链路层广播的丢包率反馈帧,并基于监听到的丢包率反馈帧利用发送码率调节算法计算出本节点的发送码率,并将其存储于FEC管理器中。
2.根据权利要求1所述基于前向纠错的车载自组网可靠广播协议的系统,其特征在于,所述的丢包率反馈帧包含各邻居节点的数据链路层地址和节点接收各邻居节点的广播帧的接收丢包率评估值。
3.一种基于前向纠错的车载自组网可靠广播协议的方法,其特征在于,包括以下步骤:
(1)编解码器基于节点的发送码率将广播帧编码生成可发送的报文,节点将其对外广播;
(2)邻居节点接收报文,并检测接收到的报文数量是否足以恢复广播帧;是,解码出广播帧,并进行下一步骤,否,继续接收;
(3)邻居节点计算本次接收丢包率,并对下一次接收该节点的广播帧的接收丢包率进行评估,然后,生成丢包率反馈帧,并周期性地对外广播;
(4)节点实时监听丢包率反馈帧,采用发送码率调节算法计算出节点的发送码率,并将其记录下来以备下次广播使用。
4.根据权利要求3所述基于前向纠错的车载自组网可靠广播协议的方法,其特征在于,步骤(1)具体实现如下:
1.1扩展数据链路层的帧头部;
1.2节点的数据链路层的MAC层接收到LLC层发送的广播帧时,MAC层进行信道竞争;
1.3等信道可用后,编解码器根据广播帧的长度计算出原始子报文数量n;然后,将广播帧划分为n个子报文,并依据该节点的发送码率生成k个冗余子报文;最后,将n+k个子报文中的每一个子报文分别封装在各自独立的数据链路层帧中,并设置各帧扩展后的帧头部的相关域;
1.4节点的MAC层将封装后的n+k个子报文保存在发送队列中,并发送出去。
5.根据权利要求3所述基于前向纠错的车载自组网可靠广播协议的方法,其特征在于,步骤(2)具体实现如下:
2.1各节点为每一个邻居节点均创建并维护一个独立的子报文接收队列,并将其与一计时器相关联;
2.2邻居节点的数据链路层接收节点发送的子报文,根据子报文中节点数据链路层地址找出当前子报文所属的子报文接收队列,并判断当前子报文接收队列是否为空;是,设置子报文接收队列的序列号为当前接收的子报文的帧序列号,将接收到的子报文加入到子报文接收队列中,同时设置与其关联的计时器,否,进行下一步骤;
2.3判断当前接收的子报文的帧序列号是否与子报文接收队列的序列号相等;是,将接收到的子报文加入到子报文接收队列中,并进行下一步骤,否,解码出广播帧,并释放子报文接收队列;
2.4判断当前接收的子报文是否是该序列号的最后一个子报文,是,解码出广播帧,释放子报文接收队列,否,进行下一步骤;
2.5基于超时处理机制判断节点是否已经发送完所有子报文,是,解码出广播帧,否,继续步骤2.2。
6.根据权利要求5所述基于前向纠错的车载自组网可靠广播协议的方法,其特征在于,所述的解码出广播帧,具体实现步骤如下:
2.3.1编解码器从子报文接收队列中的任一子报文的帧头部获取FEC信息;
2.3.2判断接收到的子报文数量是否大于等于广播帧子报文数量n;是,将接收到的子报文通过RS解码算法解码出广播帧,并将解码出的广播帧的长度恢复为编码前的真实长度,否,结束解码。
7.根据权利要求6所述基于前向纠错的车载自组网可靠广播协议的方法,其特征在于,所述的FEC信息包括:广播帧子报文数量n,冗余子报文数量k以及广播帧的负载长度。
8.根据权利要求3所述基于前向纠错的车载自组网可靠广播协议的方法,其特征在于,步骤(3)具体实现如下:
3.1邻居节点设置一接收丢包率列表,其中存储有各其他节点的数据链路层的地址,以及与各地址相对应的历史丢包率平均值估计d,丢包率抖动平均值评估v和时间戳;
3.2邻居节点的数据链路层依据广播帧报文数量n,冗余子报文数量k以及节点本次接收到的子报文数量p,计算出本次接收丢包率:r=(n+k-p)/(n+k);
3.3依据步骤3.2得出的接收丢包率r,并依据接收丢包率列表中已存储的接收丢包率平均值评估d和丢包率抖动平均值评估v,对下一次接收各发送节点发送的广播帧的各接收丢包率进行评估,计算式为:
d’=d+α(r-d),v’=v+β(|r-d|-v)
其中,α和β是协议参数,α取0.1,β取0.2;然后,将得出的值分别添加到接收丢包率列表的相应表项中,更新表项中已有的接收丢包率平均评估值d和丢包率抖动平均值评估v,生成丢包率反馈帧;
3.4邻居节点的数据链路层将步骤3.3生成的丢包率反馈帧周期性地对外广播。
9.根据权利要求8所述基于前向纠错的车载自组网可靠广播协议的方法,其特征在于,所述步骤3.3生成丢包率反馈帧的步骤具体为:
3.3.1节点设有一监听丢包率列表,其中存储有上一次节点接收到的各邻居节点广播的反馈帧信息;
3.3.2判断各邻居节点的数据链路层地址是否在节点的接收丢包率列表中存在;不存在,不作处理并返回,存在,进行下一步骤;
3.3.3查询监听丢包率表,若表中该数据链路层地址的丢包率小于节点的接收丢包率列表中的丢包率或者该表项已经过期,则将监听丢包率表中的丢包率更新为接收丢包率列表中的丢包率,并将时间戳更新为当前时间;否则,新增一个监听丢包率表的表项,并设置该数据链路层地址表项的丢包率为接收丢包率列表中的丢包率,时间戳为当前时间;
3.3.4节点读取接收丢包率列表中接收丢包率平均评估值d和丢包率抖动平均值评估v,计算出节点接收各邻居节点广播帧的接收丢包率的评估值,计算式为:e=d+2v;
3.3.5若节点接收某一邻居节点广播帧的接收丢包率估计值e≥0.6,则该节点对应该邻居节点的接收丢包率的评估值e不加入到丢包率反馈帧中;
若节点的监听丢包率表中没有与某一邻居节点的数据链路层地址相对应的表项,则将节点到该邻居节点的接收丢包率的评估值加入到丢包率反馈帧中;
若节点的监听丢包率表中的某一表项已经过期,则删除该表项,并将该节点到该表项相对应的邻居节点的接收丢包率的评估值加入到丢包率反馈帧中;
若节点的监听丢包率列表中的某一表项的丢包率比e小,则将该节点到该表项相对应的邻居节点的接收丢包率的评估值加入到丢包率反馈帧中,否则,不加入到丢包率反馈帧中;
3.3.6完成本次丢包率反馈帧的生成。
10.根据权利要求3所述基于前向纠错的车载自组网可靠广播协议的方法,其特征在于,步骤(4)具体实现如下:
4.1节点设置一发送丢包率列表,其中存储有各邻居节点的数据链路层地址,丢包率和时间戳;
4.2节点的数据链路层接收各邻居节点广播的反馈帧,并依据本节点的数据链路层地址在接收到的反馈帧中查找,找出地址相同表项对应的丢包率信息;
4.3将步骤4.2查找出的丢包率信息加入到所述发送丢包率列表中的相应表项,并设置时间戳为当前时间;
4.4发送节点每隔3秒扫描一遍发送丢包率列表,若当前时间与列表中表项的时间戳相差大于3秒,则删除该表项;
4.5查找发送丢包率列表中丢包率最高的邻居节点的丢包率emax,计算出发送节点广播帧的发送码率,计算式为:f=emax/(1-emax),同时计算出发送节点广播丢包率反馈帧的发送码率,计算式为:f=emax/(1-emax)+0.25;
4.6将上述得出的各发送码率记录下来以备下一次广播使用。
CN 201010537989 2010-11-10 2010-11-10 基于前向纠错的车载自组网可靠广播协议的系统及方法 Expired - Fee Related CN102006625B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010537989 CN102006625B (zh) 2010-11-10 2010-11-10 基于前向纠错的车载自组网可靠广播协议的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010537989 CN102006625B (zh) 2010-11-10 2010-11-10 基于前向纠错的车载自组网可靠广播协议的系统及方法

Publications (2)

Publication Number Publication Date
CN102006625A true CN102006625A (zh) 2011-04-06
CN102006625B CN102006625B (zh) 2013-07-17

Family

ID=43813600

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010537989 Expired - Fee Related CN102006625B (zh) 2010-11-10 2010-11-10 基于前向纠错的车载自组网可靠广播协议的系统及方法

Country Status (1)

Country Link
CN (1) CN102006625B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103402179A (zh) * 2013-06-27 2013-11-20 无锡清华信息科学与技术国家实验室物联网技术中心 基于自主协同的车载网络预警信息广播系统及方法
CN103838605A (zh) * 2013-12-18 2014-06-04 浙江工商大学 具有丢包容忍和机密保障的无线传感器网络代码分发方法
CN106888436A (zh) * 2017-04-04 2017-06-23 厦门四信通信科技有限公司 一种无线AdHoc网络中可靠广播的方法
CN107153527A (zh) * 2017-05-17 2017-09-12 北京环境特性研究所 一种基于消息队列的并行雷达数据处理方法
WO2017152827A1 (zh) * 2016-03-11 2017-09-14 腾讯科技(深圳)有限公司 一种视频数据的冗余控制方法和装置
CN108881014A (zh) * 2017-05-12 2018-11-23 北京猎户星空科技有限公司 一种数据发送系统及方法
CN110035436A (zh) * 2019-01-16 2019-07-19 阿里巴巴集团控股有限公司 信息监控方法、装置、设备及存储介质
CN110650491A (zh) * 2019-09-18 2020-01-03 南通大学 一种用于车载自组网通信的前向纠错fec参数分析方法
CN111478836A (zh) * 2014-07-10 2020-07-31 松下电器(美国)知识产权公司 车载网络系统、电子控制单元、接收方法以及发送方法
CN112152697A (zh) * 2020-07-29 2020-12-29 国家电网有限公司 一种电力业务数据编码传输方法、系统及存储介质
CN112261678A (zh) * 2020-10-20 2021-01-22 北京和峰科技有限公司 一种适用于自组网的自适应跳频方法及系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107864028B (zh) * 2017-09-29 2021-03-30 西安电子科技大学 一种车辆自组织网络中的自适应帧聚合方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252534A (zh) * 2008-03-28 2008-08-27 清华大学 通过链路层报文合并提高移动自组织网络通信容量的方法
US20090055704A1 (en) * 2005-09-01 2009-02-26 Nippon Telegraph And Telephone Corporation Error correction method and apparatus
CN101877900A (zh) * 2009-11-06 2010-11-03 湖北汽车工业学院 一种车辆间数据路由方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090055704A1 (en) * 2005-09-01 2009-02-26 Nippon Telegraph And Telephone Corporation Error correction method and apparatus
CN101252534A (zh) * 2008-03-28 2008-08-27 清华大学 通过链路层报文合并提高移动自组织网络通信容量的方法
CN101877900A (zh) * 2009-11-06 2010-11-03 湖北汽车工业学院 一种车辆间数据路由方法

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103402179A (zh) * 2013-06-27 2013-11-20 无锡清华信息科学与技术国家实验室物联网技术中心 基于自主协同的车载网络预警信息广播系统及方法
CN103838605A (zh) * 2013-12-18 2014-06-04 浙江工商大学 具有丢包容忍和机密保障的无线传感器网络代码分发方法
CN103838605B (zh) * 2013-12-18 2017-07-28 浙江工商大学 具有丢包容忍和机密保障的无线传感器网络代码分发方法
CN111478836B (zh) * 2014-07-10 2024-02-20 松下电器(美国)知识产权公司 车载网络系统、电子控制单元、接收方法以及发送方法
CN111478836A (zh) * 2014-07-10 2020-07-31 松下电器(美国)知识产权公司 车载网络系统、电子控制单元、接收方法以及发送方法
CN107181968A (zh) * 2016-03-11 2017-09-19 腾讯科技(深圳)有限公司 一种视频数据的冗余控制方法和装置
CN107181968B (zh) * 2016-03-11 2019-11-19 腾讯科技(深圳)有限公司 一种视频数据的冗余控制方法和装置
WO2017152827A1 (zh) * 2016-03-11 2017-09-14 腾讯科技(深圳)有限公司 一种视频数据的冗余控制方法和装置
US10735029B2 (en) 2016-03-11 2020-08-04 Tencent Technology (Shenzhen) Company Limited Method and apparatus for encoding packets using video data redundancy control information
CN106888436A (zh) * 2017-04-04 2017-06-23 厦门四信通信科技有限公司 一种无线AdHoc网络中可靠广播的方法
CN108881014A (zh) * 2017-05-12 2018-11-23 北京猎户星空科技有限公司 一种数据发送系统及方法
CN107153527A (zh) * 2017-05-17 2017-09-12 北京环境特性研究所 一种基于消息队列的并行雷达数据处理方法
CN107153527B (zh) * 2017-05-17 2020-10-13 北京环境特性研究所 一种基于消息队列的并行雷达数据处理方法
CN110035436B (zh) * 2019-01-16 2022-04-01 杭州蚂蚁聚慧网络技术有限公司 信息监控方法、装置、设备及存储介质
CN110035436A (zh) * 2019-01-16 2019-07-19 阿里巴巴集团控股有限公司 信息监控方法、装置、设备及存储介质
CN110650491A (zh) * 2019-09-18 2020-01-03 南通大学 一种用于车载自组网通信的前向纠错fec参数分析方法
CN112152697B (zh) * 2020-07-29 2022-03-22 国家电网有限公司 基于北斗短报文通信的电力业务数据编码传输方法、系统
CN112152697A (zh) * 2020-07-29 2020-12-29 国家电网有限公司 一种电力业务数据编码传输方法、系统及存储介质
CN112261678A (zh) * 2020-10-20 2021-01-22 北京和峰科技有限公司 一种适用于自组网的自适应跳频方法及系统
CN112261678B (zh) * 2020-10-20 2023-09-22 北京和峰科技有限公司 一种适用于自组网的自适应跳频方法及系统

Also Published As

Publication number Publication date
CN102006625B (zh) 2013-07-17

Similar Documents

Publication Publication Date Title
CN102006625B (zh) 基于前向纠错的车载自组网可靠广播协议的系统及方法
CN102651898B (zh) 异步传感器网络中时延受限且能量高效的在线路由方法
EP2486697B1 (en) A method and apparatus for hop-by hop reliable multicast in wireless networks
CN104272836B (zh) 用于控制帧和管理帧压缩的装置和方法
CN102340829B (zh) 蜂窝环境下d2d簇内数据共享方法
Lim et al. Design of efficient multicast protocol for IEEE 802.11 n WLANs and cross-layer optimization for scalable video streaming
CN101212285B (zh) 基于机会协同的自动重传请求方法
CN101895376B (zh) 用于实现多跳无线网络中数据广播的传输方法
Calafate et al. An efficient and robust content delivery solution for IEEE 802.11 p vehicular environments
CN109121097A (zh) 一种基于异构车联网分簇的簇头选择方法
Pressas et al. Contention-based learning MAC protocol for broadcast vehicle-to-vehicle communication
CN101431784B (zh) 车载网络中基于地理位置的优化数据传输方法
WO2019128840A1 (zh) 报文传输控制方法及装置
JP5161106B2 (ja) デジタルテレビブロードキャストサービスを受信するためのゲートウェイ、端末および対応する方法
CN101820586B (zh) 一种在无线局域网中进行可靠广播的方法
CN101414965B (zh) 用于容迟网络和间歇连接网络的节省节点能量的方法
CN103354615B (zh) 基于信号强度的直播视频数据传输差错控制方法
Zhou et al. AFLAS: An adaptive frame length aggregation scheme for vehicular networks
Naeimipoor et al. A hybrid video dissemination protocol for vanets
CN102118822A (zh) 一种基于车辆协作的车载网络大数据转发方法
CN109474897A (zh) 基于隐马尔可夫模型的车联网安全消息单跳协作广播方法
CN102223202B (zh) 无线广播数据包丢失原因检测及速率自适应方法及系统
CN103442336B (zh) 一种无线传感网络中基于链路相关性的数据分发方法
US8693361B2 (en) Method and apparatus for improved multicast service using feedback mobiles
CN108135020A (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130717

Termination date: 20191110

CF01 Termination of patent right due to non-payment of annual fee