I made the English less confusing and fixed a few grammatical errors. It is by no means perfectly worded, but it is much better now.

InnovativeInventor 2018-12-12 10:53:32 -05:00
parent 1b84793c63
commit 92d94062a8

@ -1,15 +1,15 @@
# Introduction
KCP is a fast and reliable ARQ protocol, which decrease the latency about 30%-40%(2/3 in the best situation), by using ARQ which costs about 10%-20% bandwidth. As KCP consists of a series of application-level algorithms, the under-layer transport is not specified, so user must provide 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.
KCP is a fast and reliable ARQ protocol, which decreases the latency by roughly 30%-40% (66% best case), by using ARQ, which wastes about 10%-20% bandwidth. Because KCP only specifies a series of application-level algorithms, the user must provide the communications protocol (UDP, TCP, etc.). KCP also provides an API to set the callback to send packets, update the received bytes, and update the wall clock. There are no `syscalls` in KCP because it is just a library that can be used in any application.
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 ARQmechenism, such as a P2P system or RTMP/RTSP/HTTP server, KCP can help you to take advantage of ARQ by few lines(maybe < 10) of codes.
There are only two source files, the `ikcp.h` and `ikcp.c`, which can be easily integrated into your protocol stack. For example, if your application works without ARQ ([Automatic Repeat Query](https://en.wikipedia.org/wiki/Automatic_repeat_request)), such as a P2P system or RTMP/RTSP/HTTP server, KCP can help you take advantage of ARQ with only a few lines of code (maybe < 10).
# Content
* [Algorithms](EN_KCP-Feature)
* [Basic Usage](EN_KCP-Basic-Usage)
* [Bast Practice](EN_KCP-Best-Practice)
* [Integrate with TCP Server](EN_Cooperate-With-Tcp-Server)
* [Best Practice](EN_KCP-Best-Practice)
* [TCP Server Integration](EN_Cooperate-With-Tcp-Server)
* [Encryption](EN_Network-Encryption)
* [Application-level Congestion Control](EN_Flow-Control-for-Users)
* [Benchmark](EN_KCP-Benchmark)