101-指向子网的广播

之前说过,子网广播地址格式为 {subnetid, -1}。这里用 -1 表示主机位为全 1.

我们将用三个实验来观察现象。

1. 实验一

1.1 网络拓扑图


这里写图片描述
图1 网络拓扑

1.2 实验步骤

在主机 PC1 上 ping 广播地址 192.168.1.255,并在主机 PC1 上抓包。


这里写图片描述
图2 ping 命令结果

1.2 结果分析


这里写图片描述
图3 抓包结果

我们希望回答这样一个问题:主机 PC1 自己知道这是一个广播地址吗?

答:很明显,PC1 自己知道它是一个广播地址,并且还和自己在同一个网络。

既然如此,该广播还有被路由器转发的必要吗?完全没有,从图 3 中看到,目的地址被修改成 255.255.255.255 了!

在这里,被 PC1 修改成了 255.255.255.255,是因为 PC1 并不是真的一台主机(它是用路由器来模拟出来的,PC1 自己检测到该地址和自己在同一个网络,直接将目标地址修改成 255.255.255.255)。

实际上,我们在 Linux 上(位于 192.168.166.0/24 网络上) ping 192.168.166.255的时候,目的地址不会被修改掉,尽管发送知道目标网络和自己是同一个网络。

目标地址被修改成 255.255.255.255,是绝对不可能被路由器 R1 所转发出去的。

上面的过程可能有点难以理解,但是我希望你能从回答本小节第一个问题的角度尝试解释所有现象。

2. 实验二

2.1 网络拓扑图


这里写图片描述
图4 网络拓扑

2.2 实验步骤

从 PC3 上 ping 192.168.1.255.

2.2 实验结果


这里写图片描述
图5 PC1 上抓到的数据包


这里写图片描述
图6 PC3 上抓到的数据包

同样的,我们回答这个问题:主机 PC3 知道 192.168.1.255 是一个广播地址吗?

答:不知道!因为 PC3 将自己的子网掩码与 192.168.1.255 做与操作后,得到的网络号 192.168.3.0/24 这个网络,此时,PC3 仍然不认识这个网络(PC3 一脸懵逼,cao 这谁啊),然后也不管了,直接丢给网关 192.168.3.1 去了。

路由器 R2 收到这个目标地址为 192.168.1.255 的数据报后,我们再问,R2 知道这是广播地址吗? R2 同样的一脸懵逼,它根据自己的路由表,找到下一跳,转发给了路由器 R1.

很好,路由器 R1 认识它,因为 R1 自己就直连在 192.168.10/24 上啊!接下来,R1 在 192.168.1.1 这个接口上发送广播,将目标地址改成了 255.255.255.255(参考图5)。

3. 实验三

3.1 网络拓扑图


这里写图片描述
图7 网络拓扑图

3.2 实验步骤

从 PC4 ping 192.168.166.31

3.3 实验结果


这里写图片描述
图8 在 PC4 上抓取的报文

3.4 结果分析

再问一遍,PC4 知道 192.168.166.31 是广播地址吗?别说 PC4 了,可能你自己都不敢拍着胸脯说它是广播地址,特别是在你不知道网络拓扑图的情况下!

就好比说现在你的主机吧,假设你主机的 ip 地址是 192.168.166.107,你 ping 一个地址,192.168.10.31,你有把握就认定它一定是一台主机吗?不能!你有把握认定它是一个子网广播地址吗?还是不能!

我相信这个例子能让你深深的体会到这一点。接下来,我们还是拿着问题一步一步探索。

  • 首先,PC4 没办法判断 192.168.166.31 是主机地址还是广播地址,因此它就认为这是一个主机地址吧,直接单播出去,到达 R2
  • 同样,R2 也不知道 192.168.166.31 是广播地址,也单播出去了。
  • 最后 R1 收到了这个数据报,R1 是认识这个网络的,并且 R1 还知道这是一个广播地址,并且是子网 192.168.166.16/28 上的广播地址,因此,路由器 R1 向子网 192.168.166.16 发子网定向广播(R1 会把目标地址改成 255.255.255.255,然后转发到 192.168.166.16/24 这个网络上)。

有一个很奇怪的现象是,我们发现路由器 R1 的接口 192.168.1.1/24 也回复了 ICMP echo 的请求。这个现象在图 6 中也存在。懂网络的同学可以来解释下^_^,我的理解是,路由器知道这是一个广播地址,代替了该网络中所有的主机统一进行了回复。因为默认情况下,路由器并不转发子网定向广播,但又怕请求者收不到回复,于是就主动响应了 ICMP echo request.

图 9 是在 PC4 上 ping 192.168.166.47,实际上这是发网子网 192.168.166.32 的广播。然而,路由器 R1 并不转发该子网的定向广播(因为这个功能被关闭!)


这里写图片描述
图9 路由器 R1 在接口 192.168.1.1 进行了回复

4. 总结

  • 掌握定向子网广播
  • 掌握子网定向广播转发流程,路由器什么时候转发,什么时候不转发?路由器是否察觉到地址是一个子网广播地址。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值