-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
被Qos解决办法, #776
Comments
还有一种情况,我测udp打洞的时候,复现的, 本地 192.168.2.22:8889-->>---阿里云 47.221.22.22:80 udp发送数据,连续发送几个udp数据包,如果阿里云那边没有返回数据,那么本地怎么发数据,阿里云那边也收不到, 以上3点如果做到,基本就有本质的改变了。 |
这个参数只是实现了多并发连接, 但是解决断流问题需要实现 会话平滑转移,单位时间内,先建立新的隧道,然后把会话转移到新的隧道,然后释放之前的隧道, 运营商,不止国内,基本全球运营商的Qos都是针对单连接的限速,而不是根据某个ip限速。 |
这个其实没有任何意义,在运营商的设备中,不可能去深度解析你的数据包, Qos的条件非常简单, |
在互联网中qos除了特别的策略, 假设一个连接只用45s-120s左右, 不过这样还是悄悄的玩,不然出口会更堵了。 |
"autoexpire"不是干这个的? |
|
感觉假tcp模式还是很有必要的。 详情:宽带是电信,kcptun平常一直用来玩网游,流量非常小,最高速从来不超过1Mbit/s,不用于任何其他用途。今天突然就像被墙了一般udp疯狂丢包,日志里只有stream open、stream close。 |
autoexpire 如果能平滑转移就太棒了,上游isp超级奇怪的封掉了kcpraw(可能fake tcp的实现不够完善被QOS了),我转到udp2raw + kcptun,还是碰到了clone超级大的git项目时断流的现象。kcpraw的自动保活重连似乎要灵敏的多。 |
按照@f4nff老哥意思,设置autoexpire=60,如果在看视频,过了60秒后,假设没有预加载功能,是不是会出现卡顿(重新发起session加载视频)? |
首先肯定一下楼主所说的方法是有效果的,尤其是在应对楼主所描述QOS场景时。 但是有些观点太不准确,误导性比较强:
首先是Qos策略,除了楼主说的两种Qos策略,我能想到的其他的比较容易实现的Qos策略:
(至于运营商有没有用上面的策略,我没有证据。 不过我至少比较确定我遇到过3) 楼主说的方法对1~3就没什么作用。 关于
检测一个链接是tcp还是udp,只要看ip包头里一个字节就可以,不需要特别”深度“的检测。nat本来就要根据流量是tcp还是udp走不同的逻辑。区分流量是tcp还是udp,本来就应该是nat设备功能的一部分,并不需要什么额外工作。
最后,总结下。如果楼主所说的功能可以完美实现,确实可以增加一种应对Qos的选项。能不能实现就看有没有开发者有时间精力了。 |
不要激动。 我没否定你说的方法在一些Qos场景会有效果,也不是不鼓励你说的方法被实现出来。 只是说:
楼主分享自己的方法,是可贵的。 希望自己的方法被实现出来,这也没有问题。一些观点不准确,也没啥,毕竟人无完人。 但是没必要对自己的方法夸大其词,把别的方法贬得一文不值。 |
客户端启动1000个端口,服务器端启动1000个端口,随机选择一个,不就好了? |
实测--conn 60对多线程的提升异常猛烈!有没有办法让单线程tcp连接产生的UDP包支持走多个udp连接就香了。 |
我的VPN看1080P基本都是三万多Kbps,这是否意味着被限速了?如果是如何调整? |
原理如此,用什么工具能做到那些调整呢? |
HOW TO DO?
OG-C ***@***.***> 于2021年5月31日周一 上午9:58写道:
… 原理如此,用什么工具能做到那些调整呢?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#776 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ATPTWO52AWDCXDVVOQUNXP3TQLULDANCNFSM4LWSB5SQ>
.
|
楼主认为Qos限速只与ip和端口有关,但是我在测试中发现可能会存在以MAC地址锁速度的情况。 |
|
手机卡用数据流量会被QOS吗? |
我自己写了个单UDP连接走多UDP连接通道的代理程序,让kcp的单个udp连接走多个UDP通道,实测对kcptun单线程没有提速,依然3M左右每秒的单线程下载。但是kcptun在--conn 60同时多线程时,可以很轻松跑满整个带宽,有人知道这是为什么吗?有没有办法让单线程下走更激进的UDP加速? |
你想干嘛?
|
你怎么确定你遇到的结果是由于你所谓的“MAC地址锁速度”导致的? |
首先排除ip和端口的问题,一台电脑通过创建多个线程进行下载,直到总速度不变,这个速度应该就是最高速度了。此时无论再增加多少隧道速度都上不去。此时的速度没有达到家中宽带的最高速度和服务器的最高速度。不销毁这些隧道,继续进行下载。用另一台电脑连接路由器,进行相同的测速,最终速度和前一台电脑速度几乎相同,而此时两台电脑都在下载,两台电脑的下载速度并没有互相影响。两台电脑都在NAT协议下,两台电脑的公网IP相同,因此猜想分辨两台电脑的方法就是MAC地址。就是这么推来的。 |
你源端都在同一个NAT设备下,所以两台电脑出去的流的srcIP + srcMAC是相同的,只有src port是不同的,也即是说,同一个NAT设备下的所有流的源MAC都是相同的,不存在MAC限速的可能。我猜测你遇到的现象是通过5元组来限速的。 |
也许是吧 |
如果是OPENVPN 或者WireGuard,如何提高速度?
miny1233 ***@***.***> 于2021年12月27日周一 15:29写道:
…
首先排除ip和端口的问题,一台电脑通过创建多个线程进行下载,直到总速度不变,这个速度应该就是最高速度了。此时无论再增加多少隧道速度都上不去。此时的速度没有达到家中宽带的最高速度和服务器的最高速度。不销毁这些隧道,继续进行下载。用另一台电脑连接路由器,进行相同的测速,最终速度和前一台电脑速度几乎相同,而此时两台电脑都在下载,两台电脑的下载速度并没有互相影响。两台电脑都在NAT协议下,两台电脑的公网IP相同,因此猜想分辨两台电脑的方法就是MAC地址。就是这么推来的。
你源端都在同一个NAT设备下,所以两台电脑出去的流的srcIP + srcMAC是相同的,只有src
port是不同的,也即是说,同一个NAT设备下的所有流的源MAC都是相同的,不存在MAC限速的可能。我猜测你遇到的现象是通过5元组来限速的。
也许是吧
—
Reply to this email directly, view it on GitHub
<#776 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ATPTWO344M5S4INTEFLHFKDUTAIT3ANCNFSM4LWSB5SQ>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you commented.Message ID:
***@***.***>
|
找udp的代理 |
|
--sndwnd 2666 --rcvwnd 6666 --ds 40 --ps 10 --mode normal --autoexpire 60 --conn 60 --quiet |
?
zzlinwq ***@***.***> 于2023年10月20日周五 21:42写道:
… --sndwnd 2666 --rcvwnd 6666 --ds 40 --ps 10 --mode normal --autoexpire 60
--conn 60 --quiet
—
Reply to this email directly, view it on GitHub
<#776 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ATPTWO4S7M6WBKGP2QU2NU3YAJ5WBAVCNFSM4LWSB5S2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCNZXGI3TMNJQGA2Q>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Internally invite you to try udpdeminer . vpn client -> udpdeminer -->> Internet -->> vpn server |
看到过很多分析Qos的文章,有伪造为tcp数据包什么的,
看似很高深,好像并没有什么用。
下面根据个人多年运维经验测试,
在一般的运营商Qos里面,只有两种策略。
1:惩罚式(比如联通,可以使用iperf3 发起上行测试,如果超过一个值,然后这个tcp连接就变得非常慢,只有几k/s,解决办法,只能断开重连。
2:限速式,电信非也,电信限制了单连接的最大上行带宽,大多家宽上行单连接都在15-20Mbps,所以导致电信宽带比较稳定,联通惩罚,体验很差,所以稳定性联通大不如电信,但是联通突发速度快。
不管是电信,还是联通,其实上行,下行qos的判断条件是一样的,基本都是突发快,然后就慢了,
比如:
kcptunclient:192.168.1.2:3321 ->>-kcptunserver:8.8.8.8:80
这是连接方式,本地会有一个端口,对应远程服务端端口,本地端口一般是随机的,
解决Qos就两种方式,
1:每个并发限速,限制最大速度,这样可以使用iperf3去测试当时qos最大值,略小,尽量不要超过惩罚值,
2:设置每个连接的时效。
比如vpngate里面有一种模式,就可以设置多并发,并且多连接。
但是释放本地端口,重新建立连接怎么会话平滑转移,我就不得而知了,
我记得quic是支持会话平滑转移的。
这种现象很明显,比如你刚开始测试kcptun开启的一段时间,速度是挺快,但是挂久了,就变得非常慢,这时候,只需要释放掉隧道,重新发起新隧道即可,这样本地的
一直在变化,运营商Qos那边是有时效期的。
当然;最好的办法是:
1:限速,针对每个隧道限制最大带宽
2:多并发,
3:设置每个隧道的时效,超过时效释放,重新发起新隧道
The text was updated successfully, but these errors were encountered: