CN111106902B - 数据报文传输方法、装置、设备及计算机可读存储介质 - Google Patents
数据报文传输方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111106902B CN111106902B CN201811257392.4A CN201811257392A CN111106902B CN 111106902 B CN111106902 B CN 111106902B CN 201811257392 A CN201811257392 A CN 201811257392A CN 111106902 B CN111106902 B CN 111106902B
- Authority
- CN
- China
- Prior art keywords
- message
- retransmission
- data
- data message
- serial number
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1812—Hybrid protocols; Hybrid automatic repeat request [HARQ]
- H04L1/1816—Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of the same, encoded, message
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1848—Time-out mechanisms
- H04L1/1851—Time-out mechanisms using multiple timers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本申请公开了一种数据报文传输方法、装置、设备及计算机可读存储介质。方法包括:接收发送方发送的数据报文,数据报文包括报文序号;按照报文序号缓存接收到的数据报文;获取缓存的数据报文的报文序号中的最大报文序号;确定等待接收的数据报文的报文序号;若缓存的最大报文序号与等待接收的数据报文的报文序号之间的差大于报文序号阈值,则确定满足数据报文重传条件;若满足数据报文重传条件,则确定是否触发重传;若触发重传,则向发送方下发重传命令,重传命令用于指示重传的数据报文的报文序号。由接收方动态调整重传条件,主动触发重传,因而无需对每个数据报文进行确认,降低了数据交互量,提高了数据报文的传输效率,保证了传输的可靠性。
Description
技术领域
本发明实施例涉及通讯传输技术领域,特别涉及一种数据报文传输方法、装置、设备及计算机可读存储介质。
背景技术
随着通讯传输技术的发展,终端与终端或者终端与服务器之间时常会进行数据报文传输,而在数据报文传输的过程中,会有丢包的情况发生,为了提高传输数据报文的可靠性,遇到丢包等情况,会采用数据包重传机制。
相关技术中,由数据报文的发送方触发重传,即发送方发送一个数据报文,每个数据报文需要接收方回复应答,如果发送方没有接收到接收方回复的应答,则主动重传该数据报文。
由于每个数据报文均需要确认,因而数据交互量大,效率不高。
发明内容
本发明实施例提供了一种数据报文传输方法、装置、设备及计算机可读存储介质,可用于解决相关技术中的问题。所述技术方案如下:
一方面,本发明实施例提供一种数据报文传输方法,所述方法包括:
接收发送方发送的数据报文,所述数据报文包括报文序号;
按照报文序号缓存接收到的数据报文;
获取缓存的数据报文的报文序号中的最大报文序号;
确定等待接收的数据报文的报文序号;
若缓存的最大报文序号与所述等待接收的数据报文的报文序号之间的差大于报文序号阈值,则确定满足数据报文重传条件;
若满足数据报文重传条件,则确定是否触发重传;
若触发重传,则向所述发送方下发重传命令,所述重传命令用于指示重传的数据报文的报文序号。
可选地,所述方法还包括:
统计单位时间内接收到的数据报文的个数;
根据所述单位时间内接收到的数据报文的个数及参考阈值确定报文序号阈值。
可选地,所述确定是否触发重传,包括:
获取需要重传的数据报文的已重传次数以及上次发送重传命令的时间;
如果已重传次数小于重传次数阈值,且当前时间与上次发送重传命令的时间的差大于时间差阈值,则确定触发重传;
如果已重传次数等于重传次数阈值,且当前时间与上次发送重传命令的时间的差大于时间差阈值,则放弃等待接收数据报文;
如果已重传次数不大于重传次数阈值,且当前时间与上次发送重传命令的时间的差不大于时间差阈值,则不触发重传,继续等待接收数据报文。
可选地,所述方法还包括:
根据所述等待接收的数据报文的报文序号、重传的数据报文的报文序号参考值、所述缓存的最大报文序号及单位时间接收数据报文的数量确定重传的最大报文序号;
将所述等待接收的数据报文的报文序号与所述重传的最大报文序号之间的报文序号作为所述重传命令中指示重传的数据报文的报文序号。
可选地,所述根据所述等待接收的数据报文的报文序号、重传的数据报文的报文序号参考值、所述缓存的最大报文序号及单位时间接收数据报文的数量确定重传的最大报文序号,包括:
获取所述等待接收的数据报文的报文序号与重传的数据报文的报文序号参考值的和,得到第一数值;
获取所述缓存的最大报文序号与单位时间接收数据报文的数量的差,得到第二数值;
将所述第一数值与所述第二数值中的较小值确定为重传的最大报文序号。
可选地,所述按照报文序号缓存接收到的数据报文,包括:
获取接收的数据报文的报文序号与缓存的最大报文序号的差值;
若所述差值大于参考序号,则将接收的数据报文按照报文序号进行缓存。
一方面,提供了一种数据报文传输方法,所述方法包括:
获取待传输的数据报文;
将获取的数据报文存入缓冲区;
将所述数据报文从所述缓冲区加入到发送队列中,按照报文序号遍历所述发送队列中的数据报文,并依次发送至所述接收方,所述数据报文包括报文序号,所述接收方用于按照报文序号缓存接收到的数据报文,且确定触发重传后,下发重传命令,所述重传命令用于指示重传的数据报文的报文序号;
接收所述接收方下发的重传命令;
根据所述重传命令指示的报文序号从所述缓冲区中取出对应的数据报文,将取出的数据报文添加到重传队列中,按照报文序号遍历所述重传队列中的数据报文,并依次发送至所述接收方。
一方面,提供了一种数据报文传输装置,所述装置包括:
接收模块,用于接收发送方发送的数据报文,所述数据报文包括报文序号;
缓存模块,用于按照报文序号缓存接收到的数据报文;
获取模块,用于获取缓存的数据报文的报文序号中的最大报文序号;确定等待接收的数据报文的报文序号;
第一确定模块,用于若缓存的最大报文序号与所述等待接收的数据报文的报文序号之间的差大于报文序号阈值,则确定满足数据报文重传条件;
第二确定模块,用于若满足数据报文重传条件,则确定是否触发重传;
下发模块,用于若触发重传,则向所述发送方下发重传命令,所述重传命令用于指示重传的数据报文的报文序号。
可选地,所述第一确定模块,还用于统计单位时间内接收到的数据报文的个数;根据所述单位时间内接收到的数据报文的个数及参考阈值确定报文序号阈值。
可选地,所述第二确定模块,用于获取需要重传的数据报文的已重传次数以及上次发送重传命令的时间;
如果已重传次数小于重传次数阈值,且当前时间与上次发送重传命令的时间的差大于时间差阈值,则确定触发重传;
如果已重传次数等于重传次数阈值,且当前时间与上次发送重传命令的时间的差大于时间差阈值,则放弃等待接收数据报文;
如果已重传次数不大于重传次数阈值,且当前时间与上次发送重传命令的时间的差不大于时间差阈值,则不触发重传,继续等待接收数据报文。
可选地,所述下发模块,还用于:
根据所述等待接收的数据报文的报文序号、重传的数据报文的报文序号参考值、所述缓存的最大报文序号及单位时间接收数据报文的数量确定重传的最大报文序号;
将所述当前等待接收的数据报文的报文序号与所述重传的最大报文序号之间的报文序号作为所述重传命令中指示重传的数据报文的报文序号。
可选地,所述下发模块,用于获取所述等待接收的数据报文的报文序号与重传的数据报文的报文序号参考值的和,得到第一数值;获取所述缓存的最大报文序号与单位时间接收数据报文的数量的差,得到第二数值;将所述第一数值与所述第二数值中的较小值确定为重传的最大报文序号。
可选地,所述缓存模块,用于获取接收的数据报文的报文序号与缓存的最大报文序号的差值;若所述差值大于参考序号,则将接收的数据报文按照报文序号进行缓存。
一方面,提供了一种数据报文传输装置,所述装置包括:
获取模块,用于获取待传输的数据报文;
缓存模块,用于将获取的数据报文存入缓冲区;
发送模块,用于将所述数据报文从所述缓冲区加入到发送队列中,按照报文序号遍历所述发送队列中的数据报文,并依次发送至所述接收方,所述数据报文包括报文序号,所述接收方用于按照报文序号缓存接收到的数据报文,且确定触发重传后,下发重传命令,所述重传命令用于指示重传的数据报文的报文序号;
接收模块,用于接收所述接收方下发的重传命令;
重传模块,用于根据所述重传命令指示的报文序号从所述缓冲区中取出对应的数据报文,将取出的数据报文添加到重传队列中,按照报文序号遍历所述重传队列中的数据报文,并依次传输至所述接收方。
一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令在被所述处理器执行时实现上述任一种数据报文传输方法。
一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述至少一条指令在被执行时实现上述任一种数据报文传输方法。
本发明实施例提供的技术方案至少可以带来如下有益效果:
通过接收方获取缓存的数据报文的报文序号中的最大报文序号,并根据缓存的最大报文序号与等待接收的数据报文的报文序号之间的差来动态调整重传条件,由接收方据此主动触发重传,因而无需对每个数据报文进行确认,不仅降低了数据交互量,还可提高数据报文的传输效率,且保证传输的可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种实施环境的示意图;
图2是本发明实施例提供的另一种实施环境的示意图;
图3是本发明实施例提供的一种数据报文队列示意图;
图4是本发明实施例提供的一种数据报文传输方法流程图;
图5是本发明实施例提供的一种数据报文传输方法流程图;
图6是本发明实施例提供的一种数据报文传输方法流程图;
图7是本发明实施例提供的一种数据报文传输装置的结构示意图;
图8是本发明实施例提供的一种数据报文传输装置的结构示意图;
图9是本发明实施例提供的一种终端的结构示意图;
图10是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
为了实现数据报文的可靠传输,通讯传输技术中常采用的一种方式是数据重传,而在UDP(User Datagram Protocol,用户数据报协议)可靠传输的技术中,一般由发送方主动触发重传,且该种重传机制需要接收方针对每个数据报文回复确认,导致数据交互量大,数据报文的传输效率较低,为此,本发明实施例提供了一种数据报文传输方法,该方法由接收方控制重传。在详细介绍本发明实施例提供的方法之前,先对本发明实施例提供的方法实施环境予以介绍。
请参考图1,其示出了本发明实施例提供的实施环境的示意图。该实施环境中包括:第一终端11和第二终端12。
其中,第一终端11向第二终端12发送数据报文时,第一终端11作为发送方,第二终端12作为接收方。相反,如果第二终端12向第一终端11发送数据,那么,第二终端12作为发送方,第一终端11作为接收方。
无论是哪个终端作为发送方或者接收方,第一终端11与第二终端12之间可通过本发明实施例提供的方法进行数据报文传输。第一终端11和第二终端12可以是诸如手机、平板电脑、个人计算机等电子设备。
除图1所示实施环境外,本发明实施例提供的方法还可以应用于图2所示的实施环境中。如图2所示,除了第一终端11和第二终端12之间通过网络连接外,第一终端11和第二终端12还分别通过网络与服务器13进行连接。则本发明实施例提供的方法可应用于第一终端11与服务器13之间,也可以应用于第二终端12与服务器13之间。
其中,服务器12可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。
第一终端11与第二终端12分别与服务器13通过有线或无线网络建立通信连接。
进一步地,针对图1或图2所示的实施环境,本发明实施例提供的方法中,接收方和发送方之间传输的数据报文均包括报文序号。该数据报文既可以是RTP(Real-timeTransport Protocol,实时传输协议)数据报文,也可以是UDP数据报文。例如,以数据报文为RTP数据报文为例,包含的包序号可以为1~65534。接收方接收到的数据报文可以按照报文序号进行存储,如图3所示。其中,CurSeq为当前等待接收的数据报文,也即未收到的数据报文。MaxSeq为当前已收到的报文序号最大的数据报文。
接下来,对本发明实施例提供的方法进行详细的解释说明。
请参考图4,本发明实施例提供了一种数据报文传输方法,该方法可应用于图1或图2所示实施环境中。如图4所示,以接收方来实施数据报文传输方法为例,本发明实施例提供的方法可以包括如下几个步骤。
在步骤401中,接收方接收发送方发送的数据报文,数据报文包括报文序号;
当发送方获取到待发送的数据报文后,如果被触发事件触发向接收方发送该数据包,或者周期性向接收方发送数据包时,该接收方均可通过网络接收发送方发送的数据报文。此外,每个数据报文均包括报文序号,通过该报文序号标识数据报文的顺序,从而能够使得接收方确定接收到的数据报文序号或者确定未接收到的数据报文的序号。其中,数据报文可以是视频RTP数据报文,当然,也可以是其他类型的数据报文,例如UDP数据报文,本发明实施例提供的方法不对数据报文的类型进行限定。
在步骤402中,接收方按照报文序号缓存接收到的数据报文;
由于数据报文包括报文序号,因而接收方按照报文序号缓存接收到的数据报文,能够便于后续准确判断接收到哪些数据报文,以及丢失哪些数据报文。例如,按照报文序号顺序将接收到的数据报文依次缓存至缓存容器中。
进一步地,对于接收到的数据报文,将其缓存之后,可从缓存容器中按照报文序号取出,取出后的数据报文将从缓存容器中删除,并记录当前已经取到的有序报文中的最大报文序号。
以RTP数据报文为例,由于RTP数据报文的最大报文序号为65534,因而超过65534后,报文序号将重新从1开始。如果丢弃报文序号重复的数据报文,将造成大量数据报文的重传。例如,如果直接丢弃序号<=N的数据报文,会导致在前一轮数据报文还没接收完成,又接收到了第二轮上传的数据报文时,第二轮上传的数据报文会被丢弃,然后造成后续大量的数据报文重传。
为此,本发明实施例提供的方法按照报文序号缓存接收到的数据报文时,获取接收的数据报文的报文序号与缓存的最大报文序号的差值;若差值大于参考序号,则将接收的数据报文按照报文序号进行缓存。
以将接收到的数据报文的报文序号为usSequence,缓存的最大报文序号为MaxSeq,参考序号为32767为例,若abs(usSequence-MaxSeq)>32767,则认为该数据报文是下一轮收到的数据报文,因而将其放入缓存中。其中,abs()代表绝对值运算。这里的参考序号32767为举例说明,本发明实施例并不对参考序号的具体数值进行限定,例如,该参考序号可根据实际情况进行设置,或依据经验进行设置。
本实施例提供的方法,接收方可以实时做丢包检测,以保证数据报文传输的可靠性。通过丢包检测,如果接收方在一段时间后没有收到数据报文,则主动向发送方请求重传。在网络状况较好没有数据报文丢失的情况下,这种机制在实现可靠性传输上不需要花费额外数据交互。
针对检测到有丢包的情况下,本发明实施例提供的方法在满足数据报文重传条件时将触发数据报文重传。但由于数据报文的码率不同,单位时间内接收到的数据报文的个数不同。如果在检测到丢包之后,按固定条件频率触发重传,会导致接收高码率数据报文时,重传命令下发的太频繁。因此,本发明实施例提供的方法采取动态调整重传条件的方式,包括但不限于通过如下步骤403来判断是否满足数据报文重传条件。
在步骤403中,获取缓存的数据报文的报文序号的最大报文序号;确定等待接收的数据报文的报文序号;
由于接收方是按照报文序号来缓存接收到的数据报文,因而可以获取缓存的数据报文的报文序号的最大报文序号。根据缓存的各个数据报文的报文序号,还可以确定等待接收的数据报文的报文序号。例如,缓存的数据报文的报文序号分别为1、2、3和5,则按照报文序号的顺序,确定等待接收的数据报文的报文序号为4。
在步骤404中,若缓存的最大报文序号与等待接收的数据报文的报文序号之间的差大于报文序号阈值,则确定满足数据报文重传条件。
例如,以缓存的最大报文序号,即缓存的数据报文的报文序号中的最大报文序号为MaxSeq,等待接收的数据报文的报文序号为CurSeq,报文序号阈值为M为例,则当MaxSeq-CurSeq>M时,满足数据报文重发条件,即触发重传。
其中,报文序号阈值的确定方式包括但不限于:统计单位时间内接收到的数据报文的个数;根据单位时间内接收到的数据报文的个数及参考阈值确定报文序号阈值。
以统计的单位时间内接收到的数据报文的个数为uiRecvCntInOneSecond,参考阈值为10为例,则M=max(uiRecvCntInOneSecond,10),即M为单位时间内接收到的数据报文的个数与参考阈值中的最大值。本发明实施例提供的方法之所以采用取两者的最大值是考虑到网络质量不好时,当前单位时间内接收到的数据报文的个数uiRecvCntInOneSecond可能为0。
需要说明的是,本发明实施例不对单位时间进行限定,例如,该单位时间可以为1秒。此外,本发明实施例也不对参考阈值进行限定,例如,可根据实际情况或者经验设置。
在步骤405中,若满足数据报文重传条件,则接收方确定是否触发重传;
如果每次满足数据报文重发条件就触发重传,有时会导致重传数据报文过多,考虑到过多地重传数据报文会导致视频延时过大,甚至不能继续获取数据报文,因此,本发明实施例提供的方法在多次请求重传失败后,放弃重传。
在一种可选的实施方式中,本发明实施例提供的方法还包括将所有触发重传的数据报文均放到重传链表中,并记录每个重传数据报文的已重传次数和最近下发重传命令的时间(即上一次下发重传命令的时间)。在此基础上,确定是否触发重传,包括:获取需要重传的数据报文的已重传次数以及上次发送重传命令的时间;根据需要重传的数据报文的已重传次数以及上次发送重传命令的时间确定是否触发重传。
可选地,根据需要重传的数据报文的已重传次数以及上次发送重传命令的时间确定是否触发重传,包括:
如果已重传次数小于重传次数阈值,且当前时间与上次发送重传命令的时间的差大于时间差阈值,则确定触发重传;
如果已重传次数等于重传次数阈值,且当前时间与上次发送重传命令的时间的差大于时间差阈值,则放弃等待接收数据报文;
如果已重传次数不大于重传次数阈值,且当前时间与上次发送重传命令的时间的差不大于时间差阈值,则不触发重传,继续等待接收数据报文。
其中,重传次数阈值及时间差阈值可根据实际情况设置或依据经验设置,本发明实施例对此不加以限定。对于已重传次数小于重传次数阈值,且当前时间与上次发送重传命令的时间的差等于时间差阈值的情况,除了不重传,继续等待接收数据报文外,可选的,该种情况下也可以为确定重传,本发明实施例对此种情况不加以限定。
为了便于理解,以重传次数阈值为3次,时间差阈值为1秒为例,则确定是否触发重传包括如下几种情况:
1)如果已重传次数<3次,且当前时间-上次发送重传命令的时间的差>1秒,则确定触发重传。
2)如果已重传次数=3次,且当前时间-上次发送重传命令的时间的差>1秒,则放弃等待接收该数据报文。
3)如果已重传次数≤3,且当前时间-上次发送重传命令的时间的差≤1秒,不触发重传,继续等待接收数据报文。
在网络状况很差甚至网络不连通的情况下,根据本发明实施例提供的方法,uiRecvCntInOneSecond等于0,MaxSeq-CurSeq>=10时触发重传,因为网络不连通,每个丢失的数据报文经过3次请求重传失败放弃重传。CurSeq会使得接收方向前推进逐渐接近MaxSeq。当MaxSeq-CurSeq<10时,接收方将不会再请求重传,直到有新的数据报文到达,这样可以有效避免无效的数据发送。
在步骤406中,若触发重传,则接收方向发送方下发重传命令。
由于当网络出现问题时,通常丢失的数据报文不止一个,而是某序号区间范围内多个数据报文都出现丢失。若每次请求重传一个数据报文,然后等待接收或超时放弃再发送重传下一个数据报文,再等待接收或超时,效率较低。因此在触发重传时,本发明实施例提供的方法向后检查多个数据报文的接收情况,同时发送多个数据报文的重传命令。
进一步地,本发明实施例提供的方法在接收方确定触发重传后,向发送方下发重传命令,且该重传命令用于指示重传的数据报文的报文序号,以此使得发送方能够明确重传哪些数据报文。
其中,重传的数据报文的报文序号的确定方式包括但不限于:根据等待接收的数据报文的报文序号、重传的数据报文的报文序号参考值、缓存的最大报文序号及单位时间接收数据报文的数量确定重传的最大报文序号;将等待接收的数据报文的报文序号与重传的最大报文序号之间的报文序号作为重传命令中指示重传的数据报文的报文序号。
在一种可选的实施方式中,根据等待接收的数据报文的报文序号、重传的数据报文的报文序号参考值、缓存的最大报文序号及单位时间接收数据报文的数量确定重传的最大报文序号,包括:获取等待接收的数据报文的报文序号与重传的数据报文的报文序号参考值的和,得到第一数值;获取缓存的最大报文序号与单位时间接收数据报文的数量的差,得到第二数值;将第一数值与第二数值中的较小值确定为重传的最大报文序号。
例如,以等待接收的数据报文的报文序号为CurSeq,重传的最大报文序号为ToSeq,重传的数据报文的报文序号参考值为Count为例,则重传报文序号为CurSeq~ToSeq之间尚未接收到的数据报文。
其中,ToSeq=min(CurSeq+Count,MaxSeq-uiRecvCntInOneSecond)。可选地,Count=(MaxSeq-CurSeq)/2。
进一步地,该方法还包括:接收方接收发送方根据重传命令重传的数据报文。
当发送方接收到接收方下发的重传命令后,根据重传命令向接收方发送重传的数据报文,则接收方接收发送方根据重传命令重传的数据报文。
本发明实施例提供的方法,通过获取缓存的数据报文的报文序号中的最大报文序号,并根据缓存的最大报文序号与等待接收的数据报文的报文序号之间的差来动态调整重传条件,由接收方主动触发重传,因而无需对每个数据报文进行确认,不仅降低了数据交互量,还可提高数据报文的传输效率,且保证传输的可靠性。
本发明实施例提供了一种数据报文传输方法,请参考图5,该方法可应用于图1或图2所示实施环境中。如图5所示,以发送方所在侧来实施数据报文传输为例,本发明实施例提供的方法可以包括如下几个步骤。
在步骤501中,发送方获取待传输的数据报文,将获取的数据报文存入缓冲区,数据报文包括报文序号;
其中,待传输的数据报文可以为视频数据报文,也可以为其他类型的数据报文,本发明实施例不对数据报文的类型进行限定。在需要发送数据报文的场景下,发送方获取待传输的数据报文。
例如,在视频播放场景中,为了满足用户的视频播放需求,以播放视频的终端作为接收方为例,接收方请求发送方传输视频数据,即视频数据报文,则发送方获取待传输的数据报文。例如,从发送方存储的视频数据中获取接收方请求的视频数据,并获取用于传输视频数据的数据报文。
进一步地,将获取的数据报文存入缓冲区,以使得后续在接收到重传命令时,能够快速重传数据报文。
例如,每个数据报文具有对应的报文序号,将获取的数据报文按报文序号存入缓冲区,发送缓冲区存放的数据报文的最大报文序号为65534,且循环存储。
在步骤502中,发送方将数据报文从缓冲区加入到发送队列中,按照报文序号遍历发送队列中的数据报文,并依次发送至接收方;
发送方获取到数据报文后,通过网络将数据报文发送至接收方,其中,该数据报文包括报文序号,以使得接收方能够明确接收到了哪些数据报文,或者使得接收方能够检测丢失了哪些数据报文。
进一步地,接收方接收到数据报文后,该接收方用于按照报文序号缓存接收到的数据报文,且确定触发重传后,下发重传命令,重传命令用于指示重传的数据报文的报文序号。
在步骤503中,发送方接收接收方下发的重传命令;
当接收方检测到数据报文丢失,并下发重传命令后,发送方接收该重传命令,该重传命令用于指示重传的数据报文的报文序号。
在步骤504中,发送方根据重传命令指示的报文序号从缓冲区中取出对应的数据报文,将取出的数据报文添加到重传队列中,按照报文序号遍历重传队列中的数据报文,并依次发送至接收方。
本发明实施例提供的方法,通过发送方向接收方发送包括报文序号的数据报文,使得接收方可获取缓存的数据报文的报文序号中的最大报文序号,并根据缓存的最大报文序号与等待接收的数据报文的报文序号之间的差来动态调整重传条件,据此主动触发重传,因而无需对每个数据报文进行确认,不仅降低了数据交互量,还可提高数据报文的传输效率,且保证传输的可靠性。
本发明实施例提供了一种数据报文传输方法,请参考图6,该方法可应用于图1或图2所示实施环境中。如图6所示,以发送方和接收方的交互过程为例,本发明实施例提供的方法可以包括如下几个步骤:
在步骤601中,发送方获取待传输的数据报文,将获取的数据报文存入缓冲区,数据报文包括报文序号;
在步骤602中,发送方将数据报文从缓冲区加入到发送队列中,按照报文序号遍历发送队列中的数据报文,并依次发送至接收方;
在步骤603中,接收方接收发送方发送的数据报文;
在步骤604中,接收方按照报文序号缓存接收到的数据报文;
在步骤605中,接收方获取缓存的数据报文的报文序号的最大报文序号;确定等待接收的数据报文的报文序号;
在步骤606中,若缓存的最大报文序号与等待接收的数据报文的报文序号之间的差大于报文序号阈值,则接收方确定满足数据报文重传条件;
在步骤607中,若满足数据报文重传条件,则接收方确定是否触发重传;
在步骤608中,若触发重传,则接收方向发送方下发重传命令;
其中,重传命令用于指示重传的数据报文的报文序号;
在步骤609中,发送方接收接收方下发的重传命令;
在步骤610中,发送方根据重传命令指示的报文序号向接收方重传对应的数据报文。
进一步地,接收方接收发送方根据重传命令重传的数据报文。
上述图6所示的各个步骤可参考图4或图5所示实施例中的对应步骤的实现方式,此处不再一一赘述。
本发明实施例提供的方法,通过发送方向接收方发送包括报文序号的数据报文,接收方获取缓存的数据报文的报文序号中的最大报文序号,并根据缓存的最大报文序号与等待接收的数据报文的报文序号之间的差来动态调整重传条件,据此主动触发重传,因而无需对每个数据报文进行确认,不仅降低了数据交互量,还可提高数据报文的传输效率,且保证传输的可靠性。
基于与方法同样的构思,参见图7,本发明实施例提供了一种数据报文传输装置,用于执行上述接收方所执行的数据报文传输方法,该装置包括:
接收模块71,用于接收发送方发送的数据报文,数据报文包括报文序号;
缓存模块72,用于按照报文序号缓存接收到的数据报文;
获取模块73,用于获取缓存的数据报文的报文序号中的最大报文序号;确定等待接收的数据报文的报文序号;
第一确定模块74,用于若所述最大报文序号与所述等待接收的数据报文的报文序号之间的差大于报文序号阈值,则确定满足数据报文重传条件;
第二确定模块75,用于若满足数据报文重传条件,则确定是否触发重传;
下发模块76,用于若触发重传,则向发送方下发重传命令,重传命令用于指示重传的数据报文的报文序号。
可选地,接收模块71,还用于接收发送方根据重传命令重传的数据报文。
可选地,第一确定模块74,还用于统计单位时间内接收到的数据报文的个数;根据单位时间内接收到的数据报文的个数及参考阈值确定报文序号阈值。
可选地,第二确定模块75,用于获取需要重传的数据报文的已重传次数以及上次发送重传命令的时间;如果已重传次数小于重传次数阈值,且当前时间与上次发送重传命令的时间的差大于时间差阈值,则确定触发重传;如果已重传次数等于重传次数阈值,且当前时间与上次发送重传命令的时间的差大于时间差阈值,则放弃等待接收数据报文;如果已重传次数不大于重传次数阈值,且当前时间与上次发送重传命令的时间的差不大于时间差阈值,则不触发重传,继续等待接收数据报文。
可选地,下发模块76,还用于:
根据等待接收的数据报文的报文序号、重传的数据报文的报文序号参考值、缓存的最大报文序号及单位时间接收数据报文的数量确定重传的最大报文序号;
将当前等待接收的数据报文的报文序号与重传的最大报文序号之间的报文序号作为重传命令中指示重传的数据报文的报文序号。
可选地,下发模块76,用于获取等待接收的数据报文的报文序号与重传的数据报文的报文序号参考值的和,得到第一数值;获取缓存的最大报文序号与单位时间接收数据报文的数量的差,得到第二数值;将第一数值与第二数值中的较小值确定为重传的最大报文序号。
可选地,缓存模块72,用于获取接收的数据报文的报文序号与缓存的最大报文序号的差值;若差值大于参考序号,则将接收的数据报文按照报文序号进行缓存。
基于与方法同样的构思,参见图8,本发明实施例提供了一种数据报文传输装置,用于执行上述发送方所执行的数据报文传输方法,该装置包括:
获取模块81,用于获取待传输的数据报文;
缓存模块82,用于将获取的数据报文存入缓冲区;
发送模块83,用于将数据报文从缓冲区加入到发送队列中,按照报文序号遍历发送队列中的数据报文,并依次发送至接收方,数据报文包括报文序号,接收方用于按照报文序号缓存接收到的数据报文,且确定触发重传后,下发重传命令,重传命令用于指示重传的数据报文的报文序号;
接收模块84,用于接收接收方下发的重传命令;
重传模块85,用于根据重传命令指示的报文序号从缓冲区中取出对应的数据报文,将取出的数据报文添加到重传队列中,按照报文序号遍历重传队列中的数据报文,并依次传输至接收方。
需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图9示出了本发明一个示例性实施例提供的终端900的结构框图。该终端900可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端900包括有:处理器901和存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、5核心处理器等。处理器901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器901所执行以实现本申请中方法实施例提供的数据报文传输方法。
在一些实施例中,终端900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903相连。具体地,外围设备包括:射频电路904、触摸显示屏905、摄像头906、音频电路907、定位组件909和电源909中的至少一种。
外围设备接口903可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路904还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏905用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置终端900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在终端900的不同表面或呈折叠设计;在再一些实施例中,显示屏905可以是柔性显示屏,设置在终端900的弯曲表面上或折叠面上。甚至,显示屏905还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。
定位组件908用于定位终端900的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件908可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源909用于为终端900中的各个组件进行供电。电源909可以是交流电、直流电、一次性电池或可充电电池。当电源909包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端900还包括有一个或多个传感器910。该一个或多个传感器910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器913、指纹传感器914、光学传感器915以及接近传感器916。
加速度传感器910可以检测以终端900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器911可以用于检测重力加速度在三个坐标轴上的分量。处理器901可以根据加速度传感器911采集的重力加速度信号,控制触摸显示屏905以横向视图或纵向视图进行用户界面的显示。加速度传感器911还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器912可以检测终端900的机体方向及转动角度,陀螺仪传感器912可以与加速度传感器911协同采集用户对终端900的3D动作。处理器901根据陀螺仪传感器912采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器913可以设置在终端900的侧边框和/或触摸显示屏905的下层。当压力传感器913设置在终端900的侧边框时,可以检测用户对终端900的握持信号,由处理器901根据压力传感器913采集的握持信号进行左右手识别或快捷操作。当压力传感器913设置在触摸显示屏905的下层时,由处理器901根据用户对触摸显示屏905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器914用于采集用户的指纹,由处理器901根据指纹传感器914采集到的指纹识别用户的身份,或者,由指纹传感器914根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器901授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器914可以被设置终端900的正面、背面或侧面。当终端900上设置有物理按键或厂商Logo时,指纹传感器914可以与物理按键或厂商Logo集成在一起。
光学传感器915用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器915采集的环境光强度,控制触摸显示屏905的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏905的显示亮度;当环境光强度较低时,调低触摸显示屏905的显示亮度。在另一个实施例中,处理器901还可以根据光学传感器915采集的环境光强度,动态调整摄像头组件906的拍摄参数。
接近传感器916,也称距离传感器,通常设置在终端900的前面板。接近传感器916用于采集用户与终端900的正面之间的距离。在一个实施例中,当接近传感器916检测到用户与终端900的正面之间的距离逐渐变小时,由处理器901控制触摸显示屏905从亮屏状态切换为息屏状态;当接近传感器916检测到用户与终端900的正面之间的距离逐渐变大时,由处理器901控制触摸显示屏905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图9中示出的结构并不构成对终端900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
请参考图10,其示出了本发明实施例所涉及的服务器的结构示意图,该服务器可以用于实施上述实施例中提供的任一种数据报文传输的方法。具体来讲:
该服务器1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1022(例如,一个或一个以上处理器)和存储器1032,一个或一个以上存储应用程序1042或数据1044的存储介质1030(例如一个或一个以上海量存储设备)。其中,存储器1032和存储介质1030可以是短暂存储或持久存储。存储在存储介质1030的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1022可以设置为与存储介质1030通信,在服务器1000上执行存储介质1030中的一系列指令操作。
服务器1000还可以包括一个或一个以上电源1026,一个或一个以上有线或无线网络接口1050,一个或一个以上输入输出接口1058,一个或一个以上键盘1056,和/或,一个或一个以上操作系统1041,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
服务器1000可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行上述数据报文传输方法。
在示例中实施例中,还提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令。所述至少一条指令经配置以由一个或者一个以上处理器执行,以实现上述任一种数据报文传输方法。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令在被计算机设备的处理器执行时实现上述任一种数据报文传输方法。
可选地,上述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本发明的示例性实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据报文传输方法,其特征在于,所述方法包括:
接收发送方发送的数据报文,所述数据报文包括报文序号;
按照报文序号缓存接收到的数据报文;
获取缓存的数据报文的报文序号中的最大报文序号;
确定等待接收的数据报文的报文序号;
若缓存的最大报文序号与所述等待接收的数据报文的报文序号之间的差大于报文序号阈值,则确定满足数据报文重传条件,所述报文序号阈值为单位时间内接收到的数据报文的个数与参考阈值中的最大值;
若满足数据报文重传条件,则确定是否触发重传;
若触发重传,则向所述发送方下发重传命令,所述重传命令用于指示重传的数据报文的报文序号;
其中,所述重传的数据报文的报文序号的确定方式包括:
获取所述等待接收的数据报文的报文序号与重传的数据报文的报文序号参考值的和,得到第一数值;获取所述缓存的最大报文序号与单位时间接收数据报文的数量的差,得到第二数值;将所述第一数值与所述第二数值中的较小值确定为重传的最大报文序号;将所述等待接收的数据报文的报文序号与所述重传的最大报文序号之间的报文序号作为所述重传命令中指示重传的数据报文的报文序号;其中,所述重传的数据报文的报文序号参考值根据所述缓存的最大报文序号和所述等待接收的数据报文的报文序号确定。
2.根据权利要求1所述的方法,其特征在于,所述确定是否触发重传,包括:
获取需要重传的数据报文的已重传次数以及上次发送重传命令的时间;
如果已重传次数小于重传次数阈值,且当前时间与上次发送重传命令的时间的差大于时间差阈值,则确定触发重传;
如果已重传次数等于重传次数阈值,且当前时间与上次发送重传命令的时间的差大于时间差阈值,则放弃等待接收数据报文;
如果已重传次数不大于重传次数阈值,且当前时间与上次发送重传命令的时间的差不大于时间差阈值,则不触发重传,继续等待接收数据报文。
3.根据权利要求1或2所述的方法,其特征在于,所述按照报文序号缓存接收到的数据报文,包括:
获取接收的数据报文的报文序号与缓存的最大报文序号的差值;
若所述差值大于参考序号,则将接收的数据报文按照报文序号进行缓存。
4.一种数据报文传输方法,其特征在于,所述方法包括:
获取待传输的数据报文;
将获取的数据报文存入缓冲区;
将所述数据报文从所述缓冲区加入到发送队列中,按照报文序号遍历所述发送队列中的数据报文,并依次发送至接收方,所述数据报文包括报文序号,所述接收方用于按照报文序号缓存接收到的数据报文,且若缓存的最大报文序号与等待接收的数据报文的报文序号之间的差大于报文序号阈值则确定满足数据报文重传条件,若满足数据报文重传条件则确定是否触发重传,确定触发重传后,下发重传命令,所述重传命令用于指示重传的数据报文的报文序号,所述报文序号阈值为单位时间内接收到的数据报文的个数与参考阈值中的最大值;其中,所述重传的数据报文的报文序号为等待接收的数据报文的报文序号与重传的最大报文序号之间的报文序号,所述重传的最大报文序号为第一数值与第二数值中的较小值,所述第一数值为所述等待接收的数据报文的报文序号与重传的数据报文的报文序号参考值的和,所述第二数值为所述缓存的最大报文序号与单位时间接收数据报文的数量的差,所述重传的数据报文的报文序号参考值根据所述缓存的最大报文序号和所述等待接收的数据报文的报文序号确定;
接收所述接收方下发的重传命令;
根据所述重传命令指示的报文序号从所述缓冲区中取出对应的数据报文,将取出的数据报文添加到重传队列中,按照报文序号遍历所述重传队列中的数据报文,并依次发送至所述接收方。
5.一种数据报文传输装置,其特征在于,所述装置包括:
接收模块,用于接收发送方发送的数据报文,所述数据报文包括报文序号;
缓存模块,用于按照报文序号缓存接收到的数据报文;
获取模块,用于获取缓存的数据报文的报文序号中的最大报文序号;确定等待接收的数据报文的报文序号;
第一确定模块,用于若缓存的最大报文序号与所述等待接收的数据报文的报文序号之间的差大于报文序号阈值,则确定满足数据报文重传条件,所述报文序号阈值为单位时间内接收到的数据报文的个数与参考阈值中的最大值;
第二确定模块,用于若满足数据报文重传条件,则确定是否触发重传;
下发模块,用于若触发重传,则向所述发送方下发重传命令,所述重传命令用于指示重传的数据报文的报文序号;
所述下发模块,还用于获取所述等待接收的数据报文的报文序号与重传的数据报文的报文序号参考值的和,得到第一数值;获取所述缓存的最大报文序号与单位时间接收数据报文的数量的差,得到第二数值;将所述第一数值与所述第二数值中的较小值确定为重传的最大报文序号;将所述等待接收的数据报文的报文序号与所述重传的最大报文序号之间的报文序号作为所述重传命令中指示重传的数据报文的报文序号;其中,所述重传的数据报文的报文序号参考值根据所述缓存的最大报文序号和所述等待接收的数据报文的报文序号确定。
6.根据权利要求5所述的装置,其特征在于,所述第二确定模块,用于获取需要重传的数据报文的已重传次数以及上次发送重传命令的时间;
如果已重传次数小于重传次数阈值,且当前时间与上次发送重传命令的时间的差大于时间差阈值,则确定触发重传;
如果已重传次数等于重传次数阈值,且当前时间与上次发送重传命令的时间的差大于时间差阈值,则放弃等待接收数据报文;
如果已重传次数不大于重传次数阈值,且当前时间与上次发送重传命令的时间的差不大于时间差阈值,则不触发重传,继续等待接收数据报文。
7.根据权利要求5或6所述的装置,其特征在于,所述缓存模块,用于获取接收的数据报文的报文序号与缓存的最大报文序号的差值;若所述差值大于参考序号,则将接收的数据报文按照报文序号进行缓存。
8.一种数据报文传输装置,其特征在于,所述装置包括:
获取模块,用于获取待传输的数据报文;
缓存模块,用于将获取的数据报文存入缓冲区;
发送模块,用于将所述数据报文从所述缓冲区加入到发送队列中,按照报文序号遍历所述发送队列中的数据报文,并依次发送至接收方,所述数据报文包括报文序号,所述接收方用于按照报文序号缓存接收到的数据报文,且若缓存的最大报文序号与等待接收的数据报文的报文序号之间的差大于报文序号阈值则确定满足数据报文重传条件,若满足数据报文重传条件则确定是否触发重传,确定触发重传后,下发重传命令,所述重传命令用于指示重传的数据报文的报文序号,所述报文序号阈值为单位时间内接收到的数据报文的个数与参考阈值中的最大值;其中,所述重传的数据报文的报文序号为等待接收的数据报文的报文序号与重传的最大报文序号之间的报文序号,所述重传的最大报文序号为第一数值与第二数值中的较小值,所述第一数值为所述等待接收的数据报文的报文序号与重传的数据报文的报文序号参考值的和,所述第二数值为所述缓存的最大报文序号与单位时间接收数据报文的数量的差,所述重传的数据报文的报文序号参考值根据所述缓存的最大报文序号和所述等待接收的数据报文的报文序号确定;
接收模块,用于接收所述接收方下发的重传命令;
重传模块,用于根据所述重传命令指示的报文序号从所述缓冲区中取出对应的数据报文,将取出的数据报文添加到重传队列中,按照报文序号遍历所述重传队列中的数据报文,并依次传输至所述接收方。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令在被所述处理器执行时实现如权利要求1至3任一项所述的数据报文传输方法,或者,所述至少一条指令在被所述处理器执行时实现如权利要求4所述的数据报文传输方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述至少一条指令在被执行时实现如权利要求1至3任一项所述的数据报文传输方法,或者所述至少一条指令在被执行时实现如权利要求4所述的数据报文传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811257392.4A CN111106902B (zh) | 2018-10-26 | 2018-10-26 | 数据报文传输方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811257392.4A CN111106902B (zh) | 2018-10-26 | 2018-10-26 | 数据报文传输方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111106902A CN111106902A (zh) | 2020-05-05 |
CN111106902B true CN111106902B (zh) | 2022-11-15 |
Family
ID=70419066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811257392.4A Active CN111106902B (zh) | 2018-10-26 | 2018-10-26 | 数据报文传输方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111106902B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112330946A (zh) * | 2021-01-07 | 2021-02-05 | 航天宏图信息技术股份有限公司 | 电网平台数据通信方法、电网数据发送方法、装置和系统 |
CN113923488B (zh) * | 2021-09-15 | 2024-04-16 | 青岛海信网络科技股份有限公司 | 一种公交车、视频流量控制方法及存储介质 |
CN114900269B (zh) * | 2022-07-08 | 2022-09-27 | 广州思德医疗科技有限公司 | 数据传输方法、电子设备及计算机存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007090325A1 (fr) * | 2006-02-08 | 2007-08-16 | Huawei Technologies Co., Ltd. | Procédé et dispositif de transmission de données |
CN103368703A (zh) * | 2012-04-10 | 2013-10-23 | 华为技术有限公司 | 数据包重传方法、数据包接收方法及装置 |
WO2016145964A1 (zh) * | 2015-03-19 | 2016-09-22 | 中兴通讯股份有限公司 | 一种实现丢包请求重传的方法、接收装置和发送装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101547469B (zh) * | 2008-03-24 | 2011-10-05 | 华为技术有限公司 | 一种发送数据的方法、系统和设备 |
CN101488841B (zh) * | 2009-02-18 | 2013-03-27 | 中兴通讯股份有限公司 | 一种无线链路协议帧重传方法 |
CN102790719A (zh) * | 2012-07-31 | 2012-11-21 | 福建星网锐捷网络有限公司 | 提高数据传输质量的报文发送方法、装置和无线接入点 |
CN104184546B (zh) * | 2013-05-27 | 2019-04-02 | 百度在线网络技术(北京)有限公司 | 一种移动通信网络中减少报文重传的方法及系统 |
CN103533450B (zh) * | 2013-06-09 | 2018-03-09 | 浙江宇视科技有限公司 | 一种媒体流可靠传输和接收的方法以及装置 |
US10063444B2 (en) * | 2016-02-29 | 2018-08-28 | Red Hat, Inc. | Network traffic capture analysis |
CN106850595A (zh) * | 2017-01-17 | 2017-06-13 | 烽火通信科技股份有限公司 | 一种流媒体传输优化方法及装置 |
CN107147481A (zh) * | 2017-07-19 | 2017-09-08 | 北京数码视讯科技股份有限公司 | 丢包重传方法、装置及电子设备 |
CN107800519B (zh) * | 2017-11-20 | 2020-12-01 | 烽火通信科技股份有限公司 | 一种数据包的重传方法和重传系统 |
-
2018
- 2018-10-26 CN CN201811257392.4A patent/CN111106902B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007090325A1 (fr) * | 2006-02-08 | 2007-08-16 | Huawei Technologies Co., Ltd. | Procédé et dispositif de transmission de données |
CN103368703A (zh) * | 2012-04-10 | 2013-10-23 | 华为技术有限公司 | 数据包重传方法、数据包接收方法及装置 |
WO2016145964A1 (zh) * | 2015-03-19 | 2016-09-22 | 中兴通讯股份有限公司 | 一种实现丢包请求重传的方法、接收装置和发送装置 |
Non-Patent Citations (3)
Title |
---|
"RP-180664 NR-NTN - solution principles for NR to support NTN_v12";Thales等;《3GPP tsg_ran\tsg_ran》;20180604;全文 * |
Global optimum encoding packet selection mechanism based on opportunistic network coding for wireless network retransmission;Wang Lian等;《The Journal of China Universities of Posts and Telecommunications》;20170215(第01期);全文 * |
基于无线TCP的簇生丢失重传协议;孙芳蕾等;《计算机研究与发展》;20050216(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111106902A (zh) | 2020-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110368689B (zh) | 游戏界面的显示方法、系统、电子设备及存储介质 | |
CN111614549B (zh) | 交互处理方法、装置、计算机设备及存储介质 | |
CN109697113B (zh) | 请求重试的方法、装置、设备及可读存储介质 | |
CN110213024B (zh) | 数据包重传方法、装置及设备 | |
CN109951398B (zh) | 数据发送方法、装置及计算机设备 | |
CN111327694B (zh) | 文件上传方法、装置、存储介质及电子设备 | |
CN111510482B (zh) | 失败网络请求的确定方法、装置及计算机存储介质 | |
CN111106902B (zh) | 数据报文传输方法、装置、设备及计算机可读存储介质 | |
CN110837426A (zh) | 消息处理方法、装置及系统、存储介质 | |
CN111092809A (zh) | 实时推送信息的方法、装置、计算机设备及存储介质 | |
CN109246228B (zh) | 资源获取、资源分配方法、装置、设备及存储介质 | |
CN110601921B (zh) | 数据包传输参数的检测方法及装置、数据包传输系统 | |
CN110912830B (zh) | 传输数据的方法和装置 | |
CN108401194B (zh) | 时间戳确定方法、装置和计算机可读存储介质 | |
WO2021088773A1 (zh) | 一种显示报警文件的方法、装置及系统 | |
CN110381155B (zh) | 任务管理方法、装置、存储介质及终端 | |
CN109688064B (zh) | 数据传输方法、装置、电子设备和存储介质 | |
CN114785766B (zh) | 智能设备的控制方法、终端及服务器 | |
CN110321059B (zh) | 数据处理方法、装置及计算机可读存储介质 | |
CN108683699B (zh) | 转发业务请求的方法和装置 | |
CN107800720B (zh) | 劫持上报方法、装置、存储介质及设备 | |
CN108310767B (zh) | 信息展示方法、装置、设备及计算机可读存储介质 | |
CN114071224A (zh) | 视频数据处理方法、装置、计算机设备及存储介质 | |
WO2019128430A1 (zh) | 带宽确定方法、装置、设备及存储介质 | |
CN111131490A (zh) | 状态更新方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |