Updated EN_Home (markdown)

winlin 2017-02-20 10:45:07 +08:00
parent 01c09c2914
commit 352a2ef961

@ -1,9 +1,8 @@
# Introduction
KCP is a fast reliable transport protocol, which use FEC/ARQ(about 10%-20% bandwidth cost) to decrease the latency(about 30%-40% off), and in the best situation the latency is 1/3 of TCP. As KCP only defined the application-level APIs, the under-layer transport of KCP is not limited, user can choose any protocol preferred; that is, user must integrate KCP to the specific system, to define or choose the under-layer protocol, for instance, UDP or private protocol over UDP, feed data to KCP by callback, and setup the time-clock of KCP. There is no syscalls in KCP, it's well defined library for almost all popular transport server or applications.
There are only two source files, the `ikcp.h` and `ikcp.c`, so it's very easy to use KCP by copying it to your project and adapter to your protocol stack. For example, whatever your application is a P2P system, or protocol over UDP(such as RTP, RTMFP, Webrtc, RTMP or HTTP-FLV, haha), a few lines(maybe < 10) of codes can integrate KCP to your system, to use the ARQ or FEC advantage.
KCP is a fast and reliable ARQ protocol, which can decrease the latency 30%-40%(2/3 in the best situation), by using FEC/ARQ which costs about 10%-20% bandwidth. As KCP consists of a series of application-level algorithms, the under-layer transport is not limited, so user must specify the concrete protocol such as UDP, or choose any protocol preferred; KCP provides API to set the callback to send packets, update the received bytes and update the wall clock. There is no `syscalls` in KCP, it's well defined library to integrated to any applications.
There are only two source files, the `ikcp.h` and `ikcp.c`, which can be easily integrated to your protocol stack. For example, if your application works without ARQ/FEC mechenism, such as a P2P system or RTMP/RTSP/HTTP server, KCP can help you to take advantage of ARQ or FEC by few lines(maybe < 10) of codes.
# Content