This commit is contained in:
skywind3000 2014-12-29 00:44:43 +08:00
commit a6a8a790f6

View File

@ -1,4 +1,4 @@
kcp KCP - A Fast and Reliable ARQ Protocol
=== ===
# 简介 # 简介
@ -91,7 +91,7 @@ ikcp_update(kcp, millisec);
4. 输入一个下层数据包: 4. 输入一个下层数据包:
``` ```cpp
// 收到一个下层数据包比如UDP包时需要调用 // 收到一个下层数据包比如UDP包时需要调用
ikcp_input(kcp, received_udp_packet, received_udp_size); ikcp_input(kcp, received_udp_packet, received_udp_size);
``` ```
@ -135,7 +135,7 @@ ikcp_input(kcp, received_udp_packet, received_udp_size);
不管是 TCP还是 KCP计算 RTO时都有最小 RTO的限制即便计算出来RTO为40ms 不管是 TCP还是 KCP计算 RTO时都有最小 RTO的限制即便计算出来RTO为40ms
于默认的 RTO是100ms协议只有在100ms后才能检测到丢包快速模式下为30ms 于默认的 RTO是100ms协议只有在100ms后才能检测到丢包快速模式下为30ms
以手动更改该值: 以手动更改该值:
``` ```cpp
kcp->rx_minrto = 10; kcp->rx_minrto = 10;
``` ```
@ -144,7 +144,7 @@ ikcp_input(kcp, received_udp_packet, received_udp_size);
默认KCP协议使用 malloc/free进行内存分配释放如果应用层接管了内存分配可以用 默认KCP协议使用 malloc/free进行内存分配释放如果应用层接管了内存分配可以用
ikcp_allocator来设置新的内存分配器注意要在一开始设置 ikcp_allocator来设置新的内存分配器注意要在一开始设置
``` ```cpp
ikcp_allocator(my_new_malloc, my_new_free); ikcp_allocator(my_new_malloc, my_new_free);
``` ```
@ -158,7 +158,7 @@ kcp以为对方重发了这样会产生更多的ack占用额外带宽。
比如下层协议使用最简单的冗余包:单个数据包除了自己外,还会重复存储一次上一个 比如下层协议使用最简单的冗余包:单个数据包除了自己外,还会重复存储一次上一个
数据包,以及上上一个数据包的内容: 数据包,以及上上一个数据包的内容:
``` ```cpp
Fn = (Pn, Pn-1, Pn-2) Fn = (Pn, Pn-1, Pn-2)
P0 = (0, X, X) P0 = (0, X, X)