智能网联汽车异构设备之间的数据传输方法及装置
文献发布时间:2024-04-18 19:58:21
技术领域
本发明涉及智能网联汽车技术领域,具体而言,涉及一种智能网联汽车异构设备之间的数据传输方法及装置。
背景技术
智能网联汽车是由多种异构设备组成的高度智能化移动设备,包括域控制器、传感器、控制单元和OBU等设备。这些设备需要协作完成车辆控制、驾驶辅助、路径规划和环境感知等功能。
目前,在实现上述功能的过程中,这些设备之间需要进行数据传输和数据共享。然而,由于不同设备之间的硬件配置和运行环境不同,因此可能会导致不同设备的处理能力和通信方式存在较大的差异,从而导致数据传输过程中容易出现数据丢包的情况,影响异构设备数据传输的可靠性。
发明内容
本发明提供一种智能网联汽车异构设备之间的数据传输方法方法及装置,主要在于能够避免在数据传输过程中出现数据丢包的情况,提高异构设备之间数据传输的可靠性。
根据本发明实施例的第一方面,提供一种智能网联汽车异构设备之间的数据传输方法,应用于智能网联汽车异构设备中的第一设备,包括:
获取所述第一设备的待传输数据;
采用分包协议对所述待传输数据进行分包处理,得到多个数据包,其中,每个数据包的头部中包括数据长度字段、数据序列号字段和时间戳字段;
基于多个数据传输通道,将所述多个数据包依次发送给第二设备,其中,所述第二设备用于根据所述多个数据包分别对应的数据序列号,对所述多个数据包进行数据完整性验证;若根据数据完整性验证结果确定存在数据包丢的情况,则基于丢失的数据包对应的数据序列号和时间戳,构建提示数据包;
当接收到所述第二设备反馈的提示数据包时,采用重传机制,向所述第二设备重新传输所述丢失的数据包。
根据本发明实施例的第二方面,提供另一种智能网联汽车异构设备之间的数据传输方法,应用于智能网联汽车异构设备中的第二设备,包括:
依次接收所述第一设备发送的多个数据包,其中,所述第一设备用于采用分包协议对待传输数据进行分包处理,得到多个数据包,其中,每个数据包的头部中均包括数据长度字段、数据序列号字段和时间戳字段;基于多个数据传输通道,将所述多个数据包依次发送给第二设备;
根据所述多个数据包分别对应的数据序列号,对所述多个数据包进行数据完整性验证;
若根据数据完整性验证结果确定存在数据包丢失的情况,则基于丢失的数据包对应的数据序列号和时间戳,构建提示数据包;
将所述提示数据包反馈给第一设备,以便所述第一设备采用重传机制,向所述第二设备重新传输丢失的数据包。
根据本发明实施例的第三方面,提供一种智能网联汽车异构设备之间的数据传输装置,包括:
获取单元,用于获取所述第一设备的待传输数据;
分包单元,用于采用分包协议对所述待传输数据进行分包处理,得到多个数据包,其中,每个数据包的头部中包括数据长度字段、数据序列号字段和时间戳字段;
发送单元,用于基于多个数据传输通道,将所述多个数据包依次发送给第二设备,其中,所述第二设备用于根据所述多个数据包分别对应的数据序列号,对所述多个数据包进行数据完整性验证;若根据数据完整性验证结果确定存在数据包丢的情况,则基于丢失的数据包对应的数据序列号和时间戳,构建提示数据包;
重传单元,用于当接收到所述第二设备反馈的提示数据包时,采用重传机制,向所述第二设备重新传输所述丢失的数据包。
根据本发明实施例的第四方面,提供一智能网联汽车异构设备之间的数据传输装置,包括:
接收单元,用于依次接收所述第一设备发送的多个数据包,其中,所述第一设备用于采用分包协议对待传输数据进行分包处理,得到多个数据包,其中,每个数据包的头部中均包括数据长度字段、数据序列号字段和时间戳字段;基于多个数据传输通道,将所述多个数据包依次发送给第二设备;
验证单元,用于根据所述多个数据包分别对应的数据序列号,对所述多个数据包进行数据完整性验证;
构建单元,用于若根据数据完整性验证结果确定存在数据包丢失的情况,则基于丢失的数据包对应的数据序列号和时间戳,构建提示数据包;
反馈单元,用于将所述提示数据包反馈给第一设备,以便所述第一设备采用重传机制,向所述第二设备重新传输丢失的数据包。
根据本发明实施例的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
获取所述第一设备的待传输数据;
采用分包协议对所述待传输数据进行分包处理,得到多个数据包,其中,每个数据包的头部中包括数据长度字段、数据序列号字段和时间戳字段;
基于多个数据传输通道,将所述多个数据包依次发送给第二设备,其中,所述第二设备用于根据所述多个数据包分别对应的数据序列号,对所述多个数据包进行数据完整性验证;若根据数据完整性验证结果确定存在数据包丢的情况,则基于丢失的数据包对应的数据序列号和时间戳,构建提示数据包;
当接收到所述第二设备反馈的提示数据包时,采用重传机制,向所述第二设备重新传输所述丢失的数据包。
根据本发明实施例的第六方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
依次接收所述第一设备发送的多个数据包,其中,所述第一设备用于采用分包协议对待传输数据进行分包处理,得到多个数据包,其中,每个数据包的头部中均包括数据长度字段、数据序列号字段和时间戳字段;基于多个数据传输通道,将所述多个数据包依次发送给第二设备;
根据所述多个数据包分别对应的数据序列号,对所述多个数据包进行数据完整性验证;
若根据数据完整性验证结果确定存在数据包丢失的情况,则基于丢失的数据包对应的数据序列号和时间戳,构建提示数据包;
将所述提示数据包反馈给第一设备,以便所述第一设备采用重传机制,向所述第二设备重新传输丢失的数据包。
本发明实施例的创新点包括:
1、针对智能网联汽车异构设备的数据通讯问题,引入数据分包技术、多通道传输技术和数据完整性验证反馈机制等,以提高异构设备之间数据传输的可靠性是本发明实施例的创新点之一。
2、采用数据完整性验证反馈机制及时发现数据传输过程中出现的数据丢包或错误情况,并自动进行修正,以有效解决数据传输过程中出现的问题是本发明实施例的创新点之一。
3、引入数据去重技术,在保证数据完整性的前提下可以消除重复数据所带来的影响是本发明实施例的创新点之一。
本发明提供的一种智能网联汽车异构设备之间的数据传输方法及装置,与现有技术相比,通过对第一设备的待传输数据进行分包处理,并将多个数据包发送给第二设备,由第二设备对多个数据包进行数据完整性验证,能够避免在数据传输过程中出现数据丢包的情况,从而能够保证智能网联汽车异构设备之间数据传输的可靠性,降低了数据丢失的风险,与此同时,本发明通过采用多个数据传输通道向第二设备传输数据包,能够进一步保证数据在传输过程中的完整性。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例提供的一种智能网联汽车异构设备之间的数据传输方法流程示意图;
图2示出了本发明实施例提供的智能网联汽车异构设备的硬件框架示意图;
图3示出了本发明实施例提供的数据分包示意图;
图4示出了本发明实施例提供的第一设备和第二设备之间的数据传递示意图;
图5示出了本发明实施例提供的滑动窗口示意图;
图6示出了本发明实施例提供的另一种智能网联汽车异构设备之间的数据传输方法流程示意图;
图7示出了本发明实施例提供的一种智能网联汽车异构设备之间的数据传输装置的结构示意图;
图8示出了本发明实施例提供的另一种智能网联汽车异构设备之间的数据传输装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例及附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
由于异构设备中不同设备之间的硬件配置和运行环境不同,因此可能会导致不同设备的处理能力和通信方式存在较大的差异,从而导致数据传输过程中容易出现数据丢包的情况,影响异构设备数据传输的可靠性。
为了克服上述缺陷,本发明实施例提供了一种智能网联汽车异构设备之间的数据传输方法,应用于智能网联汽车异构设备中的第一设备,如图1所示,该方法包括:
步骤101、获取所述第一设备的待传输数据。
其中,智能网联汽车异构设备中的第一设备和第二设备为需要进行数据传输的设备,第一设备为数据发送端,第二设备为数据接收端,例如,第一设备为传感器(如激光雷达、摄像头等),第二设备为域控制器,再比如,第一设备为域控制器,第二设备为车载终端OBU,待传输数据具体可以为V2X数据。
本发明实施例主要适用于智能网联汽车异构设备之间进行数据传输的场景。
为了更好的说明异构设备的数据传输优化过程,本发明实施例提供了智能网联汽车异构设备的硬件架构示意图,如图2所示,传感器和域控制器之间需要进行数据传输,域控制器和车载终端OBU之间也需要进行数据传输,当第一设备为传感器(如激光雷达、摄像头等)时,第二设备可以为域控制器;当第一设备为域控制器时,第二设备可以为车载终端OBU。
具体地,当第一设备需要向第二设备传输数据时,需要先获取第一设备的待传输数据,以便对第一设备的待传输数据进行分包处理。
步骤102、采用分包协议对所述待传输数据进行分包处理,得到多个数据包。
其中,每个数据包的头部中包括数据长度字段、数据序列号字段和时间戳字段。
对于本发明实施例,为了对待传输数据进行分包处理,步骤102具体包括:采用分包协议对所述待传输数据进行拆分,得到多个数据段;分别为所述多个数据段添加数据长度字段、序列号字段和时间戳字段,得到多个数据包。
具体地,在实现数据分包时,可以通过采用TCP协议中的分段数据分包协议来实现,即采用分段数据分包协议将待传输数据分成若干个固定大小的数据包,每个数据包的大小控制在一个合理的范围内。在传输数据之前,采用分段数据分包协议将一个完整的数据包分成多个数据段(Segment),每个数据段最大大小为MSS(Maximum Segment Size),并在每个数据段前方分别添加固定字节长度的数据长度字段、数据序列号字段和时间戳字段,从而形成多个数据包,其中,数据长度字段、数据序列号字段和时间戳字段分别位于数据包的头部,数据序列号字段用于表示数据包在整个数据流中的顺序,第二设备(接收端)会在接收完成后根据该序列号验证数据的完整性和正确性,并在出现数据包丢失时及时反馈给第一设备(发送端);时间戳字段用于表示数据包的发送时间,第二设备(接收端)会根据时间戳计算数据包的传输时延,以优化或者调整整个数据传输过程中的延迟等问题。
如图3所示,第一设备(发送端)将待传输数据拆分成数据包1、数据包2和数据包3,在每个数据包的头部中添加有4个字节的数据长度字段。第二设备(接收端)每次在接收到数据包时,先固定读4个字节,解析后得到数据包的数据长度,然后再根据该数据长度读取数据内容。通过不断重复上述过程,第二设备能够读取第一设备传输的所有数据包的数据内容。
由此通过数据分包能够使得每个数据包都可以被第二设备接收,从而能够避免单个数据包过大导致通讯过程出现延迟或阻塞的问题。
步骤103、基于多个数据传输通道,将所述多个数据包依次发送给第二设备。
其中,所述第二设备用于根据所述多个数据包分别对应的数据序列号,对所述多个数据包进行数据完整性验证;若根据数据完整性验证结果确定存在数据包丢的情况,则基于丢失的数据包对应的数据序列号和时间戳,构建提示数据包。
具体传输数据时,可以根据各个数据包头部中的数据序列号,确定各个数据包的发送顺序,之后采用流水线传输方式,按照该发送顺序依次发送数据包到数据传输通道上进行传输。进一步地,为了使每个数据包都可以被第二设备接收到,本发明实施例采用多通道传输方式,即将每个数据包通过多个数据传输通道传输给第二设备。其中,多个数据传输通道包括Wi-Fi、4G、5G、有线光缆(仅存在于车端设备相互连接)等。
如图1所示,将数据包1、数据包2和数据包3分别通过上述四个数据传输通道传输给第二设备,当某个数据传输通道传输失败时,其他数据传输通道也可以将数据包传输给第二设备,从而能够保证第二设备(接收端)所接收数据的完整性。
步骤104、当接收到所述第二设备反馈的提示数据包时,采用重传机制,向所述第二设备重新传输所述丢失的数据包。
对于本发明实施例,当第二设备(接收端)发现数据包丢失时,第二设备会立刻发送反馈信息(提示数据包)给第一设备(接收端),第一设备基于该反馈信息,会重新传输丢失的数据包。具体地,第一设备在接收到第二设备反馈的提示数据包后,会根据该提示数据包中提供的数据序列号和时间戳等信息来确定丢包数据的位置,并自动启动重传机制,向第二设备重新传送丢失的数据包。
在此本发明实施例采用滑动窗口的方式重新传送数据,滑动窗口是一种用于协调数据包传输的技术,在数据传输中可以有效地减少传输时间和数据包丢失的情况。在进行数据传输时,如果第二设备(接收端)正确地接收到数据包,则会向第一设备(发送端)发送确认数据包,此时第一设备会将窗口向前滑动一个单位,发送下一个数据包;如果第二设备没有正确地接收到数据包,则会向第一设备发送提示数据包,此时第一设备会重新传输该数据包,并等待第二设备的确认信息。
基于此,所述方法还包括:当接收到所述第二设备反馈的提示数据包时,根据所述提示数据包中的数据序列号和时间戳,将滑动窗口定位至所述丢失的数据包,并向所述第二设备重新传输所述丢失的数据包;当接收到所述第二设备反馈的确认数据包时,根据所述确认数据包中第二设备的缓冲区大小,确定滑动窗口的左右边界;基于所述左右边界,移动所述滑动窗口,并将移动后的滑动窗口所指向的数据包发送给所述第二设备。
下面以举例的方式详细说明基于滑动窗口进行数据重传的过程,如图4和图5所示。
假设发送缓冲区是一个大数组,数组的每一个位置以字节为单位。现将发送缓冲区分为三个部分:第一部分0~1000字节是存放已经发送且已被正确接收的数据;第二部分1001~4000字节是存放准备发送或者已经发送但没有被正确接收的数据;第三部分4001~5000字节是存放尚未发送的数据(短时间内不会发送)。第一设备(发送端)将1001~4000字节中的数据分三批发送,即1001~2000、2001~3000和3001~4000,当第一设备接收到1001~2000字节中数据的确认数据包时,此时滑动窗口的左边界向右移动1000个字节,如果确认数据包中的字段表明第二设备的接收缓冲区剩余空间为500个字节,则说明第一设备还能再发500字节,此时滑动窗口的有边界向右移动500字节,即滑动窗口主要是根据是否接收到确认数据包,以及第二设备缓冲区的大小来移动左右边界。进一步地,当第一设备接收到1001~2000字节中数据的提示数据包时,此时滑动窗口不进行移动,指针继续指向1001~2000字节中的数据,并将其重新传输给第二设备。
进一步地,为了方便第二设备验证接收的数据是否存在错误,第一设备还可以计算每个数据段的CRC检验码,并将其添加到对应的数据包中,传输给第二设备,在第二设备接收到该数据包并进行解析后,可以根据接收的数据段重新计算CRC校验码,如果计算的CRC检验码与携带的CRC检验码一致,则说明第二设备接收的数据正确,此时第二设备会向第一设备反馈确认数据包,第一设备接收到该确认数据包后会继续发送下一个数据包;如果计算的CRC检验码与携带的CRC检验码不一致,则说明第二设备接收的数据不正确,此时第二设备会向第一设备反馈提示数据包,第一设备接收到该提示数据包后会重新发送该数据包,以确保第二设备接收到的数据正确。
本发明实施例提供的一种智能网联汽车异构设备之间的数据传输方法,通过对第一设备的待传输数据进行分包处理,并将多个数据包发送给第二设备,由第二设备对多个数据包进行数据完整性验证,能够避免在数据传输过程中出现数据丢包的情况,从而能够保证智能网联汽车异构设备之间数据传输的可靠性,降低了数据丢失的风险,与此同时,本发明实施例通过采用多个数据传输通道向第二设备传输数据包,能够进一步保证数据在传输过程中的完整性。
进一步地,本发明实施例提供了一种智能网联汽车异构设备之间的数据传输方法,应用于智能网联汽车异构设备中的第二设备,如图6所示,该方法包括:
步骤201、依次接收所述第一设备发送的多个数据包。
其中,所述第一设备用于采用分包协议对待传输数据进行分包处理,得到多个数据包,其中,每个数据包的头部中均包括数据长度字段、数据序列号字段和时间戳字段;基于多个数据传输通道,将所述多个数据包依次发送给第二设备。
对于本发明实施例,由于第一设备在向第二设备传输数据时,针对每个数据包,采用多个数据传输通道进行数据传输,因此会存在数据重复的问题了,为了避免数据重复带来的影响,本发明实施例需要对接收的数据包进行数据去重。基于此,所述方法包括:对所述多个数据包分别进行解析,得到所述多个数据包分别对应的数据序列号和数据段;基于所述数据序列号和所述数据段,对任意相邻两次接收的数据包进行去重处理,得到多个去重后的数据包。
具体地,对于每个接收到的数据包,第二设备(接收端)需要使用缓存管理机制,记录数据包中的数据序列号和数据内容。当接收到新的数据包时,第二设备可以通过对比缓存中已有的数据序列号和数据内容来判断是否存在重复,如果重复,则可以忽略这个数据包,避免重复处理造成不必要的资源浪费。
进一步地,第二设备通过对接收的数据包进行解析,还能够获取数据包中的时间戳,基于该时间戳,第二设备能够计算出数据包的传输时延,从而能够优化或调整整个数据传输过程中的延迟问题。
步骤202、根据所述多个数据包分别对应的数据序列号,对所述多个数据包进行数据完整性验证。
对于本发明实施例,第二设备(接收端)在对数据进行去重后,还需要根据数据包中的数据序列号,进行数据完整性验证,以避免在数据传输过程中出现丢包的现象。基于此,步骤202具体包括:判定所述多个去重后的数据包的数据序列号是否相连续;如果所述多个去重后的数据包的数据序列号相连续,则确定所述多个去重后的数据包通过数据完整性验证,不存在数据包丢失的情况;如果所述多个去重后的数据包的数据序列号不连续,则确定所述多个去重后的数据包未通过数据完整性验证,存在数据包丢失的情况。
具体地,由于第一设备(发送端)在数据包头部中添加了数据序列号,因此第二设备(接收端)在接收到数据包后可以对数据序列号进行验证,以确定数据是否完整。具体验证时,如果第二设备发现数据序列号相连续,则说明不存在数据包丢失的情况;如果第二设备发现数据序列号不连续,则说明存在数据包丢失的情况,此时需要向第一设备反馈丢失信息。
步骤203、若根据数据完整性验证结果确定存在数据包丢失的情况,则基于丢失的数据包对应的数据序列号和时间戳,构建提示数据包。
对于本发明实施例,在确定存在数据丢包的情况时,第二设备会根据丢失数据包的数据序列号和时间戳等信息,构建一个提示数据包,以方便第一设备后续处理。
步骤204、将所述提示数据包反馈给第一设备,以便所述第一设备采用重传机制,向所述第二设备重新传输丢失的数据包。
对于本发明实施例,第二设备在构建完提示数据包后,会将该提示数据包反馈给第一设备,第一设备在接收到提示数据包后,根据该提示数据包中的数据序列号和时间戳,能够定位到丢失的数据包,之后采用重传机制或者切换数据传输通道重新发送丢失的数据包。
进一步地,为了保证传输数据的准确性,第二设备在接收到数据包并对其进行解析之后,获取数据包中携带的CRC检验码,同时根据数据包中的数据段重新计算CRC校验码,并将计算的CRC校验码与携带的CRC校验码进行比对,如果计算的CRC检验码与携带的CRC检验码一致,则说明第二设备接收的数据正确,此时第二设备会向第一设备反馈确认数据包,第一设备接收到该确认数据包后会继续发送下一个数据包;如果计算的CRC检验码与携带的CRC检验码不一致,则说明第二设备接收的数据不正确,此时第二设备会向第一设备反馈提示数据包,第一设备接收到该提示数据包后会重新发送该数据包,以确保第二设备接收到的数据正确。
本发明实施例提供的另一种智能网联汽车异构设备之间的数据传输方法,通过对第一设备的待传输数据进行分包处理,并将多个数据包发送给第二设备,由第二设备对多个数据包进行数据完整性验证,能够避免在数据传输过程中出现数据丢包的情况,从而能够保证智能网联汽车异构设备之间数据传输的可靠性,降低了数据丢失的风险,与此同时,本发明实施例通过采用多个数据传输通道向第二设备传输数据包,能够进一步保证数据在传输过程中的完整性。
进一步地,作为图1的具体实现,本发明实施例提供了一种智能网联汽车异构设备之间的数据传输装置,如图7所示,所述装置包括:获取单元31、分包单元32、发送单元33和重传单元34。
所述获取单元31,可以用于获取所述第一设备的待传输数据。
所述分包单元32,可以用于采用分包协议对所述待传输数据进行分包处理,得到多个数据包,其中,每个数据包的头部中包括数据长度字段、数据序列号字段和时间戳字段。
所述发送单元33,可以用于基于多个数据传输通道,将所述多个数据包依次发送给第二设备,其中,所述第二设备用于根据所述多个数据包分别对应的数据序列号,对所述多个数据包进行数据完整性验证;若根据数据完整性验证结果确定存在数据包丢的情况,则基于丢失的数据包对应的数据序列号和时间戳,构建提示数据包。
所述重传单元34,可以用于当接收到所述第二设备反馈的提示数据包时,采用重传机制,向所述第二设备重新传输所述丢失的数据包。
在具体应用场景中,所述分包单元32,可以具体用于采用分包协议对所述待传输数据进行拆分,得到多个数据段;分别为所述多个数据段添加数据长度字段、序列号字段和时间戳字段,得到多个数据包;所述基于多个数据传输通道,将所述多个数据包依次发送给第二设备,包括:将每个数据包采用所述多个数据传输通道传输给所述第二设备。
在具体应用场景中,所述发送单元33,可以具体用于将每个数据包采用所述多个数据传输通道传输给所述第二设备。
在具体应用场景中,所述重传单元34,可以具体用于当接收到所述第二设备反馈的提示数据包时,根据所述提示数据包中的数据序列号和时间戳,将滑动窗口定位至所述丢失的数据包,并向所述第二设备重新传输所述丢失的数据包。
进一步地,所述发送单元33,还可以具体用于当接收到所述第二设备反馈的确认数据包时,根据所述确认数据包中第二设备的缓冲区大小,确定滑动窗口的左右边界;基于所述左右边界,移动所述滑动窗口,并将移动后的滑动窗口所指向的数据包发送给所述第二设备。
需要说明的是,本发明实施例提供的一种智能网联汽车异构设备之间的数据传输装置所涉及各功能模块的其他相应描述,可以参考图1所示方法的对应描述,在此不再赘述。
基于上述如图1所示方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:获取所述第一设备的待传输数据;采用分包协议对所述待传输数据进行分包处理,得到多个数据包,其中,每个数据包的头部中包括数据长度字段、数据序列号字段和时间戳字段;基于多个数据传输通道,将所述多个数据包依次发送给第二设备,其中,所述第二设备用于根据所述多个数据包分别对应的数据序列号,对所述多个数据包进行数据完整性验证;若根据数据完整性验证结果确定存在数据包丢的情况,则基于丢失的数据包对应的数据序列号和时间戳,构建提示数据包;当接收到所述第二设备反馈的提示数据包时,采用重传机制,向所述第二设备重新传输所述丢失的数据包。
基于上述如图1所示方法和如图7所示装置的实施例,本发明实施例还提供了一种电子设备,该电子设备包括:处理器、存储器、及存储在存储器上并可在处理器上运行的计算机程序,其中,存储器和处理器均设置在总线上,所述处理器执行所述程序时实现以下步骤:获取所述第一设备的待传输数据;采用分包协议对所述待传输数据进行分包处理,得到多个数据包,其中,每个数据包的头部中包括数据长度字段、数据序列号字段和时间戳字段;基于多个数据传输通道,将所述多个数据包依次发送给第二设备,其中,所述第二设备用于根据所述多个数据包分别对应的数据序列号,对所述多个数据包进行数据完整性验证;若根据数据完整性验证结果确定存在数据包丢的情况,则基于丢失的数据包对应的数据序列号和时间戳,构建提示数据包;当接收到所述第二设备反馈的提示数据包时,采用重传机制,向所述第二设备重新传输所述丢失的数据包。
进一步地,作为图6的具体实现,本发明实施例提供了一种智能网联汽车异构设备之间的数据传输装置,如图8所示,所述装置包括:接收单元41、验证单元42、构建单元43和反馈单元44。
所述接收单元41,可以用于依次接收所述第一设备发送的多个数据包,其中,所述第一设备用于采用分包协议对待传输数据进行分包处理,得到多个数据包,其中,每个数据包的头部中均包括数据长度字段、数据序列号字段和时间戳字段;基于多个数据传输通道,将所述多个数据包依次发送给第二设备。
所述验证单元42,可以用于根据所述多个数据包分别对应的数据序列号,对所述多个数据包进行数据完整性验证。
所述构建单元43,可以用于若根据数据完整性验证结果确定存在数据包丢失的情况,则基于丢失的数据包对应的数据序列号和时间戳,构建提示数据包。
所述反馈单元44,可以用于将所述提示数据包反馈给第一设备,以便所述第一设备采用重传机制,向所述第二设备重新传输丢失的数据包。
在具体应用场景中,所述装置还包括:去重单元。
所述去重单元,可以用于对所述多个数据包分别进行解析,得到所述多个数据包分别对应的数据序列号和数据段;基于所述数据序列号和所述数据段,对任意相邻两次接收的数据包进行去重处理,得到多个去重后的数据包。
进一步地,所述验证单元42,可以具体用于判定所述多个去重后的数据包的数据序列号是否相连续;如果所述多个去重后的数据包的数据序列号相连续,则确定所述多个去重后的数据包通过数据完整性验证,不存在数据包丢失的情况;如果所述多个去重后的数据包的数据序列号不连续,则确定所述多个去重后的数据包未通过数据完整性验证,存在数据包丢失的情况。
在具体应用场景中,所述装置还可以包括:计算单元。
所述计算单元,可以用于对所述多个数据包分别进行解析,得到所述多个数据包分别对应的时间戳;基于所述时间戳,计算所述多个数据包分别对应的数据传输时延。
需要说明的是,本发明实施例提供的一种智能网联汽车异构设备之间的数据传输装置所涉及各功能模块的其他相应描述,可以参考图6所示方法的对应描述,在此不再赘述。
基于上述如图6所示方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:依次接收所述第一设备发送的多个数据包,其中,所述第一设备用于采用分包协议对待传输数据进行分包处理,得到多个数据包,其中,每个数据包的头部中均包括数据长度字段、数据序列号字段和时间戳字段;基于多个数据传输通道,将所述多个数据包依次发送给第二设备;根据所述多个数据包分别对应的数据序列号,对所述多个数据包进行数据完整性验证;若根据数据完整性验证结果确定存在数据包丢失的情况,则基于丢失的数据包对应的数据序列号和时间戳,构建提示数据包;将所述提示数据包反馈给第一设备,以便所述第一设备采用重传机制,向所述第二设备重新传输丢失的数据包。
基于上述如图6所示方法和如图8所示装置的实施例,本发明实施例还提供了一种电子设备,该电子设备包括:处理器、存储器、及存储在存储器上并可在处理器上运行的计算机程序,其中,存储器和处理器均设置在总线上,所述处理器执行所述程序时实现以下步骤:依次接收所述第一设备发送的多个数据包,其中,所述第一设备用于采用分包协议对待传输数据进行分包处理,得到多个数据包,其中,每个数据包的头部中均包括数据长度字段、数据序列号字段和时间戳字段;基于多个数据传输通道,将所述多个数据包依次发送给第二设备;根据所述多个数据包分别对应的数据序列号,对所述多个数据包进行数据完整性验证;若根据数据完整性验证结果确定存在数据包丢失的情况,则基于丢失的数据包对应的数据序列号和时间戳,构建提示数据包;将所述提示数据包反馈给第一设备,以便所述第一设备采用重传机制,向所述第二设备重新传输丢失的数据包。
本发明实施例通过对第一设备的待传输数据进行分包处理,并将多个数据包发送给第二设备,由第二设备对多个数据包进行数据完整性验证,能够避免在数据传输过程中出现数据丢包的情况,从而能够保证智能网联汽车异构设备之间数据传输的可靠性,降低了数据丢失的风险,与此同时,本发明实施例通过采用多个数据传输通道向第二设备传输数据包,能够进一步保证数据在传输过程中的完整性。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
- 一种智能网联汽车线控制动装置
- 一种数据传输方法、装置、系统、网络设备及用户设备
- 一种智能网联汽车数据传输方法、装置、设备及介质
- 一种智能网联汽车数据传输方法、装置、设备及介质