1、广播通信基础:无线广播的本质

各位同学,咱们今天聊点最基础的——无线广播。你别看它听起来简单,但WiFi配网、广告推送这些日常功能,底层全靠它撑着。

什么叫无线广播?说白了,就是一个设备发消息,周围所有能收的设备都能收到。就像你在广场上喊一嗓子,方圆百米的人都听得见。无线广播也是这样,只不过载体换成了电磁波。

我记得刚入行那会儿,总觉得广播就是“发出去就完事了”。后来做项目踩了坑才明白——广播虽然简单,但它的行为模式和单播、组播完全不同。选错了,轻则丢包,重则整个网络瘫痪。

1.1 广播 vs 单播 vs 组播:一张表说清楚

咱们先看个对比,心里有个底:

通信模式 发送方式 接收方 典型场景
单播 一对一 指定设备 网页浏览、文件下载
组播 一对多(指定组) 加入组播组的设备 视频会议、IPTV
广播 一对所有 同一网段内所有设备 ARP请求、DHCP发现、WiFi配网

你想想看,单播就像你给朋友打电话,只有他一个人能听到。组播就像你在公司群里@所有人,只有群里的人能看到。广播呢?就像你在公司广播里喊话,整栋楼的人都听得见。

这里有个关键点:广播不保证送达,也不保证顺序。它就是个“尽力而为”的机制。我在项目中遇到过好几次,有人以为广播像TCP一样可靠,结果丢包了还在那死等——嗯,这就是没搞清楚广播的本质。

1.2 WiFi广播的典型应用场景

广播在WiFi世界里到底干嘛用?我挑两个最常见的说说。

1.2.1 智能家居配网

这是广播最经典的应用。你买了个智能灯泡,手机怎么告诉它WiFi密码?

流程大概是这样的:

  1. 灯泡上电,进入配网模式。它打开一个临时的AP(热点),或者直接监听广播包。
  2. 手机连上灯泡的热点,或者在同一局域网内,发送一个包含WiFi SSID和密码的广播包。
  3. 灯泡收到广播包,解析出密码,然后自己去连路由器。

为什么用广播?因为灯泡刚上电,根本不知道手机在哪。广播是唯一能让“陌生人”通信的方式。我做过一个项目,客户非要用单播去配网,结果灯泡收不到手机发来的包——因为灯泡还没加入网络,单播根本找不到目标。

个人经验:配网广播包通常用UDP广播,端口可以自定义。但要注意,有些路由器会过滤广播包,尤其是跨VLAN的时候。我建议你在发送广播包时,同时发几个组播包做备份——这是我在一个智能家居项目里踩坑后总结出来的。

1.2.2 广告推送

你走进商场,手机突然弹出一条“欢迎光临”的通知。这背后也是广播。

商场里的AP会定期发送Beacon帧,里面携带了服务集标识(SSID)和一些厂商自定义信息。手机扫描到这些Beacon帧,就能识别出商场的WiFi网络,甚至直接弹出认证页面。

这种广播叫“被动扫描”。手机不需要主动发任何包,只要听就行了。省电,而且对用户透明。

注意:广播包虽然方便,但别滥用。一个WiFi网络里广播包太多,会拖慢所有设备的性能。我曾经见过一个客户,在AP上每秒发100个广播包,结果整个办公室的网络卡成PPT。广播是共享介质,你发得越多,别人能用的带宽就越少。

1.3 广播通信的核心逻辑图

下面这张图展示了广播通信的基本流程。我画得比较简洁,但核心逻辑都在里面了。

WiFi广播通信流程图 WiFi广播通信流程 发送端(手机/AP) UDP广播包 目标IP: 255.255.255.255 接收端1(灯泡) 接收端2(插座) 接收端3(传感器) 关键点 广播包发送一次,所有接收端都能收到。但接收端不回复ACK,发送端不知道谁收到了。

这张图里,发送端发了一个UDP广播包,目标IP是255.255.255.255。这个包会经过WiFi路由器,转发给同一网段内的所有设备。灯泡、插座、传感器都能收到,但它们不会回复——这就是广播的“单向性”。

核心结论:广播适合“一对多、不要求回复”的场景。WiFi配网就是典型——手机发密码,灯泡收密码,不需要灯泡说“我收到了”。如果非要确认,那就得在应用层自己加握手协议。

1.4 避坑指南:广播的几个“坑”

我做WiFi开发这么多年,广播相关的坑没少踩。挑几个典型的说说:

  • 广播包被路由器拦截:有些路由器默认会丢弃广播包,尤其是跨子网的时候。我曾经在调试一个配网功能时,死活收不到广播包,最后发现是路由器开启了“广播风暴抑制”。
  • 广播包大小限制:WiFi的MTU一般是1500字节,广播包不能超过这个值。如果你要发配网信息,SSID+密码+校验码,一般几十个字节就够了。但如果你往里面塞证书、固件……嗯,那就要分片了,分片后的广播包更容易丢。
  • 广播包没有重传机制:丢了就是丢了。所以配网时,手机通常会连续发5~10次广播包,间隔100~200毫秒。这样就算丢了一两个,灯泡也能收到。
我的习惯:在写配网代码时,我会在广播包里加一个序列号。接收端收到后,如果发现序列号重复,就丢弃。这样能避免重复处理同一个配网请求。这个小技巧帮我省了不少调试时间。

1.5 小结

广播通信,说白了就是“喊一嗓子,爱谁谁”。它简单、高效,但不靠谱。WiFi配网用它,是因为配网阶段设备之间没有建立连接,广播是唯一可行的方式。广告推送用它,是因为它不需要用户主动参与,省电又省心。