首页 理论教育 IP精简与优化设计-将物联网与传感器技术融合

IP精简与优化设计-将物联网与传感器技术融合

时间:2023-11-02 理论教育 版权反馈
【摘要】:TCP的精简与优化设计TCP的精简主要包括精简TCP状态机,减少同时支持的TCP连接数目;滑动窗口的精简;使用简单的重传机制。HTTP的精简与优化对于响应代码,当用户请求的文件找到时,发送“请求成功”帧头;反之,均返回错误帧头“没有找到”。

IP精简与优化设计-将物联网与传感器技术融合

1.IP的精简与优化

1)删除IP寻径、分片和重组嵌入式汇聚节点作为一个供用户访问的网络节点,仅实现主机功能即可,无需为网络转发数据帧,并且默认一个网关为初始网关。这样,在IP层实现的寻径表仅由两项构成,即当前连接的客户端IP地址信息和默认网关地址信息。由于经汇聚节点传输的数据量不大,IP分片的情况很少,将IP分片和重组机制移除,不会造成通信质量下降和通信失败,而这样做不失一般性。

2)IP数据结构:IP数据帧选项字段主要用于网络测试或调试,正常通信时基本不用。因此,IP选项可以移去。精简后的IP主要完成:①对接收的数据帧检验IP头部校验和;②对IP包封装和解封,并根据协议字段值将数据帧交给相应的上层协议。

3)接收过程:函数Tiny_input()负责处理接收的数据帧,核对IP头部对应域的数值是否正确。如果正确,则根据协议字段的值交给相应的高层协议处理,否则丢弃该帧。

4)发送过程:应用程序发送数据时,在帧头的各个域内填充相应的数值进行封帧,由IP调用“封帧和发送函数”发送到网络上。

2.ICMP

Echo请求和应答消息的代码都是0,类型分别为8和0。回送请求和应答ICMP帧,标识符和序号用于匹配请求与应答(一台微机可以同时向若干个信宿机发出请求),μLwIP只接收类型字段为8的Echo请求帧,并将类型字段ICMP_ECHO改为ICMP_ECHO_RE-PLY,重新计算校验和回送给请求端,即除“类型和校验和”外,其他域保持不变。校验和的计算方法和IP头部校验和一样,但要计算整个ICMP消息帧(包括头部和数据)的校验和。

(1)TCP的精简与优化设计

TCP的精简主要包括精简TCP状态机,减少同时支持的TCP连接数目;滑动窗口的精简;使用简单的重传机制。

精简TCP状态机:面向连接和可靠性传输的特性决定了TCP每次通信都要经过3次握手建立和拆除连接,这个过程可以用状态机描述。为了状态机的正常工作,即各种状态之间的正确切换,必须存储每种状态的相关信息。状态机越复杂,TCP实现的规模越大,维护状态机的开销就越多,对处理器存储能力的要求也越高。将标准状态机客户端部分除去,精简了Web服务器关闭连接过程。

由于每个TCP连接由套接字唯一标识,Web服务器接到客户端建立TCP连接的请求时,除了发送SYN+ACK以外,还要记录该TCP的状态,包括源端IP地址、源端口号、目的IP地址、目的端口号、序列号等大量连接信息,以便对接收和发送的TCP段进行跟踪。因远程多用户访问汇聚节点的页面,因此基于LPC2210和IS61LV25616AL的精简TCP支持多个TCP连接,目前可以实现40个连接同时存在。实践证明,这是合适的选择。

(2)精简滑动窗口机制

由于簇头节点处理了大量来自传感器节点的数据,因此递交给汇聚节点的数据量并不大。在无线传感器网络汇聚节点主要负责传感器网与外网的连接,可看作网关节点。这类节点通常有组成4个基本单元:传感单元(由传感器和模数转换功能模块组成)、处理单元(由嵌入式系统构成,包括CPU、存储器、嵌入式操作系统等)、通信单元(由无线通信模块组成),以及电源部分所组成。此外,可以选择的其他功能单元包括定位系统、运动系统以及发电装置等。

汇聚节点在一次连接传输数据量不大的情况下,可采用简单停等协议,即只使用一个滑动窗口,这样节约了系统的资源,方便维护。实际测试表明:实时性无明显的降低,而且避免了流量和拥塞问题。

精简滑动窗口机制要求汇聚节点也使用简单的确认机制。如果汇聚节点仍使用较大的窗口,本地处理器就可能被大量的数据“淹没”。因此,可通过合理设置“窗口大小”字段值,通知发送方自己的接收缓冲区大小,避免发送方连续发送大量数据而造成接收缓冲区溢出,以至丢帧,同时使发送方也遵守同样的简单确认机制。(www.xing528.com)

(3)应用层参与重传

超时重传是TCP的一个复杂算法,可采用应用程序参与重传机制,对已发送的数据不作缓存。当重传定时器减至0时,激活TCP重传事务,然后调用HTTP回调函数HTTP_AP-PCALL(),检测重传标志位,进行重传工作。如果在连接已经建立阶段,就重新生成重传数据;如果在连接建立或关闭过程中,说明丢失的是确认或应答帧,根据不同的TCP连接状态,重发不同类型的数据帧。这样并不会增加应用程序的复杂性,因为确认重传的时机是TCP的责任,而应用程序只需要使应用层数据指针重新指向上一次发送的数据,在数据量不大的情况下,不会对网络拥塞有明显的影响。

基于以上对TCP数据结构的分析以及协议机制的精简,大大降低了TCP的实现难度。

(4)HTTP的精简与优化

对于响应代码,当用户请求的文件找到时,发送“请求成功”帧头;反之,均返回错误帧头“没有找到”。因为对于特定的嵌入式应用,Web服务器没有必要对响应出错做出过多的解释,尤其在汇聚节点资源有限的情况下,这是合理的选择。

3.嵌入式Web服务器的实现

无线传感器网络和以太网的融合将带来一些新的应用,如一方面使传感器网络得以借助这两种网络传递信息,另一方面这两种网络可以利用传感器信息实现应用的创新。在嵌入式TCP/IP协议栈μLwIP的设计和实现的基础上,实现了一个嵌入式Web服务器。HTTP是网络通信平台和用户之间基本的通信传输协议,负责汇聚节点与客户端之间的信息交互和解释。TCP为其提供了一条可靠的数据通信链路。IP屏蔽底层网络硬件细节,允许平台采用多种网络接口方式。ICMP提供了简单的网络连通诊断。数据链路层协议(ARP)负责在点对点串行链路上传输IP数据帧。各任务函数基本功能及优先级见表5-6。其中,数据帧接收任务TASK_TinyRec优先级最高,保证了网络数据不会丢失;数据帧处理任务优先级最低,保证了其他任务的及时处理。

表5-6 嵌入式Web服务器任务设计

978-7-111-38796-1-Chapter05-42.jpg

协议栈初始化工作主要是指对网络接口、TCP/IP协议栈缓冲区、TCP支持的协议端口号和连接状态等进行设置和复位。初始化后的服务器处于监听状态,一旦有浏览器的请求到达80端口,则建立连接。当接收到用户请求后,分解出URL(统一资源定位符)和请求方法。如果是静态文本,则直接读取并发送给浏览器;如是通用网关界面(CGI)脚本,则调用该脚本,完成数据采集或者执行控制指令。最后将脚本运行结果返回浏览器,在一定时延后无后续请求,则关闭该连接。汇聚节点的Web服务器仅对80端口开放,对于其他端口的请求一概丢弃,而且仅识别特定格式的用户请求和控制命令,相对于传统的大型服务器,其受恶意攻击的可能性很小,安全性较高。

4.动态网页和本地文件的读写与保存

为了使传感器节点采集的数据经过汇聚节点进入以太网后,在远端浏览器上实时刷新显示,动态网页支持是必要的。无线传感器网络的应用主要是远程智能监测,大量传感器节点采集大量的数据,但不作本地保存,而是实时上传,由于汇聚节点需要对测量数据进行深度分析与处理,因此采集数据的汇聚节点的本地保存和浏览器自动刷新数据十分必要。

Java语言中Applet的运行机制是以组件形式嵌入网页,在万维网的浏览器/服务器环境下运行。执行过程中,在服务器一端的Java编译器把Applet源代码编译成字节码,在HTML Script中被调用;客户端是一个与Java兼容的浏览器,Applet字节码在客户端被解释执行。这样Applet的运行不再受网络速度的影响,从而真正实现了网络通信上的动态交互性

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