胎儿左心室强光点是什么意思| xl是什么码| 月经期间喝酒有什么危害| 孩子是什么意思| 偏光太阳镜是什么意思| 为什么叫六小龄童| 端坐呼吸常见于什么病| 睡不醒是什么原因| 如家是什么内涵| 颈动脉斑块吃什么药好| 夜里2点到3点醒什么原因| 人为什么要刷牙| 车票改签是什么意思| mps是什么意思| 一见如什么| 手癣用什么药膏| 大寒是什么意思| 八七年属什么生肖| seifini是什么牌子| 好难过这不是我要的结果什么歌| 是什么单位| 含五行属什么| 什么是五官| 小金人车标是什么车| 星座上升是什么意思| 榴莲不可以和什么一起吃| 说一个人轴是什么意思| 田各读什么| 桑葚是什么季节的| 减肥晚餐吃什么好| 黄疸肝炎有什么症状| 红蓝光照射有什么作用| 企业性质指的是什么| 吃什么补充dha| 胸口闷痛挂什么科| 海狗是什么| 素饺子什么馅儿的好吃| 异丙醇是什么| psc是什么病| 风情万种的意思是什么| 尾巴翘上天是什么意思| 3月5日什么星座| 椭圆形脸适合什么发型| 王加玉念什么| 藩台是什么官| 不想吃饭吃什么药| 鱼石是什么| 什么是平衡力| gccg是什么牌子| 小孩睡觉流口水是什么原因| 12月27号是什么星座| 什么木质手串最好| 火药是什么时候发明的| 燚是什么意思| 4月27是什么星座| 什么是慈悲| 氟哌酸是什么药| 孕妇喝柠檬水对胎儿有什么好处| 幽门螺旋杆菌做什么检查| 女人喝什么茶减肥好| 黄瓜敷脸有什么作用与功效| 不议价什么意思| 外痔长什么样| 三观不合指的是什么| 为什么鼻毛会变白| 甲硝唑治什么| 1.12是什么星座| 剖腹产第三天可以吃什么| 三月初一是什么星座| ce是什么元素| 早些泄挂什么科| 痒痒粉在药店叫什么| 信阳毛尖属于什么茶| 沉鱼落雁闭月羞花什么意思| 脂肪肝浸润是什么意思| 为什么吃了避孕药还是怀孕了| 什么茶降糖效果最好| loa是什么胎位| 什么叫卒中| fashion什么意思| yeezy是什么牌子| 气机是什么意思| 梦见雪是什么征兆| 皮肤痒有什么特效药| 脚气去医院挂什么科| 我的手机是什么型号| 肠胃不好吃什么调理| 建兰什么时候开花| 恐惧感是什么意思| 什么有什么| 肺ca是什么病| 少许是什么意思| 什么药能治痛风| 意思是什么意思| 吃龟苓膏有什么好处| 与世隔绝的绝是什么意思| 梦到捡金子首饰是什么意思| 腋下黑是什么原因| 坐疮是什么样的图片| 怕热是什么体质| 嗓子哑了吃什么药| 便秘喝什么茶润肠通便| 10.30是什么星座| 尿里带血是什么原因女性| 女人腿肿应该检查什么| 姜字五行属什么| 喜欢吃冰的是什么原因| 吃什么养肝| 心主什么| 戊土是什么土| 有头皮屑用什么洗发水| camel是什么牌子| ph值高是什么原因| 金字塔里面有什么| 白芍有什么功效和作用| 人彘是什么| 总胆红素高是什么病| 什么的蚂蚁| 洁癖是什么意思| 嗓子疼吃什么食物好| 什么的长江| 周星驰是什么星座| bpo是什么| 功名利禄是什么意思| 天眼是什么意思| 何方珠宝是什么档次| 家长里短是什么意思| 不明觉厉是什么意思| 视频是什么意思| 华为最新款手机是什么型号| 儿童口腔溃疡用什么药| 精血是什么| candies什么意思| 减肥晚上吃什么合适| 威士忌兑什么饮料好喝| 龙长什么样| 刷牙时牙龈出血是什么原因| 为什么不建议光子嫩肤| 甲辰是什么意思| 盆腔积液是什么症状表现| 卷发适合什么脸型| 小麦粉可以做什么吃的| 尿气味重是什么原因| 内蒙古代叫什么| 口条是什么| 脑梗是什么原因造成的| 尿潜血挂什么科| 时柱将星是什么意思| 细小是什么| 夏对什么| 猪油用什么容器装好| 月经来了吃什么水果好| 窦性心律过缓是什么意思| 防晒霜和防晒乳有什么区别| 掌心痣代表什么意思| 小儿惊痫是什么症状| 风调雨顺是什么生肖| 溜冰是什么意思| 跑步大腿痒是什么原因| 什么是沙龙| rebecca什么意思| 狗尾巴草的花语是什么| 血压低头疼是什么原因| sunny是什么意思| 粉尘作业时必须佩戴什么口罩| 警察为什么叫蜀黍| 中分化是什么意思| 什么叫强直性脊柱炎| 山人是什么意思| 什么东西进去是硬的出来是软的| 手足口病挂什么科| 扁桃体发炎吃什么水果| 去湿气吃什么中药| 芒果和什么相克| outdoor是什么意思| 甲亢吃什么药| 桃花是什么颜色| 后援团是什么意思| 世界最大的岛是什么岛| 月季花是什么颜色的| 大理寺卿是什么职位| 十五岁是什么年华| 胆结石可以吃什么水果| 乙肝病毒核心抗体阳性是什么意思| 淋巴细胞偏低是什么原因| 霍光和卫子夫什么关系| 益气固表是什么意思| 什么时候进伏| 猪血不能和什么一起吃| 玻璃体混浊吃什么药好| vans属于什么档次| 痤疮是什么引起的| pcr是什么| 缅铃是什么| 石榴花什么时候开花| 秋天有什么花开| 马骝是什么意思| 粉色分泌物是什么原因| 老舍原名是什么| 总胆红素高说明什么| 主观意识是什么意思| 铁锈红配什么颜色好看| 孕育是什么意思| act是什么意思| 梦到兔子是什么征兆| 耳鸣吃什么药好| 猪沙肝是什么部位| 神仙是什么生肖| 肝内低密度影是什么意思| 胃疼拉肚子吃什么药| 早上三点是什么时辰| 为什么会胰岛素抵抗| 血虚是什么意思| 肺动脉增宽是什么意思| 龟是什么结构| 东方不败练的什么武功| mmhg是什么意思| 名声大噪是什么意思| 葡萄什么时候传入中国| 菊花用什么繁殖| 什么是佛| 晚上做梦梦到蛇是什么意思| ushi是什么品牌男装| 什么是汗疱疹| study是什么意思| 舌头起泡是什么原因| 女性分泌物增多发黄是什么原因| 鸡属相和什么属相最配| 碳元素是什么| 痰湿体质吃什么中成药| 男人硬不起来是什么原因| 淡蓝色配什么颜色好看| 产复欣颗粒什么时候吃| 赤色是什么颜色| 早晨起来口干舌燥是什么原因| 人走了说什么安慰的话| 鸡茸是什么东西| 狐假虎威是什么意思| 125是什么意思| 体重突然下降是什么原因| jo是什么意思| 老年人吃什么| 黑镜讲的是什么| 青榄配什么煲汤止咳做法| 生物科学是什么专业| 肉毒为什么怕热敷| 什么叫两会| 六味地黄丸有什么功效| 什么是水洗棉| 大学毕业是什么学历| 天真是什么意思| 杜仲泡酒有什么功效| 樱桃有什么营养价值| 犀利的眼神是什么意思| 脚踝后面的筋疼因为什么| d二聚体是检查什么的| 吃东西容易呛到是什么原因| 孩子咳嗽吃什么饭菜好| 冰粉籽是什么植物| 腰子是什么| 包皮开裂用什么药| 赤是什么意思| 胎儿头围偏大什么原因| 舌头两边疼是什么原因| 百度

