- 100% compatible with original skywind3000's C version.
- Pure golang implementation of KCP in a single file kcp.go.
- Instead of container.List, kcp-go made use of cache friendly slice based internal queue.
- Provides a basic session manager, compatible with net.Conn and net.Listener.
- Indepedent KCP code and session manager code, you can copy kcp.go to your project without session manager.
- Support FEC(Forward Error Correction)
- Support packet level encryption with AES
- UDP for packet delivery.
conv uint32
in session manager is a random number initiated by client.- KCP doesn't define control messages like SYN/ACK/FIN/RST in TCP, a real world example is to use some multiplexing protocol over session, such as yamux
型号名称: MacBook Pro
型号标识符: MacBookPro12,1
处理器名称: Intel Core i5
处理器速度: 2.7 GHz
处理器数目: 1
核总数: 2
L2 缓存(每个核): 256 KB
L3 缓存: 3 MB
内存: 8 GB
$ go test -run TestSpeed
new client 127.0.0.1:61165
total recv: 16777216
time for 16MB rtt with encryption 815.842872ms
PASS
ok github.com/xtaci/kcp-go 0.831s