1
gux928 2021-04-08 21:54:14 +08:00 via iPhone
拓扑结构及设备清单也放出来看看
|
3
v2020 2021-04-08 22:55:13 +08:00 via Android
理论 /24 范围很小不至于,难道是因为手动指定和网关播发冲突,我在虚拟内网掉速这个问题看到你这个突然想到了,还有种网卡缺陷类似 i217 -*之类
|
4
yitingbai OP @v2020 255.255.0.0 也不会影响网速, 只有 255.255.255.255 会影响, 简单百度了一下, 也没找到类似的解释, 而且只影响上传速度, 下载不影响, 网络延迟也正常
|
5
weyou 2021-04-08 23:18:45 +08:00 via Android 19
猜想你的 librespeed 服务一定是架在本地内网的。
上图中全 255 的掩码,所有的数据包都会发送给网关,由网关的 cpu 进行中转,速度受限于网关的处理能力。 下图中,因为测速服务器在子网中,本地可以直接通过 arp 获取到服务器 mac 地址,发出的数据包会直接由交换机芯片直接中转,效率比 cpu 处理高很多。 |
6
Lemeng 2021-04-08 23:30:14 +08:00
真没研究过,了解了
|
9
ysc3839 2021-04-09 00:16:37 +08:00 via Android
@weyou 借楼问一下,/32 的子网掩码不是代表同一网段内没有其他设备吗?那怎么发给网关的?按理说网关也得在同一子网内吧?
搜索了一下,这里 https://networkengineering.stackexchange.com/a/11036 也说: A more appropriate way to do things would be to set your device IP to 10.0.0.2, your gateway to 10.0.0.1, and your subnet mask to 255.255.255.252. |
10
LinePro 2021-04-09 00:17:04 +08:00
@weyou #5 有个问题,子网掩码是 255.255.255.255 的话,按计算机网络知识正常来讲主机并不知道如何能够与网关互联。但为什么这里可以?
|
11
muzuiget 2021-04-09 01:34:02 +08:00
子网掩码无非就是定义一个 IP 范围而已,九成就是网络程序自己的问题。
|
12
XiaoxiaoPu 2021-04-09 01:49:49 +08:00 1
|
13
ch2 2021-04-09 02:19:48 +08:00 via iPhone
32 位子网,只能靠网关中转发 ip 包,24 位子网就不需要网关代劳了,子网内部可以直接发包
|
14
lcdtyph 2021-04-09 02:24:20 +08:00 2
@ysc3839 #9
网关不必在同一子网,典型的例子是 ipv6 的 link-local 地址。 在路由阶段网关的 ip 只是用来在 arp 过程中获取下一跳的 mac 地址,因此内核只需要知道应该从哪个 interface 广播 arp request 就可以了。 |
15
AllenHua 2021-04-09 08:53:43 +08:00 3
子网掩码的作用是划分 IP 地址中哪一部分是网络号(区分哪些 network ),哪一部分是主机号(区分哪些主机)的 (回想起谢希仁计算机网络……),用来区分 ip 地址在这个私网内属于哪个网段
而且子网掩码的高位的 1 必须连续,低位的 0 也必须连续,常用的也就是 24 位掩码,255.255.255.0 ( 32bit binary,the high 24 bit is all 1 and the low 8 bit is all 0 ) 掩码必须和 IP 地址一起使用,掩码和 IP 地址的二进制数字进行「按位与」的运算,计算得出这个 IP 地址所属的 network 是哪个(可以区别其他 network ),host 是哪个(具体主机是哪个) 图一的 32 位 掩码,也就是 255.255.255.255 ,任何 32 bit 二进制数和他进行与操作之后还是本身,也就是 32 位全是网络号,没有空间区分主机号。这表示网络只有一个 IPv4 地址,所有流量都将直接在具有该 IPv4 地址的设备和默认网关之间进行。 该设备将无法与网络上的其他设备进行通信。 于是当掩码是 32 时,路由器那边的 cpu 负担过重。而如果是 24 位掩码,其中的很多运算就在其他网络上进行了计算。 可以说一个网络就包含一个路由器。 |
16
AllenHua 2021-04-09 09:16:02 +08:00
@AllenHua #15 楼主的 mac 获取 ipv4 地址是手动配置的
子网掩码配置成 32 位,路由器是 192.168.199.1 这样你的 mac 发出去的数据包,请求的压力就全在这台路由器上(也就是网关) 而 LibreSpeed 的服务器 ip 是 192.168.199.50 这样子的吧 |
17
AllenHua 2021-04-09 09:18:35 +08:00
|
18
shutan 2021-04-09 09:25:06 +08:00
带宽好大啊!
|
21
rationa1cuzz 2021-04-09 10:11:34 +08:00
学习了
|
22
LinePro 2021-04-09 10:14:37 +08:00 1
@XiaoxiaoPu #12 @lcdtyph #14 拿 Windows 测试了一下,确实是这个逻辑,受教了,感谢。不过 IPv6 的 link-local 地址不是默认子网前缀长度是 10 吗?那应该算同一子网吧?
|
23
yitingbai OP @AllenHua 不是啥客户端, 就是一个开源测速 web 项目 https://github.com/librespeed/speedtest, 局域网内搭建, 用来测试局域网速度非常方便
|
24
lcdtyph 2021-04-09 11:42:20 +08:00 via iPhone 1
@LinePro
不是说默认子网前缀是 10,是 fe80::/10 这个网段的地址都是 link-local 地址,本地单播实际上前缀是 64 。 拿这个例子是想说,当时用 ipv6 全局地址通信的时候,网关可以使用与通信地址不在同一网段的链路地址。 |
25
AllenHua 2021-04-09 11:53:16 +08:00
@yitingbai #23 嗯嗯
我后来搜了下 librespeed 没有客户端的 就是网页 ![20210409115131.png]( https://cdn.jsdelivr.net/gh/hellodk34/image@main/img/20210409115131.png) 我也搞了个,但是可能受限于 这台机器的 CPU (上古神器 intel P8600 )性能不够 千兆没有跑满 |
27
weyou 2021-04-09 16:18:29 +08:00 2
|
28
julyclyde 2021-04-10 12:04:42 +08:00
一本正经的胡说八道
|