台湾清华大学物联网--001 物联网基础架构与应用简介

控制吃饭的速度,达到合理膳食的目的

统计网球拍的发力点等数据,透过APP指引纠正打球技能

自动识别饮料的种类

用于统计/提醒儿童刷牙

用于记录鸡蛋的新鲜度

记录主人的运动/受力状况,可用于医疗监测,或个人健身

电视与镜子双重功能。不看电视,就当梳妆镜用,节约空间

如果增加IP协议栈的设计,将会增加复杂度。有些产品的设计,是基于ID的交换。


IPSO:是一个组织,如何让Sensor与Internet相链接。

Smart objects:一个小型电脑,由sensor,有通信元件,嵌入到开关/引擎/工业用的机器等物件中。

微控制器,低功耗无线通信设备

记忆体的容量:几十K就够了

IPSO:目标是开机后就具有自动IPV6联网的能力。

如何裁剪IPV6的source code来适应smart object的需求?

IP本身与物理层无关。IP只需要8/16位的micro-controller就可以。需要的记忆体小,基于电池,Stack通常只需要4K RAM,小于32K的Flash就够了,直接leverage IP protocol,不需要专门为了IoT重新设计protocol。

有哪些问题:

1.目前并没有很好的方法让IP运行在IEEE802.15.4 Zigbee网络上面。

2.如果将IP和IP以上的协议栈不改,直接放在IEEE802.15.4上面,会发现数据帧格式不匹配。Zigbee是基于sensor network,目的只是转data,做资料的传输,它的封包不要很大,在标准里面定义最大127Byte。如果将IPV6data(IPV6 header 40 bytes, TCP header 20 bytes, UDP 8 bytes,如果在加上其它的security/routing layter的内容,剩下的空间已经很小,绝大部分是header,data空间很小)

Zigbee可以布置很多的node,而且可以multi-hop,经过很多跳,将data传送出去,这就会涉及到routing。zigbee网络中,data从一个sensor出来,到达gateway,中间可能会经过很多sensor,会有routing的问题,routing protocol?

DSR:传统的Ad hoc网络中的动态路由协议,这个协议的问题在于,它自己的封包比较大,可能没有办法放到Zigbee的封包里面。

AODV:另一个路由协议,可能需要较大的memory,开销较大。

以上这些协议无法直接用在Zigbee网络上,可能会遇到各种问题,因为zigbee网络本身的资源比较少。

有限的配置与管理的需求之下,传统的routing protocol不见得可以直接用于Zigbee网络中。


Zigbee:基于低功耗,比较容易发生资料流失的状况,是一个相对不稳定的无线网络上面如何做routing?

要把LLN上面的node变成end-to-end的IP-Based solution。 希望通过IP将大家链接起来

避免使用protocol translation gateway。

如果用Protocol translation gateway:无法大规模的扩容,不容易操作管理,安装部署较贵,破坏了end-to-end的安全性与完整性。

左边:用multi-protocol protocol gateway,会增加网络的复杂度,无法大规模部署。

右边:整个sensor netowok均是基于IP,将网络链接起来只需要IP router即可。end-to-end通信都走IP,相对实现比较简单。

low power:希望电池可以运行1~2年

low cost

low bandwidth

high density

IP network interaction:如何透过IP,与整个互联网互联?

6LoWPAN:基于Sensor+IPv6的协议

让IPV6用于低功耗的无线网络传输。

路由协议:6LoWPAN与ROLL非常相关

小封包:最大127Byte

MAC地址64bit

低频宽:250kbps

低功耗

low cost

wireless设备透过6LoWPAN,就可以与传统的互联网。如何将IPv6+UDP header简化,让它塞入127Byte的封包中。

相连后,这些sensor就可以与internet的application互动,自己本身也是internet的一部分。

可以与传统的计算机基础设施双向沟通

利用现代的安全技术,保障传输/node的安全

6LoWPAN:介于IP与Link层中间,将IPV6的封包压缩,放在Zigbee网络上。作为调节层。Adaption Layer

IPv6是大封包,无法直接放到Zigbee网络上。

1. 对数据做fragmentation

2. 对header做压缩。

3. Chained header

IPv6:最小1280Byte

Zigbee:最大127Byte

Disp:控制域

切割,会多出一个Frag Header。告诉是如何切割的,方便后续组合

Size:datagram本身的大小/即每个fragment的大小

Tag:每个fragment的id。属于同一个IPv6切割下来的每个fragment的id都相同,组合时,看id就知道它们原来属于同一个IPv6封包。

Offset:在原来的ip封包中的相对位置。

第一个fragment的offset一定为0,因而在第一个fragment里面没有offset信息。除了第一个fragment外,其余fragment都有offset信息。

封包压缩时,尽量不用state,基本上是stateless,与该封包属于哪个flow无关,只针对某一个IP Header/TCP UDP的header做压缩。

尽量用共同的资讯。假设每个IPV6的header都有的值,就可以忽略,作为压缩。

Ver: always 6. 每个封包都一样,因此这个栏位就可以拿掉。

Traffic Class/Flow Label: IPV6中用于做priority与flow control,在大的internet中需要。而在sensor network中,这个值几乎都是零,这个栏位的值也可以拿到。

Payload Length:IPV6中记录payload的长度,这个值可以在Layer2的header中得到,因此此处这个栏位也可以被简化掉。

Source/Destination Address:IPV6的IP地址有128位,很多IP地址刚开机时都是link local,Prefix是FE80,因此此处FE80就可以省略掉。之后是interface的ID,该ID通常由mac address得到,既然可以从第二层的mac address得到,此处也可以省略掉。 FE80::Interface ID。 Interface ID从layer2的MAC Address计算得到。

让本来长度位40Byte的IPV6 header越小越好。

6LoWPAN的header里面,有2个byte的control code,记录了header的压缩方式。

前面三位:011,代表了后面是IPV6 header的压缩说明。

TF:第3/4两个bit,记录了traffic class and flow control。 当为11,代表后面的都是0,这样连同后面的“in-line ip header bits”都可以省掉;如果未00,则代表Carried inline,后面的“ECN+DSCP+Flow”就会出现在“in-line ip header bits”,代表该栏位没有被压缩;如果为01,代表后面有带“ECN+Flow”;如果为10,代表后面有带“ECN+DSCP”

NH:后面的header,可能是UDP/TCP,表示下一个header有没有被压缩。0:下一个header没有被压缩。1:下一个header有被压缩。

HLIM:封包进入网络后经过多少个hop必须出网络,否则会被丢弃。hop limit=inline,1,64,256;当hop limit=inline时,原来IPV6header的8个bit的hop limit栏位不动。如果这两个bit=00,表示ipv6的hop limit没有任何压缩,inline,IPV6 hot limit这个栏位还在;如果两个bit不为00,则表示原来ipv6的hop limit这个栏位已经不存在,已经被减化过了。当这两个bit=01,代表hop count=1;如果这两个bit=10,代表hop count=64;如果这两个bit=11,代表hop count=255.

CID:针对source ip/destination ip。 IPv6的地址有两部分,一部分是link local, FE80. 另一部分是从router得到的,给的ipv6的位置,用于找router,即global ipv6. global ipv6的位置一般相同。一个ipv6的prefix,通常用一个contex表示。ipv6最多给16种不同的prefix,对这16种不同的prefix用4bit进行编号。如果CID=0,表示没有另外一个CID byte,context=0,压缩程度更高;如果CID=1,表示后面会插入一个Byte,这个byte每4个bit代表哪个prefix,分别为source ip的prefix与 destination ip的prefix。

SAC/DAC:压缩方式,0为stateless,1为context-based

SAM/DAM:代表现在的source/destination address到底有多长。11:表示已经省略掉,要么可以从layer2的mac address计算出来,要么是link local,FE80::Layer2 interface address;00:还是有16byte 128bit,没有压缩;01:8 byte inline;10:2 bytes inline。 压缩是target,但并不代表所有的header都可以压缩。

M:代表destination是否为multicast。

TF=11:代表后面的ECN/DSCP/Flow Label三个栏位都是0,可以省略。

TF=00:表示ECN/DSCP/Flow Label三个栏位都在,没有压缩

TF=01:表示DSCP这个栏位可以省略,ECN/Flow Label这两个栏位还在

TF=10:表示Flow Label这个栏位可以省略,ECN/DSCP这两个栏位还在

NH=0:表示next header没有压缩

NH=1:表示next header 有压缩。

