news 2026/8/29 4:27:55

详解无线网络的“防撞”智慧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
详解无线网络的“防撞”智慧

无线网络(Wi-Fi)和蓝牙是我们每天都在用的技术,但你有没有想过:当几十台手机同时在一个房间里抢网速时,为什么信号没有在空气中撞成一锅粥?

答案在于一套精心设计的“交通规则”。今天我们结合6张核心技术图,深入浅出地聊聊无线通信是如何维持秩序的。


第一章:Wi-Fi 的基本礼仪 —— CSMA/CA

Wi-Fi 遵循的核心原则是CSMA/CA (载波侦听多址/碰撞避免)。听起来很拗口?其实它就是一个“非常有礼貌的对话者”。

1.1 核心流程:先听后说

这是 Wi-Fi 发送数据的基本动作:

  1. DIFS (分布式帧间间隔)

    • 图解:看左上角,Sender 在发送数据前,必须先等待一段DIFS时间。

    • 比喻:就像大家在聊天,你想说话前,得先等别人把话说完,并且空气安静了一小会儿(DIFS),确认真的没人说话了,你才能开口。

  2. Backoff (随机退避)

    • 图解:DIFS 之后那个Backoff的斜线阴影区。

    • 比喻:如果空气一安静,所有人都同时开口,肯定会吵架(碰撞)。所以 Wi-Fi 规定:等完 DIFS 后,每个人心里默数一个随机数(比如你数3秒,我数5秒)。谁先数完谁先说。

  3. SIFS (短帧间间隔)与 ACK

    • 图解:数据发完后,Receiver 回复ACK之前等待的时间叫SIFS。注意看,SIFS 比 DIFS 短

    • 为什么?因为ACK是用来确认“我听到了”的,这非常重要。缩短等待时间(SIFS < DIFS),就是为了让ACK享有特权插队,防止别人以为信道空闲而打断确认。


第二章:看不见的死角 —— 隐蔽与暴露终端

现实世界是不完美的,有时候“听”是不够的,因为存在视线死角

2.1 隐蔽终端问题 (Hidden Node Problem)

  • 场景:A 和 C 分别在两头,B 在中间。A 能连 B,C 能连 B,但A 和 C 互相听不见(超出了范围)。

  • 后果:A 正在跟 B 说话。C 竖起耳朵听,发现“没人说话”(因为听不到 A),于是 C 也冲着 B 说话。结果 B 的耳朵里同时进了两股声音,数据全毁。

  • 比喻:你在餐厅角落跟服务员点菜,另一个角落的人听不到你在说话,也大声喊服务员。服务员夹在中间,两边的话都听不清。

2.2 暴露终端问题 (Exposed Node Problem)

  • 场景:S1 正在给 R1 发数据。S2 在 S1 旁边,想给远处的 R2 发数据。

  • 后果:S2 听到 S1 在说话,心想“哎呀信道忙,我得礼貌等待”。实际上,R2 离 S1 很远,S2 就算说话也干扰不到 R1。S2白等了,浪费了网速。

  • 比喻:你听到邻居在打电话,你就不敢在自己家跟家人说话了,生怕打扰邻居。其实邻居的电话线跟你完全没关系,你这是“过度礼貌”。


第三章:终极解决方案 —— RTS/CTS 与 NAV

为了解决上面那些“看不见”的问题,Wi-Fi 引入了一套预约机制

3.1 四次握手:RTS/CTS

在发长数据(DATA)之前,先发两个短包探路:

  1. RTS (请求发送):发送方大喊一声:“我想发数据,大概要占 5 秒,可以吗?”

  2. CTS (清除发送):接收方回复一声:“可以,准了!其他人请闭嘴 5 秒。”

  3. 作用

    • 解决隐蔽终端:回到 Image 3,虽然 C 听不到 A 的 RTS,但C 能听到 B 的 CTS!一旦听到 CTS,C 就知道 B 没空,乖乖闭嘴。

