CN117560115A - 数据传输方法、装置、系统、电子设备及存储介质 - Google Patents
数据传输方法、装置、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117560115A CN117560115A CN202311509996.4A CN202311509996A CN117560115A CN 117560115 A CN117560115 A CN 117560115A CN 202311509996 A CN202311509996 A CN 202311509996A CN 117560115 A CN117560115 A CN 117560115A
- Authority
- CN
- China
- Prior art keywords
- data
- transmission
- network state
- identifier
- preset
- 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 433
- 238000000034 method Methods 0.000 title claims abstract description 77
- 230000006854 communication Effects 0.000 claims abstract description 78
- 238000004891 communication Methods 0.000 claims abstract description 78
- 238000009825 accumulation Methods 0.000 claims description 42
- 230000006870 function Effects 0.000 claims description 31
- 230000004044 response Effects 0.000 claims description 28
- 238000012544 monitoring process Methods 0.000 claims description 14
- 238000001514 detection method Methods 0.000 claims description 9
- 238000012546 transfer Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 abstract description 6
- 230000008859 change Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 239000000523 sample Substances 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
-
- 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/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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- 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
- 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/164—Adaptation or special uses of UDP protocol
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Communication Control (AREA)
Abstract
本公开涉及数据处理领域,具体公开了一种数据传输方法、装置、系统、电子设备及存储介质。该方法包括:响应于通过可靠传输协议发送的数据传输指令,获取与所述数据传输指令相对应的目标数据,并确定当前网络状态;在所述当前网络状态为第一状态的情况下,将所述目标数据通过非可靠传输协议进行传输;在所述当前网络状态为第二状态的情况下,将所述目标数据通过与预设通信协议相对应的预设传输通道进行传输;其中,所述可靠传输协议用于对传输失败的数据进行重传。该方式能够根据当前网络状态动态判断目标数据的传输方式,从而能够根据网络状态的变化情况灵活调整数据传输方式,从而在各种网络状态下都能保证数据传输效率。
Description
技术领域
本公开实施例涉及数据处理技术领域,具体涉及一种数据传输方法、装置、系统、电子设备及存储介质。
背景技术
在数据传输领域中,可以通过多种方式传输数据。例如,可以灵活选择各种传输协议或传输通道进行数据传输:可以通过用户数据报协议(User Datagram Protocol,UDP)或传输控制协议(Transmission Control Protocol,TCP)进行数据传输。
但是,由于每种协议分别具有不同的优势和劣势。并且,网络状态可能是动态变化的,因此,固定不变的传输方式无法适配动态变化的网络状态。
发明内容
鉴于上述问题,提出了本公开以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据传输方法、装置、系统、电子设备及存储介质。
根据本公开实施例的一个方面,提供了一种数据传输方法,包括:
响应于通过可靠传输协议发送的数据传输指令,获取与所述数据传输指令相对应的目标数据,并确定当前网络状态;
在所述当前网络状态为第一状态的情况下,将所述目标数据通过非可靠传输协议进行传输;
在所述当前网络状态为第二状态的情况下,将所述目标数据通过与预设通信协议相对应的预设传输通道进行传输;
其中,所述可靠传输协议用于对传输失败的数据进行重传。
在一种可选的实现方式中,所述获取与所述数据传输指令相对应的目标数据,并确定当前网络状态包括:
获取与所述数据传输指令相对应的目标数据,确定用于缓存所述目标数据的预设缓存队列的缓存堆积数量,并根据所述缓存堆积数量确定当前网络状态;
其中,所述第二状态对应的缓存堆积数量大于所述第一状态对应的缓存堆积数量。
在一种可选的实现方式中,所述根据所述缓存堆积数量确定当前网络状态包括:
若所述缓存堆积数量大于预设堆积阈值,确定当前网络状态为第二状态;
若所述缓存堆积数量不大于预设堆积阈值,确定当前网络状态为第一状态。
在一种可选的实现方式中,所述响应于通过可靠传输协议发送的数据传输指令,获取与所述数据传输指令相对应的目标数据之前,还包括:
定期监测所述数据发送端对应的网络状态;
在网络状态标识为对应于第一状态的第一标识的情况下,若监测到所述数据发送端的网络状态满足预设拥塞条件,将网络状态标识从所述第一标识修改为对应于第二状态的第二标识;
在所述网络状态标识为对应于第二状态的第二标识的情况下,若监测到所述数据发送端的网络状态满足预设非拥塞条件,将网络状态标识从所述第二标识修改为所述第一标识;
并且,所述确定当前网络状态包括:根据所述网络状态标识确定当前网络状态。
在一种可选的实现方式中,在所述网络状态标识为对应于第二状态的第二标识的情况下,所述监测到所述数据发送端的网络状态满足预设非拥塞条件,将网络状态标识从所述第二标识修改为所述第一标识包括:
在所述网络状态标识为对应于第二状态的第二标识的情况下,每隔预设时间间隔发送一次探测数据包,在接收到与所述探测数据包相对应的响应数据包的情况下,确定所述数据发送端的网络状态满足预设非拥塞条件,将网络状态标识从所述第二标识修改为所述第一标识。
在一种可选的实现方式中,所述方法应用于游戏应用;所述可靠传输协议包括:KCP传输协议;所述非可靠传输协议包括:UDP传输协议;所述与预设通信协议相对应的预设传输通道包括:与实时通信协议相对应的数据传输通道。
在一种可选的实现方式中,所述响应于通过可靠传输协议发送的数据传输指令之前,还包括:
获取待传输数据,确定所述待传输数据的数据类型;
在所述待传输数据的数据类型为控制数据类型的情况下,通过所述可靠传输协议生成所述数据传输指令;
在所述待传输数据的数据类型为音视频数据类型的情况下,通过与所述实时通信协议相对应的音视频传输通道传输所述待传输数据。
在一种可选的实现方式中,所述将所述目标数据通过与预设通信协议相对应的预设传输通道进行传输之前,还包括:
获取所述预设传输通道的通道配置参数;
更新所述通道配置参数中包含的重传次数参数的参数值,以使所述重传次数参数的参数值小于预设值;其中,所述重传次数参数用于限定所述预设传输通道在数据传输失败的情况下的重传次数;和/或,
更新所述通道配置参数中包含的优先级参数的参数值,以提升所述预设传输通道相对于所述音视频传输通道的传输优先级。
在一种可选的实现方式中,所述响应于通过可靠传输协议发送的数据传输指令之后,还包括:
调用预设的回调函数,通过所述回调函数执行所述获取与所述数据传输指令相对应的目标数据的步骤及其后续步骤。
根据本公开实施例的又一个方面,提供了一种数据传输方法,适用于数据接收端,包括:
接收来自数据发送端的目标数据;
根据所述目标数据的传输通道,确定所述目标数据的传输通道标识,以基于所述传输通道标识确定与所述目标数据相对应的响应数据的传输方式;
其中,所述目标数据通过上述的数据传输方法发送。
根据本公开实施例的又一个方面,提供了一种数据传输方法,所述方法包括:
数据发送端响应于通过可靠传输协议发送的数据传输指令,获取与所述数据传输指令相对应的目标数据,并确定当前网络状态;在所述当前网络状态为第一状态的情况下,将所述目标数据通过非可靠传输协议进行传输;在所述当前网络状态为第二状态的情况下,将所述目标数据通过与预设通信协议相对应的预设传输通道进行传输;其中,所述可靠传输协议用于对传输失败的数据进行重传;
数据接收端接收来自数据发送端的目标数据;根据所述目标数据的传输通道,确定所述目标数据的传输通道标识,以基于所述传输通道标识确定与所述目标数据相对应的响应数据的传输方式;其中,所述目标数据通过上述的数据传输方法发送。
根据本公开实施例的又一个方面,提供了一种数据传输装置,适用于数据发送端,所述装置包括:
获取模块,适于响应于通过可靠传输协议发送的数据传输指令,获取与所述数据传输指令相对应的目标数据,并确定当前网络状态;
第一传输模块,适于在所述当前网络状态为第一状态的情况下,将所述目标数据通过非可靠传输协议进行传输;
第二传输模块,适于在所述当前网络状态为第二状态的情况下,将所述目标数据通过与预设通信协议相对应的预设传输通道进行传输;
其中,所述可靠传输协议用于对传输失败的数据进行重传。
在一种可选的实现方式中,所述获取模块具体适于:
获取与所述数据传输指令相对应的目标数据,确定用于缓存所述目标数据的预设缓存队列的缓存堆积数量,并根据所述缓存堆积数量确定当前网络状态;
其中,所述第二状态对应的缓存堆积数量大于所述第一状态对应的缓存堆积数量。
在一种可选的实现方式中,所述获取模块具体适于:
若所述缓存堆积数量大于预设堆积阈值,确定当前网络状态为第二状态;
若所述缓存堆积数量不大于预设堆积阈值,确定当前网络状态为第一状态。
在一种可选的实现方式中,所述装置还包括:
监测模块,适于定期监测所述数据发送端对应的网络状态;在网络状态标识为对应于第一状态的第一标识的情况下,若监测到所述数据发送端的网络状态满足预设拥塞条件,将网络状态标识从所述第一标识修改为对应于第二状态的第二标识;在所述网络状态标识为对应于第二状态的第二标识的情况下,若监测到所述数据发送端的网络状态满足预设非拥塞条件,将网络状态标识从所述第二标识修改为所述第一标识;并且,所述获取模块具体适于:根据所述网络状态标识确定当前网络状态。
在一种可选的实现方式中,在所述网络状态标识为对应于第二状态的第二标识的情况下,所述监测模块具体适于:
在所述网络状态标识为对应于第二状态的第二标识的情况下,每隔预设时间间隔发送一次探测数据包,在接收到与所述探测数据包相对应的响应数据包的情况下,确定所述数据发送端的网络状态满足预设非拥塞条件,将网络状态标识从所述第二标识修改为所述第一标识。
在一种可选的实现方式中,所述装置应用于游戏应用;所述可靠传输协议包括:KCP传输协议;所述非可靠传输协议包括:UDP传输协议;所述与预设通信协议相对应的预设传输通道包括:与实时通信协议相对应的数据传输通道。
在一种可选的实现方式中,所述获取模块还适于:
获取待传输数据,确定所述待传输数据的数据类型;
在所述待传输数据的数据类型为控制数据类型的情况下,通过所述可靠传输协议生成所述数据传输指令;
在所述待传输数据的数据类型为音视频数据类型的情况下,通过与所述实时通信协议相对应的音视频传输通道传输所述待传输数据。
在一种可选的实现方式中,所述装置还包括:
配置模块,适于获取所述预设传输通道的通道配置参数;更新所述通道配置参数中包含的重传次数参数的参数值,以使所述重传次数参数的参数值小于预设值;其中,所述重传次数参数用于限定所述预设传输通道在数据传输失败的情况下的重传次数;和/或,更新所述通道配置参数中包含的优先级参数的参数值,以提升所述预设传输通道相对于所述音视频传输通道的传输优先级。
根据本公开实施例的又一个方面,提供了一种数据传输装置,适用于数据接收端,包括:
接收模块,适于接收来自数据发送端的目标数据;
确定模块,适于根据所述目标数据的传输通道,确定所述目标数据的传输通道标识,以基于所述传输通道标识确定与所述目标数据相对应的响应数据的传输方式;
其中,所述目标数据通过上述数据传输方法发送。
根据本公开实施例的又一个方面,提供了一种数据传输系统,所述系统包括:数据发送端以及数据接收端。
依据本公开的再一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上述的数据传输方法。
依据本公开的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述的数据传输方法。
在本公开的实施例中,响应于通过可靠传输协议发送的数据传输指令,获取与数据传输指令相对应的目标数据,并根据当前网络状态确定目标数据的传输方式:在当前网络状态为第一状态的情况下,将目标数据通过非可靠传输协议进行传输;在当前网络状态为第二状态的情况下,将目标数据通过与预设通信协议相对应的预设传输通道进行传输。由此可见,该方式能够根据当前网络状态动态判断目标数据的传输方式,从而能够根据网络状态的变化情况灵活调整数据传输方式,从而在各种网络状态下都能保证数据传输效率。
上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本公开的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本公开一个实施例提供的一种数据传输方法的流程图;
图2示出了本公开又一个实施例提供的一种数据传输方法的流程图;
图3示出了通过基于UDP实现的KCP协议传输数据的流程图;
图4示出了一个具体示例中的数据传输方法的流程示意图;
图5示出了本公开又一实施例提供的一种数据传输装置的示意图;
图6示出了本公开又一实施例提供的一种数据传输装置的示意图;
图7示出了本公开又一实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了本公开一个实施例提供的一种数据传输方法的流程图。如图1所示,该方法适用于数据发送端,具体包括:
步骤S110:响应于通过可靠传输协议发送的数据传输指令,获取与数据传输指令相对应的目标数据,并确定当前网络状态。
其中,可靠传输协议可以为各种类型的协议,例如,可以是快速可靠网络传输协议KCP。相应的,在需要传输数据的情况下,通过可靠传输协议发送数据传输指令,响应于该数据传输指令,获取与数据传输指令相对应的目标数据。
并且,在本步骤中,还需要确定当前网络状态。其中,当前网络状态可以根据用于缓存目标数据的预设缓存队列的缓存堆积数量确定,或者,当前网络状态也可以根据网络的传输时延、丢包率等因素确定。总之,凡是能够用于表征网络传输效率的指标均可用于确定当前网络状态,本申请对当前网络状态的具体确定方式不做限定。
步骤S120:在当前网络状态为第一状态的情况下,将目标数据通过非可靠传输协议进行传输。
其中,第一状态可以为网络状况较好的状态,例如,第一状态的网络时延较低、丢包率较少、和/或缓存堆积数量较少。在当前网络状态为第一状态的情况下,将目标数据通过非可靠传输协议进行传输。其中,非可靠传输协议可以为UDP协议。非可靠传输协议具有传输速度快的优势,因而能够充分利用较好的网络状态实现更多数据包的快速传输。
步骤S130:在当前网络状态为第二状态的情况下,将目标数据通过与预设通信协议相对应的预设传输通道进行传输;其中,可靠传输协议用于对传输失败的数据进行重传。
其中,第二状态可以为网络状况较差的状态,例如,第二状态的网络时延较高、丢包率较多、和/或缓存堆积数量较多。在当前网络状态为第二状态的情况下,将目标数据通过与预设通信协议相对应的预设传输通道进行传输。其中,预设通信协议可以为多种类型的协议。例如,预设通信协议可以为实时通信(Real-Time Communication,RTC)协议。相应的,与预设通信协议相对应的预设传输通道可以为数据通道Data Channel。其中,在网络状况较差的情况下,若通过非可靠传输协议进行数据传输,则可能导致数据出现更多的延误和丢包,因此,切换至与预设通信协议相对应的预设传输通道进行传输,从而便于在网络状况较差的情况下确保数据的正常传输。
其中,上述的第一状态和第二状态还可以通过其他方式进行划分,例如,在可选的实现方式中,也可以将第一状态设置为网络状况较差的状态,将第二状态设置为网络状态较好的状态。总之,第一状态和第二状态的划分方式主要取决于非可靠传输协议以及预设通信协议的具体种类,本申请对此不做限定。
在上述方式中,一方面,通过可靠传输协议对传输失败的数据进行重传,从而确保了数据传输的可靠性;另一方面,在实际传输过程中,根据当前网络状态灵活选择不同的传输方式进行传输,从而能够满足各种网络状态的实际需求。
由此可见,在本公开的实施例中,响应于通过可靠传输协议发送的数据传输指令,获取与数据传输指令相对应的目标数据,并根据当前网络状态确定目标数据的传输方式:在当前网络状态为第一状态的情况下,将目标数据通过非可靠传输协议进行传输;在当前网络状态为第二状态的情况下,将目标数据通过与预设通信协议相对应的预设传输通道进行传输。由此可见,该方式能够根据当前网络状态动态判断目标数据的传输方式,从而能够根据网络状态的变化情况灵活调整数据传输方式,从而在各种网络状态下都能保证数据传输效率。
本领域技术人员还可以对上述实施例进行各种改动和变形:
在一种可选的实现方式中,在可靠传输协议的基础上,设置专门的回调函数实现本实施例中的数据传输过程。相应的,在响应于通过可靠传输协议发送的数据传输指令之后,调用预设的回调函数,通过该回调函数执行上述获取与数据传输指令相对应的目标数据的步骤及其后续步骤。由此可见,本申请通过编写专用于实现传输切换的回调函数,使可靠传输协议能够灵活选择不同类型的传输方式进行数据传输。
在一种可选的实现方式中,在获取与数据传输指令相对应的目标数据,并确定当前网络状态时,通过以下方式实现:获取与数据传输指令相对应的目标数据,确定用于缓存该目标数据的预设缓存队列的缓存堆积数量,并根据缓存堆积数量确定当前网络状态。其中,第二状态对应的缓存堆积数量大于第一状态对应的缓存堆积数量。其中,预设缓存队列用于缓存待传输的目标数据,在预设缓存队列出现堆积的情况下,确定网络状态不佳,即:确定当前网络状态从第一状态切换为第二状态。相应的,数据传输方式也由基于非可靠传输协议的传输方式切换为基于与预设通信协议相对应的预设传输通道的传输方式。
在一种可选的实现方式中,在根据缓存堆积数量确定当前网络状态时,若缓存堆积数量大于预设堆积阈值,确定当前网络状态为第二状态;若缓存堆积数量不大于预设堆积阈值,确定当前网络状态为第一状态。例如,在缓存堆积数量大于预设堆积阈值的情况下,确定当前网络状态不佳,出现了拥塞,因此,第二状态也可以称作拥塞状态;反之,在缓存堆积数量不大于预设堆积阈值的情况下,确定当前网络状态较佳,未出现拥塞,因此,第一状态也可以称作非拥塞状态。
在一种可选的实现方式中,为了便于快速确定当前网络状态,通过定期监测的方式持续监测网络状态,并根据监测结果动态更新网络状态标识。相应的,可以直接基于网络状态标识快速确定当前网络状态。在响应于通过可靠传输协议发送的数据传输指令,获取与数据传输指令相对应的目标数据之前,还包括:定期监测数据发送端对应的网络状态;在网络状态标识为对应于第一状态的第一标识的情况下,若监测到数据发送端的网络状态满足预设拥塞条件,将网络状态标识从第一标识修改为对应于第二状态的第二标识;在网络状态标识为对应于第二状态的第二标识的情况下,若监测到数据发送端的网络状态满足预设非拥塞条件,将网络状态标识从第二标识修改为第一标识。相应的,在确定当前网络状态时,直接根据网络状态标识确定当前网络状态。该方式通过定期监测的方式,能够确保网络状态标识的及时更新,从而提升网络状态判断的效率。
在一种可选的实现方式中,在网络状态标识为对应于第二状态的第二标识的情况下,每隔预设时间间隔发送一次探测数据包,在接收到与探测数据包相对应的响应数据包的情况下,确定数据发送端的网络状态满足预设非拥塞条件,将网络状态标识从第二标识修改为第一标识。其中,若探测数据包能够发送成功,且成功收到响应数据包,则说明网络状态已恢复,因此,将网络状态标识从第二标识修改为第一标识。
在一种可选的实现方式中,上述方法应用于游戏应用;可靠传输协议包括:KCP传输协议;非可靠传输协议包括:UDP传输协议;与预设通信协议相对应的预设传输通道包括:与实时通信协议相对应的数据传输通道。由此可见,KCP传输协议一方面能够与UDP传输协议相互配合,另一方面能够与实时通信协议相对应的数据传输通道相互配合,从而在网络状态较佳的情况下利用UDP传输协议快速传输,在网络状态不佳的情况下利用实时通信协议对应的数据传输通道进行传输,从而保障数据传输的稳定性和实时性。
另外,考虑到游戏应用中包含多种类型的数据,因此,为了满足每种类型的数据的业务需求,分别针对不同类型的数据配置不同的传输方式。相应的,在响应于通过可靠传输协议发送的数据传输指令之前,进一步执行以下操作:获取待传输数据,确定待传输数据的数据类型;在待传输数据的数据类型为控制数据类型的情况下,通过可靠传输协议生成数据传输指令;在待传输数据的数据类型为音视频数据类型的情况下,通过与实时通信协议相对应的音视频传输通道传输待传输数据。在上述方式中,与实时通信协议相对应的传输通道至少有两条,分别为音视频传输通道和数据传输通道。其中,音视频传输通道用于传输游戏中包含的音视频数据,如游戏的界面数据等。数据传输通道用于在网络状态不佳的情况下传输游戏中的控制数据,如用户触发的操控数据(游戏中的交互指令等)。由此可见,游戏中的控制数据通过两种方式传输,一种为基于KCP协议实现的UDP协议传输方式,另一种为基于KCP协议实现的实时通信协议对应的数据传输通道方式,根据网络状态灵活的在两种传输方式之间切换,能够动态适配各种网络状态,提升控制数据的传输效率。
在一种可选的实现方式中,将目标数据通过与预设通信协议相对应的预设传输通道进行传输之前,进一步执行以下操作:获取预设传输通道的通道配置参数。其中,通道配置参数用于设置传输通道的传输方式。例如,通道配置参数中包含重传次数参数,可以更新通道配置参数中包含的重传次数参数的参数值,以使重传次数参数的参数值小于预设值;其中,重传次数参数用于限定预设传输通道在数据传输失败的情况下的重传次数。具体的,可以将重传次数参数的参数值更新为0,以使预设传输通道不对传输失败的数据进行重传,从而大幅提升预设传输通道的传输速度。相应的,通过可靠传输协议实现数据重传逻辑,以保证数据传输的可靠性。由此可见,该方式能够兼顾传输速度和可靠性。
又如,通道配置参数中包含优先级参数,可以更新通道配置参数中包含的优先级参数的参数值,以提升数据传输通道相对于音视频传输通道的传输优先级,以便确保游戏中的控制数据的快速传输。由于实时通信协议对应于至少两条传输通道,分别为数据传输通道以及音视频传输通道,而两条通道之间可能存在资源抢占的问题,通常情况下,音视频传输通道的传输优先级高于数据传输通道。然而,在本申请中,考虑到游戏中的操控数据的实时性要求较高,因此,通过提升数据传输通道相对于音视频传输通道的传输优先级的方式,能够大幅提升操控数据的传输效率,从而满足游戏的实时操控需求。
图2示出了本公开又一个实施例提供的一种数据传输方法的流程图。如图2所示,该方法适用于数据接收端,具体包括:
步骤S210:接收来自数据发送端的目标数据。
步骤S220:根据目标数据的传输通道,确定目标数据的传输通道标识,以基于传输通道标识确定与目标数据相对应的响应数据的传输方式;其中,目标数据通过图1所示的实施例中的方法发送。
其中,目标数据的传输通道标识用于指示目标数据的传输方式,具体包括基于非可靠传输协议的传输方式,以及基于与预设通信协议相对应的预设传输通道的传输方式。通过记录传输通道标识,能够确保响应数据通过相同的传输通道返回,从而适配当前网络状态。
另外,本申请又一实施例还提供了一种数据传输方法,该方法包括以下步骤:
步骤一、数据发送端响应于通过可靠传输协议发送的数据传输指令,获取与数据传输指令相对应的目标数据,并确定当前网络状态;在当前网络状态为第一状态的情况下,将目标数据通过非可靠传输协议进行传输;在当前网络状态为第二状态的情况下,将目标数据通过与预设通信协议相对应的预设传输通道进行传输;其中,可靠传输协议用于对传输失败的数据进行重传。
步骤二、数据接收端接收来自数据发送端的目标数据;根据目标数据的传输通道,确定目标数据的传输通道标识,以基于传输通道标识确定与目标数据相对应的响应数据的传输方式;其中,目标数据通过图1所示的方法发送。
为了便于理解,下面以一个示例为例,介绍上述实施例的实现方式。本示例主要应用于云游戏领域,云游戏是一种游戏运行和渲染在远程服务器上,用户通过网络实时接收视频流并发送控制信号的游戏模式。云游戏的优势在于降低了用户设备的性能要求,使采用性能较低的设备的用户也能获得高质量的游戏体验。然而,正是由于云游戏将游戏的运行过程和渲染过程部署在远程服务器上,因此,云游戏对网络延迟和带宽的要求非常高,以此确保良好的游戏体验。
下面先针对本示例中涉及的部分概念进行解释说明:
时延(Delay):时延是指在网络通信中,数据从发送端到达接收端所需的时间。时延包括传播时延(数据在信道中传播的时间)、处理时延(网络设备处理数据包的时间)、排队时延(数据包在网络设备中等待传输的时间)和传输时延(数据包在发送端和接收端之间进行实际传输所需的时间)。较低的时延有助于实现高质量的实时通信和在线游戏体验。时延通常受到网络信号强度、传输距离、设备性能等因素的影响。
游戏控制数据(Game Control Data):游戏控制数据是在网络游戏中,用于传输与用户的控制方式相关的数据,例如,游戏控制数据可以包括:用户的操作指令、控制指令以及游戏状态信息等数据。游戏控制数据也可以称作游戏操控数据,需要实时、准确地传输,以确保游戏同步和玩家之间的互动。游戏控制数据的传输性能直接影响到游戏体验的质量。
KCP协议:快速可靠传输协议,是一种面向无连接的可靠传输协议。KCP协议通过优化重传和流量控制算法实现了比传统TCP更高效的数据传输,尤其适用于实时通信和游戏等对延迟敏感的场景。
RTC:实时通信(Real-Time Communication)指在网络中实时传输语音、视频和数据的通信技术。RTC技术需要低延迟、高可靠性的网络环境,常用于在线会议、视频聊天、实时在线游戏等场景。例如,WebRTC(Web Real-Time Communications)是一项实时通讯技术,其允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和/或音频流或者其他任意数据的传输。
数据通道(Data Channel):数据通道是一种在WebRTC连接中传输任意数据类型的双向通信通道。Data Channel可以实现实时的点对点数据传输,常用于实时通信、文件共享和多人协作编辑等应用。
重传(Retransmission):重传是指在网络通信中,当发送方发现数据包未成功到达接收方时,重新发送该数据包的过程。重传机制是许多传输协议(如TCP和KCP)保证数据可靠传输的关键组成部分。然而,过多的重传可能导致网络拥塞和延迟增加,从而影响通信质量。KCP协议通过自定义的重传机制提升了数据传输效率,能够兼顾传输的可靠性和实时性。
随着互联网技术的高速发展和普及,云游戏作为一种新型的游戏模式逐渐引起广泛关注。云游戏将游戏的运行和渲染过程从本地设备转移到远程服务器,玩家通过网络实时接收服务器传输的视频流并发送操控数据。这种模式降低了玩家设备的性能要求,使得更多人能够轻松地享受到高品质的游戏体验。然而,云游戏对网络延迟和带宽的要求较高,以确保实时性和游戏体验。
由此可见,与传统的本地游戏不同,云游戏将游戏的运行和渲染过程从本地设备转移到远程服务器,因此,用户通过本地设备发送的游戏控制数据并不能直接在本地设备进行处理,而需要传输至远程服务器,由远程服务器根据接收到的游戏控制数据对游戏资源重新进行加载及渲染,进而得到根据游戏控制数据进行响应后的游戏画面,并将该响应后的游戏画面传输至本地设备。由此可见,为了确保游戏的实时响应,需要尽可能降低游戏控制数据的传输时延,以使用户获得与本地游戏类似的游戏体验。因此,如何有效降低云游戏中的游戏控制数据的传输时延成为亟待解决的技术难题。
实时通信协议WebRTC被广泛应用于处理实时语音、视频和数据通信。WebRTC的Data Channel是一种用于在浏览器之间传输任意数据类型的双向通信通道,可以实现实时的点对点数据传输。因此,在一种实现方式中,可以通过WebRTC的Data Channel传输游戏中的控制数据。但是,尽管Data Channel在实时通信和文件共享等应用中表现出了较好的性能,但其在云游戏场景下的时延较高,该方式可能导致游戏体验较差。由此可见,对于基于WebRTC的Data Channel方式而言,由于其在云游戏场景下的时延较高,可能导致游戏体验较差。具体原因在于:Data Channel虽然在实时通信和文件共享等应用中表现出较好的性能,但在云游戏场景中,对时延的要求更为严格,因此Data Channel的传输效果无法满足云游戏对实时性的需求。
为了解决上述问题,另一种实现方式是使用基于UDP的传输协议,如KCP协议。KCP协议是一种面向无连接的可靠传输层协议,通过优化重传和流量控制算法实现了比传统TCP更高效的数据传输。KCP协议在实时通信和在线游戏等对延迟敏感的场景中具有较好的性能。
图3示出了通过基于UDP实现的KCP协议传输数据的流程图,如图3所示,数据传输过程包括以下步骤:
步骤S301:发送端将待传输数据提供给基于KCP协议实现的数据发送接口。
具体的,可以调用基于KCP协议实现的数据发送接口(如ikcp_send接口函数),使待传输数据能够基于KCP协议进行传输。
步骤S302:通过KCP协议将待传输数据封装为数据包,并通过回调函数(如output函数)将数据包通过UDP协议发送。
步骤S303:通过基于UDP协议的数据发送接口将数据包发送至接收端。
其中,数据包通过UDP协议提供的数据发送接口(如UDP send接口)传输至接收端。数据包在传输过程中,可能出现丢包现象。在发生丢包的情况下,通过KCP协议实现自动重发功能。由此可见,虽然UDP协议本身是不可靠的,可能发生丢包,但是,KCP协议能够保证丢包数据的及时重传,从而确保可靠性。
步骤S304:接收端通过基于UDP协议的数据接收接口接收数据包。
例如,基于UDP协议的数据接收接口可以为UDP Recv接口函数。
步骤S305:基于UDP协议的数据接收接口调用回调函数(如ikcp_input函数)将数据包发送至基于KCP协议的数据接收接口处理。
步骤S306:基于KCP协议的数据接收接口(如ikcp_recv接口函数)接收并处理数据。
然而,基于UDP的KCP协议容易受到网络设备的限制,导致数据传输不稳定,甚至出现断流现象。由此可见,基于UDP的KCP协议容易受到网络状态的影响而使传输过程出现断流,从而导致游戏控制数据无法及时送达,进而使游戏出现卡顿、不受控等异常情况。例如,在网络状态不佳的情况下,UDP协议将限制网络设备的发包数量,从而导致待传输的游戏控制数据无法及时发出。
由此可见,在云游戏领域,如何实现低延迟、高可靠性的控制数据传输,对于提高游戏体验具有重要意义。本示例的目的在于分析相关技术中云游戏控制数据的传输缺点,并提供一种低时延、高可靠性的云游戏控制数据传输方法。
图4示出了该示例中的数据传输方法的流程示意图,如图4所示,该方法包括以下步骤:
步骤S401:获取待传输数据,确定待传输数据的数据类型。
其中,游戏中的待传输数据的数据类型包括:对应于游戏控制数据的控制数据类型,以及对应于游戏资源数据的音视频数据类型。
步骤S402:在待传输数据的数据类型为控制数据类型的情况下,通过可靠传输协议生成数据传输指令。
其中,在本示例中,若待传输数据的数据类型为控制数据类型,则通过KCP协议发送数据传输指令。若待传输数据的数据类型为音视频数据类型,则通过与实时通信协议(即WebRTC协议)相对应的音视频传输通道传输待传输数据。由于控制数据的传输优先级较高,因此,借助KCP协议能够提升传输效率。
步骤S403:响应于通过可靠传输协议发送的数据传输指令,获取与数据传输指令相对应的目标数据,并确定当前网络状态。
其中,与数据传输指令相对应的目标数据可以为通过KCP协议封装的待传输的数据包。具体实施时,发送端将待传输数据提供给基于KCP协议实现的数据发送接口。数据发送接口可以通过ikcp_send接口函数实现,使待传输数据能够基于KCP协议进行传输。可选的,ikcp_send接口函数通过数据传输指令调用output回调函数,以使output回调函数实现具体的数据传输操作。其中,output回调函数需要获取与数据传输指令相对应的目标数据,并确定当前网络状态,以便根据当前网络状态动态选择合适的数据传输方式。
步骤S404:在当前网络状态为第一状态的情况下,将目标数据通过非可靠传输协议进行传输。
其中,当前网络状态可以通过查询预设的网络状态标识快速确定,例如,网络状态标识可以为Use_udp标志位,若Use_udp标志位的值为true,则说明当前网络状态为第一状态;若Use_udp标志位的值为false,则说明当前网络状态为第二状态。
在初始状态下,Use_udp标志位的值默认为true。在本示例的执行过程中,定期监测数据发送端对应的网络状态,若监测到数据发送端的网络状态满足预设拥塞条件,则将网络状态标识从第一标识修改为对应于第二状态的第二标识。其中,预设拥塞条件可以为:用于缓存目标数据的预设缓存队列的缓存堆积数量大于预设堆积阈值。相应的,定期监测用于缓存目标数据的预设缓存队列(如ikcp_waitsnd队列),若预设缓存队列中堆积的等待发送的数据包的数量大于预设堆积阈值(如100个),则将网络状态标识(即Use_udp标志位)从第一标识(true)修改为对应于第二状态的第二标识(false)。并且,通过UDP协议传输目标数据。相应的,若预设缓存队列中堆积的等待发送的数据包的数量不大于预设堆积阈值(如100个),则将网络状态标识(即Use_udp标志位)从第二标识恢复为第一标识。
由此可见,在本示例中,output回调函数默认通过UDP协议传输来自ikcp_send接口函数的目标数据。
步骤S405:在当前网络状态为第二状态的情况下,将目标数据通过与WebRTC协议相对应的Data Channel进行传输。
在检测到当前网络状态切换为第二状态的情况下,output回调函数通过WebRTC协议对应的Data Channel传输来自ikcp_send接口函数的目标数据。
步骤S406:接收端接收来自数据发送端的目标数据。
其中,接收端可以通过ikcp_input回调函数接收来自数据发送端的目标数据,并由ikcp_input回调函数根据目标数据的传输通道确定目标数据的传输通道标识。无论目标数据的传输通道标识对应于UDP协议还是Data Channel,ikcp_input回调函数都需要将接收到的目标数据发送至基于KCP协议实现的数据接收接口(如ikcp_recv接口函数)进行处理。其中,基于KCP协议实现的数据接收接口ikcp_recv用于实现数据的校验以及重传等机制,以确保数据的可靠传输。具体实施时,应用层可以通过调用ikcp_recv接口获取到原始数据。
由此可见,无论采用UDP协议传输目标数据,还是采用Data Channel传输目标数据,都需要通过KCP协议对接收到的数据进行校验,并针对传输失败的数据进行重传。由于重传机制由KCP协议完成,因此,能够提升重传的效率。
其中,服务端在发送数据给客户端时,会判断最后一次收到客户端数据是通过UDP还是Data Channel,并使用相同的链路发送给客户端。另外,检测UDP链路是否恢复的流程为:定时发送具有特定特征的UDP包,例如,发送只有一个字节的UDP包,服务端收到后会直接返回该UDP包,如果客户端收到该UDP包,则表明UDP链路已恢复,将KCP发送数据包方式切换回UDP。
其中,为了提升Data Channel的传输速度,在本示例中,在将目标数据通过与预设通信协议相对应的预设传输通道进行传输之前,进一步执行以下预处理操作:获取DataChannel的通道配置参数;将Data Channel的通道配置参数中包含的重传次数参数的参数值修改为0,以使Data Channel本身不执行失败重传的操作,从而提升Data Channel的传输效率。并且,将重传机制由KCP协议实现,从而兼顾实时性和可靠性。另外,使通道配置参数中包含的优先级参数的参数值增大,从而提升Data Channel相对于音视频传输通道的传输优先级。由于Data Channel以及音视频传输通道都是基于WebRTC协议的,因此,通过提升Data Channel的传输优先级,能够避免资源抢占的问题。
由此可见,本示例至少具备以下改进点:
(1)将基于WebRTC协议的DataChannel修改为不可靠传输,即:将重传次数改为0,并且,提高DataChannel数据包相对于音视频数据包的优先级,从而提升基于WebRTC协议的DataChannel的传输效率。
(2)将DataChannel接收到的数据传给KCP,并在KCP中设置回调函数以便使用DataChannel发送KCP的数据包。
(3)在KcpClientImpl和KcpServerImpl的KcpDataOutput函数中,判断当前发包使用的链路是UDP还是DataChannel,如果是UDP且ikcp_waitsnd数量大于一定数量,则切换到DataChannel。即:能够由发送端动态切换传输方式。
(4)接收端(例如服务端)根据最后一次收到发送端(例如客户端)数据包时使用的传输方式确定KCP调用哪个通道输出响应数据。例如,若最后一次收到发送端(例如客户端)数据包时使用的传输方式为UDP,则调用UDP通道输出响应数据;若最后一次收到发送端(例如客户端)数据包时使用的传输方式为DataChannel,则调用DataChannel通道输出响应数据。
(5)切换到DataChannel传输方式后,使用UDP发送探测包,即:每隔一定时间发一个1字节的数据包作为探测包。服务端收到长度为1字节的UDP探测包后直接返回探测响应消息(如echo)至客户端。客户端收到探测响应消息则认为UDP通道已经恢复,从而将网络状态从第二状态切换为第一状态,以便切换回UDP传输方式。
总之,该方式通过增加基于KCP协议的DataChannel传输方式,能够在基于KCP协议的UDP受限的情况下,保证数据包的快速传输。
综上可知,本示例采用KCP协议作为游戏控制数据的传输层,相较于传统的TCP和UDP协议而言,KCP协议提供了更高的传输速度和更低的时延。而且,KCP具有快速重传、拥塞控制等机制,能够保证数据传输的可靠性和流畅性,从而提高游戏用户的体验。并且,在本示例中,有条件地使用UDP传输:在网络状况良好的情况下,使用UDP传输数据包。UDP协议具有传输速度快、时延低的优势,适用于实时性要求较高的游戏数据传输。通过这种方式,可以发挥出KCP低延迟、资源占用低的优势。另外,当由于网络原因导致UDP数据无法发送时,本示例会根据算法自动进行检测,并在检测到网络状况不佳的情况下,自动将KCP的数据包发送方式从UDP切换到WebRTC的Data Channel。与传统的TCP和UDP协议相比,WebRTC的DataChannel具有更强的穿透能力,能够在复杂网络环境下实现数据的传输。当检测到UDP链路恢复正常之后,则会切换回UDP。其中,在使用Data Channel作为KCP的传输层时,DataChannel配置为不可靠传输,但本示例利用KCP协议保证了数据传输的可靠性。在KCP协议的保障下,即使在网络状况不佳的情况下,本示例依然能够高效且可靠的实现游戏控制数据的传输。
本示例针对游戏控制数据传输时延高、在网络环境较差时出现断流、非可靠DataChannel传输游戏控制数据丢包等问题,提出了一种基于KCP协议的游戏控制数据传输方法。本示例的目的在于实现在各种网络状况下都能保证游戏控制数据的高效、可靠传输,以提高用户体验。通过采用本示例的方案,至少能够达到以下技术效果:
(1)解决使用KCP+UDP在网络环境较差的情况下出现断流的问题:本示例在网络状况良好时使用UDP协议进行数据包的收发,在网络环境较差时,自动切换到WebRTC的DataChannel进行数据发送。这种自适应切换传输方式,确保了在不同网络状况下,游戏控制数据都能得到有效传输,从而避免了使用KCP+UDP在网络环境较差情况下出现断流的问题。
(2)解决游戏操控数据传输时延较高的问题:本示例采用KCP协议作为游戏控制数据的传输层,相较于传统TCP协议,KCP协议提供了更高的传输速度和更低的时延。通过使用KCP协议,本示例实现了游戏控制数据传输的低时延,提高了用户在进行游戏操控时的实时性体验。
(3)解决非可靠Data Channel传输游戏操控数据丢包的问题:虽然WebRTC的DataChannel采用不可靠传输方式,但本发明通过结合KCP协议保证了数据的可靠性。在KCP协议的保障下,即使在网络状况不佳的情况下,本发明依然能够实现高效且可靠的游戏控制数据传输,避免了因非可靠Data Channel传输导致的数据丢包问题。
综上所述,本发明通过采用KCP协议、自适应切换传输方式以及结合不可靠传输和KCP协议等技术手段,成功解决了游戏控制数据传输面临的各种问题,实现了在各种网络环境下都能保证游戏控制数据的高效、可靠传输的效果。
图5示出了本公开又一实施例提供的一种数据传输装置的示意图,该数据传输装置适用于数据发送端,该装置具体包括:
获取模块51,适于响应于通过可靠传输协议发送的数据传输指令,获取与所述数据传输指令相对应的目标数据,并确定当前网络状态;
第一传输模块52,适于在所述当前网络状态为第一状态的情况下,将所述目标数据通过非可靠传输协议进行传输;
第二传输模块53,适于在所述当前网络状态为第二状态的情况下,将所述目标数据通过与预设通信协议相对应的预设传输通道进行传输;
其中,所述可靠传输协议用于对传输失败的数据进行重传。
在一种可选的实现方式中,所述获取模块具体适于:
获取与所述数据传输指令相对应的目标数据,确定用于缓存所述目标数据的预设缓存队列的缓存堆积数量,并根据所述缓存堆积数量确定当前网络状态;
其中,所述第二状态对应的缓存堆积数量大于所述第一状态对应的缓存堆积数量。
在一种可选的实现方式中,所述获取模块具体适于:
若所述缓存堆积数量大于预设堆积阈值,确定当前网络状态为第二状态;
若所述缓存堆积数量不大于预设堆积阈值,确定当前网络状态为第一状态。
在一种可选的实现方式中,所述装置还包括:
监测模块,适于定期监测所述数据发送端对应的网络状态;在网络状态标识为对应于第一状态的第一标识的情况下,若监测到所述数据发送端的网络状态满足预设拥塞条件,将网络状态标识从所述第一标识修改为对应于第二状态的第二标识;在所述网络状态标识为对应于第二状态的第二标识的情况下,若监测到所述数据发送端的网络状态满足预设非拥塞条件,将网络状态标识从所述第二标识修改为所述第一标识;并且,所述获取模块具体适于:根据所述网络状态标识确定当前网络状态。
在一种可选的实现方式中,在所述网络状态标识为对应于第二状态的第二标识的情况下,所述监测模块具体适于:
在所述网络状态标识为对应于第二状态的第二标识的情况下,每隔预设时间间隔发送一次探测数据包,在接收到与所述探测数据包相对应的响应数据包的情况下,确定所述数据发送端的网络状态满足预设非拥塞条件,将网络状态标识从所述第二标识修改为所述第一标识。
在一种可选的实现方式中,所述装置应用于游戏应用;所述可靠传输协议包括:KCP传输协议;所述非可靠传输协议包括:UDP传输协议;所述与预设通信协议相对应的预设传输通道包括:与实时通信协议相对应的数据传输通道。
在一种可选的实现方式中,所述获取模块还适于:
获取待传输数据,确定所述待传输数据的数据类型;
在所述待传输数据的数据类型为控制数据类型的情况下,通过所述可靠传输协议生成所述数据传输指令;
在所述待传输数据的数据类型为音视频数据类型的情况下,通过与所述实时通信协议相对应的音视频传输通道传输所述待传输数据。
在一种可选的实现方式中,所述装置还包括:
配置模块,适于获取所述预设传输通道的通道配置参数;更新所述通道配置参数中包含的重传次数参数的参数值,以使所述重传次数参数的参数值小于预设值;其中,所述重传次数参数用于限定所述预设传输通道在数据传输失败的情况下的重传次数;和/或,更新所述通道配置参数中包含的优先级参数的参数值,以提升所述预设传输通道相对于所述音视频传输通道的传输优先级。
图6示出了本公开又一实施例提供的一种数据传输装置的示意图,该数据传输装置适用于数据接收端,所述装置包括:
接收模块61,适于接收来自数据发送端的目标数据;
确定模块62,适于根据所述目标数据的传输通道,确定所述目标数据的传输通道标识,以基于所述传输通道标识确定与所述目标数据相对应的响应数据的传输方式;
其中,所述目标数据通过上述的数据传输方法发送。
另外,本申请又一实施例还提供了一种数据传输系统,该系统包括:上述的数据发送端以及数据接收端。
图7示出了根据本公开又一实施例的一种电子设备的结构示意图,本公开具体实施例并不对电子设备的具体实现做限定。
如图7所示,该电子设备可以包括:处理器(processor)502、通信接口(Communications Interface)506、存储器(memory)504、以及通信总线508。
其中:
处理器502、通信接口506、以及存储器504通过通信总线508完成相互间的通信。
通信接口506,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器502,用于执行程序510,具体可以执行上述视频图像的检测方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本公开实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU。也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器504,用于存放程序510。存储器504可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行上述视频图像的检测方法实施例中对应的各个操作。
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本公开也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本公开的内容,并且上面对特定语言所做的描述是为了披露本公开的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个公开方面中的一个或多个,在上面对本公开的示例性实施例的描述中,本公开的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开要求比在每个权利要求中所明确记载的特征更多的特征。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本公开的范围之内并且形成不同的实施例。例如,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开实施例的装置中的一些或者全部部件的一些或者全部功能。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本公开进行说明而不是对本公开进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (16)
1.一种数据传输方法,适用于数据发送端,包括:
响应于通过可靠传输协议发送的数据传输指令,获取与所述数据传输指令相对应的目标数据,并确定当前网络状态;
在所述当前网络状态为第一状态的情况下,将所述目标数据通过非可靠传输协议进行传输;
在所述当前网络状态为第二状态的情况下,将所述目标数据通过与预设通信协议相对应的预设传输通道进行传输;
其中,所述可靠传输协议用于对传输失败的数据进行重传。
2.根据权利要求1所述的方法,其中,所述获取与所述数据传输指令相对应的目标数据,并确定当前网络状态包括:
获取与所述数据传输指令相对应的目标数据,确定用于缓存所述目标数据的预设缓存队列的缓存堆积数量,并根据所述缓存堆积数量确定当前网络状态;
其中,所述第二状态对应的缓存堆积数量大于所述第一状态对应的缓存堆积数量。
3.根据权利要求2所述的方法,其中,所述根据所述缓存堆积数量确定当前网络状态包括:
若所述缓存堆积数量大于预设堆积阈值,确定当前网络状态为第二状态;
若所述缓存堆积数量不大于预设堆积阈值,确定当前网络状态为第一状态。
4.根据权利要求1-3任一所述的方法,其中,所述响应于通过可靠传输协议发送的数据传输指令,获取与所述数据传输指令相对应的目标数据之前,还包括:
定期监测所述数据发送端对应的网络状态;
在网络状态标识为对应于第一状态的第一标识的情况下,若监测到所述数据发送端的网络状态满足预设拥塞条件,将网络状态标识从所述第一标识修改为对应于第二状态的第二标识;
在所述网络状态标识为对应于第二状态的第二标识的情况下,若监测到所述数据发送端的网络状态满足预设非拥塞条件,将网络状态标识从所述第二标识修改为所述第一标识;
并且,所述确定当前网络状态包括:根据所述网络状态标识确定当前网络状态。
5.根据权利要求4所述的方法,其中,在所述网络状态标识为对应于第二状态的第二标识的情况下,所述监测到所述数据发送端的网络状态满足预设非拥塞条件,将网络状态标识从所述第二标识修改为所述第一标识包括:
在所述网络状态标识为对应于第二状态的第二标识的情况下,每隔预设时间间隔发送一次探测数据包,在接收到与所述探测数据包相对应的响应数据包的情况下,确定所述数据发送端的网络状态满足预设非拥塞条件,将网络状态标识从所述第二标识修改为所述第一标识。
6.根据权利要求1-5任一所述的方法,其中,所述方法应用于游戏应用;所述可靠传输协议包括:KCP传输协议;所述非可靠传输协议包括:UDP传输协议;所述与预设通信协议相对应的预设传输通道包括:与实时通信协议相对应的数据传输通道。
7.根据权利要求6所述的方法,其中,所述响应于通过可靠传输协议发送的数据传输指令之前,还包括:
获取待传输数据,确定所述待传输数据的数据类型;
在所述待传输数据的数据类型为控制数据类型的情况下,通过所述可靠传输协议生成所述数据传输指令;
在所述待传输数据的数据类型为音视频数据类型的情况下,通过与所述实时通信协议相对应的音视频传输通道传输所述待传输数据。
8.根据权利要求7所述的方法,其中,所述将所述目标数据通过与预设通信协议相对应的预设传输通道进行传输之前,还包括:
获取所述预设传输通道的通道配置参数;
更新所述通道配置参数中包含的重传次数参数的参数值,以使所述重传次数参数的参数值小于预设值;其中,所述重传次数参数用于限定所述预设传输通道在数据传输失败的情况下的重传次数;和/或,
更新所述通道配置参数中包含的优先级参数的参数值,以提升所述预设传输通道相对于所述音视频传输通道的传输优先级。
9.根据权利要求1-8任一所述的方法,其中,所述响应于通过可靠传输协议发送的数据传输指令之后,还包括:
调用预设的回调函数,通过所述回调函数执行所述获取与所述数据传输指令相对应的目标数据的步骤及其后续步骤。
10.一种数据传输方法,适用于数据接收端,包括:
接收来自数据发送端的目标数据;
根据所述目标数据的传输通道,确定所述目标数据的传输通道标识,以基于所述传输通道标识确定与所述目标数据相对应的响应数据的传输方式;
其中,所述目标数据通过权利要求1-9任一所述的方法发送。
11.一种数据传输方法,所述方法包括:
数据发送端响应于通过可靠传输协议发送的数据传输指令,获取与所述数据传输指令相对应的目标数据,并确定当前网络状态;在所述当前网络状态为第一状态的情况下,将所述目标数据通过非可靠传输协议进行传输;在所述当前网络状态为第二状态的情况下,将所述目标数据通过与预设通信协议相对应的预设传输通道进行传输;其中,所述可靠传输协议用于对传输失败的数据进行重传;
数据接收端接收来自数据发送端的目标数据;根据所述目标数据的传输通道,确定所述目标数据的传输通道标识,以基于所述传输通道标识确定与所述目标数据相对应的响应数据的传输方式;其中,所述目标数据通过权利要求1-9任一所述的方法发送。
12.一种数据传输装置,适用于数据发送端,所述装置包括:
获取模块,适于响应于通过可靠传输协议发送的数据传输指令,获取与所述数据传输指令相对应的目标数据,并确定当前网络状态;
第一传输模块,适于在所述当前网络状态为第一状态的情况下,将所述目标数据通过非可靠传输协议进行传输;
第二传输模块,适于在所述当前网络状态为第二状态的情况下,将所述目标数据通过与预设通信协议相对应的预设传输通道进行传输;
其中,所述可靠传输协议用于对传输失败的数据进行重传。
13.一种数据传输装置,适用于数据接收端,包括:
接收模块,适于接收来自数据发送端的目标数据;
确定模块,适于根据所述目标数据的传输通道,确定所述目标数据的传输通道标识,以基于所述传输通道标识确定与所述目标数据相对应的响应数据的传输方式;
其中,所述目标数据通过权利要求1-9任一所述的方法发送。
14.一种数据传输系统,所述系统包括:权利要求12所述的数据发送端以及权利要求13所述的数据接收端。
15.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-11中任一项所述的数据传输方法。
16.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-11中任一项所述的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311509996.4A CN117560115A (zh) | 2023-11-14 | 2023-11-14 | 数据传输方法、装置、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311509996.4A CN117560115A (zh) | 2023-11-14 | 2023-11-14 | 数据传输方法、装置、系统、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117560115A true CN117560115A (zh) | 2024-02-13 |
Family
ID=89821366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311509996.4A Pending CN117560115A (zh) | 2023-11-14 | 2023-11-14 | 数据传输方法、装置、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117560115A (zh) |
-
2023
- 2023-11-14 CN CN202311509996.4A patent/CN117560115A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11641387B2 (en) | Timely delivery of real-time media problem when TCP must be used | |
US20230083441A1 (en) | Managing subpacket transmission and reception for advanced interactive services | |
EP3547580A1 (en) | Data sending method and apparatus, and data receiving method and apparatus | |
CN107819833B (zh) | 一种接入直播连麦的方法及装置 | |
EP2661029B1 (en) | Avoiding Delayed Data | |
CN106612284B (zh) | 一种流数据的传输方法和装置 | |
WO2018113373A1 (zh) | 一种数据传输方法及装置 | |
EP1395014B1 (en) | A method of transmitting data streams with data segments of variable length | |
CN114584833B (zh) | 音视频的处理方法、装置及存储介质 | |
JPWO2012066824A1 (ja) | 通信装置および通信システム | |
US20120047230A1 (en) | Client-initiated management controls for streaming applications | |
US11212368B2 (en) | Fire-and-forget offload mechanism for network-based services | |
JP2007028623A (ja) | ネットワークストリームベースの伝送速度を加速するためにber/perを調整するためのシステムおよび方法 | |
US11924255B2 (en) | Data transmission method and apparatus, server, storage medium, and program product | |
WO2017097201A1 (zh) | 一种数据传输方法、发送装置及接收装置 | |
CN113301375B (zh) | 一种数据发送方法及装置 | |
CN110830460A (zh) | 一种连接建立方法、装置、电子设备及存储介质 | |
CN110602568B (zh) | 一种基于rtp的视频流传输丢包重传方法、设备及存储设备 | |
JPWO2010041469A1 (ja) | コンテンツ配信システム、コンテンツ配信方法およびコンピュータプログラム | |
CN115766605A (zh) | 网络拥塞控制方法、装置及系统 | |
CN111917525B (zh) | 一种数据传输方法、装置、设备和可读存储介质 | |
CN117560115A (zh) | 数据传输方法、装置、系统、电子设备及存储介质 | |
CN113726817B (zh) | 一种流媒体数据的传输方法、装置及介质 | |
CN105611424A (zh) | 基于rudp的音视频可靠传输qos方法、系统 | |
CN114979793A (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 |