mirror of
https://github.com/skywind3000/kcp.git
synced 2024-12-26 23:20:10 +08:00
Merge remote-tracking branch 'remotes/origin/master'
This commit is contained in:
commit
700e2a8161
21
README.md
21
README.md
@ -213,15 +213,6 @@ vcpkg中的kcp库由Microsoft团队成员和社区贡献者保持最新状态。
|
|||||||
|
|
||||||
- [Kcp a new low latency secure network stack](https://improbable.io/blog/kcp-a-new-low-latency-secure-network-stack)
|
- [Kcp a new low latency secure network stack](https://improbable.io/blog/kcp-a-new-low-latency-secure-network-stack)
|
||||||
|
|
||||||
# 关于作者
|
|
||||||
|
|
||||||
我叫林伟,笔名韦易笑,写程序很多年,喜欢研究解决程序中的一些瓶颈问题,早年喜欢游戏开发,照着《VGA编程》来做游戏图形,读 Michael Abrash 的《图形程序开发人员指南》做软渲染器,喜欢摆弄一些能够榨干 CPU 能够运行更快的代码,参加工作后,兴趣转移到服务端和网络相关的技术。
|
|
||||||
|
|
||||||
2007 年时做了几个传统游戏后开始研究快速动作游戏的同步问题,期间写过不少文章,算是国内比较早研究同步问题的人,然而发现不管怎么解决同步都需要在网络传输方面有所突破,后来离开游戏转行互联网后也发现不少领域有这方面的需求,于是开始花时间在网络传输这个领域上,尝试基于 UDP 实现一些保守的可靠协议,反照 BSD Lite 4.4 的代码实现一些类 TCP 协议,觉得比较有意思,又接着实现一些 P2P 和动态路由网相关的玩具。KCP 协议诞生于 2011 年,基本算是自己传输方面做的几个玩具中的一个。
|
|
||||||
|
|
||||||
Kcptun 的作者 xtaci 是我的大学同学,我俩都是学通信的,经常在一起研究如何进行传输优化。
|
|
||||||
|
|
||||||
喜欢本项目欢迎关注我的:[twitter](https://twitter.com/skywind3000) 和 [zhihu](https://www.zhihu.com/people/skywind3000)。
|
|
||||||
|
|
||||||
# 关于协议
|
# 关于协议
|
||||||
|
|
||||||
@ -234,6 +225,18 @@ Kcptun 的作者 xtaci 是我的大学同学,我俩都是学通信的,经常
|
|||||||
For more information, please see the [Success Stories](https://github.com/skywind3000/kcp/wiki/Success-Stories).
|
For more information, please see the [Success Stories](https://github.com/skywind3000/kcp/wiki/Success-Stories).
|
||||||
|
|
||||||
|
|
||||||
|
# 关于作者
|
||||||
|
|
||||||
|
作者:林伟 (skywind3000)
|
||||||
|
|
||||||
|
欢迎关注我的:[twitter](https://twitter.com/skywind3000) 和 [zhihu](https://www.zhihu.com/people/skywind3000)。
|
||||||
|
|
||||||
|
我在多年的开发经历中,一直都喜欢研究解决程序中的一些瓶颈问题,早年喜欢游戏开发,照着《VGA编程》来做游戏图形,读 Michael Abrash 的《图形程序开发人员指南》做软渲染器,爱好摆弄一些能够榨干 CPU 能够运行更快的代码,参加工作后,兴趣转移到服务端和网络相关的技术。
|
||||||
|
|
||||||
|
2007 年时做了几个传统游戏后开始研究快速动作游戏的同步问题,期间写过不少文章,算是国内比较早研究同步问题的人,然而发现不管怎么解决同步都需要在网络传输方面有所突破,后来离开游戏转行互联网后也发现不少领域有这方面的需求,于是开始花时间在网络传输这个领域上,尝试基于 UDP 实现一些保守的可靠协议,反照 BSD Lite 4.4 的代码实现一些类 TCP 协议,觉得比较有意思,又接着实现一些 P2P 和动态路由网相关的玩具。KCP 协议诞生于 2011 年,基本算是自己传输方面做的几个玩具中的一个。
|
||||||
|
|
||||||
|
Kcptun 的作者 xtaci 是我的大学同学,我俩都是学通信的,经常在一起研究如何进行传输优化。
|
||||||
|
|
||||||
# 欢迎捐赠
|
# 欢迎捐赠
|
||||||
|
|
||||||
![欢迎使用支付宝对该项目进行捐赠](images/donation.png)
|
![欢迎使用支付宝对该项目进行捐赠](images/donation.png)
|
||||||
|
BIN
benchmark.png
Normal file
BIN
benchmark.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 165 KiB |
4
ikcp.c
4
ikcp.c
@ -882,7 +882,11 @@ int ikcp_input(ikcpcb *kcp, const char *data, long size)
|
|||||||
if (kcp->incr < mss) kcp->incr = mss;
|
if (kcp->incr < mss) kcp->incr = mss;
|
||||||
kcp->incr += (mss * mss) / kcp->incr + (mss / 16);
|
kcp->incr += (mss * mss) / kcp->incr + (mss / 16);
|
||||||
if ((kcp->cwnd + 1) * mss <= kcp->incr) {
|
if ((kcp->cwnd + 1) * mss <= kcp->incr) {
|
||||||
|
#if 1
|
||||||
|
kcp->cwnd = (kcp->incr + mss - 1) / ((mss > 0)? mss : 1);
|
||||||
|
#else
|
||||||
kcp->cwnd++;
|
kcp->cwnd++;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (kcp->cwnd > kcp->rmt_wnd) {
|
if (kcp->cwnd > kcp->rmt_wnd) {
|
||||||
|
Loading…
Reference in New Issue
Block a user