Thread协议栈总结_第1页
Thread协议栈总结_第2页
Thread协议栈总结_第3页
Thread协议栈总结_第4页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Thread 协议栈的基本原理重庆邮电大学“新一代无线通信与网络关键技术研究与实现”项目组2016.4Thread 协议栈的基本原理Thread 协议栈的修订版本: 2014 年 11 月 29 日初次修订, 2015 年 7 月 13 日第二次修订。Thread 协议栈的基本特性:Thread 协议栈是一种可靠、 性价比高、低功耗、无线 D2D( Device-to-Device)通信的开放标准。它是基于 IP 网络并在协议栈上能用多种应用层,是专门为连接家庭应用而设计的标准。Thread 协议栈的基本特性主要表现在以下6 个方面。1.网络的安装、启动、运行简单。 Thread 网络允许在必

2、要的时候进行自我修复并解决路由问题,对于网络的形成、连接以及维护 Thread 协议都是很简单的。2.安全性高。所有的设备只有在授权以及所有通信都是加密和安全的情况下才会加入到网络中。3.网络的规模可以是小型化的也可以是大型的。家庭网络中的设备可以是几个到上百个之间进行变化, 并且这些设备之间可以进行无缝通信。Thread 协议的网络层是在预期使用的基础上对网络的操作进行了优化设计。4.通信范围。典型的设备与网狀网络进行连接所提供的足够范围足以覆盖一个正常的家庭,并且Thread 协议栈的物理层使用扩频技术能够提供较为良好的抗干扰能力。5.无单点故障。 Thread 协议栈能够提供安全与可靠的

3、操作,即使在网络中的个别设备出现了故障或是离开网络,也不会对网络的可靠性与安全性造成影响。6.低功耗。 Thread 网络中的主机设备通过合适的工作周期能保证让两节AA类型的电池工作数年。Thread 协议栈Thread 标准是基于的物理层(PHY )与 MAC 层工作在 2.4 GHz 频带上,传输速率为 250 Kbps。Thread 协议栈使用的是版本的物理层(PHY )与 MAC 层。层是用基本的消息处理和拥塞控制, MAC 层包括设备用于来监听信道的 CSMA 机制,以及链路层处理重传和对相邻设备之间可靠通信和 ACK 帧的发送。 MAC 层中用于消息上的加密和完整性保护是基于密钥的

4、建立和协议栈软件上更高层的配置, 网络层是建立在这些基本机制的基础上,以保证网络中端到端通信的可靠性。无单点故障运行 Thread 协议栈的设备所组成的系统,没有一个设备能表现出单一节点的故障。尽管在系统中存在某些设备是在执行一特殊的功能,但是 Thread 协议栈的设计是可以把这样的设备进行替代,而对网络进行持续通信并没有什么影响。例如,一个正在休眠的子节点要求和父节点进行通信, 那么在通信的过程中其父节点就代表了单一故障节点。 但是休眠的设备在它的父节点不能用时, 能够并将选择另外一个父节点进行通信,并且这一过程对于用户而言是看不见的。虽然 Thread 协议栈是专门为没有单一节点故障而设

5、计的, 但是在某些拓扑结构下,可能会存在某些个别的节点没有备份的功能。 例如,在一个系统中只有一个网关,如果网关的能量已经耗尽, 网络中没有另外可供选择的网关, 网络也就没有办法切换到另外一个网关上面。Thread 网络中的路由器或边界路由器可以在网络的某些功能中承担Leader角色,Leader 要求在网络中做出决策。 例如,Leader 为网络中的路由器分配地址,同意新路由节点的请求。 Leader 节点是通过选举产生,当一个 Leader 节点失效后,另外一个路由器或是或边界路由器承担 Leader 的角色。这整个过程是网络中的节点自主完成的,可以确保网络中没有单一节点的故障。设备类型边

6、界路由器边界路由器是一种特殊类型的路由器,提供从网络到其它网络的连接,如: Wi-Fi 和以太网。边界路由器为用标准的网络提供服务,包括非网络路由的服务。在 Thread 网络中可能有一个或是多个边界路由器。路由器路由器为网络设备提供路由服务, 路由器还为试图加入网络的设备还提供连接和安全服务。路由器在设计的时候是不能够休眠的,但是路由器能够降级处理,能为能够符合条件的终端设备REEDs(Router-eligible End Devices)。路由器符合条件的终端设备REEDs能够成为路由器, 但是由于网络的拓扑或是条件的限制使得这些设备不能够成为路由器。 这些设备不能为 Thread 网络

7、中的其它设备提供数据的转发,或是为试图加入网络的设备还提供连接和安全服务。如果 Thread 网络中没有数据的交互, Thread 网络能够通过管理将 REEDs变为路由器。休眠的终端设备休眠的终端设备就是主机, 这些类型的终端设备只与其父节点进行通信,而且不能为其它设备提供数据转发。Thread 协议栈中的IP 栈结构寻址在 Thread 协议栈中的设备支持 IPv6 的寻址体系,设备配置一个或是多个本地网络地址 ULA(Unique Local Address)或是全局单播地址 GUA (Global UnicastAddress)。设备在网络启动的时候就选择一个/64 的前缀,并在整个

