-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
手动参数设定探讨 #137
Comments
能否手动设定开或者关,增加一个统计一定时间内的丢包率来自动调整策略的功能。统计的时间长短,触发调整策略的丢包率,详细策略均可手动设置。这个有实现的可能行么? |
@dolphinpaopao 这就是Congestion Control,实现是可能的,但是会很复杂 |
@testcaoy7 实现很复杂那就不要了,可能会影响稳定性,想要的是简洁稳定高效。目前这些手动参数设置挺好的。满足不同需求。 |
stability is what we need most,the second is speed. |
策略1对于网页访问这种突发性请求,查询较为友好。 策略2较为中庸。 |
刚测试了一下,用策略2: -nodelay 1 -resend 0 -nc 1 -interval 40 的参数比fast2将近节约1/4的流量 |
说的很对,一切都是平衡 _响应速度, 传输带宽,高载荷比_ 三者是跷跷板。 比如响应速度,一个数据包发出后,判断对方是否接收到了,是等待一个RTT时间没有收到ACK就重发,还是说要再等等看。 真实的情况始终未知,-nodelay 1就是不多等了,结果ACK晚到了一点点,就多发包了; -nodelay 0就是已经等了RTT后,再等等看,那么如果再等了还等不到,这个时间就浪费了,响应时间就慢了,整体速度也拖慢了。 乐观主义还是悲观主义? 根据香农定理:
(1) 可以理解为,高丢包率==高噪音 策略3也可以理解为,我假定我的纠错包能全部把丢失的包还原出来,每5个包,2个纠错包, 小于 2/7的**_均匀丢包率**_下( <28%),必定能还原出来,完全不需要重传。 策略1可以理解为, 我非常悲观的判断包一旦超过RTT,大概率丢失了,通过一切手段尽快重新发送。 |
一组我的自用参数:
|
@xtaci 你好,请问一下使用环境是怎样的,服务端是在vps上么?服务器的延迟丢包和本地带宽如何? |
200Mbps 联通, 日本vultr, ping 136ms, UDP丢包30%左右 |
@xtaci ,另外再请教一下这样的环境下服务器的实际流量超出有效流量多少呢?kcptun的传输带宽能达到多少? |
200Mbps 联通 作者帝都啊 我天津联通100M 通过iperf测试vultr LA丢包率非常之低 只有0.043% |
@Tmily 那个是假的,流量上去了就开始丢包了。 |
@xtaci 那就是需要长时间测试? 我是设置成100M带宽测试60秒 要是设置成200M丢包就变成39%了 但是我家本身是100M的 最多能跑到120M |
从未断流 |
@xtaci 嗯 断流的问题我今晚回去再调调参数 我先试试120M 发600秒看看丢包率 |
@xtaci 刚刚试了试发600秒 丢包率还是很低 这回试试发9000秒 下班回家正好看结果 |
killall -SIGUSR1 client_xxxxxx server_xxxxx 才能看到SNMP |
额 我测试用的是ipref 没看KCP的信息~ 因为只是测丢包率嘛 这两个会有很大差别么 |
@xtaci 我也遇到过断流,主要发生在放映YouTube视频的时候,断流时网页浏览一切正常,就是视频流传不过来 |
@testcaoy7 我断流时是全部断了 去看console的话应该是有sessionxxxxxxxxx之类的报错 |
@testcaoy7 嗯 回家试试新参数 这回按照作者大大的调的都是联通 |
多看下我上面对**_香农定理**_的介绍,会加深认识。 |
@testcaoy7 请问3号策略流量消耗大概几倍啊? |
解释一下另一个问题: 回答:
选择在70+30的这个大区间整体丢包30%, 还是在 7+3的这个小区间整体丢包30%? 只有试试。 |
@xtaci 在不用kcptun的情况,无论测速还是下载,线路本身可以跑满下载带宽。差别是看油管时不使用kcptun没有使用kcptun畅快。 |
你可以把这个问题想成全国的高速公路收费站, 某些收费站很宽大,基本不堵塞,另外一些就堵几公里长。 你下载跑满带宽,只不过是根本就没有碰到收费站而已,还在市内。 @baggiogogo |
#218 这个mtu的issue很有意思 |
dataShard/parityShard的不同比值在丢包率为34.6% 下的还原率关系,可以看出,在parity越过了丢包率这个值后,数据还原率爆发性增长。 |
3/(5+3)已经超过链路丢包率,向前纠错量已经大于丢包损失率,理论上降低重传,此后爆发的fes_recovered对传输有实质改善吗? |
需要观察SNMP确保FECRecovered是否真的接近FECSegs, 如果是,一定会有质的飞跃。 你看到的ping丢包率,不一定是实际丢包率,观察SNMP是最准确的。 |
统计意义上,可以用(1- 接收端的InSeg / 发送端的OutSeg) 约等于生命周期的丢包率。 |
呃,我的客户端是在windows上,看来打印不出来。 |
@peakvision 请问iperf参数是多少,我也想知道 |
@geerda123 client: 我测试的时候client是windows版的。vps带宽是100mbit,基本上我认为调整上面的-l即可,但我的bin执行的时候经常报错,而且结果感觉不准。 |
不用锁端口吗,-p等。-V 绑定一个IPv6地址。好像没必要。有大神告诉你吗,我怕测试结果不是通过kcptun
2016-12-04 21:15 GMT+08:00 peakvision <[email protected]>:
… @geerda123 <https://github.com/geerda123>
server:
iperf3 -s -f M -V
client:
iperf3 -c -f M -V -R -u -t 10 -b 40M -l 800 -w 8192
我测试的时候client是windows版的。vps带宽是100mbit,基本上我认为调整上面的-l即可,
但我的bin执行的时候经常报错,而且结果感觉不准。
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#137 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/ARpMHEXrt3AS3n-xgMO0Y_DRS3-_9nHyks5rErzrgaJpZM4JnVaw>
.
|
应该去掉client端命令中的 |
@linhua55 测试是为了考察kcptun的理论速度,所以跟随kcptun测udp。 |
@peakvision |
@linhua55 你的客户端运行在什么平台上? |
@peakvision 现在是用: 小的FEC参数,如7/3,高谷会处于较低速度,因为就算连着几个包被还原,总体短时流量(7+7+...)也较小。而大的FEC参数 70/30,高谷会在较高的速度上,因为一旦有一个包 被还原,这个短时流量(70)是较大的。 |
@peakvision 只有在服务器带宽和自己的带宽相等的情况下(或使用工具如tc,来限制服务器的带宽),这里 |
@linhua55 因为加了iperf3加了-b去指定使用带宽,所以测不准的问题我也怀疑是iperf3的bug。 |
哪个参数是会影响小图片的接收的? 网页上的小图片都收不到....
测试丢包率为 10%左右 |
策略1: 通过超时重传+快速重传,响应速度优先(最大化响应时间):
-mode manual -nodelay 1 -resend 2 -nc 1 -interval 20
策略2: 仅仅通过超时重传, 带宽效率优先(有效载比优先)。
-mode manual -nodelay 1 -resend 0 -nc 1 -interval 40 或
-mode manual -nodelay 0 -resend 0 -nc 1 -interval 20
策略3: 尽可能通过FEC纠删,最大化传输速度(推荐):
-mode fast -datashard 5 -parityshard 5
The text was updated successfully, but these errors were encountered: