论文部分内容阅读
随着物联网的蓬勃发展,嵌入式系统获得了巨大的发展契机,各式各样的嵌入式设备,如车载设备、移动终端、监控设备充斥着人们的生活,为人们的生活和工作带来了巨大的便利。然而,由于嵌入式系统种类繁多,又要考虑系统对嵌入式设备处理器及内存的资源消耗,因而许多嵌入式系统中的网络协议栈大都设计简单,并不能满足多应用场景下的需求。如何使嵌入式网络协议满足各种应用场景的需求,并保证日常通信的安全,已经成为人们共同关注的问题。Lw IP(Light weight IP)即轻量级IP协议,是标准TCP/IP协议栈的裁剪,即在保证实现TCP/IP基础功能的同时,又能很好的控制协议栈对处理器资源及存储资源的消耗,是许多嵌入式系统网络协议栈中非常重要的一种。但是随着Lw IP协议栈应用场景的扩大,在Lw IP协议栈应用过程中依然存在着很多问题。首先,LwIP网络协议栈的进程模型是让整个协议栈驻留在一个单独进程中,而并不将其放在操作系统内核中。而应用程序既可以与LwIP进程是一个进程,也可以是单独的应用进程。Windows系统自带的协议栈是内核态的网络协议栈,而移植到Windows系统下的LwIP协议栈是用户态的协议栈,与系统原生的协议栈相比具有更好的可扩展性并且高度定制。本文用官方发布的Lw IP contrib文件夹下的移植代码作为基础,将Lw IP网络协议栈移植到Windows操作系统中。此移植代码是基于Windows的线程间通信来编写,因此在此代码中是不能实现进程间通信的,而为满足LwIP多进程间的通信,一般的方法是要重新编写移植文件sys_arch.c以及其它涉及到移植的函数。但重写移植文件及函数涉及的方面非常多,不仅要对Windows中进程间通信非常了解,而且还要对Lw IP协议栈本身的移植过程非常熟悉,此种方式实现LwIP协议栈进程间通信难度很大。其次,LwIP协议栈对需要安全传输敏感信息的场景并没有做考虑,这使得嵌入式网络传输的信息完全暴露在安全威胁中。因此,如何保证嵌入式设备之间通讯的安全性,保证双方通信信息的保密性、完整性已成为亟待解决的重要问题。本文针对LwIP在多进程应用场景和安全传输问题中的不足,研究设计了多进程LwIP和LwIP IPsec协议。本设计基于Windows平台,为了能够实现多应用进程间的通信,在不改变移植文件及相应的移植函数的基础上,通过将LwIP的核心代码编译成动态链接库,使得原本只能在线程间通信的协议栈转变为可以在应用进程间通信的协议栈。同时为了能保证通信的安全,还设计实现了Lw IP的IPsec协议解决了嵌入式系统中传输安全的问题。最后通过对相应模块的测试证明了这两种方案的可行性。