CN117061071A - 数据传输方法、装置、电子设备及存储介质 - Google Patents

数据传输方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117061071A
CN117061071A CN202311109313.6A CN202311109313A CN117061071A CN 117061071 A CN117061071 A CN 117061071A CN 202311109313 A CN202311109313 A CN 202311109313A CN 117061071 A CN117061071 A CN 117061071A
Authority
CN
China
Prior art keywords
packet
target
retransmission
historical
copy
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
Application number
CN202311109313.6A
Other languages
English (en)
Inventor
单卫
刘森镇
王剑
李彤
马心宇
刘威
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renmin University of China
Beijing Youzhuju Network Technology Co Ltd
Original Assignee
Renmin University of China
Beijing Youzhuju Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renmin University of China, Beijing Youzhuju Network Technology Co Ltd filed Critical Renmin University of China
Priority to CN202311109313.6A priority Critical patent/CN117061071A/zh
Publication of CN117061071A publication Critical patent/CN117061071A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1825Adaptation of specific ARQ protocol parameters according to transmission conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开涉及通信技术领域,公开了数据传输方法、装置、电子设备及存储介质,数据传输方法包括:根据第二通信设备发送的反馈信息,确定目标冗余包,目标冗余包为目标数据包的副本,目标数据包为第一通信设备向第二通信设备发送失败的数据包;基于历史副本传输结果和目标数据包的重传次数,调整目标冗余包的重传数量;历史副本传输结果与重传数量负相关,重传次数与重传数量正相关,历史副本传输结果表示第一通信设备向第二通信设备发送的数据包的副本传输状况;根据调整后的目标冗余包的重传数量,向第二通信设备发送目标冗余包。本公开能够解决目标冗余包的重传数量过多或过少的问题,提高数据传输的可靠性。

Description

数据传输方法、装置、电子设备及存储介质
技术领域
本公开涉及通信技术领域,具体涉及数据传输方法、装置、电子设备及存储介质。
背景技术
在网络传输过程中,发送端发出的数据因网络故障、传输错误或网络拥塞等情况导致未能成功到达接收端,这种现象被称为丢包。在传输控制方案中,前向纠错(FEC,Forward Error Correction)方式和自动重传请求(ARQ,Automatic Repeat reQuest)方式是两种常用的丢包恢复方式。前向纠错方式虽然可以提高数据传输的可靠性,但是存在对带宽要求较高和处理复杂度较高的问题,所以自动重传请求方式被越来越多地使用。在自动重传请求方式的实施过程中,需发送端向接收端重传一定数量的数据包,如果重传的数据包数量过多,则导致带宽的浪费,即重传损耗问题;如果重传的数据包数量过少,则容易产生再次丢包的问题,导致传输可靠性偏低。因此,合理地确定重传的数据包数量至关重要。
发明内容
有鉴于此,本公开提供了一种数据传输方法、装置、电子设备及存储介质,以解决相关技术难以合理地确定重传的数据包数量的问题。
第一方面,本公开提供了一种数据传输方法,应用于第一通信设备,数据传输方法包括:
根据第二通信设备发送的反馈信息,确定目标冗余包;反馈信息包括数据包接收成功和/或失败的信息,目标冗余包为目标数据包的副本,目标数据包为第一通信设备向第二通信设备发送失败的数据包;
基于历史副本传输结果和目标数据包的重传次数,调整目标冗余包的重传数量;历史副本传输结果与重传数量负相关,重传次数与重传数量正相关,历史副本传输结果表示第一通信设备向第二通信设备发送的数据包的副本传输状况;
根据调整后的目标冗余包的重传数量,向第二通信设备发送目标冗余包。
本公开将目标数据包的重传次数和历史副本传输结果作为重传数量的调整依据,重传数量随着重传次数的增加而调高,重传数量随着历史副本传输效果的增强而减少,可见本公开能够兼顾重传轮次和历史副本的传输状况,对重传数量进行合理地调整,选择合适数量的目标冗余包,向第二通信设备发送,以解决相关技术中的目标冗余包的重传数量过多或过少的问题,提高数据传输的可靠性。
第二方面,本公开提供了一种数据传输装置,数据传输装置包括:
丢包检测模块,用于根据第二通信设备发送的反馈信息,确定目标冗余包;反馈信息包括数据包接收成功和/或失败的信息,目标冗余包为目标数据包的副本,目标数据包为第一通信设备向第二通信设备发送失败的数据包;
冗余自适应模块,用于基于历史副本传输结果和目标数据包的重传次数,调整目标冗余包的重传数量;历史副本传输结果与重传数量负相关,重传次数与重传数量正相关,历史副本传输结果表示第一通信设备向第二通信设备发送的数据包的副本传输状况;
数据包发送模块,用于根据调整后的目标冗余包的重传数量,向第二通信设备发送目标冗余包。
第三方面,本公开提供了一种电子设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的数据传输方法。
第四方面,本公开提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的数据传输方法。
附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本公开实施例的数据传输方法的流程示意图;
图2是根据本公开实施例的另一数据传输方法的流程示意图;
图3是根据本公开实施例的又一数据传输方法的流程示意图;
图4是根据本公开实施例的根据当前期望数量的数值范围调整目标冗余包的重传数量的一种实施方式的示意图;
图5是根据本公开实施例的再一数据传输方法的流程示意图;
图6是根据本公开实施例的一种自适应的数据传输方法的流程示意图;
图7是根据本公开实施例的数据传输装置的结构框图;
图8是根据本公开实施例的第一通信设备与第二通信设备的数据传输原理示意图;
图9是本公开实施例的电子设备的硬件结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
在广域网中,丢包是影响设备上的应用程序性能的关键因素之一,特别是对延迟敏感的应用程序(例如与实时视频流、交互式在线游戏或基于远程过程调用服务相关的应用程序)和吞吐量密集型的应用程序(例如与数据灾难恢复、云迁移或数据备份和归档相关的应用程序)。在上述应用程序中,当前数据包未成功接收,很可能影响后续其他数据包的接收和上层应用程序的进展,所以尽快地进行丢包恢复是关键的目标。
相关技术中,FEC(Forward Error Correction,前向纠错)和ARQ(AutomaticRepeat reQuest,自动重传请求)是两种基本的丢包恢复方式。由于现实中网络具有突发性等广域丢包特性,在网络状态良好时,基于FEC使用的冗余数据包会造成较大的带宽占用,当发生突发丢包时,FEC无法应对超过设定的冗余包个数的丢包情况。而且,相关技术对FEC的优化需进行双侧修改,即对服务器侧和客户端侧的应用程序均进行修改。以CDN服务器为例,基于FEC的改进很难在多个不同供应商的CDN服务器上进行统一部署,原因是服务器与客户端之间是多对一的关系,客户端无法适配所有服务器的修改。
ARQ往往被作为控制数据包丢失率的商业解决方案,一旦检测到有数据包丢失,就会重新传输丢失的数据包。理想情况下,发送端只需要向接收端成功地重传一次丢失的数据包,然而现实中网络普遍存在重传损耗的情况,当一次重传不足以成功交付丢失的数据包时,则需要再次重传丢失的数据包,对传输性能的影响可能很严重;例如,一个依赖远程过程调用服务进行进程间通信的分布式系统,若一个关键的远程过程调用服务丢失,并经历了一个较高的恢复延迟,则客户端的请求将被延迟,随后的相关操作可能会被阻塞,这可能导致流完成时间显著增加,对服务的响应能力和总体性能产生负面影响。传统的ARQ方案对动态丢包和突发丢包的情况适应能力较差,容易出现重传的数据包数量过多或过少的情况,丢包恢复过程会导致较长时间的延迟。
根据本公开实施例,提供了一种数据传输方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种数据传输方法,可用于上述的第一通信设备,图1是根据本公开实施例的数据传输方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,根据第二通信设备发送的反馈信息,确定目标冗余包;反馈信息包括数据包接收成功和/或失败的信息,目标冗余包为目标数据包的副本,目标数据包为第一通信设备向第二通信设备发送失败的数据包。
具体地,第二通信设备收到第一通信设备发出的数据包后,第二通信设备向第一通信设备发送ACK报文,ACK的全称为Acknowledgment,ACK报文即确认报文,本实施例的反馈信息为ACK报文,该ACK报文中携带第二通信设备接收成功的数据包的第一编号(即数据包接收成功的信息),和/或,第二通信设备接收失败的数据包的第二编号(即数据包接收失败的信息)。
如果反馈信息包括数据包接收成功的信息,第一通信设备遍历发送记录,发送记录中记录有第一通信设备向第二通信设备发送的数据包的编号;对于数据包接收成功的信息中包含的数据包的第一编号(该第一编号对应的数据包接收成功),从发送记录中删除,发送记录中剩余的编号为发送失败的数据包的编号,从而可确定发送失败的数据包对应的目标冗余包。
如果反馈信息包括数据包接收失败的消息,第一通信设备根据数据包接收失败的信息中包含的数据包的第二编号(该第二编号对应的数据包接收失败),确定发送失败的数据包对应的目标冗余包。上述的第一编号和第二编号均用于表征数据包的包号,本实施例可以单独将第二编号记录在丢失数据包队列中。
与FEC方案不同,本公开具体将数据包冗余的策略应用于丢失的数据包,而不是未丢失的数据包,从而本公开能够更好地适配现实场景中广域网丢包的情形,相比于FEC方案,本公开的方案有助于提升网络性能。
步骤S102,基于历史副本传输结果和目标数据包的重传次数,调整目标冗余包的重传数量;历史副本传输结果与重传数量负相关,重传次数与重传数量正相关,历史副本传输结果表示第一通信设备向第二通信设备发送的数据包的副本传输状况。
本实施例的目标数据包的重传次数表示目标数据包的重传轮次,历史副本传输结果具体表示历史冗余副本丢失状况和/或接收状况,历史副本传输结果还可以用于表征网络实时特征。
其中,如果历史副本传输结果较好,则目标数据包的重传数量相对更少,如果历史副本传输结果较差,则目标数据包的重传数量相对更多,即历史副本传输结果与重传数量负相关;如果重传次数较多,则目标数据包的重传数量相对更多,如果重传次数较少,则目标数据包的重传数量相对更少,即重传次数与重传数量正相关。本实施例通过目标数据包已经经过的重传轮次和历史副本的丢失或接收状况,决策丢失的数据包在新的轮次中需要重传的副本数。
步骤S103,根据调整后的目标冗余包的重传数量,向第二通信设备发送目标冗余包。
本实施例中,具体在预设时长内将调整后的重传数量的目标冗余包发出去,该预设时长例如可以是当前往返时延。
本公开实施例将目标数据包的重传次数和历史副本传输结果作为重传数量的调整依据,重传数量随着重传次数的增加而调高,重传数量随着历史副本传输效果的增强而减少,可见本公开兼顾了重传轮次和历史副本的传输状况,对重传数量进行合理地调整,选择合适数量的目标冗余包,并向第二通信设备发送,以解决相关技术中的目标冗余包的重传数量过多或过少的问题,更好地适用于广域网中动态丢包和突发丢包的情况,提高数据传输的可靠性。另外,对于第一传输设备(例如用于提供云服务的发送端)根据流量收费的生产网络,本实施例在优先考虑丢包的快速恢复的前提下,还能够最小化冗余成本,防止丢包恢复过程对常规数据包传输造成的不利影响。
在一些可选的实施方式中,第一通信设备为服务器,第二通信设备为客户端。
本实施例的客户端例如可包括但不限于智能手机、平板电脑、台式电脑、智能穿戴设备、智能电视等。服务器可以是CDN(Content Delivery Network,内容分发网络)服务器,CDN是一种基于分布式系统的网络架构,用于提供高效、快速和可靠的内容交付服务,CDN通过将内容存储在分布在多个位置的服务器上,使用户可以从最近的服务器获取内容,从而降低网络延迟和提高用户体验;CDN的工作原理是将内容分发到离用户最近的边缘节点,这些边缘节点通常位于用户所在的地理位置。当用户请求访问特定的内容时,CDN会根据用户的位置选择最近的边缘节点,从该节点提供内容;这样可以减少数据传输的距离和时间,提高内容的加载速度;CDN是一种有效的内容分发解决方案,可以提高网站性能、节省带宽成本、提高可靠性和可扩展性,并提供安全性功能。
由此,本公开能够较好地适用于服务器与客户端架构下的数据传输场景,特别适用于CDN场景,并为CDN服务器向客户端传输数据的过程提供了一种自适应的数据传输方法,提高了传输可靠性。
在本实施例中提供了一种数据传输方法,可用于上述的第一通信设备,图2是根据本公开实施例的数据传输方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,根据第二通信设备发送的反馈信息,确定目标冗余包;反馈信息包括数据包接收成功和/或失败的信息,目标冗余包为目标数据包的副本,目标数据包为第一通信设备向第二通信设备发送失败的数据包。详细请参见图1所示实施例的步骤S101,在此不再赘述。
步骤S202,基于历史副本传输结果和目标数据包的重传次数,调整目标冗余包的重传数量;历史副本传输结果与重传数量负相关,重传次数与重传数量正相关,历史副本传输结果表示第一通信设备向第二通信设备发送的数据包的副本传输状况。
具体地,上述步骤S202包括:
步骤S2021,通过历史副本丢包率确定历史副本接收成功率,历史副本传输结果为历史副本丢包率。
其中,历史副本丢包率与历史副本接收成功率的总和为100%,所以可根据历史副本丢包率直接得到历史副本接收成功率。
在一些可选的实施方式中,通过历史副本丢包率确定历史副本接收成功率之前,该数据传输方法还包括:
步骤a1,若一个历史副本接收失败,在定长队列中存储一个第一标识,以及若一个历史副本接收成功,在定长队列中存储一个第二标识。
结合前述的实施例,第一标识与前述的第二编号对应,表示历史副本接收失败;第二标识与前述的第一编号对应,表示历史副本接收成功。其中,历史副本表示为了丢包恢复而发出的冗余副本。本实施例的第一标识例如为“1”,第二标识例如为“0”,在一个历史副本被确认接收成功之后,“0”被追加到定长队列中,在一个历史副本被确认接收失败之后,“1”被追加到定长队列中;由于该定长队列的长度固定,定长队列中新加入的标识会覆盖最旧的标识。
步骤a2,根据定长队列中第一标识的数量与定长队列的长度的比值,确定历史副本丢包率;定长队列的长度为定长队列中的第一标识与第二标识的数量总和。
其中,本实施例的历史副本丢包率=定长队列中第一标识的数量与定长队列的长度的比值。
定长队列中的第一标识的数量与定长队列的长度的比值表示冗余副本丢失记录的占比,记为Replica_Loss。
本实施例中,确定历史副本丢包率Replica_Loss之后,历史副本接收成功率=1-Replica_Loss。
其中,Num_of_1表示定长队列中第一标识的数量,Lqueue表示定长队列的长度(以数据包的数量来衡量)。
本实施例中,定长队列的长度具体为≥1的整数,例如Lqueue=10。
基于上述通过定长队列记录最新的历史副本接收结果的方式,本公开实施例能够准确地表征当前的网络状态,从而为丢包恢复过程中使用的目标冗余包的重传数量的判断结果提供更为准确的数据依据。
步骤S2022,利用历史副本接收成功率和当前冗余副本数,确定成功交付的副本的当前期望数量;当前冗余副本数表示重传次数对应的目标冗余包的重传数量。
具体实施时,本实施例获取当前冗余副本数,当前冗余副本数表示调整前的目标冗余包的重传数量,可通过R表示,R的初始值可为2重传轮次-1,例如,R=21-1=1(重传轮次为1的情况下,R的初始值可为1)。
其中,当前期望数量表示根据历史副本接收成功率和当前冗余副本数计算出的可以成功交付的数量,即预计的可以被成功接收的副本数量。
本实施例中,通过E表示当前期望数量,则E=R*(1-Replica_loss)。
在一些可选的实施方式中,确定成功交付的副本的当前期望数量之前,该数据传输方法还包括:
步骤b1,根据重传次数查询映射表,以确定重传次数对应的当前冗余副本数,映射表用于记录重传次数与当前冗余副本数之间的映射关系。
本实施例中,映射表用于记录重传次数(即重传轮次)与当前冗余副本数之间的映射关系。
默认情况下,例如重传次数为1时,当前冗余副本数的初始值为21-1=1,重传次数为5时,当前冗余副本数的初始值为25-1=16等;但本公开实施例的映射关系随丢包修复过程而动态变化。
通过从上述的映射表中获取与当前的重传次数对应的当前冗余副本数,本公开实施例能够获取更适于当前期望数量计算的冗余副本数,以提高期望数量计算的准确性。
步骤S2023,根据当前期望数量的数值范围,调整目标冗余包的重传数量。
理想情况下,第一通信设备只需要向第二通信设备成功地重传一次丢失的数据包,即完成了丢包恢复;由此,当前期望数量的数值希望保持≈1的情况。
本公开可选的实施例中,在当前期望数量的数值范围较大时,可调小目标冗余包的重传数量,而在当前期望数量的数值范围较小时,可调大目标冗余包的重传数量。
本公开能够通过预测的当前期望数量,即预测的被第二通信设备成功接收的目标冗余包的数量,有效调节待发出的目标冗余包的重传数量,该方式实现了根据网络情况和重传轮次进行反馈调节的目的,避免重传数量过大或过小。
步骤S203,根据调整后的目标冗余包的重传数量,向第二通信设备发送目标冗余包。详细请参见图1所示实施例的步骤S103,在此不再赘述。
在一些可选的实施方式中,调整目标冗余包的重传数量之后,该数据传输方法还包括:
步骤c1,利用调整后的目标冗余包的重传数量,更新映射表中的重传次数对应的当前冗余副本数。
本公开实施例还能够根据调整后的目标冗余包的重传数量,对映射表进行更新,具体更新当前的重传次数(重传轮次)下的冗余副本数据。应当理解的是,在本公开的上述步骤b1中查询的映射表为最新更新之后的映射表。
由此,本公开还实现了根据网络情况和重传数据包的特点动态更新映射表的功能,在后续的丢包恢复过程中,调取的当前冗余副本数为符合网络情况和重传轮次的冗余副本数,从而为本公开的丢包恢复策略提供更准确的数据支持。
在一些可选的实施方式中,向第二通信设备发送目标冗余包之前,该数据传输方法还包括:
步骤d1,如果调整后的目标冗余包的重传数量大于第三阈值,将调整后的目标冗余包的重传数量更新为第三阈值。
本实施例中,第三阈值例如为10,在调整后的目标冗余包的重传数量大于10情况下,假设调整后的目标冗余包的重传数量为18,则将调整后的目标冗余包的重传数量更新为10,待发出目标冗余包数量是10个,而不是18个。
本公开还能够在调整后的目标冗余包的重传数量过多时,只使用第三阈值的目标冗余包,避免本公开的丢包恢复策略对带宽或网络的影响。
在本实施例中提供了一种数据传输方法,可用于上述的第一通信设备,图3是根据本公开实施例的数据传输方法的流程图,如图3所示,该流程包括如下步骤:
步骤S301,根据第二通信设备发送的反馈信息,确定目标冗余包;反馈信息包括数据包接收成功和/或失败的信息,目标冗余包为目标数据包的副本,目标数据包为第一通信设备向第二通信设备发送失败的数据包。详细请参见图2所示实施例的步骤S201,在此不再赘述。
步骤S302,基于历史副本传输结果和目标数据包的重传次数,调整目标冗余包的重传数量;历史副本传输结果与重传数量负相关,重传次数与重传数量正相关,历史副本传输结果表示第一通信设备向第二通信设备发送的数据包的副本传输状况。
具体地,上述步骤S302包括:
步骤S3021,通过历史副本丢包率确定历史副本接收成功率,历史副本传输结果为历史副本丢包率。详细请参见图2所示实施例的步骤S2021,在此不再赘述。
步骤S3022,利用历史副本接收成功率和当前冗余副本数,确定成功交付的副本的当前期望数量;当前冗余副本数表示重传次数对应的目标冗余包的重传数量。详细请参见图2所示实施例的步骤S2022,在此不再赘述。
步骤S3023,根据当前期望数量的数值范围,调整目标冗余包的重传数量。
结合图3和图4所示,上述步骤S3023包括:
步骤S30231,若当前期望数量小于第一阈值,则增加目标冗余包的重传数量。
对于当前期望数量小于第一阈值情况,表示当前期望数量E偏小,则增加目标冗余包的重传数量R。
本实施例中,第一阈值为1,当然并不限于此。
例如,当前冗余副本数R×(1-历史副本丢包率)=当前期望数量E<1,则将目标冗余包的重传数量加一,即,R=R+1,当然并不限于此。
步骤S30232,若当前期望数量大于或等于第二阈值,则减小目标冗余包的重传数量;第二阈值大于第一阈值。
对于当前期望数量大于或等于第二阈值情况,表示当前期望数量E偏大,则减小目标冗余包的重传数量R。
本实施例中,第二阈值为2,当然并不限于此。
例如,当前冗余副本数R×(1-历史副本丢包率)=当前期望数量E≥2,则将目标冗余包的重传数量减一,即,R=R-1,当然并不限于此。
若当前期望数量小于第二阈值且大于或等于第一阈值(其他的情况),则保持目标冗余包的重传数量R不变。
例如,当2>E≥1,则保持R不变。
本实施例能够在当前期望数量偏小时增加重传数量,在当前期望数量偏大时减小重传数量,从而有效地避免重传数量过小或过大的问题。由于调整后的重传数量能够表示丢包恢复过程中的冗余代价,通过对目标冗余包的重传数量的合理调节,本公开能够以最小的冗余代价使丢失报文的恢复时间最小,从而更好地实现了一种自适应的数据传输方法,提高数据传输过程中对动态丢包和突发丢包的情况的适应能力。
步骤S303,根据调整后的目标冗余包的重传数量,向第二通信设备发送目标冗余包。详细请参见图2所示实施例的步骤S203,在此不再赘述。
在本实施例中提供了一种数据传输方法,可用于上述的第一通信设备,图1是根据本公开实施例的数据传输方法的流程图,如图5所示,该流程包括如下步骤:
步骤S501,根据第二通信设备发送的反馈信息,确定目标冗余包;反馈信息包括数据包接收成功和/或失败的信息,目标冗余包为目标数据包的副本,目标数据包为第一通信设备向第二通信设备发送失败的数据包。详细请参见图2所示实施例的步骤S201,在此不再赘述。
步骤S502,基于历史副本传输结果和目标数据包的重传次数,调整目标冗余包的重传数量;历史副本传输结果与重传数量负相关,重传次数与重传数量正相关,历史副本传输结果表示第一通信设备向第二通信设备发送的数据包的副本传输状况。详细请参见图2所示实施例的步骤S202,在此不再赘述。
步骤S503,根据调整后的目标冗余包的重传数量,向第二通信设备发送目标冗余包。
具体地,上述步骤S503包括:
步骤S5031,将当前往返时延划分为第一数量的时间片,当前往返时延为第一通信设备与第二通信设备之间的往返时延,第一数量大于或等于调整后的目标冗余包的重传数量。
其中,第一通信设备与第二通信设备之间的往返时延即Round-Trip Time,简称为RTT,该RTT表示从发送端发送数据开始,至发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延;其中,发送端为第一通信设备的情况下,第二通信设备为接收端;或者,发送端为第二通信设备的情况下,第一通信设备为接收端。本实施例中的当前往返时延表示最新的往返时延,即能够反映实时网络情况的往返时延。
本实施例将当前往返时延均匀地划分为第一数量的时间片,第一数量例如可以为10个,则将当前往返时延均匀地划分为10个时间片。
步骤S5032,从第一数量的时间片中,选择第二数量的时间片,第二数量等于调整后的目标冗余包的重传数量。
其中,第二数量小于或等于第一数量;本实施例从第一数量的时间片中随机选择第二数量的时间片。
本实施例中,第二数量的时间片表示第二数量的目标冗余包的调度时间,该调度时间例如是每个时间片的起始时间,第二数量的目标冗余包的调度时间形成目标冗余包发送时间序列,第二数量例如可以为8个。
例如,当前往返时延为100毫秒,将当前往返时延划分为10个时间片,则每个时间片的时长分别为10毫秒,10个时间片按照时间先后的顺序依次表示为T1、T2、T3、T4、T5、T6、T7、T8、T9、T10;然后可以从这10个时间片中随机选择8个时间片,例如可以是T1、T2、T3、T5、T6、T8、T9、T10,这8个时间片与待发送的8个目标冗余包一一对应。
步骤S5033,根据第二数量的时间片与第二数量的目标冗余包的一一对应关系,向第二通信设备发送目标冗余包。
具体地,本实施例在一个时间片对应的时间内,发送一个目标冗余包。若结合前述的示例中的8个时间片(T1、T2、T3、T5、T6、T8、T9、T10),则时间到达T1时发一个目标冗余包,……,时间到达T10时发一个目标冗余包。
本实施例能够在当前往返时延的时间段内,将第二数量的目标冗余包逐一重传给第二通信设备,避免一次性发送第二数量的目标冗余包可能产生的全部丢包的问题,尽可能地保证第二通信设备能够成功接收到每一个丢包,尽可能地控制每一个丢包接收过程的等待时间最小化,从而达到快速完成丢包恢复的目的;结合动态调整目标冗余包的重传数量的实施例,本公开能够在丢包快速恢复和高效资源利用两者之间取得平衡。
在一些可选的实施方式中,上述步骤S5033包括:
步骤e1,设置计时器,计时器的计时长度为当前往返时延。
本实施例中的计时器可理解是一种定时装置,该定时装置用于对当前往返时延进行定时。
步骤e2,启动计时器,在计时器上的时间到达第二数量的时间片中的任一时间片时,向第二通信设备发送一个目标冗余包。
其中,第二数量的时间片作为第二数量的目标冗余包发送时间序列,达到第二数量的时间片中的每个时间片的起始时间时,即达到目标冗余包(即重传副本)被设定的发送时间时,将重传副本发送给第二通信设备。
基于计时器对当前往返时延进行计时的手段,本公开实施例还能够在不用考虑拥塞控制算法的情况下就能够对待发送的第二数量的目标冗余包进行精准地调度,从而在当前往返时延内更为分散地将第二数量的目标冗余包逐个发送给第二通信设备。由此,结合前述实施例,本公开能够提供一种基于网络状态自适应决策目标数据包的副本数和调度时间的数据包重传策略。
如图6所示,其具体提供了一种自适应的数据传输方法的流程示意图,该自适应的数据传输方法包括如下的步骤。
步骤S601,客户端发出的ACK报文,到达服务器。
步骤S602,丢包检测模块遍历未被确认的数据包,检测是否有丢包,以及在有丢包的情况下执行步骤S603,无丢包的情况下返回步骤S601。
步骤S603,判断当前处理的数据包是否丢失;如果是,则执行步骤S604;如果否,则执行步骤S605。
步骤S604,当前处理的数据包是否为冗余包(即冗余副本);如果是,则执行步骤S605;如果否,则执行步骤S607(即在丢失的数据包是普通数据包的情况下执行步骤S607)。
在可选的实施方式中,本公开不仅能对普通数据包进行丢包恢复策略,也能够对冗余包执行后续的重传数量的判断过程。
步骤S605,根据检测结果维护定长队列,检测结果具体可包括当前处理的数据包为冗余包,具体在维护的定长队列(或可称为反馈队列)中加一条代表冗余包丢失的记录。
步骤S606,当前处理的数据包所在重传轮次内的数据包是否全部丢失。如果是,则执行步骤S607;如果否,则执行步骤S615。
步骤S607,当前处理的数据包的重传轮次加1,开始新一轮次的重传;冗余自适应模块根据历史副本丢包率计算期望E(即当前期望数量)。
步骤S608,判断E是否偏大;如果是,则执行步骤S609;如果否,则执行步骤S610。
步骤S609,冗余度减小,即,将R调小;然后执行步骤S612。
步骤S610,判断E是否偏小;如果是,则执行步骤S611;如果否,则执行步骤S612。
步骤S611,冗余度增加,即,将R调大;然后执行步骤S612。
步骤S612,确定调整后的目标冗余包的重传数量。
步骤S613,在一个往返时延范围内,可随机化上述重传数量的目标冗余包发送时间序列。
步骤S614,第一通信设备上的数据包发送模块,根据冗余包数量和冗余包发送时间序列按时发送冗余包。
步骤S615,结束,表示当前处理的数据包在当前轮次的重发过程结束。
本公开能够提供一种基于历史副本传输状况和数据包自身特点自适应决策重传副本数并进行发包调度的丢包恢复算法,从而实现加快丢包后恢复时间,获得更佳的用户体验。
在本实施例中,还提供了一种数据传输装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种数据传输装置,如图7和图8所示,包括:
丢包检测模块701,用于根据第二通信设备发送的反馈信息,确定目标冗余包;反馈信息包括数据包接收成功和/或失败的信息,目标冗余包为目标数据包的副本,目标数据包为第一通信设备向第二通信设备发送失败的数据包。
冗余自适应模块702,用于基于历史副本传输结果和目标数据包的重传次数,调整目标冗余包的重传数量;历史副本传输结果与重传数量负相关,重传次数与重传数量正相关,历史副本传输结果表示第一通信设备向第二通信设备发送的数据包的副本传输状况。
数据包发送模块703,用于根据调整后的目标冗余包的重传数量,向第二通信设备发送目标冗余包。
在一些可选的实施方式中,冗余自适应模块702包括:
接收成功率确定单元,用于通过历史副本丢包率确定历史副本接收成功率,历史副本传输结果为历史副本丢包率。
期望数量确定单元,用于利用历史副本接收成功率和当前冗余副本数,确定成功交付的副本的当前期望数量;当前冗余副本数表示重传次数对应的目标冗余包的重传数量。
重传数量调整单元,用于根据当前期望数量的数值范围,调整目标冗余包的重传数量。
在一些可选的实施方式中,重传数量调整单元包括:
数量增加子单元,用于根据当前期望数量小于第一阈值,增加目标冗余包的重传数量。
数量减小子单元,用于根据当前期望数量大于或等于第二阈值,减小目标冗余包的重传数量;第二阈值大于第一阈值。
在一些可选的实施方式中,丢包检测模块701包括:
队列维护单元,用于根据一个历史副本接收失败,在定长队列中存储一个第一标识,以及队列维护单元用于根据一个历史副本接收成功,在定长队列中存储一个第二标识。
丢包率确定单元,用于根据定长队列中第一标识的数量与定长队列的长度的比值,确定历史副本丢包率;定长队列的长度为定长队列中的第一标识与第二标识的数量总和。
在一些可选的实施方式中,冗余自适应模块702还包括:
副本数确定单元,用于根据重传次数查询映射表,以确定重传次数对应的当前冗余副本数,映射表用于记录重传次数与当前冗余副本数之间的映射关系。
在一些可选的实施方式中,冗余自适应模块702还包括:
映射表更新单元,用于利用调整后的目标冗余包的重传数量,更新映射表中的重传次数对应的当前冗余副本数。
在一些可选的实施方式中,冗余自适应模块702还包括:
重传数量更新单元,用于根据调整后的目标冗余包的重传数量大于第三阈值,将调整后的目标冗余包的重传数量更新为第三阈值。
在一些可选的实施方式中,数据传输装置还包括冗余包调度模块705。该冗余包调度模块705包括时延划分单元和时间片选择单元。
往返时延划分单元,用于将当前往返时延划分为第一数量的时间片,当前往返时延为第一通信设备与第二通信设备之间的往返时延,第一数量大于或等于调整后的目标冗余包的重传数量。
时间片选择单元,用于从第一数量的时间片中,选择第二数量的时间片,第二数量等于调整后的目标冗余包的重传数量。
数据包发送模块703,具体用于根据第二数量的时间片与第二数量的目标冗余包的一一对应关系,向第二通信设备发送目标冗余包。
在一些可选的实施方式中,数据包发送模块703包括设置单元和发送单元。
设置单元,用于设置计时器,计时器的计时长度为当前往返时延。
发送单元,用于启动计时器,以及用于在计时器上的时间到达第二数量的时间片中的任一时间片时,向第二通信设备发送一个目标冗余包。
在一些可选的实施方式中,第一通信设备为服务器,第二通信设备为客户端。
结合图8所示,数据传输装置设置于第一通信设备700上,第一通信设备700作为数据包的发送端,本实施例的数据传输装置还具体包括第二接收模块704,第一通信设备700与第二通信设备800之间相互通信,第二通信设备800作为数据包的接收端,第二通信设备800包括第一接收模块801和数据包反馈模块802,其中,数据包发送模块703用于向第一接收模块801发送数据包,数据包反馈模块802用于向第二接收模块704发送ACK报文,通过ACK报文向第一通信设备通知和确认数据包接收的情况。
上述各个模块和各个单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的数据传输装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本公开实施例还提供一种电子设备,具有上述图7或图8所示的数据传输装置。
请参阅图9,图9是本公开可选实施例提供的一种电子设备的结构示意图,如图9所示,该电子设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该电子设备还可包括通信接口30,用于该电子设备与其他设备或通信网络通信。
本公开实施例还提供了一种计算机可读存储介质,上述根据本公开实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本公开的实施例,但是本领域技术人员可以在不脱离本公开的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (13)

