CN116980531A - 数据传输方法、装置、电子设备及存储介质 - Google Patents
数据传输方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116980531A CN116980531A CN202211380452.8A CN202211380452A CN116980531A CN 116980531 A CN116980531 A CN 116980531A CN 202211380452 A CN202211380452 A CN 202211380452A CN 116980531 A CN116980531 A CN 116980531A
- Authority
- CN
- China
- Prior art keywords
- link
- data
- electronic device
- state
- transmission
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 295
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000003860 storage Methods 0.000 title claims abstract description 17
- 238000003062 neural network model Methods 0.000 claims abstract description 48
- 238000012545 processing Methods 0.000 claims description 54
- 230000015654 memory Effects 0.000 claims description 31
- 238000004891 communication Methods 0.000 claims description 12
- 238000001514 detection method Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000009499 grossing Methods 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 2
- 239000000758 substrate Substances 0.000 claims 1
- 238000013528 artificial neural network Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 10
- 230000000306 recurrent effect Effects 0.000 description 8
- 125000004122 cyclic group Chemical group 0.000 description 7
- 230000003993 interaction Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M7/00—Arrangements for interconnection between switching centres
- H04M7/006—Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/147—Network analysis or design for predicting network behaviour
-
- 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/22—Alternate routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种数据传输方法、装置、电子设备及存储介质;方法包括:通过第一链路向第二电子设备发送数据;获取所述第一链路的预测状态,其中,所述预测状态是由神经网络模型基于所述第一链路的第一传输时延特征预测得到的,所述预测状态的类型包括丢包状态和未丢包状态;获取至少一个候选链路的传输质量参数;响应于所述预测状态为所述丢包状态,根据所述至少一个候选链路的传输质量参数,选取至少一个所述候选链路以作为至少一个第二链路;通过所述至少一个第二链路向所述第二电子设备重新传输至少部分所述数据。通过本申请,能够在控制运营成本的同时,有效降低数据传输过程中出现的丢包问题。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据传输方法、装置、电子设备及存储介质。
背景技术
以基于IP的语音传输(VoIP,Voice over Internet Protocol)的通话应用为例,第一用户和第二用户可以通过VoIP进行音视频通话,这个过程中数据包通过传输网络进行传送,传输网络可以是无线的(例如WiFi、3G、4G、5G等)也可以是有线网络。也就是说,在通话过程中可用于数据传输的网络链路可能不止一条,链路决策的正确性决定了通话质量和用户的通话体验。
相关技术中,通常采用多链路全开的方案,即无差别地将所有数据通过多条链路同步进行传输,然而,这种方法虽然能够最大限度地保障用户的通话体验,但资源利用率极低,此外,大量数据包同时通过多条链路发送到接收端,导致接收端会接收到大部分重复的数据包,造成接收端的处理开销增加,进而导致出现发热、耗电问题凸显,同时多链路同时使用也会大幅增加运营成本。
此外,相关技术还提供了动态切换链路的方案,该方案是基于一些链路质量统计数据作为链路切换的依据,每次只用一条链路进行数据传输。然而,该方案用于判决依据的质量统计数据,例如丢包率,属于滞后数据,是在发生数据丢失后统计的,丢包已经导致通话卡顿、无声等问题,即已经影响到用户的通话体验。
发明内容
本申请实施例提供一种数据传输方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够在控制运营成本的同时,有效降低数据传输过程中出现的丢包问题。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种数据传输方法,应用于第一电子设备,包括:
通过第一链路向第二电子设备发送数据;
获取所述第一链路的预测状态,其中,所述预测状态是由神经网络模型基于所述第一链路的第一传输时延特征预测得到的,所述预测状态的类型包括丢包状态和未丢包状态;
获取至少一个候选链路的传输质量参数;
响应于所述预测状态为所述丢包状态,根据所述至少一个候选链路的传输质量参数,选取至少一个所述候选链路以作为至少一个第二链路;
通过所述至少一个第二链路向所述第二电子设备重新传输至少部分所述数据。
本申请实施例提供一种数据传输装置,应用于第一电子设备,包括:
发送模块,用于通过第一链路向第二电子设备发送数据;
获取模块,用于获取所述第一链路的预测状态,其中,所述预测状态是由神经网络模型基于所述第一链路的第一传输时延特征预测得到的,所述预测状态的类型包括丢包状态和未丢包状态;
所述获取模块,还用于获取至少一个候选链路的传输质量参数;
选取模块,用于响应于所述预测状态为所述丢包状态,根据所述至少一个候选链路的传输质量参数,选取至少一个所述候选链路以作为至少一个第二链路;
所述发送模块,还用于通过所述至少一个第二链路向所述第二电子设备重新传输至少部分所述数据。
本申请实施例提供一种数据传输方法,应用于第二电子设备,包括:
接收由第一电子设备通过第一链路发送的数据;
对所述第一链路进行多次检测,得到所述第一链路的第一传输时延特征,所述第一传输时延特征用于在神经网络模型中确定所述第一链路的预测状态,所述预测状态的类型包括丢包状态和未丢包状态;
向所述第一电子设备发送至少一个候选链路的传输质量参数,以使所述第一电子设备响应于所述预测状态为所述丢包状态,根据所述至少一个候选链路的传输质量参数,选取至少一个所述候选链路以作为至少一个第二链路;通过所述至少一个第二链路向所述第二电子设备重新传输至少部分所述数据。
本申请实施例提供一种数据传输装置,应用于第二电子设备,包括:
接收模块,用于接收由第一电子设备通过第一链路发送的数据;
检测模块,用于对所述第一链路进行多次检测,得到所述第一链路的第一传输时延特征,所述第一传输时延特征用于在神经网络模型中确定所述第一链路的预测状态,所述预测状态的类型包括丢包状态和未丢包状态;
发送模块,用于向所述第一电子设备发送至少一个候选链路的传输质量参数,以使所述第一电子设备响应于所述预测状态为所述丢包状态,根据所述至少一个候选链路的传输质量参数,选取至少一个所述候选链路以作为至少一个第二链路;通过所述至少一个第二链路向所述第二电子设备重新传输至少部分所述数据。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的数据传输方法。
本申请实施例提供一种计算机可读存储介质,存储有计算机可执行指令,用于被处理器执行时,实现本申请实施例提供的数据传输方法。
本申请实施例提供一种计算机程序产品,包括计算机程序或计算机可执行指令,用于被处理器执行时,实现本申请实施例提供的数据传输方法。
本申请实施例具有以下有益效果:
通过神经网络模型对第一链路进行预测,当确定出第一链路的预测状态为丢包状态时,通过至少一个第二链路对至少部分数据进行重新传输,如此,由于是在丢包还没有真实发生前预测出存在丢包的可能,并通过至少一个第二链路进行重新传输,即第一链路和第二链路并不是始终同时进行数据传输的,能够在控制运营成本的同时,有效降低了数据传输过程中可能出现的丢包问题。
附图说明
图1A是本申请实施例提供的数据传输系统100-1的架构示意图;
图1B是本申请实施例提供的数据传输系统100-2的架构示意图;
图2A是本申请实施例提供的第一电子设备800的结构示意图;
图2B是本申请实施例提供的第二电子设备900的结构示意图;
图3是本申请实施例提供的数据传输方法的流程示意图;
图4是本申请实施例提供的数据传输方法的流程示意图;
图5是本申请实施例提供的神经网络模型的结构示意图;
图6是本申请实施例提供的数据传输方法的流程示意图;
图7是本申请实施例提供的数据传输方法的流程示意图;
图8是本申请实施例提供的多链路通话模型示意图;
图9是本申请实施例提供的数据传输方法的原理示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
可以理解的是,在本申请实施例中,涉及到用户信息等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
在以下的描述中,所涉及的术语“第一\第二\...”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\...”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)响应于:用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
2)链路:指两个电子设备之间的数据传输通道,用于将数据从一个电子设备传输至另一个电子设备,链路包括有线链路和无线链路,其中,有线链路的传输介质包括电缆、光纤等,无线链路的传输介质是电磁波,包括WiFi、3G、4G、5G等。
3)丢包(Packet loss):指一个或多个数据包中的数据无法通过网络到达目的地。
4)基于IP的语音传输(VoIP,Voice over Internet Protocol):是一种基于IP网络的语音通话方式,通过语音的压缩算法将语音数据进行编码压缩处理后,按照网络传输协议标准进行打包,经过IP网络把数据包发送到目的IP地址,再把语音数据包解析并解压缩处理后,恢复出原来的语音信号,从而达到通过互联网传送语音信号的目的。
本申请实施例提供一种数据传输方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够在控制运营成本的同时,有效降低数据传输过程中出现的丢包问题。下面对本申请实施例提供的电子设备进行说明。本申请实施例提供的电子设备(包括第一电子设备和第二电子设备)可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端等各种类型的终端设备,也可以是服务器。
下面首先以第一电子设备和第二电子设备均为终端设备为例进行说明。
示例的,参见图1A,图1A是本申请实施例提供的数据传输系统100-1的架构示意图,为实现支撑有效降低数据传输过程中出现的丢包问题的应用,如图1A所示,数据传输系统100-1包括:第一终端设备200(即第一电子设备)和第二终端设备300(即第二电子设备),其中,第一终端设备200是第一用户(例如发送方)关联的终端设备(例如第一用户的手机),第二终端设备300是第二用户(例如接收方)关联的终端设备(例如第二用户的平板电脑),在第一终端设备200上运行有客户端210,在第二终端设备300上运行有客户端310,其中,客户端210和客户端310可以是相同类型的客户端,例如客户端210和客户端310都是即时通信客户端;当然,客户端210和客户端310也可以是不同类型的客户端,例如客户端210是即时通信客户端,客户端310是浏览器。
在一些实施例中,以视频通话场景为例,第一终端设备200(例如第一用户的手机)可以通过第一链路400(例如WiFi)向第二终端设备300(例如第二用户的平板电脑)发送针对第一用户采集得到的多媒体数据;接着,第一终端设备200还可以通过调用神经网络模型对第一链路400进行预测,当第一终端设备200确定出第一链路400的预测状态为丢包状态时,可以通过第二链路500(例如光纤)向第二终端设备300重新传输至少部分多媒体数据,如此,可以有效降低数据传输过程中可能出现的丢包问题,提升了用户的视频通话体验。
需要说明的是,第二终端设备300在向第一终端设备200发送数据时,也可以采用本申请实施例提供的数据传输方法进行链路的切换,本申请实施例在此不再赘述。
下面继续以第一电子设备为服务器,第二电子设备为终端设备为例进行说明。
示例的,参见图1B,图1B是本申请实施例提供的数据传输系统100-2的架构示意图,为实现支撑有效降低数据传输过程中出现的丢包问题的应用,如图1B所示,数据传输系统100-2包括:服务器600(即第一电子设备)和终端设备700(即第二电子设备),在终端设备700上运行有客户端710,客户端710可以是各种类型的客户端,例如视频播放客户端、网络会议客户端等。
在一些实施例中,以视频观看场景为例,服务器600(例如视频后台服务器)可以通过第一链路400向终端设备700发送多媒体数据;接着,服务器600还可以通过调用神经网络模型对第一链路400进行预测,当服务器600确定出第一链路400的预测状态为丢包状态时,可以通过第二链路500向终端设备700重新传输至少部分多媒体数据,如此,能够有效避免丢包问题的发生,提升了用户的视频观看体验。
需要说明的是,终端设备700在向服务器600发送数据时,也可以采用本申请实施例提供的数据传输方法进行链路的切换,本申请实施例在此不再赘述。此外,还需要说明的是,第一电子设备和第二电子设备也可以均是服务器,即也可以采用本申请实施例提供的数据传输方法实现两个服务器之间的链路切换,其具体实现过程图1A或图1B所示,本申请实施例在此不再赘述。
在另一些实施例中,本申请实施例还可以借助于云技术(Cloud Technology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源。
示例的,图1B中的服务器600可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,ContentDelivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。
下面继续对本申请实施例提供的第一电子设备的结构进行说明。以第一电子设备为终端设备为例(需要说明的是,当第一电子设备为服务器时,图2A中示出的用户接口830、呈现模块853、输入处理模块854是可以缺省的),参见图2A,图2A是本申请实施例提供的第一电子设备800的结构示意图,图2A所示的第一电子设备800包括:至少一个处理器810、存储器850、至少一个网络接口820和用户接口830。第一电子设备800中的各个组件通过总线系统840耦合在一起。可理解,总线系统840用于实现这些组件之间的连接通信。总线系统840除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2A中将各种总线都标为总线系统840。
处理器810可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口830包括使得能够呈现媒体内容的一个或多个输出装置831,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口830还包括一个或多个输入装置832,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器850可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器850可选地包括在物理位置上远离处理器810的一个或多个存储设备。
存储器850包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器850旨在包括任意适合类型的存储器。
在一些实施例中,存储器850能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统851,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块852,用于经由一个或多个(有线或无线)网络接口820到达其他计算设备,示例性的网络接口820包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块853,用于经由一个或多个与用户接口830相关联的输出装置831(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块854,用于对一个或多个来自一个或多个输入装置832之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2A示出了存储在存储器850中的数据传输装置855,其可以是程序和插件等形式的软件,包括以下软件模块:发送模块8551、获取模块8552、选取模块8553、接收模块8554、计算模块8555、确定模块8556和调整模块8557,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。需要指出的是,在图2A中为了方便表达,一次性示出了上述所有模块,但是不应视为在数据传输装置855排除了可以只包括发送模块8551、获取模块8552和选取模块8553的实施,将在下文中说明各个模块的功能。
下面继续对本申请实施例提供的第二电子设备的结构进行说明。以第二电子设备为终端设备为例(需要说明的是,当第二电子设备为服务器时,图2B中示出的用户接口930、呈现模块953和输入处理模块954是可以缺省的),参见图2B,图2B是本申请实施例提供的第二电子设备900的结构示意图,如图2B所示,第二电子设备900包括:至少一个处理器910、网络接口920、用户接口930(包括输出装置931和输入装置932)、总线系统940和存储器950,其中,存储器950包括:操作系统951、网络通信模块952、呈现模块953、输入处理模块954和数据传输装置955。数据传输装置355,其可以是程序和插件等形式的软件,包括以下软件模块:接收模块9551、检测模块9552和发送模块9553,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
下面将从第一电子设备和第二电子设备交互的角度,对本申请实施例提供的数据传输方法进行具体说明。
参见图3,图3是本申请实施例提供的数据传输方法的流程示意图,将结合图3示出的步骤进行说明。
在步骤101中,第一电子设备通过第一链路向第二电子设备发送数据。
在一些实施例中,以视频通话场景为例,在视频通话场景中,两个用户在进行视频通话时,用户A关联的终端设备(即第一电子设备)可以通过内置或者外接的摄像头对用户A进行图像采集,并将采集得到的多媒体数据通过第一链路(例如WiFi)传输至用户B(即与用户A进行视频通话的用户)关联的终端设备(即第二电子设备)。
在另一些实施例中,以视频观看场景为例,在视频观看场景中,视频后台服务器(即第一电子设备)在接收到用户的终端设备(即第二电子设备)发送的视频下载请求(例如用户的终端设备在接收到用户针对播放按钮的点击操作时,向视频后台服务器发送针对用户所点击的视频的下载请求)之后,可以通过第一链路(例如5G)向用户的终端设备(例如用户的笔记本电脑)发送所请求的视频数据。
在步骤102中,第一电子设备获取第一链路的预测状态。
这里,预测状态可以是由神经网络模型基于第一链路的第一传输时延特征预测得到的,其中,第一传输时延特征包括第一链路在多个时刻一一对应的多个传输时延值,预测状态的类型可以包括丢包状态和未丢包状态。
需要说明的是,上述的多个时刻可以是间隔固定周期(例如3秒)的多个时刻;当然,也可以是间隔接收到固定长度数据的多个时刻,例如可以以接收到一帧或者多帧的多媒体数据进行间隔。
在一些实施例中,第一链路的预测状态可以是由第一电子设备调用神经网络模型进行计算得到的,则第一电子设备可以通过以下方式获取第一链路的预测状态:接收由第二电子设备发送的第一传输时延特征,其中,第一传输时延特征包括的多个传输时延值是由第二电子设备对第一链路进行多次检测得到的;基于第一传输时延特征调用神经网络模型进行链路状态计算处理,得到第一链路的预测状态。
在另一些实施例中,第一链路的预测状态也可以是由第二电子设备调用神经网络模型进行计算得到的,则图3示出的步骤102还可以通过图4示出的步骤1021至步骤1023实现,将结合图4示出的步骤进行说明。
在步骤1021中,第二电子设备对第一链路进行多次检测,得到第一链路的第一传输时延特征。
在一些实施例中,第二电子设备在接收到第一电子设备通过第一链路发送的数据之后,可以对第一链路进行多次检测,得到第一链路的多个传输时延值,并将检测得到的多个传输时延值,确定为第一链路的第一传输时延特征。
示例的,当第一电子设备与第二电子设备之间的数据传输用于多媒体通信时,每个传输时延值可以是相邻两帧多媒体数据的接收时间的差值。例如以视频通话场景为例,在视频通话场景中,两个用户在进行视频通话时,用户A关联的终端设备(即第一电子设备)可以将针对用户A进行图像采集得到的多媒体数据,通过第一链路(例如WiFi)发送至用户B(即与用户A进行视频通话的用户)关联的终端设备(即第二电子设备),此时,用户B关联的终端设备可以对第一链路进行多次检测,得到多个传输时延值,例如包括第一帧多媒体数据与第二帧多媒体数据的接收时间的差值、第二帧多媒体数据与第三帧多媒体数据的接收时间的差值、第三帧多媒体数据与第四帧多媒体数据的接收时间的差值等。
需要说明的是,针对更一般的情况,传输时延值也可以是先后接收的2个数据包的接收时间之间的差值。例如在游戏场景中,可以将玩家关联的终端设备(即第二电子设备)从游戏服务器(即第一电子设备)先后接收的2个游戏数据包的接收时间之间的差值作为传输时延值。例如玩家关联的笔记本电脑在接收到游戏服务器通过第一链路发送的游戏数据包之后,可以对第一链路进行多次检测,得到多个传输时延值,例如包括第一个游戏数据包与第二个游戏数据包的接收时间的差值、第二个游戏数据包与第三个游戏数据包的接收时间的差值、第三个游戏数据包与第四个游戏数据包的接收时间的差值等。
在步骤1022中,第二电子设备基于第一传输时延特征调用神经网络模型进行链路状态计算处理,得到第一链路的预测状态。
在一些实施例中,第一传输时延特征还可以包括第一链路在第一时刻的传输时延值的平滑值,其中,平滑值是第二时刻的传输时延值的平滑值与第一时刻的传输时延值基于各自对应的平滑系数的加权,第一时刻是任意时刻,第二时刻是第一时刻的上一时刻。也就是说,在本申请实施例中,第二电子设备在对第一链路进行多次检测,得到多个传输时延值之后,还可以进一步对每个传输时延值进行平滑处理,得到多个传输时延值分别对应的平滑值(即将多个传输时延值分别对应的平滑值作为第一链路的第一传输时延特征),随后,第二电子设备可以基于多个传输时延值分别对应的平滑值,调用神经网络模型进行链路状态计算处理,得到第一链路的预测状态,如此,通过对传输时延值进行平滑处理,并基于经过平滑处理后得到的平滑值进行处理,能够更加准确地确定出第一链路的预测状态。
下面对确定第一时刻的传输时延值的平滑值的过程进行具体说明。
在一些实施例中,当第一时刻为起始时刻时,可以将第一时刻的传输时延值直接作为第一时刻的传输时延值的平滑值;当第一时刻为非起始时刻时,可以将第二时刻的传输时延值的平滑值与第一平滑系数(假设记为a)进行相乘处理,得到第一相乘结果,其中,第二时刻为第一时刻相邻的上一时刻,将第一时刻的传输时延值与第二平滑系数(即1-a)进行相乘处理,得到第二相乘结果,其中,第一平滑系数和第二平滑系数的和为1,对第一相乘结果和第二相乘结果进行求和处理,并将求和结果确定为第一时刻的传输时延值的平滑值。
下面对第二电子设备调用神经网络模型计算第一链路的预测状态的过程进行具体说明。
在一些实施例中,参见图5,图5是本申请实施例提供的神经网络模型的结构示意图,如图5所示,本申请实施例提供的神经网络模型包括:长短时记忆网络(LSTM,LongShort Term Memory Network)、卷积层、循环神经网络(RNN,Recurrent Neural Network)和全连接层,则第二电子设备可以通过以下方式实现上述的基于第一传输时延特征调用神经网络模型进行链路状态计算处理,得到第一链路的预测状态:基于第一传输时延特征调用神经网络模型执行以下处理:基于第一传输时延特征调用长短时记忆网络进行第一递归处理,得到第一递归处理结果;基于第一递归处理结果调用卷积层进行卷积处理,得到卷积处理结果;基于卷积处理结果调用循环神经网络进行第二递归处理,得到第二递归处理结果;基于第二递归处理结果调用全连接层进行全连接处理,得到第一链路的预测状态。
下面分别对长短时记忆网络和循环神经网络进行具体说明。
示例的,长短时记忆网络是一种特殊的递归神经网络,所谓递归神经网络就是指网络能够解决时间序列问题的预测,递归神经网络就是指网络中具有循环结构。递归神经网络从某种程度来说和传统的神经网络并非完全不同,可以将递归神经网络想象成有多层相同网络结构的神经网络,每一层将信息传递给下一层。例如在本申请实施例中,假设第一传输时延特征包括3个传输时延值,分别为传输时延值1、传输时延值2和传输时延值3,则长短时记忆网络可以将针对传输时延值1的处理结果传递至传输时延值2,以及将针对传输时延值2的处理结果传递至传输时延值3,从而得到第一递归处理结果。
示例的,循环神经网络是一类以序列数据为输入,在序列的演进方向进行递归且所有节点(即循环单元)按链式连接的递归神经网络,循环神经网络具有记忆性、参数共享并且图灵完备,循环神经网络的核心部分是一个有向图,有向图展开中以链式相连的元素被称为循环单元。通常地,循环单元构成的链式连接可类比前馈神经网络中的隐含层。在循环神经网络中,每个节点不但可以接受其他节点的信息,还可以接受自身的信息,从而形成具有环路的网络结构。也就是说,节点的输出可以在下一个时间步直接作用到自身(即作为当前的输入)。
需要说明的是,本申请实施例中的神经网络模型可以是基于样本链路、以及针对样本链路的标记数据进行训练得到的,其中,标记数据包括样本链路的预测状态。此外,本申请实施例可以使用各种类型的损失函数来训练神经网络模型,例如交叉熵损失函数、合页损失函数等,本申请实施例对此不做具体限定。
在步骤1023中,第二电子设备通过第三链路向第一电子设备发送第一链路的预测状态。
在一些实施例中,第三链路可以是独立于第一链路和第二链路的。也就是说,第二电子设备在调用神经网络模型计算出第一链路的预测状态之后,可以通过独立于第一链路和第二链路的第三链路,向第一电子设备发送第一链路的预测状态。
需要说明的是,由于传输第一链路的预测状态是需要占用额外的通信资源的,因此,本申请实施例为了避免第一链路和第二链路的带宽不被占用(因为第一链路和第二链路当前已经用于传输数据),通过第三链路来传输第一链路的预测状态,如此,可以避免第一链路和第二链路需要额外传输预测状态而进一步导致出现丢包的可能性。
继续参见图3,在步骤103中,第一电子设备获取至少一个候选链路的传输质量参数。
在一些实施例中,第二电子设备在接收到第一电子设备通过第一链路发送的数据之后,可以向第一电子设备发送至少一个候选链路的传输质量参数,其中,候选链路的传输质量参数可以包括以下至少之一:候选链路的丢包率、候选链路的第二传输时延特征(即针对候选链路进行多次检测得到的多个传输时延值)。
需要说明的是,图3中示出的步骤102和步骤103可以是被并行执行的,即不区分先后,例如第一电子设备可以并行执行步骤102和步骤103;当然,步骤102和步骤103也可以是被先后执行的,例如第一电子设备可以先执行步骤102,再执行步骤103;第一电子设备也可以先执行步骤103,再执行步骤102,本申请实施例对此不做具体限定。
在步骤104中,第一电子设备响应于预测状态为丢包状态,根据至少一个候选链路的传输质量参数,选取至少一个候选链路以作为至少一个第二链路。
在一些实施例中,当至少一个候选链路的数量为多个时,第一电子设备可以通过以下方式实现上述的根据至少一个候选链路的传输质量参数,选取至少一个候选链路以作为至少一个第二链路:确定各候选链路的平均传输质量参数;基于平均传输质量参数,从至少一个候选链路中选取第一数量的候选链路作为第二链路,其中,第一数量与平均传输质量参数负相关。也就是说,在本申请实施例中,可以根据多个候选链路的平均传输质量参数来确定作为第二链路的候选链路的数量,例如当多个候选链路的平均传输质量参数大时,表明候选链路的质量很好,则可以降低作为第二链路的候选链路的数量,当多个候选链路的平均传输质量参数小时,表明候选链路的质量一般,则需要选取更多的候选链路作为第二链路进行数据重发,以避免第二链路也出现丢包的问题。
示例的,以至少一个候选链路的数量为5为例,即存在5个候选链路,假设分别为候选链路1、候选链路2、候选链路3、候选链路4和候选链路5,则第一电子设备可以首先计算这5个候选链路的平均传输质量参数,例如计算这5个候选链路的平均丢包率;当这5个候选链路的平均丢包率小于丢包率阈值时,表明这5个候选链路的质量很好,则可以只选取其中的2个(例如随机选取其中的2个)作为第二链路进行数据重传,以降低传输带宽和成本;当这5个候选链路的平均丢包率大于丢包率阈值时,表明这5个候选链路的质量一般,则可以选取其中的4个(例如随机选取其中的4个)作为第二链路进行数据重传,以避免第二链路也出现丢包的情况。
在另一些实施例中,第一电子设备也可以根据传输质量参数对多个候选链路进行降序排序,并从降序排序结果中选取从头部开始的设定数量(或者设定比例)的多个候选链路,作为第二链路进行数据重传。
示例的,以传输质量参数为丢包率为例,假设存在5个候选链路,分别为候选链路1、候选链路2、候选链路3、候选链路4和候选链路5,同时假设这5个候选链路分别对应的丢包率为:4%、2%、3%、5%、6%,则按照丢包率从小到大对这5个候选链路进行排序得到的排序结果为:候选链路2、候选链路3、候选链路1、候选链路4、候选链路5,随后第一电子设备可以从排序结果中选取从头部开始的设定数量的多个候选链路(例如候选链路2和候选链路3),作为第二链路进行数据重传,如此,通过基于传输质量参数对多个候选链路进行降序排序,从而使得选取出作为第二链路的是高质量的候选链路,可以有效避免数据传输过程中丢包问题的发生。
在另一些实施例中,当至少一个候选链路的数量为多个时,第一电子设备可以通过以下方式实现上述的根据至少一个候选链路的传输质量参数,选取至少一个候选链路作为至少一个第二链路:获取丢包率阈值;获取传输时延特征阈值(例如传输时延阈值);将丢包率未达到(即小于)丢包率阈值,且第二传输时延特征未达到传输时延特征阈值(例如第二传输时延特征包括的多个传输时延值均小于传输时延阈值)的至少一个候选链路,作为第二链路。也就是说,在本申请实施例中,可以从多个候选链路中挑选出传输质量参数大于传输质量参数阈值的候选链路,作为第二链路进行数据重传,如此,可以有效降低在通过第二链路进行数据重传的过程中出现丢包的可能性。
在步骤105中,第一电子设备通过至少一个第二链路向第二电子设备重新传输至少部分数据。
在一些实施例中,参见图6,图6是本申请实施例提供的数据传输方法的流程示意图,如图6所示,第一电子设备可以通过图6示出的步骤1051至步骤1053实现图3示出的步骤105,将结合图6示出的步骤进行说明。
在步骤1051中,第一电子设备根据第一链路的网络状态确定重传窗口。
在一些实施例中,重传窗口的起点可以为确定丢包状态的时刻,重传窗口的终点与起点距离设定幅度,重传窗口的终点为停止重新传输位于重传窗口内的数据的时刻。
示例的,上述设定幅度的设定方式可以包括:以重传数据包的数量设定(针对的是任意类型的数据传输,例如可以将1个数据包确定为设定幅度)、以重传时间跨度设定(例如可以将确定丢包状态之前的2秒作为设定幅度)、以重传数据帧数设定(针对的是多媒体通信,例如可以将2帧多媒体数据确定为设定幅度),重传窗口的计数方式可以包括:以时间为单位计数、以数据包为单位计数。
在步骤1052中,第一电子设备从第一电子设备的缓存池读取位于重传窗口内的数据。
在一些实施例中,第一电子设备在通过第一链路向第二电子设备发送数据的同时,还可以将数据存储至缓存池中,则第一电子设备在根据第一链路的网络状态确定出重传窗口之后,可以从第一电子设备的缓存池中读取位于重传窗口内的数据。
在步骤1053中,第一电子设备通过至少一个第二链路向第二电子设备重新传输位于重传窗口内的数据。
在一些实施例中,第一电子设备在从缓存池中读取位于重传窗口内的数据之后,可以通过至少一个第二链路(即至少一个候选链路中被选取的候选链路)向第二电子设备重新传输位于重传窗口内的数据。
示例的,以视频通话场景为例,在视频通话场景中,用户A关联的终端设备(即第一电子设备)在通过第一链路向用户B关联的终端设备(即第二电子设备)发送多媒体数据的同时,还可以将多媒体数据存储至用户A关联的终端设备的缓存池中,当用户A关联的终端设备确定出第一链路的预测状态为丢包状态时,可以根据第一链路的网络状态确定重传窗口,并从缓存池中读取位于重传窗口内的多媒体数据(例如第i帧多媒体数据,其中,第i帧多媒体数据的起点与重传窗口的起点相同),接着用户A关联的终端设备可以通过至少一个第二链路向用户B关联的终端设备重新传输位于重传窗口内的多媒体数据,如此,避免了视频通话过程中丢包问题的发生,提升了用户的视频通话体验。
在另一些实施例中,参见图7,图7是本申请实施例提供的数据传输方法的流程示意图,如图7所示,第一电子设备在执行图3示出的步骤105之前,还可以执行图7示出的步骤106,将结合图7示出的步骤进行说明。
在步骤106中,第一电子设备将至少一个第二链路的状态标记调整为开启目标数据传输状态标记。
在一些实施例中,第二链路可以具有两种不同类型的状态标记,分别为:开启目标数据传输状态标记和关闭目标数据传输状态标记,其中,开启目标数据传输状态标记表征需要通过第二链路进行数据重传,关闭目标数据传输状态标记表征不需要通过第二链路进行数据重传,则第一电子设备可以通过以下方式实现上述的通过至少一个第二链路向第二电子设备重新传输至少部分数据:响应于第二链路的状态标记为开启目标数据传输状态标记,通过至少一个第二链路向第二电子设备重新传输至少部分数据。也就是说,在本申请实施例中,第一电子设备在检测到第二链路的状态标记为开启目标数据传输状态标记时,才通过第二链路向第二电子设备重新传输至少部分数据,如此,可以有效降低传输需要的带宽和成本。
示例的,以至少一个第二链路的数量为3为例,假设分别为链路A、链路B和链路C,并且每个链路具有两种不同类型的状态标记,例如假设链路A当前的状态标记为关闭目标数据传输状态标记、链路B当前的状态标记为开启目标数据传输状态标记、链路C当前的状态标记为关闭目标数据传输状态标记,则第一电子设备可以通过链路B向第二电子设备重新传输至少部分数据,如此,可以有效降低传输需要的带宽和成本,节约了运营成本。
本申请实施例提供的数据传输方法,通过神经网络模型对第一链路进行预测,当确定出第一链路的预测状态为丢包状态时,通过至少一个第二链路对至少部分数据进行重新传输,如此,由于是在丢包还没有发生前预测出存在丢包的可能,并通过至少一个第二链路进行重新传输,即第一链路和第二链路并不是始终同时进行数据传输的,能够在控制运营成本的同时,有效降低了数据传输过程中可能出现的丢包问题。
下面,以音视频通话场景为例,说明本申请实施例在一个实际的应用场景中的示例性应用。
在一些实施例中,参见图8,图8是本申请实施例提供的多链路通话模型示意图,如图8所示,第一用户(例如用户A)和第二用户(例如用户B)在进行音视频通话时,通话双方通过各自的终端设备进行音视频信号的采集和播放,而这个过程中数据信号需要通过传输网络进行传送,这个传输网络可以是无线的,也可以是有线网络。即在通话过程中,可用于数据传输的链路不止一条(例如包括N条链路,分别为链路1、链路2、…、链路N),链路决策则是评价和决定当前时刻使用哪些链路的过程。例如对于不同的应用场景,用户对端到端音视频质量的要求是不同的,例如在游戏语音通话应用中,用户对于通话延时比较敏感,即要求端到端的通话延时控制在很小的范围内;而在视频播放应用中,用户对于延时要求不高,但对抗丢包要求较高,即用户期望视频播放过程流畅无卡顿。也就是说,链路决策的正确性决定了通话质量和用户的通话体验。
为了确保端到端数据传输的及时性和完整性,本申请实施例提供一种数据传输方法,当基于神经网络模型预测主链路(对应于上述的第一链路)处于丢包状态时,启用辅助链路(对应于上述的第二链路)进行多链路传输,如此,相较于相关技术提供的全链路并行发送的方式、或者基于非实时的链路质量判决的链路切换方案,本申请实施例利用神经网络模型预测当前帧的丢包可能状态,并基于预测结果确定是否启用辅助链路重新发送当前帧,同时还可以根据对辅助链路的周期性探测质量结果进行组合的优选,在确保传输网络质量满足业务需求,以改善用户体验的同时,还可以有效控制网络传输的运营成本。
在一些实施例中,参见图9,图9是本申请实施例提供的数据传输方法的原理示意图,下面将结合图9对本申请实施例提供的数据传输方法进行具体说明。
在一些实施例中,发送端(对应于上述的第一电子设备,例如可以是用户A关联的终端设备)可以通过多条不同的链路(例如包括WiFi、4G、5G等)向接收端(对应于上述的第二电子设备,例如可以是与用户A进行视频通话的用户B关联的终端设备)发送多媒体数据,在常规情况下,例如主链路网络正常,发送端可以通过主链路(例如WiFi)向接收端发送多媒体数据。
在一些实施例中,发送端在通过主链路向接收端发送多媒体数据的同时,还可以将已经发送的多媒体数据存储至历史发送数据缓存池中进行备份,该缓存池可以采用循环缓冲区设计,即存入数据按照发送时间顺序进行存放,当缓存池中存储的数据超过缓存池的最大限度时,可以将最早存入缓存池中的数据删除,从而可以将新数据存入缓存池中。
在一些实施例中,当接收端接收到发送端通过主链路发送的多媒体数据之后,可以对主链路进行检测,计算出通过主链路接收的当前帧多媒体数据的等待时长,即接收时延值(即上述的传输时延值),其中,第i帧的接收时延值为接收端等待接收第i帧的当前时刻值与接收到第i-1帧的时刻的时间差,假设记为t0(i),此外,还可以通过以下公式进一步计算出接收时延值的平滑值tsm:
tsm(i)=t0(i)i=0 (1)
tsm(i)=a*tsm(i-1)+(1-a)*t0(i)i>1 (2)
其中,a为平滑系数,a的取值小于1,例如a可以为0.85,tsm(i)表示第i帧的接收时延值的平滑值,tsm(i-1)表示第i-1帧的接收时延值的平滑值。同理,接收端还可以进一步计算出在接收到其他帧时的接收时延值。
在一些实施例中,接收端在计算得到多个时刻分别对应的多个接收时延值之后,可以将多个接收时延值作为输入特征(对应于上述的第一传输时延特征)输入到神经网络模型中,神经网络模型可以根据这些输入特征推理出第i帧出现丢包的可能结果,即输出“1”代表会出现丢包(对应于上述的丢包状态),输出“0”则代表不会出现丢包(对应于上述的未丢包状态)。随后,接收端还可以将当前帧的丢包预测结果反馈给发送端的链路决策模块。
需要说明的是,神经网络模型的内部结构可以包括:长短时记忆网络、卷积层(CONV)、门控循环单元(GRU,Gate Recurrent Unit)和全连接层(FC,Fully Connected),其中,全连接层可以采用激活函数,例如sigmoid函数,其输出为当前帧的丢包预测结果,此外,神经网络模型的训练过程可以使用各种类型的损失函数,例如交叉熵损失函数,合页损失函数等。
此外,还需要说明的是,接收端可以通过独立于主链路和辅助链路的链路(即上述的第三链路)向发送端发送丢包预测结果,例如可以通过采用可靠传输协议(例如TCP协议)的方式向发送端发送丢包预测结果(对应于上述的第一链路的预测状态),而主链路和辅助链路可以使用用户数据报(UDP,User Datagram Protocol)协议,其中,UDP为应用程序提供了一种无需建立连接就可以发送封装的IP数据包的方法。
在一些实施例中,当神经网络模型的输出结果为“1”时,则代表主链路当前可能出现堵塞甚至导致当前第i帧出现丢包,因此,发送端可以将辅助链路的状态标记调整为开启数据传输状态标记(对应于上述的开启目标数据传输状态标记),进而启用一条或多条辅助链路的数据传输功能,即通过一条或者多条辅助链路进行数据重传。
此外,还可以通过周期性的质量探测来确定辅助链路的传输质量状态,并根据辅助链路的传输质量状态来确定作为传输链路的辅助链路的数量,例如发送端可以每分钟通过辅助链路发送一些探测包到接收端,接收端通过检测辅助链路的丢包率、传输时延值等结果来衡量辅助链路的传输质量状态,丢包越多、传输时延值越高,表明辅助链路的传输质量越差;丢包越少、传输时延值越低,表明辅助链路的传输质量越高。如此,发送端中的辅助链路发送模块可以根据接收端发送的针对辅助链路的丢包、传输时延等的检测结果,筛选出质量较佳的链路投入数据重发的任务中,如果选出的辅助链路的质量很好(例如辅助链路的丢包率小于丢包率阈值,或者传输时延值小于传输时延阈值),则可以降低辅助链路的使用条数,从而降低传输带宽和成本,如果选出的辅助链路的质量一般,则可以选择更多的辅助链路进行数据重传,以避免辅助链路出现丢包的问题。
需要说明的是,丢包率是指丢包个数与预期收包总数的比值,丢包率阈值可以是经验比值阈值,例如5%,传输时延阈值可以是100毫秒,例如假设有10条辅助链路,对这10条辅助链路进行丢包、传输时延等检测处理后,假设存在3条辅助链路的丢包率小于丢包率阈值,且传输时延值小于传输时延阈值,则可以进一步根据业务需求确定开启辅助链路的数量,例如对于及时性和流畅性要求较高的语音、视频通话场景,可以开启2条或者3条辅助链路;而对于及时性和流畅性要求较低的电视播放场景,则可以从满足要求的3条辅助链路中开启一条辅助链路即可。
在一些实施例中,发送端在确定出辅助链路之后,可以从历史发送数据缓存池中获取第i帧一帧的多媒体数据,或者从第i帧到第i+N帧的N帧多媒体数据,并将从缓存池中获取的数据通过辅助链路进行重新发送。
在一些实施例中,针对存在多条链路同时进行发送数据的情况,当接收端中的神经网络模型输出的结果为“0”时,表明主链路接收正常,则可以关闭辅助链路,例如将辅助链路的状态标记调整为关闭数据传输的状态标记(对应于上述的关闭目标数据传输状态标记),即回退到只通过主链路进行数据传输的方式。
需要说明的是,也可以通过一种滞后控制的切换(handover)机制来关闭辅助链路,例如可以当神经网络模型针对连续多帧的输出结果均为“0”时,才启动辅助链路关闭逻辑,如此,可以有效避免由于数据传输过程中的不稳定导致的丢包问题。
此外,还需要说明的是,本申请实施例提供的方案可以应用于不同实时数据传输应用的场景,不仅限制在语音、视频通话场景,还可以应用于一些实时数据的传输场景,例如游戏定位数据的传输场景等。
本申请实施例提供的数据传输方法,通过采用神经网络模型进行预测,可以在丢包还未真实发生之前就触发辅助链路进行重传,通常是小于100毫秒的响应时间,防患于未然,相较于相关技术提供的基于丢包率统计的方案,其统计周期通常是秒级的,并且是已经出现多个丢包后才会触发后续处理的方案,用户已经可以明显感知到有音质损伤甚至卡顿、无声等问题。此外,本申请实施例提供的方案,在保障用户体验的同时,传输网络宽带的使用率极高,不同于相关技术提供的多链路全程并行的方案,本申请实施例中辅助链路是仅在接收端的神经网络模型预测到丢包可能时才被启用,并且需要启用的辅助链路的数量与辅助链路的质量相关,如此,可以在保障用户体验的同时,有效降低消耗的带宽和运营成本。
下面继续说明本申请实施例提供的数据传输装置855的实施为软件模块的示例性结构,在一些实施例中,如图2A所示,存储在存储器850的数据传输装置855中的软件模块可以包括:发送模块8551、获取模块8552和选取模块8553。
发送模块8551,用于通过第一链路向第二电子设备发送数据;获取模块8552,用于获取第一链路的预测状态,其中,预测状态是由神经网络模型基于第一链路的第一传输时延特征预测得到的,预测状态的类型包括丢包状态和未丢包状态;获取模块8552,还用于获取至少一个候选链路的传输质量参数;选取模块8553,用于响应于预测状态为丢包状态,根据至少一个候选链路的传输质量参数,选取至少一个候选链路以作为至少一个第二链路;发送模块8551,还用于通过至少一个第二链路向第二电子设备重新传输至少部分数据。
在一些实施例中,数据传输装置855还包括接收模块8554和计算模块8555,其中,接收模块8554,用于接收由第二电子设备发送的第一传输时延特征,其中,第一传输时延特征包括第一链路的多个传输时延值,多个传输时延值是由第二电子设备对第一链路进行多次检测得到的;计算模块8555,用于基于第一传输时延特征调用神经网络模型进行链路状态计算处理,得到预测状态。
在一些实施例中,接收模块8554,还用于接收第二电子设备通过第三链路发送的第一链路的预测状态,其中,第三链路独立于第一链路和第二链路,第一链路的预测状态是由第二电子设备通过以下方式确定的:对第一链路进行多次检测处理,得到第一传输时延特征,其中,第一传输时延特征包括第一链路的多个传输时延值;基于第一传输时延特征调用神经网络模型进行链路状态计算处理,得到预测状态。
在一些实施例中,计算模块8555,还用于基于第一传输时延特征调用神经网络模型执行以下处理:基于第一传输时延特征进行第一递归处理,得到第一递归处理结果;基于第一递归处理结果进行卷积处理,得到卷积处理结果;基于卷积处理结果进行第二递归处理,得到第二递归处理结果;基于第二递归处理结果进行全连接处理,得到第一链路的预测状态。
在一些实施例中,当第一电子设备与第二电子设备之间的数据传输用于多媒体通信时,每个传输时延值是相邻两帧多媒体数据的接收时间的差值。
在一些实施例中,第一传输时延特征还包括第一链路在第一时刻的传输时延值的平滑值,平滑值是第二时刻的传输时延值的平滑值与第一时刻的传输时延值基于各自对应的平滑系数的加权,第一时刻是任意时刻,第二时刻是第一时刻的上一时刻。
在一些实施例中,数据传输装置855还包括确定模块8556,用于当至少一个候选链路的数量为多个时,确定各候选链路的平均传输质量参数;选取模块8553,还用于基于平均传输质量参数,从至少一个候选链路中选取第一数量的候选链路作为第二链路,其中,平均传输质量参数与第一数量负相关。
在一些实施例中,至少一个候选链路的传输质量参数包括以下至少之一:候选链路的丢包率,候选链路的第二传输时延特征,当至少一个候选链路的数量为多个时,获取模块8552,还用于获取丢包率阈值;以及用于获取传输时延特征阈值;选取模块8553,还用于将丢包率未达到丢包率阈值,且第二传输时延特征未达到传输时延特征阈值的至少一个候选链路,作为第二链路。
在一些实施例中,确定模块8556,还用于根据第一链路的网络状态确定重传窗口,其中,重传窗口的起点为确定丢包状态的时刻,重传窗口的终点与起点距离设定幅度,终点为停止重新传输位于重传窗口内的数据的时刻;获取模块8552,还用于从第一电子设备的缓存池读取位于重传窗口内的数据;发送模块8551,还用于通过至少一个第二链路向第二电子设备重新传输位于重传窗口内的数据;其中,设定幅度的设定方式包括:以重传数据包的数量设定、以重传时间跨度设定、以重传数据帧数设定,重传窗口的计数方式包括:以时间为单位计数、以数据包为单位计数。
在一些实施例中,数据传输装置855还包括调整模块8557,用于在通过至少一个第二链路向第二电子设备重新传输至少部分数据之前,将至少一个第二链路的状态标记调整为开启目标数据传输状态标记,状态标记包括以下至少之一:开启目标数据传输状态标记和关闭目标数据传输状态标记;发送模块8551,还用于响应于第二链路的状态标记为开启目标数据传输状态标记,通过至少一个第二链路向第二电子设备重新传输至少部分数据。
在另一些实施例中,如图2B所示,存储在存储器950的数据传输装置955中的软件模块可以包括:接收模块9551、检测模块9552和发送模块9553。
接收模块9551,用于接收由第一电子设备通过第一链路发送的数据;检测模块9552,用于对第一链路进行多次检测,得到第一链路的第一传输时延特征,第一传输时延特征用于在神经网络模型中确定第一链路的预测状态,预测状态的类型包括丢包状态和未丢包状态;发送模块9553,用于向第一电子设备发送至少一个候选链路的传输质量参数,以使第一电子设备响应于预测状态为丢包状态,根据至少一个候选链路的传输质量参数,选取至少一个候选链路以作为至少一个第二链路;通过至少一个第二链路向第二电子设备重新传输至少部分数据。
需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本申请实施例提供的数据传输装置中未尽的技术细节,可以根据图3、或图4、或图6、或图7中的任一附图的说明而理解。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该计算机设备执行本申请实施例上述的数据传输方法。
本申请实施例提供一种存储有计算机可执行指令的计算机可读存储介质,其中存储有计算机可执行指令,当计算机可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的数据传输方法,例如,如图3、或图4、或图6、或图7中的任一附图示出的数据传输方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (15)
1.一种数据传输方法,其特征在于,应用于第一电子设备,所述方法包括:
通过第一链路向第二电子设备发送数据;
获取所述第一链路的预测状态,其中,所述预测状态是由神经网络模型基于所述第一链路的第一传输时延特征预测得到的,所述预测状态的类型包括丢包状态和未丢包状态;
获取至少一个候选链路的传输质量参数;
响应于所述预测状态为所述丢包状态,根据所述至少一个候选链路的传输质量参数,选取至少一个所述候选链路以作为至少一个第二链路;
通过所述至少一个第二链路向所述第二电子设备重新传输至少部分所述数据。
2.根据权利要求1所述的方法,其特征在于,所述获取所述第一链路的预测状态,包括:
接收由所述第二电子设备发送的所述第一传输时延特征,其中,所述第一传输时延特征包括所述第一链路的多个传输时延值,所述多个传输时延值是由所述第二电子设备对所述第一链路进行多次检测得到的;
基于所述第一传输时延特征调用所述神经网络模型进行链路状态计算处理,得到所述预测状态。
3.根据权利要求1所述的方法,其特征在于,所述获取所述第一链路的预测状态,包括:
接收所述第二电子设备通过第三链路发送的所述第一链路的预测状态,其中,所述第三链路独立于所述第一链路和所述第二链路,所述第一链路的预测状态是由所述第二电子设备通过以下方式确定的:
对所述第一链路进行多次检测处理,得到所述第一传输时延特征,其中,所述第一传输时延特征包括所述第一链路的多个传输时延值;
基于所述第一传输时延特征调用所述神经网络模型进行链路状态计算处理,得到所述预测状态。
4.根据权利要求2或3所述的方法,其特征在于,所述基于所述第一传输时延特征调用所述神经网络模型进行链路状态计算处理,得到所述预测状态,包括:
基于所述第一传输时延特征调用所述神经网络模型执行以下处理:
基于所述第一传输时延特征进行第一递归处理,得到第一递归处理结果;
基于所述第一递归处理结果进行卷积处理,得到卷积处理结果;
基于所述卷积处理结果进行第二递归处理,得到第二递归处理结果;
基于所述第二递归处理结果进行全连接处理,得到所述第一链路的预测状态。
5.根据权利要求2或3所述的方法,其特征在于,
当所述第一电子设备与所述第二电子设备之间的数据传输用于多媒体通信时,每个所述传输时延值是相邻两帧多媒体数据的接收时间的差值。
6.根据权利要求2或3所述的方法,其特征在于,
所述第一传输时延特征还包括所述第一链路在第一时刻的传输时延值的平滑值,所述平滑值是第二时刻的传输时延值的平滑值与所述第一时刻的传输时延值基于各自对应的平滑系数的加权,所述第一时刻是任意时刻,所述第二时刻是所述第一时刻的上一时刻。
7.根据权利要求1所述的方法,其特征在于,当所述至少一个候选链路的数量为多个时,所述根据所述至少一个候选链路的传输质量参数,选取至少一个所述候选链路以作为至少一个第二链路,包括:
确定各所述候选链路的平均传输质量参数;
基于所述平均传输质量参数,从至少一个所述候选链路中选取第一数量的所述候选链路作为所述第二链路,其中,所述平均传输质量参数与所述第一数量负相关。
8.根据权利要求1所述的方法,其特征在于,所述通过所述至少一个第二链路向所述第二电子设备重新传输至少部分所述数据,包括:
根据所述第一链路的网络状态确定重传窗口,其中,所述重传窗口的起点为确定所述丢包状态的时刻,所述重传窗口的终点与所述起点距离设定幅度,所述终点为停止重新传输位于所述重传窗口内的所述数据的时刻;
从所述第一电子设备的缓存池读取位于所述重传窗口内的所述数据;
通过所述至少一个第二链路向所述第二电子设备重新传输位于所述重传窗口内的所述数据;
其中,所述设定幅度的设定方式包括:以重传数据包的数量设定、以重传时间跨度设定、以重传数据帧数设定,所述重传窗口的计数方式包括:以时间为单位计数、以数据包为单位计数。
9.根据权利要求1所述的方法,其特征在于,
在通过所述至少一个第二链路向所述第二电子设备重新传输至少部分所述数据之前,所述方法还包括:
将所述至少一个第二链路的状态标记调整为开启目标数据传输状态标记,所述状态标记包括以下至少之一:开启目标数据传输状态标记和关闭目标数据传输状态标记;
所述通过所述至少一个第二链路向所述第二电子设备重新传输至少部分所述数据,包括:
响应于所述第二链路的状态标记为所述开启目标数据传输状态标记,通过所述至少一个第二链路向所述第二电子设备重新传输至少部分所述数据。
10.一种数据传输方法,其特征在于,应用于第二电子设备,所述方法包括:
接收由第一电子设备通过第一链路发送的数据;
对所述第一链路进行多次检测,得到所述第一链路的第一传输时延特征,所述第一传输时延特征用于在神经网络模型中确定所述第一链路的预测状态,所述预测状态的类型包括丢包状态和未丢包状态;
向所述第一电子设备发送至少一个候选链路的传输质量参数,以使所述第一电子设备响应于所述预测状态为所述丢包状态,根据所述至少一个候选链路的传输质量参数,选取至少一个所述候选链路以作为至少一个第二链路;通过所述至少一个第二链路向所述第二电子设备重新传输至少部分所述数据。
11.一种数据传输装置,其特征在于,应用于第一电子设备,所述装置包括:
发送模块,用于通过第一链路向第二电子设备发送数据;
获取模块,用于获取所述第一链路的预测状态,其中,所述预测状态是由神经网络模型基于所述第一链路的第一传输时延特征预测得到的,所述预测状态的类型包括丢包状态和未丢包状态;
所述获取模块,还用于获取至少一个候选链路的传输质量参数;
选取模块,用于响应于所述预测状态为所述丢包状态,根据所述至少一个候选链路的传输质量参数,选取至少一个所述候选链路以作为至少一个第二链路;
所述发送模块,还用于通过所述至少一个第二链路向所述第二电子设备重新传输至少部分所述数据。
12.一种数据传输装置,其特征在于,应用于第二电子设备,所述装置包括:
接收模块,用于接收由第一电子设备通过第一链路发送的数据;
检测模块,用于对所述第一链路进行多次检测,得到所述第一链路的第一传输时延特征,所述第一传输时延特征用于在神经网络模型中确定所述第一链路的预测状态,所述预测状态的类型包括丢包状态和未丢包状态;
发送模块,用于向所述第一电子设备发送至少一个候选链路的传输质量参数,以使所述第一电子设备响应于所述预测状态为所述丢包状态,根据所述至少一个候选链路的传输质量参数,选取至少一个所述候选链路以作为至少一个第二链路;通过所述至少一个第二链路向所述第二电子设备重新传输至少部分所述数据。
13.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至9任一项、或权利要求10所述的数据传输方法。
14.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令被处理器执行时,实现权利要求1至9任一项、或权利要求10所述的数据传输方法。
15.一种计算机程序产品,包括计算机程序或计算机可执行指令,其特征在于,所述计算机程序或计算机可执行指令被处理器执行时,实现权利要求1至9任一项、或权利要求10所述的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211380452.8A CN116980531A (zh) | 2022-11-04 | 2022-11-04 | 数据传输方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211380452.8A CN116980531A (zh) | 2022-11-04 | 2022-11-04 | 数据传输方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116980531A true CN116980531A (zh) | 2023-10-31 |
Family
ID=88470097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211380452.8A Pending CN116980531A (zh) | 2022-11-04 | 2022-11-04 | 数据传输方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116980531A (zh) |
-
2022
- 2022-11-04 CN CN202211380452.8A patent/CN116980531A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110730105B (zh) | 图片数据传输方法、装置、设备及存储介质 | |
US20230083441A1 (en) | Managing subpacket transmission and reception for advanced interactive services | |
EP3993436A1 (en) | Data processing method and apparatus, computer-readable storage medium, and electronic device | |
WO2019154221A1 (zh) | 发送流数据的方法及数据发送设备 | |
CN109600610B (zh) | 一种数据编码方法、终端及计算机可读存储介质 | |
CN109525458B (zh) | 数据传输方法、装置、介质及电子设备 | |
CN115150638B (zh) | 一种基于云桌面的数据传输方法、装置、设备及存储介质 | |
US20110010625A1 (en) | Method for Manually Optimizing Jitter, Delay and Synch Levels in Audio-Video Transmission | |
US20240108980A1 (en) | Method, apparatuses and systems directed to adapting user input in cloud gaming | |
CN106791575B (zh) | 一种数据发送的控制方法及设备 | |
CN109862377A (zh) | 视频传输方法、装置、系统及计算机可读存储介质 | |
CN111225209A (zh) | 视频数据推流方法、装置、终端及存储介质 | |
US12113680B2 (en) | Reinforcement learning for jitter buffer control | |
CN115834556B (zh) | 数据传输方法、系统、设备、存储介质及程序产品 | |
CN113747489A (zh) | Udp通信质量评估方法、装置及电子设备 | |
CN114466177B (zh) | 基于http传输视频流的质量评估方法及电子设备 | |
CN116980531A (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN116962179A (zh) | 网络传输优化方法、装置、计算机可读介质及电子设备 | |
CN116546276A (zh) | 链路带宽估计方法、装置、设备、存储介质以及程序产品 | |
CN116192766A (zh) | 用于调整数据发送速率和训练拥塞控制模型的方法及装置 | |
CN116436865A (zh) | 多路径传输的重注入控制方法、电子设备及存储介质 | |
CN105794159A (zh) | 资源分配 | |
Kennedy et al. | Household bandwidth and the'need for speed': evaluating the impact of active queue management for home internet traffic | |
CN114339364A (zh) | 多媒体数据处理方法、装置、电子设备及存储介质 | |
KR20180126133A (ko) | 복수의 이종 통신망을 통해 데이터를 선택적으로 이중 전송하는 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |