VxWorks网络协议栈的MUX接口
发布时间:2008/5/27 0:00:00 访问次数:726
     张晓华 李智涛 徐 钊
     来源:《单片机与嵌入式系统应用》
     摘要:嵌入式系统网络协议栈的灵活性在应用上是一个重要指标。介绍嵌入式实操作系统vxworks网络协议栈的mux(mutiplexer)接口及其使用方法。
    
    
     关键词:vxworks
     网络协议栈 mux
     vxworks是美国wind river system公司(风河公司)推出的一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、弹道制导、飞机导航等。vxworks操作系统包括进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等几个部分。vxworks只占用很小的存储空间,并可高度裁减,保证了系统能以较高的效率运行。它可以根据用户需求进行组合,其开放式结构对工业标准的支持使开发者只须做最少的工作即可设计有效的适合于不同用户的要求。
     1 vxworks的网络协议栈和mux接口
     vxworks中的网络协议栈叫作sens(scalable
     enhanced network stack),即可裁减强网络协议栈。sens是基于4.4bsd
     tcp/ip协议栈发展而来的,包含了许多4.4bsd tcp/ip协议栈没的协议;而且sens在实现一些协议功能时增加了许多新特性,如在ip协议实现时增加了多播功能。sens协议栈层次如图1所示。
     sens的基本特征和传统的tcp/ip网络协议栈相似,但从图1中可以看出sens最大的特点是在数据链路层和网络协议层之间多了mux层。在sens中,网络接口的驱动程序是叫作end(enhanced
     network driver),即增强型网络驱动程序,它处于数据链路层。ip层和tcp/udp层合称为网络协议层。在数据链路层和网络协议层之间有应用程序接口(api),这个接口在sens中叫作mux(multiplexer)接口。mux接口如图2所示。
     在网络协议层,vxworks典型地使用tcp/ip协议(也支持其它协议);在数据链路层典型地使用ethernet,也支持其它数据传输的物理媒体,例如远距离连接使用的串行线路接入方式,如ppp等。但是,无论使用什么物理媒体,网络接口驱动都要用到mux去与网络协议层通信(数据链路层是一个抽象概念,网络接口驱动程序则是这种抽象概念所描述的功能实现的代码)。
     在4.3bsd中,vxworks的网络接口驱动和协议是紧密结合在一起的,它们通过传递特定的数据结构互通信;而在mux基础上,它们只是通过mux间接地相互作用。例如,在收到一个包后,网络接口驱动并没直接与协议层连接。同样地,当网络接口驱动准备好向协议层发送数据时,驱动程序会调用一个mux提供的功能(函数)。这个功能(函数)具体负责将数据传给协议层的动作细节。应用mux的主要目的是把网络接口驱动和协议层分开,这样就使得网络接口驱动和协议层彼此基本上保持独立。这种独立性使得加载一个新的协议或网络接口驱动,所有现有的基于mux的协议就都可以用这个新的网络接口驱动程序;同样,如果要加一个新的基于mux的协议,现有的网络接口驱动也能够用mux来与新协议通信。
     2 mux接口工作流程分析
     mux层作为独立的一个网络层有其自己的功能函数,但这些功能函数只是其上下两层通信的接口。网络协议层和网络驱动与mux接口的调用关系如图3所示。
     网络协议提供下面的接口功能函数:
     ①stackshutdownrtn()
     ②stackerror()
     ③stackrcvrtn()
     ④stacktxrestartrtn()
     当mux接口层需要与协议层相互通信时,就调用以上的功能函数。想要使网络协议层能够使用mux,必须至少实现以上四个功能函数。
     mux则实现muxbind()、muxunbind(
     张晓华 李智涛 徐 钊
     来源:《单片机与嵌入式系统应用》
     摘要:嵌入式系统网络协议栈的灵活性在应用上是一个重要指标。介绍嵌入式实操作系统vxworks网络协议栈的mux(mutiplexer)接口及其使用方法。
    
    
     关键词:vxworks
     网络协议栈 mux
     vxworks是美国wind river system公司(风河公司)推出的一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、弹道制导、飞机导航等。vxworks操作系统包括进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等几个部分。vxworks只占用很小的存储空间,并可高度裁减,保证了系统能以较高的效率运行。它可以根据用户需求进行组合,其开放式结构对工业标准的支持使开发者只须做最少的工作即可设计有效的适合于不同用户的要求。
     1 vxworks的网络协议栈和mux接口
     vxworks中的网络协议栈叫作sens(scalable
     enhanced network stack),即可裁减强网络协议栈。sens是基于4.4bsd
     tcp/ip协议栈发展而来的,包含了许多4.4bsd tcp/ip协议栈没的协议;而且sens在实现一些协议功能时增加了许多新特性,如在ip协议实现时增加了多播功能。sens协议栈层次如图1所示。
     sens的基本特征和传统的tcp/ip网络协议栈相似,但从图1中可以看出sens最大的特点是在数据链路层和网络协议层之间多了mux层。在sens中,网络接口的驱动程序是叫作end(enhanced
     network driver),即增强型网络驱动程序,它处于数据链路层。ip层和tcp/udp层合称为网络协议层。在数据链路层和网络协议层之间有应用程序接口(api),这个接口在sens中叫作mux(multiplexer)接口。mux接口如图2所示。
     在网络协议层,vxworks典型地使用tcp/ip协议(也支持其它协议);在数据链路层典型地使用ethernet,也支持其它数据传输的物理媒体,例如远距离连接使用的串行线路接入方式,如ppp等。但是,无论使用什么物理媒体,网络接口驱动都要用到mux去与网络协议层通信(数据链路层是一个抽象概念,网络接口驱动程序则是这种抽象概念所描述的功能实现的代码)。
     在4.3bsd中,vxworks的网络接口驱动和协议是紧密结合在一起的,它们通过传递特定的数据结构互通信;而在mux基础上,它们只是通过mux间接地相互作用。例如,在收到一个包后,网络接口驱动并没直接与协议层连接。同样地,当网络接口驱动准备好向协议层发送数据时,驱动程序会调用一个mux提供的功能(函数)。这个功能(函数)具体负责将数据传给协议层的动作细节。应用mux的主要目的是把网络接口驱动和协议层分开,这样就使得网络接口驱动和协议层彼此基本上保持独立。这种独立性使得加载一个新的协议或网络接口驱动,所有现有的基于mux的协议就都可以用这个新的网络接口驱动程序;同样,如果要加一个新的基于mux的协议,现有的网络接口驱动也能够用mux来与新协议通信。
     2 mux接口工作流程分析
     mux层作为独立的一个网络层有其自己的功能函数,但这些功能函数只是其上下两层通信的接口。网络协议层和网络驱动与mux接口的调用关系如图3所示。
     网络协议提供下面的接口功能函数:
     ①stackshutdownrtn()
     ②stackerror()
     ③stackrcvrtn()
     ④stacktxrestartrtn()
     当mux接口层需要与协议层相互通信时,就调用以上的功能函数。想要使网络协议层能够使用mux,必须至少实现以上四个功能函数。
     mux则实现muxbind()、muxunbind(