1.一种数据传输方法,其特征在于,应用于第一通信设备,所述方法包括:
根据第二通信设备发送的反馈信息,确定目标冗余包;所述反馈信息包括数据包接收成功和/或失败的信息,所述目标冗余包为目标数据包的副本,所述目标数据包为所述第一通信设备向所述第二通信设备发送失败的数据包;
基于历史副本传输结果和所述目标数据包的重传次数,调整所述目标冗余包的重传数量;所述历史副本传输结果与所述重传数量负相关,所述重传次数与所述重传数量正相关,所述历史副本传输结果表示所述第一通信设备向所述第二通信设备发送的数据包的副本传输状况;
根据调整后的所述目标冗余包的重传数量,向所述第二通信设备发送所述目标冗余包。
2.根据权利要求1所述的方法,其特征在于,所述基于历史副本传输结果和所述目标数据包的重传次数,调整所述目标冗余包的重传数量,包括:
通过历史副本丢包率确定历史副本接收成功率,所述历史副本传输结果为所述历史副本丢包率;
利用所述历史副本接收成功率和当前冗余副本数,确定成功交付的副本的当前期望数量;所述当前冗余副本数表示所述重传次数对应的所述目标冗余包的重传数量;
根据所述当前期望数量的数值范围,调整所述目标冗余包的重传数量。
3.根据权利要求2所述的方法,其特征在于,所述根据所述当前期望数量的数值范围,调整所述目标冗余包的重传数量,包括:
若所述当前期望数量小于第一阈值,则增加所述目标冗余包的重传数量;
若所述当前期望数量大于或等于第二阈值,则减小所述目标冗余包的重传数量;所述第二阈值大于所述第一阈值。
4.根据权利要求2所述的方法,其特征在于,所述通过历史副本丢包率确定历史副本接收成功率之前,所述方法还包括:
若一个历史副本接收失败,在定长队列中存储一个第一标识,以及若一个历史副本接收成功,在所述定长队列中存储一个第二标识;
根据所述定长队列中所述第一标识的数量与所述定长队列的长度的比值,确定所述历史副本丢包率;所述定长队列的长度为所述定长队列中的所述第一标识与所述第二标识的数量总和。
5.根据权利要求2所述的方法,其特征在于,所述确定成功交付的副本的当前期望数量之前,所述方法还包括:
根据所述重传次数查询映射表,以确定所述重传次数对应的所述当前冗余副本数,所述映射表用于记录重传次数与当前冗余副本数之间的映射关系。
6.根据权利要求5所述的方法,其特征在于,所述调整所述目标冗余包的重传数量之后,所述方法还包括:
利用所述调整后的所述目标冗余包的重传数量,更新所述映射表中的所述重传次数对应的所述当前冗余副本数。
7.根据权利要求1所述的方法,其特征在于,所述向所述第二通信设备发送所述目标冗余包之前,所述方法还包括:
如果所述调整后的所述目标冗余包的重传数量大于第三阈值,将所述调整后的所述目标冗余包的重传数量更新为所述第三阈值。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述根据调整后的所述目标冗余包的重传数量,向所述第二通信设备发送所述目标冗余包,包括:
将当前往返时延划分为第一数量的时间片,所述当前往返时延为所述第一通信设备与所述第二通信设备之间的往返时延,所述第一数量大于或等于所述调整后的所述目标冗余包的重传数量;
从所述第一数量的时间片中,选择第二数量的时间片,所述第二数量等于所述调整后的所述目标冗余包的重传数量;
根据所述第二数量的时间片与所述第二数量的所述目标冗余包的一一对应关系,向所述第二通信设备发送所述目标冗余包。
9.根据权利要求8所述的方法,其特征在于,所述根据所述第二数量的时间片与所述第二数量的所述目标冗余包的一一对应关系,向所述第二通信设备发送所述目标冗余包,包括:
设置计时器,所述计时器的计时长度为所述当前往返时延;
启动所述计时器,在所述计时器上的时间到达所述第二数量的时间片中的任一时间片时,向所述第二通信设备发送一个所述目标冗余包。
10.根据权利要求1至7中任一项所述的方法,其特征在于,
所述第一通信设备为服务器,所述第二通信设备为客户端。
11.一种数据传输装置,其特征在于,所述装置包括:
丢包检测模块,用于根据第二通信设备发送的反馈信息,确定目标冗余包;所述反馈信息包括数据包接收成功和/或失败的信息,所述目标冗余包为目标数据包的副本,所述目标数据包为第一通信设备向所述第二通信设备发送失败的数据包;
冗余自适应模块,用于基于历史副本传输结果和所述目标数据包的重传次数,调整所述目标冗余包的重传数量;所述历史副本传输结果与所述重传数量负相关,所述重传次数与所述重传数量正相关,所述历史副本传输结果表示所述第一通信设备向所述第二通信设备发送的数据包的副本传输状况;
数据包发送模块,用于根据调整后的所述目标冗余包的重传数量,向所述第二通信设备发送所述目标冗余包。
12.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至10中任一项所述的数据传输方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至10中任一项所述的数据传输方法。
CN202311109313.6A 2023-08-30 2023-08-30 数据传输方法、装置、电子设备及存储介质 Pending CN117061071A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311109313.6A CN117061071A (zh) 2023-08-30 2023-08-30 数据传输方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311109313.6A CN117061071A (zh) 2023-08-30 2023-08-30 数据传输方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117061071A true CN117061071A (zh) 2023-11-14

