CN115150387A - 一种云游戏中数据传输方法 - Google Patents
一种云游戏中数据传输方法 Download PDFInfo
- Publication number
- CN115150387A CN115150387A CN202210673246.XA CN202210673246A CN115150387A CN 115150387 A CN115150387 A CN 115150387A CN 202210673246 A CN202210673246 A CN 202210673246A CN 115150387 A CN115150387 A CN 115150387A
- Authority
- CN
- China
- Prior art keywords
- data
- packet
- sub
- index
- cloud game
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种云游戏中数据传输方法,涉及数据传输技术领域,解决了云游戏中数据分包及组包的效率较低的技术问题,其技术方案要点是对传输数据帧进行门限控制,选取云游戏服务端和云游戏终端中较小的MTU,减少数据传输过程中的丢帧问题;自定义数据包封装格式,具有更强的灵活性和扩展性;对于大数据包,采用分包和组包的方式,降低了丢包率,提高了数据传输的效率和可靠性;通过添加数据包索引,进一步保障了数据传输的可靠性,能够高效判断是否存在丢包,并迅速作出处理;通过自定义的变长报文体,数据字段由基本数据报文类型组成,有序的字段定义使解包组包性能效率明显提升。
Description
技术领域
本申请涉及数据传输技术领域,尤其涉及一种云游戏中数据传输方法。
背景技术
云游戏是指游戏基于云端运行,并将渲染完毕后的游戏画面压缩编码后,通过网络以音视频流方式传输到终端;终端侧通过对音视频进行解码播放,并通过将操控指令上传到云端形成游戏互动的过程。由此可见,云游戏传输过程中主要涉及音视频串流以及控制流。
网络数据传输的优劣会直接影响到云游戏的视听体验和交互体验。网络对于视觉与听觉体验的保障关键在于将视频和音频数据快速、稳定地传至终端,而音频数据量较小,因此网络对于视觉体验的影响会更明显。
传统的网络通讯协议很多都是基于固定长度的自定义报文或基于全字符串的数据报文,虽然有一定便利性优势,但是在数据流量控制、数据组包解包效率上存在明显的不足。
发明内容
本申请提供了一种云游戏中数据传输方法,其技术目的是提高云游戏中数据分包及组包的效率。
本申请的上述技术目的是通过以下技术方案得以实现的:
一种云游戏中数据传输方法,包括:
S1:确定最大数据发送门限MTT;
S2:根据采集的音视频数据判断该数据是否超过MTT,若未超过则该数据为整包数据,且其分包索引号为0,然后转至步骤S4;若超过则对该数据进行分包,转至步骤S3;
S3:计算分包总数N,根据分包总数N将该数据拆分成N个子包数据,则分包索引号分别为N,N-1,…,1,转至步骤S5;
S4:对整包数据进行封装,将封装后的整包数据发送至云游戏终端,转至步骤S6;
S5:对各个子包数据进行封装,根据分包索引号按照顺序向云游戏终端发送封装后的N个子包数据,转至步骤S6;
S6:云游戏终端接收到整包数据或封装后的子包数据进行组包,最终得到完整的数据。
进一步地,所述步骤S1包括:将云游戏服务端和云游戏终端的最大发送门限MTU进行比较,选择其中较小的最大发送门限MTU作为最大数据发送门限MTT。
进一步地,所述步骤S6包括:
S61:云游戏终端接收到封装后的数据后,对数据报文类型进行判断以获取数据报文类型;
S62:根据所述数据报文索引判断是否存在丢包,若存在则通知云游戏服务端,若不存在则根据分包索引号判断该数据是否分包;
S63:若不是分包,则直接转至步骤S64;若为分包则持续接收,直至接收到分包索引号从N到1的全部子包数据,将全部子包数据组合成一个完成的数据包;
S64:将数据包存入接收FIFO队列。
进一步地,封装的格式包括数据报文类型、数据报文索引、数据长度、分包索引号、显示时间戳和解码时间戳,所述数据报文索引为循环索引。
进一步地,所述数据报文索引号从0开始依次递增至15进行循环。
本申请的有益效果在于:对传输数据帧进行门限控制,选取云游戏服务端和云游戏终端中较小的MTU,减少数据传输过程中的丢帧问题;自定义数据包封装格式,具有更强的灵活性和扩展性;对于大数据包,采用分包和组包的方式,降低了丢包率,提高了数据传输的效率和可靠性;通过添加数据包索引,进一步保障了数据传输的可靠性,能够高效判断是否存在丢包,并迅速作出处理;通过自定义的变长报文体,数据字段由基本数据报文类型组成,有序的字段定义使解包组包性能效率明显提升。
附图说明
图1为本申请数据分包的流程图;
图2为本申请数据组包的流程图。
具体实施方式
下面将结合附图对本申请技术方案进行详细说明。
本申请所述的云游戏中数据传输方法包括:
S1:确定最大数据发送门限MTT。
具体地,云游戏服务端和云游戏终端比较各自的最大发送门限MTU,选择其中较小的最大发送门限MTU作为最大数据发送门限MTT。对于同一个传输通道,一旦发送方的MTU大于接收方的MTU,会造成接收方的丢帧问题,本申请利用最大传送单元(MTU,MaximumTransmission Unit)对所传输数据帧进行门限控制,取Min(MTUserver,MTUclient),即为最大发送门限(MTT,Maximum Transmission Threshold)。
S2:根据采集的音视频数据判断该数据是否超过MTT,若未超过则该数据为整包数据,且其分包索引号为0,然后转至步骤S4;若超过则对该数据进行分包,转至步骤S3。
S3:计算分包总数N,根据分包总数N将该数据拆分成N个子包数据,则分包索引号分别为N,N-1,…,1,转至步骤S5。
S4:对整包数据进行封装,将封装后的整包数据发送至云游戏终端,转至步骤S6。
S5:对各个子包数据进行封装,根据分包索引号按照顺序向云游戏终端发送封装后的N个子包数据,转至步骤S6。
S6:云游戏终端接收到整包数据或封装后的子包数据进行组包,最终得到完整的数据。
分包的具体流程如图1所示,(1)比较云游戏服务端和云游戏终端的MTU,选择两者中较小的作为最大数据发送门限MTT;(2)云游戏服务端根据采集的音视频数据判断是否超过MTT,一般音频数据量较小,都是以整包的形式发送;(3)视频的数据量比较大,特别是I帧,对于超过MTT的数据,需要将一个数据包分解成若干个子包分别发送;其中packet_index代表子包的索引,设置时是从最大分包数N依次递减到1。若packet_index设置为0,则表示该数据包是一个完整的包。(4)每个数据包在发送前,都需要按照自定义的数据包格式进行封装。
自定义的数据包封装格式包括数据报文类型、数据报文索引、数据长度、分包索引号、显示时间戳和解码时间戳,所述数据报文索引为循环索引,具体封装格式如表1所示。
表1:自定义数据包格式
表1中,stream_type用于区分传输的是音频数据还是视频数据。stream_index为数据报文索引,从0开始依次递增至15,可用于接收端丢包机制的判断。packet_index表示分包索引,用于大数据包传输。
图2为组包的具体流程,所述步骤S6包括:
S61:云游戏终端接收到封装后的数据后,对数据报文类型进行判断以获取数据报文类型;
S62:根据所述数据报文索引判断是否存在丢包,若存在则通知云游戏服务端,若不存在则根据分包索引号判断该数据是否分包;
S63:若不是分包,则直接转至步骤S64;若为分包则持续接收,直至接收到分包索引号从N到1的全部子包数据,将全部子包数据组合成一个完成的数据包;
S64:将数据包存入接收FIFO队列。
具体地,云游戏终端首先根据stream_type判断数据包的类型,接收数据存储会指根据不同类型的数据包标识建立相对应的FIFO存储队列,音频和视频数据包的处理流程一致。为了高效地对数据丢包进行判断,自定义数据包中添加了stream_index字段。系统会将当前接收数据包的索引号,与前一个数据包的索引号进行比较,如果差值不是1或者-15(索引号从0-15循环),说明存在丢包。例如现在的索引号为10,前一个索引号为7,说明8和9丢包,这个时候会发出丢包通知。对于大数据包,会按照接收子包的packet_index进行排序、组包及存储,直到每个大数据包所有的子包收到之后,才会通知下一个模块对数据进行处理。
以上为本申请示范性实施例,本申请的保护范围由权利要求书及其等效物限定。
Claims (5)
1.一种云游戏中数据传输方法,其特征在于,包括:
S1:确定最大数据发送门限MTT;
S2:根据采集的音视频数据判断该数据是否超过MTT,若未超过则该数据为整包数据,且其分包索引号为0,然后转至步骤S4;若超过则对该数据进行分包,转至步骤S3;
S3:计算分包总数N,根据分包总数N将该数据拆分成N个子包数据,则分包索引号分别为N,N-1,…,1,转至步骤S5;
S4:对整包数据进行封装,将封装后的整包数据发送至云游戏终端,转至步骤S6;
S5:对各个子包数据进行封装,根据分包索引号按照顺序向云游戏终端发送封装后的N个子包数据,转至步骤S6;
S6:云游戏终端接收到整包数据或封装后的子包数据进行组包,最终得到完整的数据。
2.如权利要求1所述的数据传输方法,其特征在于,所述步骤S1包括:将云游戏服务端和云游戏终端的最大发送门限MTU进行比较,选择其中较小的最大发送门限MTU作为最大数据发送门限MTT。
3.如权利要求1所述的数据传输方法,其特征在于,所述步骤S6包括:
S61:云游戏终端接收到封装后的数据后,对数据报文类型进行判断以获取数据报文类型;
S62:根据所述数据报文索引判断是否存在丢包,若存在则通知云游戏服务端,若不存在则根据分包索引号判断该数据是否分包;
S63:若不是分包,则直接转至步骤S64;若为分包则持续接收,直至接收到分包索引号从N到1的全部子包数据,将全部子包数据组合成一个完成的数据包;
S64:将数据包存入接收FIFO队列。
4.如权利要求1所述的数据传输方法,其特征在于,封装的格式包括数据报文类型、数据报文索引、数据长度、分包索引号、显示时间戳和解码时间戳,所述数据报文索引为循环索引。
5.如权利要求1所述的数据传输方法,其特征在于,所述数据报文索引号从0开始依次递增至15进行循环。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210673246.XA CN115150387A (zh) | 2022-06-14 | 2022-06-14 | 一种云游戏中数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210673246.XA CN115150387A (zh) | 2022-06-14 | 2022-06-14 | 一种云游戏中数据传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115150387A true CN115150387A (zh) | 2022-10-04 |
Family
ID=83409109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210673246.XA Pending CN115150387A (zh) | 2022-06-14 | 2022-06-14 | 一种云游戏中数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115150387A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1905456A (zh) * | 2005-07-27 | 2007-01-31 | 华为技术有限公司 | 一种数据帧的传输处理方法 |
WO2009149671A1 (zh) * | 2008-06-13 | 2009-12-17 | 华为技术有限公司 | 视频数据的打包、编解码方法及装置及系统 |
CN102761391A (zh) * | 2012-06-29 | 2012-10-31 | 威海海特电子信息技术有限公司 | 一种油田物联网系统通信方法 |
CN107005986A (zh) * | 2015-07-27 | 2017-08-01 | 华为技术有限公司 | 数据包的传输方法和设备 |
CN112506447A (zh) * | 2021-02-01 | 2021-03-16 | 成都焱之阳科技有限公司 | 一种用于视频监控设备的数据无锁缓存方法和服务器 |
CN114040445A (zh) * | 2021-11-08 | 2022-02-11 | 聚好看科技股份有限公司 | 一种数据传输方法及装置 |
CN114360297A (zh) * | 2021-12-21 | 2022-04-15 | 芜湖通航产业技术研究院有限公司 | 一种低空空域通用航空器的数据传输方法、系统 |
-
2022
- 2022-06-14 CN CN202210673246.XA patent/CN115150387A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1905456A (zh) * | 2005-07-27 | 2007-01-31 | 华为技术有限公司 | 一种数据帧的传输处理方法 |
WO2009149671A1 (zh) * | 2008-06-13 | 2009-12-17 | 华为技术有限公司 | 视频数据的打包、编解码方法及装置及系统 |
CN102761391A (zh) * | 2012-06-29 | 2012-10-31 | 威海海特电子信息技术有限公司 | 一种油田物联网系统通信方法 |
CN107005986A (zh) * | 2015-07-27 | 2017-08-01 | 华为技术有限公司 | 数据包的传输方法和设备 |
CN112506447A (zh) * | 2021-02-01 | 2021-03-16 | 成都焱之阳科技有限公司 | 一种用于视频监控设备的数据无锁缓存方法和服务器 |
CN114040445A (zh) * | 2021-11-08 | 2022-02-11 | 聚好看科技股份有限公司 | 一种数据传输方法及装置 |
CN114360297A (zh) * | 2021-12-21 | 2022-04-15 | 芜湖通航产业技术研究院有限公司 | 一种低空空域通用航空器的数据传输方法、系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108667739B (zh) | 拥塞控制方法、装置及系统 | |
RU2369040C2 (ru) | Буферизация при потоковой передаче данных | |
US8363548B1 (en) | Method and system for packet discard precedence for video transport | |
CN110943933B (zh) | 一种实现数据传输的方法、装置和系统 | |
CN101552660B (zh) | 对流媒体数据进行重传、播放的方法、装置及通信系统 | |
WO2017161999A1 (zh) | 一种报文处理的方法及相关设备 | |
KR101857416B1 (ko) | 오버헤드를 최소화한 헤더를 가지는 패킷 기반의 미디어 데이터 전송 방법 | |
US20150110168A1 (en) | Video data transmission method and apparatus | |
CN110312147A (zh) | 业务数据传输的方法、系统与存储介质 | |
CN110224793B (zh) | 一种基于媒体内容的自适应fec方法 | |
CN110474721B (zh) | 视频数据传输方法、装置及计算机可读存储介质 | |
KR20130119885A (ko) | 네트워크 적응적인 계층적 비디오 전송을 위한 mmt 패킷의 전송 방법 및 장치 | |
CN106961625A (zh) | 一种频道切换方法及其装置 | |
CN113490055B (zh) | 数据处理方法和装置 | |
CN114979023A (zh) | 一种数据传输方法、系统、电子设备及存储介质 | |
CN113316028B (zh) | 投屏方法、投屏设备及存储介质 | |
CN112217733A (zh) | 一种报文处理方法及相关装置 | |
US20140112354A1 (en) | Method, apparatus, and system for processing streaming media data | |
CN113473106A (zh) | 图像传输方法、图像显示及处理设备、及图像传输系统 | |
EP2099193A1 (en) | Data transport container for transferring data in a high speed internet protocol network | |
CN109862400B (zh) | 一种流媒体传输方法、装置及其系统 | |
CN115150387A (zh) | 一种云游戏中数据传输方法 | |
CN111262792B (zh) | 报文转发方法、装置、网络设备及存储介质 | |
CN117544604A (zh) | 一种多无人机流媒体分流合流系统及方法 | |
CN111556076A (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 |