一种车联网的数据发送方法及相关装置与流程

文档序号:18084130发布日期:2019-07-06 10:21阅读:231来源:国知局
一种车联网的数据发送方法及相关装置与流程

本申请涉及车联网技术领域,特别涉及一种车联网的数据发送方法、数据发送系统、车辆电子控制装置以及计算机可读存储介质。



背景技术:

随着信息技术的不断发展,在电子通信技术领域出现了车联网和车载自组网络,使车辆在车道上行驶越来越来智能、安全与舒适。在技术层面这些通信网络都依赖于车与车之间的通信和车与基础设施之间的通信。因此,一般在道路上进行数据传输的过程,主要是车辆先从道路旁的基站中接收到对应的数据内容,然后再通过该车辆节点向道路上的其它车辆发送数据包。

目前,在现有技术中,一般是单个车辆从基站中获取到数据包,然后再将该数据包发送至车道上的其它车辆。虽然车辆上存在进行广播的节点,但是无论车道上运行的车辆有多少,都只有一个车辆在进行数据包广播,当车道上车辆数据较多时,单对单的传输速度较慢,数据接收延迟较大,无法提供很好的数据传输体验。

因此,如何提高车联网中数据发送的效率是本领域技术人员关注的重点问题。



技术实现要素:

本申请的目的是提供一种车联网的数据发送方法、数据发送系统、车辆电子控制装置以及计算机可读存储介质,通过多播数据丢失矩阵实现单对多的数据传输,还通过多个节点车辆实现多对多的数据传输,提高数据发送效率,降低时延,提升用户体验。

为解决上述技术问题,本申请提供一种车联网的数据发送方法,包括:

当节点车辆从基站获取到部分数据包时,所述节点车辆根据多播数据丢失矩阵与其它节点车辆进行多播共享;其中,所述其它节点车辆为接收到其它部分数据包的节点车辆;

当节点车辆接收到完整数据包时,所述节点车辆根据多播数据丢失矩阵将所述完整数据包向其它的同向车辆进行多播重传。

可选的,当节点车辆从基站获取到部分数据包时,所述节点车辆根据多播数据丢失矩阵与其它节点车辆进行多播共享,包括:

当所述节点车辆从所述基站获取到所述部分数据包时,向所述其它节点车辆发送所述部分数据包,以便所述其它节点车辆根据接收到的数据包返回共享反馈信息;

当所述节点车辆接收到所述共享反馈信息时,根据所述共享反馈信息确定多播数据丢失矩阵;

根据所述多播数据丢失矩阵对所述部分数据包进行编码,得到共享编码包;

向所述其它节点车辆发送所述共享编码包,以便所述其它节点车辆根据接收到的数据包返回共享反馈信息;

根据所述共享反馈信息进行数据重传,直至所述其它节点车辆接收到完整数据包。

可选的,根据所述多播数据丢失矩阵对所述部分数据包进行编码,得到共享编码包,包括:

根据所述多播数据丢失矩阵的列顺序对所述部分数据包进行编码,得到所述共享编码包。

可选的,当节点车辆接收到完整数据包时,所述节点车辆根据多播数据丢失矩阵将所述完整数据包向其它的同向车辆进行多播重传,包括:

当所述节点车辆接收到所述完整数据包时,所述节点车辆向其它的同向车辆发送所述完整数据包,以便所述同向车辆根据接收到的数据包返回重传反馈信息;

当所述节点车辆接收到所述重传反馈信息时,根据所述重传反馈信息确定多播数据丢失矩阵;

根据所述多播数据丢失矩阵对所述完整数据包进行编码,得到重传编码包;

向所述同向车辆发送所述重传编码包,以便所述同向车辆根据接收到的数据包返回重传反馈信息;

根据所述重传反馈信息进行数据重传,直至所述同向车辆接收到完整数据包。

可选的,根据所述多播数据丢失矩阵对所述完整数据包进行编码,得到重传编码包,包括:

根据所述多播数据丢失矩阵的列顺序对所述完整数据包进行编码,得到所述重传编码包。