Family

ID=88660808

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311109313.6A Pending CN117061071A (zh) 2023-08-30 2023-08-30 数据传输方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117061071A (zh)

Similar Documents

Publication Publication Date Title
EP3547580B1 (en) Data sending method and apparatus, and data receiving method and apparatus
US8751682B2 (en) Data transfer using high speed connection, high integrity connection, and descriptor
EP3780542B1 (en) Data transmission method and device
CN106416179A (zh) 实现扩展传输控制功能的传输加速器
JP2016213811A (ja) インタラクティブなリアルタイムメディアの転送プロトコル
CN108401002B (zh) 文件传输方法及设备
CN113014505B (zh) 一种高动态拓扑卫星网络中时延区分的传输控制方法
JP6147939B1 (ja) 冗長符号化コンテンツデータ機能の選択的な利用を実施するトランスポートアクセラレータ
US20100235702A1 (en) Transmitter, file distribution system, file distribution control method and file distribution control program in system
WO2009088341A1 (en) Network offloading with reduced packet loss
US7168022B2 (en) Transmission control method and system
CN111092907B (zh) 基于udp协议的数据流快速传输方法、系统及介质
US20100306311A1 (en) Method of Downloading Large Size Data to a Large Number of Networked Client Machines from a Single Server
US10250499B2 (en) Multicast transmission using programmable network
US8516069B1 (en) Optimizer-to-link layer interface using dynamic buffering
CN117061071A (zh) 数据传输方法、装置、电子设备及存储介质
CN116489472A (zh) 一种视频流的传输方法、装置、电子设备及存储介质
JP7227963B2 (ja) パケット損失の動的管理
CN116566920A (zh) 一种数据传输控制方法及相关装置
CN116318545A (zh) 视频数据传输方法、装置、设备及存储介质
US6952733B1 (en) System and method for reliable multicast data distribution over an unreliable packet switched network
KR100396921B1 (ko) 중계기서버를 이용한 멀티캐스팅 전송 시스템의 오류 제어방법
CN109327398B (zh) 一种防止丢包的方法及装置
JPWO2019142751A1 (ja) メッセージ配信装置、方法およびプログラム
KR101511225B1 (ko) 패킷 송수신을 제어하는 망연동장치 및 방법

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