论文部分内容阅读
嵌入式系统已经深入到我们生活的方方面面。越来越多的工作需要嵌入式设备组成网络相互协作才能完成,这就必然需要有一套合适的通讯协议提供支持。而这些协议不外乎两大类,一类是提供设备之间应用层数据通讯,可以接入INTERNET的TCP/IP协议栈,如LWIP, UIP以及许多商业化操作系统像Windows CE,VxWorks,Palm OS等系统自带的协议栈。另一类则是更多的跟现场设备控制、机械操纵密切相关的底层工业总线协议,比如西门子的ProfiBus,PeterHans公司的ModBus,基金会现场总线FF等。虽然这两类协议都是服务于终端间的数据交互,但是所针对的应用环境和工作方式区别明显,对于些介于二者之间的通讯需求,比如局域网内部的应用数据通讯,就都不是很适合。因为此时既不需要IP封装所带来跨网传输能力,也不需要直接去读取或控制终端设备的寄存器,这就导致前面两种协议或者是因为封装和层次过于复杂导致通讯效率、实时性等指标不理想,或者由于协议针对性太强、定义过于详细而不能通用。因此,需要设计一种结构精简的嵌入式通信协议,解决资源(包括CPU、内存、能量)受限约束下局域网设备之间的高效通讯问题。此外,目前对于可信性的研究已有很多成果,但是大多停留在理论建模层次,一般利用加权计算,直接、间接信任传递等模型,或者是基于密钥交换,数字签名等机制。虽然理论上都能理想工作,但实际实现的时候,其实施难度和计算效率是很难估计的。对于公开源码的许多实现当中,比如LINUX2.4.X,LWIP以及商用操作系统中的通讯协议还并没有真正有关可信性的代码实现。针对以上要求和存在的问题,在充分考虑安全性、稳定性的基础上,本文设计了一个新颖、高效的嵌入式通讯协议栈E-LLC,主要研究工作如下:1.分析了IEEE802.2与TCP/UDP在工作模式上的相似性,利用LLC的封装实现了确认传输,流量控制等功能,将封装长度缩减为TCP/IP栈的1/3.2.针对TCP/IP中面向字节流确认带来的碎片攻击以及复杂的乱序重组带来的大量计算,设计了面向包的确认模式,缩减了封装长度,并有效降低了乱序重组的复杂度。经实际性能测试比较,其CPU占用率比TCP/IP类协议栈减少近5%。3.对于网关应用,提出了构建于协议栈内部的网关机制,使网关程序完全运行在协议栈内部从而避免了与应用层的交互和进程调度问题,有效提高了在跨网情况下嵌入式通讯的实时性。4.在可信安全方面,提出了事前评估机制,将节点可信度与数据过滤相结合,在网络中存在大量恶意节点攻击的情况下使网络的有效工作量仍然保持在可接受水平范围内。