一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

低数据速率网络中的安全数据连接的制作方法

2022-06-08 20:20:17 来源:中国专利 TAG:


1.本公开涉及用于低速率网络中的安全数据连接的系统和方法。


背景技术:

2.近年来,网络连接的智能设备激增。这些智能设备包括家庭、汽车或办公室内的设备,智能医疗植入物或工厂和农场内的感测设备。此类设备可以形成物联网(iot),物联网是嵌入有传感器、软件以及其他技术的物理对象的网络,目的是通过通信网络与其他设备与系统连接和交换数据。
3.由于iot设备通常是小的,具有有限的功率和处理复杂性,因此iot设备通常通过低功率、低数据速率的通信网络进行通信。另外,一些iot网络是网状网络,其中iot设备经由网状网络连接直接地、动态地并且非分层地连接到一个或多个其他设备,并与其他设备协作以有效地路由去往和来自节点的数据。因此,已经开发了适用于iot网络的低功率、低数据速率、网状网络通信的通信协议。
4.通常期望这些智能设备能够在本地网状网络之外与全球网络(诸如互联网)上的设备通信,以发送和接收数据。通过全球网络进行通信的通信协议要求可以是复杂和多方面的。因此,此类通信协议可能不适用于低功率、低速率、低处理能力的设备,并且遵守此类协议可能导致来自iot设备的通信的效率和吞吐量降低。
5.因此,期望有一种装置来促进操作适用于低功率、低复杂性设备的协议的iot节点与操作适用于全球通信的通行协议的全球主机之间的有效通信。
6.贯穿整个说明书,对现有技术的任何讨论都不应被视为承认此类现有技术是广为人知的或构成该领域公知常识的一部分。
7.贯穿本说明书,术语“包含”或诸如“包含有”或“包含了”的变体将被理解为暗示包括所陈述的元件、整数或步骤、或元件组、整数组或步骤组,但不排除任何其他元件、整数或步骤,或元件组、整数组或步骤组。


技术实现要素:

8.本公开提供了一种路由器方法和设备,其使用本地网络内的可压缩链路本地源地址和目的地地址以及全球网络内的全球唯一的源地址和目的地地址,使被设计用于低功率、低数据吞吐量的本地网络内的节点能够与全球网络内的节点通信。本地网络内的链路本地源地址和目的地地址的可压缩性为有效载荷数据提供了增加的带宽并且减少了有效载荷的分段(fragmentation)。
9.在一些示例中,提供了一种由边缘路由器执行的用于本地网络与全球网络之间的通信的方法。该方法包括存储映射数据,该映射数据包括用于全球网络中的多个主机的相应全球网络地址和相应本地网络地址。映射数据还包括用于本地网络中的多个主机的相应全球网络地址和相应本地网络地址。该方法还包括接收来自本地网络中的多个主机中的一个的第一数据分组。第一数据分组包括作为本地网络中的主机的本地网络地址的第一源地
址、作为全球网络中的主机的本地网络地址的第一目的地地址以及有效载荷数据。该方法还包括基于所存储的映射数据确定本地网络中的主机的全球网络地址和全球网络中的主机的全球网络地址,并且通过全球网络发送第二数据分组。第二数据分组包括作为本地网络中的主机的全球网络地址的第二源地址、作为全球网络中的主机的全球网络地址的第二目的地地址以及有效载荷数据。
10.在一些示例中,本地网络是网状网络。例如,本地网络是基于6lowpan的网络。第一源地址是ipv6链路本地地址。第一目的地地址是ipv6链路本地地址。全球网络是基于ipv6的网络。第二源地址是ipv6单播地址。第二目的地地址是ipv6单播地址。
11.在一些示例中,第一数据分组还包括压缩网络层报头。在更具体的示例中,该方法还包括对第一数据分组的报头进行解压缩以确定第一源地址和第一目的地地址。例如,有效载荷数据被加密。
12.在一些示例中,该方法还包括存储配置数据,该配置数据包括一个或多个全球网络地址的列表,每个地址对应于全球网络中的一个或多个全球主机中的一个。
13.在一些示例中,该方法还包括接收来自本地网络中的多个主机中的一个的第一数据分组以及来自局域网中的多个主机中的另一个的第二数据分组,并且并行执行为第一数据分组和第二数据分组确定本地网络中的主机的全球网络地址以及全球网络中的主机的全球网络地址的步骤。
14.在一些示例中,提供了一种由边缘路由器执行的用于全球网络与本地网络之间的通信的方法。该方法包括存储映射数据,该映射数据包括用于全球网络中的多个主机的相应全球网络地址和相应本地网络地址。映射数据还包括用于本地网络中的多个主机的相应全球网络地址和相应本地网络地址。该方法还包括接收来自全球网络中的多个主机中的一个的第一数据分组。第一数据分组包括作为全球网络中的主机的全球网络地址的第一源地址、作为本地网络中的主机的全球网络地址的第一目的地地址以及有效载荷数据。该方法还包括基于所存储的映射数据确定全球网络中的主机的本地网络地址和本地网络中的主机的本地网络地址,并且通过本地网络发送第二数据分组。第二数据分组包括作为全球网络中的主机的本地网络地址的第二源地址、作为本地网络中的主机的本地网络地址的第二目的地地址以及有效载荷数据。
15.在一些示例中,本地网络是基于6lowpan的网络。例如,第二源地址是ipv6链路本地地址。第二目的地地址是ipv6链路本地地址。全球网络是基于ipv6的网络。第一源地址是ipv6单播地址。第一目的地地址是ipv6单播地址。
16.在一些示例中,第二数据分组还包括压缩网络层报头。例如,该方法还包括基于第二源地址和第二目的地地址确定第二数据分组的压缩网络层报头。
17.在一些示例中,提供了一种用于本地网络与全球网络之间的通信的设备。该设备包括处理器和用于存储映射数据的映射数据存储装置,映射数据包括用于全球网络中的多个主机的相应全球网络地址和相应本地网络地址。映射数据还包括用于本地网络中的多个主机的相应全球网络地址和相应本地网络地址。处理器被配置为,响应于接收来自本地网络中的多个主机中的一个的第一数据分组,基于所存储的映射数据,确定本地网络中的主机的全球网络地址和全球网络中的主机的全球网络地址,并且通过全球网络发送第二数据分组,第一数据分组包括作为本地网络中的主机的本地网络地址的第一源地址、作为全球
网络中的主机的本地网络地址的第一目的地地址以及有效载荷数据。第二数据分组包括作为本地网络中的主机的全球网络地址的第二源地址、作为全球网络中的主机的全球网络地址的第二目的地地址以及有效载荷数据。
18.在一些示例中,本地网络是基于6lowpan的网络。例如,第一源地址是ipv6链路本地地址。第一目的地地址是ipv6链路本地地址。全球网络是基于ipv6的网络。第二源地址是ipv6单播地址。第二目的地地址是ipv6单播地址。
19.在一些示例中,第一数据分组还包括压缩网络层报头。处理器还被配置为对压缩网络层报头进行解压缩以确定第二源地址和第二目的地地址。
20.在一些示例中,提供了一种用于全球网络与本地网络之间的通信的设备。该设备包括处理器和用于存储映射数据的映射数据存储装置。映射数据包括用于全球网络中的多个主机的相应全球网络地址和相应本地网络地址。映射数据还包括用于本地网络中的多个主机的相应全球网络地址和相应本地网络地址。处理器被配置为响应于接收来自全球网络中的多个主机中的一个的第一数据分组,基于所存储的映射数据,确定全球网络中的主机的本地网络地址和本地网络中的主机的本地网络地址,并且通过本地网络发送第二数据分组,第一数据分组包括作为全球网络中的主机的全球网络地址的第一源地址、作为本地网络中的主机的全球网络地址的第一目的地地址以及有效载荷数据,第二数据分组包括作为全球网络中的主机的本地网络地址的第二源地址、作为全球网络中的主机的本地网络地址的第二目的地地址以及有效载荷数据。
21.在一些示例中,本地网络是基于6lowpan的网络。例如,第二源地址是ipv6链路本地地址。第二目的地地址是ipv6链路本地地址。全球网络是基于ipv6的网络。第一源地址是ipv6单播地址。第一目的地地址是ipv6单播地址。
22.在一些示例中,第二数据分组还包括压缩网络层报头。此外,在一些示例中,处理器还被配置为基于第二源地址和第二目的地地址确定第二数据分组的压缩网络层报头。
23.在一些示例中,提供了一种由边缘路由器执行的用于全球互联网协议版本6(ipv6)网络与使用在低功率无线个域网上的ipv6(6lowpan)的本地网络之间的安全通信的方法。该方法包括存储映射数据。映射数据包括用于全球ipv6网络中的多个主机的相应ipv6单播地址和相应ipv6链路本地地址。映射数据还包括用于本地网络中的多个主机的相应ipv6单播地址和相应ipv6链路本地地址。该方法还包括接收来自本地网络中的多个主机中的一个的第一数据分组。第一数据分组包括作为本地网络中的主机的ipv6链路本地地址的第一源地址、作为全球ipv6网络中的主机的ipv6链路本地地址的第一目的地地址以及有效载荷数据。该方法还包括,基于所存储的映射数据确定本地网络中的主机的ipv6单播地址和全球ipv6网络中的主机的ipv6单播地址,并且通过全球ipv6网络发送第二数据分组。第二数据分组包括作为本地网络中的主机的ipv6单播地址的第二源地址、作为全球ipv6网络中的主机的ipv6单播地址的第二目的地地址以及有效载荷数据。
24.在一些示例中,提供了一种由边缘路由器执行的用于全球互联网协议版本6(ipv6)网络与使用在低功率无线个域网上的ipv6(6lowpan)的本地网络之间的安全通信的方法。该方法包括存储映射数据。映射数据包括用于全球ipv6网络中的多个主机的相应ipv6单播地址和相应ipv6链路本地地址。映射数据还包括用于本地网络中的多个主机的相应ipv6单播地址和相应ipv6链路本地地址。该方法还包括接收来自全球ipv6网络中的多个
主机中的一个的第一数据分组。该数据分组包括作为全球ipv6网络中的主机的ipv6单播地址的第一源地址、作为本地网络中的主机的ipv6单播地址的第一目的地地址以及有效载荷数据。该方法还包括,基于所存储的映射数据确定全球ipv6网络中的主机的ipv6链路本地地址和本地网络中的主机的ipv6链路本地地址,并且通过本地网络发送数据分组。该数据分组包括作为全球ipv6网络中的主机的ipv6链路本地地址的第二源地址、作为本地网络中的主机的ipv6链路本地地址的第二目的地地址以及有效载荷数据。
附图说明
25.现在将参考附图描述本公开的实施例,其中:
26.图1是示出根据一些示例的连接到互联网的物联网网络的网络图;
27.图2是示出根据一些示例的协议栈的部件的框图;
28.图3是示出根据一些示例的本地网络中的分组丢失的框图;
29.图4是示出根据一些示例的本地网络和全球网络的部件的网络图;
30.图5a示出根据一些示例的ieee802.15.4mac分组的格式;
31.图5b示出根据一些示例的ipv6报头的格式;
32.图6示出根据一些示例的具有报头压缩的ieee802.15.4mac分组的格式;
33.图7是示出根据一些示例的路由器的部件的框图;
34.图8是示出根据一些示例的由路由器执行的并行处理方法的流程图;
35.图9是示出根据一些示例的路由器在接收来自本地网络的分组时执行的方法的流程图;
36.图10是示出根据一些示例的路由器在接收来自全球网络的分组时执行的方法的流程图;并且
37.图11是示出根据一些示例的本地网络中的分组丢失的框图。
具体实施方式
38.图1——物联网(iot)
39.图1示出根据一些示例的经由互联网与主机通信的设备(例如102和104)的本地网络108。本地网络108是网状网络拓扑结构,其中iot设备是节点。分组通过网状网络108从一个节点转发到另一节点,直到该分组到达目的地节点。
40.本地网络108经由边缘路由器106连接到全球网络110。边缘路由器106是位于网络边界处的在计算机网络之间转发数据分组的设备。如果应用在本地网络108上的通信协议与应用在全球网络上的通信协议不同,则边缘路由器106执行所传递的数据分组的格式的从一种协议到另一种协议的转变,以促进跨本地网络和全球网络的通信。因此,经由边缘路由器106,全球网络上的主机(例如112和114)可以与网状网络108上的节点(例如102和104)通信。
41.iot协议
42.对于iot网络,其中节点通常是低功率的,诸如用电池供电的,并且利用低数据速率通信,为iot网络通信定制的通信协议为iot网络的节点提供了合适的连接性。许多iot网络协议定义了封装和报头压缩机制,这些机制允许通过低功率网络(诸如ieee 802.15.4)
发送和接收互联网分组。
43.提供低数据速率网状连接的iot通信协议的示例是“低功率无线个域网上的ipv6(ipv6 over low-power wireless personal area network,6lowpan”协议。6lowpan协议源于互联网协议(ip)可以而且应该应用于甚至最小的设备并且处理能力有限的低功率设备应该能够参与物联网(iot)的想法。
44.可以应用网状网络(诸如6lowpan)的示例是家庭、办公室和工厂环境中的自动化和娱乐应用。6lowpan还可以用于智能电网,使智能电表和其他设备能够在经由互联网协议版本6(ipv6)网络将数据发送回到计费系统之前构建网状网络。
45.6lowpan协议在征求意见稿(request for comment,rfc)6282中标准化,rfc6282的标题为“compression format for ipv6 datagrams over ieee802.15.4-based networks(基于ieee 802.15.4的网络上的ipv6数据报的压缩格式)”,日期为2011年9月,并且其通过引用并入本文。rfc6282定义了如何在ieee 802.15.4无线电链路上封装ipv6数据帧。6lowpan在ip栈的链路层与网络层之间引入了适配层,以使得ipv6数据报能够通过ieee 802.15.4无线电链路传输。rfc6282定义了报头压缩机制,以减少6lowpan分组内的报头的大小。rfc6282中定义的压缩机制依赖于共享上下文以允许压缩源地址和目的地地址的任意前缀。
46.本文描述的各种示例指的是6lowpan协议在本地网络108上的应用;然而,在一些示例中,使用其他网络协议来提供iot网络(诸如本地网络108)的节点之间的通信。此类其他网络协议包括zigbee、isa100.11.a、wirelesshart、miwi、子网络访问协议(snap)或线程。
47.图2——协议栈
48.在本地网状网络内,数据根据协议栈进行通信,该协议栈定义了一组规则或标准来格式化数据并控制数据的通信。图2示出根据一些示例的用于通过利用ieee 802.15.4上的6lowpan的网络进行通信的协议栈的简化开放系统互连(osi)模型。
49.物理层202将数据位转换成通过空气传输和接收的信号。数据链路层204通过检测和校正在一些示例中在传输和接收期间在物理层中出现的错误来提供两个直接连接的节点之间的可靠链路。数据链路层包括提供对媒体的访问的媒体访问层(mac)。在图2所示的示例中,mac层是ieee802.15.4。6lowpan适配层206提供从ipv6到ieee 802.15.4的适配。
50.网络层208通过网络(如果需要的话,在若干跳(hops)上)对数据定址(address)和路由。ipv6是图2所示的联网协议。传送层210生成终端设备上运行的应用之间的通信会话。传送层允许每个设备上的多个应用具有它们自己的通信通道。传输控制协议(tcp)是互联网上的主要传送协议。然而,tcp是基于连接的协议,开销大,并且因此并不总是适合于要求超低功率消耗的设备。对于这些类型的系统,作为开销较低的无连接协议的用户数据报协议(udp)可以是更好的选择。安全传送层示例包括运行在tcp之上的传送层安全性(tls)和基于udp的数据报传送层安全性(dtls)。
51.最后,应用层210负责数据格式化。它还确保以应用优化的方案传送数据。
52.图3——分组丢失
53.图3示出根据一些示例的从本地网状网络(例如6lowpan网络)上的源节点302到全球ipv6网络上的目的地节点306的分组的通信的分组丢失的示例。
54.随着有效载荷数据从应用层312到6lowpan层314并到由316指示的链路和物理层向下遍历源节点302的协议栈,带箭头的线(诸如308和310)指示有效载荷数据的路径。随着有效载荷数据向下遍历协议栈,协议层添加报头。在图3所示的示例中,目的地地址报头包括全球ipv6地址,并且在wpan层316处没有ip报头压缩(iphc)。
55.百分比值指示有效载荷数据从源节点302的应用层312遍历到全球ipv6网络上的目的地节点306的应用层318的每个阶段的分组丢失的近似百分比。例如,从应用层312到6lowpan层314丢失约0%的分组。
56.相比之下,在从源节点302的wpan层316到路由器304的wpan层320的传输期间丢失约3.34%的分组。
57.影响分组丢失的因素
58.增加分组丢失率的因素包括ieee 802.15.4分组的有限的有效的有效载荷大小。ieee 802.15.4分组的有效的有效载荷大小为54字节。在一些示例中,这种有限的有效载荷大小导致有效载荷跨多个分组的分段。
59.此外,由于因为加密而出现的有效载荷扩展,将加密协议(诸如数据报传送层安全性(dtls))应用到ieee 802.15.4上的6lowpaniot网络可以是有效载荷分段的原因。例如,在用aes将消息加密之后,1字节消息可以变成16字节的密文,加上16字节的初始化向量。在一些示例中,有效载荷的扩展导致多个分组上的有效载荷分段,以便将扩展的有效载荷放入ieee802.15.4分组的有限的有效载荷字段中。
60.有效载荷跨多个分组的分段增加了有效载荷在通信期间丢失的可能性,因为如果多个分段中的一个在通信期间丢失,则整个有效载荷丢失。
61.因此,期望减少适配层206和链路层204处的有效载荷的分段。通过增加链路层分组的有效的有效载荷,可以减少在协议栈的这些层处的分段。当有效载荷超过分组的有效的有效载荷1个字节到n个字节时,将该分组的有效的有效载荷增加n个字节将避免分组的分段。
62.报头压缩
63.通常期望本地网络的每个节点都具有唯一的地址,该地址在所传递的分组的报头字段内进行传递。地址字段的长度取决于本地网络所使用的通信协议,并且在一些示例中,取决于必须在本地网络内唯一标识的节点的数量。
64.在一些示例中,通过本地网状网络进行通信的iot设备经由ipv6地址进行通信,ipv6地址长度为128位,并且有能力为每个设备分配全球唯一的ipv6地址。另一方面,一些网状网络协议提供允许网状网络内的节点使用比ipv6单播地址短(并且在一些示例中,仅在本地网络内是唯一的)的地址相互通信的定址格式。
65.例如,ieee802.15.4网状网络内的节点可以使用ipv6链路本地源地址和目的地地址相互通信。ipv6链路本地地址仅对本地网络段内的通信有效,并且它们不在互联网上路由。ipv6链路本地地址以十六进制字节fe80开头,然后地址的最低有效64位是接口标识符(iid)。
66.根据6lowpan协议,包括ipv6链路本地地址的报头可以经由互联网协议报头压缩(iphc)进行压缩。iphc压缩减小了报头的大小并且允许更多字节用于有效载荷。因此,通过将iphc应用于在本地网络内通信的链路本地地址可以减少分段。然而,由于ipv6链路本地
地址是仅对定义的本地网络段内的通信有效的地址,因此在本地网络外部通信时需要可路由的ipv6地址。
67.全球唯一的ipv6地址不可压缩。因此,期望受益于由报头压缩导致的有效的有效载荷大小的增加,以减少有效载荷分段,同时仍然能够与本地网络外部的主机通信。
68.地址转变以减少分段
69.值得注意的是,对于本地网络的许多应用,例如iot网状网络,本地网络上的设备与互联网上一组已知的全球主机进行通信。该组通常是小的,在该组中少于10个,或者甚至仅一个主机,例如,传感器向其发送传感器数据。鉴于本地设备不与随意全球主机通信,本公开提供了一种执行地址转变的路由器方法和设备,该方法和设备能够使用本地网络内的链路本地源地址和目的地地址以及全球网络内的全球唯一的源地址和目的地地址使本地网络内的节点与全球网络内的节点通信。
70.因此,本公开提供了一种方法,该方法针对相同分组但在网络的不同段处使用链路本地ipv6地址和全球ipv6地址(即,ipv6单播地址、ipv6任播地址或ipv6多播地址)的组合。
71.通过针对用于通过本地网络通信的分组的源地址和目的地地址使用本地链路ipv6地址,分组报头的地址字段被压缩,例如,如下所述。报头的压缩允许为本地网络内传输的分组的有效载荷分配更多位。较大的有效载荷字段减少分段的分组的数量,或减少分段数量,并且分段的减少导致本地网络内经历的分组丢失的减少。
72.有利地,当使用dtls或其他基于密码的方法保护网络时,本公开可以减少iot网络的分组丢失。否则,由于分组丢失率增加,像dtls的安全机制是不可行的。分组丢失会导致重新发送丢失的分组,这降低了网络的整体速度。因此,本文公开的方法通过减少分组丢失来增加网络的速度。
73.图4——边缘路由器
74.图4是示出根据一些示例的网络架构400的框图。网络400包括两个主机402和404,它们是iot网络416的一部分。网络400还包括两个主机412和414,它们是互联网网络418的一部分。在一些示例中,iot网络416被认为是本地网络,并且互联网网络418被认为是全球网络。
75.本地主机402和404经由边缘路由器406与全球主机412和414通信。边缘路由器406(在本文被称为路由器)执行地址转变功能,以将通信从本地主机路由到全球主机,并且将通信从全球主机路由到本地主机。
76.在图4所示的示例中,本地网络416是6lowpan网络,并且全球网络是ipv6网络。因此,路由器406使ieee 802.15.4 6lowpan网络416和ipv6网络418互连。
77.在本地网络416内部,本地主机使用链路本地ipv6地址对分组进行定址。路由器406接收用链路本地ipv6源地址和目的地地址定址的分组,并且当6lowpan分组被转换为ipv6分组时,将链路本地ipv6源地址和目的地地址转换为全球ipv6地址。更具体地,路由器406包括本地网络416的本地主机与之通信的全球主机(例如主机412和主机414)的注册表408。路由器406还包括映射数据的存储装置410。本地网络上的每个本地主机以及全球主机的注册表408中的每个全球主机具有链路本地地址和对应的全球地址。映射数据410记录每个主机的链路本地地址到该主机的全球地址的映射。
78.图5a——链路层分组格式
79.图5a示出根据一些示例的ieee802.15.4链路层组500的格式。ieee802.15.4链路层分组具有127字节的最大长度,其中字节为八位字节。分组500包括mac报头502、40字节ipv6报头504、8字节udp报头506、2字节校验和510以及54字节的有效载荷508。在一些示例中,取决于协议栈的上层,有效载荷508包括另外的地址字段、报头字段以及数据字段。
80.6lowpan报头
81.在一些示例中,mac报头502包括三个子报头中的一个或多个:网状定址、分段和报头压缩。网状定址支持第二层(数据链路)转发,并且分段支持较大有效载荷的传输。对于放入单个ieee 802.15.4分组的分组,省略分段报头。仅通过一跳发送数据时不使用网状报头。分段和网状定址报头的格式、功能和使用在rfc6282中定义,并且在本公开中将不再进一步描述。下面描述报头压缩子报头。
82.图5b
83.图5b示出根据一些示例的未压缩ipv6报头504的格式。ipv6报头504包括128位源地址512和128位目的地地址。
84.图6——报头压缩
85.根据6lowpan协议,通过假设使用公共字段,40字节ipv6报头504和8字节udp报头506可以被压缩成较小的6lowpan子报头。特别地,6lowpan适配层从ipv6报头中移除了可以从其他层的报头导出的重复信息。特别地,从压缩ipv6报头中省略可以从链路层报头导出的报头数据。
86.图6示出根据一些示例的ieee802.15.4分组600的格式,已经根据6lowpan协议对其应用报头压缩。分组600包括mac报头602、2字节ipv6报头604、4字节udp报头606、2字节校验和610以及96字节的有效载荷608。
87.对于同一个6lowpan联网内部的两个设备之间的通信,使用链路本地地址,ipv6报头可以压缩到仅2个字节,并且udp报头可以压缩到仅4个字节。因此,在图6所示的示例中,ipv6报头和udp报头的组合字节大小可以从48字节压缩到6字节,从而为有效载荷字段608提供附加的42字节。因此,在一些示例中,在54字节到96字节范围内的有效载荷容纳在单个链路层分组内,而不是跨两个分组分段。通过报头压缩的应用,可以减少分段的百分比。
88.其他协议
89.在传送层使用tcp而不是udp的实施例中,链路层分组500将包括tcp报头而不是udp报头506。可以根据对6lowpan进行标准化的标准rfc6282以与udp和ipv6报头的压缩大致相同的方式通过假设使用公共字段来压缩ipv6报头和tcp报头。
90.在本地网络108使用不同于6lowpan的通信协议的实施例中,可以根据与所使用的通信协议相关联的标准所提供的压缩方法来压缩ipv6报头和tcp或udp报头。例如,在其中提供本地网络108的节点之间的通信的本地网络协议是zigbee协议的实施例中,由zigbee标准提供的报头压缩方法是rfc6282中定义的6lowpan报头压缩。在本地网络协议为thread的实施例中,由thread协议规范提供报头压缩。在一些示例中,由本地网络108使用的通信协议应用的报头压缩方法不同于rfc6282中定义的报头压缩方法;然而,各种报头压缩方法通过假设跨协议栈的报头使用公共字段来提供压缩。
91.图7——路由器块架构
92.图7是示出路由器406的部件的框图。路由器406包括处理器704。在一些示例中,处理器是单个处理单元,或者协同工作以处理由本地网络416上的设备发送和接收的通信分组的多个处理单元。
93.路由器406经由通信连接706连接到本地网络416上的一个或多个设备。路由器还经由通信连接708连接到全球网络418上的一个或多个主机设备。在一些示例中,通信连接706和708是有线或无线通信连接。
94.路由器406包括数据存储装置710,该数据存储装置710存储本地网络416的本地主机与之通信的全球主机的列表。在一些示例中,全球主机的列表包括全球ipv6地址的列表。在一些示例中,根据特定实施例的需要,进一步的数据(诸如主机名称、许可设置或配置设置)与全球ipv6地址一起被存储。
95.路由器406还包括映射数据存储装置714,处理器704可以经由连接716从该映射数据存储装置714存储和检索映射数据。映射数据存储装置714存储包括主机的全球地址和主机的对应的本地地址的数据对。例如,映射数据存储装置714存储包括主机的全球ipv6地址和主机的对应的链路本地地址的数据对。映射数据存储装置714存储用于本地网络416上的一个或多个主机的此类数据对,并且存储用于主机设备的列表710中列出的全球主机中的每个的此类数据对。
96.图8——并行处理流程图
97.在一些示例中,为了管理本地网络与全球网络之间的通信的通信吞吐量,路由器406执行路由的分组的并行处理。图8是示出根据一些示例的由路由器406执行的并行处理方法800的流程图。步骤802是配置步骤,其中路由器406将注册的服务加载到处理器704可访问的存储器中。注册的服务可以从服务表806加载,在一些示例中,该服务表806是对路由器406本地可访问的,或者是可经由通信连接708远程访问。在步骤804中,路由器开始服务并且准备好在连接706上接收来自本地网络的分组,或者在连接708上接收来自全球网络的分组。
98.在事件806处,路由器接收来自全球网络418或本地网络416的分组。响应于接收来自本地网络416的分组,路由器406创建810一个或多个处理线程以处理来自本地网络的传出分组,并且将处理后的分组转发到全球网络中的目的地节点。响应于接收来自全球网络418的分组,路由器创建816一个或多个处理线程以处理来自全球网络的传入分组并且将处理后的分组转发到本地网络中的目的地节点。在一些示例中,步骤810和816并行发生,或者全部或部分顺序发生。
99.响应于接收来自本地网络416的第二分组,如事件812所指示的,路由器406创建第二线程以处理传出分组。类似地,响应于接收来自全球网络418的分组,如事件818所指示,路由器创建另一线程以处理传入分组。
100.在一些示例中,在其他线程正在执行的同时发生线程的创建,以提供传入分组和/或传出分组的并行处理。路由器406将根据路由器的处理能力按照需要继续创建线程以处理传入分组和传出分组。
101.图9——从本地网络发送
102.图9是示出根据一些示例的由路由器执行的方法900的流程图。步骤902为配置步骤,在一些示例中,该配置步骤在路由器的启动时执行,并且在路由器的操作期间根据需要
执行。在步骤902中,路由器检索外部主机地址信息。外部主机地址信息包括本地网络的主机与之通信的每个全球主机的全球地址。在一些示例中,路由器预先配置有全球主机的列表。因此,在路由器的预配置期间,全球主机的全球地址被存储在存储器710中。另外,在一些示例中,在配置步骤902之后,向路由器注册附加的全球主机,如下所述。
103.在步骤904中,路由器通过通信连接706接收来自本地主机的分组。在步骤906中,路由器解析和/或处理所接收的分组的一个或多个报头,以确定分组的源节点(本地主机)的本地网络地址(即源地址)。源地址将是本地网络地址格式的本地网络地址。然后,路由器参考存储在存储器714中的映射数据以确定与源节点的本地网络地址对应的全球网络地址。
104.同样在步骤906中,路由器确定目的地节点的本地网络地址。路由器通过解析来自所接收的数据分组的报头的目的地地址确定目的地节点的本地网络地址。目的地地址将是本地网络地址格式的本地网络地址。然后,路由器参考存储在存储器714中的映射数据以确定与目的地节点的本地网络地址对应的全球网络地址。
105.在步骤908中,路由器改变分组的报头,以将源节点的本地网络地址替换为源节点的对应的全球网络地址,并且将目的地节点的本地网络地址替换为目的地节点的对应的全球网络地址。然后,路由器通过全球网络将改变的分组传输到目的地节点,其中,目的地节点是与全球网络目的地地址相关联的全球主机。
106.从6lowpan发送到ipv6
107.现在将关于图4所示的实施例描述方法900的步骤,其中本地网络是6lowpan网络并且全球网络是ipv6网络。
108.在步骤902中,路由器406被预先配置有本地主机402和404与之通信的每个全球主机412和414的ipv6全球地址。
109.在步骤904中,路由器406通过通信连接706接收6lowpan适配的ieee802.15.4分组420。在步骤906中,路由器406根据rfc6282协议对所接收的分组420的6lowpan报头进行解压缩,并且解析解压缩的ipv6报头以确定分组420的源节点的链路本地地址。然后,路由器406参考存储在存储器714中的映射数据以确定与源节点的本地网络地址对应的全球网络地址。
110.同样在步骤906中,路由器通过根据rfc6282解析所接收的分组420的解压缩的ipv6报头确定目的地节点的本地网络地址。然后,路由器406参考存储在存储器714中的映射数据以确定与目的地节点的本地网络地址对应的全球网络地址。
111.在步骤908中,路由器406改变所接收的分组420的报头,以产生改变的分组422。更具体地,路由器406改变所接收的分组420的报头以将压缩ipv6报头604和压缩传送层报头606替换为未压缩40字节ipv6报头504。路由器406使用字段512中的确定的源节点的全球网络地址和字段514中的目的地节点的全球网络地址形成ipv6报头504。
112.在步骤910中,路由器406通过连接708将改变的分组422发送到与全球网络目的地地址相关联的全球主机。
113.图10——接收到本地网络
114.图10是示出根据一些示例的由路由器执行的方法1000的流程图。步骤1002为配置步骤,在一些示例中,该配置步骤在路由器的启动时执行,并且在路由器的操作期间根据需
要执行。在步骤1002中,路由器检索本地主机地址信息。本地主机地址信息包括全球网络的主机与之通信的每个本地主机的本地地址。在一些示例中,路由器预先配置有全球主机与之通信的本地主机的列表。因此,在路由器的预配置期间,本地主机的本地地址存储在存储器710中。在一些示例中,路由器打开套接字(socket)和处理线程,以支持去往和来自本地主机的列表中的本地主机中的每个的通信的处理。
115.在步骤1004中,路由器通过通信连接706接收来自全球主机的分组。在步骤1006中,路由器解析和/或处理所接收的分组的一个或多个报头,以确定分组的源节点(全球主机)的全球网络地址(即源地址)。源地址将是全球网络地址格式的全球网络地址。然后,路由器参考存储在存储器714中的映射数据以确定与源节点的全球网络地址对应的本地网络地址。
116.同样在步骤1006中,路由器确定目的地节点的全球网络地址。路由器通过解析来自所接收的分组的报头的目的地地址确定目的地节点的全球网络地址。目的地地址将是全球网络地址格式的全球网络地址。然后,路由器参考存储在存储器714中的映射数据以确定与目的地节点的全球网络地址对应的本地网络地址。
117.在步骤1008中,路由器改变分组的报头,以将源节点的全球网络地址替换为源节点的对应的本地网络地址,并且将目的地节点的全球网络地址替换为目的地节点的对应的本地网络地址。然后,路由器将改变的分组传输到目的地节点,该目的地节点是与本地网络目的地地址相关联的本地主机。
118.从ipv6接收到6lowpan
119.现在将关于图4所示的实施例描述方法1000的步骤,其中本地网络是6lowpan iot网络并且全球网络是ipv6网络。
120.在步骤1002中,路由器406被预先配置有互联网418的设备与之通信的每个本地主机的链路本地地址。
121.在步骤1004中,路由器406通过通信连接708接收ipv6分组426。在步骤1006中,路由器406根据ipv6协议解析所接收的分组426的ipv6报头,以确定分组426的源节点的ipv6全球地址。然后,路由器406参考存储在存储器714中的映射数据以确定与源节点的全球网络地址对应的本地网络地址,本地网络地址是链路本地ipv6地址。
122.同样在步骤1006中,路由器通过解析所接收的分组426的ipv6报头确定目的地节点的全球网络地址。然后,路由器406参考存储在存储器714中的映射数据以确定与目的地节点的全球网络地址对应的本地网络地址,本地网络地址是链路本地ipv6地址。
123.在步骤1008中,路由器406改变所接收的分组426的报头,以产生改变的分组424。更具体地,路由器406改变所接收的分组426的报头,以将ipv6报头504和传送层报头506替换为6lowpan报头,6lowpan报头包括压缩网络层报头604和压缩传送层报头606。路由器406使用所确定的源节点的链路本地地址和目的地节点的链路本地地址根据6lowpan协议压缩报头504和506。
124.在步骤1010中,路由器406将改变的分组424发送到与本地网络目的地地址相关联的本地主机。
125.打开套接字
126.在一些实施例中,路由器存储并且维护路由器与之通信(例如,向其发送分组或从
其接收分组)的本地网络上的节点的列表。在一些示例中,该本地节点的列表存储在存储器710或处理器704可访问的替代存储器存储装置内。
127.当通过通信连接706接收来自本地网的分组时,路由器406通过确定本地主机的地址是否是本地主机的列表中的地址中的一个来确定分组的源节点是否是路由器406已知的本地主机。
128.如果分组的源是路由器406已知的本地主机,则路由器获得用于与本地主机通信的套接字。如果分组的源是路由器406未知的本地主机,则路由器创建用于与本地主机通信的套接字,并且创建线程以支持发送到本地主机或来自本地主机的传入分组的处理。
129.注册新的全球主机
130.在一些示例中,执行将新的全球主机识别为本地主机将与之通信的主机的注册过程。在注册过程期间,新的全球主机的全球地址被传递到路由器,并且路由器将新的全球主机的全球地址添加到存储在存储器710中的主机的列表。此外,路由器确定新的全球主机的本地网络地址。
131.在一些示例中,路由器配置有用于新的全球主机的本地网络地址,并且路由器将用于新的全球主机的本地网络地址和对应的全球网络地址存储在映射数据存储装置714中。替代地,路由器通过根据本地网络的链路层(或适配层)协议执行地址分配过程确定用于新的全球主机的合适的本地地址。
132.在链路层是ieee 802.15.4并且适配层是6lowpan的实施例中,路由器可以通过应用如rfc6775中所定义的“neighbor discovery optimization for ipv6 over low-power wireless personal area networks(6lowpan)(用于低功率无线个域网络上的ipv6的邻居发现优化)”确定合适的链路本地地址。更具体地,路由器分配格式为fe80::iid的链路本地地址,并且以邻居请求(ns)消息将该地址发送到子网中的所有其他参与者,以检查该地址是否正被其他参与者使用。如果路由器在定义的时间范围内未接收到邻居通告(na)消息,则路由器假设新的链路本地地址是唯一的(在该本地网络上)。
133.图11——减少分组丢失
134.图11示出根据一些示例的用于从本地网状网络(例如6lowpan网络)上的源节点1102到全球ipv6网络上的目的地节点1106的分组的通信的分组丢失的示例。在图11所示的示例中,路由器1104根据本公开执行源地址和目的地地址的转变。
135.随着有效载荷数据从应用层到6lowpan层并且到链路层和物理层向下遍历源节点1102的协议栈,带箭头的线(诸如1108和1110)指示有效载荷数据的路径。随着有效载荷数据向下遍历协议栈,协议层添加报头。
136.在图11所示的示例中,目的地地址报头包括链路本地ipv6地址,并且在wpan层1116应用ip报头压缩(iphc)。路由器1104接收具有链路本地源地址和目的地地址的分组,并且改变分组以包括对应的全球源地址和目的地地址(由路由器的映射数据定义)。然后,路由器将改变的分组传递到目的地节点的以太网层。
137.百分比值指示有效载荷数据从源节点1102应用层遍历到全球ipv6网络上的目的地节点1106的应用层的每个阶段的分组丢失的近似百分比。例如,从应用层1112到6lowpan层1114丢失约0%的分组。
138.相比之下,在图3所示的示例中,在从源节点302的wpan层316到路由器304的wpan
层320的传输期间丢失约3.34%的分组,在图11所示的示例中,在从源节点1102的wpan层1116到路由器1104的wpan层1120的传输期间丢失仅约2.6%的分组。
139.术语“分组”可以用于描述在协议栈的网络层中传递的格式化的数据单元,而术语“帧”可以用于描述在协议栈的链路层中传递的格式化的数据单元。为了便于参考,本公开使用术语“分组”来描述在协议栈的链路层、适配层或网络层中传递的格式化的数据单元。
140.网络主机是连接到计算机网络的计算机或其他设备。在一些示例中,主机用作向用户或网络上的其他主机提供信息资源、服务以及应用的服务器。主机被分配了至少一个网络地址。参与使用客户端-服务器计算模型的应用的网络主机被分类为服务器或客户端系统。
141.本领域技术人员将理解,在不脱离本公开的宽泛的一般范围的情况下,可以对上述实施例进行多种变化和/或修改。特别地,该方法可以应用于各种其他本地网络协议,以利用网络层报头压缩或分组的非有效载荷部分的压缩来实现分组内的增加的有效载荷容量。因此,本实施例在所有方面都被认为是说明性的而非限制性的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献