进程模型(process model)

以下将process翻译为“进程”只是便于说明问题,在不同的OS中也可能会是线程。

TCP/IP的进程模型可以被设计为以下两种:(当然也可以是其他的模型)1. 每层的协议都作为一个独立的进程在运行,这种方式的好处在于代码易于理解和调试;同样也有不好之处,每数据报文经过每一层时,都需要进行一次上下文的切换(因为每层协议都在不同的进程中),在操作系统中,上下文的切换耗费资源比较大。2. lwIP使用单进程模型,所有的协议都运行在一个进程中,并且与操作系统内核是分开的。应用程序可以驻留在lwIP进程中或者运行在一个分离的进程中,当应用程序与lwIP在一个进程中,协议栈和应用层通讯通过函数调用即可。

这两种方法各有优缺点,lwIP之所以运行在一个分离地,单独地进程中,是因为这样易于不同的操作系统移植,为啥?与内核耦合性小。为了更方便移植,lwIP加了一层操作系统模拟层,只要实现这里面的提供的函数移植的基本工作就完成了。下一章将介绍操作系统模拟层。