集线器、交换机、路由器到底怎么区分?自己发的广播,自己能不能收到?
本文最后更新于5 天前,其中的信息可能已经过时,如有错误请发送邮件到184874483@qq.com

(4)若主机H3 发送一个目的地址为192.168.1.127 的IP 数据报,网络中哪几个主机会接收该数据埘传达传报丠僾甕具?

本题先给结论:设备 1 应选 路由器,设备 2、设备 3 应选 以太网交换机
理由很简单:设备 1 连接的是三个不同 IP 网段,必须负责三层转发;设备 2 和设备 3 只是分别把同一子网内的主机接到对应网关上,二层交换即可。

从地址看,图中实际有三个网段:

网段范围广播地址作用
192.168.1.0/26192.168.1.1 ~ 192.168.1.62192.168.1.63H1、H2 所在网段
192.168.1.64/26192.168.1.65 ~ 192.168.1.126192.168.1.127H3、H4 所在网段
192.168.1.252/30192.168.1.253、192.168.1.254192.168.1.255R 与设备 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 地址。因此它不是“交换机不知道地址所以泛洪”,而是“这个帧本来就是广播帧,所以交换机必须泛洪到同一广播域的其他端口”。

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