可选的,还包括:

当节点车辆接收到所述完整数据包时,所述节点车辆向反向车辆发送所述完整数据包,以便当所述反向车辆接收到数据包时向所述同向车辆发送所述数据包。

可选的,当所述反向车辆接收到数据包时向所述同向车辆发送所述数据包,包括:

当所述反向车辆接收到所述数据包时,所述反向车辆对所述数据包进行异或编码,得到转发编码包:

向所述同向车辆发送所述转发编码包。

本申请还提供一种车联网的数据发送系统,包括:

数据多播共享模块,用于当节点车辆从基站获取到部分数据包时,所述节点车辆根据多播数据丢失矩阵与其它节点车辆进行多播共享;

数据多播重传模块,用于当节点车辆接收到完整数据包时,所述节点车辆根据多播数据丢失矩阵将所述完整数据包向其它的同向车辆进行多播重传。

本申请还提供一种车辆电子控制装置,包括:

定向天线,用于接收前向和后向发送的数据,并对所述数据的接收方向进行区分;

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上所述的数据发送方法的步骤。

本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据发送方法的步骤。

本申请所提供的一种车联网的数据发送方法,包括:当节点车辆从基站获取到部分数据包时,所述节点车辆根据多播数据丢失矩阵与其它节点车辆进行多播共享;其中,所述其它节点车辆为接收到其它部分数据包的节点车辆;当节点车辆接收到完整数据包时,所述节点车辆根据多播数据丢失矩阵将所述完整数据包向其它的同向车辆进行多播重传。

可见,本申请通过获取到完整数据包的节点车辆向周围同向车辆发送该完整数据包,实现单对多的数据传输方案,提高数据传输效率。并且,在该节点从基站获取完整数据包的过程中,部分数据包是通过基站获取,剩余的数据包是从其他节点车辆中获取,也就是说降低了基站传输数据开销的同时,在车道上可以出现多个具有完整数据包的节点车辆,并且同时向周围的同向车辆发送完整数据包,实现多对多的数据传输方案,进一步提高数据传输效率,并且,对于接收数据包的车辆来说是多次接收到数据包,弥补丢包情况,提高数据传输的可靠性。最后,采用多播数据丢失矩阵实现多播共享和多播重传,降低传输冲突发生的概率,提高数据传输的效率。

本申请还提供一种车联网的数据发送系统、车辆电子控制装置以及计算机可读存储介质,具有以上有益效果,在此不作赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其它的附图。

图1为本申请实施例所提供的一种车联网的数据发送方法的流程图;

图2为本申请实施例所提供的数据发送方法的多播共享过程的流程图;

图3为本申请实施例所提供的数据发送方法的多播重传过程的流程图;

图4为本申请实施例中提供的一种多播数据丢失矩阵的示意图;

图5为本申请实施例所提供的另一种车联网的数据发送方法的流程图;

图6为本申请实施例所提供的一种数据发送方法的重传性能测试图;

图7为本申请实施例所提供的一种数据发送方法的链路丢包率测试图;

图8为本申请实施例所提供的一种数据发送方法的传输带宽测试图;

图9为本申请实施例所提供的一种车联网的数据发送系统的结构示意图。

具体实施方式

本申请的核心是提供一种车联网的数据发送方法、数据发送系统、车辆电子控制装置以及计算机可读存储介质,通过多播数据丢失矩阵实现单对多的数据传输,还通过多个节点车辆实现多对多的数据传输,提高数据发送效率,降低时延,提升用户体验。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

目前,现有技术在车道上向各车辆发送数据信息的过程主要是车道上的车辆先从基站获取到数据包后,该车辆作为传输数据的节点向其它车辆发送数据包。目前,主要是一个车辆节点先从基站中获取到数据,然后只由该车辆节点向其它车辆发送数据包。但是,通常只由一个车辆发送数据传输的效率较慢。并且,现有技术中还只考虑到单向车道的数据,也就是说在双向车道上传输的数据并不做区分,均是相同的数据。可见,现有技术不仅传输速度较慢,并且无法应用在实际的应用环境中,使物联网技术无法很好的展开。

因此,本申请提供一种车联网的数据发送方法,通过获取到完整数据包的节点车辆向周围同向车辆发送该完整数据包,实现单对多的数据传输方案,提高数据传输效率。并且,在该节点从基站获取完整数据包的过程中,部分数据包是通过基站获取,剩余的数据包是从其他节点车辆中获取,也就是说降低了基站传输数据开销的同时,在车道上可以出现多个具有完整数据包的节点车辆,并且同时向周围的同向车辆发送完整数据包,实现多对多的数据传输方案,进一步提高数据传输效率,并且,对于接收数据包的车辆来说是多次接收到数据包,弥补丢包情况,提高数据传输的可靠性。最后,采用多播数据丢失矩阵实现多播共享和多播重传,降低传输冲突发生的概率,提高数据传输的效率。

请参考图1,图1为本申请实施例所提供的一种车联网的数据发送方法的流程图。

本实施例中,该方法可以包括:

s101,当节点车辆从基站获取到部分数据包时,节点车辆根据多播数据丢失矩阵与其它节点车辆进行多播共享;其中,其它节点车辆为接收到其它部分数据包的节点车辆;

本步骤旨在说明节点车辆从基站获取数据的过程。具体的,当本步骤执行完成在车道中会存在多个接收到完整数据包的节点车辆,以便在车辆与车辆传输数据的过程中可以有多个车辆向多个车辆发送数据,实现多对的数据传输方案,进一步提高数据的传输效率。并且,还解决单对多进行发送时存在的丢包情况。

进一步的,现有技术中,一般由于是单个车辆向单个车辆传输数据,因此,在从基站中获取数据包的过程,也是单个车辆从基站中获取到数据包。因此,当采用现有技术使车道上多个节点车辆获取到完整数据包,一般是使基站多次向多个节点车辆发送完整数据包。可见,现有技术中使多个节点车辆接收到数据包的过程,也就是基站对单个车辆发送数据包的过程重复了多次,换句话说就是重复多次现有技术。而重复多次并不能有效的提高效率,本质仍然是单对单的数据传输。

因此,本步骤中使每个节点车辆只从基站中获取到部分数据包,每个节点车辆获取的部分数据包之间不重合,并且所有节点车辆的部分数据包之和就是完整数据包。然后,每个节点车辆之间对自身获取的部分数据包进行相互共享,使每个节点车辆都获取到完整数据包。可见,本步骤中基站只需要发送一次完整数据包,就可以使得多个节点车辆获取到完整数据包,提高基站发送数据的效率,降低数据传输时延。

再进一步的,现有技术中一般是直接进行多播重传,也就是节点车辆向其他节点车辆发送部分数据包,其他节点车辆根据数据包接收情况返回反馈信息,该节点车辆根据接收到的反馈信息将数据包重新发送。也就是其他节点车辆缺什么就立刻直接发送缺的数据包。由于每个节点车辆的数据接收情况不同,会出现多种的数据丢包情况,有可能相同,也有可能不相同。因此,进行多播共享有可能出现重传冲突的情况,减低数据传输效率。

因此,本步骤中采用多播数据丢失矩阵进行多播共享,以矩阵的方式确定重传内容,避免出现重传冲突,提高传输的可靠性和效率。具体的,如何采用该矩阵进行多播共享可以参考以下实施例,本实施例中不做赘述。

s102,当节点车辆接收到完整数据包时,节点车辆根据多播数据丢失矩阵将完整数据包向其它的同向车辆进行多播重传。

在s101的基础上,本步骤旨在当节点车辆接收到完整数据包时,对周围的同向行驶的车辆进行数据传输。当周围车辆的数量为多个时,就可以对多个车辆进行数据传输,实现对多个车辆并行发送数据,提高数据传输的效率。

并且,上一步骤中的节点车辆通常情况下接收到完整数据包的速度并不一致。因此,只要存在节点车辆接收到完整数据包时,该节点车辆就可以向周围同向车辆发送完整数据包,无需等待其他节点车辆。

