Skip to content

Latest commit

 

History

History
373 lines (235 loc) · 12.2 KB

File metadata and controls

373 lines (235 loc) · 12.2 KB

IEEE 802.15.4

内容分为两部分,分别是其他计算

其他

角色 Coordinator(协调器) Router(路由器) End Device(终端设备)
功能 负责网络的初始化和管理,分配地址,维护路由表 转发数据包,扩展网络覆盖范围,参与路由功能 仅负责与父节点通信,不参与路由功能
通信能力 能与所有设备通信 能与协调器、其他路由器及终端通信 只能与父节点通信
电源需求 通常需要持续供电 需要持续供电 支持低功耗模式,适合电池供电
角色数量 网络中仅有一个 网络中可以有多个 网络中可以有多个
应用场景 网络的中心节点 用于扩展网络覆盖范围 低功耗传感器、终端设备

![[Pasted image 20250107171022.png]]

长地址64位,短地址16位

2.4G数据速率为250kbps

![[Pasted image 20250107171212.png]]

信标使能与非信标使能见ppt

![[Pasted image 20250108124615.png]]

![[Pasted image 20250108124624.png]]

![[Pasted image 20250107221650.png]]

![[Pasted image 20250107221657.png]]

![[Pasted image 20250108132318.png]]

![[Pasted image 20250108132323.png]]

![[Pasted image 20250108151747.png]]

AODV只考概念

AODV(按需距离矢量路由协议)是一种用于无线自组织网络(Ad hoc Network)的路由协议。它以按需方式发现路由,避免了传统路由协议中频繁广播路由表的问题,从而提高了网络的效率。

工作原理

  1. 路由请求(Route Request, RREQ)
    • 当源节点需要向目标节点发送数据包时,它会广播一个路由请求(RREQ)消息,试图寻找到目标节点的路径。
    • RREQ 消息在网络中被邻近节点接收,并向它们的邻居继续广播,直到到达目标节点或找到已知的目标节点路由。
    • 为了避免路由环路,RREQ 消息会包含序列号,每个中间节点只响应最新的路由请求。
  2. 反向路径的建立
    • 当节点转发 RREQ 消息时,会在其路由表中记录一个指向源节点的反向路径。
    • 反向路径将用于后续的路由回复(Route Reply, RREP)消息。
  3. 路由回复(Route Reply, RREP)
    • 当目标节点收到 RREQ 或者中间节点有目标节点的路由时,会向源节点发送一个路由回复(RREP)消息。
    • RREP 消息沿着 RREQ 消息建立的反向路径返回给源节点。
    • 源节点接收到 RREP 后,可以开始传输数据。
  4. 对称链路假设
    • AODV 假设网络中所有链路是双向的(对称链路),即任何节点之间的通信是可双向传输的。
  5. 动态路由维护
    • 如果网络拓扑发生变化,例如某条路径断开,AODV 会通过发送错误消息(Route Error, RERR)通知相关节点更新路由。
  • 按需路由:仅在需要通信时发现路径,减少了网络的开销。
  • 环路自由:通过使用序列号和时间戳避免路由环路。
  • 动态自适应:能够根据网络拓扑的变化动态调整路由。

计算

CSMA/CA 载波监听多址接入冲突避免

![[Pasted image 20250107172135.png]]

信标使能模式CSMA/CA有时隙,非信标使能无时隙

CCA:用于检测信道是否空闲的过程

![[Pasted image 20250107172433.png]]

  • NB:默认1,每次碰撞+1,超过某值说明传输失败
  • CW:至少检测的次数,每次检测无碰撞(空闲)后-1,直到CW是0后停止检测,才可以发送数据帧
  • BE:分散退避时间

特殊省电模式:

  • 竞争仅限于前 6 个时隙
  • 退避指数(BE)的范围限制在0~2

流程图解释 信标使能,有时隙

![[Pasted image 20250107173224.png]]

如图:

  • 初始化 默认NB=0,CW=2,意味着需要检测两次空闲 检查是否启用 Battery Life Extension,决定退避指数(BE)的范围
  • 碰撞检测 先进入退避时间,时间结束后CCA 如果信道忙,退避次数增加(NB),重新退避 如果信道空闲且满足多次检测(CW=0),则进入数据传输 注意,如果检测到信道忙,那么CW将立刻重置也就是必须连续CW次检测到空闲才可以 ![[Pasted image 20250107173441.png]]

非信标使能,无时隙 ![[Pasted image 20250107174558.png|850]]

此时CW是摆设

![[Pasted image 20250107174626.png|850]]

