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
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
目 录 译者序 前言 第1章 概述 1 1.1 引言 1 1.2 分层 1 1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 应用编程接口 12 1.16 测试网络 13 1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口 20 2.8 最大传输单元MTU 21 2.9 路径MTU 21 2.10 串行线路吞吐量计算 21 2.11 小结 22 第3章 IP:网际协议 24 3.1 引言 24 3.2 IP首部 24 3.3 IP路由选择 27 3.4 子网寻址 30 3.5 子网掩码 32 3.6 特殊情况的IP地址 33 3.7 一个子网的例子 33 3.8 ifconfig命令 35 3.9 netstat命令 36 3.10 IP的未来 36 3.11 小结 37 第4章 ARP:地址解析协议 38 4.1 引言 38 4.2 一个例子 38 4.3 ARP高速缓存 40 4.4 ARP的分组格式 40 4.5 ARP举例 41 4.5.1 一般的例子 41 4.5.2 对不存在主机的ARP请求 42 4.5.3 ARP高速缓存超时设置 43 4.6 ARP代理 43 4.7 免费ARP 45 4.8 arp命令 45 4.9 小结 46 第5章 RARP:逆地址解析协议 47 5.1 引言 47 5.2 RARP的分组格式 47 5.3 RARP举例 47 5.4 RARP服务器的设计 48 5.4.1 作为用户进程的RARP服务器 49 5.4.2 每个网络有多个RARP服务器 49 5.5 小结 49 第6章 ICMP:Internet控制报文协议 50 6.1 引言 50 6.2 ICMP报文的类型 50 6.3 ICMP地址掩码请求与应答 52 6.4 ICMP时间戳请求与应答 53 6.4.1 举例 54 6.4.2 另一种方法 55 6.5 ICMP端口不可达差错 56 6.6 ICMP报文的4.4BSD处理 59 6.7 小结 60 第7章 Ping程序 61 7.1 引言 61 7.2 Ping程序 61 7.2.1 LAN输出 62 7.2.2 WAN输出 63 7.2.3 线路SLIP链接 64 7.2.4 拨号SLIP链路 65 7.3 IP记录路由选项 65 7.3.1 通常的例子 66 7.3.2 异常的输出 68 7.4 IP时间戳选项 69 7.5 小结 70 第8章 Traceroute程序 71 8.1 引言 71 8.2 Traceroute 程序的操作 71 8.3 局域网输出 72 8.4 广域网输出 75 8.5 IP源站选路选项 76 8.5.1 宽松的源站选路的traceroute 程序示例 78 8.5.2 严格的源站选路的traceroute 程序示例 79 8.5.3 宽松的源站选路traceroute程序 的往返路由 80 8.6 小结 81 第9章 IP选路 83 9.1 引言 83 9.2 选路的原理 84 9.2.1 简单路由表 84 9.2.2 初始化路由表 86 9.2.3 较复杂的路由表 87 9.2.4 没有到达目的地的路由 87 9.3 ICMP主机与网络不可达差错 88 9.4 转发或不转发 89 9.5 ICMP重定向差错 89 9.5.1 一个例子 90 9.5.2 更多的细节 91 9.6 ICMP路由器发现报文 92 9.6.1 路由器操作 93 9.6.2 主机操作 93 9.6.3 实现 93 9.7 小结 94 第10章 动态选路协议 95 10.1 引言 95 10.2

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值