V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fengchen0vr
V2EX  ›  宽带症候群

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

  •  
  •   fengchen0vr · 2022-03-08 13:12:43 +08:00 · 4476 次点击
    这是一个创建于 991 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假设上传总带宽 40Mbps

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

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

    26 条回复    2024-06-20 19:52:49 +08:00
    noe132
        1
    noe132  
       2022-03-08 13:16:05 +08:00   ❤️ 3
    他上传了 50Mbps

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

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

    主动限制也是极可能的,但算法也不能可告诉你,说小了是商业机密,说大了是国家机密
    例如去年俄罗斯就要求一些 SNS 软件去除违法信息,在此之前对这些软件的网络流量限速,这不用说了吧,很明显是可限的,且不会告诉你怎么限
    fengchen0vr
        18
    fengchen0vr  
    OP
       2022-03-08 22:06:00 +08:00
    @zhujinliang 看来是路由器的锅了,两个连接完全相同的环境,没有指定出口带宽时速度相差较大
    路由器指定出口带宽时,无论几个连接,或者后续加入的连接,都能平分带宽
    wuvvu
        19
    wuvvu  
       2022-03-08 22:12:51 +08:00
    @fengchen0vr 这个是路由器自己的 qos 吧
    cwbsw
        20
    cwbsw  
       2022-03-08 22:15:59 +08:00
    运营商的限速算法非常简单粗暴的,这也是为什么即使在路由器上简单的开一个 CAKE 算法也很有用的原因。
    microka
        21
    microka  
       2022-03-08 22:25:55 +08:00 via iPhone
    这明显是你本地用户端处理的事,运营商哪管得了这么细,就好比上游给你家开的自来水通量就这么大,至于你家里面怎么分那是你自个儿的事了。
    Jooooooooo
        22
    Jooooooooo  
       2022-03-08 22:34:09 +08:00
    不用想特别复杂的算法追求公平, 这没有公平可言...肯定是那种特别简单的方案. 比如定期看看你用了多少流量, 超过了就直接卡住.
    datocp
        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 。
    fvladlpa
        24
    fvladlpa  
       2022-03-09 08:35:55 +08:00
    看你的数据包是 UDP 还是 TCP 。如果是 UDP 的,不做 QOS 的话,话会把 TCP 的带宽全部抢走
    spacezip
        25
    spacezip  
       2022-03-09 16:02:26 +08:00
    速度取决于自己的设备和资源
    一些 bras 上行满会影响一点下行 反之也是
    james19820515
        26
    james19820515  
       155 天前
    有结论了吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2807 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:36 · PVG 15:36 · LAX 23:36 · JFK 02:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.