进一步的,在现有技术的单对单传输中,进行传输的车辆为了解决丢包情况,同样会进行重传。也就是节点车辆向其他节点车辆发送完整数据包,其他节点车辆根据数据包接收情况返回反馈信息,该节点车辆根据接收到的反馈信息将数据包重新发送。也就是其他节点车辆缺什么就立刻直接发送缺的数据包。由于现有技术中时单对单的传输,使用通常的方法可以很好的解决数据丢包的情况。但是,当该现有技术应用在单对多或多对多的情况下时,为了解决丢包问题,会多次向多个车辆进行数据重传,也就是将现有技术重复执行了多次。可见,仅仅是现有技术中的重复执行,不仅不会提高数据包的传输效率,还会出现数据冲突的情况,降低数据传输的效度。

因此,本步骤中采用多播数据丢失矩阵进行多播重传,以矩阵的方式确定重传内容,也就是获取到所有被传输矩阵的反馈情况,根据所有的情况确定重新发送的数据包,避免出现重传冲突,提高传输的可靠性和效率。具体的,如何采用该矩阵进行多播共享可以参考以下实施例,本实施例中不做赘述。

综上,本实施例通过获取到完整数据包的节点车辆向周围同向车辆发送该完整数据包,实现单对多的数据传输方案,提高数据传输效率。并且,在该节点从基站获取完整数据包的过程中,部分数据包是通过基站获取,剩余的数据包是从其他节点车辆中获取,也就是说降低了基站传输数据开销的同时,在车道上可以出现多个具有完整数据包的节点车辆,并且同时向周围的同向车辆发送完整数据包,实现多对多的数据传输方案,进一步提高数据传输效率,并且,对于接收数据包的车辆来说是多次接收到数据包,弥补丢包情况,提高数据传输的可靠性。最后,采用多播数据丢失矩阵实现多播共享和多播重传,降低传输冲突发生的概率,提高数据传输的效率。

以下提供一种实施例,对上一实施例中如何在多个节点车辆之间进行多播共享的过程进行说明。

请参考图2,图2为本申请实施例所提供的数据发送方法的多播共享过程的流程图。

本实施例中,该过程可以包括:

s201,当节点车辆从基站获取到部分数据包时,向其它节点车辆发送部分数据包,以便其它节点车辆根据接收到的数据包返回共享反馈信息;

本步骤旨在当该节点车辆接收到部分数据包时,向其它节点车辆发送接收到的部分数据包。其中,对应发送的其他节点车辆的数量可以是一个,还可以是多个,在此不做具体限定。可见,本步骤主要是该节点车辆向其他节点车辆共享接收到的部分数据包。

当然,其他节点车辆也会向该节点车辆发送剩余的部分数据包,以便该节点车辆可以将获取的剩余部分数据包和本地的部分数据包整合为完整数据包。并且,当数据传输的过程中出现丢包情况,该节点车辆还可以向数据包的发送节点返回反馈信息。

s202,当节点车辆接收到共享反馈信息时,根据共享反馈信息确定多播数据丢失矩阵;

在s201的基础上,本步骤就是指当该节点车辆接收到共享反馈信息时,确定多播数据丢失矩阵,以便根据该多播数据丢失矩阵重新发送数据包。

s203,根据多播数据丢失矩阵对部分数据包进行编码,得到共享编码包;

在s202的基础上本步骤旨在进行编码得到编码包,也就是重新发送的数据包。

可选的,本步骤可以包括:

根据多播数据丢失矩阵的列顺序对部分数据包进行编码,得到共享编码包。

s204,向其它节点车辆发送共享编码包,以便其它节点车辆根据接收到的数据包返回共享反馈信息;

在s203的基础上,本步骤旨在继续发送该共享编码包,以便继续接收到其它节点车辆返回的反馈信息。

s205,根据共享反馈信息进行数据重传,直至其它节点车辆接收到完整数据包。

在s204的基础上,本步骤旨在继续根据共享反馈信息进行数据重传,也就是重复执行s02至s204的步骤,直到其他节点车辆接收到完整数据包,或接收到完整的部分数据包。

举例来说,本实施例中将节点车辆建立为一个内容共享车辆簇,在该内容共享车辆簇内具体执行的步骤如下:

步骤1,由单向车道的基站a选择m辆车组成内容共享车辆簇;

也就是,假设每个车辆的传输缓存大小都为l个数据包。其中,m与l到的关系可以是m≤l,l为大于零的整数,l的数目一般小于等于10。

步骤2,车辆簇中的每个车辆将从基站a下载相关的内容ca1,ca2,ca3,…,cam;

其中,每份内容的大小不能超过l个数据包。

步骤3,当车辆簇中的车辆全部完成从基站a的下载内容后,内容共享车辆簇中每个节点车辆之间进行多播共享,互相共享本地的部分数据包,使得车辆簇中的每个车辆都能拥有完整的基站a下载内容,也就是,ca1+ca2+ca3+…+cam。其中,每个车辆的存储缓存大小为m×l个数据包。

以下提供一个实施例,对如何进行多播共享进行说明。

实施例:

将基站数据均分成3(c=c1+c2+c3)份,内容共享车辆簇内的3个节点车辆都从基站下载一份数据,然后互相多播自己拥有的部分数据给内容共享车辆簇内的其他2个节点车辆。假设总数据c共12个数据包,均分后节点车辆拥有p1、p2、p3、p4;节点车辆2拥有:p5、p6、p7、p8;节点车辆3拥有:p9、p10、p11、p12。然后内容共享车辆簇内的3个节点车辆分别将自己拥有的数据包在内容共享车辆簇内多播重传,使得内容共享车辆簇内的3个节点车辆都拥有全部的数据。对于ack机制,本例采用每传输一个重传包等待ack确认后再重传下一个。

节点车辆1向节点车辆2和节点车辆3多播自己拥有的p1、p2、p3、p4,同理节点车辆2向节点车辆1和节点车辆3多播自己拥有的p5、p6、p7、p8;节点车辆3向节点车辆1和节点车辆2多播自己拥有的p9、p10、p11、p12,接收到反馈信息(ack/nack信令)在源端生成多播数据丢失矩阵(mpem矩阵),在车辆簇中的3个节点车辆即是源码也是接收端。

具体的,节点车辆1多播数据包后根据节点车辆2和节点车辆3的反馈信令ack/nack(或超时)在节点车辆1(源端)生成了mpem矩阵,节点车辆1生成的mpem矩阵表示节点车辆2接收数据包p1失败,节点车辆3接收数据包p3失败,那么节点车辆1会将数据包p1和数据包p3进行xor编码,然后重新发送。节点车辆2与节点车辆3从重传的编码包中各自恢复数据包p1和数据包p3后反馈ack信令,节点车辆1的mpem矩阵更新为零矩阵。

当节点车辆1和节点车辆3同时缺失数据包p6,节点车辆2如果将数据包p5与数据包p6编码多播,则接收端节点车辆1无法解码恢复出数据包p5与数据包p6,即出现编码冲突现象,所以根据本文采用的编码方法会将数据包p5与数据包p7编码多播出去。节点车辆1接收编码包后解码恢复出数据包p5,节点车辆3解码恢复出数据包p7后反馈ack信令,节点车辆2更新mpem矩阵,然后多播重传数据包p6,最后节点车辆2的mpem矩阵更新为零矩阵。

节点车辆3多播数据包p9,此时节点车辆1接收成功反馈ack、节点车辆2接收失败反馈nack或超时,则节点车辆3更新mpem矩阵时(r1:p9)仍为“1”。接着车辆3会将数据包p9与数据包p11编码多播出去,接收到节点车辆1与节点车辆2发送的ack后将mpem矩阵更新为零矩阵。至此内容共享车辆簇内共享数据过程结束,簇内的每辆车都拥有全部的数据c,也就是每个节点车辆都获取到了完整数据包。

可见,本实施例中采用多播数据丢失矩阵在多个节点车辆之间进行多播共享,也就是单个节点车辆向其他节点车辆进行多播重传,避免出现编码冲突的情况,提高数据在节点车辆之间进行传输的效率。

以下提供一种实施例,主要对如何在多个节点车辆之间进行多播重传进行说明。

请参考图3,图3为本申请实施例所提供的数据发送方法的多播重传过程的流程图。

本实施例中,该过程可以包括:

s301,当节点车辆接收到完整数据包时,节点车辆向其它的同向车辆发送完整数据包,以便同向车辆根据接收到的数据包返回重传反馈信息;

可见,通过本步骤,只要当任意一个节点车辆获取到完整数据包时,该节点车辆就可以向其他车辆发送完整数据包,实现单对多的数据发送,提高数据发送的效率。并且,接收到数据包的车辆,根据接收到的数据包向节点车辆发送反馈信息,以使节点车辆重新发送数据包。

s302,当节点车辆接收到重传反馈信息时,根据重传反馈信息确定多播数据丢失矩阵;

s303,根据多播数据丢失矩阵对完整数据包进行编码,得到重传编码包;

可选的,本步骤可以包括:

根据多播数据丢失矩阵的列顺序对完整数据包进行编码,得到重传编码包。

s304,向同向车辆发送重传编码包,以便同向车辆根据接收到的数据包返回重传反馈信息;

s305,根据重传反馈信息进行数据重传,直至同向车辆接收到完整数据包。

在每个车辆在多播过程中,会出现接收方有数据包没有收到,错失的情况,因此会发送反馈信息给发送车辆,可以是nack信令,表示未收到数据包信息。但由于不同接收车辆丢失的数据包可能会都不一样,如果所有数据包都重传会浪费时间和传输缓存。因此,本实施例采用多播数据丢失矩阵进行多播重传。

通过一个实施例,对本实施例中具体如何进行多播重传进行说明。

实施例:

首先,设置多播数据丢失矩阵(mpem矩阵)的大小为n行l列;其中每一行对应的是每一个接收车辆,每一列对应的是传输的数据包pi,(i=1,2,3,…,l),数据包的个数不超过传输缓存大小l;矩阵是二值矩阵,矩阵中的值仅有“0”和“1”,其中“1”表示该行对应的车辆发送的nack信令(未收到数据包信息)中指出的哪些数据包未收到。比如,车辆2的数据包p2没有收到,因此车辆2发送一个nack信令至车辆1;车辆1收到所有nack信息后,在多播数据丢失矩阵中“车辆2”的行,对应的p2列,标注值“1”。

然后,初始编码缓存列表“temp”设置为n行l列的零矩阵,并执行以下步骤:

步骤1,在多播数据丢失矩阵mpem的第i列(1≤i≤l)开始寻找第一个数值1对应的数据包pi列,放入编码缓存矩阵temp中。

步骤2,如果缓存temp矩阵中各行值相加均不大于1,则表示编码不冲突,转到mpem矩阵的下一列继续执行step1;如果大于1,则表示编码冲突,将缓存矩阵最后一列移除后转到mpem矩阵的下一列执行step1。

终止搜索机制:如果i=l(mpem矩阵全部搜索完成)或temp矩阵中各行值相加均等于1(表示完成最佳匹配,最佳匹配表示组合的重传包对每个接收节点都有恢复丢失数据包的作用),则直接转到执行step3。

步骤3,将temp矩阵中对应的所有数据包进行xor(exclusiveor,)网络编码并多播。

最后,接收反馈的ack/nacks刷新mpem矩阵,重复上述步骤直至mpem为全零矩阵。

在更实际的场景中,由于重新发送的编码包传输也可能失败,此时mpem矩阵对应的值不会更新,在下一次的编码搜索中依然会搜索到丢失的数据包。对于接收到的反馈信息,可以每传输一个重传包等待ack确认后再重传下一个,也可以根据mpem矩阵一次编码多个重传包进行多播。具体的,在执行步骤3时,执行根据temp矩阵将mpem矩阵对应的列置零后跳回步骤1,在mpem为全零矩阵时结束。

