从三个方面探讨VxWorks网络协议栈(1)


在多种网络协议以及产品的支持下,让我们的生活工作有了更多的选择。那么这里我们就将介绍一下VxWorks网络协议栈等相关的内容。VxWorks是美国Wind River System公司风河公司)推出的一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统.它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军 事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、弹道制导、飞机导航等.VxWorks操作系统包括进程管理、存储管理、设 备管理、文件系统管理、网络协议及系统应用等几个部分.VxWorks只占用很小的存储空间,并可高度裁减,保证了系统能以较高的效率运行.它可以根据用 户需求进行组合,其开放式结构对工业标准的支持使开发者只须做最少的工作即可设计有效的适合于不同用户的要求.

1 VxWorks的网络协议栈和MUX接口

VxWorks中的网络协议栈叫作SENSScalable Enhanced Network Stack),即可裁减强网络协议栈.SENS是基于4.4BSD TCP/IP协议栈发展而来的,包含了许多4.4BSD TCP/IP协议栈没的协议;而且SENS在实现一些协议功能时增加了许多新特性,如在IP协议实现时增加了多播功能.SENS协议栈层次如图1所示.

SENS网络协议栈

SENS的基本特征和传统的TCP/IP网络协议栈相似,但从图1中可以看出SENS最大的特点是在数据链路层和网络协议层之间多了MUX层.在SENS中,网络接口的驱动程序是叫作ENDEnhanced Network Driver),即增强型网络驱动程序,它处于数据链路层.IP层和TCP/UDP层合称为网络协议层.在数据链路层和网络协议层之间有应用程序接口API),这个接口在SENS中叫作MUXMultiplexer)接口.MUX接口如图2所示.

SENS中的MUX接口

在网络协议层,VxWorks典型地使用TCP/IP协议也支持其它协议);在数据链路层典型地使用Ethernet,也支持其它数据传输的物理媒体, 例如远距离连接使用的串行线路接入方式,如PPP等.但是,无论使用什么物理媒体,网络接口驱动都要用到MUX去与网络协议层通信数据链路层是一个抽象 概念,网络接口驱动程序则是这种抽象概念所描述的功能实现的代码).

在4.3BSD中,VxWorks的网络接口驱动和协议是紧密结合在一起的,它们通过传递特定的数据结构互通信;而在MUX基础上,它们只是通过MUX间 接地相互作用.例如,在收到一个包后,网络接口驱动并没直接与协议层连接.同样地,当网络接口驱动准备好向协议层发送数据时,驱动程序会调用一个MUX提 供的功能函数).这个功能函数)具体负责将数据传给协议层的动作细节.应用MUX的主要目的是把网络接口驱动和协议层分开,这样就使得网络接口驱动和 协议层彼此基本上保持独立.这种独立性使得加载一个新的协议或网络接口驱动,所有现有的基于MUX的协议就都可以用这个新的网络接口驱动程序;同样,如果 要加一个新的基于MUX的协议,现有的网络接口驱动也能够用MUX来与新协议通信.


相关内容

    暂无相关文章