HLIM=00:表示原来IPV6中的Hop Limit(8bit)这个栏位还在,没有压缩。

HLIM=01:表示原来IPV6中的Hop Limit这个栏位已经不存在,hop limit=1。

HLIM=01:表示原来IPV6中的Hop Limit这个栏位已经不存在,hop limit=64。

HLIM=11:表示原来IPV6中的Hop Limit这个栏位已经不存在,hop limit=255。

IPV6 Address分为两类,一类是unicast address,另一类是multi-cast address。

对于128bit的unicast address,又分为两部分,一部分为prefix,另一部分为interface identifier。

对于prefix,在6LoWPAN网络中,通常具有相同的prefix。link address通常来源于两部分,自己给的(link local)或router 给的(global),router通常会给相同的prefix,因为是相同的网络。

Sensor node通常只与一个或数个central device通信,sensor node的目的是做资料的收集,将data送给central device,透过central device将data送到internet。central device:control device/6LoWPAN router,相对网络中的少数设备。

Router给的prefix,最多16个,编号0~15,则只需要4个bit即可。

只有一个state maintain,与过去状态无关。

最多16个context

对于Interface ID:大部分的Interface ID从Layer2的地址/通常是MAC Address得到。IPv6有auto configuration的功能,即一开机先生成自己的IPv6地址,其中Prefix=FE80::。

如果interface id可以由Layer2的header MAC address得到,则该处IP地址interface id的部分就可以不写/不用记录。这样可以进一步的header compression。

Source/Destination Address Mode:11/代表整个128bit的位置都可以省掉,Prefix=FE80::,Interface ID可以通过layer2的MAC Address得到;10/代表112-bit prefix可以省略掉,只剩下16bit的空间;01/64-bit prefix可以省略掉,只剩下64bit的空间;00/代表128bit的IP地址都没有压缩。 尽量压缩IP,但不一定总可以压缩。

SAC/DAC=0:Prefix=link local: FE80::/16 是标准的prefix,产生一个ipv6的位置,目的是用于找router。

SAC/DAC=1:是一个global address

router给的prefix最多16个,这16个prefix用4个bit编号就可以表示,这样可以减少空间。

DAM=11:群播,找router/neighbor,此时目的地址只需要Group ID即可,此时地址的长度就可以缩减成只需要1个Byte即可。

DAM=00:代表没有任何压缩

DAM=01:会稍微压缩一点点。

不管是unicat还是multi cast,不管是link local还是global address,都有办法尽量对地址进行压缩。


6LoWPAN每一个compressed header都会记录下一个header是不是也是compressed header。

假设IPv6是compressed,上面有一个byte(control byte) HC1会记录IPv6header是如何压缩的,同时也记录下一个header是否有做压缩。

如果下一个header是UDP,control byte HC2也会记录下一个header是否有做压缩。这样的结构就可以知道每个header是如何压缩的。

UDP的header本来就只有8byte

首先看4个栏位有哪些共同值可以简化。

因为6LoWPAN网络规模不是很大,让source port均落在61616~61632这16个地址(4bit)中即可,这样马上就可以将16bit的source port变为4bit,16bit的destination port也压缩成4bit。将port number进行规范化,减少port id的范围。

对于封包的长度,因为IPv6本身也可以记录封包的长度,因此此处可以忽略,直接使用IPv6记录的长度即可。

对于Checksum,如果在其它的protocol已经有checksum,则该栏位即可省略,如果没有,则需要保留。 比如封包用IPSec,则可以简化,如果封包不是IPSec,没有checksum机制,则checksum栏位应该保留。

本来UDP header是8Byte,就有可能简化成1Byte。

C:checksum,如果C=0,代表checksum不可拿掉。如果C=1,代表checksum可以拿掉。

P: port number 2bit, 如果P=1/代表destination port的前面8个bit可以省略。 P=2/代表source port的前面8个bit可以省略。P=3/source & destination port的12bit均可以拿掉,各自只剩下4个bit即可。P=0/代表source port与destination port无法压缩,还是原来的16bit/16bit

上面为原来的封包,包括link header/IPv6 Hdr/UDP Hdr, 压缩后的封包 (IPV6+UDP hdr)= 48-byte ---》 7 bytes

上图IPv6 header/UDP header 蓝色部分(compact forms)均可以被压缩掉。绿色部分经过转化即可取得。 interface id可以从MAC address得到。 Checksum 保留,port 保留1个byte

UDP header 8个byte 压缩成1个byte

IPv6 40byte 压缩成6个byte

这样,就可以看到link local unicast的IPv6 header+UDP header的48-byte压缩成7-byte

Global Unicast给的prefix就不是FE80::,而是Context,共16种。

浅蓝色的部分可以被压缩掉。 深蓝色为Global IP, Hop Limit=23,这个Byte不可以压缩。

Link loca multi-cast,在找router,找neighbor时用到。

以上可知,IPv6的header压缩是有效的。


RFC4861会定义IPv6如何寻找router,取得prefix,router如何从IP位置获取其MAC address(IPv6中没有ARP这个协议),如何检查unreachability(电脑没有开机).Neighbor discover的定义是基于LAN的网络,Ethernet的网络,connected interface,网络相对比较稳定。

6LoWPAN会有single-hop mesh与multi-hop mesh。

6LoWPAN本身是low power,处在一个lossy,asymmetric radio environment。 radio cover的范围不一定相同,可能A送的范围较大,B送的范围较小,A可以发送给B,但B无法发送给A,A/B之间的发送范围不对称。

经常做multi-cast会使得成本很高,因为device low-power

地址解析没有必要,因为sensor送的对象相对比较固定,不需要经常更换mac/ip

会有一个独立的EUI-64 address来代表这个sensor node

平常,这个sensor处于休眠状态,用于节能,不需要always on。

基于这些特性,传统IPv6的neighbor discover不一定适应于6LoWPAN,RFC4944定义了如何在6LoWPAN中做neighbor discovery

Border Router用于与internet相连。

6LoWPAN Host在开机时,会做自动化的设定autoconfig,它一定回去找router,产生一个link local的位置,做router seliscating(MC:Multi-cast,因为它不知道router在哪里),

router在收到该封包后,会回应host(RA Router Acknkowledgement,unicast),告诉host该router的一些参数。

然后host在做NS(Neighbor solitation,找neighbor),同时里面会有ARO,做位置的注册。

router会做NCE:暂时neighbor状态的储存。然后送出一个DAR,找border router

Border router会做DAD的检查,确定address没有duplicate,然后回给router DAC,confirm信息

注册完毕后,然后6LoWPAN Host就可以直接与internet进行交互,送data。

6LoWPAN是介于IP层与MAC层之间的中间层,adaptive layer

相比较WIFI,耗能只有802.11的1%,8-16bit的MCU,关机时间99%

IEEE802.15.4 Zigbee网络本身无法联网。6LoWPAN可以让Zigbee网络与IP网络链接,上网。

可以提供一个open-systems的基于IEEE802.15.4的lower-power的设备互通

也让这些基于IEEE802.15.4的lower-power的设备与已经存在的IP设备用标准的IP protocol互通

6LoWPAN为未来的标准化建立了一个良好的基础。

网络层:收到data如何送到cloud中去?

过去,大概每8~10年,会有一代通信。

18~20年,让刚开始的应用达到使用高峰; 从launch到使用的高峰值区间为18~20年。

4G行动上网:让我们从终端,透过网络将数据发送到云端,然后云端提供不同的service--云服务

5G:智能电网  电力的输送很关键:只能电网用于如何在电力传送过程中高效,节能

智慧理疗,娱乐,智慧家居,智能车。 如果汽车够智能,需要其应对速度足够的快

速度更快,延迟更小,容量更大

conneciton density连线密度:一平方公里里面可以支持多少用户,达到百万级。

希望5G,电池寿命可以达到1000天,接近3年。

没送一个bit,耗能越小越好。

Spectral Efficiency:一秒钟可以传送多少bit?无线编码效率。

Capacity density:

不同的应用,对5G网络的指标要求不同。

绿色圈内的部分:物联网的要求

红色圈内的部分:5G的能力

黑色圈内的部分:公共安全的要求。 5G的标准,对物联网的推动/需求有很大的帮助。



无人机物流:24小时送货 到 30分钟送货

智慧手表上,开放一些接口,方便二次开发。

IBM侧重于城市管理


猜你喜欢

转载自blog.csdn.net/f2157120/article/details/80956549
今日推荐