
(4)若主机H3 发送一个目的地址为192.168.1.127 的IP 数据报,网络中哪几个主机会接收该数据埘传达传报丠僾甕具?
本题先给结论:设备 1 应选 路由器,设备 2、设备 3 应选 以太网交换机。
理由很简单:设备 1 连接的是三个不同 IP 网段,必须负责三层转发;设备 2 和设备 3 只是分别把同一子网内的主机接到对应网关上,二层交换即可。
从地址看,图中实际有三个网段:
| 网段 | 范围 | 广播地址 | 作用 |
|---|---|---|---|
| 192.168.1.0/26 | 192.168.1.1 ~ 192.168.1.62 | 192.168.1.63 | H1、H2 所在网段 |
| 192.168.1.64/26 | 192.168.1.65 ~ 192.168.1.126 | 192.168.1.127 | H3、H4 所在网段 |
| 192.168.1.252/30 | 192.168.1.253、192.168.1.254 | 192.168.1.255 | R 与设备 1 之间的网段 |
所以设备 1 的接口应配置为:
设备1 IF1:192.168.1.254/30
设备1 IF2:192.168.1.1/26
设备1 IF3:192.168.1.65/26
设备 2、设备 3 是普通二层交换机,普通转发接口不需要配置 IP 地址。交换机即使有管理 IP,那也是为了远程登录管理,不参与普通以太网帧转发,408 题目里一般不考虑。
一、集线器、交换机、路由器到底怎么区分?
考研里最核心的判断标准不是“长得像不像”,而是看它工作在哪一层、依据什么地址转发、能不能隔离广播域。
集线器:物理层设备,只是“放大并转发比特”
集线器 Hub 工作在物理层。它不认识 MAC 地址,也不认识 IP 地址。一个端口收到比特流后,基本就是向其他端口重复发送。
所以集线器的特点是:所有主机共享同一个冲突域,也共享同一个广播域。用集线器连接起来的主机,本质上像挂在一根共享总线上。
现在实际网络中集线器基本被淘汰,但考研会拿它考两个点:第一,它是物理层设备;第二,它不能隔离冲突域,也不能隔离广播域。
交换机:数据链路层设备,按 MAC 地址转发帧
交换机 Switch 工作在数据链路层。它认识 MAC 地址,会学习 MAC 地址表。
比如 H1 给 H2 发单播帧,交换机知道 H2 在哪个端口,就只转发到对应端口,而不是全网乱发。这样每个交换机端口通常是一个独立冲突域。
但是普通二层交换机有一个重要限制:它不隔离广播域。
也就是说,ARP 请求、目的 MAC 为 FF:FF:FF:FF:FF:FF 的广播帧,交换机会泛洪到除入端口以外的所有端口。如果交换机没有 VLAN 功能,那么整个交换机就是一个大的二层广播域。
所以交换机适合用来连接同一 IP 子网内的多台主机。例如本题中 H1 和 H2 都在 192.168.1.0/26 网段,默认网关都是 192.168.1.1,因此设备 2 用交换机即可。H3 和 H4 同理,都在 192.168.1.64/26 网段,默认网关都是 192.168.1.65,因此设备 3 也用交换机。
路由器:网络层设备,按 IP 地址转发分组
路由器 Router 工作在网络层。它依据 IP 地址和路由表转发 IP 分组。
路由器最关键的特点是:每个接口通常属于一个不同的 IP 网段,并且路由器能够隔离广播域。
本题里,设备 1 上方连 R,左边连 H1/H2 所在网段,右边连 H3/H4 所在网段。也就是说设备 1 要连接三个不同网段:
192.168.1.252/30
192.168.1.0/26
192.168.1.64/26
这种情况必须用路由器。因为二层交换机不能完成不同 IP 网段之间的三层转发,也不能充当这些主机的默认网关。
二、什么时候该选什么设备?
做这种题可以抓一个核心口诀:
同一网段内部互连,选交换机。
不同网段之间互通,选路由器。
只转发物理信号,才是集线器。
更具体地说:
如果几台主机 IP 地址属于同一个子网,并且只是需要互相通信,选择交换机。例如同一实验室、同一局域网内的电脑互连,一般用交换机。
如果两个网络的网络号不同,比如一个是 192.168.1.0/26,另一个是 192.168.1.64/26,它们之间通信必须经过路由器或三层交换机。在 408 默认语境里,看到“不同 IP 子网互连”,优先想到路由器。
如果题目问的是老式共享以太网,或者强调物理层设备、冲突域共享,那才考虑集线器。现实组网中一般不用集线器。
本题中最关键的判断点是默认网关:
H1、H2 默认网关:192.168.1.1
H3、H4 默认网关:192.168.1.65
默认网关一定要配置在三层设备接口上,也就是设备 1 的 IF2 和 IF3 上。因此设备 1 必须是路由器。
三、R 需要提供什么服务?
为了让 H1 ~ H4 访问 Internet,R 需要提供 NAT 服务,更准确地说通常是 NAPT/PAT,即多个内网私有地址共用一个公网地址访问外网。
因为 H1 ~ H4 使用的是 192.168.1.0/24 范围内的私有地址。私有地址不能直接在公网 Internet 中路由,所以数据到达 R 后,需要把源地址转换成 R 外网接口的地址,例如图中的 101.1.2.10。
此外,从完整配置角度看,还需要有路由:
设备1 默认路由:下一跳指向 R 的 192.168.1.253
R 到 192.168.1.0/26 的路由:下一跳指向设备1的 192.168.1.254
R 到 192.168.1.64/26 的路由:下一跳指向设备1的 192.168.1.254
不过如果题目问“R 需要提供什么服务”,标准答案通常写 NAT 服务。
四、自己发的广播,自己能不能收到?
这个问题要分层理解,否则容易混乱。
本题第 4 问中,H3 的 IP 地址是:
192.168.1.66/26
它所在网段是:
192.168.1.64/26
该网段的广播地址是:
192.168.1.127
所以目的 IP 地址 192.168.1.127 是 H3、H4 所在子网的广播地址。
从 IP 地址语义看,它表示“发给 192.168.1.64/26 这个子网内所有主机”。因此按很多教材或标准答案的抽象口径,会说 H3、H4 都属于该广播地址覆盖的范围。
但是从实际二层转发过程看,H3 把广播帧发给交换机后,交换机会把该广播帧从除入端口以外的其他端口转发出去,不会再从 H3 接入的端口发回给 H3。因此 H3 不是“从网络中重新收到自己刚发出的那一帧”。
所以这两句话并不矛盾:
按 IP 广播地址覆盖范围:H3、H4 属于该广播范围。
按交换机实际转发接收:H4 会收到,H3 不会从交换机那里再收到自己发出的帧。
408 做题时要看题目问法。
如果题目问“目的地址 192.168.1.127 是哪个网段的广播地址,哪些主机属于该广播范围”,通常答 H3 和 H4。
如果题目强调“交换机转发后哪些主机实际接收到该帧”,则应答 H4;设备 1 的路由器接口也会收到这个二层广播帧,但路由器不会把该广播继续转发到 H1、H2 所在网段。
最容易错的是把 192.168.1.127 当成普通单播地址。由于 /26 每个子网有 64 个地址,所以:
192.168.1.64/26 的地址范围:192.168.1.64 ~ 192.168.1.127
网络地址:192.168.1.64
可用主机地址:192.168.1.65 ~ 192.168.1.126
广播地址:192.168.1.127
因此 H1、H2 一定不会收到这个广播。路由器会隔离广播域,普通 IP 广播不会跨路由器扩散。
重点在于h3会不会收到自己发出的广播?如果一个主机,请求目标地址是路由器交换机是没有记录的地址,那么此时,是不是也类似于一次广播呢?这两者之间又有什么区别?
重点可以这样定性:
在 408 这类题里,如果问“目的 IP 为 192.168.1.127 的 IP 数据报,哪些主机属于接收范围”,通常按 IP 广播地址语义答:H3 和 H4。
但如果严格问“H3 发出的以太网帧经过交换机后,会不会又从交换机回到 H3 的网卡”,答案是:不会。普通交换机不会把从某端口收到的帧再从同一个端口转发回去。
所以这件事要分成两个层次:
IP 层逻辑接收范围:H3、H4 都属于 192.168.1.64/26 这个子网,所以都在广播范围内。
二层交换机实际转发路径:H3 发出的广播帧进入交换机后,交换机只从其他端口泛洪,不会从 H3 的入端口发回。
本题目的地址是:
192.168.1.127
H3 的地址是:
192.168.1.66/26
/26 的每个子网大小是 64 个地址,所以 H3 所在子网是:
网络地址:192.168.1.64
可用地址:192.168.1.65 ~ 192.168.1.126
广播地址:192.168.1.127
因此 192.168.1.127 是 H3、H4 所在子网的定向广播地址。按题目“IP 数据报的目的地址”这个口径,答案往往写 H3、H4;但如果题目强调“交换机转发后谁实际收到从网络返回的帧”,则 H3 不会从交换机那里再收到自己发出的帧,H4 会收到。
这里最容易混的是“广播地址覆盖范围”和“交换机是否回送入端口”。二者不是同一个问题。
再看第二个问题:目标地址交换机没有记录,是不是类似广播?
要区分两个概念:广播 broadcast 和 泛洪 flooding。
广播是帧本身的目的 MAC 地址就是广播地址:
FF:FF:FF:FF:FF:FF
这种帧被设计成“发给同一广播域内所有主机”。主机网卡看到目的 MAC 是广播地址,一般会接收并上交协议栈处理。
泛洪是交换机的一种转发行为。比如交换机收到一个目的 MAC 为某个单播地址的帧,但 MAC 地址表里不知道这个目的 MAC 在哪个端口,于是它会把该帧从除入端口外的所有端口转发出去。这个行为看起来像“广播式扩散”,但它不是广播,因为帧的目的 MAC 仍然是一个单播 MAC 地址。
区别可以这样记:
| 情况 | 帧的目的 MAC | 交换机行为 | 主机是否都会接收 |
|---|---|---|---|
| 真正广播 | FF:FF:FF:FF:FF:FF | 泛洪到其他端口 | 同广播域主机都会接收 |
| 未知单播 | 某个具体单播 MAC | 也会泛洪到其他端口 | 只有目的 MAC 匹配的主机会接收,其他主机通常丢弃 |
| 已知单播 | 某个具体单播 MAC | 只转发到对应端口 | 只有目标主机接收 |
所以“交换机没有记录目的 MAC”时发生的是 未知单播泛洪,不是严格意义上的广播。
举个直观例子。假设 H3 要给 H4 发数据,H3 已经知道 H4 的 MAC 地址,于是发出一个单播帧:
源 MAC:H3 的 MAC
目的 MAC:H4 的 MAC
但设备 3 这个交换机刚启动,MAC 地址表里还没有 H4 的记录。此时交换机会把这个帧从除 H3 入端口外的其他端口都发出去。H4 收到后发现目的 MAC 是自己,就接收;其他设备即使看到这个帧,也会因为目的 MAC 不是自己而丢弃。
这叫 未知单播泛洪。
它和广播很像的地方是:交换机转发范围都比较大。
它和广播不同的地方是:广播帧是“所有主机都应该接收”,未知单播帧是“交换机不知道目标在哪,只能先乱发,但本质上仍然只给一个目标主机”。
如果换成“路由器没有记录目标地址”,情况又不一样。
交换机工作在数据链路层,维护的是:
MAC 地址 -> 端口
路由器工作在网络层,维护的是:
目的网络 -> 下一跳 / 出接口
路由器不会像交换机那样“目标不知道就全端口泛洪”。路由器查路由表,如果有匹配路由,就转发;如果没有匹配路由,也没有默认路由,就丢弃,并可能返回 ICMP 目的不可达报文。
所以:
交换机不知道目的 MAC:未知单播泛洪。
路由器不知道目的 IP 网络:丢弃,不会广播。
这是考研里非常重要的分界。
再补一个完整发送过程,帮助区分 ARP 广播、IP 广播、未知单播泛洪。
假设 H3 要访问 H4,H4 是同网段地址 192.168.1.67。H3 首先判断 H4 和自己同属 192.168.1.64/26,所以应该直接交付给 H4,而不是交给默认网关。
如果 H3 不知道 H4 的 MAC 地址,就先发 ARP 请求:
谁是 192.168.1.67?请告诉 192.168.1.66。
这个 ARP 请求使用以太网广播 MAC:
FF:FF:FF:FF:FF:FF
所以 ARP 请求是真正的广播。H4 收到后会回复自己的 MAC 地址。
之后 H3 再发送真正的数据帧:
目的 MAC:H4 的 MAC
目的 IP:192.168.1.67
这时就是单播帧。如果交换机知道 H4 在哪个端口,就定向转发;如果不知道,就做未知单播泛洪。
所以这三件事不要混成一个:
ARP 请求:广播,用来问 MAC 地址。
IP 广播:目的 IP 是广播地址,比如 192.168.1.127。
未知单播泛洪:目的 MAC 是单播地址,但交换机 MAC 表里暂时不知道端口。
本题中的 H3 发往 192.168.1.127,本质是 IP 层广播地址,封装到以太网时通常使用 广播 MAC 地址。因此它不是“交换机不知道地址所以泛洪”,而是“这个帧本来就是广播帧,所以交换机必须泛洪到同一广播域的其他端口”。



