前面几节默认"一个发、一个收",但网络里其实有三种收件人形态:单播(1 对 1,只给一台)、广播(1 对网段内全部,所有人被迫收)、组播(1 对指定的一群,入了组的才收)。三句话记牢:广播出不了网段、组播要先进群、日常几乎全是单播。
一、为什么还要分"接收方是谁"
3.8 解决了"送到哪台设备",但还有另一半问题没答:这个包该给几台设备?
- 网页、下载、聊天 → 只给一台
- "谁有 IP 地址,给我发一个"(找 DHCP 服务器)→ 得问一圈人
- 一路视频直播 → 只给"订阅了的人",但不能打扰没订阅的人
三种需求,对应三种通信形态:
| 形态 | 收件人 | 类比 |
|---|---|---|
| 单播 Unicast | 1 台 | 打电话 |
| 广播 Broadcast | 本网段全部 | 小区大喇叭 |
| 组播 Multicast | 入组的一群 | 微信群 |
二、单播:一人一封
- 一个包,目的地址写一个,只送到那一台
- 这是网络的日常——九成以上的流量都是单播
- 一对一还有个隐性好处:回话简单。3.5 的握手和确认,就是单播思想的产物——只跟正在对话的那一方对账,别人一概不管
三、广播:全小区大喇叭
一个包,本网段内所有设备都得收("网段"就是 3.8 讲的网络部分划出来的范围)。
广播地址有两种写法:
| 类型 | 长相 | 用在什么时候 |
|---|---|---|
| 定向广播 | 主机部分全 1 —— 192.168.1.255 |
已经知道自己在哪个网段,要叫全段 |
| 受限广播 | 255.255.255.255 |
还不知道自己在哪个网段时(比如刚开机找 DHCP) |
本节最关键的一条规矩:
路由器默认不转发广播。 广播被死死关在它出生的那个网段里。
谁在用广播:
- DHCP——开机时喊一嗓子"谁给我发个 IP?"(2.4 讲过 DHCP 发门牌)
- ARP——喊"谁是
192.168.1.1?报上你的 MAC 来"(3.2 那张arp -a名册,就是这么一问一答攒起来的)
代价也很实在:所有设备都被迫处理一遍,没法拒收。设备一多,广播就成了噪声源(广播风暴)——这正是 3.8 说"分段能隔离广播"的原因。
四、组播:只在群里说
一个包,只送给"加入了这个组"的设备。
- 地址范围:
224.0.0.0~239.255.255.255(3.8 提过一句"224 以上是组播和保留",本节正式认脸) - 两个关键机制:
- 入组(用 IGMP 协议报名):想收的人先报名;没报名的既收不到、也不被打扰
- 发送方只发一份:复制和转发由网络设备负责——这才是组播真正省事的地方
- 谁在用:
- 运营商 IPTV 直播(一个频道送给所有订了这个频道的机顶盒)
- 视频会议、部分在线课堂
- 路由协议互相通告——OSPF、RIP 这些"动态路由的暗语"(3.7 提过)走的就是组播
- 单播发 100 次:发送方自己发 100 遍,它累、沿线的链路也累
- 组播发 1 份:发送方只发一次,网络设备在需要分岔的地方复制
判据是"发送方发几份",不是"几个人收到"。所以单播发多次虽然也是一对多,但它不是组播。
五、顺带认得第四种:任播(Anycast)
一组设备共用同一个地址,谁离得近就把包送给谁。DNS 根服务器、大型网站的 CDN 节点常用这一招——你从宜昌访问,可能落到武汉的节点;从北京访问,落到北京的节点。会认级别,知道有这么回事即可。
六、三种形态对照表
(配合上面两张图看)
| 单播 Unicast | 广播 Broadcast | 组播 Multicast | |
|---|---|---|---|
| 收件人 | 1 台 | 本网段全部 | 入组的一群 |
| 地址长相 | 普通 IP | 主机位全 1(192.168.1.255)或 255.255.255.255 |
224.0.0.0 ~ 239.255.255.255 |
| 能否跨网段 | 能 | 不能(路由器拦下) | 能(需组播路由支持) |
| 要不要"报名" | 不用 | 不能拒收 | 必须入组 |
| 典型用途 | 网页 / 下载 / 聊天 | DHCP、ARP | 直播、视频会议、路由协议 |
| 类比 | 打电话 | 小区大喇叭 | 微信群 |
七、动手 Demo23:把三种形态找出来
- 看 ARP 名册的来历(回看 3.2 的实验):
arp -a - 表里那些"IP ↔ MAC"配对,全是广播问出来的答案:当时喊的是"谁是这个 IP"
-
换台设备接入、或者重启路由器,名册会变——因为它重新问了一遍
-
看广播地址:
ping 192.168.1.255 - 通或不通都正常:多数系统默认不回应 ICMP 广播请求(Windows 默认不回),别当成故障
-
想的话把最后一段换成你家网段的号(先
ipconfig确认自己的网段,3.8 学的算法) -
试组播地址:
ping 224.0.0.1 224.0.0.1是"本网段所有主机"这个组的编号,几乎所有设备默认都在这个组里-
常见现象是你自己的电脑回了自己(其他设备多不响应)——理解成"验票入场"就行,没回音不代表组播没工作
-
30 秒实验:盯着"非单播数据包"看(3.6 那道题的答案)
netstat -e - 3.6 时你看过这里的「单播数据包」,本节补上另一半:「非单播数据包」= 广播 + 组播
- 记下数字,什么都不做等半分钟,再跑一遍——数字往往会自己涨
- 原因:后台一直在悄悄做事(ARP 查询、DHCP 续租、各种组播发现),这些都不是单播
-
结论:网络里从来不只有单播,只是你肉眼看得见的网页、下载恰好都是单播
-
可选:
netsh interface ipv4 show joins - 看本机加入了哪些组播组——输出里
224.0.0.x那几行就是 - 你会发现自己"莫名其妙"就在好几个组里(比如 224.0.0.1、224.0.0.251),全是系统自动加入的
- 三种通信形态各自把包送给谁?
- 广播为什么出不了网段?谁在拦它?
- 广播地址有哪两种写法?各用在什么场合?
- 组播和"给每个人各发一份单播"差在哪里?
- DHCP 和 ARP 为什么必须用广播?
netstat -e里的"非单播数据包"指的是什么?
答案:
① 单播 = 1 台设备;广播 = 本网段内全部设备;组播 = 加入了这个组的一群设备。
② 因为路由器默认不转发广播——广播被限制在出生的那个网段内。这也是"分段能隔离广播"(3.8)的原因。
③ 定向广播(主机部分全 1,如 192.168.1.255,指向某个具体网段)和受限广播 255.255.255.255(永不跨网段,用于"还不知道自己在哪个网段"时找 DHCP)。
④ 判据是"发送方发几份":组播发送方只发一份,复制与转发交给网络设备;发 N 份单播则是发送方自己发 N 次,发送方和沿线链路都更累。
⑤ 因为它们要找的对象还不知道是谁:DHCP 开机时不知道服务器地址,ARP 不知道某个 IP 对应的 MAC,只能"喊一嗓子问全网段"。
⑥ 广播包 + 组播包的总和,也就是单播之外的所有包。
常见误区:
- ❌ "广播能传到互联网上" → 路由器默认不转发广播,广播只在网段内活动
- ❌ "组播就是广播的另一个名字" → 广播是网段内所有人被迫收;组播只有入了组的人才收
- ❌ "给多个人发就是组播" → 判据是发送方发几份;单播发多次也是一对多,但那不是组播
- ❌ "
255.255.255.255就是本网段的广播地址" → 那是受限广播;本网段的定向广播是192.168.1.255(主机位全 1) - ❌ "
224.0.0.1属于某台设备" → 它是一个组播组的编号,不是谁的门牌,没人"拥有"它 - ❌ "广播多发点没关系" → 网段内每台设备都得处理一遍,广播泛滥会拖慢整段网络(广播风暴)
八、下一步学什么
- ☑ 3.10 IP地址的结构(单播IP地址) ✅ 已完成 —— 点此复习:本节讲的"定向广播地址",下一节把它放进地址表里当那个"不能给设备的尾巴"。
相关笔记
- IP地址的结构(单播IP地址) —— 本节的"定向广播"是它表里那三个不能配给设备的号之一
- 通信的对象(IP地址) —— "网段"和广播地址的出处,本节讲的是"一个包能覆盖多少台"
- 数据的称谓(信息、数据段、数据包、数据帧) —— "非单播数据包"这个词的原始出处,本节把它拆成广播 + 组播
- 负责传输数据的网络分层(网络接口层与网际层) ——
arp -a那张街坊名册,原来是广播问出来的 - 组成网络(局域网的构建) —— DHCP 发门牌,靠的就是开机那一声广播
- 数据的发送和接收(IP、IP数据包、路由) —— 路由器"默认路由"的另一面:它默认不转发广播
- 网络为谁而生的(私有网络与互联网) —— 广播出不了网段,也是私网边界清晰的一个副产品