使用KCP 加速游戏消息,让全球玩家流畅联网
定义
kcp协议是传输层的一个具有可靠性的传输层ARQ协议。
它的设计是为了解决在网络拥堵情况下tcp协议的网络速度慢的问题。
kcp力求在保证可靠性的情况下提高传输速度。
kcp协议的关注点主要在控制数据的可靠性和提高传输速度上面,因此kcp没有规定下层传输协议,一般用udp作为下层传输协议,kcp层协议的数据包在udp数据报文的基础上增加控制头。当用户数据很大,大于一个udp包能承担的范围时(大于mss),kcp会将用户数据分片存储在多个kcp包中。因此每个kcp包称为一个分片。
其实kcp是在应用层上进行了一次拆包解包的过程,你可以把他作为tcp基础上拆解包的逻辑使用,也可以作为udp基础上的拆解包使用。至于kcp的一些简单基础的概念,我这里就不赘述了,大家可以在github上看下skywind的readme文档,这里我只说下kcp的重传机制,拥塞窗口。
KCP重传机制
为了提供可靠性,kcp采用了重传机制。
为实现重传机制,kcp为每个分片分配一个唯一标识,接收方收到一个包后告知发送方接到的包的序号,发送方接到确认后再继续发送。而如果发送方在一定时间内(超时重传时间)没有接到确认,就说明数据包丢失了,发送方需要重传丢失的数据包,所以发送方会把待确认的数据缓存起来,方便重传。 停等的重传机制发送一个包后必须等待确认后再发下一个包,传输速度较慢,所以为了提高发送速度,发送方可以不必再每发送一个包后就进行等待确认,而是可以发送多个包出去,然后等待接收方一一确认。又由于接收方不可能同时处理无限多的数据,因此需要
使用KCP 加速游戏消息,让全球玩家流畅联网相关推荐
- 独立游戏如何俘获全球玩家 | Google Play 开发者中文播客节目
出海同学会本期简介 萌化人心的猫咪时常给人以疗愈,以 "猫" 为题材的游戏也不会缺席.一个由中国人主导的独立游戏团队开发的撸猫游戏 "猫小盒" 系列曾多次获得 ...
- 秦腔《花脸》首度加入游戏音乐盒,CSGO让全球玩家聆听“中国声音” 你想成为那个传颂者吗?CSGO开服搭建计划
秦腔<花脸>首度加入游戏音乐盒,CSGO让全球玩家聆听"中国声音" 你想成为那个传颂者吗?CSGO开服搭建计划 "八百里秦川秦声飞扬,三千万老陕齐吼秦腔.&q ...
- 程序员因压力太大,转行做游戏制作人,结果把全球玩家都逼疯了!
大家好,这里是正惊游戏,我是正惊小弟 2019年3月22日发售的<只狼>在游戏圈火了好久.一时间,各大直播平台房间封面被"死"字充斥.越来越多的玩家喜欢上这种高难度硬核 ...
- 游戏《反恐精英:全球攻势》和《军团要塞2》源代码遭泄露 玩家纷纷卸载
近日据外媒报道,两款热门游戏<反恐精英:全球攻势>和<军团要塞2>的源代码被泄露.这两种第一人称射击游戏都非常受用户欢迎,据统计全球有3亿玩家在玩CS:GO. 事件发生后,引发 ...
- 网龙2018年财报看点:教育业务全球开花+变现加速 游戏业务逆势增长
[TechWeb]近日,港股上市公司网龙(777.HK)发布了截至2018年12月31日的全年财报,2018年网龙收益达人民币(单位下同)50.38亿元,同比增长30.2%:经营溢利超预期达5.26亿 ...
- Chimaera:用区块链游戏思维将《玩家一号》的“绿洲”变为现实;网易有道将推语音助手及智能音箱
区块链资讯 1.Chimaera :用区块链游戏思维将<玩家一号>的"绿洲"变为现实 据外媒报道,一家名为 Chimaera 的平台正在通过区块链游戏的形式将目前热映的 ...
- 微软黑科技如何加速游戏开发,读这篇就够了
2022迈入尾声,游戏产业这场凛冽的寒风比想象中更为持久与刺骨. 一边是投入的缩减,一边是玩家攀升的要求."既要又要还要"成为游戏制作人的高频句型.在紧预算与精制作的矛盾面前,游戏 ...
- 捞月狗签约神策数据 数据赋能打造全球玩家生态圈
为致力于发挥数据价值,增强数据化营销能力,升级盈利变现模式,近日,捞月狗经充分选型评估,最终签约神策数据作为大数据工具合作方. 一直以来,捞月狗带着对游戏的热爱和对行业的敬畏之心与使命感,从成立之初便 ...
- 魔兽世界称全球玩家达1150万
[url]http://tech.sina.com.cn/i/2008-12-25/10192690112.shtml[/url] 新浪科技讯 北京时间12月25日消息,据国外媒体报道,暴雪娱乐日前宣 ...
最新文章
- 【计算机网络】物理层和数据链路层概述吐血总结(这知识它不进脑子啊~!)
- plsql 查询存储过程死锁语句_SQL2005查看死锁存储过程sp_who_lock
- java基础(十一) 枚举类型
- python中导入模块的方式_Python中几种导入模块的方式总结
- Windows SDK 非模态对话框的消息处理
- [转]Linux环境下段错误的产生原因及调试方法小结
- 【面向过程编程】零钱通项目
- 河北地质大学硕士专业介绍:计算机类
- C++ const修饰符的简单介绍
- 【Linux网络编程学习】使用socket实现简单服务器——多进程多线程版本
- 【转】[教程] CSS入门3:如何插入CSS样式
- 买彩票,也要了解一些数学知识
- Web完整渗透测试实例(windows)
- 如何运用模板之家做html,Flask框架如何使用HTML模板
- java 同步块(Java Synchronized Blocks)
- “飞扬小字典” -- 辅助记忆的小工具
- C++_深浅拷贝详解
- java 新词发现,Java新词发现算法码源之使用
- 〖Python 数据库开发实战 - Python与MySQL交互篇⑧〗- 项目实战 - 开发新闻管理系统(项目展示)
- “AI颜狗”来啦!第一眼看到照片,就能预测人们对你的第一印象