运营商宽带限速算法的一个疑问

2022-03-08 13:12:43 +08:00
 fengchen0vr

假设上传总带宽 40Mbps

一个连接上传占满了上传带宽,

若再加一个连接上传,他们两个上传速度看起来不是平分的,那么是怎么分的呢

4511 次点击
所在节点    宽带症候群
26 条回复
noe132
2022-03-08 13:16:05 +08:00
他上传了 50Mbps

想办法分❌
直接随机丢掉 10Mbps✅
imdong
2022-03-08 13:18:30 +08:00
是在说 QoS 吧?
wanguorui123
2022-03-08 13:22:05 +08:00
每个数据包都可以限制转发速度
fengchen0vr
2022-03-08 13:26:30 +08:00
@wanguorui123 两个连接都是从内网 HTTP 服务器上传,但是上传速度相差很大
fengchen0vr
2022-03-08 13:29:17 +08:00
@noe132 如果是随机的话,在相同环境,两个连接也应该接近平分吧
fengchen0vr
2022-03-08 13:31:06 +08:00
@imdong 算是默认配置下的 qos 规则吧
FabricPath
2022-03-08 13:32:04 +08:00
和连接无关,不是基于连接的限速,速度怎么分是你本地的 tcp 拥塞控制算法计算的发包速度和丢包重传速度
wy315700
2022-03-08 13:37:30 +08:00
当发生丢包的时候 TCP 会自动降低发包速率
wanguorui123
2022-03-08 13:46:45 +08:00
@fengchen0vr 那就是 Qos
wanguorui123
2022-03-08 13:48:00 +08:00
@fengchen0vr 一般路由器会根据包转发率算出带宽上限,然后随机丢包,控制流量
fengchen0vr
2022-03-08 13:51:30 +08:00
@wanguorui123 现在我在路由器上对服务器 ip 做上传带宽限制,小于运营商的最大上传带宽,
这样多个连接能平分带宽
fisherwei
2022-03-08 17:19:45 +08:00
@fengchen0vr 两个连接谁快谁慢是 4-7 层决定的,可能是 tcp 、可能是应用层的应用内部。

运营商网络限速通常做在 3 层,就是按源地址(针对上传)/目的地址(针对下载)进行流控。
jfdnet
2022-03-08 17:22:31 +08:00
运营商不用分吧,运营商只给了你一个端口而已。这个端口后面你家里的设备们会自己协商的。
zhs227
2022-03-08 18:04:36 +08:00
如果都是默认规则的话就是 tcp 公平,自己搜一下,或者是英文 tcp fairness 。在带宽被占满的清况下,任何一个新加入的 tcp 连接想要分掉速率,都会对已有的 tcp 产生影响。tcp 之间通过各自的收敛机制来分配带宽。
所谓的公平,不是平均分配,与很多因素都有关系
zhujinliang
2022-03-08 18:19:41 +08:00
超过设定最大流量,再发到路由器的包就会被路由器缓存,路由器等到有空闲流量了,才能逐渐清空缓存区,缓存区满了,再来包就只能丢掉了
tcp 默认路由可能会丢包,于是搞了些窗口大小、往来延迟之类的探测,
zhujinliang
2022-03-08 18:21:38 +08:00
保证尽可能利用带宽,而不造成大量丢包
最终表现出来速度大小,就是各种随机事件使得 tcp 认为当前带宽有多大,我应该以什么速率发包
imn1
2022-03-08 18:40:33 +08:00
无限制是平分的,看起来不是平分,那跟网络环境有关,例如我家百度网盘和迅雷就不是同速

主动限制也是极可能的,但算法也不能可告诉你,说小了是商业机密,说大了是国家机密
例如去年俄罗斯就要求一些 SNS 软件去除违法信息,在此之前对这些软件的网络流量限速,这不用说了吧,很明显是可限的,且不会告诉你怎么限
fengchen0vr
2022-03-08 22:06:00 +08:00
@zhujinliang 看来是路由器的锅了,两个连接完全相同的环境,没有指定出口带宽时速度相差较大
路由器指定出口带宽时,无论几个连接,或者后续加入的连接,都能平分带宽
wuvvu
2022-03-08 22:12:51 +08:00
@fengchen0vr 这个是路由器自己的 qos 吧
cwbsw
2022-03-08 22:15:59 +08:00
运营商的限速算法非常简单粗暴的,这也是为什么即使在路由器上简单的开一个 CAKE 算法也很有用的原因。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/838843

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX