CN110572488A - 一种将IPv6应用于IEEE802.15.4标准物联网的方法 - Google Patents
一种将IPv6应用于IEEE802.15.4标准物联网的方法 Download PDFInfo
- Publication number
- CN110572488A CN110572488A CN201910819014.9A CN201910819014A CN110572488A CN 110572488 A CN110572488 A CN 110572488A CN 201910819014 A CN201910819014 A CN 201910819014A CN 110572488 A CN110572488 A CN 110572488A
- Authority
- CN
- China
- Prior art keywords
- ipv6
- datagram
- layer
- data
- segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/26—Network addressing or numbering for mobility support
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/659—Internet protocol version 6 [IPv6] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种将IPv6应用于IEEE802.15.4标准物联网的方法,其特征在于,包括下列步骤:获取IPv6数据包的大小,即获取IPv6数据包的字节数;将读取的字节数与81进行对比,若字节数小于81,则不做处理直接发送到IEEE 802.15.4 MAC层,否则调用Compress_ip_addr_mode()函数则对其进行头部压缩;若进行报头压缩后的字节数小于81,则同样不做处理直接发送到IEEE 802.15.4 MAC层;调用Send_mac_ipv6_packet()函数将步骤(3)中的数据帧进行处理,发往IEEE802.15.4MAC层;将经过报头压缩、分片后的数据通过链路层转发。
Description
技术领域
本发明涉及一种物联网适配方法。
背景技术
物联网被称为继计算机和互联网之后的第三次科技革命。在物联网时代,所有的智能设备都可能成为互联网的一部分,都可以通过网络进行管理,这无疑会极大地改变人们办公和生活的方式。不管物联网平台的底层采用何种技术,最终都要接入到互联网中,这样才能实现真正的物联网。
互联网使用的是IP技术,智能物件要想接入到互联网中也要使用IP技术,目前IPv4(Internet Protocol Version 4)地址己经耗尽,而网络地址转换(Network AddressTranslation,NAT)技术又破坏了端到端的网络模型。IPv6(Internet Protocol Version6)协议具有庞大的地址空间,可以真正实现“一物一地址”。独立的IP地址可以使节点与互联网之间相互访问,真正实现物与物之间的交流。
IEEE 802.15.4是为低功耗低速率应用设计的一种标准无线通信技术,IEEE802.15.4标准规定了OSI模型中的物理层(PHY)和媒体访问控制层(MAC),其中PHY层规定了数据的收发方式;而MAC层则规定了数据的处理方式。IEEE 802.15.4是为低速率应用设计的,故数据包很小,规定最大为127字节。在MAC层又在每个数据包的前面加了一个长度不定的报头,因此对于上层协议或应用数据来说,可用的数据在86到116个字节之间。而IPv6协议最小的MUT为1280字节。所以在底层联网物件上无法直接应用IPv6协议。
现如今,IPv6网络预计将要大面积普及,国内外己经出现了很多物联网相关产品,如智能家庭网关:用户可以通过手机或电脑控制家里的电灯、音响和电视等电器设备。但物联网产品性价比很低,最根本的原因就是网络过渡带来的技术适配问题还没有相对完美的解决方案。
发明内容
本发明发明了一种将IPv6应用于IEEE802.15.4标准物联网的方法,针对IPv6应用于IEEE802.15.4标准物联网的适配问题提供了一种解决方法。通过在整个协议栈的网络层(IPv6层)和数据链路层(IEEE 802.15.4MAC层)之间添加一个全新的适配层,完成IPv6协议和IEEE802.15.4标准的融合,形成承上启下的作用。技术方案如下:
一种将IPv6应用于IEEE802.15.4标准物联网的方法,其特征在于,包括下列步骤:
(1)获取IPv6数据包的大小,即获取IPv6数据包的字节数;
(2)将读取的字节数与81进行对比,若字节数小于81,则不做处理直接发送到IEEE802.15.4MAC层,跳转至步骤(4),若字节数大于81,调用Compress_ip_addr_mode()函数则对其进行头部压缩,继续读取压缩后的字节数。
(3)若进行报头压缩后的字节数小于81,则同样不做处理直接发送到IEEE802.15.4MAC层,否则调用Cut_ip_packet()函数进行分片,保证同一个报文的所有分片的数据报标签字段相同,此字段与源地址、目的地址和数据报大小联合起来成为唯一地标识分片帧;第二个和以后的分片中存在数据报偏移量字段,用于指出后续分片中的负载相对于原负载报文头部的偏移量;
(4)调用Send_mac_ipv6_packet()函数将步骤(3)中的数据帧进行处理,发往IEEE802.15.4MAC层,Send_mac_ipv6_packet()函数执行如下的操作:若适配层从IEEE802.15.4MAC层接收到的数据报没有分段头部标识,则将其直接发送到IPv6网络层;若接收到的数据报含有分段头部标识,则依次执行如下操作:提取原始IPv6数据报的长度信息,在内存中分配相应大小的内存空间,去掉分段头部,对该分段进行解压缩,将其存放在分配空间的相应位置,等待接收下一个数据报分段,根据添加的偏移量将其放入相应位置;通过在分配的内存空间设置标识位,检测重组是否完成,如果重组完成,则将重组好的数据报发送到IPv6网络层;
(5)将经过报头压缩、分片后的数据通过链路层转发,将链路层地址集中网状头标的始末端地址根据经过的转发节点进行设置,通过节点跳转发送到目标地址。
附图说明
图1发送IPv6数据包的处理流程
图2分片报文格式
具体实施方式
由于IPv6要求的最小MTU为1280字节,而802.15.4链路层除去自身开销后最多只能为网络层提供102个字节的负载空间,因此必须在IPv6网络层和802.15.4的MAC层之间再插入一层,来对二者之间的差异进行适配。适配层主要提供的服务有三个方面:IPv6报头压缩、大数据包的分片和重组及当链路层使用多跳时通过链路层转发数据。
1 IPv6报头的压缩
IEEE802.15.4标准提供的最大传输单元为127字节。MAC帧的最大控制部分长度为:帧控制域(2字节)、序列号(1字节)、地址域(最大为20字节)、FCS校验码(2字节),一共是25字节。MAC安全头部分别为:AES-CCM-128(21字节)。最坏情况下,数据负载(IPv6数据包)只剩下81字节(127字节-25字节-21字节=81字节)。因此,需要适配层对IPv6头部、UDP头部进行压缩。
如果该适配层从IPv6网络层接收到的数据报长度大于81字节,则对其进行头部压缩,否则对数据报不做任何处理,直接发送到IEEE 802.15.4MAC层,如果压缩之后的数据报长度仍然大于81字节,则对其进行分段,否则对数据报不做任何处理,直接发送到IEEE802.15.4MAC层,处理过程如图1所示。
3大数据包的分片和重组
当802.15.4帧的最大传输负载能够容纳完整的IPv6数据包时,数据包可以在一帧内发出不需要分片,当IPv6数据包长度超过了802.15.4帧所能支持的最大负载长度时,就要将数据包分成多个链路层的分片。后面的分片比第一个分片多了一个偏移量的字段。需要进行分片的数据帧要添加的报头格式如图2所示。
数据报大小表示原始IPv6包的长度,占11位,所支持的最大负载报文长度为2048字节,可以满足IPv6报文的MTU要求,原始数据包的每个链路层分片的此字段与之相同。
数据报标签为占16位,同一个报文的所有分片的数据报标签字段都与之相同。此字段可与源地址、目的地址和数据报大小联合起来唯一地标识分片帧。
数据报偏移量,占16位。该字段只存在于第二个和以后的分片中,指出后续分片中的负载相对于原负载报文头部的偏移量。
如果适配层从IEEE802.15.4MAC层接收到的数据报没有分段头部标识,则不对数据报进行任何处理直接发送到IPv6网络层。如果接收到的数据报含有分段头部标识,首先从分段头部中提取原始IPv6数据报的长度信息,在内存中分配相应大小的内存空间。然后去掉分段头部,对该分段进行解压缩,并将其存放在分配空间的相应位置。接下来等待接收下一个数据报分段,下一个分段如果是该原始IPv6数据报的分段,则从分段头部中提取分段的数据偏移量信息,然后去掉分段头部,将数据部分放到分配空间的相应位置。如果接收到的不是该原始IPv6数据报的分段,则将其丢弃,通过在分配的内存空间设置标识位,可以检测重组是否完成,如果重组完成,则将重组好的数据报发送到IPv6网络层。
3通过链路层转发数据
当链路层使用多跳时通过链路层转发数据。对于mesh-under路由提供始端和末端及多跳源地址和目标地址是有必要的,因此链路层地址集如下:
当节点A经由节点B发送一帧数据到节点C时
1、网状网头标的始端地址被设置成A的链路层地址
2、网状网头标的末端地址被设置成C的链路层地址
3、IEEE802.154帧的源地址就是发送帧A的节点地址。
IEEE802.15.4帧的目标地址就是由网状网下协议所决定的下一跳节点,就像B节点,当收到数据帧时,B就执行以下的过程:
1、左跳字段递减
2、如果左跳字段不等于0(等于0数据帧被丢弃),那么B断定下一跳节点是C。
3、网状网头标的始端和终端地址没有发生变化。
4、IEEE802.15.4帧的源地址设置成B的链路层地址。
5、IEEE802.154帧的目标地址设置成C的链路层地址。
本发明提出的将IPv6应用于IEEE802.15.4标准物联网的方法,主要解决网络间的适配问题:通过在IPv6网络层和数据链路层(IEEE 802.15.4MAC层)之间添加一个适配层,完成IPv6协议和IEEE802.15.4标准的融合,有助于物联网应用IPv6协议的快速发展。通过提出一种将IPv6应用于IEEE802.15.4标准物联网的方法。通过使用IPv6地址,不仅有助于解决当今IPv4地址短缺的问题,而且为物联网行业的技术发展和产业化进程起到一定的促进作用。
本发明适用于当前各类物联网的实际应用,如智能家居和智慧城市等需要为大量联网物体提供一个唯一的IP地址的系统,为每个联网物体提供一个IPv6地址,方便实现精准管理。将IPv6与物联网底层的IEEE802.15.4标准进行融合,解决当前IPv4地址短缺的问题。
Claims (1)
1.一种将IPv6应用于IEEE802.15.4标准物联网的方法,其特征在于,包括下列步骤:
(1)获取IPv6数据包的大小,即获取IPv6数据包的字节数;
(2)将读取的字节数与81进行对比,若字节数小于81,则不做处理直接发送到IEEE802.15.4MAC层,跳转至步骤(4),若字节数大于81,调用Compress_ip_addr_mode()函数则对其进行头部压缩,继续读取压缩后的字节数。
(3)若进行报头压缩后的字节数小于81,则同样不做处理直接发送到IEEE802.15.4MAC层,否则调用Cut_ip_packet()函数进行分片,保证同一个报文的所有分片的数据报标签字段相同,此字段与源地址、目的地址和数据报大小联合起来成为唯一地标识分片帧;第二个和以后的分片中存在数据报偏移量字段,用于指出后续分片中的负载相对于原负载报文头部的偏移量;
(4)调用Send_mac_ipv6_packet()函数将步骤(3)中的数据帧进行处理,发往IEEE802.15.4MAC层,Send_mac_ipv6_packet()函数执行如下的操作:若适配层从IEEE802.15.4MAC层接收到的数据报没有分段头部标识,则将其直接发送到IPv6网络层;若接收到的数据报含有分段头部标识,则依次执行如下操作:提取原始IPv6数据报的长度信息,在内存中分配相应大小的内存空间,去掉分段头部,对该分段进行解压缩,将其存放在分配空间的相应位置,等待接收下一个数据报分段,根据添加的偏移量将其放入相应位置;通过在分配的内存空间设置标识位,检测重组是否完成,如果重组完成,则将重组好的数据报发送到IPv6网络层;
(5)将经过报头压缩、分片后的数据通过链路层转发,将链路层地址集中网状头标的始末端地址根据经过的转发节点进行设置,通过节点跳转发送到目标地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910819014.9A CN110572488A (zh) | 2019-08-30 | 2019-08-30 | 一种将IPv6应用于IEEE802.15.4标准物联网的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910819014.9A CN110572488A (zh) | 2019-08-30 | 2019-08-30 | 一种将IPv6应用于IEEE802.15.4标准物联网的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110572488A true CN110572488A (zh) | 2019-12-13 |
Family
ID=68777161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910819014.9A Pending CN110572488A (zh) | 2019-08-30 | 2019-08-30 | 一种将IPv6应用于IEEE802.15.4标准物联网的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110572488A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104618393A (zh) * | 2015-02-26 | 2015-05-13 | 厦门为那通信科技有限公司 | 一种低频无线Mesh自组网传输方法 |
CN204559629U (zh) * | 2015-04-15 | 2015-08-12 | 华南农业大学 | 基于6LoWPAN无线传感器网络的农田环境监测系统 |
-
2019
- 2019-08-30 CN CN201910819014.9A patent/CN110572488A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104618393A (zh) * | 2015-02-26 | 2015-05-13 | 厦门为那通信科技有限公司 | 一种低频无线Mesh自组网传输方法 |
CN204559629U (zh) * | 2015-04-15 | 2015-08-12 | 华南农业大学 | 基于6LoWPAN无线传感器网络的农田环境监测系统 |
Non-Patent Citations (2)
Title |
---|
G. MONTENEGRO 等: "《RFC4944,IETF》", 30 September 2007 * |
刘乔寿等: "6LoWPAN适配层分片与重组算法性能分析", 《计算机科学》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022078509A1 (zh) | IPv6报文的扩展头封装方法及装置 | |
US9173129B2 (en) | IPV6 address management method and gateway performing the same | |
US8149816B2 (en) | Header compression and packet transmission method in sensor network and apparatus therefor | |
US8213403B2 (en) | Mobility header compression method and system for internet protocol-based low power wireless network | |
WO2012059821A1 (en) | A method and device for transmitting an ipv6 over low power wireless personal area network data packet | |
CN108123870B (zh) | 报文转发方法和装置 | |
US20120155375A1 (en) | Method and Apparatus for Header Compression in Network Relay Scenario | |
CN100366031C (zh) | 一种IPv6传感器网络中支持压缩包并行传输的实现方法 | |
Thubert et al. | IPv6 over low-power wireless personal area network (6LoWPAN) routing header | |
CN102118792B (zh) | 一种传输数据包的方法及装置 | |
US20140064259A1 (en) | Method of managing context table for compression of ipv6 header based on context in wireless mesh network | |
CN111277679B (zh) | 基于LoRaWAN与IPv6协议的无线传感网络通信方法 | |
KR101563001B1 (ko) | 인터넷 프로토콜 패킷의 헤더의 압축 방법 및 이를 위한 복수 주소 기반의 네트워크를 구성하는 노드 | |
EP3813318B1 (en) | Packet transmission method, communication device, and system | |
CN109526030A (zh) | 报文的处理方法、装置和设备 | |
CN102238059A (zh) | 数据报文处理方法、系统及接入服务节点 | |
WO2009078564A1 (en) | Tunneling ipv6 packet through ipv4 network using a tunnel entry based on ipv6 prefix and tunneling ipv4 packet using a tunnel entry based on ipv4 prefix | |
Haggag | Implementation and evaluation of IPv6 with compression and fragmentation for throughput improvement of internet of things networks over IEEE 802.15. 4 | |
KR100854681B1 (ko) | 인터넷 프로토콜 유비쿼터스 센서 네트워크와 단순네트워크 관리 프로토콜 망을 상호 연동하기 위한게이트웨이 및 인터넷 프로토콜 유비쿼터스 센서네트워크와 단순 네트워크 관리 프로토콜 망과의 상호 연동방법. | |
CN107370841B (zh) | 一种在多跳无线网络上高效地址解析的方法 | |
CN110572488A (zh) | 一种将IPv6应用于IEEE802.15.4标准物联网的方法 | |
Ludovici et al. | Implementation and evaluation of the enhanced header compression (IPHC) for 6LoWPAN | |
KR102300600B1 (ko) | NFC 무선 기술 기반 IPv6 패킷 전송 방법 및 이를 수행하는 장치 | |
EP4009613A1 (en) | Secure data connections in low data rate networks | |
JP7008714B2 (ja) | 通信装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191213 |
|
RJ01 | Rejection of invention patent application after publication |