6LoWPAN协议

IPv6 over Low-Power Wireless · 低功耗IPv6适配

定义与背景

6LoWPAN(IPv6 over Low-Power Wireless Personal Area Networks)是IETF定义的适配层协议,使IPv6能够在IEEE 802.15.4等低功耗无线链路上运行(如Zigbee、Thread)。802.15.4的MTU仅127字节,而IPv6报文头至少40字节,加上UDP/TCP等开销后无法直接承载。6LoWPAN通过头部压缩、分片重组、地址简化等技术,解决了IPv6与低功耗无线网络之间的适配问题。

核心机制

关键技术

  • 头部压缩:将IPv6 40字节头部压缩至数字节,适配短帧
  • 分片与重组:支持IPv6大数据包在802.15.4上的分片传输
  • Mesh路由:支持多跳转发,扩展网络覆盖
  • 端到端IP互通:设备可直接与互联网通信,无需网关协议转换

与蜂窝物联网的互补

6LoWPAN面向非蜂窝、低功耗、短距离或中距离的局域网场景;NB-IoT、LoRa等则面向广域、运营商网络。在智能家居、楼宇等场景中,6LoWPAN+ Zigbee/Thread 可形成本地局域网,再通过网关汇聚至蜂窝网络或云平台,实现"端-边-云"协同。

典型应用

智能家居

传感器、照明、温控等设备通过Zigbee/Thread组网

工业传感器

车间内温湿度、振动等数据采集

楼宇自动化

照明、空调、门禁等设备互联

智慧农业

大棚内传感器网络,通过网关汇聚上报

达希物联以蜂窝物联网卡为主营业务,6LoWPAN多用于非蜂窝的本地局域网。在智能家居、工业传感器等场景中,客户往往采用"6LoWPAN/Zigbee 局域网 + 蜂窝网关"的混合架构:本地设备通过6LoWPAN互联,网关通过达希物联的物联网卡将数据汇聚至云平台。达希物联在网关类产品、边缘设备连接方案中,为这类混合架构提供稳定的蜂窝回传能力,确保本地数据可靠上传至云端。

上下文标识与短地址压缩的取舍

6LoWPAN并不改写IPv6,它在802.15.4帧和IPv6之间加一层适配。物理层帧长只有127字节,扣掉帧控制、地址和链路层安全头之后,留给网络层的空间经常只剩几十字节。压缩时先判断源地址和目的地址能否用链路本地前缀或上下文标识代替:上下文由边界路由器下发,用很短的编号代表一段公共前缀。节点如果拿着过期编号去压缩,对端解出来的地址会落到错误网段,表现是邻居之间还能通信,一过网关就没有路由。

短地址压缩只在个域网内部成立。报文要离开本地mesh时,边界路由器必须把完整IPv6地址还原再转发。应用层若已经塞进较长的文本,头部压缩也救不了整帧,应当改成分片,或把载荷改成更紧凑的二进制。链路层加密一打开,辅助安全头会再占一截,组包长度要按加密后的帧重新核算,不能沿用明文时的经验值。

分片重组超时怎样拖垮低功耗节点

超过单帧的数据报会被切成带分片头的若干片,接收端按数据报标签和偏移重组。低功耗节点的重组缓冲区很小,标签若和邻居冲突,后到的分片会把尚未组完的半成品挤掉。发送端把片间隔拉得太开时,接收端在超时前等不齐最后一片,整包丢弃,应用层只看到偶发超时,空口上其实已经传了大半。排查时要同时看序号是否连续、重组定时器是否短于路由抖动的周期。

多跳转发时每一跳都可能重传分片,跳数一多,同一数据报的各片到达顺序更乱。重组端可以容忍乱序,但不能无限缓存。电池节点若被指定为中继,分片风暴会把它从休眠里反复叫醒。设计上应让叶子节点只发能进单帧的读数,大包留在边界路由器一侧聚合后再上行。

边界路由器失步时的现场判据

边界路由器负责上下文分发、邻居发现代理,以及分片重组后的转发。失步时常见三种现象叠在一起:节点用短地址互相可达,出了网关却没有下一跳;云端看到网关在线,传感器地址却对不上;加密开启后只有部分节点能入网。先核对上下文版本是否一致、叶子节点的下一跳是否还在网内、网关上行是否只是“链路通”而适配层并未同步。回传走蜂窝时,物联网卡只承担广域出口,替代不了适配层的压缩和分片。

达希物联在这类混合架构里提供的是网关侧的蜂窝回传和模组接入,而不是替每一只传感器实现6LoWPAN协议栈。选型时把本地帧长、加密开销和网关上报周期分开估算,避免把传感器的休眠参数直接套到通信模组上。若要比较网关汇聚之后走哪一种广域空口,同一知识库里的WiFi物联网讲的是另一类本地出口,不能和6LoWPAN的适配层混成一个参数表。

叶子节点的苏醒时刻要让重组先做完

适配层的重组缓冲和节点休眠必须放在同一条时间线上看。叶子节点若在最后一片到达之前就关掉射频,醒来时数据报标签可能已经被邻居占用,半成品被覆盖,应用层只会再发一整包。网关的汇聚周期如果短于最慢那只传感器的苏醒周期,云端会连续看到空窗,把“还在睡”记成“已经离网”。让叶子只发送能装进单帧的读数,网关再按自己的节奏把多只节点拼成一条上行,才能同时保住电量和完整序号。

拼包时要留下每只节点自己的序号和采样时刻,聚合后的报文才能指出是哪一只没有刷新。序号停住而网关仍在线,问题在本地mesh;序号在走而蜂窝上行中断,问题在网关出口。达希物联模组的在线时长应按网关聚合周期来观察,不能拿传感器的休眠间隔去要求模组一直醒着。两边时钟若差出一轮上报,平台上的掉线告警会成对出现,先对时再判断链路。


相关链接

返回通信类知识库