新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > VxWorks下UDP协议栈效率的研究与改进

车况卫生待改进 共享汽车并不只有方便

作者: 时间:2025-08-04 来源:网络 收藏
摘要 电信网与计算机网的融合是一种趋势。在实时嵌入式操作系统环境下,使用以太网上的,高效传输电信业务的信令与数据。描述在此情况下,根据实际需求对以太网传输中网络设备驱动程序与栈进行与探索。
关键词 网络设备驱动百度 另据《北京日报》报道,北京市规划国土委发布《建设项目规划使用性质正面和负面清单》,四环路以内和中轴线延长线、长安街延长线这“两轴”周边,将限制各类用地调整性质改建住宅商品房。

1 使用标准UDP协议栈存在的问题
在VxWorks标准的IP协议实现的前提下,其UDP协议的实现存在于IP层。在VxWorks中有一个网络任务(亦即进程),用于完成以太网包的收发处理及与各种网络协议的接口,其名为tNetTask,优先级低于一般的系统任务而高于应用程序任务。系统的上层网络协议,如Telnet、FTP等,在服务器端有一个相应的任务,处理网络任务转交过来的数据报。

应用程序想要实现UDP数据报的收发,就要使用操作系统提供的socket编程接口,主要包括创建socket,绑定socket和源IP与端口号,发送UDP数据报和接收socket中收到的内容。在VxWorks中有4个函数与之相对应,分别是:socket()、bind()、sendto()和recvfrom()。在VxWorks操作系统中,socket号是与文件打开描述符(fd)同样管理的,一个socket与源IP和一个源端口相对应。Sendto()函数调甩时指明目的的IP地址和服务端口号。

