CN110875915A - 数据传输方法及装置 - Google Patents
数据传输方法及装置 Download PDFInfo
- Publication number
- CN110875915A CN110875915A CN201811026124.1A CN201811026124A CN110875915A CN 110875915 A CN110875915 A CN 110875915A CN 201811026124 A CN201811026124 A CN 201811026124A CN 110875915 A CN110875915 A CN 110875915A
- Authority
- CN
- China
- Prior art keywords
- network
- data
- sending
- rate
- tcp
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/54—Loss aware scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6255—Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种数据传输方法及装置。该方法包括:根据第一数据的网络性能目标和第一输层协议传输控制协议(transmission control protocol,TCP)连接的网络状态确定第一发送速率,第一TCP连接用于发送第一数据;根据第一发送速率发送第一数据。通过设置网络性能目标使得决策的输出不仅取决于网络状态,还取决于于网络性能目标,网络拥塞控制更灵活,提高了基于TCP的数据传输效率。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种数据传输方法及装置。
背景技术
随着互联网用户数量的增加,网络的拥塞问题越来越严重。加州大学劳伦伯克利国家实验室在1988年提出了拥塞避免机制,通过滑动窗口模型来进行传输控制。滑动窗口的大小是指接收方还有多大的缓冲区可以用于接收数据。发送方可以通过滑动窗口的大小来确定能够发送的最大数据量。此外,当加载到网络中的荷载超过了其处理能力时,就会发生拥塞现象,如图1所示,网络的容量限制了发送方能够发送的最大数据量。因此,发送方始终维持两个窗口大小:接收方确认窗口和拥塞窗口,并且取两个窗口的最小值作为可以发送的字节数。
随着互联网的发展,具有高带宽的主干网络、卫星通信网络以及无线网络已成为常见的网络场景。这些网络场景均具有高带宽时延积、网络状态动态多变等特点,对传输控制协议(transmission control protocol,TCP)提出了新的挑战。面对高带宽高时延且动态变化网络场景,传统TCP协议的拥塞控制机制策略固定,仅适应于特定的网络场景或流量分布,无法根据较大的空闲带宽,动态的调整发送窗口大小;此外,衡量网络性能的常用指标,诸如可用带宽、吞吐量、时延、丢包率等根据网络状态动态变化,特别是在较大往返时间(round trip time,RTT)的情况下能够获取的网络状态信息有限,无法及时获得路径的拥塞状态和可用带宽信息,难以精确建模并确定最佳的发送速率。
发明内容
本申请实施例提供了一种数据传输方法及装置,可以提高基于TCP的数据传输效率。
第一方面,提供了一种数据传输方法,其特征在于,包括:根据第一数据的网络性能目标和第一传输控制协议TCP连接的网络状态确定第一发送速率;第一TCP连接用于发送第一数据;根据第一发送速率发送第一数据。
其中,该TCP连接的网络状态可以指该TCP连接对应的当前网络状态,或该TCP连接进行第一数据的传输时对应的网络状态。
通过设置网络性能目标,使得决策的输出不仅取决于网络状态,还取决于于网络性能目标,使得网络拥塞控制更灵活,发送速率的决策更好,提高了基于TCP的数据传输效率。
在一个可能的设计中,第一数据的网络性能目标根据第一数据的特征确定。以此实现,根据第一数据的不同特征来确定不同的网络性能目标,进而根据网络性能目标进行数据传输控制,能够适用不同应用需求的场景。
在一种可能的设计中,前述网络性能目标包括有效吞吐量目标、时延目标和丢包率目标中的一项或多项。示例性的,网络性能目标可以为有效吞吐量、时延和丢包率三者的目标权重比例。通过本申请实施例,可以通过有效吞吐量、时延和丢包率等来定义网络性能目标,使得网络性能目标能够适用更多的需求。
在另一种可能的设计中,前述根据第一数据的网络性能目标和第一TCP连接的网络状态确定第一发送速率包括:按照指定决策周期根据第一数据的网络性能目标和第一TCP连接的网络状态确定第一发送速率。通过本申请实施例可以实现周期性的更新发送速率,降低对系统性能的要求,提高数据传输的稳定性以及通信效率。
在另一种可能的设计中,前述第一TCP连接的网络状态根据接收到的第一TCP连接对应的确认字符ACK确定。以此可以实现TCP连接的网络状态的确定,准确性更高。
在另一种可能的设计中,前述网络状态包括:队列时延的平滑值、在决策期间内发送TCP数据包的速率、在决策期间内接收TCP数据包的速率、RTT的平滑值、发送TCP数据包的间隔、发送ACK的间隔;其中,网络状态用于评估时延、发送间隔、丢包率以及带宽。通过上述参数对时延、发送间隔、丢包率以及带宽的评估更准确,最终得到的发送速率更合理,提高了数据传输效率。
在另一种可能的设计中,前述根据第一数据的网络性能目标和第一TCP连接的网络状态确定第一发送速率包括:根据第一数据的网络性能目标、第一TCP连接的网络状态和第一全局测量值确定第一发送速率;全局测量值为发送端对应的一个或多个TCP连接的测量值。其中,该是一个或多个TCP连接可以包括第一TCP连接,该第一全局测量值可以为发送端当前的全局测量值,或发送端在通过一个或多个TCP连接传输包括第一数据在内的数据时对应的全局测量值。通过本申请实施例可以进一步结合发送的全局测量值来确定发送速率,使得确定的发送速率更合理,能够更好的利用全网资源。
在另一种可能的设计中,前述全局测量值包括下述一项或多项:log(发送端的有效吞吐量/发送端的最大的有效吞吐量),log(发送端一个或多个TCP连接的最小RTT/发送端一个或多个TCP连接的往返时间RTT的平滑值),log(发送端的丢包率)。通过上述参数对全局TCP连接的评估更准确,最终得到的发送速率更合理,提高了数据传输效率。
在另一种可能的设计中,在根据第一数据的网络性能目标和第一传输控制协议TCP连接的网络状态确定第一发送速率之前,还包括:接收端发送的用于确认建立TCP连接的ACK。确定网络状态为初始网络状态。以此在确定首次发送数据时的网络状态。
在另一种可能的设计中,在根据第一数据的网络性能目标和第一传输控制协议TCP连接的网络状态确定第一发送速率之前,还包括:通过第一TCP连接向发送端发送第一数据的TCP数据包;接收端发送的用于确认TCP数据包被正确接收的ACK;根据ACK确定第一TCP连接的网络状态。
在另一种可能的设计中,前述根据第一发送速率通过第一TCP连接发送第一数据包括:判断第一数据的TCP数据包是否发送完毕;当第一数据的TCP数据包未发送完毕时,根据第一发送速率通过第一TCP连接发送未发送的第一数据TCP数据包。
在另一种可能的设计中,前述根据第一发送速率通过第一TCP连接发送第一数据还包括:根据第一发送速率计算最大发送量;根据第一发送速率和最大发送量通过第一TCP连接发送未发送的第一数据TCP数据包。
在另一种可能的设计中,还包括:将第一数据的网络性能目标、第一TCP连接的网络状态、第一全局测量值以及第一发送速率对应存储在数据库中。
在另一种可能的设计中,基于深度强化学习的速率模型包括策略网络和发送速率决策网络;根据第一数据的网络性能目标、第一TCP连接的网络状态和全局测量值确定第一发送速率包括:将第一TCP连接的网络状态作为策略网络的输入,并将策略网络的输出、第一数据的网络性能目标和第一全局测量值作为发送速率决策网络的输入,输出为第一发送速率。以此可以实现通过基于深度强化学习的速率模型确定第一发送速率,以更好地利用历史数据,提高通信效率。
在另一种可能的设计中,前述基于深度强化学习的速率模型还包括价值网络;该方法还包括:根据数据库存储的第二数据的网络性能目标、第二TCP连接的网络状态、第二全局测量值以及第二发送速率四者之间的对应关系通过价值网络确定损失函数值;根据损失函数值更新价值网络,确定更新后的策略梯度;根据更新后的策略梯度对策略网络和发送速率决策网络进行更新。以此可以实现根据新产生的数据,对速率模型进行优化,进一步提高了对历史数据的利用,使得确定的发送速率更合理,通信效率更高。
第二方面,提供了一种数据传输装置。包括:确定单元,用于根据第一数据的网络性能目标和第一TCP连接的网络状态确定第一发送速率;第一TCP连接用于发送第一数据;发送单元,用于根据第一发送速率发送第一数据。
在一种可能的设计中,第一数据的网络性能目标根据第一数据的特征确定。
在一种可能的设计中,网络性能目标包括有效吞吐量目标、时延目标和丢包率目标中的一项或多项。示例性的,网络性能目标可以为有效吞吐量、时延和丢包率三者的目标权重比例。
在另一种可能的设计中,确定单元具体用于:按照指定决策周期根据第一数据的网络性能目标和第一TCP连接的网络状态确定第一发送速率。
在另一种可能的设计中,第一TCP连接的网络状态根据接收到的第一TCP连接对应的确认字符ACK确定。
在另一种可能的设计中,网络状态包括:队列时延的平滑值、在决策期间内发送TCP数据包的速率、在决策期间内接收TCP数据包的速率、往返时间RTT的平滑值、发送TCP数据包的间隔、发送ACK的间隔;
其中,网络状态用于评估时延、发送间隔、丢包率以及带宽。
在另一种可能的设计中,确定单元具体用于:根据第一数据的网络性能目标、第一TCP连接的网络状态和第一全局测量值确定第一发送速率;全局测量值为发送端对应的一个或多个TCP连接的测量值。
在另一种可能的设计中,全局测量值包括下述一项或多项:log(发送端的有效吞吐量/发送端的最大的有效吞吐量),log(发送端一个或多个TCP连接的最小RTT/发送端一个或多个TCP连接的往返时间RTT的平滑值),log(发送端的丢包率)。
在另一种可能的设计中,还包括:存储单元,用于将第一数据的网络性能目标、第一TCP连接的网络状态、第一全局测量值以及第一发送速率对应存储在数据库中。
在另一种可能的设计中,基于深度强化学习的速率模型包括策略网络和发送速率决策网络;
确定单元用于:将第一TCP连接的网络状态作为策略网络的输入,并将策略网络的输出、第一数据的网络性能目标和全局测量值作为发送速率决策网络的输入,输出为第一发送速率。
在另一种可能的设计中,基于深度强化学习的速率模型还包括价值网络;装置还包括更新单元,更新单元具体用于:根据数据库存储的第二数据的网络性能目标、第二TCP连接的网络状态、第二全局测量值以及第二发送速率四者之间的对应关系通过价值网络确定损失函数值;根据损失函数值更新价值网络,确定更新后的策略梯度;根据更新后的策略梯度对策略网络和发送速率决策网络进行更新。
第三方面,提供了一种网络设备。该网络设备包括收发器、处理器和存储器;所述收发器用于收发数据,所述存储器用于存放程序;所述处理器用于执行所述存储器存储的所述程序,以控制所述网络设备执行上述第一方面或第一方面中任一种可能的设计所述的方法。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面或第一方面中任一种可能的设计所述的方法。
第五方面,提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使得计算机执行上述第一方面或第一方面中任一种可能的设计所述的方法。
第六方面,提供了一种芯片。该芯片包括处理器和存储器;存储器用于存放程序;所述处理器用于执行所述存储器存储的所述程序,以执行上述第一方面或第一方面中任一种可能的设计所述的方法。
本申请在该实施例中,通过网络性能目标和网络状态来确定发送速率,优化了发送速率的确定,提高了数据传输的效率,该网络性能目标可以是根据需要发送的数据的特征确定,以此适应不同应用需求的场景。进一步地,还可利用历史经验,获得合适网络状态和网络性能目标的发送速率的大小,不经历传统TCP拥塞控制算法的慢启动阶段,提高发送端的有效吞吐量、减少了启动时间、提高了吞吐率。
附图说明
图1为一种拥塞机制示意图;
图2为本申请实施例提供的一种应用场景示意图;
图3为本申请实施例提供的一种数据传输方法示意性流程图;
图4为本申请实施例提供的速率模型的一个示例;
图5为本申请实施例提供的速率模型的另一个示例;
图6为本申请实施例提供的另一种数据传输方法示意性流程图;
图7a为本申请实施例提供的速率模型的另一个示例;
图7b为本申请实施例提供的速率模型的另一个示例;
图8为本申请实施例提供的速率模型的另一个示例;
图9为本申请实施例提供的另一种数据传输方法示意性流程图;
图10为本申请实施例提供的一种数据传输装置结构示意图;
图11为本申请实施例提供的一种网络设备结构示意图。
具体实施方式
下面通过附图和实施例,对本申请的技术方案做进一步的详细描述。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图2为本申请实施例提供的一种应用场景示意图。如图2所示,该场景中包括发送端100以及接收端200。发送端100通过M个网络节点将数据报文发送到TCP接收端,M为大于或等于1的整数。其中,发送端100可以为数据中心节点或者内容分发网络(contentdelivery network,CDN)节点等为终端提供数据的服务器或代理服务器,例如,发送端包括但不限于网络服务器(web server)、视频服务器(video server)、即时通信服务器(IMserver)和游戏服务器(game server)等。发送端100向接收端200提供网络页面、视频文件、IM交流和游戏等数据。接收端200可以是为用户提供网络浏览、视频播放、通信交流及娱乐休闲等功能的终端,例如但不限于手机、电脑、可穿戴设备等。网络节点(图中未示出)为位于发送端100和接收端200之间的数据报文转发设备,网络节点具有IP地址,支持传输层协议传输控制协议/因特网互联协议(transmission control protocol/internetprotocol,TCP/IP),可以是数字用户线路接入复用器(digital subscriber line accessmultiplexer,DSLAM)、交换机、路由器或光线路终端设备(optical line terminal,OLT)等网络节点。
图3为本申请实施例提供的一种数据传输方法示意性流程图。如图3所示,该方法具体可以包括如下步骤:
S310,发送端根据第一数据的网络性能目标和第一TCP连接的网络状态确定第一发送速率。其中,第一数据的网络性能目标可以根据第一数据的特征确定,第一TCP连接用于发送第一数据。
其中,该TCP连接的网络状态可以指该TCP连接对应的当前网络状态,或该TCP连接进行第一数据的传输时对应的网络状态。
同一个发送端可以与一个或多个接收端分别建立TCP连接,并通过TCP连接发送数据。该第一数据可以为接收端向发送端请求发送的数据。
在本申请实施例中,可以预先定义数据的特征与网络性能目标的对应关系。该数据的特征可以包括提供该数据的应用的特征、接收该数据的接收端的特征或者数据本身的特征中的一项或多项。其中,不同应用或同一应用的不同服务对网络性能的需求不同,可以建立应用或应用服务的类型,应用或应用服务的标识等应用的信息与网络性能目标的对应关系,例如,对于直播类应用,对网络性能的需求为低时延,对于云盘类应用,对网络性能的需求为保持较高的吞吐,对于视频应用,在线观看服务比离线缓存服务的时延要求高;不同的接收端对网络性能的需求也是不同的,可以预先建立接收端需求与网络性能目标的对应关系,例如,接收端性能比较好,则可以接受较高的吞吐量;数据本身也对网络性能的需求不同,可以预先建立数据本身特征与网络性能目标的对应关系,例如,数据量比较大的数据,对吞吐量要求较高。
基于此,发送端确定第一数据的网络性能目标可以包括多种方式。例如,提供第一数据的应用服务器可以预定义第一数据的网络性能目标,并将第一数据的网络性能目标发送至发送端。再例如,发送端可以根据第一数据的特征,基于本地预先确定的特征与网络性能目标的对应关系,确定第一数据的网络性能目标。再例如,发送端可以接收接收端发送的网络性能目标。
其中,网络性能目标可以用于指示有效吞吐量、时延和丢包率中一项或多项的需求。例如,该网络性能目标可以包括有效吞吐量目标、时延目标和丢包率目标中的一项或多项;或者,网络性能目标可以为有效吞吐量目标、时延目标和丢包率目标的比值;或者为有效吞吐量、时延和丢包率需求的权重值;或者有效吞吐量、时延和丢包率中优先的一个或多个。
在接收端与发送端需要通过TCP连接传输数据时,接收端可以向发送端发送数据请求,在发送端接收到发送端的数据请求后,发送端与接收端建立TCP连接,以便通过该TCP连接发送数据。其中,第一TCP连接可以指发送端与接收端传输第一数据时建立的TCP连接。
在本申请实施例中,TCP连接的网络状态主要用于评估TCP连接的时延、发送间隔、丢包率以及带宽等信息。另外,发送端可以按照指定决策周期根据第一数据的网络性能目标和第一TCP连接的网络状态确定第一发送速率,此时,TCP连接的网络状态可以指TCP连接的决策周期内的当前网络状态。TCP连接的网络状态还可以用于评估时延的抖动或者误码率等等。
在一个示例中,TCP连接的网络状态可以包括队列时延的平滑值(用于评估时延)、在决策期间内发送TCP数据包的速率(用于评估发送间隔、丢包率)、在决策期间内接收TCP数据包的速率(用于评估发送间隔、丢包率)、往返时间RTT的平滑值(用于评估时延)、发送TCP数据包的间隔(用于评估带宽)或发送ACK的间隔(用于评估带宽)等等。其中,上述网络状态仅为示例,本申请实施例中TCP连接的网络状态还可以包括用于评估TCP连接的时延、发送间隔、丢包率或带宽等信息中任意一项的其他网络状态。该其他网络状态中的一个或多个可以与前述网络状态中的一种或多种组合,以实现评估TCP连接的时延、发送间隔、丢包率和带宽等信息。
另外,TCP连接的网络状态可以根据接收端发送的ACK确定。例如,发送端记录ACK到达时间,同时从ACK中提取ACK的序号、ACK确认序号、发送端发送的时间以及ACK发送的时间,例如:从序号为1的ACK中提取如下信息:序号,1;该数据包发送时的时间,129;已发送的总字节数,1436;上一个数据包确认收到的时间,62;已确认收到的总字节数,1436;本次确认收到的字节数,1436;ACK发送的时间,192。
示例性的,至少可以通过如下方式确定该ACK对应的TCP连接的网络状态。
其中,队列时延的平滑值可以根据该数据包发送时的时间以及上一个数据包确认接收到的时间计算得到。
在决策期间内发送TCP数据包的速率可以根据决策期间内已发送的总字节数和接收到ACK的时间确定。其中,该决策期间内可以指接收到ACK的时间到上一次决策后的时间。
在决策期间内接收TCP数据包的速率可以根据决策期间内已确认收到的总字节数和发送ACK的时间确定。其中,该决策期间内可以指发送ACK的时间到上一次决策后的时间。
RTT的平滑值SRTT的计算方式如下:SRTT(新的SRTT)=αSRTT(旧的SRTT值)+(1-α)RTT(新的RTT值)。基于此,SRTT的初始值就是0值。这里α是一个平滑因子,它决定了旧的SRTT值所占的权重,0≤α<1。其中,RTT可以根据该数据包发送时的时间和ACK到达时间计算得到。
发送TCP数据包的间隔为本次与前一次发送TCP数据包的间隔。
发送ACK的间隔为本次ACK与前一次ACK的发送间隔。
在通过TCP连接首次发送数据时,由于无法确定网络状态,所述可以确定该TCP连接的网络状态为初始值,该初始值为预设值,例如,初始值可以为0。
在确定第一数据的网络性能目标和第一TCP连接的网络状态后,根据该网络性能目标和网络状态,进行拥塞控制,根据网络状态选择符合网络性能目标要求的第一发送速率通过第一TCP连接发送第一数据。
其中,发送端确定第一发送速率可以包括多种方式。
在一个示例中,发送端可以预先确定速率模型,通过将第一数据的网络性能目标和第一TCP连接的网络状态作为预先确定的速率模型的输入,输出为第一发送速率。例如,该速率模型可以为基于深度强化学习的速率模型(例如,基于深度确定性策略梯度(deepdeterministic policy gradient,DDPG)算法的模型),也可以是其他机器学习模型。
以速率模型为基于深度强化学习的速率模型为例进行说明。例如,如图4所示,基于深度强化学习的速率模型包括策略网络401和发送速率决策网络402;在计算第一发送速率时可以将第一TCP连接的网络状态作为策略网络401的输入,并将该策略网络401的输出和第一数据的网络性能目标作为发送速率决策网络402的输入,输出为第一发送速率。
例如,网络状态可以表示为S(t),该策略网络401的输出为A(t),发送速率为a(t),网络性能目标为g,策略网络401可以表达为:A(t)=h(S(t)|β),其中β是用来定义h的一组参数,即具体的h随β的改变而改变。发送速率决策网络402可以表达为:其中是用来定义f的一组参数,即具体的f随的改变而改变。
另外,还可以根据发送端运行过程中产生的数据,对得到的速率模型进行优化。例如,发送端可以将确定的网络性能目标、网络状态和发送速率,按照对应关系记录在数据库中。例如,数据库中记录的对应关系可以如表1所示。
表1
需要说明的是,表1仅为示例,在具体实现中,数据库中可以包括更多或更少的数据。表1中的对应关系也可以通过多个表来实现。
发送端可以按照一定的时间间隔或规律,例如,数据库中的数据每增加一定数量时,根据数据库中的数据对速率模型进行更新。基于此,本申请实施例还可以包括:根据数据库存储的第二数据的网络性能目标、第二TCP连接的网络状态、第二全局测量值以及第二发送速率四者之间的对应关系通过价值网络确定损失函数值;根据损失函数值更新价值网络,确定更新后的策略梯度;根据更新后的策略梯度对策略网络和发送速率决策网络进行更新。其中,第二数据的网络性能目标、第二TCP连接的网络状态、第二全局测量值以及第二发送速率四者之间的对应关系可以包括前述第一数据的网络性能目标、第一TCP连接的网络状态、第一全局测量值以及第一发送速率的对应关系。
以基于DDPG算法的速率模型为例进行说明。例如,如图5所示,以基于DDPG算法的速率模型包括策略网络501、发送速率决策网络502和价值网络503。其中,策略网络501、发送速率决策网络502与图4所示的策略网络401、发送速率决策网络402为相同的网络。从数据库中取指定大小的数据进行训练,训练过程如下:
根据网络性能目标g,利用价值网络中的评估网络的输出Q(at)和目标网络的输出Q(a’),按如下公式计算损失函数(loss):
loss=E[(G(g)+Q(a’)-Q(at)2]
根据损失函数更新价值网络503的参数,根据更新后的价值网络503确定价值网络503的策略梯度;
根据价值网络503的策略梯度,结合策略网络501自身的策略梯度,更新策略网络501以及发送速率决策网络502的参数。
在另一个示例中,发送端可以根据预先确定的网络状态和网络性能目标到发送速率的映射确定第一发送速率。例如,可以预先确定多组网络状态、网络性能目标以及发送速率样本,针对不同的网络状态以及不同的网络性能目标采取不同的方式调节发送速率,修改调节方式,直到目标函数达到最优,最终生成一个网络状态和网络性能目标到发送速率的映射。
S320,发送端根据第一发送速率向接收端发送第一数据。
发送端在确定第一发送速率后,可以根据该第一发送速率计算本次发送的最大发送量,并向接收端发送第一数据。
在确定第一数据的发送速率后,发送端判断第一数据对应的TCP数据包是否全部发送完成,如未发送完成,根据第一发送速率通过第一TCP连接发送未被发送的第一数据的TCP数据包。
发送端判断是否收到第一数据的TCP数据包的ACK。
若收到,则根据该ACK确定下一次发送数据的网络状态。
若发送端未收到ACK,则判断发送窗口对应的TCP数据包是否全部发送完成;如果没有完成,则继续发送未被发送的第一数据的TCP数据包。如果已完成,则停止发送,直至收到第一数据的TCP数据包的ACK。
本申请在该实施例中,通过根据需要发送的数据的特征确定的网络性能目标来确定发送速率,提高了应对不同网络性能需求的能力,提高了数据传输的效率。发送端利用历史经验,直接获得合适网络状态和网络性能目标的发送速率的大小,不经历传统TCP拥塞控制算法的慢启动阶段,提高发送端的有效吞吐量、减少了启动时间、提高了吞吐率。
图6为本申请实施例提供的一种数据传输方法的示意图。在本实施例中发送端还可以结合全局测量值确定一发送速率。该方法具体可以包括如下步骤:
S610,根据第一数据的网络性能目标、第一TCP连接的网络状态和第一全局测量值确定第一发送速率。其中,全局测量值为发送端对应的一个或多个TCP连接的测量值。该是一个或多个TCP连接可以包括第一TCP连接。该第一全局测量值可以为发送端当前的全局测量值,或发送端在通过一个或多个TCP连接传输包括第一数据在内的数据时对应的全局测量值。当第一发送速率按照决策周期进行时,该第一全局测量值可以为决策周期内的发送端的全局测量值。
其中,S610中的第一数据、第一数据的网络性能目标、第一TCP连接、第一TCP连接的网络状态可以参见前述S310中的描述,此处不再赘述。
其中,全局测量值可以用于对发送端的全部TCP连接进行评估。该全局测量值包括下述一项或多项:log(发送端的有效吞吐量和发送端的最大的有效吞吐量的比值),log(发送端一个或多个TCP连接的最小RTT和发送端一个或多个TCP连接的RTT的平滑值的比值),log(发送端的丢包率)。
另外,全局测量值可以根据发送端的全局TCP连接的ACK确定。例如,发送端记录ACK到达时间,同时从ACK中提取ACK的序号、ACK确认序号、发送端发送的时间以及ACK发送的时间,发送端通过记录每一个如上所述的ACK,发送端可以根据多个TCP连接的ACK确定全局测量值。
根据第一数据的网络性能目标、第一TCP连接的网络状态和全局测量值确定第一发送速率可以包括多种方式,具体如下所述。
在一个示例中,发送端可以预先确定速率模型,通过将第一数据的网络性能目标、第一TCP连接的网络状态和全局测量值作为预先确定的速率模型的输入,输出为第一发送速率。例如,该速率模型可以为基于深度强化学习的速率模型,例如,基于DDPG算法的速率模型,也可以是其他机器学习模型。
以基于DDPG算法的速率模型为例进行说明。例如,如图7a所示,拥塞控制环境包括发送端711、发送端712和发送端713等发送端以及接收端721、接收端722和接收端723等接收端。其中,发送端与接收端之间还包括其他用于传输数据和指令的网元。在发送端711向接收端721通过第一TCP连接发送第一数据时,可以根据该第一数据对应的应用需求确定网络性能目标,例如,该性能目标可以为影响因子的目标权重比例,该影响因子可以包括时延、有效吞吐量以及丢包率等等。发送端711每次接收到ACK时,都计算该ACK对应的网络状态以及测量值,根据多个TCP连接的测量值可以得到全局测量值,例如,结合7a所示,该多个TCP连接可以包括发送端711与接收端721和发送端711与接收端722的两个TCP连接。在计算发送速率时,可以根据第一TCP连接的网络状态、第一网络性能目标以及第一全局测量值基于深度强化学习的速率模型计算得到第一发送速率,发送端711根据第一发送速率向接收端721通过第一TCP连接继续发送数据。
其中,基于深度强化学习的速率模型可以包括多种实现方式。例如,如图7b所示,基于深度强化学习的速率模型可以包括策略网络701和发送速率决策网络702;在计算第一发送速率时可以将第一TCP连接的网络状态作为策略网络701的输入,并将该策略网络701的输出和第一TCP连接的网络状态和第一全局测量值作为发送速率决策网络702的输入,输出为第一发送速率。
例如,网络状态可以标识为S(t),策略网络401的输出为A(t),发送速率为a(t),网络性能目标为g,全局测量值为m(t)。策略网络401可以表达为:A(t)=h(S(t)|β),其中β是用来定义h的一组参数,即具体的h随β的改变而改变。发送速率决策网络402可以表达为:其中是用来定义f的一组参数,即具体的f随的改变而改变。
另外,还可以根据发送端运行过程中产生的数据,对得到的速率模型进行优化。例如,发送端可以将将第一数据的网络性能目标、第一TCP连接的网络状态、第一全局测量值以及第一发送速率对应存储在数据库中。由于发送端可以是为多个接收端提供多种数据服务的,所以发送端本地数据库中可以存储有多个TCP连接对应的数据。
发送端可以按照一定的时间间隔或规律,例如,数据库中的数据每增加一定数量时,根据数据库中的数据对速率模型进行更新。
以基于DDPG算法的速率模型为例进行说明。例如,基于深度强化学习的速率模型包括策略网络801、发送速率决策网络802和价值网络803。其中,策略网络801、发送速率决策网络802与图7所示的策略网络701、发送速率决策网络702为相同的网络。从数据库中取指定大小的数据进行训练,训练过程如下:
根据网络性能目标g,网络测量值m,利用价值网络803中的评估网络的输出Q(at)和目标网络的输出Q(a’),按如下公式计算损失函数(loss):
loss=E[(G(g)·M(mt)+Q(a’)-Q(at)2]
更新价值网络803中的评估网络和目标网络的参数θμ和θQ;
取得价值的策略梯度Q;根据价值的策略梯度Q,结合策略网络自身的策略梯度,更新策略网络801以及发送速率决策网络802的参数。
其中,策略网络801或发送速率决策网络802可以由参数为θμ的评估网络和参数为θQ的目标网络的参数构成。以发送速率决策网络801的更新为例进行说明。其中,该送速率决策网络801由评估网络“μ(st|θμ)”和目标网络“Q(st,at|θQ)”构成,at为策略网络801的输出,st为网络状态,N为训练样本的数量,函数J为针对θμ的梯度,根据如下公式进行参数更新:
在另一个示例中,发送端可以根据预先确定的网络状态和网络性能目标到发送速率的映射确定第一发送速率。例如,可以预先确定多组网络状态、网络性能目标以及发送速率样本,针对不同的网络状态以及不同的网络性能目标采取不同的方式调节发送速率,修改调节方式,直到目标函数达到最优,最终生成一个网络状态和网络性能目标到发送速率的映射。
S620,发送端根据第一发送速率向接收端发送第一数据。
该步骤S620可以参见前述S320中的相关描述,不再赘述。
图9为本申请实施例提供的一种数据传输方法的示意图。如图9所示,该方法可以部署于Web服务器中,其中,可以将网络性能目标g设置为g=(0.7,0.2,0.1),保证较高的吞吐的前提下,保持较低的时延和允许一定的丢包率。Web服务器端发送速率的决策依据的性能目标g,优化目标为提高Web服务器的吞吐量。通过套接字(Socket)传递给速率计算引擎。Web服务器的数据库中存储了历史TCP流的每一个网络状态s、发送速率a、网络测量值m以及网络性能目标g。
在数据传输过程中具体流程如下:
S901,当Web服务器需要向终端发送数据时,首先与终端建立TCP连接,Web服务器端收到终端发送的确认建立TCP连接的ACK信号时,将当前网络状态设置为初始化。例如,在12Mbps带宽60毫秒RTT的链路中TCP连接建立后,网络状态初始化为s=[[0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.][0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.][0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.][0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.][0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.][0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.]]由于网络状态具有时序关系,因此本实例中每一维可以取16个时序值。
S902,速率计算引擎依据多目标优化的深度强化学习技术生成,根据网络状态s、测量值m信息以及网络性能目标g决策发送速率a。发送速率a的具体计算由深度强化学习网络中速率计算引擎计算输出,该速率计算引擎为基于DDPG算法的多目标深度强化学习的速率模型,该速率模型输入为网络状态s、当前网络测量值m以及网络性能目标g,输出即为下一次发送速率a=2.68Mbps。根据a的值,计算本次发送的最大发送量wnd=a/0.008/1436*RTT。
S903,Web服务器端判断该TCP连接是否有数据发送。如果没有数据发送,则发送结束;如有数据发送,根据上述发送速率a发送数据,由发送引擎发送相应数据经网络接口发送至网络中。
S904,终端通过TCP连接收到数据后,生成ACK,经由网络发送给服务器。
S905,当服务器未收到ACK时,则判断本次发送的最大发送量是否完成,如果没有完成,继续按该速率进行数据发送。
S906,当服务器收到ACK时,记录ACK到达时间,同时从ACK信号中提取ACK的序号、ACK确认序号、发送端发送的时间以及ACK信号发送的时间。
例如:序号为1的ACK信号中提取如下表2所示的信息:
表2
序号(seq_num) | 1 |
该数据包发送时的时间(send_ts) | 129 |
已发送的总字节数(sent_bytes) | 1436 |
上一个数据包确认收到的时间(delivered_time) | 62 |
已确认收到的总字节数(delivered) | 1436 |
本次确认收到的字节数(send_ack_bytes) | 1436 |
ACK发送的时间(send_ack_time) | 192 |
根据上述表2所示的ACK的信息,计算得到全局测量值m存储。生成新的网络状态并做归一化处理后,s=[[0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.41][0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.-1.41][0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.41][0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.41][0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.41][0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.41]],判断当前距离上次决策是否间隔10ms,如果没有,则不进行速率更新,否则将新的网络状态发送至速率计算引擎计算取得新的发送速率a=4.15Mbps,进行下一轮数据发送。
其中测量值m的计算为m=[goodput/max_g_tput,min_rtt/rtt_ewma,loss rate]=[0.68,0.98,0.86]
其中,goodput为发送端当前链路的有效吞吐量(该发送端当前链路可以对应多个TCP连接),具体地,goodput=发送端当前已确认的发送数据包大小(delivered)/当前时间-发送端启动时间;
max_g_tput为发送端当前最大的有效吞吐量;
min_rtt为发送端当前TCP流中的最小RTT,具体地,rtt=当前时间-数据包发送时间;
rtt_ewma为发送端当前TCP流的RTT的平滑值,具体地,rtt_ewma=0.875*rtt_ewma+0.125*rtt;
loss rate为发送端当前丢包率,即loss rate=(已发送的数据包的大小-已确认的数据包的大小)/已发送的数据包的大小。
图10为本申请实施例提供的一种数据传输装置结构示意图。该装置可以用于执行图3或图6所示实施例中发送端所执行的方法。如图10所示,该装置包括:
确定单元1001,用于根据第一数据的网络性能目标和第一TCP连接的网络状态确定第一发送速率;所述第一TCP连接用于发送所述第一数据;
发送单元1002,用于根据所述第一发送速率发送所述第一数据。
在一个实施例中,第一数据的网络性能目标可以根据第一数据的特征确定。
在另一个实施例中,所述确定单元1001具体用于:
按照指定决策周期根据第一数据的网络性能目标和第一TCP连接的网络状态确定第一发送速率。
在另一个实施例中,其特征在于,所述第一TCP连接的网络状态根据接收到的所述第一TCP连接对应的确认字符ACK确定。
在另一个实施例中,所述网络状态包括:队列时延的平滑值、在决策期间内发送TCP数据包的速率、在决策期间内接收TCP数据包的速率、往返时间RTT的平滑值、发送TCP数据包的间隔、发送ACK的间隔;
其中,所述网络状态用于评估时延、发送间隔、丢包率以及带宽。
在另一个实施例中,所述确定单元1001具体用于:
根据第一数据的网络性能目标、第一TCP连接的网络状态和第一全局测量值确定第一发送速率;所述全局测量值为发送端对应的一个或多个TCP连接的测量值。
在另一个实施例中,所述全局测量值包括下述一项或多项:log(发送端的有效吞吐量/发送端的最大的有效吞吐量),log(发送端一个或多个TCP连接的最小RTT/发送端一个或多个TCP连接的往返时间RTT的平滑值),log(发送端的丢包率)。
在另一个实施例中,还包括:
存储单元1003,用于将所述第一数据的网络性能目标、所述第一TCP连接的网络状态、所述全局测量值以及所述第一发送速率对应存储在数据库中。
在另一个实施例中,基于深度强化学习的速率模型包括策略网络和发送速率决策网络;
所述确定单元1001具体用于:将第一TCP连接的网络状态作为所述策略网络的输入,并将所述策略网络的输出、所述第一数据的网络性能目标和所述全局测量值作为发送速率决策网络的输入,输出为所述第一发送速率。
在另一个实施例中,所述基于深度强化学习的速率模型还包括价值网络;
所述装置还包括更新单元,所述更新单元用于:
根据数据库存储的第二数据的网络性能目标、第二TCP连接的网络状态、全局测量值以及第二发送速率四者之间的对应关系通过价值网络确定损失函数值;
根据所述损失函数值更新所述价值网络,确定更新后的策略梯度;
根据所述更新后的策略梯度对策略网络和发送速率决策网络进行更新。
上述数据传输装置涉及的相关技术特征在上文中已经结合附图,例如但不限于图3和图6,进行了详细的描述,此处不再赘述。
图11为本发明实施例提供的一种网络设备结构示意图。该网络设备1100具体包括:包括收发器1101,处理器1102,存储器1103。收发器1101、处理器1102和存储器1103可以通过总线连接。该网络设备可以用于实现图3或图6所示实施例中发送端的功能。
其中,收发器1101用于支持发送端与上述实施例中的接收端或其他网元之间收发信息,例如,该收发器1101可以包括以太网接口。在发送端与接收端之间通信过程中,数据和信令消息由处理器1102进行处理,并由收发器1101发送给接收端。来自接收端的数据和信令的经由收发器1101接收,由处理器1102进行处理得到发送端发送的数据和信令。处理器1102可以控制发送设备1100执行图3或图6所示实施例中涉及发送端的处理过程和/或用于本申请所描述的技术的其他过程。例如,处理器1102用于执行图3和图6所示的实施例中的S310和S610,收发器1101用于执行图3和图6所示的实施例中的S320和S620。存储器1103用于存储终端的程序代码和数据。
本申请实施例提供了一种芯片。该芯片包括处理器和存储器;存储器用于存放程序;所述处理器用于执行所述存储器存储的所述程序,以执行上述方法实施例中所述的方法。
在上述各个本申请实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读介质向另一个计算机可读介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (20)
1.一种数据传输方法,其特征在于,包括:
根据第一数据的网络性能目标和第一传输控制协议TCP连接的网络状态确定第一发送速率;所述第一TCP连接用于发送所述第一数据;
根据所述第一发送速率发送所述第一数据。
2.根据权利要求1所述的方法,其特征在于,所述第一数据的网络性能目标根据所述第一数据的特征确定。
3.根据权利要求1或2所述的方法,其特征在于,所述第一TCP连接的网络状态根据接收到的所述第一TCP连接对应的确认字符ACK确定。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述网络状态包括:队列时延的平滑值、在决策期间内发送TCP数据包的速率、在决策期间内接收TCP数据包的速率、往返时间RTT的平滑值、发送TCP数据包的间隔、发送ACK的间隔;
其中,所述网络状态用于评估时延、发送间隔、丢包率以及带宽。
5.根据权利要求1-4任意一项所述的方法,其特征在于,所述根据第一数据的网络性能目标和第一TCP连接的网络状态确定第一发送速率包括:
根据第一数据的网络性能目标、第一TCP连接的网络状态和第一全局测量值确定第一发送速率;所述第一全局测量值为发送端对应的一个或多个TCP连接的测量值。
6.根据权利要求5所述的方法,其特征在于,所述全局测量值包括下述一项或多项:log(发送端的有效吞吐量/发送端的最大的有效吞吐量),log(发送端一个或多个TCP连接的最小RTT/发送端一个或多个TCP连接的往返时间RTT的平滑值),log(发送端的丢包率)。
7.根据权利要求5或6任意一项所述的方法,其特征在于,还包括:
将所述第一数据的网络性能目标、所述第一TCP连接的网络状态、所述第一全局测量值以及所述第一发送速率对应存储在数据库中。
8.根据权利要求5-7任意一项所述的方法,其特征在于,基于深度强化学习的速率模型包括策略网络和发送速率决策网络;
所述根据第一数据的网络性能目标、第一TCP连接的网络状态和第一全局测量值确定第一发送速率包括:
将第一TCP连接的网络状态作为所述策略网络的输入,并将所述策略网络的输出、所述第一数据的网络性能目标和所述第一全局测量值作为发送速率决策网络的输入,输出为所述第一发送速率。
9.根据权利要求8所述的方法,其特征在于,所述基于深度强化学习的速率模型还包括价值网络;
所述方法还包括:
根据数据库存储的第二数据的网络性能目标、第二TCP连接的网络状态、第二全局测量值以及第二发送速率四者之间的对应关系通过价值网络确定损失函数值;
根据所述损失函数值更新所述价值网络,确定更新后的策略梯度;
根据所述更新后的策略梯度对策略网络和发送速率决策网络进行更新。
10.一种数据传输装置,其特征在于,包括:
确定单元,用于根据第一数据的网络性能目标和第一传输控制协议TCP连接的网络状态确定第一发送速率;所述第一TCP连接用于发送所述第一数据;
发送单元,用于根据所述第一发送速率发送所述第一数据。
11.根据权利要求10所述的装置,其特征在于,所述第一数据的网络性能目标根据所述第一数据的特征确定。
12.根据权利要求10或11所述的装置,其特征在于,所述第一TCP连接的网络状态根据接收到的所述第一TCP连接对应的确认字符ACK确定。
13.根据权利要求10-12任意一项所述的装置,其特征在于,所述网络状态包括:队列时延的平滑值、在决策期间内发送TCP数据包的速率、在决策期间内接收TCP数据包的速率、往返时间RTT的平滑值、发送TCP数据包的间隔、发送ACK的间隔;
其中,所述网络状态用于评估时延、发送间隔、丢包率以及带宽。
14.根据权利要求10-13任意一项所述的装置,其特征在于,所述确定单元具体用于:
根据第一数据的网络性能目标、第一TCP连接的网络状态和第一全局测量值确定第一发送速率;所述全局测量值为发送端对应的一个或多个TCP连接的测量值。
15.根据权利要求14所述的装置,其特征在于,所述全局测量值包括下述一项或多项:log(发送端的有效吞吐量/发送端的最大的有效吞吐量),log(发送端一个或多个TCP连接的最小RTT/发送端一个或多个TCP连接的往返时间RTT的平滑值),log(发送端的丢包率)。
16.根据权利要求14或15任意一项所述的装置,其特征在于,还包括:
存储单元,用于将所述第一数据的网络性能目标、所述第一TCP连接的网络状态、所述第一全局测量值以及所述第一发送速率对应存储在数据库中。
17.根据权利要求14-16任意一项所述的装置,其特征在于,基于深度强化学习的速率模型包括策略网络和发送速率决策网络;
所述确定单元具体用于:
将第一TCP连接的网络状态作为所述策略网络的输入,并将所述策略网络的输出、所述第一数据的网络性能目标和所述第一全局测量值作为发送速率决策网络的输入,输出为所述第一发送速率。
18.根据权利要求17所述的装置,其特征在于,所述基于深度强化学习的速率模型还包括价值网络;
所述装置还包括更新单元,所述更新单元用于:
根据数据库存储的第二数据的网络性能目标、第二TCP连接的网络状态、第二全局测量值以及第二发送速率四者之间的对应关系通过价值网络确定损失函数值;
根据所述损失函数值更新所述价值网络,确定更新后的策略梯度;
根据所述更新后的策略梯度对策略网络和发送速率决策网络进行更新。
19.一种计算机可读存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如权利要求1-9任意一项所述的方法。
20.一种计算机程序产品,包括计算机可读指令,当计算机读取并执行所述计算机可读指令,使得计算机执行如权利要求1-9任意一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811026124.1A CN110875915B (zh) | 2018-09-04 | 2018-09-04 | 数据传输方法及装置 |
EP19858201.7A EP3780542B1 (en) | 2018-09-04 | 2019-05-08 | Data transmission method and device |
PCT/CN2019/086028 WO2020048147A1 (zh) | 2018-09-04 | 2019-05-08 | 数据传输方法及装置 |
US17/098,030 US11558302B2 (en) | 2018-09-04 | 2020-11-13 | Data transmission method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811026124.1A CN110875915B (zh) | 2018-09-04 | 2018-09-04 | 数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110875915A true CN110875915A (zh) | 2020-03-10 |
CN110875915B CN110875915B (zh) | 2021-08-20 |
Family
ID=69715991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811026124.1A Active CN110875915B (zh) | 2018-09-04 | 2018-09-04 | 数据传输方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11558302B2 (zh) |
EP (1) | EP3780542B1 (zh) |
CN (1) | CN110875915B (zh) |
WO (1) | WO2020048147A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111970208A (zh) * | 2020-08-27 | 2020-11-20 | 腾讯科技(深圳)有限公司 | 网络传输方法、装置、设备及计算机可读存储介质 |
CN112235322A (zh) * | 2020-12-11 | 2021-01-15 | 广东睿江云计算股份有限公司 | 一种tcp传输方法及其系统 |
CN112770357A (zh) * | 2021-01-08 | 2021-05-07 | 浙江大学 | 一种基于深度强化学习的无线网络拥塞控制方法 |
CN113411228A (zh) * | 2021-06-04 | 2021-09-17 | 网宿科技股份有限公司 | 一种网络状况的确定方法及服务器 |
CN113518246A (zh) * | 2021-09-10 | 2021-10-19 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、计算机设备、存储介质及程序产品 |
CN115412437A (zh) * | 2022-08-17 | 2022-11-29 | Oppo广东移动通信有限公司 | 数据处理方法及装置、设备、存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11330074B2 (en) * | 2020-08-12 | 2022-05-10 | Fortinet, Inc. | TCP (transmission control protocol) fast open for classification acceleration of cache misses in a network processor |
US11616730B1 (en) * | 2021-10-01 | 2023-03-28 | Compira Labs Ltd. | System and method for adapting transmission rate computation by a content transmitter |
WO2023078542A1 (en) * | 2021-11-03 | 2023-05-11 | Huawei Technologies Co., Ltd. | An apparatus and a method for congestion control for multiple heterogeneous flows |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102457486A (zh) * | 2010-10-19 | 2012-05-16 | 华为技术有限公司 | 一种媒体内容的传输方法及装置 |
CN103188036A (zh) * | 2011-12-30 | 2013-07-03 | 中国移动通信集团江苏有限公司 | 调整传输控制协议数据传输的方法及通信装置 |
CN105847175A (zh) * | 2016-04-21 | 2016-08-10 | 中国科学院信息工程研究所 | 数据中心网络中的应用层调度方法 |
CN107171969A (zh) * | 2016-03-07 | 2017-09-15 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
CN108235382A (zh) * | 2017-11-27 | 2018-06-29 | 上海华为技术有限公司 | 一种传输速率调整的方法、节点设备以及服务器 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7099954B2 (en) * | 2002-06-27 | 2006-08-29 | Microsoft Corporation | Congestion control mechanism for streaming media |
FI20021527A0 (fi) * | 2002-08-27 | 2002-08-27 | Oplayo Oy | Menetelmä ja järjestelmä mediavirran kaistanleveyden säätämiseksi |
US7453805B2 (en) * | 2003-03-21 | 2008-11-18 | Panasonic Corporation | Method and communication system for signaling information for optimizing rate control schemes in wireless networks |
CN100438504C (zh) * | 2006-05-15 | 2008-11-26 | 武汉虹旭信息技术有限责任公司 | 一种流媒体发送速率控制方法 |
US7826358B2 (en) * | 2006-12-29 | 2010-11-02 | Ellacoya Networks, Inc. | Hierarchical virtual queuing |
US7821936B2 (en) * | 2007-07-27 | 2010-10-26 | Avaya Inc. | Systems and methods for partitioning end-to-end performance effects using network tomography |
CN102282804B (zh) * | 2008-11-24 | 2015-08-12 | 瞻博网络公司 | 自适应网络内容传送系统 |
US8416684B2 (en) * | 2010-12-14 | 2013-04-09 | Verizon Patent And Licensing, Inc. | Time and data rate policing |
CN102546832B (zh) * | 2012-02-29 | 2014-09-24 | 北京快网科技有限公司 | 基于tcp协议的报文发送方法 |
US9060252B2 (en) * | 2012-07-31 | 2015-06-16 | International Business Machines Corporation | Rate adaptive transmission of wireless broadcast packets |
CN110730105B (zh) * | 2015-05-29 | 2021-09-28 | 腾讯科技(深圳)有限公司 | 图片数据传输方法、装置、设备及存储介质 |
US10887239B2 (en) * | 2015-09-08 | 2021-01-05 | Parallel Wireless, Inc. | RAN for multimedia delivery |
WO2019081783A1 (en) * | 2017-10-27 | 2019-05-02 | Deepmind Technologies Limited | REINFORCING LEARNING USING DISTRIBUTED PRIORIZED READING |
-
2018
- 2018-09-04 CN CN201811026124.1A patent/CN110875915B/zh active Active
-
2019
- 2019-05-08 WO PCT/CN2019/086028 patent/WO2020048147A1/zh unknown
- 2019-05-08 EP EP19858201.7A patent/EP3780542B1/en active Active
-
2020
- 2020-11-13 US US17/098,030 patent/US11558302B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102457486A (zh) * | 2010-10-19 | 2012-05-16 | 华为技术有限公司 | 一种媒体内容的传输方法及装置 |
CN103188036A (zh) * | 2011-12-30 | 2013-07-03 | 中国移动通信集团江苏有限公司 | 调整传输控制协议数据传输的方法及通信装置 |
CN107171969A (zh) * | 2016-03-07 | 2017-09-15 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
CN105847175A (zh) * | 2016-04-21 | 2016-08-10 | 中国科学院信息工程研究所 | 数据中心网络中的应用层调度方法 |
CN108235382A (zh) * | 2017-11-27 | 2018-06-29 | 上海华为技术有限公司 | 一种传输速率调整的方法、节点设备以及服务器 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111970208A (zh) * | 2020-08-27 | 2020-11-20 | 腾讯科技(深圳)有限公司 | 网络传输方法、装置、设备及计算机可读存储介质 |
CN111970208B (zh) * | 2020-08-27 | 2024-03-05 | 腾讯科技(深圳)有限公司 | 网络传输方法、装置、设备及计算机可读存储介质 |
CN112235322A (zh) * | 2020-12-11 | 2021-01-15 | 广东睿江云计算股份有限公司 | 一种tcp传输方法及其系统 |
CN112770357A (zh) * | 2021-01-08 | 2021-05-07 | 浙江大学 | 一种基于深度强化学习的无线网络拥塞控制方法 |
CN113411228A (zh) * | 2021-06-04 | 2021-09-17 | 网宿科技股份有限公司 | 一种网络状况的确定方法及服务器 |
CN113518246A (zh) * | 2021-09-10 | 2021-10-19 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、计算机设备、存储介质及程序产品 |
CN115412437A (zh) * | 2022-08-17 | 2022-11-29 | Oppo广东移动通信有限公司 | 数据处理方法及装置、设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3780542A4 (en) | 2021-03-31 |
EP3780542B1 (en) | 2023-07-26 |
EP3780542A1 (en) | 2021-02-17 |
US20210067453A1 (en) | 2021-03-04 |
WO2020048147A1 (zh) | 2020-03-12 |
US11558302B2 (en) | 2023-01-17 |
CN110875915B (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110875915B (zh) | 数据传输方法及装置 | |
JP4233884B2 (ja) | サービス品質のプロービングを行う方法 | |
US8326984B1 (en) | Selective compression for network connections | |
WO2020042624A1 (zh) | 传输速率控制方法、装置、发送设备和接收设备 | |
CN110445722B (zh) | 拥塞控制方法、装置、设备及存储介质 | |
CN113169896B (zh) | 网络度量的连续校准 | |
KR102176653B1 (ko) | 무선 통신 시스템에서 전송 제어를 위한 방법 및 장치 | |
Wang et al. | TCP congestion control algorithm for heterogeneous Internet | |
CN102859950A (zh) | 估计拥塞的方法 | |
WO2021103706A1 (zh) | 控制数据包发送方法、模型训练方法、装置及系统 | |
CN111372323B (zh) | 连接建立方法、相关设备及介质 | |
Liu et al. | Segment duration for rate adaptation of adaptive HTTP streaming | |
CN104734985A (zh) | 数据接收流量控制方法及其系统 | |
JP2013179502A (ja) | 通信制御装置、通信制御方法および通信制御プログラム | |
Havey et al. | Receiver driven rate adaptation for wireless multimedia applications | |
CN106658644B (zh) | 通信网络选路方法和装置 | |
CN108449408B (zh) | 基于多路径的游戏加速系统 | |
CN111211988B (zh) | 面向分布式机器学习的数据传输方法及系统 | |
KR20180010531A (ko) | 통신 시스템에서 전송 제어 프로토콜의 전송 버퍼 제어 방법 및 장치 | |
CN117676695A (zh) | Tcp传输方法、装置和系统 | |
US20100246422A1 (en) | Network device and method of measuring upstream bandwidth employed thereby | |
JP5662779B2 (ja) | 通信システム及びノード装置 | |
CN114945046A (zh) | 回源路径确定方法、内容分发网络、存储介质、程序产品 | |
CN114024917B (zh) | 互联网业务带宽保障的方法、装置、设备及存储介质 | |
CN107302504B (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 |