这一章后PPT中的三张图对应三种极端情况,略微解释了为什么需要多次CCA(避免碰撞ACK)

性能计算

![[Pasted image 20250107221542.png]]

![[Pasted image 20250107221549.png]]

如果仅仅指定了源地址,那么最大数据载荷就是118(127-5-4)

关键计算

$\displaystyle \large 1symbol=16μs$ backoffperiod 在IEEE 802.15.4 中的默认值为20 个symbols CCA默认占8符号周期 最终要计算一段数据传输出去消耗的时间吞吐率 $\displaystyle \large \frac{有效载荷数据大小}{消耗时间}$

其中包括下面几部分:

  1. 信道访问时间,即传输前的准备时间,由CSMA/CA产生 BE默认为3 InitialbackoffPeriod:退避初始周期 aUnitBackoffPeriod:退避单位周期 CCA:信道清除评估时间 $$ 最长访问时间=InitialbackoffPeriod+CCA=(2^{BE}-1)aUnitBackoffPeriod+CCA=7(2016)μs+(816)μs=7*320μs+128μs=2.368ms $$
  2. 有效载荷传输时间,最终要打包成物理帧的格式传输出去,帧头多余部分见物理帧结构 传输速率(2.4GHz):250kbps aMaxPHYPacketSize = 127B $$ \large 数据帧传输时间= \frac{(aMaxPHYPacketSize+SHR+PHR)8}{25010^3}=\frac{(127+5+1)8}{25010^3}=4.256ms $$
  3. 确认帧(ACK)传输时间 ACK不使用CSMA/CA $$ \large ACK时间=\frac{(ACK帧字节+SHR+PHR)8}{25010^3}=\frac{(2+1+2+5+1)8}{25010^3}=0.352ms $$
  4. 从发送模式切换到接收模式的时间 aTurnaroundTime $$ \large aTurnaroundTime=12symbols=0.192ms $$
  5. 重试时间(可能没有,视情况而定) 未收到ACK时,需要等待macAckWaitDuration后重试 $$ \large macAckWaitDuration = 54 symbol periods =0.864 ms $$

练习1 ![[Pasted image 20250108124813.png]]

  • 非信标使能,说明此时CW无效,只要空闲便可直接发送
  • 算法始终检测空闲,说明一次CSMA/CA即可
  • 需要ACK
  • 无重试
  • 最大数据帧有效载是114B

注:这里说的114B指的是MAC帧中(数据帧就是MAC帧的一种)有114B的有效载荷,而MAC帧,也就是PHY Payload的总大小默认取最大,也就是127B

此题情况与上文介绍公式的例题完全一致 ![[Pasted image 20250108130025.png]]

有效数据传输速率为: $$ \large 吞吐率=\frac{有效数据大小}{发送数据耗时}=\frac{1148}{7.16810^{-3}}=127232bps≈127kbps $$

练习2 ![[Pasted image 20250109144618.png]]

其中有25%的数据需要重传,且重传一次即可

如果有重传,则发送的耗时过程为:

CSMA/CA -> 数据帧发送 -> 等待ACK失败-> CSMA/CA -> 数据帧发送 -> 发送转为接收 -> ACK发送 重发前没有转换的时间,因为该时间包括在等待ACK的超时时间内了

总时间为: ![[Pasted image 20250108131052.png]]

14.656ms

根据上面的题,无重传的发送时间为$\displaystyle 7.168ms$ 因此,75%的数据需要$\displaystyle 7.168ms$,25%的数据需要$\displaystyle 14.656ms$

则平均数据帧传输时间:
$$ \large 7.1680.75+14.6560.25=9.04ms $$

假设有效载荷与上面一样,为114B,则: $$ \large 吞吐率=\frac{1148}{9.0410^{-3}}=100884bps≈101kbps $$ 如果问传输1MB的数据要多长时间,则为: $$ \large \frac{110241024}{114}*9.04=83150ms=83s=1min23s $$

地址分配

树状网络,网络中分为路由节点终端节点,还有一个协调器节点(祖宗) ![[Pasted image 20250108132358.png]]

其中三个重要参数:

  • $\displaystyle \huge l_{m}$:树状网络的总深度,即从协调器节点(Depth=0)到网络中最远的节点之间的跳数
  • $\displaystyle \huge C_{m}$:每个路由节点的最大子节点数量
  • $\displaystyle \huge R_{m}$:每个路由节点的最大子路由节点数量

计算方法,最简单是使用Cskip(d),本质上是计算两兄弟节点之间的序号差 ![[Pasted image 20250109150554.png]]

子节点的地址是根据父节点情况计算出来的