3.2 虚拟载波侦听:NAV

  • 绿色长条 (NAV):注意看下方的NAV (RTS)NAV (CTS)

  • 原理:RTS 和 CTS 包里都带有一个数字(比如“持续 5ms”)。所有听到的围观群众(Other stations),不管能不能听到对方,只要收到了这个数字,就会在自己肚子里设一个闹钟(NAV Timer)。

  • 虚拟侦听:在闹钟响之前,即使空气里静悄悄的,我也认为信道是忙的,绝对不捣乱。这就是网络分配矢量 (NAV)——一种虚拟的“请勿打扰”牌子。


第四章:蓝牙与接触追踪 —— 另一种连接

除了 Wi-Fi,我们的生活还离不开蓝牙(Bluetooth Low Energy, BLE)。展示了 BLE 协议栈以及新加坡TraceTogether (BlueTrace)的工作原理。

4.1 BLE 协议栈 (左侧)

  • Physical Layer:物理层,负责发无线电波。

  • Link Layer:链路层,负责管理连接状态(Advertising/Scanning)。

  • Host & App:上层应用,处理具体的数据。

4.2 接触追踪的握手 (右侧)

这幅图解释了疫情期间接触追踪 App 是如何工作的:

  1. 角色分配:手机既是Advertiser (广播者)也是Scanner (扫描者)

  2. Discovery (发现):手机不断向外发送广播包(ADV_IND),就像在喊:“我在這,這是我的临时ID。”

  3. Handshake (握手)

    • 当两部手机靠近时,Scan 到了对方。

    • BlueTrace 协议通过Encounter messages(相遇消息)交换加密的身份信息。

    • 关键点:这不需要如果你连 Wi-Fi 那样复杂的 RTS/CTS 避让,因为 BLE 的数据包极短,且跳频速度极快,它们更像是在人群中快速交换名片,而不是长篇大论的演讲。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/26 8:37:38

nginx安装部署

执行如下脚本即可编译安装指定版本#!/bin/bashSRC_DIR/usr/local/src NGINX_URLhttp://nginx.org/download/ NGINX_FILEnginx-1.29.4TAR.tar.gz NGINX_INSTALL_DIR/apps/nginx CPUSlscpu |awk /^CPU\(s\)/{print $2} . /etc/os-releasecolor () {RES_COL60MOVE_TO_COL"ech…

作者头像 李华
网站建设 2026/8/25 22:26:11

基于SpringBoot的大学生创新创业项目管理系统毕设

博主介绍&#xff1a;✌ 专注于Java,python,✌关注✌私信我✌具体的问题&#xff0c;我会尽力帮助你。 一、研究目的 本研究旨在构建一个基于SpringBoot的大学生创新创业项目管理系统&#xff0c;以实现以下研究目的&#xff1a; 首先&#xff0c;通过构建该系统&#xff0c;…

作者头像 李华
网站建设 2026/8/26 20:01:05

基于SpringBoot的学生信息管理系统毕业设计源码

博主介绍&#xff1a;✌ 专注于Java,python,✌关注✌私信我✌具体的问题&#xff0c;我会尽力帮助你。 一、研究目的 本研究旨在开发并实现一个基于SpringBoot框架的学生信息管理系统&#xff0c;以满足现代教育信息化背景下对学生信息管理的需求。具体研究目的如下&#xff…

作者头像 李华
网站建设 2026/8/23 12:05:25

Windows CMD(命令提示符)常用指令大全

文章目录 前言一、 文件与目录管理&#xff08;最常用&#xff09;二、 系统信息查询三、 网络测试与连接四、 进程管理五、 其他实用指令六、 管理员权限说明总结 前言 只提供常用的指令&#xff0c;便于学习&#xff0c;也不容易乱。面面俱到的话建议学习官方文件或者其他提…

作者头像 李华
网站建设 2026/8/29 4:21:31

人群仿真软件:SimWalk_(6).人群流特性及参数设置

人群流特性及参数设置 在人群仿真软件中&#xff0c;人群流特性及参数设置是至关重要的环节。这些参数不仅影响仿真结果的准确性&#xff0c;还决定了仿真场景的逼真度。本节将详细介绍如何在SimWalk中设置和调整人群流特性&#xff0c;包括行人的行走速度、密度、行为模式等&a…

作者头像 李华