宽带的限速对 KCP 无效吗?

2020-08-14 21:23:07 +08:00
 my2492
50M 的上行,正常测速在 60M 左右,但是用 KCP 往外上传有 150M 左右,看了路由器上的实时网速,确实 WAN 口上行在 150Mbps,这是怎么回事?是多倍发包,多的被丢包了吗?实际服务器收到的流量大概是 30Mbps
4379 次点击
所在节点    宽带症候群
17 条回复
noe132
2020-08-14 21:43:40 +08:00
假设你是 ISP,你给你的客户提供了 50M 的上行。他按照 100M 的速度发包,你该怎么办?

当然是限速。通常来说被 traffic shaping 后,一些包被随机丢弃了
LPeJuN6lLsS9
2020-08-14 22:23:46 +08:00
太天真了,怎么可能无效。而且 kcp 窗口设太大反而降低你自己的体验
https://zhuanlan.zhihu.com/p/24938843
my2492
2020-08-14 23:08:52 +08:00
@noe132 那为什么 tcp 包的实时流量就是和带宽相符的,kcp 会显示发出去那么多?
ccsexyz
2020-08-14 23:26:10 +08:00
tcp 丢包之后会主动降低发送速率
jousca
2020-08-15 01:16:58 +08:00
@my2492 出现这样的情况是因为 udp 协议的基本原理 ------UDP 发送端无法检测拥塞,它不知道带宽是否占满。所以它就是发出去 1000Mbps 的包都可以,但是上端路由器一般都具备包队列和丢弃技术,会对你多发的 UDP 进行丢弃,以降低 UDP 流量。所以你才会发现服务器只能收到 30Mbps 的包。
jousca
2020-08-15 01:23:30 +08:00
所以 KCP 发包速度自己控制下,不要超过自己实际上行带宽 70%。 不要没完没了的发,运营商对你线路进行 UDP QOS 你就哭去把。
kokutou
2020-08-15 07:44:53 +08:00
你发包是你发包,但是运营商可以丢弃啊

你检测的是从你路由器本地出去的速度,到运营商那边就给你丢了

kcp 不要超过带宽,超过带宽就没多大意义了。。。
brMu
2020-08-15 08:00:03 +08:00
测下速,看接受端实际接受速度是多少
my2492
2020-08-15 09:49:48 +08:00
@brMu 比 tcp 还低,实际接收是 30Mbps 左右
cjpjxjx
2020-08-15 10:02:50 +08:00
就像是你妈对你进行每秒 10 句的唠叨,上传带宽为 100b/s,但你每秒只听进去了 1 句,接收带宽为 10b/s,其他都被你丢弃了
DGideas
2020-08-15 10:11:36 +08:00
@cjpjxjx 哈哈哈哈哈哈, #10 非常形象!
hyperbin
2020-08-15 10:24:44 +08:00
TCP 会主动检测丢包情况降低速度,UDP 不会,就像拿脸盆往老鼠洞泼水,很多水都没进去,TCP 会检测这些没进去的水,改成拿杯子倒来确保水都能进去,最后报告:这个鼠洞每秒大约能进 100ml 水,
UDP 用大水缸倒水后报告:刚才 1 秒内往鼠洞倒了 300 斤水(至于进去多少它才在乎)
hyperbin
2020-08-15 10:25:43 +08:00
@hyperbin 更正:UDP 不在乎倒进去多少
brMu
2020-08-15 12:12:34 +08:00
@my2492 接受端只有 30M,这就证明了实际没有突破限制带宽
sujin190
2020-08-15 15:08:26 +08:00
kcp 发包只要不超过你物理连接速度就可以啊,带宽限速在运营上那边,又不在路由这,而且就现实来说,流量越大的重要程度越低,所以从运营商那边来说,同等带宽想,优先保证低流量业务更有利于提升用户体验节省成本,再说你长时间满带宽使用或者超带宽发送数据包那么滥用可能就越高,那么给你更低的发包优先级和更高丢包优先级再正常不过了
bclerdx
2020-08-15 23:53:35 +08:00
@cjpjxjx 干的漂亮。
bclerdx
2020-08-15 23:54:38 +08:00
水流以最细的那根为你的最大速率哦,这就是木桶效应。

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

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

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

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

© 2021 V2EX