以下通过一个实施例,对具体如何根据多播数据丢失矩阵进行编码进行说明。

实施例:

举例来说,假设源端r0的重传间隔为6,重传间隔指的是传输多少个数据包后开始重传丢失的数据包,重传间隔为6也就是说在传输6个数据包后开始检查是否需要重传。接收端数据量为5个,在传输6个数据包后源端r0生成mpem矩阵,也就是确定多播数据丢失矩阵。

请参考图4,图4为本申请实施例中提供的一种多播数据丢失矩阵的示意图。

首先,源端将p1加入缓存矩阵temp中,然后将p2列加入temp中判断各行值相加均不大于1,即编码不冲突。将p3列加入temp中,判定r2行相加后为2大于1,即编码冲突,所以将p3列移除temp。同理加入p4列判定编码冲突。加入p5列后判定编码不冲突,同时temp矩阵(对应mpem为p1列、p2列、p3列)中各行相加均为1,触发终止搜索机制,将p1、p2、p5编码重传。

然后,接收端接收编码包解码后反馈ack,假设r5未接收重传包成功,返回nack或超时则源端更新mpem时仍保留为1,如图4中的圆形圈所示。

最后,源端判定mpem矩阵是非零矩阵,需要继续编码重传。依次将p1、p3、p4、p6放入temp矩阵,不存在编码冲突。因此,将对应的数据包进行xor编码得到pcode2=p2⊕p3⊕p4⊕p6,进行重新发送,接收端解码恢复数据包后返回ack信令,源端更新后的mpem矩阵为零矩阵,也就是每个接收端接收到完整的数据包,表示多播重传结束,源端将发送下一批数据包。

下面通过另一实施例,对本申请所提供的数据发送方法进行进一步说明。

请参考图5,图5为本申请实施例所提供的另一种车联网的数据发送方法的流程图。

本实施例中,该数据发送方法可以包括:

s501,当节点车辆从基站获取到部分数据包时,节点车辆根据多播数据丢失矩阵与其它节点车辆进行多播共享;其中,其它节点车辆为接收到其它部分数据包的节点车辆;

s502,当节点车辆接收到完整数据包时,节点车辆根据多播数据丢失矩阵将完整数据包向其它的同向车辆进行多播重传。

s503,当节点车辆接收到完整数据包时,节点车辆向反向车辆发送完整数据包,以便当反向车辆接收到数据包时向同向车辆发送数据包。

可见,本实施例中通过s503可以向反向车辆发送数据包,以使反向车辆作为转发节点,向同向车辆再次发送接收到的数据包。对同向车辆的丢失的数据包进行补充。

距离来说,假设完整的基站a下载内容c(c=ca1+ca2+ca3+…+cam)被内容共享车辆簇中的车辆全部收到,接着车辆将沿车道行驶反方向多播该下载内容。

多播过程中,下载内容c的最大传输缓存为m×l,在双向车道上行驶的车辆都会收到多播的内容。此时,同向车辆收到内容后将进行存储解码,反向车辆仅对收到的数据包做存储转发,转发时采用对所有接收到的数据包进行xor编码,减少传输的数据量,降低传输时延。

进一步的,同向车辆接收到反向车辆的转发数据包。如果是已有内容则删除转发,如果是未接收到的数据包则保留,然后检查数据包接收完整情况,将未接收到的数据包信息通过nack信令至节点车辆,请求重新发送数据包。如果数据包完整接收到,则发送信息给多播的节点车辆,自身变成节点车辆继续向发送完整数据包。

可选的,s503可以包括:

步骤一、当反向车辆接收到数据包时,反向车辆对数据包进行异或编码,得到转发编码包:

步骤二、向同向车辆发送转发编码包。

通过一个实施例对如何进行数据包转发进行说明。

实施例:

假设节点车辆3向后多播数据包p1、p2、p3、p4。反向车辆3对收到的数据包p1、p2、p4进行xor编码,然后进行多播发送。此时,同向车辆4收到节点车辆3多播的数据包p1、p3、p4丢失了数据包p2,之后收到了反向车辆3多播的编码包pf(pf=p1⊕p2⊕p4),进行解码后获得了丢失的数据包p2。同理,同向车辆5收到节点车辆3多播的数据包p1、p3、p3丢失了数据包p4,然后收到了反向车辆3多播的编码包pf(pf=p1⊕p2⊕p4),进行解码后获得了丢失的数据包p4。最后同向车辆4和同向车辆5判定数据包已接收完整,向节点车辆3反馈信息,即ack信令。

以下通过三个更具体的实施例,对本申请的技术方案进行有益效果的说明。

一种实施例:

请参考图6,图6为本申请实施例所提供的一种数据发送方法的重传性能测试图。

本实施例中,假设链路丢包率为0.20,源端发送的数据包个数为1000,重传间隔为50(传输50个数据包后开始重传检测),接收端个数从2到12变化,实验重复次数为50。图6展示了接收端数量变化时本申请技术方案(即图中所示的专利提案方法)与普通arq(automaticrepeat-request自动重传请求)方法的传输带宽对比。

本申请技术方案在传输带宽的消耗上相比传统arq方法重传性能提升了近40%。网络编码的方法通过组合丢失包,使得一次重传可以完成多个丢失包的重传,降低了传输带宽。在接收端数量增加的情况下,丢失包组合的几率更大,且提案方法避免了编码冲突,使得传输带宽的改善更加明显。

另一种实施例:

请参考图7,图7为本申请实施例所提供的一种数据发送方法的链路丢包率测试图。

本实施例中,假设接收端数量为7,源端发送的数据包个数为1000,重传间隔为50(传输50个数据包后开始重传检测),链路丢包率从0.05到0.30变化,实验重复次数为50。图7展示了链路丢包率变化时本申请技术方案(即图中所示的专利提案方法)与普通arq(automaticrepeat-request)方法的传输带宽对比。

整体而言,随着丢包率的上升,其传输带宽呈线性递增的趋势。相比普通arq方法,本申请技术方案在链路丢包率为0.20时有近25%的性能提升。虽然接收端的链路丢包率增加,但是源端可以组合更多的丢失包,重传一次能够恢复更多的数据。当丢包率大于0.5时,本申请的技术方案的性能会逐渐逼近普通arq方法,这是因为当丢包率增大时,编码冲突会增加,导致无法进行丢失包的组合编码,本申请技术方案退化成普通arq方法。

还一种实施例:

请参考图8,图8为本申请实施例所提供的一种数据发送方法的传输带宽测试图。

本实施例中,假设接收端数量为7,链路丢包率为0.2,源端发送的数据包个数为1000,重传间隔从10变化到100,实验重复次数为50。图8展示了重传间隔变化时本申请技术方案(即图中所示的专利提案方法)与普通arq(automaticrepeat-request)方法的传输带宽对比。

随着重传间隔的增加,本申请技术方案的重传性能呈缓慢提升的趋势。这是因为重传间隔的增大,编码可以组合更多的丢失包,形成最佳匹配的几率也更大,一次多播重传使得更多的接收端恢复丢包。

下面对本申请实施例提供的一种车联网的数据发送系统进行介绍,下文描述的一种车联网的数据发送系统与上文描述的一种车联网的数据发送方法可相互对应参照。

请参考图9,图9为本申请实施例所提供的一种车联网的数据发送系统的结构示意图。

本实施例中,该系统可以包括:

数据多播共享模块100,用于当节点车辆从基站获取到部分数据包时,节点车辆根据多播数据丢失矩阵与其它节点车辆进行多播共享;

数据多播重传模块200,用于当节点车辆接收到完整数据包时,节点车辆根据多播数据丢失矩阵将完整数据包向其它的同向车辆进行多播重传。

本申请实施例还提供一种车辆电子控制装置,包括:

定向天线,用于接收前向和后向发送的数据,并对所述数据的接收方向进行区分;

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如以上实施例所述的数据发送方法的步骤。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的数据发送方法的步骤。

该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的一种车联网的数据发送方法、数据发送系统、车辆电子控制装置以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

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