定义

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 加速游戏消息,让全球玩家流畅联网相关推荐

  1. 独立游戏如何俘获全球玩家 | Google Play 开发者中文播客节目

    出海同学会本期简介 萌化人心的猫咪时常给人以疗愈,以 "猫" 为题材的游戏也不会缺席.一个由中国人主导的独立游戏团队开发的撸猫游戏 "猫小盒" 系列曾多次获得 ...

  2. 秦腔《花脸》首度加入游戏音乐盒,CSGO让全球玩家聆听“中国声音” 你想成为那个传颂者吗?CSGO开服搭建计划

    秦腔<花脸>首度加入游戏音乐盒,CSGO让全球玩家聆听"中国声音" 你想成为那个传颂者吗?CSGO开服搭建计划 "八百里秦川秦声飞扬,三千万老陕齐吼秦腔.&q ...

  3. 程序员因压力太大,转行做游戏制作人,结果把全球玩家都逼疯了!

    大家好,这里是正惊游戏,我是正惊小弟 2019年3月22日发售的<只狼>在游戏圈火了好久.一时间,各大直播平台房间封面被"死"字充斥.越来越多的玩家喜欢上这种高难度硬核 ...

  4. 游戏《反恐精英:全球攻势》和《军团要塞2》源代码遭泄露 玩家纷纷卸载

    近日据外媒报道,两款热门游戏<反恐精英:全球攻势>和<军团要塞2>的源代码被泄露.这两种第一人称射击游戏都非常受用户欢迎,据统计全球有3亿玩家在玩CS:GO. 事件发生后,引发 ...

  5. 网龙2018年财报看点:教育业务全球开花+变现加速 游戏业务逆势增长

    [TechWeb]近日,港股上市公司网龙(777.HK)发布了截至2018年12月31日的全年财报,2018年网龙收益达人民币(单位下同)50.38亿元,同比增长30.2%:经营溢利超预期达5.26亿 ...

  6. Chimaera:用区块链游戏思维将《玩家一号》的“绿洲”变为现实;网易有道将推语音助手及智能音箱

    区块链资讯 1.Chimaera :用区块链游戏思维将<玩家一号>的"绿洲"变为现实 据外媒报道,一家名为 Chimaera 的平台正在通过区块链游戏的形式将目前热映的 ...

  7. 微软黑科技如何加速游戏开发,读这篇就够了

    2022迈入尾声,游戏产业这场凛冽的寒风比想象中更为持久与刺骨. 一边是投入的缩减,一边是玩家攀升的要求."既要又要还要"成为游戏制作人的高频句型.在紧预算与精制作的矛盾面前,游戏 ...

  8. 捞月狗签约神策数据 数据赋能打造全球玩家生态圈

    为致力于发挥数据价值,增强数据化营销能力,升级盈利变现模式,近日,捞月狗经充分选型评估,最终签约神策数据作为大数据工具合作方. 一直以来,捞月狗带着对游戏的热爱和对行业的敬畏之心与使命感,从成立之初便 ...

  9. 魔兽世界称全球玩家达1150万

    [url]http://tech.sina.com.cn/i/2008-12-25/10192690112.shtml[/url] 新浪科技讯 北京时间12月25日消息,据国外媒体报道,暴雪娱乐日前宣 ...

最新文章

  1. 【计算机网络】物理层和数据链路层概述吐血总结(这知识它不进脑子啊~!)
  2. plsql 查询存储过程死锁语句_SQL2005查看死锁存储过程sp_who_lock
  3. java基础(十一) 枚举类型
  4. python中导入模块的方式_Python中几种导入模块的方式总结
  5. Windows SDK 非模态对话框的消息处理
  6. [转]Linux环境下段错误的产生原因及调试方法小结
  7. 【面向过程编程】零钱通项目
  8. 河北地质大学硕士专业介绍:计算机类
  9. C++ const修饰符的简单介绍
  10. 【Linux网络编程学习】使用socket实现简单服务器——多进程多线程版本
  11. 【转】[教程] CSS入门3:如何插入CSS样式
  12. 买彩票,也要了解一些数学知识
  13. Web完整渗透测试实例(windows)
  14. 如何运用模板之家做html,Flask框架如何使用HTML模板
  15. java 同步块(Java Synchronized Blocks)
  16. “飞扬小字典” -- 辅助记忆的小工具
  17. C++_深浅拷贝详解
  18. java 新词发现,Java新词发现算法码源之使用
  19. 〖Python 数据库开发实战 - Python与MySQL交互篇⑧〗- 项目实战 - 开发新闻管理系统(项目展示)
  20. “AI颜狗”来啦!第一眼看到照片,就能预测人们对你的第一印象

热门文章

  1. Es6常见面试题必看!
  2. oracle数据库常用操作
  3. iOS基础-高级进阶面试题
  4. 最简单Unity 连招入门--只有20行代码
  5. xxx-1.0-SNAPSHOT.jar中没有主清单属性的解决方法
  6. 【学生管理系统】班级管理
  7. 小米电视怎么样?五大标准最有发言权
  8. 关于mysql时间超过2038年时间戳查询数据问题
  9. 最近看到一篇文章拿来跟午饭们分享--养生之道补肾气
  10. mezzanine用户扩展/PUBLIC USER ACCOUNTS(一)