本申请实施例涉及网络通信,尤其涉及一种数据传输的方法、系统、计算机设备及计算机可读存储介质。
背景技术:
1、在弱网环境下,如果采用tcp协议传输数据,需要通过三次握手的方式来建立连接,这个过程比较繁琐,需要传输多个数据包,因此tcp连接建立的时间较长。在弱网环境下,由于网络延迟和丢包率较高,tcp连接建立时间更长,从而影响网络传输的效率和稳定性;并且由于tcp队头阻塞问题,后续的数据包需要等待前面丢失的数据包重新传输完成到达之后,才能继续传输,大大降低了传输效率;tcp协议对每个数据包采用重传机制来保证数据传输的可靠性,一旦数据包丢失或损坏,tcp协议会重新发送该数据包,但是,在弱网环境下,由于数据包丢失和损坏的情况比较常见,tcp协议的重传机制会导致数据传输的延迟增加,从而影响网络传输的效率。
2、如果采用udp协议,udp协议不提供数据传输的可靠性保证,一旦数据包丢失或损坏,udp协议不会进行重传,而是直接丢弃该数据包。在弱网环境下,由于网络延迟和丢包率较高,直接丢弃数据包会导致数据传输的可靠性较低。
技术实现思路
1、本申请实施例的目的是提供一种数据传输的方法、系统、计算机设备及计算机可读存储介质,用于解决以下问题:如何在提高弱网环境下数据传输的效率的同时保证所数据传输的可靠性。
2、本申请实施例的一个方面提供了一种数据传输的方法,应用于发送端,所述发送端与接收端建立基于quic协议的连接,所述基于quic协议的连接包含不可靠传输流,所述方法包括:
3、根据待传输的多个原始数据生成冗余数据;其中,所述冗余数据用于恢复所述多个原始数据;
4、对所述多个原始数据和冗余数据进行封装,得到基于quic协议的数据报文;
5、通过所述不可靠传输流,将所述基于quic协议的数据报文传输至所述接收端。
6、可选地,所述根据所述多个原始数据生成冗余数据,包括:
7、基于预设的fec算法,根据所述多个原始数据生成冗余数据。
8、可选地,所述对所述多个原始数据和冗余数据进行封装,得到基于quic协议的数据报文,包括:
9、在所述多个原始数据和冗余数据中封装基于预设协议的头部数据;所述基于预设协议的头部数据包含fec算法类型字段;
10、根据所述预设的fec算法配置所述fec算法类型字段,得到基于quic协议的数据报文。
11、可选地,所述基于预设协议的头部数据还包含fec组号字段,可恢复数据包数字段和fec序号字段。
12、可选地,所述对所述原始数据和冗余数据进行封装,得到基于quic协议的数据报文,还包括:
13、在所述原始数据和冗余数据中封装基于udp协议的头部数据和基于quic协议的头部数据。
14、本申请实施例的一个方面又提供了一种数据传输的方法,应用于接收端,所述接收端与发送端建立基于quic协议的连接,所述基于quic协议的连接包含不可靠传输流,所述方法包括:
15、通过所述不可靠传输流,接收所述发送端传输的基于quic协议的数据报文;
16、解析所述基于quic协议的数据报文,得到多个原始数据和冗余数据;
17、在所述多个原始数据存在缺失的情况下,根据所述冗余数据对所述多个原始数据进行恢复处理。
18、可选地,解析所述基于quic协议的数据报文还得到基于预设协议的头部数据;所述基于预设协议的头部数据包含fec算法类型字段;
19、所述根据所述冗余数据对所述多个原始数据进行恢复处理,包括:
20、根据所述fec算法类型字段确定目标fec算法;
21、基于所述目标fec算法,根据所述冗余数据对所述多个原始数据进行恢复处理。
22、可选地,所述基于预设协议的头部数据还包含可恢复数据包数字段;所述基于所述目标fec算法,根据所述冗余数据对所述多个原始数据进行恢复处理,包括:
23、若根据所述可恢复数据包数字段确定所述多个原始数据满足恢复条件,则基于所述目标fec算法,根据所述冗余数据对所述多个原始数据进行恢复处理;
24、若根据所述可恢复数据包数字段确定所述多个原始数据不满足恢复条件,则重新从所述发送端获取所述基于quic协议的数据报文。
25、可选地,所述基于预设协议的头部数据还包含fec组号字段和fec序号字段;在所述解析所述基于quic协议的数据报文,得到多个原始数据和冗余数据的步骤之后,所述方法还包括:
26、根据所述fec组号字段和fec序号字段,判断所述多个原始数据是否存在缺失。
27、可选地,所述的方法还包括:
28、在所述多个原始数据不存在缺失的情况下,丢弃所述冗余数据。
29、本申请实施例的一个方面又提供了一种数据传输的系统,包括发送端和接收端,所述发送端与接收端建立基于quic协议的连接,所述基于quic协议的连接包含不可靠传输流,其中,
30、所述发送端用于,根据待传输的多个原始数据生成冗余数据;其中,所述冗余数据用于恢复所述多个原始数据;对所述多个原始数据和冗余数据进行封装,得到基于quic协议的数据报文;通过所述不可靠传输流,将所述基于quic协议的数据报文传输至所述接收端;
31、所述接收端用于,通过所述不可靠传输流,接收所述发送端传输的基于quic协议的数据报文;解析所述基于quic协议的数据报文,得到多个原始数据和冗余数据;在所述多个原始数据存在缺失的情况下,根据所述冗余数据对所述多个原始数据进行恢复处理。
32、本申请实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的数据传输的方法的步骤。
33、本申请实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行所述计算机程序时实现如上述的数据传输的方法的步骤。
34、本申请实施例提供的数据传输的方法、系统、设备及计算机可读存储介质,通过根据待传输的多个原始数据生成冗余数据;其中,所述冗余数据用于恢复所述多个原始数据;对所述多个原始数据和冗余数据进行封装,得到基于quic协议的数据报文;通过所述不可靠传输流,将所述基于quic协议的数据报文传输至所述接收端。从而利用quic协议连接的不可靠传输流传输数据,这些数据不仅包含原始数据,还包含根据需要传输的原始数据产生的冗余数据,若网络传输时出现数据丢包,接收端可通过冗余数据恢复出原始数据,不用通过重传机制,就可以得到丢失的数据包,提升网络传输的效率和稳定性。
1.一种数据传输的方法,其特征在于,应用于发送端,所述发送端与接收端建立基于quic协议的连接,所述基于quic协议的连接包含不可靠传输流,所述方法包括:
2.根据权利要求1所述的数据传输的方法,其特征在于,所述根据所述多个原始数据生成冗余数据,包括:
3.根据权利要求2所述的数据传输的方法,其特征在于,所述对所述多个原始数据和冗余数据进行封装,得到基于quic协议的数据报文,包括:
4.根据权利要求3所述的数据传输的方法,其特征在于,所述基于预设协议的头部数据还包含fec组号字段,可恢复数据包数字段和fec序号字段。
5.根据权利要求3所述的数据传输的方法,其特征在于,所述对所述原始数据和冗余数据进行封装,得到基于quic协议的数据报文,还包括:
6.一种数据传输的方法,其特征在于,应用于接收端,所述接收端与发送端建立基于quic协议的连接,所述基于quic协议的连接包含不可靠传输流,所述方法包括:
7.根据权利要求6所述的数据传输的方法,其特征在于,解析所述基于quic协议的数据报文还得到基于预设协议的头部数据;所述基于预设协议的头部数据包含fec算法类型字段;
8.根据权利要求7所述的数据传输的方法,其特征在于,所述基于预设协议的头部数据还包含可恢复数据包数字段;所述基于所述目标fec算法,根据所述冗余数据对所述多个原始数据进行恢复处理,包括:
9.根据权利要求7所述的数据传输的方法,其特征在于,所述基于预设协议的头部数据还包含fec组号字段和fec序号字段;在所述解析所述基于quic协议的数据报文,得到多个原始数据和冗余数据的步骤之后,所述方法还包括:
10.根据权利要求6所述的数据传输的方法,其特征在于,所述的方法还包括:
11.一种数据传输的系统,其特征在于,包括发送端和接收端,所述发送端与接收端建立基于quic协议的连接,所述基于quic协议的连接包含不可靠传输流,其中,
12.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1至5或6至10中任意一项所述的数据传输的方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行权利要求1至5或6至10中任意一项所述的数据传输的方法的步骤。