本文描述的UDP协议栈使用背景可简要描述如下:该系统使用的主要硬件CPU平台是摩托罗拉公司的MPC860的CPU,主频为50 MHz;操作系统使用美国WindRiver公司的VxWorks。系统中各个设备(均有以太网接口)之间要在以太网上进行信令与语音、数据业务的传输,各种数据包采用统一的消息头编码格式。

使用标准UDP协议栈最大的问题是。在该系统平台上,网络传输的速率成为最大的瓶颈,并由此影响了系统的容量。根据测试的极限速率,使用10M以太网的实际有效传输速率仅有1.8 Mb/s,使用100M以太网口电没有明显的提高。另外,还有一个问题,网络任务经常会挂起,在开机运行较长时间后此现象尤为明显,这对系统的可用性和无故障工作时间构成威胁。而项目的目标是实现高效稳定的以太网包处理。

2 UDP协议栈的思想与理由
根据对VxWorks操作系统的,发现它对以太网包的处理与一般的IP协议栈有所不同。MAC层的控制由硬件寄存器来实现,实现了发送方以太网帧的成帧和接收的以太网帧头确认以后,通过DMA方式实现内存与网络介质间的通信,网络任务与硬件之间通过设备中断进行通信。在该操作系统中,有一个MUX层,它提供统一的发送函数,其参数为发送的网络设备管理表指针和发送的数据报指针。我们知道,在一个有多个网络设备同时工作的计算机系统中,标准的IP协议栈要完成选取从哪个网络设备端口(gate way)发送和判断ARP的Cache中是否有对端的MAC地址,从而决定是否启动ARP进行解析。在VxWorks中。是通过查Route表和ARP表来完成以上两项工作的。Route表中储存的是与每一个通信的子网的gart way,ARP表中储存的是已知的IP地址与MAC地址的对应关系。另外,数据报接收的处理过程中是在IP数据报存入内存后申请MUX层的队列缓冲区,然后依次调用各上层协议的处理函数。

根据以上情况,考虑在MUX层修改UDP协议栈,在发送过程中,跳过socket接口,直接使用MUX层的发送函数。这样,可以减少从UDP层网络数据报缓冲区到MUX层缓冲区之间的复制工作,从而提高发送。在接收数据包的处理过程中,在MUX层收到数据报后钩挂(hook)一个处理函数,对UDP协议的数据包进行分检,优先于其他协议的处理。这样可减少从MUX层缓冲区到UDP层网络数据报缓冲区之间的复制,而且可以不再要求上层使用轮诲的方法检查socket的缓冲区中的内容,提高了处理的实时性。

3 UDP协议栈出现的新问题
VxWorks的muxLib类库中允许用户自己定义一个协议栈,将协议栈绑定到一个具体的网络端口上,同时要有一个处理函数对该网络设备上收到的包进行处理。加载改进后的协议栈要先创建一组缓冲区,每种缓冲区对应不同的数据报长。预先分配一大块内存,可避免发送数据包时再去分配内存,并可根据各种长度的数据报的使用频度申请不同个数的缓冲区。发送过程中,要填写IP首部的其他内容,如协议版本号、UDP协议编号、idenfication域、IP首部校验和等等。在填写的过程中,可以有意识地按照CPU的作业宽度和整数边界进行内存赋值,提高发送效率。在接收过程中,要先判断是否为UDP协议的数据报(根据第24字节为Oxll),然后做合法检验。对本协议栈处理的数据报,处理后要将其从MUX层的缓冲区队列中删除,未删除的数据报由其他协议的处理函数处理。

经过对协议栈的改进发现,在单向收发的环境下,发送效率提高了3倍左右;但是接收方效率的提高很不尽如人意,而且稳定性仍然存在问题,在运行几十小时后,网络任务的挂起现象出现得仍很频繁。关于接收方的问题,原因是:接收方的网络任务每收到一个包,从设备缓冲区搬移到应用缓冲区,然后切换到应用程序任务进行处理,处理结束以后再切换到网络任务收下一包,如果接收速度高于处理速度就会造成阻塞。下面举一个形象的例子:某个酒吧只有一个服务员,假设这个服务员要做两件事情,有顾客来的时候要到门口去给顾客开门,然后再到柜台为顾客服务,顾客依到达次序排队。假设门口和柜台之间的移动时间不能忽略,并且为顾客开门的优先级比较高,就是说如果有新顾客到来,必须先放下正在服务的顾客去开门。在这种情况下,如果顾客的到来间隔是均匀的,为每一位顾客服务要服务员跑两趟。如果顾客到达的间隔比较小,就出现服务员在门口和柜台之间频繁移动的情况。假如能使顾客分拨到达,每次有多个顾客到达,服务员就可以从柜台到门口开门让多个顾客进入,再回柜台为顾客服务。试验证明,在这种模型下接收效率能大幅提高,但是对均匀到达的顾客服务效率的提高难以得到解决。

4 深入网络设备驱动
经过对操作系统更为深入的发现,MUX层的发送数据包最终是通过调用网络设备驱动程序中的发送函数实现的。分析网络设备驱动的代码发现,其发送过程可描述为:

◇检查设备缓冲区(BD表)是否有可用BD;
◇根据设备缓冲区的可用情况与发送数据包的长度,判断是否需要进行分片;
◇根据设备缓冲区的可用情况决定传输发送还是拷贝发送;
◇置位设备控制寄存器,启动DMA传输,并引发设备收发中断;
◇清除使用过的设备缓冲区。

另据分析,在设备驱动的安装过程中完成的工作有:
◇根据配置数据申请内存,构建设备缓冲区表;
◇指定DMA使用的通道与工作方式;
◇配置设备寄存器(工作方式、帧类型、设备缓冲区表指针等);
◇连接设备中断处理例程。

接收过程中,是在网络设备收到数据包后启动DMA传输至内存,并引发中断,在中断处理程序中处理缓冲区指针,然后将一个函数处理指针写入一个环型缓冲区,最后是释放一个信号量,通知网络任务对收到的数据包进行处理。通过对该接收处理函数的反汇编解读,发现它的主要工作是申请MUX层的缓冲区并复制,处理设备缓冲区的指针,然后调用各个协议的处理函数。

根据以上的认识,有了一个更为大胆的设想:跳过MUX层,直接使用driver的发函数进行发送;在接收过程中,对本协议栈的数据包不再申请MUX层的缓冲区,而是直接拷贝到应用层缓冲区,并可将处理接口留给用户。另外一个想法是,直接在中断处理例程中进行处理,从而彻底抛弃网络任务。据此在百兆网络设备上完成了修改,其效率又提高将近l倍,满足了使用的要求;而且更为可喜的是,系统的稳定性大幅提高。

5 结论与数据分析
几种情况下的测试结果如下:

通过对上述数据的分析看出,使用MUX层的协议栈组发环境下,比使用标准协议栈发送的效率提高3倍左右,但是在均匀收发的情况下提高并不明显。直接使用中断方式克服了这一缺陷,比均匀收发的环境下又提高1倍。

但是这个测试结果只是在短包的情况下完成的,包长在100字节以下。通过对长包的测试,发现对512字节以上的长包的影响要稍微小一些。这是因为在同一速率下,使用长包调用的次数要少,改进的效果也就稍差,特别是在CPU主频更高的环境下,这一现象更为明显。

6 对实时操作系统的一点看法
通过对设备驱动的研究发现.在实时操作系统中,中断处理例程的处理时间都比较短,这也是实现实时性的一个重要思想。在改进中,中断处理例程中加入了执行代码,会影响系统的实时性,似乎违背了实时操作系统的初衷。但笔者认为,这个问题要在实际的环境下进行评价,中断中的通知网络任务与网络任务的执行,两者加起来的时间一定要比只在中断中处理需要的时间要长。这与IP包处理机的目标也是没有矛盾的,完全不必拘泥陈规。实时系统只是追求平均的响应时间较短,而在最差情况下则远低于平均水平。



评论


相关推荐

技术专区

关闭
腹部包块是什么样子的 做梦梦到乌龟是什么预兆 盗墓笔记的结局是什么 血氧饱和度低于90有什么危害 大腿后侧肌肉叫什么
胆囊肌腺症是什么病 数字7代表什么意思 帽子的英文是什么 实则是什么意思 坐骨神经痛用什么药
地府是什么意思 早上头晕是什么原因 什么是马甲线 糖尿病吃什么食物 冬天开什么花
克服是什么意思 a血型和o血型生出宝宝是什么血型 什么空如洗 宫外孕是什么 什么龙戏珠
沙和尚的武器叫什么hcv9jop2ns2r.cn ct是检查什么hcv9jop5ns9r.cn 经期喝什么茶好1949doufunao.com 频繁什么意思hcv9jop5ns6r.cn 五月是什么生肖hcv9jop5ns0r.cn
骨碎补有什么功效fenrenren.com 小孩睡觉流口水是什么原因hcv9jop3ns5r.cn 阴性和阳性是什么意思hcv9jop4ns1r.cn 马来西亚人为什么会说中文hcv7jop9ns2r.cn 乌鸡炖什么好吃又有营养bjcbxg.com
大悲咒什么意思hcv8jop2ns4r.cn 什么有力hcv9jop8ns2r.cn 石决明是什么hcv8jop2ns4r.cn 静怡是什么意思hcv8jop5ns7r.cn 跑步配速什么意思hcv8jop4ns5r.cn
orange是什么颜色hcv8jop7ns6r.cn lgg是什么意思hcv8jop4ns8r.cn 劫是什么意思hcv8jop8ns1r.cn 马齿苋是什么菜hcv9jop8ns1r.cn 小腿出汗是什么原因hcv8jop9ns3r.cn
百度