CN110677221A - 重传控制方法、通信接口和电子设备 - Google Patents
重传控制方法、通信接口和电子设备 Download PDFInfo
- Publication number
- CN110677221A CN110677221A CN201810710158.6A CN201810710158A CN110677221A CN 110677221 A CN110677221 A CN 110677221A CN 201810710158 A CN201810710158 A CN 201810710158A CN 110677221 A CN110677221 A CN 110677221A
- Authority
- CN
- China
- Prior art keywords
- data packet
- rto
- retransmission
- acknowledgement
- timestamp
- 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.)
- Granted
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/1829—Arrangements specially adapted for the receiver end
- H04L1/1848—Time-out mechanisms
-
- 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/1867—Arrangements specially adapted for the transmitter end
- H04L1/188—Time-out mechanisms
-
- 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/1867—Arrangements specially adapted for the transmitter end
- H04L1/189—Transmission or retransmission of more than one copy of a message
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/552—Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/003—Arrangements for allocating sub-channels of the transmission path
- H04L5/0053—Allocation of signalling, i.e. of overhead other than pilot signals
- H04L5/0055—Physical resource allocation for ACK/NACK
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请实施例提供了一种重传控制方法、通信接口及电子设备,当发送端向接收端发送的第一数据包在第一RTO内未接收到第一数据包的对应的确认时,根据第二RTO进行第二数据包的重传,第二数据包为发送端发送第一数据包后发送的数据包,第二RTO与第一数据包对应的确认的接收时间戳,以及第一数据包的发送时间戳相关。本申请实施例提供的重传控制方法,可以避免不必要的重传,从而缩短数据包的传输时间,节省设备功耗与占用的网络资源。
Description
技术领域
本发明实施例涉及通信领域,并且更具体地涉及数据传输的方法和设备。
背景技术
随着低功耗广域网技术的发展和普及,物联网(IOT,Internet of Things)从一般的局域网应用扩展到大规模广泛部署。IOT设备可以发送数据到云端,云端也可以主动搜集IOT设备的数据,控制远程的IOT设备。物联网需要一个可靠的传输协议及其重传控制算法。但是对于物联网而言,物联网的底层数据连接特别容易受到干扰,因此产生的误码及丢包率会比较高;其次,IOT设备往往都有低功耗的要求,过多的重传会消耗设备的功耗,影响IOT设备的在网服务时间。从标准技术发展的角度来看,IETF制定了受限制应用协议(CoAP,constrained application protocol),COAP协议是一种可以适用于IOT设备的应用层协议,可运行在用户数据报协议(UDP,user datagram protocol)之上,由于UDP协议没有重传控制机制,COAP协议需设计重传控制机制,使得发送端向接收端发送数据包后,若在超时重传时间(RTO,retransmission timeout)内未收到接收端发送的确认时,发送端可重传该数据包。RFC7252为设计的重传控制机制简单地设置RTO初始为2s,后续依次的RTO为4s,8s,16s,32s,最多重传4次。简单CoAP拥塞控制算法(COCOA,CoAP Simple CongestionControl/Advanced)提供的重传控制机制,COCOA设置的RTO基于往返时延(RTT,round-triptime)的估值,考虑网络时延的因素。RTO依次设置为T,K*T,K2*T,K3*T,K4*T…,基于K的指数进行退避。参数K为根据场景动态调整的参数,K可以为1.5、2或3,T为根据RTT的取样计算出的时间。COCOA相比RFC7252激进一些,会一定程度地提升端云传输的性能。但是这两种重传机制可能因为不必要的重传而增加数据包在端到端之间的传输时间,造成对网络资源和设备功耗的浪费。
发明内容
本申请实施例提供一种重传控制方法、通信接口及电子设备,用于减少不必要的重传,缩短数据包在端到端之间的传输时间,节省网络资源和设备功耗。
为达到上述发明目的,第一方面,本申请实施例提供了一种重传控制方法,该方法包括:
发送端向接收端发送第一数据包;若发送端在第一超时重传时间RTO内未接收到第一数据包对应的确认,其中,确认指示接收端已接收到第一数据包,则执行如下步骤:
发送端重传第一数据包,并计算第二超时重传时间RTO,第二RTO与第一数据包对应的确认的接收时间戳,以及第一数据包的发送时间戳相关;换句话说,根据第一数据包对应的确认的接收时间戳,以及第一数据包的发送时间戳计算第二RTO。根据第二RTO进行第二数据包的重传;其中,第二数据包为发送端发送第一数据包后发送的数据包。其中,数据包对应的确认指接收端响应于接收到该数据包而向发送端返回的确认。
当发送端在第一RTO内未收到第一数据包对应的确认时,未及时收到确认可能不是因为时延导致,可能因为网络中已经出现了拥塞。根据第二RTO进行接下来的第二数据包的重传,而第二RTO是根据发生重传时的往返时延计算出的值,重传计时器的周期的设置考虑到第二RTO,也就是考虑到当前较差的网络传输的时延,相比于继续使用第一RTO为基础的指数递增作为RTO,可以避免不必要的重传,缩短数据包传输时间,节省网络资源和设备功耗。
在一种可能的实现方式中,若发送端在第一RTO内接收到第一数据包对应的确认,则发送端根据第一数据包的发送时间戳以及第一数据包对应的确认的接收时间戳更新第一RTO;若发送端在更新后的第一RTO内未接收到第二数据包对应的确认,则发送端重传第二数据包,其中,第二数据包为发送端发送第一数据包后发送的数据包。
在一种可能的实现方式中,根据第二RTO进行重传包括:
若发送端在第一RTO内未接收到第二数据包对应的确认,则发送端重传第二数据包;
若发送端在第二RTO内未接收到第二数据包对应的确认,则再次重传第二数据包。
在发送端首次发送第二数据包时,考虑第一RTO,即网络中的时延,可以避免因RTO设置的小于网络中的时延而带来的不必要的重传;将第一次重传的RTO设置为第二RTO,则考虑了网络传输较差的情况,避免因RTO设置过短导致的不必要重传,缩短数据包传输时间,节省网络资源和设备功耗。
在一种可能的实现方式中,根据第二RTO进行重传包括:
若发送端在第一RTO内未接收到第二数据包对应的确认,则发送端重传第二数据包;
若发送端在第二RTO内未接收到第二数据包对应的确认,则再次重传第二数据包,其中第二RTO大于第一RTO与第一系数的乘积,其中,第一系数的值大于1。具体的,第一系数的值为2。
发送端发送第一数据包时重传计时器的周期为第一RTO的指数递增,即第一RTO、第一RTO*K、第一RTO*K2、…、第一RTO*Ki。在发送端首次发送第二数据包时,考虑第一RTO,即网络中的时延,可以避免因RTO设置的小于网络中的时延而带来的不必要的重传。对于第将第一次重传的第二数据包,此时的RTO取值为第二RTO与第一RTO*K的最大值,K就是第一系数。将两者中最大值设置为第二RTO,则考虑了当前网络传输最差的情况,避免因RTO设置过短导致的不必要重传,缩短数据包传输时间,节省网络资源和设备功耗。
在一种可能的实现方式中,该方法还包括:若发送端在第一RTO*K2内未接收到第二数据包对应的确认,则第三次重传第二数据包;按照此规律,若发送端在第一RTO*Ki内未接收到第二数据包对应的确认,则第i+1次重传第二数据包。i为大于或等于0的整数。
在一种可能的实现方式中,该方法还包括:
若发送端在第一RTO内接收到第二数据包对应的确认,则执行如下步骤:
发送端根据第二数据包的发送时间戳以及第二数据包对应的确认的接收时间戳更新第一RTO;若发送端在更新后的第一RTO内未接收到第三数据包对应的确认,则发送端重传第三数据包,其中,第三数据包为发送端发送第二数据包后发送的数据包。
发送端在第一RTO内收到第二数据包的确认,表明网络传输的拥塞情况有所缓解,可能又回到了较顺畅的网络传输状态。此时将重传计时器的周期调整为第一RTO,重传计时器根据更新后的第一RTO为基础的指数递增进行重传,实现对需要重传的数据包尽快的重传,减少数据包整体传输时间。
在一种可能的实现方式中,该方法还包括:
更新第二RTO,更新后的第二RTO与第二数据包对应的确认的接收时间戳,以及第二数据包的发送时间戳相关;
若发送端在第二RTO内未接收到第三数据包对应的确认,发送端重传第三数据包,其中,第三数据包为发送端发送第二数据包后发送的数据包。
发送端在第一RTO内未收到第二数据包的确认,表明网络传输状态未得到缓解,可能出现拥塞情况,因此将重传计时器的周期调整为第二RTO,此时第三数据包首次发送后的超时重传时间为第二RTO,第二RTO可以带来较长的等待时间来等待网络传输状况缓解,避免因RTO设置过短导致的不必要重传,缩短数据包传输时间,节省网络资源和设备功耗。
在一种可能的实现方式中,该方法还包括:
若发送端在第二RTO内接收到第三数据包对应的确认,则执行如下步骤:
发送端根据第三数据包的发送时间戳以及第三数据包对应的确认的接收时间戳更新第一RTO;
若发送端在更新后的第一RTO内未接收到第四数据包对应的确认,则发送端重传第四数据包,其中,第四数据包为发送端发送第三数据包后发送的数据包。
发送端在第一RTO内收到第三数据包的确认,表明网络传输的拥塞情况有所缓解,可能又回到了较顺畅的网络传输状态。此时将重传计时器的周期调整为第一RTO,重传计时器根据更新后的第一RTO为基础的指数递增进行重传,实现对需要重传的数据包尽快的重传,减少数据包整体传输时间。
在一种可能的实现方式中,该方法还包括:
更新第二RTO(Slow RTO),更新后的第二RTO与第三数据包对应的确认的接收时间戳,以及第三数据包的发送时间戳相关;
若发送端在更新后的第二RTO内未接收到第四数据包对应的确认,则发送端重传第四数据包,其中,第四数据包为发送端发送第三数据包后发送的数据包。
在一种可能的实现方式中,第二RTO为第一数据包对应的确认的接收时间戳与第一数据包的发送时间戳的时间差。
在一种可能的实现方式中,第二RTO为第一数据包的发送时间戳与第一数据包对应的确认的接收时间戳的时间差与第二系数的乘积,第二系数的值大于0。具体的,第二系数的值可以为1.5。
在一种可能的实现方式中,第一数据包中携带重传序号,重传序号指示第一数据包被发送的次数,发送端接收到的确认中携带与确认对应的第一数据包的重传序号相同的重传序号;第二RTO为发送端接收到的确认的接收时间戳与确认对应的第一数据包的发送时间戳的时间差。其中,确认对应的数据包为接收端接收到的数据包,该数据包可能是首次发送的数据包,也可能是重传的数据包。则确认对应的数据包的发送时间戳可以为数据包的首次发送的发送时间戳,也可以为数据包重传时的发送时间戳。
在数据包中携带重传序号,可以根据确认中携带的重传序号区分该确认是响应于什么时间发送/重传的数据包。能够更为准确的计算发生重传时的往返时延,从而可以计算出更准确的第二RTO。
在一种可能的实现方式中,第一数据包中携带重传序号,重传序号指示第一数据包被发送的次数,发送端接收到的确认中携带与确认对应的第一数据包的重传序号相同的重传序号;第二RTO为发送端接收到的确认的接收时间戳与确认对应的第一数据包的发送时间戳的时间差与第二系数的乘积,第二系数的值大于0。具体的,第二系数的值可以为1.5。
在一种可能的实现方式中,第一数据包中包含扩展字段,扩展字段中包括重传序号。
在一种可能的实现方式中,重传序号在第一数据包中的令牌字段中。
第二方面,本申请实施例提供了一种电子设备,该电子设备包括发送单元、计算单元和接收单元,其中:
发送单元用于向接收端发送第一数据包;还用于当接收单元在第一RTO内未接收到第一数据包对应的确认时重传第一数据包,确认指示接收端已接收到第一数据包;还用于根据第二RTO进行第二数据包的重传,其中第二数据包为发送单元发送第一数据包后发送的数据包;
计算单元用于计算第二RTO,第二RTO与第一数据包对应的确认的接收时间戳,以及第一数据包的发送时间戳相关;
接收单元用于接收第一数据包对应的确认。
在一种可能的实现方式中,
计算单元还用于根据第一数据包的发送时间戳以及确认的接收时间戳更新第一RTO;
发送单元还用于向接收端发送第二数据包;还用于当接收单元在第一RTO内接收到第一数据包对应的确认,且接收单元在更新后的第一RTO内未接收到第二数据包对应的确认时,重传第二数据包。
接收单元还用于接收第一数据包对应的确认;
在一种可能的实现方式中,发送单元用于:当接收单元在第一RTO内未接收到第二数据包对应的确认时,重传第二数据包;当接收单元在第二RTO内未接收到第二数据包对应的确认时,再次重传第二数据包;
接收单元还用于接收第二数据包对应的确认。
在一种可能的实现方式中,发送单元用于:当接收单元在第一RTO内未接收到第二数据包对应的确认时,重传第二数据包;当接收单元在第二RTO内未接收到第二数据包对应的确认时,再次重传第二数据包,其中第二RTO大于第一RTO与第一系数的乘积,第一系数的值大于1。具体的,第一系数的值可以为2
在一种可能的实现方式中,计算单元还用于根据第二数据包的发送时间戳以及第二数据包对应的确认的接收时间戳更新第一RTO;
发送单元还用于当接收单元在第一RTO内接收到第二数据包对应的确认且接收单元在更新后的第一RTO内未接收到第三数据包对应的确认时,重传第三数据包;其中第三数据包为发送单元发送第二数据包后发送的数据包;
接收单元还用于接收第三数据包对应的确认。
在一种可能的实现方式中,计算单元还用于更新第二RTO,更新后的第二RTO与第二数据包对应的确认的接收时间戳,以及第二数据包的发送时间戳相关;
发送单元还用于当接收单元在第二RTO内未接收到第三数据包对应的确认时,重传第三数据包;其中第三数据包为发送单元发送第二数据包后发送的数据包。
在一种可能的实现方式中,计算单元还用于根据第三数据包的发送时间戳以及第三数据包对应的确认的接收时间戳更新第一RTO;
发送单元还用于当接收单元在第二RTO内接收到第三数据包对应的确认且接收单元在更新后的第一RTO内未接收到第四数据包对应的确认时,重传第四数据包;其中第四数据包为发送单元发送第三数据包后发送的数据包;
接收单元还用于接收第四数据包对应的确认。
在一种可能的实现方式中,计算单元还用于更新第二RTO,更新后的第二RTO与第三数据包对应的确认的接收时间戳,以及第三数据包的发送时间戳相关;
发送单元还用于当接收单元在更新后的第二RTO内未接收到第四数据包对应的确认时,重传第四数据包;其中第四数据包为发送单元发送第三数据包后发送的数据包;
接收单元还用于接收第四数据包对应的确认。
在一种可能的实现方式中,第二RTO为第一数据包对应的确认的接收时间戳与第一数据包的发送时间戳的时间差。
在一种可能的实现方式中,第二RTO为第一数据包的发送时间戳与第一数据包对应的确认的接收时间戳的时间差与第二系数的乘积,第二系数的值大于0。具体的,第二系数的值可以为1.5。
在一种可能的实现方式中,第一数据包中携带重传序号,重传序号指示第一数据包被发送的次数,接收单元接收到的确认中携带与确认对应的第一数据包的重传序号相同的重传序号;第二RTO为接收单元接收到的确认的接收时间戳与确认对应的第一数据包的发送时间戳的时间差。
在一种可能的实现方式中,第一数据包中携带重传序号,重传序号指示第一数据包被发送的次数,接收单元接收到的确认中携带与确认对应的第一数据包的重传序号相同的重传序号;第二RTO为接收单元接收到的确认的接收时间戳与确认对应的第一数据包的发送时间戳的时间差与第二系数的乘积,第二系数的值大于0。具体的,第二系数的值可以为1.5。
在一种可能的实现方式中,第一数据包中包含扩展字段,扩展字段中包括重传序号。
在一种可能的实现方式中,重传序号在第一数据包中的令牌字段中。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储器、重传计时器和通信接口。其中,重传计时器的周期为第一RTO,存储器中存储有协议栈程序,处理器执行该协议栈程序,以用于:
通过通信接口向接收端发送第一数据包;
当重传计时器超时,且通信接口未接收到指示第一数据包已被接收端接收的确认时,通过通信接口重传第一数据包,并将重传计时器的周期调整为第二RTO,该第二RTO与第一数据包对应的确认的接收时间戳,以及第一数据包的发送时间戳相关;根据第二RTO通过通信接口进行第二数据包的重传,其中第二数据包为通过通信接口发送第一数据包后发送的数据包。
在一种可能的实现方式中,重传计时器的周期为第一RTO和第二RTO,处理器执行该协议栈程序,以用于:
当重传计时器超时,且通信接口未接收到指示第二数据包已被接收端接收的确认时,通过通信接口重传第二数据包;
当重传计时器再次超时,且通信接口未接收到指示第二数据包已被接收端接收的确认时,则通过通信接口再次重传第二数据包。
在一种可能的实现方式中,重传计时器的周期为第一RTO和第二RTO,其中第二RTO大于第一RTO与第一系数的乘积,该第一系数的值大于1,处理器执行该协议栈程序,以用于:
当重传计时器超时,且通信接口未接收到指示第二数据包已被接收端接收的确认时,通过通信接口重传第二数据包;
当重传计时器再次超时,且通信接口未接收到指示第二数据包已被接收端接收的确认时,则通过通信接口再次重传第二数据包。具体的,第一系数的值可以为2。
在一种可能的实现方式中,重传计时器的周期为第一RTO,当重传计时器未超时,且通信接口接收到指示第二数据包已被接收端接收的确认时,处理器执行该协议栈程序,还用于:
根据第二数据包的发送时间戳以及第二数据包对应的确认的接收时间戳更新第一RTO;
将重传计时器的周期调整为更新后的第一RTO;当重传计时器超时,且通信接口未接收到第三数据包对应的确认时,则通过通信接口重传第三数据包,其中,第三数据包为通过通信接口发送第二数据包后发送的数据包。
在一种可能的实现方式中,处理器执行该协议栈程序,还用于:
更新第二RTO,更新后的第二RTO与第二数据包对应的确认的接收时间戳,以及第二数据包的发送时间戳相关;
将重传计时器的周期调整为第二RTO,当重传计时器超时,且通信接口未接收到第三数据包对应的确认时,通过通信接口重传第三数据包,其中,第三数据包为通过通信接口发送第二数据包后发送的数据包。
在一种可能的实现方式中,重传计时器的周期为第二RTO,当重传计时器未超时,且通信接口接收到指示第三数据包已被接收端接收的确认时,处理器执行该协议栈程序,还用于:
根据第三数据包的发送时间戳以及第三数据包对应的确认的接收时间戳更新第一RTO;
将重传计时器的周期调整为更新后的第一RTO;当重传计时器超时,且通信接口未接收到第四数据包对应的确认,则通过通信接口重传第四数据包;其中,第四数据包为通过通信接口发送第三数据包后发送的数据包。
在一种可能的实现方式中,处理器执行该协议栈程序,还用于:
更新第二RTO,更新后的第二RTO与第三数据包对应的确认的接收时间戳,以及第三数据包的发送时间戳相关;
将重传计时器的周期调整为更新后的第二RTO;当重传计时器超时,且通信接口未接收到第四数据包对应的确认,则通过通信接口重传第四数据包;其中,第四数据包为通过通信接口发送第三数据包后发送的数据包。
在一种可能的实现方式中,第二RTO为第一数据包对应的确认的接收时间戳与第一数据包的发送时间戳的时间差。
在一种可能的实现方式中,第二RTO为第一数据包的发送时间戳与第一数据包对应的确认的接收时间戳的时间差与第二系数的乘积,第二系数的值大于0。
在一种可能的实现方式中,第一数据包中携带重传序号,重传序号指示第一数据包被发送的次数,通信接口接收到的确认中携带与确认对应的数据包的重传序号相同的重传序号;第二RTO为通信接口接收到的确认的接收时间戳与确认对应的数据包的发送时间戳的时间差。
在一种可能的实现方式中,第一数据包中携带重传序号,重传序号指示第一数据包被发送的次数,通信接口接收到的确认中携带与确认对应的数据包的重传序号相同的重传序号;第二RTO为通信接口接收到的确认的接收时间戳与确认对应的数据包的发送时间戳的时间差与第二系数的乘积,第二系数的值大于0。具体的,第二系数的值可以为1.5。
在一种可能的实现方式中,第一数据包中包含扩展字段,扩展字段中包括重传序号。
在一种可能的实现方式中,重传序号在第一数据包中的令牌字段中。
第四方面,本申请实施例提供了一种通信接口,包括输入/输出端口和处理器,
处理器用于通过输入/输出端口向接收端发送第一数据包;
当输入/输出端口在第一RTO内未接收到第一数据包对应的确认时,确认指示接收端已接收到第一数据包,则处理器执行如下步骤:
通过输入/输出端口重传第一数据包,并计算第二RTO,第二RTO与第一数据包对应的确认的接收时间戳,以及第一数据包的发送时间戳相关;
根据第二RTO通过输入/输出端口进行第二数据包的重传,其中第二数据包为通过输入/输出端口发送第一数据包后发送的数据包。
在一种可能的实现方式中,处理器用于:
当输入/输出端口在第一RTO内未接收到第二数据包对应的确认时,则通过输入/输出端口重传第二数据包;
当输入/输出端口在第二RTO内未接收到第二数据包对应的确认时,则通过输入/输出端口再次重传第二数据包。
在一种可能的实现方式中,处理器用于:
当输入/输出端口在第一RTO内未接收到第二数据包对应的确认时,则通过输入/输出端口重传第二数据包;
当输入/输出端口在第二RTO内未接收到第二数据包对应的确认时,则通过输入/输出端口再次重传第二数据包,其中第二RTO大于第一RTO与第一系数的乘积,其中第一系数的值大于1。具体的,第一系数的值可以为2。
在一种可能的实现方式中,当输入/输出端口在第一RTO内接收到第二数据包对应的确认时,则处理器还用于执行如下步骤:
根据第二数据包的发送时间戳以及第二数据包对应的确认的接收时间戳更新第一RTO;
当输入/输出端口在更新后的第一RTO内未接收到第三数据包对应的确认时,则通过输入/输出端口重传第三数据包,其中,第三数据包为通过输入/输出端口发送第二数据包后发送的数据包。
在一种可能的实现方式中,处理器还用于:
更新第二RTO(Slow RTO),更新后的第二RTO与第二数据包对应的确认的接收时间戳,以及第二数据包的发送时间戳相关;
当输入/输出端口在第二RTO内未接收到第三数据包对应的确认时,通过输入/输出端口重传第三数据包,其中,第三数据包为通过输入/输出端口发送第二数据包后发送的数据包。
在一种可能的实现方式中,当输入/输出端口在第二RTO内接收到第三数据包对应的确认时,处理器还用于执行如下步骤:
根据第三数据包的发送时间戳以及第三数据包对应的确认的接收时间戳更新第一RTO;
当输入/输出端口在更新后的第一RTO内未接收到第四数据包对应的确认时,则通过输入/输出端口重传第四数据包,其中,第四数据包为通过输入/输出端口发送第三数据包后发送的数据包。
在一种可能的实现方式中,处理器还用于:
更新第二RTO,更新后的第二RTO与第三数据包对应的确认的接收时间戳,以及第三数据包的发送时间戳相关;
当输入/输出端口在更新后的第二RTO内未接收到第四数据包对应的确认时,则通过输入/输出端口重传第四数据包,其中,第四数据包为通过输入/输出端口发送第三数据包后发送的数据包。
在一种可能的实现方式中,第二RTO为第一数据包对应的确认的接收时间戳与第一数据包的发送时间戳的时间差。
在一种可能的实现方式中,第二RTO为第一数据包的发送时间戳与第一数据包对应的确认的接收时间戳的时间差与第二系数的乘积,其中,第二系数的值大于0。具体的,第二系数的值可以为1.5。
在一种可能的实现方式中,第一数据包中携带重传序号,重传序号指示第一数据包被发送的次数,通信接口接收到的确认中携带与确认对应的第一数据包的重传序号相同的重传序号;第二RTO为通信接口接收到的确认的接收时间戳与确认对应的第一数据包的发送时间戳的时间差。
在一种可能的实现方式中,第一数据包中携带重传序号,重传序号指示第一数据包被发送的次数,通信接口接收到的确认中携带与确认对应的第一数据包的重传序号相同的重传序号;第二RTO为通信接口接收到的确认的接收时间戳与确认对应的数据包的发送时间戳的时间差与第二系数的乘积,其中,第二系数的值大于0。具体的,第二系数的值可以为1.5。
在一种可能的实现方式中,数据包中包含扩展字段,扩展字段中包括重传序号。
在一种可能的实现方式中,重传序号在数据包中的令牌字段中。
第五方面,本申请实施例提供了一种电子设备,该电子设备包括第四方面及第四方面任一可能的实现方式中提供的通信接口。
第六方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储有计算机程序的计算机可读存储介质。其中,处理器与计算机可读存储介质耦合,计算机程序被处理器执行时实现第一方面及第一方面任一可能的实现方式中提供的重传控制方法。
第七方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现第一方面及第一方面任一可能的实现方式中提供的重传控制方法。
第八方面,本申请实施例提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面及第一方面任一可能的实现方式中提供的重传控制方法。
附图说明
图1为本发明实施例提供的数据传输的架构示意图;
图2为本发明实施例提供的电子设备结构示意图;
图3为本发明实施例提供的电子设备结构示意图;
图4为本发明实施例提供的电子设备结构示意图;
图5为本发明实施例提供的电子设备结构示意图;
图6为本发明实施例提供的重传机制示意图;
图7为本发明实施例提供的未发生重传的往返时延示意图;
图8为本发明实施例提供的发生重传的往返时延示意图;
图9为本发明实施例提供的重传机制切换示意图;
图10为本发明实施例提供的重传控制方法流程图;
图11为本发明实施例提供的重传机制切换示意图;
图12为本发明实施例提供的重传机制切换示意图;
图13为本发明实施例提供的重传控制方法示意图;
图14为本发明实施例提供的重传计数选项示意图;
图15为本发明实施例提供的电子设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
在开始描述本申请具体实施例之前,先介绍在本申请以下实施例中将会被提及的术语及其含义。可以理解的是,无如其他说明,本申请各个实施例中的这些术语及其含义均可以是相同的。
数据包:也称为报文,是网络传输的基本单位,以一定格式组织起来的数据。不同类型的网络协议对数据包的格式有不同的定义,但通常而言,一个数据包可分为头部(header)和净荷(payload),其中,头部包含了数据包传输过程中必需的信息,比如地址信息、标志位等等,净荷也称为数据包的数据部分,包含了被发送的数据内容。
网络拥塞:网络拥塞是指在网络中传送数据量太大时,由于网络资源有限而造成网络传输性能下降的情况。通常情况下,当网络中负载过度增加致使网络性能下降时,就会发生网络拥塞。
确认(Acknowledgement,ACK):数据传输过程中由接收端发给发送端的一种控制包,用于表示发送端发来的数据已确认接收。
往返时间(Round-Trip Time,RTT):网络传输中一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认(ACK),总共经历的时延。
本申请中的术语“第一”、“第二”用于区分同一类型的对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
图1为本申请适用的一种电子设备之间进行数据传输的架构,该架构包括电子设备101、网络102和电子设备103。电子设备101和电子设备103通过网络102通信连接,其中网络可以为有线网络或无线网络,比如,计算机网络、因特网、物联网或电话网络。电子设备101和103之间基于特定的通信协议建立通信连接,然后根据建立的连接,以数据包为单位传输数据。数据包在传输的过程中会经过网络200中的一个或多个网络设备,例如接入网设备、路由设备或接入点(AP,access point)。电子设备101可以将数据包通过网络102发送给电子设备103。电子设备101可以是终端设备,具体的可以是具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。例如,可以为移动电话、计算机、平板电脑、个人数码助理(personal digital assistant,PDA)、移动互联网设备(mobile Internetdevice,MID)、可穿戴设备和电子书阅读器(e-book reader)等;也可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动设备。更具体的,也可以为音乐播放器、游戏机、医疗保健设备、联网汽车、智能仪表、传感器、报警器、机顶盒、打印机、电子眼镜、无人驾驶飞机和服务机器人等物联网设备,或称为IOT设备。电子设备103可以为终端设备或者服务器,更具体的,可以为IOT云平台服务器。IOT云平台服务器接收多个IOT设备发送的数据包,并对接收到的数据包进行处理。IOT设备可采集数据,通过网络102将数据包发送给IOT云平台服务器。IOT云平台服务也可以向IOT设备发送数据包,用于进行远程数据收集或者远程控制IOT设备。为了简化描述,本申请实施例中将已建立通信连接的两个电子设备中的一个称为发送端,另一个称为接收端。可以理解的是,发送端和接收端可以是具有数据收发能力的任何设备。比如,发送端可以是一台服务器,接收端是另一台服务器;或者发送端是终端设备,接收端是服务器;或者发送端和接收端均为终端设备。另外,发送端和接收端是两个相对的角色,且可以互相转换,即同一设备在不同的场景下可能是发送端,也有可能是接收端。
所属领域的技术人员可以理解一个数据传输架构通常可包括比图1中所示的部件更少或更多的部件,或者包括与图1中所示部件不同的部件,图1仅仅示出了与本申请实施例所公开的多个实现方式更加相关的部件。
图2为本申请实施例的电子设备101或103的一个示例性的结构示意图。如图2所示电子设备200包括处理器201、存储器202和通信接口203等部件。本领域技术人员可以理解,电子设备200可以包括比图示更多或更少的部件,或者组合某些部件。
这些部件可通过一根或多根总线204或信号线进行通信,总线可以分为地址总线、数据总线、控制总线等。
处理器201可以是中央处理器(CPU,central processing unit),网络处理器(NP,network processor)或者CPU和NP的组合。处理器201还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(ASIC,application-specific integrated circuit),可编程逻辑器件(PLD,programmable logic device)或其组合。上述PLD可以是复杂可编程逻辑器件(CPLD,complex programmable logic device),现场可编程逻辑门阵列(FPGA,field-programmable gate array,缩写:FPGA),通用阵列逻辑(GAL,generic array logic,缩写:GAL)或其任意组合。
存储器202,用于存储计算机程序,诸如图3所示的应用程序205和操作系统206;处理器201可调用存储器202存储的计算机程序,从而实现该计算机程序定义的功能。例如处理器201执行操作系统从而在电子设备200上实现操作系统的各种功能。操作系统206可以为或者其它操作系统,本申请实施例对此不作任何限制。
存储器202还存储有除计算机程序之外的其他数据,诸如操作系统206和应用程序205运行过程中产生的数据。存储器202可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(RAM,random-access memory);存储器202也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(flash memory),硬盘(HDD,hard diskdrive)或固态硬盘(SSD,solid-state drive);存储器202还可以包括上述种类的存储器的组合。图3中仅示出了一个存储器,当然,存储器202也可以根据需要,设置为多个存储设备。存储器202也可以是处理器201中的存储器,在此不做限制。
通信接口203用于将电子设备200与其它电子设备连接,允许电子设备200在网络上进行通讯的硬件,可以实现数据包的发送与接收的硬件。例如,通信接口203可以通过有线或无线连接到网络以连接到其他电子设备,例如外部其它的终端或服务器。在终端设备中,通信接口203可以具体为调制解调器或者天线或者wifi模块,在服务器中,通信接口203可以具体为射频单元或者天线。通信接口203上也可集成有处理器和存储器(包括RAM和只读存储器(ROM,Read-Only Memory)。
进一步地,在一个实施例中,如图3所示,电子设备200从逻辑上可划分为硬件层21、操作系统206以及应用层23。硬件层21包括如上所述的处理器201、存储器202、通信接口204等硬件资源。应用层23包括一个或多个应用程序,比如应用程序205。操作系统206作为硬件层21和应用层23之间的软件中间件,是管理和控制硬件与软件资源的计算机程序。
操作系统206包括内核22,内核22用于提供底层系统组件和服务,例如:电源管理、内存管理、协议栈24、驱动程序25等。协议栈24是实现网络协议的组件。应用程序205下达数据发送指令后,数据经过协议栈24,通过驱动程序25调用通信接口203发送该数据。在一个实施例中,驱动程序25包括存储器驱动251、通信接口驱动252(用于驱动通信接口203)。协议栈24包括协议组件241,用于实现网络协议功能。本申请实施例提供的重传控制方法可以由内核22中的协议组件241来实施。
在一个实施例中,电子设备200可以将协议组件的功能卸载到通信接口203,从而实现内核旁路,提升数据转发性能。如图4所示,通信接口203为可编程的通信接口,协议组件203实现在可编程的通信接口203中。相应地,本申请实施例提供的重传控制方法可以由通信接口203来实施,具体地,可以通过修改通信接口203的硬件或固件来实现该方法。可以是将计算机程序存储在可编程通信接口203上集成的存储器中,可编程通信接口203上集成的处理器执行该计算机程序来实现本申请提供的重传控制方法。还可以是通过可编程通信接口203中的逻辑电路实现本申请提供的重传控制方法。
在一个实施例中,如图5所示,电子设备200可以将协议组件241实现在应用层23(如DPDK(data plane development kit)技术),从而实现内核旁路,提升数据转发性能。相应地,本申请实施例提供的重传控制方法可以由应用层的软件来实施。
在数据传输中过程中,设计重传机制来保证数据传输的可靠性,具体设计了重传计时器,重传计时器也可称为退避计时器(back off timer)。发送端向接收端发送数据包后,在重传计时器设置的RTO时间内没有收到确认(ACK,acknowledgement)时,换句话说,即RTO超时的时候,发送端重新传输(也可称为重传)该数据包。重传计时器设置的RTO为多个时间间隔。图6示例了这种重传机制,图6中包括发送端和接收端,在重传一定次数后可以放弃发送该数据包。发送端向接收端发送的数据包有时可以为请求消息的形式发送。应当理解的是,发送端和接收端是两个相对的角色,且可以互相转换,即同一设备在不同的场景下可能是发送端,也有可能是接收端。
CoAP协议是一种可以适用于IOT设备的应用层协议,具有重传机制。COAP协议RFC7252中,RTO设置为2,22,23,24,25。在这种重传机制下,如果真实的RTT大于RTO时,那么可能就会进行不必要的重传,从而对网络资源和设备功耗造成浪费。又因为发送端无法及时收到任何反馈,所以重传的数据包会仍在端到端的路径上,将增加数据包在端到端之间的传输时间并且加重当前路径的拥塞状况。COCOA协议的重传控制机制还可能过于激进,即在RTT估值较小时计算出的RTO值较小,重传频率较高会造成大量的重传,例如测量结果发现在数据包队列很长的情况下,该机制会造成大量的重传(高达150%~200%)。大量的重传可能因为大量的重传而增加数据包在端到端之间的传输时间,造成对网络资源和设备功耗的浪费,并且可能加重网络拥塞。
本申请提供了一种重传控制方法及设备。该重传控制方法运行在重传控制装置上,该重传控制装置可以为前述图2至图5中提到的电子设备200。具体的,可以为IOT设备或者IOT云平台服务器,对于上行数据,IOT设备为发送端,该重传控制装置为IOT设备;对于下行数据,IOT云平台服务器为发送端,该重传控制装置为IOT云平台服务器。该重传控制方法可以为适用于COAP协议的重传机制,也可以是适用于其他网络协议的重传机制,例如传输控制协议(TCP,transmission control protocol)。
本申请实施例提供的重传控制方法中涉及了两个RTO参数,分别为第一RTO和第二RTO,第一RTO也可称为标准RTO或fast-RTO,第二RTO也可称为慢速RTO或slow-RTO。
第一RTO是根据未发生重传时的往返时延为基准值计算出的。即第一RTO为数据包发送时间戳与该数据包对应的确认的接收时间戳之间的时间差。具体的,可将未发生重传时的往返时延作为基准值代入噪声处理函数f(x)求得慢速重传时间,其中x为基准值。一般地,f(x)=ax+b,a和b均为常量。每当发生一次无重传的消息交互时,都可根据最新计算的未发生重传时的往返时延更新标准重传时间。并且与RFC6298中TCP协议的RTO的设置不同的是,本申请中的超时重传时间不需要限制下限为1s,因为下限设置为1s可能影响低时延网络下重传的时效性。本申请中的标准重传时间的上限值可能至少为60s。本申请中计算出的标准重传时间和初始的标准重传时间可以有所抖动,抖动程度在1/4*SRTT到SRTT之间,其中SRTT为平滑后的往返时延(SRTT,Smoothed Round Trip Time),可以理解为“平滑化”的RTT。按照RFC6298中SRTT和RTTVAR的规则,对于初始的标准重传时间,SRTT可以为1/3的初始的标准重传时间。当初始的标准重传时间可以设置为2s时,SRTT的值为2/3s。因此,本申请提供的第一RTO可以跟踪网络的真实RTT,可以及时触发重传。对于发生了与拥塞无关的网络损耗的端到端的路径,无额外延迟的重传对于数据包的尽快传输十分有效。
发送端向接收端发送数据包后,并在RTO内接收到数据包对应的确认时,数据包的发送时间戳与确认的接收时间戳之间的时间差为未发生重传时的往返时延。其中,数据包对应的确认表示接收端已接收该数据包。如图7所示,发送端在T1时首次发送数据包P1给接收端,发送端在T2时接收到接收端响应于已接收P1所返回的确认。此时,计算出的未发生重传时的往返时延RTT1=T2-T1。
第二RTO是根据发生重传时的往返时延为基准值计算出的。第二RTO与数据包对应的确认的接收时间戳,以及该数据包的发送时间戳相关。其中,数据包的发送时间戳可以指数据包首次发送(原始传输)的时刻,也可以指重传该数据包时的时刻。可选的,可以将发生重传时的往返时延作为第二RTO,即第二RTO为数据包发送时间戳和数据包对应的确认的接收时间戳之间的时间差。可选的,可以将发生重传时的往返时延乘以一个系数作为第二RTO。该系数为预设的系数,大于0,即第二RTO为数据包的发送时间戳与该数据包对应的确认的接收时间戳的时间差与第二系数的乘积,其中第二系数的值大于0。具体的,第二系数的值可以大于1,使得第二RTO不那么激进,比如第二系数可以取值为1.5。第二RTO考虑到了多个不必要重传造成的较长的往返时延,第二RTO设置为大于发生重传时端到端RTT的值。端到端的RTT值可能会因为不必要的重传而增大,因此在每次重传数据包后根据发生重传时的往返时延更新第二RTO。
第二RTO本身也可以是一种退避的形式,因为第二RTO包含了数据包传输过程中,通过重传计时器退避所累计使用的时间,即第二RTO包括了在数据包传输过程中可能产生的所有不必要的重传所消耗的时间。假设一个稳定的RTT并且所有的重传都是不必要的,换句话说,收到的确认消息是针对数据包原始传输(或称为:首次发送)的响应,则此次数据包传输所消耗的时间为:从数据包的发送时间戳开始到最后一次重传的发送时间戳,再加上一个RTT时间。
发送端向接收端发送数据包后,发送端进行一次或多次重传该数据包后最终接收到该数据包的确认时,数据包的发送时间戳与确认的接收时间戳之间的时间差为发生重传时的往返时延。例如图8所示,发送端在T1时首次发送数据包P2给接收端,发送端在T2时进行数据包P2的第一次重传,发送端在Tn时接收到接收端响应于已接收到数据包P2所返回的确认,在此期间数据包P2可能被重传一次或多次。此时,计算出的发生重传时的往返时延RTT2=Tn-T1。进一步的,若发送端在Tn时接收到确认为在T2时P2第一次重传时发送的数据包对应的确认,则RTT2=Tn-T2。无论数据包在何时需要重传,将获得确认前所需的时间作为发生重传时的往返时延,也就是说,发生重传时的往返时延的计算可以是从数据包的首次发送开始,直到接收到首次发送的数据包对应的确认为止。或者,也可以是从数据包的重传开始,直到接收到重传的数据包对应的确认为止。
本申请实施例提供了一种重传控制方法,当先前的数据包传输(或称为:请求消息交互)过程中未发生重传时,使用第一RTO作为二进制指数退避的基础。当先前的数据包传输过程中发生重传时,引入了第二RTO做为退避过程使用的RTO中的一个值,即此时的RTO的设置考虑第二RTO。
本申请实施例提供的重传控制方法的逻辑可包括以下三种可能的方案,其中,本申请中各实施例中提到的K为预设的系数,可以称为第一系数,K的取值为大于1的数:
FAST_RTO退避方法(后续称为第一重传机制):采用第一RTO为基础,执行原有的二进制指数退避,作为数据包未发生重传时的重传控制机制。具体的,重传计时器RTO可以设置为:fast-RTO,fast-RTO*K,fast-RTO*K2,fast-RTO*K3,…,fast-RTO*Ki。其中,K为大于1的数,K可以为2。
FAST_SLOW_FAST_RTO退避方法(后学称为第二重传机制):此机制可以是在使用第一重传机制时,数据包仍然需要一次或多次重传时使用的重传控制机制:首先使用第一RTO作为数据包的原始传输的RTO,以缓解网络中与拥塞无关的损耗。然后,如果原始传输的数据包被重传,则使用第二RTO作为第一次重传的RTO,可以避免不必要的重传,以缓解此时网络中可能出现的拥塞。如果还需要继续重传,则采用第一RTO以继续退避。具体的,重传计时器的RTO可以设置为:fast-RTO,max(slow-RTO,fast-RTO*K),fast-RTO*K2,fast-RTO*K3,…,fast-RTO*Ki。具体的,RTO还可以设置为:fast-RTO,slow-RTO,fast-RTO*K2,fast-RTO*K3,…,fast-RTO*Ki。其中,K为大于1的数,K可以为2。
SLOW_FAST_RTO退避方法(后续称为第三重传机制):此方法可以是当先前的数据包传输使用第二重传机制或第三重传机制,但数据包的传输仍需要一次或多次重传的情况下使用的重传控制机制。具体的:对于数据包的原始传输,使用第二RTO作为原始传输的RTO,以缓解网络中的拥塞。此时,在第二RTO内有很大概率能收到数据包对应的确认,可以获得无歧义RTT样本,无歧义RTT样本为未发生重传时的往返时延。一旦获得了无重传的消息交互,可变为采用第一重传机制作为后续的重传控制方法。具体的,重传计时器的RTO可以设置为:slow-RTO,fast-RTO,fast-RTO*K2,fast-RTO*K3,…,fast-RTO*Ki。其中,K为大于1的数,K可以为2。
对于电子设备初始化后发送的第一个数据包,由于在此之前还未发送过数据包,则采用初始RTO值作为超时重传时间,初始RTO可以设置为2s。每当获得无歧义的RTT样本时,即在第一、第二或第三重传机制中任一机制下或者其他重传机制下数据包在发送后的RTO内收到该数据包的确认时,都采用第一重传机制,使用更新后的第一RTO作为后续数据包传输的RTO。
本申请实施例提供的重传控制方法,可以通过设置三种重传计时器对应上述三种重传机制,当需要改变重传机制时,根据对应的重传计时器的RTO进行数据包的重传;也可以通过更改同一个重传计时器的RTO时间来实现上述三种重传机制各自设置的RTO。
本申请实施例提供的重传控制方法可以针对当前的网络状态改变RTO,一旦当前网络状态发生改变时,可以切换到更合适的RTO,因而可以减少不必要的重传,缩短数据包传输需要的时间,节省设备功耗和传输所占用的网络资源。
图9为前述三种重传机制的切换示意图。①为数据包未重传就收到确认,表示数据包首次发送就在当前的RTO内收到了该数据包的确认,其中该数据包对应的确认为接收端响应于已经接收到该数据包所向发送端返回的消息。当出现①描述的情况时,可以说明当前的网络传输情况良好,未出现丢包或数据包排队时延过高的现象。此时当前的RTO若为第二或第三重传机制中的RTO,则将使用更适应当前网络传输情况的第一重传机制的RTO作为数据包的RTO。若当前的RTO就是第一重传机制的RTO,则继续使用第一重传机制的RTO。②为数据包重传并收到确认,表示数据包在某次重传后,并在当前的RTO内收到了该数据包的确认,其中该数据包的确认为接收端响应于接收到该数据包所向发送端返回的消息。当出现②描述的情况时,表示当前的网络传输中可能出现丢包或请求消息排队时延过高的现象。此时当前的RTO若为第一重传机制的RTO,则使用更适应当前网络传输情况的第二重传机制的RTO作为数据包的RTO。若此时当前的RTO若为第二重传机制的RTO,则使用更适应当前网络传输情况的第三重传机制的RTO。若当前的RTO就是第三重传机制的RTO,表示当前的网络传输的拥塞未得到缓解,仍然继续使用第三重传机制的RTO。
重传机制的切换也可以看做是重传计时器周期的调整,可以是三种周期的互相调整,也可以是在一个周期基础上更改。
图10为图9三种重传机制切换示意图对应的流程示意图。图9与图10中各自的①或②的含义相同。
下面将详细介绍本申请实施例提供的重传控制方法。
本发明实施例提供了如图10中虚线框S1所示的重传控制方法(第一重传机制)。
步骤S11:发送端发送第一数据包给接收端;
步骤S12:判断在第一RTO内是否接收到第一数据包对应的确认;
若发送端在第一RTO内未接收到第一数据包对应的确认,执行步骤S13;
可选的,若发送端在第一RTO内接收到第一数据包对应的确认,执行步骤S14;
若此时的第一数据包为该重传控制设备初始化后发送的第一个数据包,则第一RTO可以为预设的初始RTO,例如2s。若此时该重传控制设备已经传输过数据包,重传控制设备已经根据本实施例提供的方法更新了第一RTO,则步骤S12中提到的第一RTO为已更新后的第一RTO。发送端判断在在第一数据包的首次发送(原始传输)后第一RTO内是否接收到第一数据包对应的确认,该确认指示接收端已接收到第一数据包,换句话说,确认是指接收端收到第一数据包后向发送端返回的消息,使得发送端得知接收端已经收到该第一数据包。
若重传计时器设置的第一RTO到期时发送端还未收到数据包对应的确认,则执行步骤S13。
步骤S15:若发送端在第一RTO内接收到第一数据包对应的确认,则更新第一RTO;根据第一数据包的发送时间戳以及第一数据包对应的确认的接收时间戳更新第一RTO。
若重传计时器设置的第一RTO到期前发送端收到数据包对应的确认,则更新第一RTO,调整重传计时器的周期,将重传计时器的周期调整为基于更新后的第一RTO的指数递增。第一RTO是根据图7对应的描述中第一RTO的计算方法计算出的。更新后的第一RTO与第一数据包的发送时间戳以及第一数据包对应的确认的接收时间戳相关。第一RTO的更新已在前述图7的部分进行说明,在此不再赘述。未发生重传时的往返时延的取样是没有歧义的,真实的反应了网络传输顺畅时的往返时延。若第一数据包之后连续多个数据包都在第一RTO(或更新后的第一RTO)内收到数据包对应的确认,则可以连续更新第一RTO。
可选的,若数据包始终在第一RTO(或更新后的第一RTO)内收到数据包对应的确认,则表示网络传输情况未发生改变,网络传输效率较高,可能未发生拥塞,则可以一直按照本发明实施例提供的第一重传机制进行数据包的重传,即重传计时器RTO始终设置为:以第一RTO(fast-RTO)为基础的指数递增:fast-RTO,fast-RTO*K,fast-RTO*K2,fast-RTO*K3,…,fast-RTO*Ki。其中,K为大于1的数,K可以为2。数据包在第i次重传后,发送端在fast-RTO*Ki内未收到第一数据包对应的确认,则重传第一数据包,其中i为正整数。这种重传控制方法可以充分考虑到真实的往返时延,避免了不必要的数据包重传。
可选的,步骤S15还可以在步骤S12之前进行。也就是发送端发送数据包后,在任一RTO内收到该数据包的确认时,都可更新第一RTO。这里的任一RTO可以为初始RTO、第一RTO或第二RTO或其他设置的RTO的值。
步骤S13:若在第一RTO内发送端未收到第一数据包对应的确认,则重传第一数据包。
发送端经过一次或多次重传(重新发送)第一数据包后,最终在重传计时器设置的RTO到期之前收到第一数据包对应的确认。重传计时器设置的第一次重传的RTO以及之后的重传的RTO可以为以第一RTO(fast-RTO)为基础的指数递增:fast-RTO*K,fast-RTO*K2,fast-RTO*K3,…,fast-RTO*Ki。其中,K为大于1的数,K可以为2。数据包在第i次重传后,发送端在fast-RTO*Ki内未收到第一数据包对应的确认,则重传第一数据包,其中i为正整数。
可选的,第一次重传的RTO以及之后的重传的RTO可以为以RTO为基础的指数递增:RTO*K,RTO*K2,RTO*K3,…,RTO*Ki。其中,K为大于0的数,K可以为2。数据包在第i次重传后,发送端在RTO*Ki内未收到第二数据包对应的确认,则重传第二数据包,其中i为大于等于2的正整数。其中,该RTO可以为根据第一RTO和第二RTO计算出的RTO,也可以为预设的RTO。
可选的,可以多次重传该数据包直至发送端收到数据包对应的确认。可选的,还可以设置最大重传次数,当重传次数到最大重传次数时,放弃继续重传该数据包。
步骤S14:计算第二RTO;
第二RTO与第一数据包对应的确认的接收时间戳,以及第一数据包的发送时间戳相关。此时,若已有先前计算出的第二RTO,则更新第二RTO。可根据前述图8对应的描述中第二RTO的方法统计的发生重传时的往返时延计算第二RTO。
可选的,可以将计算出的第二RTO代替原先的第二RTO。
可选的,第二RTO为第一数据包对应的确认的接收时间戳与第一数据包的发送时间戳的时间差;
可选的,第二RTO为第一数据包的发送时间戳与第一数据包对应的确认的接收时间戳的时间差与第二系数的乘积,其中,第二系数的值大于0。具体的,第二系数可以为1.5。
第一RTO与网络传输顺畅时的时延相关,在第一RTO内未收到确认,则未收到确认的原因可能是网络传输发生了拥塞,可能并不是仅因为时延。此时网络传输情况可能发生改变,网络传输可能发生拥塞。
可选的,本发明实施例提供的重传控制方法可更改重传机制以适应当前的网络传输情况,从原先的第一重传机制改为第二重传机制以灵活适应网络传输情况的改变,减少不必要的重传,缩短数据包传输所需时间。换句话说,为了适应当前的网络传输情况,发送端发送下一数据包时的RTO考虑第二RTO,可以调整重传计时器设置的RTO,将重传计时器的周期调整为第二RTO。即步骤S14之后可以执行如图10中虚线框S2所示的方法:根据第二RTO进行第二数据包的重传,其中,第二数据包为发送端发送第一数据包后发送的数据包,具体的,可以指发送第一数据包后下一个发送的数据包,也可以指收到第一数据包对应的确认后发送的数据包。
下面将详细介绍图10中虚线框S2所示方法S2的具体流程,即第二重传机制。
步骤S21:发送端发送第二数据包给接收端;
步骤S22:判断在第一RTO内是否接收到第二数据包对应的确认;
若发送端在第一RTO内未接收到第二数据包对应的确认,执行步骤S23;
可选的,若发送端在第一RTO内接收到第二数据包对应的确认,执行步骤S27;
发送端判断在第二数据包的首次发送(原始传输)后的第一RTO内是否接收到第二数据包对应的确认,该确认指示接收端已接收到第二数据包,换句话说,确认是指接收端收到第二数据包后向发送端返回的消息,使得发送端得知接收端已经收到该第二数据包。
若重传计时器到期时(在第一RTO内)发送端还未收到数据包对应的确认,则执行步骤S23。
步骤S27:根据第二数据包的发送时间戳以及第二数据包对应的确认的接收时间戳更新第一RTO;
更新后的第一RTO是根据图7对应的描述中第一RTO的计算方法计算出的,更新后的第一RTO与第二数据包的发送时间戳以及第二数据包对应的确认的接收时间戳有关。根据第二数据包的发送时间戳以及第二数据包对应的确认的接收时间戳计算新的未发生重传时的往返时延,得到新得无歧义的RTT样本。第一RTO的计算已在前述图7的部分进行说明,在此不再赘述。未发生重传时的往返时延的取样是没有歧义的,真实的反应了网络传输顺畅时的往返时延。
此时,在第二重传机制下出现一次未发生重传的数据包传输,表明网络传输的拥塞情况有所缓解,可能又回到了较顺畅的网络传输状态。此时当前使用的第二重传控制方法或者说当前重传计时器的RTO不能很好适应当前的网络传输情况,可以将当前的第二重传机制转换成第一重传机制,将重传计时器的周期调整为第一RTO,重传计时器根据更新后的第一RTO为基础的指数递增进行重传,实现对需要重传的数据包尽快的重传,减少数据包整体传输时间。
因此可选的,步骤S27后执行图10中虚线框S1的步骤,即步骤S11-S15。发送端向接收端发送第三数据包时,重传计时器使用的RTO为以第一RTO(fast-RTO)为基础的指数递增:fast-RTO,fast-RTO*K,fast-RTO*K2,fast-RTO*K3,…,fast-RTO*Ki。其中,K为大于1的数,K可以为2。数据包在第i次重传后,发送端在fast-RTO*Ki内未收到该数据包对应的确认,则重传该数据包,其中i为正整数。第三数据包为发送端发送第二数据包后发送的数据包,具体的,可以指发送第二数据包后下一个发送的数据包,也可以指收到第二数据包对应的确认后发送的数据包。如图10所示,S1和S2可以互相转换,以灵活适应网络传输情况的变化,减少不必要的重传,缩短数据包传输所需时间。
步骤S23:若在第一RTO内发送端未收到第二数据包对应的确认,则重传第二数据包。
此时,以第一RTO作为数据包的首次发送(原始传输)的RTO,可以避免因为RTO小于真实的网络时延而造成的不必要的重传,若在第一RTO内未收到确认,则第一次重传该数据包。
步骤S24:判断在第二RTO内发送端是否收到第二数据包对应的确认;
发送端判断在第一次重传后的第二RTO内是否接收到第二数据包对应的确认,换句话说,第一次重传的RTO为第二RTO(或称为slow-RTO)。该确认指示接收端已接收到第二数据包,换句话说,确认是指接收端收到第二数据包后向发送端返回的消息,使得发送端得知接收端已经收到该第二数据包。
在其他实现方式中,步骤S24:判断在第二RTO内发送端是否收到第二数据包对应的确认。其中,第二RTO大于第一RTO与K的乘积,K为大于1的数,具体的,K可以为2,即第一次重传的RTO为slow-RTO与fast-RTO*K中的最大值,也就是max(slow-RTO,fast-RTO*K)的解。取slow-RTO与fast-RTO*K中的最大值也就是考虑网络传输最差的情况,以避免不必要的重传。
若在第二RTO内发送端未收到第二数据包对应的确认,则执行步骤S25;若在第二RTO内发送端收到第二数据包对应的确认,则执行步骤S26。
步骤S25:重传第二数据包;
此时是第二次重传第二数据包,之后发送端再经过一次或多次重传(重新发送)第二数据包后,最终收到第二数据包对应的确认。
可选的,第二次重传的RTO以及之后的重传的RTO可以为以第一RTO为基础的指数递增:fast-RTO*K2,fast-RTO*K3,…,fast-RTO*Ki。其中,K为大于1的数,K可以为2。数据包在第i次重传后,发送端在fast-RTO*Ki内未收到第二数据包对应的确认,则重传第二数据包,其中i为大于等于2的正整数。
例如发送端首次发送数据包P1之后,以第一RTO作为数据包P1的原始传输的RTO,若判断在第一RTO内(重传计时器超时时)未收到确认,则发送端进行P1的第一次重传;以第二RTO作为P1的第一次重传的RTO,若在max(slow-RTO,fast-RTO*K)内或者在slow-RTO(第二RTO)内发送端未收到确认,即重传计时器超时时,则发送端进行P1的第二次重传;若请求消息需要第三次重传,以fast-RTO*K2时间作为第三次重传的RTO,若在fast-RTO*K2内发送端未收到确认,则发送端进行P1的第四次重传。
可选的,第二次重传的RTO以及之后的重传的RTO可以为以RTO为基础的指数递增:RTO*K2,RTO*K3,…,RTO*Ki。其中,K为大于1的数,K可以为2。数据包在第i次重传后,发送端在RTO*Ki内未收到第二数据包对应的确认,则重传第二数据包,其中i为大于等于2的正整数。其中,该RTO可以为根据第一RTO和第二RTO计算出的RTO,也可以为预设的RTO。
可选的,可以多次重传该数据包直至发送端收到数据包对应的确认。可选的,还可以设置最大重传次数,当重传次数到最大重传次数时,放弃继续重传该数据包。
首次发送(原始传输)的RTO取值第一RTO(fast-RTO)考虑到了真实的往返时延,避免进行不必要的重传。一旦在第一RTO内没有收到数据包原始传输的确认,则充分考虑发生重传时的往返时延,避免因为网络拥塞导致的时延过长而进行不必要的重传,可以有效的缓解网络拥塞。
步骤S26:更新第二RTO;
更新后的第二RTO与第二数据包对应的确认的接收时间戳,以及第二数据包的发送时间戳相关。具体的可根据前述图8对应的描述中第二RTO的计算方法统计的发生重传时的往返时延计算更新后的第二RTO。
可选的,可以将计算出的第二RTO代替原先的第二RTO。
可选的,第二RTO为第一数据包对应的确认的接收时间戳与第一数据包的发送时间戳的时间差;
可选的,第二RTO为第一数据包的发送时间戳与第一数据包对应的确认的接收时间戳的时间差与第二系数的乘积,其中,第二系数的值大于0。具体的,第二系数可以为1.5。
此时,在第二重传机制下仍发生了数据包重传,按照第二重传机制设置的RTO进行重传后,未能缓解网络拥塞情况。说明当前网络拥塞依旧严重,出现连续的丢包或者排队时延很高,当前的重传计时器的RTO并不能够最好的保证发送端的数据包发送行为。因此更改重传机制以适应当前的网络传输情况,从原先的第二重传机制改为第三重传机制。换句话说,为了适应当前的网络传输情况,调整重传计时器的RTO,将重传计时器的周期调整为更新后的第二RTO。步骤S26之后执行如图10中虚线框S3所示的方法:发送端向接收端发送第三数据包,若发送端在第二RTO内未接收到第三数据包对应的确认,发送端重传第三数据包。第三数据包为发送端发送第二数据包后发送的数据包,具体的,可以指发送第二数据包后下一个发送的数据包,也可以指收到第二数据包对应的确认后发送的数据包。
下面将详细介绍图10中虚线框S3所示的重传控制方法,即第三重传机制。
步骤S31:发送端发送第三数据包给接收端;
步骤S32:判断在第二RTO内是否接收到第三数据包对应的确认;
若发送端在第二RTO内未接收到第三数据包对应的确认,执行步骤S33;
可选的,若发送端在第二RTO内接收到第三数据包对应的确认,执行步骤S35;
发送端判断在在第三数据包的首次发送(原始传输)后第二RTO内是否接收到第三数据包对应的确认,该确认指示接收端已接收到第三数据包,换句话说,确认是指接收端收到第三数据包后向发送端返回的消息,使得发送端得知接收端已经收到该第三数据包。
若重传计时器到期时(在第二RTO内)发送端还未收到数据包对应的确认,则执行步骤S33。
步骤S35:若发送端在第二RTO内接收到第三数据包对应的确认,则更新第一RTO;
更新后的第一RTO是根据图7对应的描述中第一RTO的计算方法计算出的,更新后的第一RTO与第三数据包的发送时间戳以及第三数据包对应的确认的接收时间戳相关。根据第三数据包的发送时间戳以及第三数据包对应的确认的接收时间戳计算新的未发生重传时的往返时延,得到新得无歧义的RTT样本。第一RTO的更新已在前述图7的部分进行说明,在此不再赘述。未发生重传时的往返时延的取样是没有歧义的,真实的反应了网络传输顺畅时的往返时延。
此时,在第三重传机制下出现一次未发生重传的数据包传输,表明网络传输的拥塞情况有所缓解,可能又回到了较顺畅的网络传输状态。此时当前使用的第三重传控制方法或者说当前使用的RTO不能很好适应当前的网络传输情况,可以将当前的第三重传机制转换成第一重传机制,将重传计时器的周期调整为更新后的第一RTO,按照更新后的第一RTO为基础的指数退避,实现对需要重传的数据包尽快的重传,减少数据包整体传输时间。
因此可选的,步骤S35后可以执行图10中虚线框S1的步骤,即步骤S11-S15。发送端向接收端发送第四数据包时,使用的RTO为以第一RTO(fast-RTO)为基础的指数递增:fast-RTO,fast-RTO*K,fast-RTO*K2,fast-RTO*K3,…,fast-RTO*Ki。其中,K为大于1的数,K可以为2。数据包在第i次重传后,发送端在fast-RTO*Ki内未收到该数据包对应的确认,则重传该数据包,其中i为正整数。其中,第四数据包为发送端发送第三数据包后发送的数据包,具体的,可以指发送第三数据包后下一个发送的数据包,也可以指收到第三数据包对应的确认后发送的数据包。这种RTO的转换可以实现灵活适应网络传输情况的变化,减少不必要的重传,缩短数据包传输所需时间。
步骤S33:若在第二RTO内发送端未收到第三数据包对应的确认,则重传第三数据包。
发送端经过一次或多次重传(重新发送)第三数据包后,最终收到第一数据包对应的确认。第一次重传的RTO以及之后的重传的RTO可以为以第一RTO(fast-RTO)为基础的指数递增:fast-RTO*K,fast-RTO*K2,fast-RTO*K3,…,fast-RTO*Ki。其中,K为大于1的数,K可以为2。数据包在第i次重传后,发送端在fast-RTO*Ki内未收到第一数据包对应的确认,则重传第一数据包,其中i为正整数,第i次重传的RTO为fast-RTO*Ki。
可选的,第一次重传的RTO以及之后的重传的RTO可以为以RTO为基础的指数递增:RTO*K,RTO*K2,RTO*K3,…,RTO*Ki。其中,K为大于1的数,K可以为2。数据包在第i次重传后,发送端在RTO*Ki内未收到第二数据包对应的确认,则重传第二数据包,其中i为正整数。其中,该RTO可以为根据第一RTO和第二RTO计算出的RTO,也可以为预设的RTO。
例如发送端首次发送数据包之后,发送端在第二RTO内未收到确认,则发送端第一次重传该数据包;第一次重传的RTO为fast-RTO*K,若发送端在第一次重传该数据包之后fast-RTO*K内未收到确认,则发送端第二次重传该数据包;第二次重传的RTO为fast-RTO*K2,若发送端在第二次重传该数据包之后fast-RTO*K2内未收到确认,则发送端第三次重传该数据包。
当重传计时超时,发送端还未收到确认消息,则重传第三数据包。
步骤S34:更新第二RTO;
更新后的第二RTO与第三数据包对应的确认的接收时间戳,以及第三数据包的发送时间戳相关。具体的可根据前述图8对应的描述中第二RTO的计算方法统计的发生重传时的往返时延计算更新后的第二RTO。
可选的,可以将计算出的第二RTO代替原先的第二RTO。
可选的,第二RTO为第三数据包对应的确认的接收时间戳与第三数据包的发送时间戳的时间差;
可选的,第二RTO为第三数据包的发送时间戳与第三数据包对应的确认的接收时间戳的时间差与第二系数的乘积,其中,第二系数的值大于0。具体的,第二系数可以为1.5。
此时,在第三重传机制下仍发生了请求消息重传,按照第三重传机制进行退避后,未能缓解网络拥塞情况。说明当前网络拥塞依旧严重,表示网络拥塞情况没有缓解,出现连续的丢包或者排队时延很高,需要维持第三重传机制,将重传计时器周期调整为更新后的第二RTO。直到发送一次未重传的消息交互时,将重传计时器的周期调整为更新后的第一RTO。即继续按照如图10虚线框S3所示的步骤S31-S35进行重传控制,即发送端向接收端发送第四数据包,若发送端在更新后的第二RTO内未接收到第四数据包对应的确认,则发送端重传第四数据包。其中,第四数据包为发送端发送第三数据包后发送的数据包,具体的,可以指发送第三数据包后下一个发送的数据包,也可以指收到第三数据包对应的确认后发送的数据包。。
下面将通过具体例子介绍三种重传机制之间的切换。
例如图11所示,发送端向接收端发送数据包P1,发送端的接收单元在重传计时器超时前收到P1的确认,这里重传使用的RTO可以为第一或第二或第三重传机制的RTO,也可以为初始化时初始RTO。发送端发送数据包P1后,未经重传就接收到确认,即出现图9中①描述的情况:首次发送后收到确认消息,则当前网络传输情况适用于第一重传机制,则切换到第一重传机制(若当前的重传机制本就是第一重传机制,则维持不变)。同时,可以根据未发生重传时的往返时延更新第一RTO,将重传计时器的周期调整为更新后的第一RTO。
切换到第一重传机制后,发送端向接收端发送数据包P2,发送端在重传计时器超时前没有收到P2的确认,这里重传计时器超时指在发送P2的发送时间戳起至当前的时间戳之间的时间差大于第一RTO。发送端在两次重传P2后收到P2的确认,即出现如图9中②所描述的情况:发生重传后收到确认消息,则当前的网络传输情况适用于第二重传机制,则从当前的第一重传机制切换到第二重传机制。同时,可以根据发生重传时的往返时延计算第二RTO,将重传计时器的周期调整为第二RTO,后续的数据包传输按照第二RTO进行重传。
切换到第二重传机制后,发送端向接收端发送数据包P3,发送端在重传计时器超时前(在第一RTO内)收到P3的确认,即出现图9中①描述的情况:首次发送后收到确认,则当前网络传输情况适用于第一重传机制,则从当前的第二重传机制切换到第一重传机制。同时,可以根据未发生重传时的往返时延更新第一RTO,将重传计时器的周期调整为更新后的第一RTO。
切换到第一重传机制后,发送端向接收端依次发送的数据包P4和P5,都在重传计时器超时前(第一RTO内)接收到确认,即出现图9中①描述的情况:首次发送后收到确认,因此继续维持第一重传机制。同时,可以根据未发生重传时的往返时延更新第一RTO,将重传计时器的周期调整为更新后的第一RTO。发送端向接收端发送的数据包P6后,在重传计时器超时前未收到确认,则进行重传,因此将从第一重传机制再次切换到第二重传机制。
接着图11中发送端接收到数据包P6对应的确认,如图12所示,发送端向接收端发送数据包P7,发送端在重传计时器超时前(在第一RTO内)没有收到P7的确认,这里RTO为第二重传机制设置的RTO。发送端在两次重传P7后收到P7的确认,即出现如图9中②所描述的情况:发生重传后收到确认,则当前的网络传输情况适用于第三重传机制,则从当前的第二重传机制切换到第三重传机制,后续的按照第三重传机制设置的RTO进行重传。同时,可以根据发生重传时的往返时延更新第二RTO,将重传计时器的周期调整为更新后的第二RTO。
切换到第三重传机制后,发送端向接收端发送数据包P8,发送端在重传计时器超时前(第二RTO内)收到P8的确认消息,即出现图9中②描述的情况:发生重传后收到确认,,则当前网络传输情况仍适用于第三重传机制,则根据发生重传时的往返时延更新第二RTO,将重传计时器的周期调整为更新后的第二RTO。
仍在第三重传机制,此时发送端向接收端发送请求消息P9,发送在重传计时器超时前(第二RTO内)内收到P9的确认,即出现如图9中①所描述的情况:未发生重传后收到确认消息,则当前的网络传输情况适用于第一重传机制。可以根据未发生重传时的往返时延更新第一RTO,将重传计时器的周期调整为更新后的第一RTO,后续的按照第一重传机制设置的RTO进行重传。
在前述计算发生重传时的往返时延时,当重传数据包后收到的确认后,获得的RTT样本可能有歧义,因此可能影响测量RTT以及进一步估量慢速重传时间的值。因此,本申请实施例提供一种数据传输方法,可以确定确认是响应于接收到数据包的原始传输还是响应于接收到数据包的某次重传,从而有益于获得数据包发送重传时的往返时延,从而在网络发生拥塞或丢包而进行重传时也可以准确计算出第二RTO。
本申请实施例提供的数据传输方法的流程如图13所示,具体包括以下步骤:
步骤41:发送端向接收端发送数据包,数据包中携带重传序号,重传序号用于指示数据包被发送的次数。
可选的,数据包中包含扩展字段,扩展字段中携带重传序号;该扩展字段可以称为重传计数选项,重传计数选项可以用于区分确认是响应于原始传输的数据包还是响应于某次重传的数据包。但是,重传计数选项不能在空消息或重置消息中使用,因为一些协议例如COAP协议规定不允许在空消息中添加选项。
重传计数选项的格式如图14所示,可以命名为rexmit-cnt。重传计数选项的值是可变大小的无符号整数,长度可以为0到1字节,推荐为1字节,rexmit-cnt的字段号码可以为分配的对应字段。重传计数选项可以同时出现在请求消息和确认消息中。当重传计数选项在请求消息中出现时,它指示表示请求消息的发送的序号或者表示请求消息的传输顺序。
对于请求消息的原始传输,重传序号N可以为X,具体的,可以为数字0表示。请求消息的原始传输可以携带数字255(0xFF)发送给接收端可以解释为数字0的原始传输。
可选的,重传序号在数据包中已有的字段中,例如可以在数据包中的令牌字段的扩展语义中。令牌是一个本地标识符,发送端可以使用不同的令牌值来区分请求消息的原始传输与多次重传。
重传序号用于指示数据包被发送的次数。具体的,对于同一个数据包,该数据包首次发送(原始传输)时携带的重传序号与该数据包每次重传时携带的重传序号是不同的,不同重传时携带的重传序号也是不同的。数据包发送/重传时所携带的重传序号需全局唯一的,即首次发送的请求消息所携带的重传序号与多次重传时重传的请求消息所携带的重传序号都不相同。重传序号可以是单调递增或单调递减或等比增长的数值。
可选的,如图13所示,每次重传时,数据包所携带的重传序号加一,例如,首次发送该数据包时,携带的重传序号为X,则第一次重传该数据包时,重传的请求消息携带的重传序号为X+1,第二次重传该数据包时,数据包携带的重传序号为X+2。
可选的,发送端存储首次发送所述请求消息时的时间戳和每次重传请求消息时的时间戳。例如图13中首次发送时间戳T1,和第一次重传、第二次重传的时间戳T2、T3。
步骤42:接收端接收发送端发送的数据包,接收端向发送端返回该数据包对应的确认,确认中携带与确认对应的数据包的重传序号相同的重传序号;
如果接收端支持(可实现)重传序号,并且该重传序号存在于接收到的数据包中,那么接收端返回的确认中携带与接收到的数据包携带的重传序号相同的重传序号。如果接收端要以空确认返回,则接收端在稍后返回的对该数据包的确认中携带该重传序号。
步骤43:发送端接收接收端返回的确认,确认中携带与确认对应的数据包的重传序号相同的重传序号。第二RTO为发送端接收到的确认的接收时间戳与确认对应的数据包的发送时间戳的时间差。
当携带着重传序号的确认到达时,发送端使用确认携带的重传序号找到与确认具有相同重传序号的数据包的发送时间戳。例如图13所示,发送端接收到P2的确认,确认中携带的重传序号为X+2,X+2为第二次重传的数据包的重传序号,则该确认为接收端响应于接收到第二次重传的数据包所返回的确认。若发送端接收到确认的接收时间戳为T4,则所得到的RTT样本的值为确认的接收时间戳与第二次重传的数据包的发送时间戳之间的时间差。得到的RTT样本为前述的发生重传时的往返时延,可以用于第二RTO的计算与更新。
一旦发送端接收到来自接收端的携带有重传序号的确认,发送端就会得知接收端是否支持(可实现)该重传序号。如果初始化时接收端发送的数据包的确认中携带重传序号,则发送端得知接收端支持该重传序号,并将在后续发送数据包时携带重传序号。数据包的原始传输可以携带重传序号0,具体的可以根据CoAP编码规则发送一个零字节整数。如果接受的确认中不包括重传序号,发送端可以暂停将重传序号加入数据包发送给接收端。如果发送端发送的数据包中不携带重传序号,但是收到的确认中携带有重传序号,那么发送端需要忽略该确认中的重传序号。
当使用重传序号计算出当前的第二RTO时,还需与以前的发生重传时的数据包传输中获得的RTT样本值比较,取当前计算出的第二RTO与以前的RTT样本值中的最大值作为最新的第二RTO。如果没有可用的以前的RTT样本(例如,接收端返回一个空确认),那么就直接使用当前计算出的第二RTO作为第二RTO。
基于以上实施例,本申请实施例还提供了一种电子设备300,如图15所示,该电子设备300包括发送单元301、计算单元302、接收单元303。
发送单元301用于向接收端发送数据包,还用于向接收端重传数据包;具体的,可用于执行前述实施例中的步骤S11、S13、S21、S23、S25、S31、S33和S34。
计算单元302用于更新第一RTO,还用于计算或更新第二RTO;具体的,可用于执行前述实施例中的步骤S14、S15、S26、S27和S35。
接收单元303用于接收数据包对应的确认,该确认为接收端响应于接收到该数据包所发送的信息。
基于以上实施例,本申请实施例还提供了一种通信接口,该通信接口包括输入/输出端口和处理器,该处理器可实现上述任意一个或多个实施例提供的重传控制方法。
基于以上实施例,本申请实施例还提供了一种电子设备,该电子设备包括上述的通信接口,使得该电子设备可实现上述任意一个或多个实施例提供的重传控制方法。
基于以上实施例,本申请实施例还提供了一种计算机存储介质,该存储介质中存储计算机指令,该计算机指令在被一个或多个处理器读取并执行时可实现上述任意一个或多个实施例提供的重传控制方法。计算机存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码或计算机指令的介质。
基于以上实施例,本申请提供一种计算机程序产品,计算机程序产品包括计算机指令,当计算机指令被处理器执行时,使得处理器执行上述任意一个或多个实施例提供的重传控制方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (48)
1.一种重传控制方法,其特征在于,所述方法包括:
发送端向接收端发送第一数据包;
若所述发送端在第一超时重传时间RTO内未接收到所述第一数据包对应的确认,所述确认指示所述接收端已接收到所述第一数据包,则执行如下步骤:
所述发送端重传所述第一数据包,并计算第二超时重传时间RTO,所述第二RTO与所述第一数据包对应的确认的接收时间戳,以及所述第一数据包的发送时间戳相关;
根据所述第二RTO进行第二数据包的重传;所述第二数据包为所述发送端发送所述第一数据包后发送的数据包。
2.权利要求1所述方法,其特征在于,所述根据所述第二RTO进行重传包括:
若所述发送端在所述第一RTO内未接收到所述第二数据包对应的确认,则所述发送端重传所述第二数据包;
若所述发送端在所述第二RTO内未接收到所述第二数据包对应的确认,则再次重传所述第二数据包。
3.根据权利要求1所述方法,其特征在于,所述根据所述第二RTO进行重传包括:
若所述发送端在所述第一RTO内未接收到所述第二数据包对应的确认,则所述发送端重传所述第二数据包;
若所述发送端在所述第二RTO内未接收到所述第二数据包对应的确认,则再次重传所述第二数据包,其中所述第二RTO大于所述第一RTO与第一系数的乘积,所述第一系数的值大于1。
4.根据权利要求3所述方法,其特征在于,所述第一系数的值为2。
5.根据权利要求2-4任一项所述方法,其特征在于,所述方法还包括:
若所述发送端在所述第一RTO内接收到所述第二数据包对应的确认,则执行如下步骤:
所述发送端根据所述第二数据包的发送时间戳以及所述第二数据包对应的确认的接收时间戳更新所述第一RTO;
若所述发送端在更新后的所述第一RTO内未接收到第三数据包对应的确认,则所述发送端重传所述第三数据包,所述第三数据包为所述发送端发送所述第二数据包后发送的数据包。
6.根据权利要求2-4任一项所述方法,其特征在于,所述方法还包括:
更新所述第二RTO,更新后的所述第二RTO与所述第二数据包对应的确认的接收时间戳,以及所述第二数据包的发送时间戳相关;
若所述发送端在所述第二RTO内未接收到第三数据包对应的确认,所述发送端重传所述第三数据包,所述第三数据包为所述发送端发送所述第二数据包后发送的数据包。
7.根据权利要求6所述方法,其特征在于,所述方法还包括:
若所述发送端在所述第二RTO内接收到所述第三数据包对应的确认,则执行如下步骤:所述发送端根据所述第三数据包的发送时间戳以及所述第三数据包对应的确认的接收时间戳更新所述第一RTO;
若所述发送端在更新后的所述第一RTO内未接收到第四数据包对应的确认,则所述发送端重传所述第四数据包,所述第四数据包为所述发送端发送所述第三数据包后发送的数据包。
8.根据权利要求6所述方法,其特征在于,所述方法还包括:
更新所述第二RTO,更新后的所述第二RTO与所述第三数据包对应的确认的接收时间戳,以及所述第三数据包的发送时间戳相关;
若所述发送端在更新后的所述第二RTO内未接收到第四数据包对应的确认,则所述发送端重传所述第四数据包,所述第四数据包为所述发送端发送所述第三数据包后发送的数据包。
9.根据权利要求1-5任一项所述方法,其特征在于,所述第二RTO为所述第一数据包对应的确认的接收时间戳与所述第一数据包的发送时间戳的时间差。
10.根据权利要求1-5任一项所述方法,其特征在于,所述第二RTO为所述第一数据包的发送时间戳与所述第一数据包对应的确认的接收时间戳的时间差与第二系数的乘积,所述第二系数的值大于0。
11.根据权利要求1-5任一项所述方法,其特征在于,所述第一数据包中携带重传序号,所述重传序号指示所述第一数据包被发送的次数,所述发送端接收到的所述第一数据包对应的确认中携带与所述确认对应的第一数据包的重传序号相同的重传序号;
所述第二RTO为所述发送端接收到的所述第一数据包对应的确认的接收时间戳与所述确认对应的所述第一数据包的发送时间戳的时间差。
12.根据权利要求1-5任一项所述方法,其特征在于,所述第一数据包中携带重传序号,所述重传序号指示所述第一数据包被发送的次数,所述发送端接收到的所述第一数据包对应的确认中携带与所述确认对应的第一数据包的重传序号相同的重传序号;
所述第二RTO为所述发送端接收到的确认的接收时间戳与所述确认对应的所述第一数据包的发送时间戳的时间差与第二系数的乘积,所述第二系数的值大于0。
13.根据权利要求10或12所述方法,其特征在于,所述第二系数的值为1.5。
14.根据权利要求11或12所述的方法,其特征在于,所述第一数据包中包含扩展字段,所述扩展字段中包括所述重传序号。
15.根据权利要求11或12任一项所述的方法,其特征在于,所述重传序号在所述第一数据包中的令牌字段中。
16.一种电子设备,其特征在于,所述设备包括发送单元、计算单元和接收单元:
所述发送单元用于向接收端发送第一数据包;还用于当所述接收单元在第一超时重传时间RTO内未接收到所述第一数据包对应的确认时,重传所述第一数据包,所述确认指示所述接收端已接收到所述第一数据包;还用于根据第二超时重传时间RTO进行第二数据包的重传,所述第二数据包为所述发送单元发送所述第一数据包后发送的数据包;
所述计算单元用于计算所述第二RTO,所述第二RTO与所述第一数据包对应的确认的接收时间戳,以及所述第一数据包的发送时间戳相关;
所述接收单元用于接收所述第一数据包对应的确认。
17.根据权利要求16所述的设备,其特征在于,
所述发送单元用于:当所述接收单元在所述第一RTO内未接收到所述第二数据包对应的确认时,重传所述第二数据包;当所述接收单元在所述第二RTO内未接收到所述第二数据包对应的确认时,再次重传所述第二数据包;
所述接收单元还用于接收所述第二数据包对应的确认。
18.根据权利要求16所述的设备,其特征在于,
所述发送单元用于:当所述接收单元在所述第一RTO内未接收到所述第二数据包对应的确认时,重传所述第二数据包;当所述接收单元在所述第二RTO内未接收到所述第二数据包对应的确认时,再次重传所述第二数据包,其中所述第二RTO大于所述第一RTO与第一系数的乘积,所述第一系数的值大于1。
19.根据权利要求18所述的设备,其特征在于,所述第一系数的值为2。
20.根据权利要求17-19任一项所述的设备,其特征在于,
所述计算单元还用于根据所述第二数据包的发送时间戳以及所述第二数据包对应的确认的接收时间戳更新所述第一RTO;
所述发送单元还用于当所述接收单元在所述第一RTO内接收到所述第二数据包对应的确认且所述接收单元在更新后的所述第一RTO内未接收到第三数据包对应的确认时,重传所述第三数据包;所述第三数据包为所述发送单元发送所述第二数据包后发送的数据包;
所述接收单元还用于接收所述第三数据包对应的确认。
21.根据权利要求17-19任一项所述的设备,其特征在于,
所述计算单元还用于更新所述第二RTO,更新后的所述第二RTO与所述第二数据包对应的确认的接收时间戳,以及所述第二数据包的发送时间戳相关;
所述发送单元还用于当所述接收单元在所述第二RTO内未接收到第三数据包对应的确认时,重传所述第三数据包;所述第三数据包为所述发送单元发送所述第二数据包后发送的数据包。
22.根据权利要求21所述的设备,其特征在于,
所述计算单元还用于根据所述第三数据包的发送时间戳以及所述第三数据包对应的确认的接收时间戳更新所述第一RTO;
所述发送单元还用于当所述接收单元在所述第二RTO内接收到所述第三数据包对应的确认且所述接收单元在更新后的所述第一RTO内未接收到第四数据包对应的确认时,重传所述第四数据包,所述第四数据包为所述发送单元发送所述第三数据包后发送的数据包;
所述接收单元还用于接收所述第四数据包对应的确认。
23.根据权利要求21所述的设备,其特征在于,
所述计算单元还用于更新所述第二RTO,更新后的所述第二RTO与所述第三数据包对应的确认的接收时间戳,以及所述第三数据包的发送时间戳相关;
所述发送单元还用于当所述接收单元在更新后的所述第二RTO内未接收到第四数据包对应的确认时,重传所述第四数据包,所述第四数据包为所述发送单元发送所述第三数据包后发送的数据包;
所述接收单元还用于接收所述第四数据包对应的确认。
24.根据权利要求16-20任一项所述的设备,其特征在于,所述第二RTO为所述第一数据包对应的确认的接收时间戳与所述第一数据包的发送时间戳的时间差。
25.根据权利要求16-20任一项所述的设备,其特征在于,所述第二RTO为所述第一数据包的发送时间戳与所述第一数据包对应的确认的接收时间戳的时间差与第二系数的乘积,所述第二系数的值大于0。
26.根据权利要求16-20任一项所述的装置,其特征在于,所述第一数据包中携带重传序号,所述重传序号指示所述第一数据包被发送的次数,所述接收单元接收到的所述第一数据包对应的确认中携带与所述确认对应的第一数据包的重传序号相同的重传序号;
所述第二RTO为所述接收单元接收到的所述第一数据包对应的确认的接收时间戳与所述确认对应的第一数据包的发送时间戳的时间差。
27.根据权利要求16-20任一项所述的设备,其特征在于,所述第一数据包中携带重传序号,所述重传序号指示所述第一数据包被发送的次数,所述接收单元接收到的所述第一数据包对应的确认中携带与所述确认对应的第一数据包的重传序号相同的重传序号;
所述第二RTO为所述接收单元接收到的所述第一数据包对应的确认的接收时间戳与所述确认对应的第一数据包的发送时间戳的时间差与第二系数的乘积,所述第二系数的值大于0。
28.根据权利要求25或27所述的设备,其特征在于,所述第二系数的值为1.5。
29.根据权利要求26或27所述的设备,其特征在于,所述第一数据包中包含扩展字段,所述扩展字段中包括所述重传序号。
30.根据权利要求26或27所述的设备,其特征在于,所述重传序号在所述第一数据包中的令牌字段中。
31.一种电子设备,其特征在于,包括处理器和存储有计算机程序的计算机可读存储介质;所述处理器与所述计算机可读存储介质耦合,所述计算机程序被所述处理器执行时实现如权利要求1-15任一项所述的重传控制方法。
32.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-15任一项所述的重传控制方法。
33.一种通信接口,包括输入/输出端口和处理器,其特征在于,所述处理器用于通过所述输入/输出端口向接收端发送第一数据包,若所述输入/输出端口在第一超时重传时间RTO内未接收到所述第一数据包对应的确认,所述确认指示所述接收端已接收到所述第一数据包,则所述处理器执行如下步骤:
通过所述输入/输出端口重传所述第一数据包,并计算第二超时重传时间RTO,所述第二RTO与所述第一数据包对应的确认的接收时间戳,以及所述第一数据包的发送时间戳相关;
根据所述第二RTO通过所述输入/输出端口进行第二数据包的重传;所述第二数据包为通过所述输入/输出端口发送所述第一数据包后发送的数据包。
34.根据权利要求33所述的通信接口,其特征在于,所述处理器用于:
当所述输入/输出端口在所述第一RTO内未接收到所述第二数据包对应的确认时,通过所述输入/输出端口重传所述第二数据包;
当所述输入/输出端口在所述第二RTO内未接收到所述第二数据包对应的确认时,通过所述输入/输出端口再次重传所述第二数据包。
35.根据权利要求33所述的通信接口,其特征在于,所述处理器用于:
若所述输入/输出端口在所述第一RTO内未接收到所述第二数据包对应的确认,则通过所述输入/输出端口重传所述第二数据包;
若所述输入/输出端口在所述第二RTO内未接收到所述第二数据包对应的确认,则通过所述输入/输出端口再次重传所述第二数据包,其中所述第二RTO大于所述第一RTO与第一系数的乘积,所述第一系数的值大于1。
36.根据权利要求35所述的通信接口,其特征在于,所述第一系数的值为2。
37.根据权利要求34-36任一项所述的通信接口,其特征在于,若所述输入/输出端口在所述第一RTO内接收到所述第二数据包对应的确认,则所述处理器还用于执行如下步骤:
根据所述第二数据包的发送时间戳以及所述第二数据包对应的确认的接收时间戳更新所述第一RTO;
若所述输入/输出端口在更新后的所述第一RTO内未接收到第三数据包对应的确认,则通过所述输入/输出端口重传所述第三数据包;所述第三数据包为通过所述输入/输出端口发送所述第二数据包后发送的数据包。
38.根据权利要求34-36任一项所述的通信接口,其特征在于,所述处理器还用于:
更新所述第二RTO,更新后的所述第二RTO与所述第二数据包对应的确认的接收时间戳,以及所述第二数据包的发送时间戳相关;
若所述输入/输出端口在所述第二RTO内未接收到第三数据包对应的确认,通过所述输入/输出端口重传所述第三数据包;所述第三数据包为通过所述输入/输出端口发送所述第二数据包后发送的数据包。
39.根据权利要求38所述的通信接口,其特征在于,若所述输入/输出端口在所述第二RTO内接收到所述第三数据包对应的确认,则所述处理器还用于执行如下步骤:
根据所述第三数据包的发送时间戳以及所述第三数据包对应的确认的接收时间戳更新所述第一RTO;
若所述输入/输出端口在更新后的所述第一RTO内未接收到第四数据包对应的确认,则通过所述输入/输出端口重传所述第四数据包;所述第四数据包为通过所述输入/输出端口发送所述第三数据包后发送的数据包。
40.根据权利要求38所述的通信接口,其特征在于,所述处理器还用于:更新所述第二RTO,更新后的所述第二RTO与所述第三数据包对应的确认的接收时间戳,以及所述第三数据包的发送时间戳相关;
若所述输入/输出端口在更新后的所述第二RTO内未接收到第四数据包对应的确认,则通过所述输入/输出端口重传所述第四数据包;所述第四数据包为通过所述输入/输出端口发送所述第三数据包后发送的数据包。
41.根据权利要求33-37任一项所述的通信接口,其特征在于,所述第二RTO为所述第一数据包对应的确认的接收时间戳与所述第一数据包的发送时间戳的时间差。
42.根据权利要求33-37任一项所述的通信接口,其特征在于,所述第二RTO为所述第一数据包的发送时间戳与所述第一数据包对应的确认的接收时间戳的时间差与第二系数的乘积,所述第二系数的值大于0。
43.根据权利要求33-37任一项所述的通信接口,其特征在于,所述第一数据包中携带重传序号,所述重传序号指示所述第一数据包被发送的次数,所述发送端接收到的确认中携带与所述确认对应的第一数据包的重传序号相同的重传序号;所述第二RTO为所述发送端接收到的确认的接收时间戳与所述确认对应的所述第一数据包的发送时间戳的时间差。
44.根据权利要求33-37任一项所述的通信接口,其特征在于,所述第一数据包中携带重传序号,所述重传序号指示所述第一数据包被发送的次数,所述发送端接收到的确认中携带与所述确认对应的所述第一数据包的重传序号相同的重传序号;所述第二RTO为所述发送端接收到的确认的接收时间戳与所述确认对应的所述第一数据包的发送时间戳的时间差与第二系数的乘积,所述第二系数的值大于0。
45.根据权利要求42或44所述的通信接口,其特征在于,所述第二系数的值为1.5。
46.根据权利要求43或44所述的通信接口,其特征在于,所述第一数据包中包含扩展字段,所述扩展字段中包括所述重传序号。
47.根据权利要求43或44所述的通信接口,其特征在于,所述重传序号在所述第一数据包中的令牌字段中。
48.一种电子设备,其特征在于,包括如权利要求33-47所述的通信接口。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810710158.6A CN110677221B (zh) | 2018-07-02 | 2018-07-02 | 重传控制方法、通信接口和电子设备 |
CN202210662151.8A CN115396067A (zh) | 2018-07-02 | 2018-07-02 | 重传控制方法、通信接口和电子设备 |
CN202210664067.XA CN115396068A (zh) | 2018-07-02 | 2018-07-02 | 重传控制方法、通信接口和电子设备 |
EP19829957.0A EP3806366B1 (en) | 2018-07-02 | 2019-04-08 | Method for controlling retransmission, communication interface, and electronic device |
EP23191836.8A EP4297314A3 (en) | 2018-07-02 | 2019-04-08 | Method for controlling retransmission, communication interface, and electronic device |
PCT/CN2019/081718 WO2020007084A1 (zh) | 2018-07-02 | 2019-04-08 | 重传控制方法、通信接口和电子设备 |
US17/138,321 US11671210B2 (en) | 2018-07-02 | 2020-12-30 | Retransmission control method, communications interface, and electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810710158.6A CN110677221B (zh) | 2018-07-02 | 2018-07-02 | 重传控制方法、通信接口和电子设备 |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210662151.8A Division CN115396067A (zh) | 2018-07-02 | 2018-07-02 | 重传控制方法、通信接口和电子设备 |
CN202210664067.XA Division CN115396068A (zh) | 2018-07-02 | 2018-07-02 | 重传控制方法、通信接口和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110677221A true CN110677221A (zh) | 2020-01-10 |
CN110677221B CN110677221B (zh) | 2022-06-14 |
Family
ID=69060761
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210664067.XA Pending CN115396068A (zh) | 2018-07-02 | 2018-07-02 | 重传控制方法、通信接口和电子设备 |
CN201810710158.6A Active CN110677221B (zh) | 2018-07-02 | 2018-07-02 | 重传控制方法、通信接口和电子设备 |
CN202210662151.8A Pending CN115396067A (zh) | 2018-07-02 | 2018-07-02 | 重传控制方法、通信接口和电子设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210664067.XA Pending CN115396068A (zh) | 2018-07-02 | 2018-07-02 | 重传控制方法、通信接口和电子设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210662151.8A Pending CN115396067A (zh) | 2018-07-02 | 2018-07-02 | 重传控制方法、通信接口和电子设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11671210B2 (zh) |
EP (2) | EP3806366B1 (zh) |
CN (3) | CN115396068A (zh) |
WO (1) | WO2020007084A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111698510A (zh) * | 2020-05-22 | 2020-09-22 | 北京大米科技有限公司 | 一种数据处理的方法、装置及电子设备 |
CN112769526A (zh) * | 2020-12-11 | 2021-05-07 | 邦彦技术股份有限公司 | 数据包重传方法、系统和存储介质 |
CN115208521A (zh) * | 2022-08-22 | 2022-10-18 | 北京钢铁侠科技有限公司 | 一种会话层客户端与服务端通讯保障及工作流管控方法 |
US11671210B2 (en) | 2018-07-02 | 2023-06-06 | Huawei Technologies Co., Ltd. | Retransmission control method, communications interface, and electronic device |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11438960B2 (en) * | 2020-03-29 | 2022-09-06 | PanPsy Technologies, LLC | Enhanced power saving processes |
US12262318B2 (en) * | 2021-04-22 | 2025-03-25 | Texas Instruments Incorporated | Power aware event scheduling |
WO2022260321A1 (en) * | 2021-06-11 | 2022-12-15 | Samsung Electronics Co., Ltd. | Method and node for transmitting critical information in a wireless network |
CN113992307A (zh) * | 2021-10-28 | 2022-01-28 | 国网信息通信产业集团有限公司 | 数据报文的传输方法、装置、电子设备及计算机存储介质 |
US12184417B2 (en) * | 2022-08-03 | 2024-12-31 | Google Llc | Early retransmission for hardware reliable transport |
CN115714826A (zh) * | 2022-11-30 | 2023-02-24 | 合肥埃科光电科技股份有限公司 | 基于AF_XDP的GigE Vision协议数据包处理方法及系统 |
Citations (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020124096A1 (en) * | 2001-01-18 | 2002-09-05 | Koninklijke Philips Electronics N.V. | Method for efficient retransmission timeout estimation in NACK-based protocols |
CN1370361A (zh) * | 1999-08-17 | 2002-09-18 | 艾利森电话股份有限公司 | 用于确定时间参量的方法和设备 |
CN1551551A (zh) * | 2003-02-19 | 2004-12-01 | �ձ�������ʽ���� | 改善可靠性和吞吐量的无线通信系统及重发超时确定方法 |
WO2005006665A1 (en) * | 2003-07-01 | 2005-01-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for setting the retransmission timeout period in a packet switched communication network |
EP1511288A2 (en) * | 2003-08-22 | 2005-03-02 | Canon Kabushiki Kaisha | Image supply apparatus, recording apparatus, and recording system, and control method and program thereof |
CN1863033A (zh) * | 2005-05-14 | 2006-11-15 | 腾讯科技(深圳)有限公司 | 获取网络超时重传间隔的方法及网络中数据传输的方法 |
CN101047485A (zh) * | 2006-03-30 | 2007-10-03 | 株式会社Ntt都科摩 | 通信终端以及重发控制方法 |
CN101094047A (zh) * | 2007-07-06 | 2007-12-26 | 中国人民解放军国防科学技术大学 | 基于网络状态测量的分阶段慢启动传输控制方法 |
CN101119183A (zh) * | 2007-09-06 | 2008-02-06 | 上海华为技术有限公司 | 重传控制方法及传输设备 |
CN101447857A (zh) * | 2008-05-26 | 2009-06-03 | 中兴通讯股份有限公司 | 一种消息处理过程中动态调整时间参数的方法 |
CN101860423A (zh) * | 2010-06-07 | 2010-10-13 | 华为技术有限公司 | 一种协议分组传输的重传方法和装置 |
CN102917403A (zh) * | 2012-09-29 | 2013-02-06 | 北京邮电大学 | 一种低时延并行重传方法及装置 |
CN103095434A (zh) * | 2011-10-27 | 2013-05-08 | 中兴通讯股份有限公司 | 一种数据重传控制方法及装置、终端设备 |
CN103546248A (zh) * | 2013-09-27 | 2014-01-29 | 章程 | 一种ack超时时间自动调节方法 |
CN104184546A (zh) * | 2013-05-27 | 2014-12-03 | 百度在线网络技术(北京)有限公司 | 一种移动通信网络中减少报文重传的方法及系统 |
CN104243090A (zh) * | 2013-06-19 | 2014-12-24 | 中国移动通信集团公司 | 一种基于无线信道反馈的发送速率调整方法和设备 |
CN105933242A (zh) * | 2016-04-12 | 2016-09-07 | 北京大学深圳研究生院 | 一种提高数据中心tcp响应速度的方法及系统 |
CN106533639A (zh) * | 2016-12-06 | 2017-03-22 | 迈锐数据(北京)有限公司 | 一种数据重传方法及装置 |
CN106788911A (zh) * | 2015-11-25 | 2017-05-31 | 华为技术有限公司 | 一种报文重传的方法和装置 |
WO2017106450A1 (en) * | 2015-12-15 | 2017-06-22 | Convida Wireless, Llc | Methods and nodes for enabling context-awareness in coap |
CN106982108A (zh) * | 2016-01-18 | 2017-07-25 | 华为技术有限公司 | 一种数据传输的方法以及相关设备 |
US20170222936A1 (en) * | 2016-02-02 | 2017-08-03 | King Fahd University of Petroleum Minerals | Adaptive reliability protocol |
CN107104763A (zh) * | 2016-12-22 | 2017-08-29 | 腾讯科技(深圳)有限公司 | 一种设置超时重传时长的方法和装置 |
CN107147481A (zh) * | 2017-07-19 | 2017-09-08 | 北京数码视讯科技股份有限公司 | 丢包重传方法、装置及电子设备 |
CN107172658A (zh) * | 2017-05-22 | 2017-09-15 | 广州市暨联牧科信息技术有限公司 | 一种应用于物联网传输的拥塞控制方法 |
CN107258064A (zh) * | 2015-02-26 | 2017-10-17 | 高通股份有限公司 | Rrc知晓的tcp重传 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7304995B2 (en) * | 2001-08-29 | 2007-12-04 | Texas Instruments Incorporated | Systems and methods for packet flow control |
KR100895182B1 (ko) | 2005-12-14 | 2009-04-24 | 삼성전자주식회사 | 무선통신 시스템의 전송 제어 방법 |
CN102170340A (zh) | 2011-04-08 | 2011-08-31 | 深圳市捷视飞通科技有限公司 | 一种rtp数据超时重发的方法、系统和视频终端 |
US8583053B1 (en) * | 2012-06-20 | 2013-11-12 | Google Inc. | Optimizing TCP traffic for mobile devices using TCP backoff thresholds |
US20150055482A1 (en) * | 2013-08-20 | 2015-02-26 | Brocade Communications Systems, Inc. | TCP Extended Fast Recovery and Segment Timing |
CN105634836B (zh) * | 2014-10-27 | 2020-03-17 | 香港理工大学 | 信息处理方法及装置 |
US10616947B1 (en) * | 2015-05-29 | 2020-04-07 | Akamai Technologies, Inc. | TCP performance over cellular mobile networks |
US9998500B2 (en) * | 2016-02-15 | 2018-06-12 | Wipro Limited | Methods and systems for performing lawful interception (LI) in communication networks involving content adulteration with colluding agents |
US20180041415A1 (en) * | 2016-08-03 | 2018-02-08 | Qualcomm Incorporated | Mitigation of transmission control protocol throughput degradation in communication devices due to predictable radio impairment events |
CN108494782B (zh) | 2018-03-28 | 2021-05-18 | 深圳市网心科技有限公司 | 一种基于udp的数据传输方法、终端设备及存储介质 |
CN115396068A (zh) | 2018-07-02 | 2022-11-25 | 华为技术有限公司 | 重传控制方法、通信接口和电子设备 |
-
2018
- 2018-07-02 CN CN202210664067.XA patent/CN115396068A/zh active Pending
- 2018-07-02 CN CN201810710158.6A patent/CN110677221B/zh active Active
- 2018-07-02 CN CN202210662151.8A patent/CN115396067A/zh active Pending
-
2019
- 2019-04-08 WO PCT/CN2019/081718 patent/WO2020007084A1/zh unknown
- 2019-04-08 EP EP19829957.0A patent/EP3806366B1/en active Active
- 2019-04-08 EP EP23191836.8A patent/EP4297314A3/en active Pending
-
2020
- 2020-12-30 US US17/138,321 patent/US11671210B2/en active Active
Patent Citations (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1370361A (zh) * | 1999-08-17 | 2002-09-18 | 艾利森电话股份有限公司 | 用于确定时间参量的方法和设备 |
US20020124096A1 (en) * | 2001-01-18 | 2002-09-05 | Koninklijke Philips Electronics N.V. | Method for efficient retransmission timeout estimation in NACK-based protocols |
CN1430833A (zh) * | 2001-01-18 | 2003-07-16 | 皇家菲利浦电子有限公司 | 在基于否定确认的协议中有效重发超时估计的方法 |
CN1551551A (zh) * | 2003-02-19 | 2004-12-01 | �ձ�������ʽ���� | 改善可靠性和吞吐量的无线通信系统及重发超时确定方法 |
WO2005006665A1 (en) * | 2003-07-01 | 2005-01-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for setting the retransmission timeout period in a packet switched communication network |
EP1511288A2 (en) * | 2003-08-22 | 2005-03-02 | Canon Kabushiki Kaisha | Image supply apparatus, recording apparatus, and recording system, and control method and program thereof |
CN1863033A (zh) * | 2005-05-14 | 2006-11-15 | 腾讯科技(深圳)有限公司 | 获取网络超时重传间隔的方法及网络中数据传输的方法 |
CN101047485A (zh) * | 2006-03-30 | 2007-10-03 | 株式会社Ntt都科摩 | 通信终端以及重发控制方法 |
CN101094047A (zh) * | 2007-07-06 | 2007-12-26 | 中国人民解放军国防科学技术大学 | 基于网络状态测量的分阶段慢启动传输控制方法 |
CN101119183A (zh) * | 2007-09-06 | 2008-02-06 | 上海华为技术有限公司 | 重传控制方法及传输设备 |
CN101447857A (zh) * | 2008-05-26 | 2009-06-03 | 中兴通讯股份有限公司 | 一种消息处理过程中动态调整时间参数的方法 |
CN101860423A (zh) * | 2010-06-07 | 2010-10-13 | 华为技术有限公司 | 一种协议分组传输的重传方法和装置 |
CN103095434A (zh) * | 2011-10-27 | 2013-05-08 | 中兴通讯股份有限公司 | 一种数据重传控制方法及装置、终端设备 |
CN102917403A (zh) * | 2012-09-29 | 2013-02-06 | 北京邮电大学 | 一种低时延并行重传方法及装置 |
CN104184546A (zh) * | 2013-05-27 | 2014-12-03 | 百度在线网络技术(北京)有限公司 | 一种移动通信网络中减少报文重传的方法及系统 |
CN104243090A (zh) * | 2013-06-19 | 2014-12-24 | 中国移动通信集团公司 | 一种基于无线信道反馈的发送速率调整方法和设备 |
CN103546248A (zh) * | 2013-09-27 | 2014-01-29 | 章程 | 一种ack超时时间自动调节方法 |
CN107258064A (zh) * | 2015-02-26 | 2017-10-17 | 高通股份有限公司 | Rrc知晓的tcp重传 |
CN106788911A (zh) * | 2015-11-25 | 2017-05-31 | 华为技术有限公司 | 一种报文重传的方法和装置 |
WO2017106450A1 (en) * | 2015-12-15 | 2017-06-22 | Convida Wireless, Llc | Methods and nodes for enabling context-awareness in coap |
CN106982108A (zh) * | 2016-01-18 | 2017-07-25 | 华为技术有限公司 | 一种数据传输的方法以及相关设备 |
US20170222936A1 (en) * | 2016-02-02 | 2017-08-03 | King Fahd University of Petroleum Minerals | Adaptive reliability protocol |
CN105933242A (zh) * | 2016-04-12 | 2016-09-07 | 北京大学深圳研究生院 | 一种提高数据中心tcp响应速度的方法及系统 |
CN106533639A (zh) * | 2016-12-06 | 2017-03-22 | 迈锐数据(北京)有限公司 | 一种数据重传方法及装置 |
CN107104763A (zh) * | 2016-12-22 | 2017-08-29 | 腾讯科技(深圳)有限公司 | 一种设置超时重传时长的方法和装置 |
CN107172658A (zh) * | 2017-05-22 | 2017-09-15 | 广州市暨联牧科信息技术有限公司 | 一种应用于物联网传输的拥塞控制方法 |
CN107147481A (zh) * | 2017-07-19 | 2017-09-08 | 北京数码视讯科技股份有限公司 | 丢包重传方法、装置及电子设备 |
Non-Patent Citations (3)
Title |
---|
C. BORMANN等: ""CoAP Simple Congestion Control/Advanceddraft-ietf-core-cocoa-02"", 《IETF 》 * |
Z. SHELBY等: ""The Constrained Application Protocol (CoAP)"", 《INTERNET ENGINEERING TASK FORCE (IETF)》 * |
原中燕: ""CoAP over WebSocket的研究与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11671210B2 (en) | 2018-07-02 | 2023-06-06 | Huawei Technologies Co., Ltd. | Retransmission control method, communications interface, and electronic device |
CN111698510A (zh) * | 2020-05-22 | 2020-09-22 | 北京大米科技有限公司 | 一种数据处理的方法、装置及电子设备 |
CN112769526A (zh) * | 2020-12-11 | 2021-05-07 | 邦彦技术股份有限公司 | 数据包重传方法、系统和存储介质 |
CN115208521A (zh) * | 2022-08-22 | 2022-10-18 | 北京钢铁侠科技有限公司 | 一种会话层客户端与服务端通讯保障及工作流管控方法 |
CN115208521B (zh) * | 2022-08-22 | 2023-07-04 | 北京钢铁侠科技有限公司 | 一种会话层客户端与服务端通讯保障及工作流管控方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3806366B1 (en) | 2023-10-04 |
CN110677221B (zh) | 2022-06-14 |
CN115396067A (zh) | 2022-11-25 |
WO2020007084A1 (zh) | 2020-01-09 |
EP3806366A1 (en) | 2021-04-14 |
EP4297314A3 (en) | 2024-01-17 |
US11671210B2 (en) | 2023-06-06 |
US20210126741A1 (en) | 2021-04-29 |
EP4297314A2 (en) | 2023-12-27 |
EP3806366A4 (en) | 2021-08-18 |
CN115396068A (zh) | 2022-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110677221B (zh) | 重传控制方法、通信接口和电子设备 | |
JP6705003B2 (ja) | データ伝送方法および関連するデバイス | |
JP4520032B2 (ja) | ヘッダ圧縮装置およびヘッダ圧縮方法 | |
WO2018121294A1 (zh) | 一种报文传输方法、终端、网络设备及通信系统 | |
CN110445722B (zh) | 拥塞控制方法、装置、设备及存储介质 | |
US8306062B1 (en) | Method and apparatus of adaptive large receive offload | |
WO2012089110A1 (en) | Systems and methods to improve performance of tcp over large bandwidth-delay-product networks | |
Lundqvist et al. | TCP with end-to-end FEC | |
CN104320809A (zh) | 基于rtt的无线多跳网络拥塞控制方法及系统 | |
CN105933242A (zh) | 一种提高数据中心tcp响应速度的方法及系统 | |
CN113014505A (zh) | 一种高动态拓扑卫星网络中时延区分的传输控制方法 | |
CN101018195B (zh) | Manet信息分发订购平台中短猝报文的传送方法 | |
CN113852445A (zh) | 一种提高数据传输可靠性的方法、系统、设备和存储介质 | |
CN114745273B (zh) | Tcp加速代理方法、装置、卫星地面站及可读存储介质 | |
CN112153664B (zh) | 参数优化方法、装置、基站、服务器及存储介质 | |
CN108432287A (zh) | 一种数据传输方法及网络侧设备 | |
CN105406915A (zh) | 一种面向星地链路的文件传输方法 | |
JP2004080070A (ja) | データ転送方法及びデータ転送システム並びにコンテンツ配信システム | |
KR20190105061A (ko) | 데이터를 송신하는 방법과 데이터 송신 장치, 및 고객 댁내 장치 | |
CN115277556B (zh) | 拥塞控制方法、电子设备及可读存储介质 | |
CN109586931B (zh) | 组播方法及终端设备 | |
CN118381839A (zh) | 计算机装置及其传输控制协议报文处理方法 | |
US20060116074A1 (en) | Communication repeater, communication repeater program, and communication repeater system | |
CN118381838A (zh) | 计算机装置及用于计算机装置的传输控制协议封包处理方法 | |
US20080091841A1 (en) | Communication method, communication system, communication apparatus, and recording medium |
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 |