子路由节点与子终端节点的分配情况为: 假设深度为d的节点是父节点,该节点地址为$\displaystyle \large A_{parent}$,那么: $$ \huge 该节点的第n个子路由节点地址=A_{parent}+(n-1)*C_{skip}(d)+1 $$ $$ \huge 该节点的第n个子终端节点地址=A_{parent}+R_{m}*C_{skip}(d)+n $$

考试时,这里的所有公式都会给出,不用背

练习: 协调器地址0x0000,求路由节点7与终端节点11 ![[Pasted image 20250108134113.png|525]]

题中会给一些多余的条件,比如某某节点已经满载 根据条件,先把三大参数写出来

这里 Rm=2,Cm=4,Lm=3

计算Cskip(d)

  • Cskip(0)=13
  • Cskip(1)=5
  • Cskip(2)=1

所有节点都可以根据公式计算

根据序号可以看出来父节点的子节点排行老几

节点1是0节点的第一个路由节点

$$ \large 路由节点1地址=0×0000+(1-1)*C_{skip}(0)+1=0×0001 $$

节点7是节点1的第二个路由节点,节点1深度为d = 1,根据父节点节点1计算子节点节点7 套用公式$\displaystyle \Huge A_{parent}+(n-1)*C_{skip}(d)+1$

$$ \large 路由节点7地址=0×0001+(2 - 1)_C_{skip}(1)+1=0×0001+1_5+1=0×0007 $$

节点11是7的第二个终端节点,节点7深度为d = 2,根据父节点节点7计算子节点节点11 套用公式$\displaystyle \Huge A_{parent}+R_{m}*C_{skip}(d)+n$

$$ \large 终端节点11地址=0×0007+R_{m}_C_{skip}(2)+2=0×0007+2_1+2=0×000B $$

下图是更多示例 ![[Pasted image 20250108140837.png]]

路由

题目给出树状网络结构,要你求出从A点发送数据到B点的过程路径,即每一跳地址 一般结合上一题目,求地址后再求路由路径

有两种情况,当A是B的长辈的时候,逐级下传即可 当A不是B的长辈,应该传输给父节点,循环过程

![[Pasted image 20250108141419.png]]

公式考试会给出

练习 ![[Pasted image 20250108142007.png]]

每一跳地址都应当由计算得出,不能瞪眼,不然不得分

先算Cskip(d)

  • Cskip(0)=31
  • Cskip(1)=7
  • Cskip(2)=1

计算38 -> 45

瞪眼可知 C -> B -> A -> D -> 45

计算过程

$\displaystyle \large C+C_{skip}(d-1)=38+1=39<45$ 因此45不是C的后代传给父节点B $\displaystyle \large B+C_{skip}(d-1)=33+7=40<45$ 因此45不是B的后代传给父节点A

$\displaystyle \large A<45$$\displaystyle \large A+C_{skip}(d-1)=32+31=63>45$ 因此45是A的后代

又因为 $\displaystyle \large A+R_{m}C_{skip}(d)=32+47=60>45$ 因此45不是A的直接子终端设备,却在A的子路由节点范围内,因此下一跳是该子路由节点

$\displaystyle \large A+1+int\left( \frac{45-(A+1)}{C_{skip}(d)} \right)C_{skip}(d)=32+1+int\left( \frac{45-(32+1)}{7} \right)7=33+17=40$ 即下一跳*是地址为40的子路由节点D

由于 $\displaystyle \large D+R_{m}C_{skip}(d)=40+41=44<45$ ,因此目的地址45是D的子终端设备,直接路由即可

总过程与瞪眼法一致

计算38 -> 92

瞪眼可知 C -> B -> A -> O -> Q -> 92

计算过程

C -> B -> A 与上面相同

由于 $\displaystyle \large A+C_{skip}(d-1)=32+31=63&lt;92$ 因此92不是A的后代传给父节点O(协调器) 协调器没有父节点,目标节点一定在是O的子节点范围内,所以直接计算

$\displaystyle \large O+1+int\left( \frac{92-(O+1)}{C_{skip}(d)} \right)C_{skip}(d)=0+1+int\left( \frac{92-(0+1)}{31} \right)31=1+231=63$ 即下一跳*是地址为63的子路由节点Q

又因为 $\displaystyle \large Q+C_{skip}(d-1)=63+31=94&gt;92$ (注意这里还得满足$\displaystyle \large 92>Q$),所以92是Q的后代 且 $\displaystyle \large 92>Q+R_{m}C_{skip}(d)=63+47=91$,固92是Q的子终端节点,直接路由

总过程与瞪眼法一致