假设上传总带宽 40Mbps
一个连接上传占满了上传带宽,
若再加一个连接上传,他们两个上传速度看起来不是平分的,那么是怎么分的呢
1
noe132 2022-03-08 13:16:05 +08:00 3
他上传了 50Mbps
想办法分❌ 直接随机丢掉 10Mbps✅ |
2
imdong 2022-03-08 13:18:30 +08:00 via iPhone
是在说 QoS 吧?
|
3
wanguorui123 2022-03-08 13:22:05 +08:00
每个数据包都可以限制转发速度
|
4
fengchen0vr OP @wanguorui123 两个连接都是从内网 HTTP 服务器上传,但是上传速度相差很大
|
5
fengchen0vr OP @noe132 如果是随机的话,在相同环境,两个连接也应该接近平分吧
|
6
fengchen0vr OP @imdong 算是默认配置下的 qos 规则吧
|
7
FabricPath 2022-03-08 13:32:04 +08:00
和连接无关,不是基于连接的限速,速度怎么分是你本地的 tcp 拥塞控制算法计算的发包速度和丢包重传速度
|
8
wy315700 2022-03-08 13:37:30 +08:00 2
当发生丢包的时候 TCP 会自动降低发包速率
|
9
wanguorui123 2022-03-08 13:46:45 +08:00
@fengchen0vr 那就是 Qos
|
10
wanguorui123 2022-03-08 13:48:00 +08:00
@fengchen0vr 一般路由器会根据包转发率算出带宽上限,然后随机丢包,控制流量
|
11
fengchen0vr OP @wanguorui123 现在我在路由器上对服务器 ip 做上传带宽限制,小于运营商的最大上传带宽,
这样多个连接能平分带宽 |
12
fisherwei 2022-03-08 17:19:45 +08:00
|
13
jfdnet 2022-03-08 17:22:31 +08:00
运营商不用分吧,运营商只给了你一个端口而已。这个端口后面你家里的设备们会自己协商的。
|
14
zhs227 2022-03-08 18:04:36 +08:00
如果都是默认规则的话就是 tcp 公平,自己搜一下,或者是英文 tcp fairness 。在带宽被占满的清况下,任何一个新加入的 tcp 连接想要分掉速率,都会对已有的 tcp 产生影响。tcp 之间通过各自的收敛机制来分配带宽。
所谓的公平,不是平均分配,与很多因素都有关系 |
15
zhujinliang 2022-03-08 18:19:41 +08:00 via iPhone
超过设定最大流量,再发到路由器的包就会被路由器缓存,路由器等到有空闲流量了,才能逐渐清空缓存区,缓存区满了,再来包就只能丢掉了
tcp 默认路由可能会丢包,于是搞了些窗口大小、往来延迟之类的探测, |
16
zhujinliang 2022-03-08 18:21:38 +08:00 via iPhone
保证尽可能利用带宽,而不造成大量丢包
最终表现出来速度大小,就是各种随机事件使得 tcp 认为当前带宽有多大,我应该以什么速率发包 |
17
imn1 2022-03-08 18:40:33 +08:00
无限制是平分的,看起来不是平分,那跟网络环境有关,例如我家百度网盘和迅雷就不是同速
主动限制也是极可能的,但算法也不能可告诉你,说小了是商业机密,说大了是国家机密 例如去年俄罗斯就要求一些 SNS 软件去除违法信息,在此之前对这些软件的网络流量限速,这不用说了吧,很明显是可限的,且不会告诉你怎么限 |
18
fengchen0vr OP @zhujinliang 看来是路由器的锅了,两个连接完全相同的环境,没有指定出口带宽时速度相差较大
路由器指定出口带宽时,无论几个连接,或者后续加入的连接,都能平分带宽 |
19
wuvvu 2022-03-08 22:12:51 +08:00
@fengchen0vr 这个是路由器自己的 qos 吧
|
20
cwbsw 2022-03-08 22:15:59 +08:00
运营商的限速算法非常简单粗暴的,这也是为什么即使在路由器上简单的开一个 CAKE 算法也很有用的原因。
|
21
microka 2022-03-08 22:25:55 +08:00 via iPhone
这明显是你本地用户端处理的事,运营商哪管得了这么细,就好比上游给你家开的自来水通量就这么大,至于你家里面怎么分那是你自个儿的事了。
|
22
Jooooooooo 2022-03-08 22:34:09 +08:00
不用想特别复杂的算法追求公平, 这没有公平可言...肯定是那种特别简单的方案. 比如定期看看你用了多少流量, 超过了就直接卡住.
|
23
datocp 2022-03-09 06:07:31 +08:00 via Android
首先运营商肯定是有对部分进行 qos 的,比如英雄联盟,当时在玩优酷挖矿时,玩英雄联盟根本不卡。
对于用户来说能控制的正确方向就是 pppoe-wan 接口的上行接口,这个位置同样能将标记带到下行流量。还有些人会在交换机上做限速,限速和 qos 不是一个概念。 从平时的经验来看 pfifo 包先进先出队列 流量的抢夺通常和并发数有关,像迅雷,通常网页是抢不过高并发下载。决定带宽的有合同上的流量,还有看不见的并发,这些都会导致超限掉包,引发网络掉速。 网上一直流行一个广泛传播的谬论,那就是认为设定上行带宽为总带宽的 80%可以达到比较好的延迟。实际上在玩 htb/htfs 时,对于这个流量分组来说仍然是 100%的占用导致各种延迟问题。 如果没有 qos 的存在,我认为这个分法是随机的,很大因素会取决于并发数。当然也可能运营商也有 qos 决定。 自己在路由器设定 qos,则可以根据目的 ip+端口决定这些流量能跑多快就跑多快,限制的死死的。linux 的 tc 说是只能限制 tcp,难道我眼花不确定对 udp 是否有效。 Qos 还是相当有用的,它会改变先进先出为有优先级的 tcp 80 先于其它 p2p 。根据 tcp 的握手过程同样带来更早的下载流量。将流量进行不同的流量分组,在光纤可以做到使用 95%的总带宽,可以让游戏达到 19ms,其它流量高达 600ms 。 |
24
fvladlpa 2022-03-09 08:35:55 +08:00
看你的数据包是 UDP 还是 TCP 。如果是 UDP 的,不做 QOS 的话,话会把 TCP 的带宽全部抢走
|
25
spacezip 2022-03-09 16:02:26 +08:00
速度取决于自己的设备和资源
一些 bras 上行满会影响一点下行 反之也是 |
26
james19820515 190 天前
有结论了吗?
|