8、Thread 网络中使用它,前缀是分配给本地的全局ID ,通常称之为一个ULA 前缀,也通常称为局部网格 ULA 前缀。 Thread 网络可能有一个或是多个边界路由器,这些边界路由器可能有,也可能没有 ULA 前缀,这个可用于生成额外的 GUA 。在 Thread 网络中使用其扩展的 MAC 地址来推导其接口标识符, 并且从这个配置链路本地 IPv6 地址前缀与当地 fe80:0 / 64。Thread 网络中的设备还支持适当的多播地址。包括连接本地的所有节点的多播,连接本地的所有路由器的组播,以及本地域的组播。每一个加入到 Thread 网络中的设备都会分配一个16 位的短地址。对于路由器

9、而方,为其分配的地址主要是用到了高比特位的地址域,其低比特位设置成为0,用于表明该是路由器地址。对于子节点所分配的16 位短地址, 是使用其父节点的高比特位和适当的低比特位所构成的。这样就可以允许Thread 网络中的任何其他设备通过地址域中的高比特位简单了解子节点的路由位置。6LoWPANThread 网络使用了头部压缩, Thread 网络中的设备在发送消息的时候都会尽可能的压缩IPv6 数据包的头部,以达到传输数据包尽可能小的目的。在网状网络中,链路层转发的消息的更有效的压缩支持其头部压缩。Thread 网络不支持邻居发现,指定用DHCPv6 协议为路由器分配地址。终端设备和REEDs

10、的地址由其父节点路由器来分配地址。这个短地址是用来配置局部网格的ULA ,是用于内部网络通信。ICMPThread 网络中的设备支持ICMPv6( Internet Control Message Protocol version6)协议, ICMPv6 错误消息,以及重复请求和重复应答。UDPThread 网络中的设备支持UDP 协议,用该协议进行设备之间消息的传输。网络拓扑Thread 网络支持网络中所有路由器之间的全网连接。实际中的Thread 网络是基于网络中路由器的数量, 如果只有一个路由器或是边缘路由器,那么就会形成一个单一路由器的星形拓扑。如图为一个基本的Thread 网络拓扑。

11、MESH 网络Mesh 网络使无线电系统更可靠,它允许用网络中其它节的无线电进行转发数据。例如,如果网络中的一个节点不能直接给另一个节点发送消息,Mesh 网络可以通过一个或是多个节点进行转发消息。Thread 网络的一个本质特征是网络中的所有路由节点能够和其它的节点维持路由与连通,所以Thread 网络是不断的维护与连接。Thread网络中通常有一个限制, 网络中的活跃的路由节点限制在32 个。Mesh网络中的休眠的终端设备与REEDs 是不能作为其它设备的路由。这些设备发送消息给它们的父路由节点发送消息,父路由节点就为其子节点进行路由操作。路由与网络的连通Thread 网络通常有多达32

12、个活跃的路由器,在基于设备路由表的基础上,其路由表中的下一跳对消息进行路由转发。设备的路由表是通过协议栈来维护的,主要是用于确保所有的路由是连通的,以及为Thread 网络中的路由器更新路径。在 Thread 网络还用到了RIP(Routing InformationProtocol)算法。Thread网络中所有的路由器与其它的路由器交换它们到达其它路由的成本,而这个成本是放在 Mesh链路建立 MLE(Mesh Link Establishment)的一个压缩格式里面。MLE 消息在 Thread 网络, MLE消息用于建立和配置安全的无线链路、探测邻近设备、维护网络中的设备之间的路由成本。

13、 MLE消息在路由器之间的传输可以是通过单播,也可以是组播。当拓扑或是网络的物理环境发生了变化时, MLE消息要用于识别、配置、以及保护相邻设备之间的链路。 MLE消息还可以通过 Thread 网络的信道和 PAN ID 分发配置值,这些消息可以通过简单的洪泛方式进行转发。 MLE 消息也确保了链路的成本, 因为在设备间建立链路的时候, 考虑到了非对称链路成本。非对称链路成本在网络是常见的,要保证双向通讯是可靠的,考虑双向链路的成本是很重要的。路由发现与修护在低功耗的网络中按需路由发现协议是很常用的。但是,由于在路由发现请求进在网络中需要进行洪泛,对于网络的开销和带宽是很大的。在Thread

14、网络中所有的路由器周期性交换单跳的MLE广播包,MLE广播包中包含了所有的邻居路由器的链路成本信息、到达 Thread 网络中其它路由器的路径成本,通过这些周期性的、本地更新的信息,所有的路由器有到达Thread 网络中其它路由器的最新路径成本信息,因此,需路由发现协议是不需要的。在Thread 网络中如果一个路由器不能用了, 路由器可以在下一个最合适的路线上进行选择一个到达目的节点的路由器。 这种自我修护的机制允许路由器能够快速检测其它路由器何时离开了Thread 网络,同时计算出最佳的路径,保持和Thread 网络中的其它设备的连通。在Thread 网络中每一个方向的链路质量都是基于来自该

