CN112422241A - 数据传输方法、装置、存储介质及计算机设备 - Google Patents
数据传输方法、装置、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN112422241A CN112422241A CN202011241838.1A CN202011241838A CN112422241A CN 112422241 A CN112422241 A CN 112422241A CN 202011241838 A CN202011241838 A CN 202011241838A CN 112422241 A CN112422241 A CN 112422241A
- Authority
- CN
- China
- Prior art keywords
- data
- communication line
- transmission
- communication
- packet loss
- 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/1812—Hybrid protocols; Hybrid automatic repeat request [HARQ]
- H04L1/1816—Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of the same, encoded, message
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- 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/1607—Details of the supervisory signal
-
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/123—Evaluation of link metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/102—Gateways
- H04L65/1023—Media gateways
- H04L65/1026—Media gateways at the edge
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种数据传输方法、装置、存储介质及计算机设备。该方法包括:将数据拆分成多个数据包;根据所述多个数据包在多条候选通信线路中的传输成本,从所述多条候选通信线路中确定至少一条第一通信线路;利用所述第一通信线路传输所述多个数据包;若检测到所述第一通信线路的丢包符合第一预设丢包条件,则根据所述多条候选通信线路的传输质量确定至少一条第二通信线路;利用所述第二通信线路对所述第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的所述数据包还原出所述数据。由此,在控制传输成本的前提下,同时兼顾传输质量。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种数据传输方法、装置、存储介质及计算机设备。
背景技术
直播CDN(Content Delivery Network,内容分发网络)分为源站和边缘节点,其中,源站把推流边缘节点和拉流边缘节点桥接起来。通过源站的中转,实现一个主播推流,世界各地多个观众同时观看。而边缘节点则是保障用户到源站之间网络连通性和稳定延迟的重要角色。
在主播推流过程中,会涉及到音视频数据的传输。相关技术中,业界标准音视频传输方案大致可分为基于TCP(Transmission Control Protocol,传输控制协议)的协议,基于UDP(User Datagram Protocol,用户数据报协议)的协议等。其中,基于TCP的协议能保证数据有序可靠送达,但在网络抖动时,会出现卡顿现象。基于UDP的协议不具有可靠性,但收发消息不会产生阻塞。
由于用户网络的多样化,直播CDN中的边缘节点需要尽可能靠近用户地理位置部署,并接入相同的ISP(Internet Service Provider)。边缘节点和源站之间音视频数据的通信受到跨ISP网络质量影响,且采用专线或租用专用高质量信道,其成本较高。
发明内容
本申请实施例提供一种数据传输方法、装置、存储介质及计算机设备,在控制传输成本的前提下,同时兼顾传输质量。
本申请实施例提供了一种数据传输方法,包括:
将数据拆分成多个数据包;
根据所述多个数据包在多条候选通信线路中的传输成本,从所述多条候选通信线路中确定至少一条第一通信线路;
利用所述第一通信线路传输所述多个数据包;
若检测到所述第一通信线路的丢包符合第一预设丢包条件,则根据所述多条候选通信线路的传输质量确定至少一条第二通信线路;
利用所述第二通信线路对所述第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的所述数据包还原出所述数据。
本申请实施例还提供一种数据传输装置,包括:
拆分模块,用于将数据拆分成多个数据包;
第一确定模块,用于根据所述多个数据包在多条候选通信线路中的传输成本,从所述多条候选通信线路中确定至少一条第一通信线路;
传输模块,用于利用所述第一通信线路传输所述多个数据包;
第二确定模块,用于若检测到所述第一通信线路的丢包符合第一预设丢包条件,则根据所述多条候选通信线路的传输质量确定至少一条第二通信线路;
重传模块,用于利用所述第二通信线路对所述第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的所述数据包还原出所述数据。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的数据传输方法中的步骤。
本申请实施例还提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如上任一实施例所述的数据传输方法中的步骤。
本申请实施例提供了数据传输方法、装置、存储介质及计算机设备,通过本申请实施例的数据传输方法,将数据拆分成多个数据包;根据多个数据包在多条候选通信线路中的传输成本,从多条候选通信线路中确定至少一条第一通信线路;利用第一通信线路传输多个数据包;若检测到第一通信线路的丢包符合第一预设丢包条件,则根据多条候选通信线路的传输质量确定至少一条第二通信线路;利用第二通信线路对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。其优先按照传输成本选择第一通信线路传输数据包,当丢包符合第一预设丢包条件时,才会按照传输质量选择第二通信线路对丢包的数据进行重传。本申请实施例通过融合多种信道,可以降低单一线路抖动对数据传输效果的影响,避免单一线路中断导致数据传输中断,在传输时优先按照传输成本优先方式选择通信线路,在传输过程中根据丢包情况按照传输质量优先方式选择通信线路,由此在控制传输成本的前提下,同时兼顾传输质量。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为相关技术中跨ISP(Internet Service Provider,因特网服务供应商)的典型CDN架构示意图。
图2为相关技术中跨地域的典型CDN架构示意图。
图3为本申请实施例提供的数据传输方法的流程示意图。
图4为本申请实施例提供的三线服务器的应用场景示意图。
图5为本申请实施例提供的双线服务器的应用场景示意图。
图6为本申请实施例提供的BGP服务器的应用场景示意图。
图7为本申请实施例提供的专线服务器的一种应用场景示意图。
图8为本申请实施例提供的专线服务器的另一种应用场景示意图。
图9为本申请实施例提供的专线服务器的又一种应用场景示意图。
图10为本申请实施例提供的单线服务器的一种应用场景示意图。
图11为本申请实施例提供的单线服务器的另一种应用场景示意图。
图12为本申请实施例提供的数据传输方法的采用通信代理程序的应用场景示意图。
图13为本申请实施例提供的数据传输方法的采用通信代理程序的多机进程间通信过程示意图。
图14为本申请实施例提供的数据传输方法的另一流程示意图。
图15为本申请实施例提供的通信代理程序与调度服务程序形成数据分发网络的示意图。
图16为本申请实施例提供的简化的数据流向模型示意图;
图17为本申请实施例提供的节点互联的示意图;
图18为本申请实施例提供的数据传输装置的一种结构示意图。
图19为本申请实施例提供的数据传输装置的另一种结构示意图。
图20为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
直播内容分发网络(Content Delivery Network,CDN)分为源站和边缘节点,其中,源站把推流边缘节点和拉流边缘节点桥接起来。通过源站的中转,实现一个主播推流,世界各地多个观众同时观看。而边缘节点则是保障用户到源站之间网络连通性和稳定延迟的重要角色。
在主播推流过程中,会涉及到音视频数据的传输。相关技术中,业界标准音视频传输方案大致可分为基于传输控制协议(Transmission Control Protocol,TCP)的协议,基于用户数据报协议(User Datagram Protocol,UDP)的协议等。其中,基于TCP的传输协议,如实时消息传输协议(Real Time Messaging Protocol,RTMP),利用TCP的可靠性基础,保证数据有序可靠送达。但由于各操作系统内置的TCP流控算法是为一般用途设计,未针对音视频场景的低延迟需求进行优化,在网络抖动时,退避时间较长,导致卡顿现象。
由于TCP的流控算法无法在应用层调整,因此在低延迟音视频互动场景会使用基于UDP的协议,如SRT(Secure Reliable Transport)和其他私有UDP协议。UDP不具有可靠性,收发消息也不会产生阻塞,因此需要在应用层自行维护消息的时序和可靠送达。通常基于UDP的可靠协议具有如下几个部分:流控算法,重传与确认控制,消息分包与重组。流控算法用于探测可用带宽,限制发送速度,避免无节制发送导致的恶化。重传与确认机制确保每一个消息都送达对端。消息分包与重组,确保消息正确有序。
由于用户网络的多样化,直播CDN中的边缘节点需要尽可能靠近用户地理位置部署,并接入相同的ISP(Internet Service Provider)。边缘节点和源站之间的通信(即音视频信号的传输)受到跨ISP网络质量影响,且采用专线或租用专用高质量信道,其成本较高。
请参阅图1和图2,图1示出了相关技术中跨ISP的典型CDN架构,比如,源站接入第二网络运营商推流边缘节点、第一网络运营商线路、第二网络运营商线路和第三网络运营商线路,其中,第二网络运营商推流边缘节点靠近第二网络运营商主播端,靠近观众端的第一网络运营商边缘节点接入到第一网络运营商线路,靠近观众端的第二网络运营商边缘节点接入到第二网络运营商线路,靠近观众端的第三网络运营商边缘节点接入到第三网络运营商线路,实现跨ISP的CDN架构。
上述仅仅是对其中一个实施例的说明,在一些实施例中,上述的第二网络运营商主播还可以替换成第一网络运营商主播、第三网络运营商主播等,相应的,上述靠近第二网络运营商主播的第二运营商推流边缘节点也对应替换成第一网络运营商推流边缘节点、第三网络运营商推流边缘节点等,且靠近观众端的边缘节点的类型及数量也可以根据具体需求进行相应调整,例如,根据具体需求,源站只接入第二网络运营商线路和第一网络运营商线路,或者源站只接入第二网络运营商线路和第三网络运营商线路,或者源站只接入第一网络运营商线路和第三网络运营商线路。
图2示出了相关技术中跨地域的典型CDN架构,比如,源站接入湖南第二网络运营商/第三网络运营商/第一网络运营商推流边缘节点、浙江第二网络运营商/第三网络运营商/第一网络运营商边缘节点和成都第二网络运营商/第三网络运营商/第一网络运营商边缘节点,其中,湖南第二网络运营商/第三网络运营商/第一网络运营商推流边缘节点靠近湖南主播,浙江第二网络运营商/第三网络运营商/第一网络运营商边缘节点靠近浙江观众,成都第二网络运营商/第三网络运营商/第一网络运营商边缘节点靠近成都观众,实现跨地域的CDN架构。
上述仅仅是对相关技术中其中一个实施例的说明,在相关技术中的一些实施例中,例如,上述的湖南主播可以替换成广东主播,相应的,湖南第二网络运营商/第三网络运营商/第一网络运营商边缘节点可以替换成广东第二网络运营商/第三网络运营商/第一网络运营商边缘节点;再如,浙江观众可以替换成江西观众,成都观众可以替换成厦门观众等。
如图1和图2,其中,源站接入多个运营商,例如,第一网络运营商,第二网络运营商,第三网络运营商等,而边缘节点走的是相同运营商网络回源。多运营商线路接入,则会要求现有业务和程序兼容多线路调度。采用边界网关协议(Border Gateway Protocol,BGP),向多个运营商广播优化路由。多运营商线路和BGP本质上还是在运营商的骨干网上传输数据,仍受该网络高峰期抖动、服务质量(Quality of Service,QoS)策略等影响。另外,架设专线或者租用专用高质量信道,其成本较高。源站与边缘节点采用低延迟UDP协议,并在数据中加入冗余数据,抵抗一定程度的网络抖动,然而,UDP协议抵抗抖动有上限,超过阈值还是会对直播效果产生影响。
对于直播内容分发网络,相关技术虽然也存在基于信道的传输成本和传输质量动态规划传输路径的方案,但是根据该方案受传输质量因子影响无法保证每次选择出的信道的传输成本最低,并且在采用选定的信道进行传输后,不会根据信道的在后续传输过程中的实际传输情况做出相应的调整,导致不能准确地进行传输路径的动态规划,无法确保对端节点能够根据接收的数据包完整还原出对应数据。
为了解决相关技术中的上述技术问题,本申请实施例提供一种数据传输方法、装置、存储介质及计算机设备。具体地,本申请实施例的数据传输方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、通信设备、个人计算机(Personal Computer,PC)、个人数字助理(Personal Digital Assistant,PDA)等终端设备,终端还可以包括客户端,该客户端可以是主播客户端、用户客户端、携带有直播应用程序的浏览器客户端或即时通信客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
例如,当该数据传输方法运行于终端时,终端设备存储有直播应用程序并用于呈现直播画面中的场景。终端设备用于通过图形用户界面与用户进行交互,例如通过终端设备下载安装直播应用程序并运行。该终端设备将图形用户界面提供给用户的方式可以包括多种,例如,可以渲染显示在终端设备的显示屏上,或者,通过全息投影呈现图形用户界面。例如,终端设备可以包括触控显示屏和处理器,该触控显示屏用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令,该图形用户界面包括直播画面,该处理器用于运行该直播程序、生成图形用户界面、响应操作指令以及控制图形用户界面在触控显示屏上的显示。
例如,当该数据传输方法运行于服务器时,可以为云直播。云直播是指以云计算为基础的直播方式。在云直播的运行模式下,直播应用程序的运行主体和直播画面呈现主体是分离的,数据传输方法的储存与运行是在云直播服务器上完成的。而直播画面呈现是在云直播的客户端完成的,云直播客户端主要用于直播数据的接收、发送以及直播画面的呈现,例如,云直播客户端可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑、个人数字助理等,但是进行直播数据处理的终端设备为云端的云直播服务器。在进行直播时,用户操作云直播客户端向云直播服务器发送操作指令,云直播服务器根据操作指令运行直播程序,将直播画面等数据进行编码压缩,通过网络返回云直播客户端,最后,通过云直播客户端进行解码并输出直播画面。
本申请实施例提供了一种数据传输方法,该方法可以由终端或服务器执行。本申请实施例以数据传输方法由终端执行为例来进行说明。其中,该终端包括触控显示屏和处理器,该触控显示屏用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令。用户通过触控显示屏对图形用户界面进行操作时,该图形用户界面可以通过响应于接收到的操作指令控制终端本地的内容,也可以通过响应于接收到的操作指令控制对端服务器的内容。例如,用户作用于图形用户界面产生的操作指令包括用于启动直播应用程序的指令,处理器被配置为在接收到用户提供的启动直播应用程序的指令之后启动直播应用程序。此外,处理器被配置为在触控显示屏上渲染和绘制与直播应用程序相关联的图形用户界面。触控显示屏是能够感测屏幕上的多个点同时执行的触摸或者滑动操作的多触敏屏幕。用户在使用手指在图形用户界面上执行触控操作,图形用户界面在检测到触控操作时,控制直播应用程序的图形用户界面执行与触控操作对应的动作。例如,该直播应用程序可以是云直播平台,微信直播平台,线上教学直播平台,电商直播平台,等等。
其中,比如,采用微信直播平台,例如,小程序直播,学员无须下载APP/插件,直接实现通过小程序实现直播观看,学员可以通过触控操作,实现相应的动作,比如,点赞,发表评论,送主播礼物等,其推广便捷,降低客户成本,可以更加专注内容。
再比如,通过无缝对接公众号,在公众号中搭建直播间,学员可以通过触控操作,实现相应的动作,比如,与主播进行互动等,帮助用户沉淀,可以快速实现流量变现。
再比如,采用线上教学直播平台,通过人工智能播放,自动分析视频生成字幕,自动切换线路,支持倍速播放,采用可视化数据模型,记录用户在学习过程中的行为数据,提供多维度、多指标的交叉分析能力,用户通过触控操作可以与在线教师实现互动,进行问题咨询。
再比如,采用电商直播平台,通过直播导购、产品展示、新品发布,可以助力商家流量变销量,同时,用户通过触控操作可以实现相应的动作,比如,发表评论,送主播礼物,与主播互动等。
处理器可以被配置为响应于用户的触控操作产生的操作指令来呈现对应的直播画面。
图3为本申请实施例提供的数据传输方法的流程示意图。该方法的具体流程可以如下:
步骤101,将数据拆分成多个数据包。
比如,当源端节点(即所在节点)需要向对端节点发送数据(可以是音视频数据)时,一般首先会将待发送数据进行拆分,可以将该待发送数据拆分成多个数据包。该待发送数据可以是音视频数据,比如,直播媒体数据,视频会议数据,等等,还可以是其他各种类型的通信数据。在数据传输时,数据链路层对数据帧的长度都有一个限制,也就是链路层所能承受的最大数据长度,这个值称为最大传输单元,即MTU。以以太网为例,这个值通常是1500字节。对于IP数据包来讲,也有一个长度,在IP包头中,以16位来描述IP包的长度,也就是说,一个IP包,最长可能是65535字节。如果IP包的大小超过了MTU值,那么就需要分片,也就是把一个IP包分为多个。
在数据传输时,一般会根据网络的传输质量情况,以及待传输数据的大小,为了保证通信的稳定性,会将待传输数据拆分成多个数据包后进行传输,拆分出的数据包的数量也是根据待发送数据的大小来决定的。
例如,当网络情况较好的情况下,可以将待发送数据拆分成数量较少的数据包,相当于每个数据包的长度稍微长点,但不能超过MTU值,比如,在网络较好的情况下,将待发送数据拆分成10个数据包,每个数据包的长度不能超过MTU值;例如,当网络情况较差的情况下,可以将待发送数据拆分成数量较多的数据包,相当于每个数据包的长度稍微短点,再比如,在网络较差的情况下,将待发送数据拆分成20个数据包,等等。
在一个实施例中,源端节点和对端节点可以为服务器、机器或者其他可以实现通信功能的电子设备、通信设备、移动设备、终端设备等。当为服务器时,可以是三线服务器、双向服务器、BGP服务器、专线服务器、单线服务器等。服务器接入的网络资源和成本是多种多样的。
比如,图4中的三线服务器接入的网络资源包含第三网络运营商、第一网络运营商和第二网络运营商等运营商的线路,也就是接入了三大运营商的网络资源。
图5中的双线服务器接入的网络资源包含第三网络运营商和第二网络运营商等运营商的线路,也就是接入了第三网络运营商和第二网络运营商的网络资源,当然,对于双线服务器,也可以是接入第三网络运营商和第一网络运营商等运营商的线路或者是接入第一网络运营商和第二网络运营商等运营商的线路。
图6中的BGP服务器接入的网络资源包含第二网络运营商/第三网络运营商/第一网络运营商BGP,图7中的专线服务器接入的网络资源包含第二网络运营商/第三网络运营商/第一网络运营商BGP,以及上海第二网络运营商-日本专线,其可以提供国际专线;图8中的专线服务器接入的网络资源包含第二网络运营商/第三网络运营商/第一网络运营商BGP,以及上海第二网络运营商-美国专线,其可以提供国际专线;图9中的单线服务器接入的网络资源包含广州-杭州专线,以及广州第一网络运营商的网络,其可以提供国内专线;图10中的单线服务器接入的网络资源包含常州第二网络运营商,其可以提供单线服务;图11中的单线服务器接入的网络资源包含加州云计算服务线路,其可以提供单线服务。
比如,在单线接入的服务器或机器上,若跟服务器或机器A的链路拥塞,跟服务器或机器B通信正常,服务器或机器B到服务器或机器A也正常,则可使用服务器或机器B中转的方式提升传输质量。
可选的,为了达到对数据合理拆分的效果,在进行数据拆分时,首先,获取多条候选通信线路和传输成本,然后,根据多条候选通信线路和传输成本,计算数据拆分的数据包的数量与数据大小,即计算拆分出的数据包的数量,以及数据包的长度,但单个数据包的长度不能超过MTU值。只有结合了当前多条候选通信线路和传输成本的数据,才能给出合理的数据拆分。之后,根据数据包的数量与数据大小,将所上述数据拆分成多个数据包。
可选的,不同的节点(可以是源端节点,也可以是对端节点)具有不同的网络配置,可能的配置有:单运营商单线接入、多运营商多线接入、BGP线路、两个机房间专线,即对节点的网络配置至少包含单运营商单线接入、多运营商多线接入、BGP线路和两个机房间专线中的任意一种或多种。节点接入以上一条或多条线路,形成多条对外通信的通道。此外,也可通过途径其他节点的方式形成额外通道。
可选的,若所在节点(源端节点)和对端节点均部署通信代理程序(即代理服务),上述将数据拆分成多个数据包,包括:
所在节点的通信代理程序接收应用程序发送的数据;
所在节点的通信代理程序将数据拆分成多个有序的字节流,并将字节流封装成无序的数据包。
比如,源端节点中部署有应用程序和通信代理程序,对端节点中也部署有应用程序和通信代理程序,通信代理程序可以为上层应用提供端到端的通信服务。如,应用服务A向应用服务B发送数据。由于通信代理程序可以屏蔽多通道数据分发逻辑,且应用服务无需关注应用服务A与应用服务B的网络拓扑和各通道网络的传输质量,从而使得上层业务无需重复实现复杂的网络传输算法,只需专注业务逻辑。
如图12,比如,采用通信代理程序后,业务进程A向业务进程B发送消息,不再直接通信,而通过通信代理程序进行中转。如图13,例如,业务进程A连接到通信代理程序A,业务进程B连接到通信代理程序B,向通信代理程序A发起业务进程B的连接,通信代理程序A探测到通信代理程序B不可达,向业务进程A反馈目标不可达,若通信代理程序A探测到通信代理程序B,通信代理程序B未连接到业务进程B,则通信代理程序B通过通信代理程序A向业务进程A反馈目标不可达,业务进程A依次通过通信代理程序A和通信代理程序B向业务进程B发送消息,并由通信代理程序B转发消息。
比如,使用了通信代理程序,业务进程A向本机的通信代理程序发起TCP连接,指定对端节点为业务进程B(即指定目的IP与端口),所有通信都经过通信代理程序中转,由通信代理程序实现有序和可靠传输;也可以向通信代理程序发送UDP消息,通信代理程序不保证有序性及可靠性,但尽可能挑选最优的通信线路发送,以提高送达率。
而未使用通信代理程序的业务模型为,业务进程A与业务进程B建立连接(如TCP),由TCP的机制保证消息有序可靠;或者直接发送UDP数据,可靠与有序性需要业务服务自行保证。
比如,该源端节点的通信代理程序接收源端节点中应用程序发送的待发送数据,该源端节点的通信代理程序将接收到的数据拆分成多个有序的字节流,并将这些有序的字节流封装成无序的数据包。例如,业务进程A(对应源端节点)向业务进程B(对应对端节点)发送TCP消息,首先将消息发送给本机通信代理程序(即源端节点的通信代理程序)。本机通信代理程序将TCP有序、可靠的字节流封装成无序、不可靠的UDP数据包,并通过多个可用候选通信线路(通信链路,如单一线路丢包率超过10%)发出,等等。具体的,源端节点的通信代理程序对接收到的数据包进行重新封装,附带上通信代理程序的协议头,封装成UDP数据包,以UDP数据包为单位,不同的数据包可以途经不同的路径(即通信线路)送达对端节点。应用程序通过使用通信代理程序,可以使上层业务无需重复实现复杂的网络传输算法,专注业务逻辑。
例如,应用程序不直接收发主机外的数据包,而是统一经过部署在同一台机器的通信代理程序对外通信。源端节点(所在节点)的应用程序以TCP的方式与其通信代理程序建立连接,并告知该通信代理程序需要与哪个远端(对端节点)进行通信;源端节点(所在节点)的通信代理程序通过多信道(多个通信线路)发送数据到对端节点的通信代理程序,对端节点的通信代理程序重组数据,恢复数据包时序后,向上层应用进程投递数据。这样,应用程序无需通过UDP协议改善网络质量,也无需关心网络信道的连接方式。应用程序的通信代理程序对上层业务屏蔽了网络通信的细节,现有程序只需较小改动即可拥有高质量的传输效果。
在一种实施例中,也可以不使用单独的通信代理程序,可以将通信代理程序执行的所有算法程序移植到其应用程序中,由应用程序实现原应用程序以及其通信代理程序执行的所有算法程序,也即应用程序内置通信代理程序。
比如,源端节点的通信代理程序执行的所有算法程序移植到源端节点的应用程序中,对端节点的通信代理程序移植到对端节点的应用程序中。由源端节点的应用程序发送数据,并将数据拆分成多个有序的字节流,并将字节流封装成无序的数据包。
例如,业务进程A(对应源端节点)向业务进程B(对应对端节点)发送TCP消息,源端节点将TCP消息有序、可靠的字节流封装成无序、不可靠的UDP数据包,并通过多个可用通信线路(通信链路,如单一线路丢包率超过10%)发出,等等。
步骤102,根据多个数据包在多条候选通信线路中的传输成本,从多条候选通信线路中确定至少一条第一通信线路。
比如,由于每条候选通信线路的传输成本是不同的,可以根据多个数据包在多条候选通信线路中的传输成本,按照传输成本从低到高的顺序确定出至少一条第一通信线路,即确定出的第一通信线路可以是一条或多条。比如,可以从多条候选通信线路中确定出传输成本最低的一条第一通信线路,再如,可以按照传输成本从低到高的顺序从多条候选通信线路中确定出至少两条第一通信线路,又如,按照传输成本从低到高的顺序从多条候选通信线路中确定出两条第一通信线路,或者,按照传输成本从低到高的顺序从多条候选通信线路中确定出三条第一通信线路,或者,按照传输成本从低到高的顺序从多条候选通信线路中确定出四条第一通信线路,等等。
步骤103,利用第一通信线路传输多个数据包。
比如,利用确定出的第一通信线路传输多个数据包,可以理解的是,可以使用确定出的一条第一通信线路传输多个数据包,也可以使用确定出的多条第一通信线路传输多个数据包。本申请实施例中,优选使用一条第一通信线路传输多个数据包,该一条第一通信线路就是传输成本最低的通信线路,这样可以保证将传输成本降到最低。
而使用多条第一通信线路传输多个数据包时,该多条第一通信线路虽然是按照传输成本从低到高的顺序排序的,并不是每条第一通信线路都是传输成本最低的通信线路,因此与使用一条第一通信线路传输相比,其传输成本稍微较高,由此可知,使用传输成本最低的一条第一通信线路传输多个数据包,可以保证将传输成本降到最低。
例如,当采用通信代理程序时,即源端节点中部署有应用程序和通信代理程序,源端节点(所在节点)的通信代理程序将多个数据包在一条或在多条第一通信线路上(按照比例)进行传输。当源端节点的应用程序中内置通信代理程序时,此时,源端节点中的应用程序兼具原应用程序的功能及通信代理程序执行的所有算法程序,源端节点的应用程序将多个数据包在一条或在多条第一通信线路上(按照比例)进行传输。
可以理解的是,本申请实施例优先使用传输成本优先方式,该传输成本优先方式指的是按传输成本从低到高、传输质量从优到差的顺序使用可用的候选通信线路,例如,若第一条通信线路(成本最低的通信线路)存在丢包,则同时启用第二条通信线路。若第二条通信线路也存在丢包,则同时启用第三条通信线路,等等。
数据传输(数据收发)按比值(比例)在多条通信线路上进行。例如,A、B、C三条通信线路,融合比例为10%、40%、50%,则10%的数据包通过通信线路A发送,40%的数据通过通信线路B发送,剩下的50%通过通信线路C发送。将数据通过多个通信线路(信道)发送给对端节点时,遵循成本越低的通信线路发送数据越多的规则。
需要注意的是,在数据传输的过程中,传输质量有可能是变化的,则融合的比例在数据传输过程中,会根据实时传输质量和传输成本进行动态调整的,即分配给传输质量的权重与传输成本的权重是可以动态调整的,可以保证每次选择出的信道的传输成本最低,并且在采用选定的信道进行传输后,会根据信道的在后续传输过程中的实际传输情况做出相应的调整,以准确地进行传输路径的动态规划,以便适应实时的网络动态情况,确保对端节点能够根据接收的数据包完整还原出对应数据,达到较佳的通信效果。通过融合多种信道,可以降低单一线路抖动对数据传输效果的影响,避免单一线路中断导致数据传输中断。例如,通过融合多种信道,可以降低单一线路抖动对直播效果的影响,避免单一线路中断导致直播中断。
比如,还可以采用传输质量优先方式,该传输质量优先方式指的是按传输质量从优到差、传输成本从低到高的顺序使用可用的候选通信线路,其启用方法与传输成本优先方式类似,这里不再一一赘述。
比如,为了达到更好的数据传输效果,会优先选择传输成本优先方式,再选择传输质量优先方式,也就是说,传输成本优先方式的优先级要高于传输质量优先方式的优先级。例如,在数据传输过程中,通过融合多种信道(即通信线路)后,以廉价信道为主,专线等高质量高价信道为辅助,在控制传输成本的前提下,同时兼顾传输质量。
步骤104,若检测到第一通信线路的丢包符合第一预设丢包条件,则根据多条候选通信线路的传输质量确定至少一条第二通信线路。
比如,当对端节点接收到源端节点(所在节点)发送的数据包后,会向源端节点发送确认接收到数据包的反馈信息,此时,源端节点会接收到对端节点确认收到数据包的反馈信息,若检测到第一通信线路的丢包符合第一预设丢包条件,则根据多条候选通信线路的质量确定至少一条第二通信线路。
再比如,当对端节点的代理程序接收到源端节点(所在节点)发送的数据包后,会向源端节点的代理程序发送确认接收到数据包的反馈信息,此时,源端节点的代理程序会接收到对端节点的代理程序确认收到数据包的反馈信息,即所在节点的通信代理程序确认对端节点的通信代理程序的反馈信息,若检测到第一通信线路的丢包符合第一预设丢包条件,则根据多条候选通信线路的传输质量确定至少一条第二通信线路。
步骤105,利用第二通信线路对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。
比如,当采用第一通信线路传输数据包时,若出现丢包时,且丢包符合第一预设丢包条件,则根据多条候选通信线路的传输质量确定至少一条第二通信线路。然后利用第二通信线路对第一通信线路丢包的数据包进行重传,以使对端节点对接收的数据包进行重组,进行重组后,能够还原出原数据。例如,利用第二通信线路对第一通信线路丢包的数据包进行重传,以使对端节点的通信代理程序对接收的数据包能够按照编号重组成有序的字节流,恢复成数据后,能够投递给对端节点的应用程序。
比如,在源端节点和对端节点均部署有通信代理程序的情况下,源端节点的通信代理程序确认对端节点的通信代理程序的反馈信息,以使对端节点的通信代理程序对接收的数据包能够按照编号重组成有序的字节流,恢复成数据,能够投递给对端节点的应用程序。
再比如,对端节点在部署有通信代理程序的情况下,业务进程B(对应对端节点)的通信代理程序接收到由源端节点的通信代理程序(或者源端节点的应用程序,该应用程序内置通信代理程序)各个通信线路传递的消息(如UDP数据包),按数据包的编号重组成有序字节流,恢复成TCP协议投递给业务进程B。
又比如,在对端节点的通信代理程序移植到应用程序的情况下,业务进程B的应用程序接收到由源端节点的通信代理程序(或者源端节点的应用程序,该应用程序内置通信代理程序)通过各个通信线路传递的消息(如UDP数据包),按数据包的编号重组成有序字节流,恢复成TCP协议后自行进行投递。
本申请实施例通过改进的UDP传输协议,实现将数据拆分后通过不同的通信线路送达对端节点。上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本申请实施例提供的数据传输方法,通过将数据拆分成多个数据包;根据多个数据包在多条候选通信线路中的传输成本,从多条候选通信线路中确定至少一条第一通信线路;利用一条或多条第一通信线路传输多个数据包;优先选择一条传输成本最低的第一通信线路传输多个数据包,这样可以将传输成本降到最低。若检测到第一通信线路的丢包符合第一预设丢包条件,则根据多条候选通信线路的传输质量确定至少一条第二通信线路;利用第二通信线路对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。其优先按照传输成本选择第一通信线路传输数据包,当丢包符合第一预设丢包条件时,才会按照传输质量选择第二通信线路对丢包的数据进行重传,且对传输成本和传输质量分配的权重是可以随着网络传输环境的不同进行相应调整的,可以保证每次选择出的信道的传输成本最低,并且在采用选定的信道进行传输后,会根据信道的在后续传输过程中的实际传输情况做出相应的调整,以准确地进行传输路径的动态规划,以便于适用不同的网络传输环境,确保对端节点能够根据接收的数据包完整还原出对应数据。本申请实施例通过融合多种信道,可以降低单一线路抖动对数据传输效果的影响,避免单一线路中断导致数据传输中断。
在传输时优先采用传输成本优先方式,在传输过程中根据丢包情况按照传输质量优先方式选择通信线路,传输成本优先方式为按传输成本从低到高、传输质量从优到差的顺序使用通信线路,传输质量优先方式为按传输质量从优到差、传输成本从低到高的顺序使用通信线路,传输成本优先方式优先于传输质量优先方式。本申请实施例能解决各机器互联问题,为上层应用提供端到端数据投递服务,在控制传输成本的前提下,同时兼顾传输质量。
可选的,本申请实施例中,在利用第一通信线路传输多个数据包之后,该方法还可以包括:
若检测到第一通信线路的丢包符合第二预设丢包条件,则启用数据冗余算法进行数据纠错,其中,第一通信线路为多条候选通信线路中传输成本最低的通信线路;
利用第一通信线路对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。
比如,第一通信线路为多条候选通信线路中传输成本最低的通信线路,当利用多条候选通信线路中传输成本最低的通信线路进行传输时,即利用第一通信线路进行传输时,若检测到第一通信线路存在丢包,且丢包符合第二预设丢包条件时,则启用数据冗余算法进行数据纠错,例如,原本有10个数据包,当前丢包率为10%,传输时使用数据冗余算法,产生11个数据包,任意10个数据包均能恢复出原数据,因此采用数据冗余可以抵抗丢包。需要说明的是,如果丢包小于1个无需重传未收到的数据包。对于丢包的数据包,利用第一通信线路对丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。
请参阅图14,图14为本申请实施例提供的数据传输方法的另一流程示意图。该方法的具体流程可以如下:
步骤201,将数据拆分成多个数据包。
步骤201的具体实施可参见步骤101的实施例,在此不再赘述。
步骤202,根据多个数据包在多条候选通信线路中的传输成本,从多条候选通信线路中确定至少一条第一通信线路。
比如,在将数据拆分成多个数据包后,例如,源端节点(可以是源端节点的通信代理程序,或者源端节点的应用程序,且该应用程序内置通信代理程序)将数据拆分成多个有序的字节流,并将这些有序的字节流封装成无序的数据包(如UDP数据包)。然后,根据多个数据包在多条候选通信线路中的传输成本,按照传输成本从低到高的顺序从多条候选通信线路中确定至少一条第一通信线路。
可以理解的是,在对数据包进行传输时,优先根据传输成本优先方式,即根据传输成本从低到高、传输质量从优到差的顺序使用通信线路,利用一条或多条第一通信线路进行传输,优选使用一条传输成本最低的第一通信线路进行传输,这样可以保证将传输成本降到最低。本申请实施例优先考虑传输成本,然后再考虑传输质量。以廉价信道为主,专线等高质量高价信道为辅助,在控制传输成本的前提下,同时兼顾传输质量。
步骤203,利用第一通信线路传输多个数据包,并将传输过程中的传输信息实时上报给调度服务程序,其中,传输信息至少包括节点互联的传输质量和传输成本。
比如,利用第一通信线路传输多个数据包,在数据包传输的过程中,源端节点和对端节点将传输信息实时上报给调度服务程序(部署在服务器上),该传输信息至少包括节点互联的传输质量和传输成本。
需要说明的是,调度服务程序会根据传输质量和传输成本,分别为每个节点(也可以是通信端点)生成传输质量优先的最短通信线路,以及传输成本优先的最短通信线路,即调度服务程序收集各节点(或节点的通信代理程序)互联的传输质量和传输成本,并根据收集的各节点互联的传输质量和传输成本,进行动态路径规划,可以得到动态规划的目标候选通信线路,一般会形成两条以上推荐的目标候选通信线路,即可以形成多条以上推荐的目标候选通信线路,即该目标候选通信线路至少包括传输成本优先通信线路和传输质量优先通信线路,从目标候选通信线路中确定出最优通信线路,利用最优通信线路进行传输。比如,在进行动态路径规划时,可以采用动态规划算法来实现,例如,采用Floyd-Warshall算法进行动态路径规划,或者采用其他路径优化算法,如维特比算法。通过网络路径动态决策,可以绕开拥塞点,提高网络传输质量。
可选的,上述传输信息还包括所在节点信息,该所在节点信息至少包括如下其中之一:IP地址、对应的网络类型、质量因子和成本因子。
如图15,比如,在传输过程中,通信代理程序将传输信息实时上报给调度服务程序,该传输信息包括节点互联的传输质量和传输成本,且最优通信线路至少包括传输成本优先通信线路和传输质量优先通信线路,该传输信息还包括通信代理程序自己所在节点信息,如所有IP地址、对应的网络类型、质量因子和成本因子等,连接到当前通信代理程序的业务进程信息,如业务进行唯一ID,通信代理程序到其他所有可以直连的对端节点的通信代理程序信息,如网络质量,这些传输信息可以上报给调度服务程序。
其中,对应的网络类型至少包括以下其中之一:普通线路、专线和点对点隧道(如vpn,即Virtual Private Network,虚拟专用网络)。比如,如图16,当通信的节点为服务器时,服务器A向服务器B发送数据,可选专线、普通线路和经过服务器C中转,专线是指租用或架设的高质量线路,一般不与其他租户共享通信带宽,全天质量可控,但成本高。普通线路是指经过城域网、骨干网等公共网络,受高峰期影响,有质量波动,成本较低。经服务器C中转,也是基于普通线路,通过收集各个节点直连的网络质量信息,规划出的较优中转线路。当普通线路拥塞或中断时,可通过服务器C中转代替。实际应用中,数据流向会更复杂。服务器的节点分布世界各地,他们大部分或全部均可两两直接通信,区别只是通信质量。某个节点只要存在可达路径,则通信不会中断。
如图17,节点A与节点E是可达的;节点G和节点H是可达的;节点A与节点G是不可达的。可以收集各个通信代理程序互联的传输质量和对应通信线路的传输成本,可以采用动态规划算法,分别为每个通信端点生成传输质量优先的最短通信线路,以及传输成本优先的最短通信线路。
其中,质量因子指的是按历史数据,进行分类的质量档次,如最近4小时峰值丢包率,5%以内、10%以内、20%以内、40%以内、50%以内和大于50%等几个档次。成本因子需要人工配置,一般按每GB带宽价格大致归一化,如a、b、c三条通信线路,若单价是10、100、1000,归一化后为1、10、100。
步骤204,若检测到第一通信线路无丢包,则获取调度服务程序动态规划的最优通信线路,其中,最优通信线路为第一通信线路。
比如,按传输成本(人工设定)从低到高的顺序启用通信线路。若传输成本最低的第一通信线路无丢包,也就是丢包率为0,则从调度服务程序获取动态规划的最优通信线路,该最优通信线路为成本最低的第一通信线路。
步骤205,使用第一通信线路传输数据包,以使对端节点能够对接收的数据包还原出数据。
比如,在确定出最优通信线路后,使用该最优通信线路传输数据包,即当第一通信线路无丢包时,可以继续使用第一通信线路传输数据包,不用启用其他通信线路,这样不仅可以保证传输成本是最低的,而且传输质量也是最高的。
步骤206,若检测到第一通信线路的丢包符合第一预设丢包条件,则获取调度服务程序动态规划的多条目标候选通信线路,其中,第一预设丢包条件包括:丢包率大于第一预设丢包阈值,且小于第二预设丢包阈值,且往返时延小于或等于第一预设延迟阈值,第二预设丢包阈值大于第一预设丢包阈值。
比如,传输成本比例由人工指定,传输质量比例由通信代理程序实时凭据,节点互联的网络质量数据至少包括丢包率和往返时延(Round-Trip Time,RTT),也就是丢包率和往返时延构成质量指标。往返时延是一个重要的性能指标,它表示从源端节点发送数据开始,从源端节点收到来自对端节点的确认(对端节点收到数据后便立即发送确认),总共经历的时延。
比如,第一预设丢包阈值为10%,第二预设丢包阈值为50%,第一预设延迟阈值为500ms,若第一通信线路的丢包率大于10%,小于50%,且往返时延小于或等于500ms,则从调度服务程序获取动态规划的多条目标候选通信线路。
步骤207,确定多条目标候选通信线路中的最优通信线路,其中,最优通信线路为多条目标候选通信线路中传输质量最优的第二通信线路。
比如,在获取到调度服务程序动态规划的多条目标候选通信线路后,可以从该多条目标候选通信线路确定出最优通信线路,该最优通信线路为多条目标候选通信线路中传输质量最优的第二通信线路,即从多条目标候选通信线路中确定出传输质量最优的通信线路,该传输质量最优的通信线路即是第二通信线路。
步骤208,在最优通信线路上使用数据副本方式对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。
比如,在确定出多条目标候选通信线路中的最优通信线路后,根据传输质量优先方式启用最优通信线路进行传输,即启用传输质量最优的第二通信线路,在第二通信线路上使用数据副本方式(一种数据冗余方式)对第一通信线路丢包的数据进行重复发送,即通过双倍发包或者三倍发包方式,牺牲带宽对抗丢包。
需要说明的是,丢包重传涉及到ACK(ACKnowledge Character,确认字符)和NAK(Negative Acknowledgment,否定应答或者非应答)。在数据通信传输中,对端节点发给源端节点的一种传输控制字符,ACK表示确认发来的数据已经接收无误,NAK是一个用于数字通信中确认数据收到,但是有小错误的信号。
比如,某节点接入了多条运营商线路,其传输成本各有高低。优先使用传输成本最低的第一通信线路进行传输。当该成本最低的第一通信线路出现轻微丢包,则启用FEC进行数据纠错。当FEC纠错能力不足(丢包率太高),则按传输成本升序,启用下一条通信线路(第二通信线路)进行传输。原通信线路(第一通信线路)仍按FEC的方式传送,并在新通信线路(第二通信线路)中传输原数据的部分副本。例如,第一条通信线路的丢包率40%,则在保持第一条通信线路数据发送的同时,通过第二条通信线路传送40%的原数据副本,即第一条通信线路的丢包率40%,在第二条通信线路冗余发送40%的数据,第三条通信线路和第四条通信线路以此类推。通过在最优通信线路上使用数据副本方式对第一通信线路丢包的数据包进行重传,这样可以防止数据丢失,以便于对端节点还原出原数据,保证数据的完整性。
步骤209,若检测到第一通信线路的丢包符合第二预设丢包条件,则获取调度服务程序动态规划的多条目标候选通信线路,其中,第二预设丢包条件包括:丢包率小于或等于预设第一丢包阈值,且往返时延小于或等于第二预设延迟阈值,第二预设延迟阈值小于第一预设延迟阈值。
步骤210,确定多条目标候选通信线路中的最优通信线路,并启用数据冗余算法进行数据纠错,其中,最优通信线路为多条候选通信线路中传输成本最低的第一通信线路。
步骤211,利用最优通信线路对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。
对于步骤209-211,比如,若检测到第一通信线路的丢包率小于或等于第一预设丢包阈值,且往返时延(RTT)小于或等于第二预设延迟阈值时,则首先从调度服务程序获取动态规划的多条目标候选通信线路,其中,该第二预设延迟阈值小于第一预设延迟阈值。之后,从该多条目标候选通信线路中确定出最优通信线路,该最优通信线路为多条候选通信线路中传输成本最低的第一通信线路。然后,启用数据冗余算法进行数据纠错。利用最优通信线路对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。
比如,第一预设丢包阈值为10%,第二预设延迟阈值为200ms,若传输成本最低的第一通信线路的丢包率小于或等于10%,且往返时延小于或等于200ms,认为存在轻微丢包,则只使用成本最低的第一通信线路进行传输,并启用数据冗余算法进行纠错,即在数据包中加入冗余数据,例如,Reed-Solomon算法,它是FEC(Forward Error Correction,前向错误纠正)的一种实现,此方式CPU运算负载较高。也可以采用其类型的冗余算法,例如CRC循环冗余算法等。
采用数据冗余抵抗丢包,具体的,例如,原本有10个数据包,当前丢包率10%,传输时使用数据冗余算法,产生11个数据包,任意10个数据包均能恢复出原数据,则丢包小于1个无需重传未收到的数据包。通过数据冗余技术,如纠删码、重复数据等,可以增加数据的抗丢包能力。当数据冗余度大于丢包率时,则不需要重传。即若数据冗余程度大于丢包程度,则无需重传丢包的数据包即可复原数据,不产生额外的时延。通过提高冗余度可保证通信低时延,重传会增加时延。通过数据冗余,可抵抗通信线路的轻微丢包。
步骤212,若检测到第一通信线路的丢包符合第三预设丢包条件,则获取调度服务程序动态规划的多条目标候选通信线路,其中,第三预设丢包条件包括:丢包率大于第二预设丢包阈值,或者往返时延大于第一预设延迟阈值。
步骤213,确定多条目标候选通信线路中的最优通信线路。
步骤214,根据屏蔽规则屏蔽使用第一通信线路,在最优通信线路上使用数据副本方式对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。
对于步骤212-214,比如,若检测到成本最低的第一通信线路的丢包率大于50%,或者往返时延超过500ms,则从调度服务程序获取多条目标候选通信线路,然后从多条目标候选通信线路中确定出最优通信线路,根据屏蔽规则屏蔽使用第一通信线路,在最优通信线路上使用数据副本方式对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。
比如,调度服务程序会下发路由表,具体的,调度服务程序根据各个通信代理程序上报的传输质量(包括丢包率和往返时延)和传输成本,为每个通信代理程序生成该通信代理程序到其他各个通信代理程序非直连(即需要中间节点转发)的最佳数据流动路径。调度服务程序向每个通信代理程序下发多条线路方案(即多条目标候选通信线路),供通信代理程序决策。其中,目标不可达的判断由对端节点的通信代理程序负责。
比如,调度服务程序在决策通信路径时,其具体决策如下:会剔除不可达通信线路;传输质量低于设定阈值,则认为不可达。若直连线路传输质量(根据丢包率和往返时延)良好以上,则通过直连线路发送数据。若直连线路传输质量下降,丢包率过高,数据冗余无法完全抵消,或者往返时延增大,则部分数据通过直连线路,部分数据通过转发通信线路发送。有多条直连通信线路,则综合传输成本与传输质量,按比例分配承载数据量。
比如,通信代理程序的决策如下:调度服务程序对同一个目的通信代理程序,会下发至少两条目标候选通信线路,一条传输质量优先,一条传输成本优先。通信代理程序优先选用传输成本优先通信线路,当该通信线路丢包率超过10%时,启用其他通信线路进行传输,将部分数据通过传输质量优先通信线路发送。
需要注意的是,网络传输质量评估是有时效性的,有可能调度服务程序下发的线路方案劣化,丢包率超过50%,通信代理程序将临时屏蔽该方案。若无其他线路方案可用,通信代理程序根据自行探测的直连的可用通信线路发送数据,并调高数据冗余度,以抵抗丢包。
步骤215,若屏蔽使用第一通信线路后无可用的候选通信线路,则自行探测直连的候选通信线路,使用目标候选通信线路中传输质量最优的通信线路传输数据包,并调高数据冗余度。
比如,通信代理程序(独立于应用程序或内置在应用程序中)根据调度服务程序下发的目标候选通信线路,结合实时通信线路的传输质量,剔除丢包率超过50%的通信线路,按传输成本优先方式使用通信线路。若单一通信线路丢包超5%,则启用多条通信线路。若剔除丢包率高的通信线路后无可用的目标候选通信线路,则忽略调度服务程序下发的目标候选通信线路,由通信代理程序自行探测直连的可用的候选通信线路,以通信代理程序探测的实时数据为准,按传输质量优先方式挑选通信线路(一条或多条),即在直连的通信线路中选择传输质量最优的通信线路进行传输,源端节点与不同运营商直连的成本是不同的,通过提升数据冗余度,可以提高送达率。
步骤216,若屏蔽使用第一通信线路后无可用的候选通信线路,且自行探测不到可用的候选通信线路,则继续使用第一通信线路传输数据包。
比如,当屏蔽使用第一通信线路(传输成本最低的通信线路)后,若无可用的候选通信线路,且通信代理程序自行探测不到可用的候选通信线路,则可以忽略上述屏蔽规则,继续使用原来丢包率超过50%的通信线路进行传输,即继续使用第一通信线路进行传输。
比如,通信代理程序A到通信代理程序B之间同时存在多条可达路径,当传输成本最低的通信线路,如直连,发生丢包(但能连通,丢包率高于给定的阈值,例如50%),则结合直连和其他路径(绕路中转和专线等)共同承担通信任务。成本比例指的是每GB带宽价格。例如,有a、b、c三条通路,其单价比值为1:2:3。若a线路丢包率为30%,b线路丢包率为10%,c线路丢包率为0%,一种可能的分配方案为,a线路承担原数据量50%的传送工作,b线路承担30%,c线路承担20%。通信代理程序A与通信代理程序B之间各通信线路的时延指标也类似,一般有传输质量优先和传输成本优先两种基础策略。
本申请实施例通过动态路径规划,可适应实时网络拥塞情况,更灵活选取数据流向路径,应对突发网络抖动和故障;通过绕路到有专线资源的节点,可提高整体链路质量;发送和接收数据路径可不一致,降低单向线路质量下降的影响。
当对端节点接收到源端节点(即所在节点)发送的数据包后,会向源端节点发送确认接收到数据包的反馈信息,此时,源端节点会接收到对端节点确认收到数据包的反馈信息,而对端节点接收到数据包后,会对这些数据包进行重组,进行重组后,可以还原出原数据。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本申请实施例提供的数据传输方法,首先,将数据拆分成多个数据包;然后根据多个数据包在多条候选通信线路中的传输成本,从多条候选通信线路中确定至少一条第一通信线路;之后,利用第一通信线路传输所述多个数据包,并将传输过程中的传输信息实时上报给调度服务程序,其中,传输信息至少包括节点互联的传输质量和传输成本。
若第一通信线路无丢包,则获取调度服务程序动态规划的最优通信线路,;然后使用第一通信线路传输数据包,以使对端节点能够对接收的数据包还原出所述数据。
若检测到第一通信线路的丢包符合第一预设丢包条件,则获取调度服务程序动态规划的多条目标候选通信线路;确定多条目标候选通信线路中的最优通信线路;在最优通信线路上使用数据副本方式对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。
若检测到第一通信线路的丢包符合第二预设丢包条件,则获取调度服务程序动态规划的多条目标候选通信线路;确定多条目标候选通信线路中的最优通信线路,并启用数据冗余算法进行数据纠错;利用最优通信线路对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。
若检测到第一通信线路的丢包符合第三预设丢包条件,则获取调度服务程序动态规划的多条目标候选通信线路;确定多条目标候选通信线路中的最优通信线路;根据屏蔽规则屏蔽使用所述第一通信线路,在最优通信线路上使用数据副本方式对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出所述数据。
若屏蔽使用第一通信线路后无可用的候选通信线路,则自行探测直连的候选通信线路,使用目标候选通信线路中传输质量最优的通信线路传输数据包,并调高数据冗余度;若屏蔽使用第一通信线路后无可用的候选通信线路,且自行探测不到可用的候选通信线路,则继续使用第一通信线路传输数据包。通过对应传输成本比例,将数据包拆分成多份,并通过多信道传送,可降低整体通信丢包率和时延,能在控制传输成本的前提下,同时兼顾传输质量。
为便于更好的实施本申请实施例的数据传输方法,本申请实施例还提供一种数据传输装置。请参阅图18,图18为本申请实施例提供的数据传输装置的一种结构示意图。该数据传输装置300可以包括拆分模块301、第一确定模块302、第一传输模块303、第二确定模块304和第一重传模块305。
其中,拆分模块301,用于将数据拆分成多个数据包;
第一确定模块302,用于根据所述多个数据包在多条候选通信线路中的传输成本,从所述多条候选通信线路中确定至少一条第一通信线路。
第一传输模块303,用于利用第一通信线路传输多个数据包;
第二确定模块304,用于若检测到第一通信线路的丢包符合第一预设丢包条件,则根据多条候选通信线路的传输质量确定至少一条第二通信线路;
第一重传模块305,用于利用第二通信线路对所述第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。
可选的,为了满足传输数据包的长度不能超过MTU值,拆分模块301,还可以用于:获取多条候选通信线路和传输成本;根据多条候选通信线路和传输成本,计算数据拆分的数据包的数量与数据大小;根据数据包的数量与数据大小,将数据拆分成多个数据包。
可选的,为了让调度服务程序更好的动态规划目标候选通信线路,第一传输模块303,还可以用于:利用第一通信线路传输所述多个数据包,并将传输过程中的传输信息实时上报给调度服务程序,其中,传输信息至少包括节点互联的传输质量和传输成本。
可选的,节点互联的传输质量至少包括丢包率和往返时延,为了实时动态获取最优通信线路,第二确定模块304,可以用于:若检测到第一通信线路的丢包符合第一预设丢包条件,则获取调度服务程序动态规划的多条目标候选通信线路,其中,第一预设丢包条件包括:丢包率大于第一预设丢包阈值,且小于第二预设丢包阈值,且往返时延小于或等于第一预设延迟阈值,第二预设丢包阈值大于所述第一预设丢包阈值;确定多条目标候选通信线路中的最优通信线路,其中,最优通信线路为所述多条目标候选通信线路中传输质量最优的第二通信线路。
可选的,为了对丢包的数据包进行重传,以便还原出原数据,第一重传模块305,还可以用于:在最优通信线路上使用数据副本方式对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。
可选的,传输信息还包括所在节点信息,该所在节点信息至少包括如下其中之一:IP地址、对应的网络类型、质量因子和成本因子。其中,对应的网络类型至少包括如下其中之一:普通线路、专线和点对点隧道。
可选的,若所在节点和对端节点均部署通信代理程序,拆分模块301,还可以用于:所在节点的通信代理程序接收应用程序发送的数据;所在节点的通信代理程序将上述数据拆分成多个有序的字节流,并将有序的字节流封装成无序的数据包。
可选的,若所在节点和对端节点均部署通信代理程序,第一传输模块303,还可以用于:所在节点的通信代理程序将多个数据包在第一通信线路上进行传输。
可选的,为了在传输过程中由通信代理程序及时将通信线路调整到经调度服务程序动态规划的目标候选通信线路中的最优通信线路,第二确定模块304,还可以用于:所在节点的通信代理程序确认对端节点的通信代理程序的反馈信息,若检测到第一通信线路的丢包符合第一预设丢包条件,则根据多条候选通信线路的传输质量确定至少一条第二通信线路。
可选的,为了能完成数据的投递,第一重传模块305,还可以用于:利用第二通信线路对第一通信线路丢包的数据包进行重传,以使对端节点的通信代理程序对接收的数据包能够按照编号重组成有序的字节流,恢复成数据后,能够投递给对端节点的应用程序。
可选的,对端节点的网络配置至少包括以下其中之一:单运营商单线接入、多运营商多线接入、BGP线路和两个机房间专线。
请参阅图19,图19为本申请实施例提供的数据传输装置的另一结构示意图。图19与图18在区别在于:该数据传输装置300还包括第二重传模块306、第三重传模块307和第四重传模块308。
其中,第二重传模块306,用于若检测到第一通信线路的丢包符合第二预设丢包条件,则启用数据冗余算法进行数据纠错,其中,第一通信线路为多条候选通信线路中传输成本最低的通信线路;利用第一通信线路对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。
可选的,节点互联的传输质量至少包括丢包率和往返时延,为了在传输过程中将通信线路及时调整到经调度服务程序动态规划的目标候选通信线路中的最优通信路径,第二重传模块306,还可以用于:若检测到第一通信线路的丢包符合第二预设丢包条件,则获取调度服务程序动态规划的多条目标候选通信线路,其中,第二预设丢包条件包括:丢包率小于或等于预设第一丢包阈值,且往返时延小于或等于第二预设延迟阈值,第二预设延迟阈值小于第一预设延迟阈值;确定多条目标候选通信线路中的最优通信线路,并启用数据冗余算法进行数据纠错,其中,最优通信线路为多条候选通信线路中传输成本最低的第一通信线路;利用最优通信线路对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。
可选的,为了在传输过程中及时将通信线路调整到经调度服务程序动态规划的目标候选通信线路中的最优通信线路,第三重传模块307,还可以用于:若检测到第一通信线路无丢包,则获取调度服务程序动态规划的最优通信线路,其中,最优通信线路为第一通信线路;使用第一通信线路传输数据包,以使对端节点能够对接收的数据包还原出数据。
可选的,为了在传输过程中及时将通信线路调整到经调度服务程序动态规划的目标候选通信线路中的最优通信线路,第四重传模块308用于若检测到第一通信线路的丢包符合第三预设丢包条件,则获取调度服务程序动态规划的多条目标候选通信线路,其中,第三预设丢包条件包括:丢包率大于所述第二预设丢包阈值,或者往返时延大于第一预设延迟阈值;确定多条目标候选通信线路中的最优通信线路;根据屏蔽规则屏蔽使用第一通信线路,在最优通信线路上使用数据副本方式对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。
可选的,为了在传输过程中及时将通信线路调整到经调度服务程序动态规划的目标候选通信线路中的最优通信线路,第四重传模块308,还可以用于:若屏蔽使用第一通信线路后无可用的候选通信线路,则自行探测直连的可用候选通信线路,使用候选通信线路中传输质量最优的通信线路传输数据包,并调高数据冗余度。
可选的,为了在传输过程中及时将通信线路调整到经调度服务程序动态规划的目标候选通信线路中的最优通信线路,第四重传模块308,还可以用于:若屏蔽使用第一通信线路后无可用的候选通信线路,且自行探测不到可用的候选通信线路,则继续使用第一通信线路传输数据包。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本申请实施例提供的数据传输装置300,通过拆分模块301将数据拆分成多个数据包,然后,第一确定模块302将根据多个数据包在多条候选通信线路中的传输成本,从多条候选通信线路中确定至少一条第一通信线路;第一传输模块303利用一条或多条第一通信线路传输多个数据包,优先选择一条传输成本最低的第一通信线路传输多个数据包,这样可以将传输成本降到最低。
第二确定模块304检测到第一通信线路的丢包符合第一预设丢包条件,则根据多条候选通信线路的传输质量确定至少一条第二通信线路;第一重传模块305利用第二通信线路对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。
其优先按照传输成本选择第一通信线路传输数据包,当丢包符合第一预设丢包条件时,才会按照传输质量选择第二通信线路对丢包的数据进行重传,且对传输成本和传输质量分配的权重是可以随着网络传输环境的不同进行相应调整的,可以保证每次选择出的信道的传输成本最低,并且在采用选定的信道进行传输后,会根据信道的在后续传输过程中的实际传输情况做出相应的调整,以准确地进行传输路径的动态规划,以便于适用不同的网络传输环境,确保对端节点能够根据接收的数据包完整还原出对应数据。本申请实施例通过融合多种信道,可以降低单一线路抖动对数据传输效果的影响,避免单一线路中断导致数据传输中断。
在传输时优先采用传输成本优先方式,在传输过程中根据丢包情况按照传输质量优先方式选择通信线路,传输成本优先方式为按传输成本从低到高、传输质量从优到差的顺序使用通信线路,传输质量优先方式为按传输质量从优到差、传输成本从低到高的顺序使用通信线路,传输成本优先方式优先于传输质量优先方式。本申请实施例能解决各机器互联问题,为上层应用提供端到端数据投递服务,在控制传输成本的前提下,同时兼顾传输质量。
相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为终端,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,PersonalComputer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备。如图20所示,图20为本申请实施例提供的计算机设备的结构示意图。该计算机设备400包括有一个或者一个以上处理核心的处理器401、有一个或一个以上计算机可读存储介质的存储器402及存储在存储器402上并可在处理器上运行的计算机程序。其中,处理器401与存储器402电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器401是计算机设备400的控制中心,利用各种接口和线路连接整个计算机设备400的各个部分,通过运行或加载存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备400的各种功能和处理数据,从而对计算机设备400进行整体监控。
在本申请实施例中,计算机设备400中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能:
将数据拆分成多个数据包;根据多个数据包在多条候选通信线路中的传输成本,从多条候选通信线路中确定至少一条第一通信线路;利用第一通信线路传输多个数据包;若检测到第一通信线路的丢包符合第一预设丢包条件,则根据多条候选通信线路的传输质量确定至少一条第二通信线路;利用第二通信线路对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图19所示,计算机设备400还包括:触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407。其中,处理器401分别与触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407电性连接。本领域技术人员可以理解,图19中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏403可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏403可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器401,并能接收处理器401发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器401以确定触摸事件的类型,随后处理器401根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏403而实现输入和输出功能。但是在某些实施例中,触控面板与显示面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏403也可以作为输入单元406的一部分实现输入功能。
在本申请实施例中,通过处理器401执行直播应用程序在触控显示屏403上生成图形用户界面,图形用户界面上显示直播画面。该触控显示屏403用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令。
射频电路404可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通信,与网络设备或其他计算机设备之间收发信号。
音频电路405可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路405可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路405接收后转换为音频数据,再将音频数据输出处理器401处理后,经射频电路404以发送给比如另一计算机设备,或者将音频数据输出至存储器402以便进一步处理。音频电路405还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源407用于给计算机设备400的各个部件供电。可选的,电源407可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源407还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图20中未示出,计算机设备400还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的计算机设备,通过将数据拆分成多个数据包;根据多个数据包在多条候选通信线路中的传输成本,从多条候选通信线路中确定至少一条第一通信线路;利用一条或多条第一通信线路传输多个数据包;优先选择一条传输成本最低的第一通信线路传输多个数据包,这样可以将传输成本降到最低。若检测到第一通信线路的丢包符合第一预设丢包条件,则根据多条候选通信线路的传输质量确定至少一条第二通信线路;利用第二通信线路对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。其优先按照传输成本选择第一通信线路传输数据包,当丢包符合第一预设丢包条件时,才会按照传输质量选择第二通信线路对丢包的数据进行重传,且对传输成本和传输质量分配的权重是可以随着网络传输环境的不同进行相应调整的,可以保证每次选择出的信道的传输成本最低,并且在采用选定的信道进行传输后,会根据信道的在后续传输过程中的实际传输情况做出相应的调整,以准确地进行传输路径的动态规划,以便于适用不同的网络传输环境,确保对端节点能够根据接收的数据包完整还原出对应数据。本申请实施例通过融合多种信道,可以降低单一线路抖动对数据传输效果的影响,避免单一线路中断导致数据传输中断。
在传输时优先采用传输成本优先方式,在传输过程中根据丢包情况按照传输质量优先方式选择通信线路,传输成本优先方式为按传输成本从低到高、传输质量从优到差的顺序使用通信线路,传输质量优先方式为按传输质量从优到差、传输成本从低到高的顺序使用通信线路,传输成本优先方式优先于传输质量优先方式。本申请实施例能解决各机器互联问题,为上层应用提供端到端数据投递服务,在控制传输成本的前提下,同时兼顾传输质量。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种数据传输方法中的步骤。例如,该计算机程序可以执行如下步骤:
将数据拆分成多个数据包;根据多个数据包在多条候选通信线路中的传输成本,从多条候选通信线路中确定至少一条第一通信线路;利用第一通信线路传输多个数据包;若检测到第一通信线路的丢包符合第一预设丢包条件,则根据多条候选通信线路的传输质量确定至少一条第二通信线路;利用第二通信线路对第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的数据包还原出数据。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种数据传输方法中的步骤,因此,可以实现本申请实施例所提供的任一种数据传输方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种数据传输方法、装置、存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (18)
1.一种数据传输方法,其特征在于,包括:
将数据拆分成多个数据包;
根据所述多个数据包在多条候选通信线路中的传输成本,从所述多条候选通信线路中确定至少一条第一通信线路;
利用所述第一通信线路传输所述多个数据包;
若检测到所述第一通信线路的丢包符合第一预设丢包条件,则根据所述多条候选通信线路的传输质量确定至少一条第二通信线路;
利用所述第二通信线路对所述第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的所述数据包还原出所述数据。
2.如权利要求1所述的数据传输方法,其特征在于,在所述利用所述第一通信线路传输所述多个数据包之后,所述方法还包括:
若检测到所述第一通信线路的丢包符合第二预设丢包条件,则启用数据冗余算法进行数据纠错,其中,所述第一通信线路为所述多条候选通信线路中传输成本最低的通信线路;
利用所述第一通信线路对所述第一通信线路丢包的数据包进行重传,以使所述对端节点能够对接收的所述数据包还原出所述数据。
3.如权利要求1所述的数据传输方法,其特征在于,所述将数据拆分成多个数据包,包括:
获取所述多条候选通信线路和传输成本;
根据所述多条候选通信线路和传输成本,计算所述数据拆分的数据包的数量与数据大小;
根据所述数据包的数量与数据大小,将所述数据拆分成多个数据包。
4.如权利要求2所述的数据传输方法,其特征在于,所述利用所述第一通信线路传输所述多个数据包,包括:
利用所述第一通信线路传输所述多个数据包,并将传输过程中的传输信息实时上报给调度服务程序,其中,所述传输信息至少包括节点互联的传输质量和传输成本。
5.如权利要求4所述的数据传输方法,其特征在于,所述节点互联的传输质量至少包括丢包率和往返时延,所述若检测到所述第一通信线路的丢包符合第一预设丢包条件,则根据所述多条候选通信线路的传输质量确定至少一条第二通信线路,包括:
若检测到所述第一通信线路的丢包符合第一预设丢包条件,则获取所述调度服务程序动态规划的多条目标候选通信线路,其中,所述第一预设丢包条件包括:丢包率大于第一预设丢包阈值,且小于第二预设丢包阈值,且往返时延小于或等于第一预设延迟阈值,所述第二预设丢包阈值大于所述第一预设丢包阈值;
确定所述多条目标候选通信线路中的最优通信线路,其中,所述最优通信线路为所述多条目标候选通信线路中传输质量最优的第二通信线路;
所述利用所述第二通信线路对所述第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的所述数据包还原出所述数据,包括:
在所述最优通信线路上使用数据副本方式对所述第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的所述数据包还原出所述数据。
6.如权利要求4所述的数据传输方法,其特征在于,所述节点互联的传输质量至少包括丢包率和往返时延,所述若检测到所述第一通信线路的丢包符合第二预设丢包条件,则启用数据冗余算法进行数据纠错,包括:
若检测到所述第一通信线路的丢包符合第二预设丢包条件,则获取所述调度服务程序动态规划的多条目标候选通信线路,其中,所述第二预设丢包条件包括:丢包率小于或等于预设第一丢包阈值,且往返时延小于或等于第二预设延迟阈值,所述第二预设延迟阈值小于所述第一预设延迟阈值;
确定所述多条目标候选通信线路中的最优通信线路,并启用数据冗余算法进行数据纠错,其中,所述最优通信线路为所述多条候选通信线路中传输成本最低的第一通信线路;
所述利用所述第一通信线路对所述第一通信线路丢包的数据包进行重传,以使所述对端节点能够对接收的所述数据包还原出所述数据,包括:
利用所述最优通信线路对所述第一通信线路丢包的数据包进行重传,以使所述对端节点能够对接收的所述数据包还原出所述数据。
7.如权利要求4所述的数据传输方法,其特征在于,在所述利用所述第一通信线路传输所述多个数据包,并将传输过程中的传输信息实时上报给调度服务程序之后,所述方法还包括:
若检测到所述第一通信线路无丢包,则获取所述调度服务程序动态规划的最优通信线路,其中,所述最优通信线路为所述第一通信线路;
使用所述第一通信线路传输数据包,以使所述对端节点能够对接收的所述数据包还原出所述数据。
8.如权利要求4所述的数据传输方法,其特征在于,所述节点互联的传输质量至少包括丢包率和往返时延,在所述利用所述第一通信线路传输所述多个数据包,并将传输过程中的传输信息实时上报给调度服务程序之后,所述方法还包括:
若检测到所述第一通信线路的丢包符合第三预设丢包条件,则获取所述调度服务程序动态规划的多条目标候选通信线路,其中,所述第三预设丢包条件包括:丢包率大于所述第二预设丢包阈值,或者往返时延大于所述第一预设延迟阈值;
确定所述多条目标候选通信线路中的最优通信线路;
根据屏蔽规则屏蔽使用所述第一通信线路,在所述最优通信线路上使用数据副本方式对所述第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的所述数据包还原出所述数据。
9.如权利要求8所述的数据传输方法,其特征在于,若屏蔽使用所述第一通信线路后无可用的候选通信线路,则自行探测直连的候选通信线路,使用所述候选通信线路中传输质量最优的通信线路传输数据包,并调高数据冗余度。
10.如权利要求8所述的数据传输方法,其特征在于,若屏蔽使用所述第一通信线路后无可用的候选通信线路,且自行探测不到可用的候选通信线路,则继续使用所述第一通信线路传输数据包。
11.如权利要求10所述的数据传输方法,其特征在于,所述传输信息还包括所在节点信息,所述所在节点信息至少包括如下其中之一:
IP地址、对应的网络类型、质量因子和成本因子。
12.如权利要求11所述的数据传输方法,其特征在于,所述对应的网络类型至少包括如下其中之一:
普通线路、专线和点对点隧道。
13.如权利要求1所述的数据传输方法,其特征在于,若所在节点和对端节点均部署通信代理程序,所述将数据拆多分成个数据包,包括:
所在节点的通信代理程序接收应用程序发送的数据;
所述所在节点的通信代理程序将所述数据拆分成多个有序的字节流,并将所述字节流封装成无序的数据包。
14.如权利要求13所述的数据传输方法,其特征在于,所述利用所述第一通信线路传输所述多个数据包,包括:
所述所在节点的通信代理程序将所述多个数据包在所述第一通信线路上进行传输;
所述若检测到所述第一通信线路的丢包符合第一预设丢包条件,则根据所述多条候选通信线路的传输质量确定至少一条第二通信线路,包括:
所述所在节点的通信代理程序确认对端节点的通信代理程序的反馈信息,若检测到所述第一通信线路的丢包符合第一预设丢包条件,则根据所述多条候选通信线路的传输质量确定至少一条第二通信线路;
所述利用所述第二通信线路对所述第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的所述数据包还原出所述数据,包括:
利用所述第二通信线路对所述第一通信线路丢包的数据包进行重传,以使所述对端节点的通信代理程序对接收的所述数据包能够按照编号重组成有序的字节流,恢复成所述数据后,能够投递给所述对端节点的应用程序。
15.如权利要求1至14任一项所述的数据传输方法,其特征在于,对节点的网络配置至少包括如下其中之一:
单运营商单线接入、多运营商多线接入、BGP线路和两个机房间专线。
16.一种数据传输装置,其特征在于,包括:
拆分模块,用于将数据拆分成多个数据包;
第一确定模块,用于根据所述多个数据包在多条候选通信线路中的传输成本,从所述多条候选通信线路中确定至少一条第一通信线路;
传输模块,用于利用所述第一通信线路传输所述多个数据包;
第二确定模块,用于若检测到所述第一通信线路的丢包符合第一预设丢包条件,则根据所述多条候选通信线路的传输质量确定至少一条第二通信线路;
重传模块,用于利用所述第二通信线路对所述第一通信线路丢包的数据包进行重传,以使对端节点能够对接收的所述数据包还原出所述数据。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如权利要求1-15任一项所述的数据传输方法中的步骤。
18.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如权利要求1-15任一项所述的数据传输方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011241838.1A CN112422241B (zh) | 2020-11-09 | 2020-11-09 | 数据传输方法、装置、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011241838.1A CN112422241B (zh) | 2020-11-09 | 2020-11-09 | 数据传输方法、装置、存储介质及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112422241A true CN112422241A (zh) | 2021-02-26 |
CN112422241B CN112422241B (zh) | 2021-11-30 |
Family
ID=74780943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011241838.1A Active CN112422241B (zh) | 2020-11-09 | 2020-11-09 | 数据传输方法、装置、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112422241B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112954406A (zh) * | 2021-05-17 | 2021-06-11 | 腾讯科技(深圳)有限公司 | 数据下载方法、装置、计算机设备和存储介质 |
CN113746755A (zh) * | 2021-07-30 | 2021-12-03 | 咪咕文化科技有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
CN113810502A (zh) * | 2021-09-27 | 2021-12-17 | 远峰科技股份有限公司 | 一种通信数据传输方法、系统、计算机设备及存储介质 |
CN113891175A (zh) * | 2021-09-29 | 2022-01-04 | 上海哔哩哔哩科技有限公司 | 直播推流方法、装置及系统 |
CN114025389A (zh) * | 2021-11-01 | 2022-02-08 | 网易(杭州)网络有限公司 | 数据传输方法、装置、计算机设备及存储介质 |
CN114629824A (zh) * | 2022-03-24 | 2022-06-14 | 阿里巴巴(中国)有限公司 | 丢包定位方法、装置、计算设备及介质 |
CN116633870A (zh) * | 2023-05-25 | 2023-08-22 | 圣麦克思智能科技(江苏)有限公司 | 一种基于云加端模式的运维数据处理系统及方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150222939A1 (en) * | 2010-10-28 | 2015-08-06 | Avvasi Inc. | System for monitoring a video network and methods for use therewith |
CN105743614A (zh) * | 2016-04-01 | 2016-07-06 | 网宿科技股份有限公司 | 数据的传输方法和装置 |
CN107332753A (zh) * | 2017-07-24 | 2017-11-07 | 佛山易识科技有限公司 | 一种网络数据包乱序传输方法 |
CN108347310A (zh) * | 2017-01-25 | 2018-07-31 | 中国移动通信有限公司研究院 | 一种分组数据的实时重传方法、实时重传系统及相关装置 |
CN110708377A (zh) * | 2019-09-30 | 2020-01-17 | 联想(北京)有限公司 | 一种数据传输方法、装置和存储介质 |
CN111294664A (zh) * | 2019-05-28 | 2020-06-16 | 杭州萤石软件有限公司 | 音视频传输数据方法、电子设备及存储介质 |
CN111405531A (zh) * | 2020-03-26 | 2020-07-10 | 上海有个机器人有限公司 | 一种提高通信质量的方法、介质、终端和装置 |
CN111586098A (zh) * | 2020-04-01 | 2020-08-25 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、设备及计算机可读存储介质 |
CN111800218A (zh) * | 2019-04-08 | 2020-10-20 | 华为技术有限公司 | 一种数据流的传输方法和设备 |
-
2020
- 2020-11-09 CN CN202011241838.1A patent/CN112422241B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150222939A1 (en) * | 2010-10-28 | 2015-08-06 | Avvasi Inc. | System for monitoring a video network and methods for use therewith |
CN105743614A (zh) * | 2016-04-01 | 2016-07-06 | 网宿科技股份有限公司 | 数据的传输方法和装置 |
CN108347310A (zh) * | 2017-01-25 | 2018-07-31 | 中国移动通信有限公司研究院 | 一种分组数据的实时重传方法、实时重传系统及相关装置 |
CN107332753A (zh) * | 2017-07-24 | 2017-11-07 | 佛山易识科技有限公司 | 一种网络数据包乱序传输方法 |
CN111800218A (zh) * | 2019-04-08 | 2020-10-20 | 华为技术有限公司 | 一种数据流的传输方法和设备 |
CN111294664A (zh) * | 2019-05-28 | 2020-06-16 | 杭州萤石软件有限公司 | 音视频传输数据方法、电子设备及存储介质 |
CN110708377A (zh) * | 2019-09-30 | 2020-01-17 | 联想(北京)有限公司 | 一种数据传输方法、装置和存储介质 |
CN111405531A (zh) * | 2020-03-26 | 2020-07-10 | 上海有个机器人有限公司 | 一种提高通信质量的方法、介质、终端和装置 |
CN111586098A (zh) * | 2020-04-01 | 2020-08-25 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、设备及计算机可读存储介质 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112954406B (zh) * | 2021-05-17 | 2021-07-30 | 腾讯科技(深圳)有限公司 | 数据下载方法、装置、计算机设备和存储介质 |
CN112954406A (zh) * | 2021-05-17 | 2021-06-11 | 腾讯科技(深圳)有限公司 | 数据下载方法、装置、计算机设备和存储介质 |
CN113746755B (zh) * | 2021-07-30 | 2023-10-20 | 咪咕文化科技有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
CN113746755A (zh) * | 2021-07-30 | 2021-12-03 | 咪咕文化科技有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
CN113810502A (zh) * | 2021-09-27 | 2021-12-17 | 远峰科技股份有限公司 | 一种通信数据传输方法、系统、计算机设备及存储介质 |
CN113891175B (zh) * | 2021-09-29 | 2023-09-12 | 上海哔哩哔哩科技有限公司 | 直播推流方法、装置及系统 |
CN113891175A (zh) * | 2021-09-29 | 2022-01-04 | 上海哔哩哔哩科技有限公司 | 直播推流方法、装置及系统 |
CN114025389A (zh) * | 2021-11-01 | 2022-02-08 | 网易(杭州)网络有限公司 | 数据传输方法、装置、计算机设备及存储介质 |
CN114025389B (zh) * | 2021-11-01 | 2024-04-30 | 网易(杭州)网络有限公司 | 数据传输方法、装置、计算机设备及存储介质 |
CN114629824A (zh) * | 2022-03-24 | 2022-06-14 | 阿里巴巴(中国)有限公司 | 丢包定位方法、装置、计算设备及介质 |
CN114629824B (zh) * | 2022-03-24 | 2024-03-19 | 阿里巴巴(中国)有限公司 | 丢包定位方法、装置、计算设备及介质 |
CN116633870A (zh) * | 2023-05-25 | 2023-08-22 | 圣麦克思智能科技(江苏)有限公司 | 一种基于云加端模式的运维数据处理系统及方法 |
CN116633870B (zh) * | 2023-05-25 | 2023-11-14 | 圣麦克思智能科技(江苏)有限公司 | 一种基于云加端模式的运维数据处理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112422241B (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112422241B (zh) | 数据传输方法、装置、存储介质及计算机设备 | |
US10659354B2 (en) | Processing data packets using a policy based network path | |
WO2022247550A1 (zh) | 数据重传处理方法、装置、计算机设备和存储介质 | |
US10263918B2 (en) | Local fault tolerance for managing alternative networks for high quality of service communications | |
US20230071243A1 (en) | Conserving network resources during transmission of packets of interactive services | |
CN101924771B (zh) | 一种用于加速应用代理的核心级tcp连接粘合方法 | |
EP2629466B1 (en) | Method, device and system for forwarding data in communication system | |
EP3251304A1 (en) | Method and apparatus for connecting a gateway router to a set of scalable virtual ip network appliances in overlay networks | |
US20170366595A1 (en) | Software defined content delivery network for flexible, real-time management of large-scale data transfers | |
WO2023284447A1 (zh) | 云边协同的数据传输方法、服务器及存储介质 | |
WO2012083737A1 (zh) | 丢包检测方法、系统和媒体客户端 | |
JP2014531786A (ja) | 協働環境におけるフロー制御のためのおよび信頼性のある通信のための方法 | |
CN104539531A (zh) | 数据传输方法及装置 | |
CN106716376A (zh) | 从本地库提供针对网络连接的功能要求 | |
EP4017089A2 (en) | Network policy application based on session state | |
US7974220B2 (en) | System and method for overlaying a hierarchical network design on a full mesh network | |
CN112953850B (zh) | 数据传输方法、装置、计算机可读介质及电子设备 | |
JP2008252393A (ja) | 通信端末装置、配信装置、エラー通知方法およびエラー通知プログラム | |
CN102752188A (zh) | 一种传输控制协议连接迁移方法及系统 | |
CN109347674B (zh) | 一种数据传输的方法、装置及电子设备 | |
US10079866B2 (en) | Potential echo detection and warning for online meeting | |
US9143580B2 (en) | Brokering and provisioning in high-speed networks | |
CN114025389A (zh) | 数据传输方法、装置、计算机设备及存储介质 | |
WO2023065848A1 (zh) | 业务调度方法、装置、设备及计算机可读存储介质 | |
CN114039702B (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 |