之前参考的大佬的测试方法 #202
自己测试了一下300ms,20%丢包的结果图形如下:
测试网络环境:
tc qdisc add dev lo root netem delay 150ms loss 10% // lo网卡来回会翻倍
统计工具用的微软的ehtr,收发包大小都是5kB
测试结果:
- 平均延迟tcp(452.850ms)比kcp(536.570ms)更低
- 99.99%包,TCP落在2520.657ms内,kcp落在1989.420ms内
我的问题是
- 平均延迟tcp更低这正常吗?
- 只要丢包设置20%,那么tcp在80%内的包都是很快的,而80%之后的包延迟瞬间提高,为什么测不出作者那种平滑的曲线呢?
4条答案
按热度按时间5sxhfpxr1#
这是大佬测试的图。
我的kcp参数是:
{ "streammode":true, "key": "PASSWORD", "crypt": "", "mode": "", "mtu": 1400, "sndwnd": 10240, "rcvwnd": 10240, "datashard": 0, "parityshard":0, "dscp": 46, "nocomp": true, "acknodelay": true, "nodelay": 1, "interval": 10, "resend": 2, "nc": 1, "sockbuf": 4096000, "tcp": false }
vlf7wbxs2#
8yoxcaq73#
@skywind3000 感谢回复
我用的是kcp-go
按照你说的规则。服务端收到即返回同样大小的包。
我用微软那个测试工具
ethr -c 127.0.0.1 -port 4433 -d 0 -t l -i 600 --debug -l 100 -p tcp
一共测试600个来回,包大小是100字节。
发现还是,在丢包的时候,tcp延迟陡增,不丢包,80%包都集中在300ms完成传输,我感觉这种现象是符合预期的。可是不知道大佬图中TCP(青色圆圈)测试为何是曲线变化的?
vaqhlq814#
青色圆圈很正常,tcp 在一些复杂的网络环境下表现不均匀,还有要看操作系统版本对应的 tcp 实现。
后续建议:
立马甩 quic 几条街。