mux协议.docx
- 文档编号:14036215
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:7
- 大小:18.67KB
mux协议.docx
《mux协议.docx》由会员分享,可在线阅读,更多相关《mux协议.docx(7页珍藏版)》请在冰点文库上搜索。
mux协议
竭诚为您提供优质文档/双击可除
mux协议
篇一:
Vxworks网络协议栈的mux接口
Vxworks网络协议栈的mux接口
摘要:
嵌入式系统网络协议栈的灵活性在应用上是一个重要指标。
介绍嵌入式实操作系统Vxworks网络协议栈的mux(mutiplexer)接口及其使用方法。
关键词:
Vxworks网络协议栈mux
Vxworks是美国windRiversystem公司(风河公司)推出的一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。
它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、弹道制导、飞机导航等。
Vxworks操作系统包括进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等几个部分。
Vxworks只占用很小的存储空间,并可高度裁减,保证了系统能以较高的效率运行。
它可以根据用户需求进行组合,其开放式结构对工业标准的支持使开发者只须做最少的工作即可设计有效的适合于不同用户的要求。
1Vxworks的网络协议栈和mux接口
Vxworks中的网络协议栈叫作sens(scalableenhancednetworkstack),即可裁减强网络协议栈。
sens是基于4.4bsdtcp/ip协议栈发展而来的,包含了许多4.4bsdtcp/ip协议栈没的协议;而且sens在实现一些协议功能时增加了许多新特性,如在ip协议实现时增加了多播功能。
sens协议栈层次如图1所示。
sens的基本特征和传统的tcp/ip网络协议栈相似,但从图1中可以看出sens最大的特点是在数据链路层和网络协议层之间多了mux层。
在sens中,网络接口的驱动程序是叫作end(enhancednetworkdriver),即增强型网络驱动程序,它处于数据链路层。
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来与新协议通信。
2mux接口工作流程分析
mux层作为独立的一个网络层有其自己的功能函数,但这些功能函数只是其上下两层通信的接口。
网络协议层和网络驱动与mux接口的调用关系如图3所示。
网络协议提供下面的接口功能函数:
①stackshutdownRtn()
②stackerror()
③stackRcvRtn()
④stacktxRestartRtn()
当mux接口层需要与协议层相互通信时,就调用以上的功能函数。
想要使网络协议层能够使用mux,必须至少实现以上四个功能函数。
mux则实现muxbind()、muxunbind()、muxdevload()等等。
网络协议层和网络驱动接口都要根据各自的需要使用mux接入点。
由于mux是由系统提供的,不需要在应用时再进行额外的编码工作;只要在使用时,填入正确的参数即可。
例如在Vxworks中,muxdevload是这样定义的:
end_obj*muxdevload
(
intunit,/*设备号码*/
end_obj*(*endload)(char*,void*),/*调用设备函数*/
char*pinitstring,/*初始化字符串*/
boolloaning,/*存储标识*/
void*pbsp/*调用bsp功能的函数*/
)
其它功能函数在muxlib.h文件中有详细定义。
网络接口的驱动程序要完成endload()、endunload()、endsend()等功能函数。
mux使用这些功能函数来与网络驱动程序通信。
当编写或加载一个使用mux的网络驱动程序时,必须实现图3中end的所有功能。
这些功能函数都是针对具体的网络接口,即每一个网络驱动程序中都要有这些功能函数。
3mux的应用
3.1系统如何通过mux启动和使用网络接口驱动程序——end
系统启动时要通过任务(与进程概念相近,是嵌入式操作系统中的执行单元)来执行以下功能:
①从存储器中装载并启动end;
②注册用来处理end的中断;
③通过end来实现处理包的功能。
在系统启动时,Vxworks产生一tusrRoot任务来执行以下的功能:
首先初始化网络任务的工作队列,然后产生一个tnettask来处理网络任务工作队列中的任务。
tnettask任务调用muxdevload()来装载网络接口驱动,在tnettask中已经定义了网络驱动设备的endload()接入点,muxdevload()则也要执行endload()。
endload()执行设备初始化并且返回一个名为end_obj的结构。
mux通过在end_obj上加一个指针,指向能完成将数据向mux上层发送的功能(函数)。
然后mux把返回的end_obj加到end_obj结构链表中。
这个链表包括目前系统中所有可用的网络设备。
当从muxdevload()返回后,网络设备就准备好可以使用了。
我们必须调用sysintconnect()来注册网络接口设备的中断处理。
最典型的调用sysintconnect()是在网络接口设备的endstart()中。
当通过muxdevload()来装载网络接口设备时,就会调用muxdevstart()来启动该设备,muxdevstart()就会调用endstar(),从而进行中断处理的注册。
系统启动后,就要依靠中断来使用该设备。
当从网络设备的中断来到时,Vxworks激活该设备驱动程序所注册的中断服务。
中断服务的工作量应该是最小的,只需完成从本地硬件上取到包即可。
为了使中断的锁定时间最少,中断服务应该仅处理那些要求最少执行时间的任务,例如出错和状态改变。
中断服务为了让所有耗时的工作在任务级别处理,应该将其排队。
例如:
要使在任务级别处理包接受的工作排队,中断服务必须调用netjobadd()。
在输入的时候,这个例行程序(Rou(mux协议)tine)收到一个功能函数的指针并且直到收到五个额外的参数(指针所指功能函数的参数)。
statusnetjobadd
(
FuncptRroutine,/*在工作程序队列中要加的例行程序*/
intparam1,/*这个例行程序的第一个参数*/
intparam2,/*这个例行程序的第二个参数*/
intparam3,/*这个例行程序的第三个参数*/
intparam4,/*这个例行程序的第四个参数*/
intparam5,/*这个例行程序的第五个参数*/
)
如果调用netjobadd(),就必须定义网络驱动在任务级别处理包的接入点。
netjobadd例行程序将功能函数调用(包括其参数)放入tnettask的任务队列中。
Vxworks使用tnettask处理任务级别的网络处理功能。
这里只是举例说明了接收包的情况,其它情况下netjobadd()也一样能执行对应的入列功能。
3.2基于mux的网络协议层和网络接口驱动程序
基于mux的特点:
提供一个接口,使与其相连各层程序的编写只需在基础上编写即可。
可以说不论是网络协议层还是网络接口驱动程序都可以把mux看作应用程序接口(api)。
在Vxworks目标系统中加载一个网络接口设备的驱动程序就和编写一个应用程序一样的简单。
具体步骤如下:
①编译驱动程序的源代码并在Vxworks镜像中加载;
②编辑target/src/config/bsp/confignet.h;
③编辑bsp的cfonfig.h文件。
注意,如果不重新编译新的bootRoms(启动Rom),那么就不能使用新的end。
这就是说,只能启动一个没有end的目标系统,所以必须编辑配置文件,才能使用新的end。
由图3可知,基于mux的网络协议与mux向上绑定,而网络接口驱动是与mux向下绑定的。
协议层的主要功能是对传输层和应用程序提供接口。
协议层的代码编写也是通过mux接口提供的接口进行编程,这和通用计算机有很大的相似之处,这里就不再述。
篇二:
端口协议
端口描述状
态
0/tcp,udp保留端口;不使用(若发送过程不准备接受回复消息,则可以作为源官
端口)方
1/tcp,udp(传输控制协议端口服务多路开关选择器)官
方
5/tcp,udp(远程作业登录)官
方
7/tcp,udp(回显)协议官
方
9/tcp,udp(丢弃)协议官
方
11/tcp,udp协议官
方
13/tcp,udp官
方
15/tcp,udp协议官
方
17/tcp,udp(quoteoftheday,每日引用)协议官
方
18/tcp,udp消息发送协议官
方
41/tcp,udp图形官
方
42/tcp,udphostnameserver(主机名服务)官
方
非
42/tcp,udp(wins主机名服务)官
方
43/tcp协议官
方
49/tcp,udp登录主机协议官
方
53/tcp,udp(域名服务系统)官
方
56/tcp,udp远程访问协议官
方
57/tcpmtp,邮件传输协议
67/udp(bootstrap协议)服务;同时用于(动态主机设定协官
议)方
68/udp客户端;同时用于官
方
69/udp(小型文件传输协议)官
方
篇三:
常见协议及端口号
我们常用的协议以及对应端口号
以下内容第一段为端口号,第二段为端口对应的服务名称,第三段为注释信息。
1tcpmuxtcp端口服务多路复用。
18msp消息发送协议。
20ftp-dataFtp数据端口。
21ftp文件传输协议(Ftp)端口,有时候被文件服务协议(Fsp)使用。
22ssh安全shell(ssh)服务。
23telnettelnet服务。
25smtp简单邮件传输协议(smtp)。
37time时间协议。
42nameserver互联网名称服务。
53domain域名服务(bind)。
67bootps引导协议(boots)服务;还被动态主机配置协议(dhcp)使用。
69tftp小文件传输协议(tFtp)。
80http用于万维网(www)服务的超文本传输协议(http)。
107rtelnet远程telnet。
109pop2邮局协议版本2。
110pop3邮局协议版本3.
115sftp安全文件传输协议(sFtp)服务。
119nntp用于usenet讨论系统的网络新闻传输协议(nntp)。
137在红帽企业linux中被samba使用netbios名称服务。
138在红帽企业linux中被samba使用netbios数据报服务。
139在红帽企业linux中被samba使用netbios会话服务。
143imap互联网消息存取协议(imap)。
209qmtp快速邮件传输协议(qmtp)。
220imap3互联网消息存取协议版本3.
389idap轻型目录存取协议(ldap)。
443https安全超文本传输协议。
445microsoft-ds通过tcp/ip的服务器消息块(smb)。
487saft简单不对称文件传输saFt协议。
488gss-http用于http的通用安全服务(gss)。
546dhcpv6-client动态主机配置协议(dhcp)版本6客户
547dhcpv6-client动态主机配置协议(dhcp)版本6服务。
994ircs通过安全套接字层的互联网中继聊天(iRcs)。
995pop3s通过安全套接字层的邮局协议版本3(pops3).
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mux 协议