VxWorks中以太网通讯报文的粘连问题.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《VxWorks中以太网通讯报文的粘连问题.docx》由会员分享,可在线阅读,更多相关《VxWorks中以太网通讯报文的粘连问题.docx(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、VxWorks中以太网通讯报文的粘连问题mahaiyan导语:分析了TCP/IP协议的粘包问题,并结合实验结果提出理解决该问题的对策和方法。VxWorks是一种功能强大而且比拟复杂的操纵系统,包括进程治理、存储治理、设备治理、文件系统治理、网络协议及系统应用等局部。目前VxWorks应用已经特别广泛,从数码相机、路由器到B-2隐形轰炸机、火星探路者,都有它的身影。在863某交通重大专项方案控制系统国产化研究工程中,分区控制汁算机DCC和电机控制单元MCU也都采用了VxWorks操纵系统。在现场测试经过中,我们发现基于TCP/IP网络协议传输的数据有时会出现粘包现象即发送方发送的假设干包数据传输
2、到接收方时粘成一包。针对这种情况,我们进展了专题研究与实验。本文重点分析了TCP/IP协议的粘包问题,并结合实验结果提出理解决该问题的对策和方法。1报文粘连问题的现象及分析11报文粘连问题的现象TCP/IP报文粘连是指发送方发送的假设干包数据,在接收方接收到时牯成一包,即后一包数据的头紧接着前一包数据的尾。由于报文长度与接收缓冲区长度有可能不成整倍数关系,所以粘连在一起的报文中有不完好的包。VxWorks操纵系统会先将由网络传输来的数据放入系统接收缓冲区中,以备用户进程从中凋用数据。此处假设接收方缓冲区长为L字节,L应有一定的长度,以保证至少可以存储一包数据。由于DCC和MCU之间需要传输不同
3、种类的报文来进展数据交互,所以用户在程序中应为不同的报文分别设置不同的接收缓冲区来存放不同的报文数据。此处假设只有应答报文和状态报文两种,分别以用户缓冲区1和2米存储;长度应与用户层对应报文的长度相等,假设分别为m和n。粘包情况如图1所示。12报文粘连问题的分析报文粘连既可能由发送方产生,也可能由接收方产生,还可能由进展数据传输的交换机产生。1由发送方引起的报文粘连由发送方引起的报文粘连是源于TCP协议本身。由于TCP协议为进步传输效率采用了Nagle算法详见RFC896,发送方要等采集到1460字节的数据才会发送一包数据,或者是等到发送缓冲区满后才会发送一包数据,这就造成了报文的粘连。2由接
4、收方引起的报文粘连由接收方引起的报文粘连,往往是由于接收方进程没有及时处理数据造成的。接收方要先把收到的数据放入接收数据缓冲区,用户进程再从浚缓冲区中读取数据。假如在下一包数据到达时前一包数据还未被用户进程取走,那么新一包数据就接到前一包数据之后,而用户要根据事先设定好的缓冲区大小从系统接收缓冲区中读取数据,这就造成了一次取到了多包数据。3由交换机引起的报文粘连由交换机引起的报文粘连,往往是由于由交换机相连的各个部件在一段时间内发送的报文数据过多,以致于超出了交换机的处理才能。这样,本来发送端分开发送的数据报文在交换机内部的缓冲区中粘连在一起。如今,在实验现场DCC等使用VxWorks操纵系统
5、的部件需要使用一个独立的端口进展程序下载,还要有一个独立的端口提供应SecureCRT软件以进展实时监控;同时DCC与MCU和中央控制系统的数据传输也要在同一台交换机中进展。这就有可能导致在某一段时间内数据量超过了交换机的处理才能。1.3报文粘连对系统的影响假如系统发生了报文粘连现象而不进展相应处理,那么将导致整个系统无法正常运行。假如用于传输数据的报文被粘连导致无法正常处理,那么将使接收方无法进展运算,现场实时的数据无法获得,进而使标志位无法置位,程序无法继续进展。假如作为生命信号的报文被粘连导致无法正常处理,那么将使接收方以为发送方出现故障;假设此情况连续发生,那么接收方将以为发送方死机,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VxWorks 以太网 通讯 报文 粘连 问题
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内