15、相邻设备传入消息的链路成本, 这个输入链路的成本被映射到一个链路质量,链路质量为从 0 到 3 的值,数值 0 代表着未知的成本, 链路成本是衡量接收信号强度指示值 RSSI(Received Signal Strength Indicator)接收信息的接收等级。在 Thread 网络中,到达网络其它任何节点的路径成本是到达这些节点的路径成本的总和是最小的。 路由器监控这些成本, 即使是网络的无线链路质量或网络拓扑的发生了变化,也会通过 Thread 网络中的 MLE周期性的广播消息获取新的成本值。路由成本是建立在两个设备间双向链路质量的基础上的。路由选择设备使用 IP 路由转发数据包。一个

16、设备的路由表包含着所在mesh网络中多个路由器压缩形式的ULA地址和适配的下一跳地址。距离向量路由是用于获取 thread 网络中路线上的路由器地址。 当路由路线在 thread 网络上 ,16 位地址中的高 6 位定义了目的路由器的地址。 如果目的地址的低位是 0, 则该路由器就是最终的目的地。 否则 , 目的路由器负责根据目的地址的低 16 位转发到最终的目的地。如果路由超过了 thread 网络的范围,则边界路由器负责通知提供特殊 prefix 服务的 leader ,并且这个消息被作为包含 MLE包在内的 thread 网络数据进行发布。而 thread 网络数据包括: prefix

17、信息、6lowpan 环境、边界路由器、 prefix的 DHCPv6 服务器。如果一个设备配置一个使用前缀的IPv6 地址 , 它使用SLAAC(无状态地址自动配置) 或适当的DHCP(动态主机配置协议) 来提供这些服务。 thread 网络数据也包括系统默认的边界路由器地址的服务列表。leader 被设计为可以指定一个REEDS升格为 Router 或者把一个 Router 降格为 REEDS。Leader 也被设定为可以安排路由地址。 但是,如果一个包含所有信息的 leader 路由正被其他路由占用并且变得不可及时,其他的独立路由就会无需用户干预的被选为leader 路由来接管这些信息。

18、重试和确认当 UDP消息被应用于 thread 协议栈,仍然需要可靠的信息传递。这时就会需要使用如下机制:1)、MAC层重试:每个设备都会从下一跳中获得 MAC确认,如果没有接收到 MAC 确认消息,就进行 MAC层的消息重试。2)、应用层重试:应用层可以决定消息是否可靠的关键参数,如果需要,其可以实施自己的重试机制。Thread 网络的加入一个设备加入 thread 网络之前,要经过如下步骤:1)、发现2)、调试3)、融合发现一个加入设备发现了 thread 网络,然后建立路由链路为下一步的调试做准备。这个加入设备可以扫描所有的信道, 每个信道的问题请求信标, 并等待信标回应。这个信标包括一

19、个负载, 这个负载有包含这个网络的服务集标识符 (SSID)和允许加入信标的命令 (如果这个 thread 网络接收这个新成员的话) 。一旦设备发现 thread 网络,它将使用 MLE消息去建立一个邻居路由,直到它可以进行下一步的调试。如果设备已经调试信息 , 则发现步骤就不再是必要的了,因为它已经获得的了足够的信息去直接附着在 thread 网络中。调试Thread 网络提供了两种调试方法:1) 、使用一个外带的方法去直接给设备配置调试信息, 调试信息允许加入设备连接到适当的 thread 网络以便其尽快加入网络。2)、建立一个调试会话连接加入设备和调试应用程序的智能手机, 平板电脑 ,

20、或者网络。调试会话安全地将调试信息传递给加入设备,当完整地完成调试会话后,加入设备就可以适当的加入 thread 网络中。注意:典型的提供加入服务的方法仅仅通过一个信标负载附着许可命令,但是信标负载并不在 thread 网络中使用。这种方法是最常用在按钮加入没有用户界面或带外信道的设备中。 这种方法用在存在多个可用的网络的情况下设备的转向问题并且还具有一定的安全性。融合加入设备通过调试信息与一个父路由建立连接,然后凭借父路由通过交换链路配置消息融入thread 网络。设备要么作为终端节点要么作为一个thread 网络,然后由父路由分配一个16 位的短地址,如下图所示:MLEREED融入使用已有密钥融入thread 网络一旦,一个 REED融入 thread 网络,它可以潜在地发送地址请求成为一个路由器于是它被 leader 路由器分配一个路由地址。MLE消息如果一个设备已经融入thread 网络,那它就需要各种消息去维持自身参与thread 网络。 MLE提供这样一个服务,它可以分发thread 网络数据并贯穿整个网络,并且可以交换链路开销和邻居节点之间的安全性的帧

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论