CN114500672A - 数据传输方法及系统 - Google Patents
数据传输方法及系统 Download PDFInfo
- Publication number
- CN114500672A CN114500672A CN202210073698.4A CN202210073698A CN114500672A CN 114500672 A CN114500672 A CN 114500672A CN 202210073698 A CN202210073698 A CN 202210073698A CN 114500672 A CN114500672 A CN 114500672A
- Authority
- CN
- China
- Prior art keywords
- data
- data packet
- target
- packet
- protocol header
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 92
- 238000000034 method Methods 0.000 title claims abstract description 86
- 230000004044 response Effects 0.000 claims description 50
- 238000012545 processing Methods 0.000 claims description 23
- 238000009432 framing Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 18
- 230000014759 maintenance of location Effects 0.000 claims description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供一种数据传输方法及系统,涉及电子信息技术领域,能够解决数据在弱网环境下传输效率低的问题。具体技术方案为:发送端在获取目标视频后,根据预设规则和传输资源对该目标视频进行划分处理,获取至少一个数据包,并根据预设传输协议,确定每个数据包的协议头,通过该协议头标注数据包后,生成编码数据并发送。本公开用于数据传输。
Description
技术领域
本公开涉及电子信息技术领域,尤其涉及数据传输方法及系统。
背景技术
视频和音频数据对传输的实时性和可靠性要求较高,相关技术中,视频和音频数据可以基于TCP协议(Transmission control Protocol,传输控制协议)实现传输。但是在广域网的弱网环境下,因网络传输资源的限制,传输带宽也会有限制,从而导致视频传输时延时增大,在这种情况下若出现丢包,现有的传输算法效果不好,影响视频的流畅度,导致TCP协议在弱网环境下数据传输效率并不高。
发明内容
本公开实施例提供一种数据传输方法及系统,能够解决数据在弱网环境下传输效率低的问题。所述技术方案如下:
根据本公开实施例的第一方面,提供一种数据传输方法,应用于发送端,该方法包括:
获取目标视频,及传输该目标视频时的网络资源;
根据预设算法和该网络资源,拆分该目标视频为至少一组数据包,并根据预设传输协议,为每组数据包分配目标协议头,该目标协议头包括扩展协议头,该扩展协议头至少用于请求接收端接收到数据包时,发送响应信息;
通过每组数据包对应的目标协议头标记每组数据后,编码处理生成目标编码数据,并向接收端发送,以使得在传输目标编码数据过程中发生丢包事件时,根据该目标协议头,重新传输丢失的数据包。
在一个实施例中,该方法中的目标协议头还包括第一协议头和第二协议头;
该第一协议头至少包括预设传输协议的标识信息;
该第二协议头至少包括拆包标识信息和数据包类型;
其中,该拆包标识信息至少包括:帧序列号、帧序列中的子序列号、帧开头标识信息和帧结尾标识信息;
其中,该数据包的类型至少包括:事件类型的数据、紧急类型的数据、可靠类型的数据、不可靠类型的数据及弱类型的数据。
在一个实施例中,该方法还包括:
将该至少一个数据包依次存储进数据缓存区域;
当数据缓存区域的数据超过预设阈值时,根据该目标数据包对应的数据包类型,对该目标数据包进行编码处理;
其中,该对目标数据包进行编码处理,包括:
当该数据缓存区域中包括紧急类型的数据和其他类型的数据时,则优先编码该紧急类型的数据;
或,
当该数据缓存区域中包括可靠类型的数据和不可靠类型的数据时,则优先编码该可靠类型的数据,或者当传输资源无法满足传输完毕所有类型数据时,则不编码该不可靠类型数据;
或,
当该数据缓存区域中包括弱类型的数据和其他类型的数据时,则最后编码该弱类型的数据,或者当传输资源无法满足传输完毕所有类型数据时,则删除该弱类型数据。
在一个实施例中,该方法中的该扩展协议头,包括:
该数据包的发送时间戳、目标序列号和请求信息,该目标序列号包括帧序列号和帧序列中的子序列号,该请求信息该请求信息用于请求接收端根据接收到的数据包和预设传输协议,发送响应信息。
在一个实施例中,该方法还包括:
当发送完毕数据包的编码数据后,获取接收端发送数据包响应信息,该响应信息包括数据包的序列号和接收时间戳;
根据该数据包的序列号,在待重传数据列表中确定待重传的目标数据包;
获取该目标数据包的发送时间戳和序列号,计算该目标数据包的重传超时时间;
根据该接收时间戳和发送时间戳,获取目标数据包在发送端的停留时间;
若目标数据包的停留时间大于重传超时时间,则重新传输该目标数据包。
在一个实施例中,该方法还包括:
获取接收端发送的多个数据包的ACK信息,其中数据包至少包括第一数据包和第二数据包,第一数据包括第一接收时间戳,第二数据包括第二接收时间戳,第一数据包的序列号早于第二数据包的序列号;
获取第二接收时间与第一接收时间戳的时间差值;
当该时间差值大于预设阈值时,则确定第一数据包丢失,并重新传输第一数据包。
根据本公开实施例的第二方面,提供一种数据传输方法,应用于接收端,包括:
获取目标编码数据,该目标编码数据包括至少一个数据包和数据包相匹配的协议头,该协议头至少包括扩展协议头,该扩展协议头至少用于请求接收端接收到数据包时,发送响应信息;
解码处理该目标编码数据,获取至少一个数据包;
根据该扩展协议头,生成该数据包的响应信息,并向发送端发送该响应信息,以使得当发生丢包事件时,根据响应信息,重新获取数据包,其中响应信息包括UNA信息或ACK信息;
根据协议头对该至少一个数据包进行组帧处理,获取目标视频。
在一个实施例中,该方法中的协议头至少包括拆包标识信息,该拆包标识信息至少包括:帧序列号、帧序列中的子序列号、帧开头标识信息和帧结尾标识信息;
根据该拆包标识信息,对该至少一个数据包依次进行组帧处理;
其中,该组帧处理包括:
根据该帧序列号确定该数据包所匹配的视频帧;
根据该帧序列中的子序列号,确定该数据包在该序列中的排序;
根据该帧开头标识信息确定数据包是否为帧开头;
根据该帧结尾标识信息确定数据包是否为帧结尾;
依次组帧帧视频中的第一个数据包至最后一个数据包。
在一个实施例中,该方法还包括:
根据已解码处理的数据包和协议头,确定该数据包相匹配的序列号和接收时间戳;
根据该序列号和接收时间戳,生成该数据包的响应信息,并发送。
根据本公开实施例的第三方面,提供一种数据传输系统,该系统包括:发送端和接收端;
该发送端,用于执行本公开实施例第一方面该的方法;
该接收端,用于执行本公开实施例第二方面该的方法。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开实施例提供的一种数据传输方法的流程图1;
图2是本公开实施例提供的一种数据传输方法的流程图2;
图3是本公开实施例提供的一种数据传输系统的结构图;
图3a是本公开实施例提供的一种数据传输系统中发送端的结构图;
图3b是本公开实施例提供的一种数据传输装置中接收端的结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开实施例提供一种数据传输方法,如图1所示,该数据传输方法应用于发送端,其中发送端可以是终端设备或软件模块等,该数据传输方法包括以下步骤:
101、获取目标视频,及传输该目标视频时的网络资源。
该网络资源包括传输该目标视频时的丢包率。
通过获取传输该目标视频时的网络资源,能够确定目标视频的拆分规则,从而实现数据传输与网络资源相匹配,提高传输效率。
102、根据预设算法,拆分该目标视频为至少一组数据包,并根据预设传输协议,为每组数据包分配目标协议头。
该目标协议头包括扩展协议头,该扩展协议头至少用于请求接收端接收到数据包时,发送响应信息。本公开可以根据接收端的响应信息确定是否发生丢包事件。
本公开所提及拆分目标视频的预设算法可以是FEC算法(前向性纠错技术),所用的FEC算法是基于伽罗华域矩阵的异或运算丢包恢复算法。具体的该算法:将所要发送的数据包分成定长分组,将每组数据包逐字节进行异或运算得到冗余包。最终的恢复能力和冗余度有关。
本公开所提供的方法中会根据视频帧的参数与网络传输资源,对视频帧进行拆帧处理,并通过协议头标记拆帧处理后的数据包,从而便于接收端解码处理编码数据获取数据包后,根据协议头组帧数据包恢复目标视频。
在具体实施的过程中,本公开所提供的方法所提供的视频帧发送缓冲区会保证视频帧数据播放时长不超过特定时长,或者视频帧数不超过特定个数,如20帧,从而保证低延时。
当视频帧的发送缓冲区中的帧存储量超过预设的阈值后,会根据编码器的编码策略对超过时延的帧进行选择性的删除,以保证该缓冲区里的数据都是可以解码的。
本公开所提供的方法中,在拆分目标视频后,根据预设传输协议,确定每个数据包对应的协议头。
在可选实施例中,本公开所提供方法中的协议头包括第一协议头、第二协议头和扩展协议头。
第一协议头用于指示传输协议,该第一协议头至少包括协议标识信息,该协议的标识信息用于指示该协议的参数,例如协议的标识信息用于标识VMTL协议。具体的,VMTL协议除了支持通用的UDP和TCP之外,还可以支持ARQ协议。
第二协议头用于指示数据包的参数,该第二协议头至少包括拆包标识信息和数据包的数据类型;
该拆包标识信息用于指示视频的拆包策略,该拆包标识信息至少包括:帧序列号、帧序列中的子序列号、帧开头标识信息和帧结尾标识信息;
该数据包类型用于指示该数据包的传输策略,数据包的类型至少包括:事件类型的数据、紧急类型的数据、可靠类型的数据、不可靠类型的数据及弱类型的数据。
在可选实施例中,第二协议头的还可以包括以下字符段:profile、checksum、extension、sub_type等字段,具体的
上述profile为配置保留字段,占6位,初始设置为0。
上述checksum标示是否开启校验和,占用1位。当其值为1时表示开启,0关闭。
上述extension标示是否开启校验和,占用1位。当其值为1时1开启,0关闭。
上述resend标示该数据包是否为重传数据,占用1位。当其值为1时表示需要重传,0不是。
上述b字段标示该数据包是否为一帧的开头,占用1位。当其值为1时表示是帧开头,0不是。
上述e标示该数据包是否为一帧的结尾,占用1位。当其值为1时表示是帧结尾,0不是。
上述type字段标示该数据包的帧传输类型,占用3位。
上述sub_type标示该数据包的子类型,用于透传到对端,占用1个字节。比如,kReliable类型的数据可以传输子类型为0的数据,也可以传输子类型为1的数据,发送端和接收端自定义去区分不同的数据类型。fsn数据帧的序列号,占用两个字节。范围0-65535,从0开始累积,到65535后,从0继续开始。
上述Len信息,表示小包的数据长度,占用两个字节。
上述Ssn信息表示:数据帧拆分成小包后的序列号。占用4个字节,范围0-4294967295,从0开始累积,到4294967295后,从0继续开始。
该size标识数据帧长度,占用4个字节。
进一步的,本公开在分配序列号时,由于所有视频帧使用统一序列号ssn,则下一个小包的序列号为前一个小包序列号加1。根据此条件可以判断传输过程中有无小包丢失。
若在传输过程中若某个小包丢失,为了保证视频帧的完整性,需要将该视频帧对应的所有小包都丢弃。
进一步的,上述该数据包的类型,具体有以下5种数据类型:Event事件类型、Urgent紧急类型、Reliable可靠类型、UnReliable不可靠类型、Weak弱类型。
Event类型数据用于指示做S和R之间的信令交互,在数据传输时,该类型数据在可以设置为高优先级传输。
Urgent类型数据,用于指示紧急类型的数据,可用于重置或者废弃发送端缓存中的数据,例如,在数据传输时,在进入缓存模块后,会清空S端缓冲区中的Urgent、Reliable、UnReliable类型数据。
Reliable类型数据用于指示可靠类型的数据,例如,在数据传输时,在进入缓存模块后,在无Urgent类型的数据数据进入时,会可靠的传到R端;又例如,在丢包事件发生时,需要重新进行传输可靠类型的数据。
UnReliable类型数据用于指示不可靠类型的数据,例如,在数据传输时,在进入缓存模块后,在发送队列满的情况下,会优先考虑删除不可靠类型的数据。
Weak类型数据例如,在数据传输时,在Urgent类型或Reliable类型或UnReliable类型之一的数据进入缓存模块后,在发送队列满的情况下,会优先考虑删除会弱类型数据,又例如,在丢包事件发生时,若网络资源有限时,则弱类型数据则无需发送。
本公开所提供的方法会根据协议头标识拆包策略,此处列举如何根据拆包结果分配帧开头:
以视频帧为例,当发送端要发送视频帧之前,根据传输通道的MTU对视频帧进行拆分。视频帧被拆分成小包后,按照协议头的定义对小包的协议头字段进行填充。
在具体的实施过程中,可以根据数据包通用头的数据包长度fsn、数据包的序列号ssn、be三个字段可以完成数据帧的拆帧和组帧功能。
当该目标视频拆份为1个数据包即完整的视频时,标记该拆包标识信息为第一阈值,如设置be字段为11;
当该目标视频拆份为M个数据包时,标记其中第一个数据包对应的该拆包标识信息指示为第二阈值,如设置be字段为10。
当该目标视频拆份为M个数据包时,标记其中中间的非头非尾该拆包标识信息指示为第三阈值,如设置be字段为00;
当该目标视频拆份为M个数据包时,标记其中最后一个数据包对应的该拆包标识信息指示为第四阈值,如,设置be字段设置为01。
针对于fsn表示帧序号,ssn表示拆分后的小包序号,当数据帧过来后fsn原样填充,ssn填充规则如下:
由于所有视频帧使用统一序列号ssn,则下一个小包的序列号为前一个小包序列号加1。根据此条件可以判断传输过程中有无小包丢失。
本公开所提供的方法在编码处理数据包时,还会根据不同类型的数据包进行不同的编码处理:
若在传输过程中若某个小包丢失,为了保证视频帧的完整性,需要将该视频帧对应的所有小包都丢弃。在可选实施例中,该数据包的类型包括:事件类型的数据、紧急类型的数据、可靠类型的数据、不可靠类型的数据及弱类型的数据,从而能够实现根据不同的数据类型,执行相匹配的传输策略,具体的处理步骤包括:
将该至少一个数据包依次存储进数据缓存区域;
当数据缓存区域的数据超过预设阈值时,根据该目标数据包对应的数据包类型,对该目标数据包进行不同的编码处理;
其中,该对目标数据包进行编码处理,包括:
当该数据缓存区域中包括紧急类型的数据和其他类型的数据时,则优先编码该紧急类型的数据;
或,
当该数据缓存区域中包括可靠类型的数据和不可靠类型的数据时,则优先编码该可靠类型的数据,或者当传输资源无法满足传输完毕所有类型数据时,则不编码该不可靠类型数据;
或,
当该数据缓存区域中包括弱类型的数据和其他类型的数据时,则最后编码该弱类型的数据,或者当传输资源无法满足传输完毕所有类型数据时,则删除该弱类型数据。
本公开通过设置不同类型的数据包,并根据不同类型的数据包采取不同的数据编码策略,基于这种数据编码策略,在弱网环境下,若发送端帧缓冲出现数据累积时,在保证发送视频帧可解码性的前提下,从而能够根据编码策略对视频帧进行删除,实现了视频帧的发送端堆积性最少,保证发出去的数据延时性都是最低的可被接收端解码的数据。有效提高视频帧的实时性。
在可续实施例中,本公开中的协议头中还提供了扩展协议头,具体的该扩展协议头可以是ARQ扩展头,其中ARQ是指:Automatic Repeat Request,自动重复请求协议。在协议中,发送方在准备下一个数据项目之前先等待一个肯定的确认。
在可选实施例中,若协议头中的协议类型可以通过设置标识位,表示是否指示支持ARQ协议。具体的,例如有标示头中的protocol区分,若protocol为3,则表明使用ARQ协议。
103、通过每组数据包对应的目标协议头标记每组数据后,编码处理生成目标编码数据,并向接收端发送。
本公开通过该目标协议头请求接收端在接收到数据后,发送响应信息,从而使得在传输目标编码数据过程中发生丢包事件时,根据该协议头,重新传输丢失的数据包。
本公开通过该拓展协议头请求接收端发送响应信息,具体的,响应信息包括UNA信息和ACK信息。
本公开还可以通过该响应信息判断是否丢包以及需要重新传输的数据包,具体的包括:
示例一:
当发送完毕数据包的编码数据后,获取接收端发送数据包响应信息,该响应信息包括数据包的序列号和接收时间戳;
根据该数据包的序列号,在待重传数据列表中确定待重传的目标数据包;
获取该目标数据包的发送时间戳和序列号,计算该目标数据包的重传超时时间;
根据该接收时间戳和发送时间戳,获取目标数据包在发送端的停留时间;
若目标数据包的停留时间大于重传超时时间,则重新传输该目标数据包。
在实际应用时,当S端收到R端发送的ACK后,首先删除重传队列中arq_ssn小于una的数据包,例如,收到了una信息中序列号为5的确认包,则删除队列中序列号从0至4的数据包,收到了ack信息中序列号为6的确认包,只删除序列号为6的数据包,
然后根据预设算法,数据包的序列号arq_ssn和发送时间戳ts,计算出数据包对应的重传超时时间rto。
其中,上述重传超时时间的计算过程可以包括:
其中,arq_ssn的rtt为当前时间-对应ts。
SEGMENT_SEND_ACK_INTERVAL=5,MIN_RTO=10,MAX_RTO=1000,单位为ms。
若重传队列中的数据包的停留时间超过数据包的重传超时时间rto则进行超时重传,然后重置计时。为了更快的检测丢包进行重传,同时支持快速重传策略。
示例二:
获取接收端发送的多个数据包的ACK信息,其中数据包至少包括第一数据包和第二数据包,第一数据包括第一接收时间戳,第二数据包括第二接收时间戳,第一数据包的序列号早于第二数据包的序列号;
获取第二接收时间与第一接收时间戳的时间差值;
当该时间差值大于预设阈值时,则确定第一数据包丢失,并重新传输第一数据包。
在具体的实施过程中,当接收到的ACK信息中有某个数据包的序列号已经大于重传队列中的某个序列号则说明该数据包已经丢失,进行重传,
基于上述的处理策略,本公开所公开的视频帧的传输基于UDP的可靠传输,通过使用UNA+ACK实现丢包重传,以牺牲少部分上行带宽,换取丢包的快速检测,减少丢包的重传时间。
在丢包重传过程中,本公开通过计算重传超时时间和快速重传的方式,进一步减少数据包的重传的时间。
本公开所实现的可靠传输在理想网络下,可达到TCP水平。及时在弱网环境下,本公开所提供的传输方法的传输效果与现有技术中通过TCP算法进行传输相比有更好的实时性。
本公开所提供的方法中,会通过传输协议,使得接收端在收到数据时,会生成与该数据对应的ACK信息发送到发送端,其中ACK信息包括接收时间戳和该数据的序列号,其中,ACK信息是指网络数据包应答方式,表示该编号的数据包已经收到。
发送端可以根据接收到该数据包的ACK信息,确定在发送目标视频的过程中是否发生丢包事件。
本公开实施例提供的数据传输方法,发送端在获取目标视频后,根据预设规则和传输资源对该目标视频进行划分处理,获取至少一个数据包,并根据预设传输协议,确定每个数据包的协议头,通过该协议头标注数据包后,生成编码数据并发送。
具体的,本公开所提供的协议头至少包括编码策略、拆帧策略和重发策略;
编码策略是通过标注每个数据包的类型,从而在资源紧张时,根据不同数据类型的优先级进行编码处理;
拆帧策略是通过标注在拆解目标视频的过程中每个数据包的帧序列,从而便于解码端快速的根据数据包组帧生成目标视频。
重发策略是指该协议头能够请求接收端在接收到数据包后发送响应信息,从而确定在数据传输的过程中是否发送丢包事件,以及是否需要重新发送数据。
实施例二
基于上述图1对应的实施例提供的数据传输方法,本公开另一实施例提供一种数据传输方法,该方法可以应用于接收端,例如接收端可以是终端设备或软件模块等。本实施例以发送视频数据为例进行说明,并不代表本公开局限于此。参照图2所示,本实施例提供的数据传输方法包括以下步骤:
201、获取目标编码数据。
该目标编码数据包括至少一个数据包和数据包相匹配的协议头,该协议头至少包括扩展协议头,该扩展协议头至少用于请求接收端接收到数据包时,发送响应信息。
其中,数据包所匹配的协议头包括第一协议头和第二协议头;
该第一协议头至少包括预设传输协议的标识信息;
该第二协议头至少包括拆包标识信息和数据包类型;
其中,该拆包标识信息至少包括:帧序列号、帧序列中的子序列号、帧开头标识信息和帧结尾标识信息;
其中,该数据包的类型至少包括:事件类型的数据、紧急类型的数据、可靠类型的数据、不可靠类型的数据及弱类型的数据。
202、解码处理该目标编码数据,获取至少一个数据包。
根据编码策略确定该编码数据的解码策略,根据解码处理解码处理该目标编码数据,获取至少一个数据包及该数据包匹配的协议头。
203、根据该扩展协议头,生成该数据包的响应信息,并向发送端发送该响应信息。
本公开所提供的方法可以通过发送该响应信息使得当发生丢包事件时,根据响应信息该重新传输数据,其中响应信息包括UNA信息或ACK信息。
本公开所提供方法中接收端在接收数据包后,还会根据传输协议,生成该数据包的响应信息,具体的:
根据已解码处理的数据包和协议头,确定该数据包相匹配的序列号和接收时间戳;
根据该序列号和接收时间戳,生成该数据包的响应信息,并发送。
204、根据该协议头,对至少一个数据包进行组帧处理,获取目标视频。
本公开所提及的方法中的协议头还包括拆包策略,在解码获取解码数据后,可以根据协议头标识的拆包策略,进行数据包的组帧处理,具体包括:
根据该拆包标识信息,对该至少一个数据包依次进行组帧处理;
其中,该组帧处理包括:
根据该帧序列号确定该数据包所匹配的视频帧;
根据该帧序列中的子序列号,确定该数据包在该序列中的排序;
根据该帧开头标识信息确定数据包是否为帧开头;
根据该帧结尾标识信息确定数据包是否为帧结尾;
依次组帧帧视频中的第一个数据包至最后一个数据包。
在具体的实践过程中,数据包的组帧可以先确定该数据包对应的视频帧,再确定在视频帧的第几组数据中,最后再确定该组数据中的序列,具体的可以根据数据包通用头的数据包长度fsn、数据包的序列号ssn、be三个字段可以完成数据帧的拆帧和组帧功能:
上述b字段标示该数据包是否为一帧的开头,占用1位。当其值为1时表示是帧开头,0不是。
上述e字段标示该数据包是否为一帧的结尾,占用1位。当其值为1时表示是帧结尾,0不是。
根据上述字段进行数据包的组帧处理,可以包括以下步骤:
当接收端接收到传输层的小包后,对协议头进行解析。若be=11,表示该小包为一个完整的视频帧,无需处理,只需要去掉小包的协议头即可得到原视频帧。
若be=10,表示该小包为视频帧被拆分后的第一个小包,将其放入缓冲区。
若遇到be=00,说明该小包为视频帧被拆分后中间的小包,将其追加到前一个小包的缓冲区后,直至遇到be=01,说明该小包为视频帧被拆分后的最后一个小包,将其追加到前一个小包的缓冲区,此时得到一个完整的视频帧。
本公开所提供的方法还包括:当确定发生丢包事件时,根据响应信息,获取发送端重新发送的丢失的数据包,并根据丢失数据包的协议头和已接收的其他数据包的协议头,将丢失数据包和已接收的其他数据包进行组帧处理,生成目标视频。
本公开实施例提供的数据传输方法,当接收端接收到编码数据时,对该编码数据进行解码处理,并根据编码数据的协议头进行组帧处理获取目标视频,并在接收编码数据的同时,根据协议头向发送端发送响应信息,以使得发生丢包事件时,发送端重新发生丢失的数据包。
实施例三
基于上述图1和图2对应的实施例中所描述的数据传输方法,下述为本公开装置实施例,可以用于执行本公开方法实施例。
本公开实施例提供一种数据传输系统,如图3所示,该数据传输系统30包括:发送端301和接收端302;
发送端301用于执行实施例一及附图1中该的方法;
接收端302用于执行实施例二及附图2中该的方法;
在一个实施例中,如图3a所示,发送端301包括:处理器3011和发送器3012;
上述处理器3011,用于获取目标视频,及传输该目标视频时的网络资源;
根据预设算法和该网络资源,拆分该目标视频为至少一组数据包,并根据预设传输协议,为每组数据包分配目标协议头,该目标协议头包括扩展协议头,该扩展协议头至少用于请求接收端接收到数据包时,发送响应信息;
通过每组数据包对应的目标协议头标记每组数据后,编码处理生成目标编码数据;
上述发送器3012,用于向接收端发送编码数据。
在一个实施例中,如图3b所示,接收端302包括:接收器3021和处理器3022;
上述接收器3021,用于获取目标编码数据,该目标编码数据包括至少一个数据包和数据包相匹配的协议头,该协议头至少包括扩展协议头,该扩展协议头至少用于请求接收端接收到数据包时,发送响应信息;
上述处理器3022,用于根据该协议头,解码处理该目标编码数据,获取至少一个数据包;
根据该扩展协议头,生成该数据包的响应信息,并向发送端发送该响应信息,以使得当发生丢包事件时,根据响应信息该重新传输数据,其中响应信息包括UNA信息或ACK信息。
本公开实施例提供的数据传输系统,在传输目标视频时,通过对目标视频的分组处理生成多个数据包,并根据预设传输协议,为数据包分配目标协议头,并通过该预设算法的协议头标记数据包后向接收端发送,以使得在传输目标编码数据过程中发生丢包事件时,接收端根据协议头恢复丢失的数据包;当接收端接收到编码数据时,对该编码数据进行解码处理,并根据编码数据的协议头进行组帧处理获取目标视频,并在接收编码数据的同时,根据协议头向发送端发送响应信息,以使得发生丢包事件时,发送端重新发生丢失的数据包。
根据本发明实施例的另一方面,还提供了一种计算机存储介质,计算机存储介质包括存储的程序,其中,在程序运行时控制计算机存储介质所在设备执行上述任意一项数据的传输方法。
可选地,在本实施例中,上述计算机存储介质可以位于计算机网络中计算设备群中的任意一个计算设备中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:获取待传输数据;根据缓存延时确定是否对待传输数据进行删除,其中,缓存延时为待传输数据在发送端缓存区的延迟时间;在确定对待传输数据进行删除的情况下,将待删除数据从待传输数据中删除,得到目标数据,其中,待删除数据根据预设的编码规则确定,预设的编码规则用于对待传输数据进行编码;将目标数据送入数据传输通道进行传输。
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项数据的传输方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如该单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例该方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上该仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种数据传输方法,其特征在于,应用于发送端,所述方法包括:
获取目标视频,及传输所述目标视频时的网络资源;
根据预设算法和所述网络资源,拆分所述目标视频为至少一组数据包,并根据预设传输协议,为每组数据包分配目标协议头,所述目标协议头包括扩展协议头,所述扩展协议头至少用于请求接收端在接收到数据包时,发送响应信息;
通过每组数据包对应的目标协议头标记每组数据后,编码处理生成目标编码数据,并向接收端发送,以使得在传输目标编码数据过程中发生丢包事件时,根据所述目标协议头,重新传输丢失的数据包。
2.根据权利要求1所述的方法,其特征在于,所述目标协议头还包括第一协议头和第二协议头;
所述第一协议头至少包括预设传输协议的标识信息;
所述第二协议头至少包括拆包标识信息和数据包类型;
其中,所述拆包标识信息至少包括:帧序列号、帧序列中的子序列号、帧开头标识信息和帧结尾标识信息;
其中,所述数据包的类型至少包括:事件类型的数据、紧急类型的数据、可靠类型的数据、不可靠类型的数据及弱类型的数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将所述至少一个数据包依次存储进数据缓存区域;
当数据缓存区域的数据超过预设阈值时,根据所述目标数据包对应的数据包类型,对所述目标数据包进行相应的编码处理;
其中,所述对目标数据包进行相应的编码处理,包括:
当所述数据缓存区域中包括紧急类型的数据和其他类型的数据时,则优先编码所述紧急类型的数据;
或,
当所述数据缓存区域中包括可靠类型的数据和不可靠类型的数据时,则优先编码所述可靠类型的数据,或者当传输资源无法满足传输完毕所有类型数据时,则不编码所述不可靠类型数据;
或,
当所述数据缓存区域中包括弱类型的数据和其他类型的数据时,则最后编码所述弱类型的数据,或者当传输资源无法满足传输完毕所有类型数据时,则删除所述弱类型数据。
4.根据权利要求1所述的方法,其特征在于,所述扩展协议头,包括:
所述数据包的发送时间戳、目标序列号和请求信息,所述目标序列号包括帧序列号和帧序列中的子序列号,所述请求信息所述请求信息用于请求接收端根据接收到的数据包和预设传输协议,发送响应信息。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当发送完毕数据包的编码数据后,获取接收端发送数据包响应信息,所述响应信息包括数据包的序列号和接收时间戳;
根据所述数据包的序列号,在待重传数据列表中确定待重传的目标数据包;
获取所述目标数据包的发送时间戳和序列号,计算该目标数据包的重传超时时间;
根据所述接收时间戳和发送时间戳,获取目标数据包在发送端的停留时间;
若目标数据包的停留时间大于重传超时时间,则重新传输所述目标数据包。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取接收端发送的多个数据包的ACK信息,其中数据包至少包括第一数据包和第二数据包,第一数据包括第一接收时间戳,第二数据包括第二接收时间戳,第一数据包的序列号早于第二数据包的序列号;
获取第二接收时间戳与第一接收时间戳的时间差值;
当所述时间差值大于预设阈值时,则确定第一数据包丢失,并重新传输第一数据包。
7.一种数据传输方法,其特征在于,应用于接收端,所述方法包括:
获取目标编码数据,所述目标编码数据包括至少一个数据包和数据包相匹配的协议头,所述协议头至少包括扩展协议头,所述扩展协议头至少用于请求接收端接收到数据包时,发送响应信息;
解码处理所述目标编码数据,获取至少一个数据包;
根据所述扩展协议头,生成所述数据包的响应信息,并向发送端发送所述响应信息,以使得当发生丢包事件时,根据响应信息,重新获取数据包,其中响应信息包括UNA信息或ACK信息;
根据协议头对所述至少一个数据包进行组帧处理,获取目标视频。
8.根据权利要求7述的方法,其特征在于,所述协议头至少包括拆包标识信息,所述拆包标识信息至少包括:帧序列号、帧序列中的子序列号、帧开头标识信息和帧结尾标识信息;
根据所述拆包标识信息,对所述至少一个数据包依次进行组帧处理;
其中,所述组帧处理包括:
根据所述帧序列号确定所述数据包所匹配的视频帧;
根据所述帧序列中的子序列号,确定所述数据包在所述序列中的排序;
根据所述帧开头标识信息确定数据包是否为帧开头;
根据所述帧结尾标识信息确定数据包是否为帧结尾;
依次组帧帧视频中的第一个数据包至最后一个数据包。
9.根据权利要求7述的方法,其特征在于,所述方法还包括:
根据已解码处理的数据包和协议头,确定所述数据包相匹配的序列号和接收时间戳;
根据所述序列号和接收时间戳,生成所述数据包的响应信息,并发送。
10.一种数据传输系统,其特征在于,该系统包括:发送端和接收端;
所述发送端,用于执行权利要求1至权利要求6任一项所述的方法;
所述接收端,用于执行权利要求7至权利要求9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210073698.4A CN114500672A (zh) | 2022-01-21 | 2022-01-21 | 数据传输方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210073698.4A CN114500672A (zh) | 2022-01-21 | 2022-01-21 | 数据传输方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114500672A true CN114500672A (zh) | 2022-05-13 |
Family
ID=81473476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210073698.4A Pending CN114500672A (zh) | 2022-01-21 | 2022-01-21 | 数据传输方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114500672A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024078358A1 (zh) * | 2022-10-12 | 2024-04-18 | 上海朗帛通信技术有限公司 | 一种被用于无线通信的通信节点中的方法和装置 |
-
2022
- 2022-01-21 CN CN202210073698.4A patent/CN114500672A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024078358A1 (zh) * | 2022-10-12 | 2024-04-18 | 上海朗帛通信技术有限公司 | 一种被用于无线通信的通信节点中的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220014312A1 (en) | Data transmission method and apparatus | |
EP2437421B1 (en) | Method, device and communication system for retransmitting based on forward error correction | |
US6587985B1 (en) | Data transmission method, data transmission apparatus, data receiving apparatus, and packet data structure | |
US9049017B2 (en) | Efficient TCP ACK prioritization in wireless networks | |
US20030023915A1 (en) | Forward error correction system and method for packet based communication systems | |
CN110312147B (zh) | 业务数据传输的方法、系统与存储介质 | |
RU2460214C2 (ru) | Инициирование сообщения статуса в беспроводной системе связи | |
EP1397899A1 (en) | Real-time packetization and retransmission in streaming applications | |
WO2015066836A1 (zh) | 视频业务数据传输方法、数据接收装置和数据发送装置 | |
US20230345058A1 (en) | Data packet transmission method and related device | |
JP2007318759A (ja) | 無線通信システムにおいてパケットデータを処理する方法及び装置 | |
CN113765626B (zh) | 一种移动通信系统的数据传输方法和装置 | |
CN113810769A (zh) | 数据传输方法及系统 | |
US8467302B2 (en) | Wireless data transmission method, transmitting system, and receiving system | |
EP1392025A2 (en) | Wireless communication method and wireless communication device | |
CN114500672A (zh) | 数据传输方法及系统 | |
EP3809748B1 (en) | Data transmitting method and device | |
CN112351049B (zh) | 数据传输方法、装置、设备及存储介质 | |
CN105871501B (zh) | 数据传输方法、系统及相关设备 | |
US7596143B2 (en) | Method and apparatus for handling potentially corrupt frames | |
CN116896567B (zh) | 网络层协议传输数据方法和装置 | |
CN114337917B (zh) | 基于前向纠错数据传输方法和短报文发送方法 | |
CN118573336A (zh) | 一种基于分组标识与时间戳的云游戏丢包检测方法 | |
CN116114199A (zh) | 一种报文重传方法和装置 | |
CN117201466A (zh) | 一种视频会议场景下的丢包重传系统及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |