基于UDP协议的实时可靠的网络通信技术在磁浮仿真中的应用.docx
-
资源ID:9799691
资源大小:19.90KB
全文页数:7页
- 资源格式: DOCX
下载积分:10金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于UDP协议的实时可靠的网络通信技术在磁浮仿真中的应用.docx
基于UDP协议的实时可靠的网络通信技术在磁浮仿真中的应用 摘 要 本文论述了一种实时牢靠的网络通信解决方案,它能够满意磁浮仿真系统的体系架构中上层工作站、中间层服务器、底层管理计算机之间困难多变的网络通信要求,降低仿真系统中应用层和通信层的耦合性。通信方案设计了统一的报文格式,采纳UDP协议二次封装的方法兼顾网络通信的牢靠性与实时性;选取共享内存技术实现仿真系统应用层和通信层之间的进层间通信,保证通信进程的独立性。此外,在通信层的构建中,辅以配置文件记录通信目的IP地址、本机绑定端口和通信对端接受端口号等信息,做到通信层的敏捷可配置。 关键词 网络通信;UDP二次封装;共享内存;进程间通信 中图分类号TN92 文献标识码A 文章编号 1674-673855-0181-02 1探讨背景 磁浮仿真系统大致可以为分3个层次,底层是仿真子系统的仿真管理计算机,中间层是仿真支撑服务器,上层是工作站仿真计算机。全部外围环境仿真设备通过以太网与底层子系统的仿真管理计算机相连,仿真管理计算机对其仿真子系统进行统一管理,它将子系统外围仿真设备的工况信息实时向上推送。仿真支撑服务器与全部底层子系统管理计算机和上层工作站均有通信需求,是报文收发的中转站,它将、工作站及其执行结果的信息记入数据库备查,或用于数据分析。上层工作站用于集成管理底层的子系统,它注入故障下达测试吩咐究竟层子系统管理计算机并等待应答。此外,底层子系统管理计算机之间也相互传递信息。这些计算机中仿真系统在处理接收和发送数据上的工作大多是相同的,假如能够简化它们在数据通信上的工作,将对系统的设计和效率有很大的提高作用。网络通信方案的设计,即可将系统中各模块处理网络通信的部分抽取出来,封装成一个相对独立的模块。 2影响因素分析 磁浮仿真系统中底层管理计算机上运行的仿真软件是不同编程语言实现的,各自重新构建通信接口有困难,底层、中层、上层不同计算机之间的通信要求也各异。通过对磁浮仿真系统中多个模块的通信要求分析,可以得到模块间的数据通信具有以下特点: 1)多点对多点传输数据。假如采纳面对连接的方式进行通信,则须要每个模块都各自维护到其它模块的多个连接,处理起来很不便利,并且不利于扩充模块。因此适合无连接的通信; 2)模块间的数据通信具有突发性,通信数据量不规则、不连续。比较适合采纳报文转发方式传输; 3)通信目的计算机的IP地址可能变更,须要可配置; 4)模块的数量可能扩充,也就是说,在同一台计算机上运行的不同模块的通信节点可能有多个,须要可配置; 5)模块间传输数据必需保证通信的牢靠性和数据的正确性; 6)某些通信要求实时性,通信异样导致陈旧数据必需清除。 3方案设计 依据第2节的影响因素分析,了解到通信方案须要解决四个问题,即通信接口问题、实时性牢靠性均衡问题、IP端口可配置问题。首先,解决通信接口问题,须要将系统的数据通信工作独立出来,与原本系统的其他应用隔离开。因此,引入这样两个概念通信层进程和应用层进程。通信层进程负责为应用层供应通信服务和其他协助服务,如通信日志记录、通信状态监控等;应用层进程即原本系统各模块运行的应用进程,两者间数据通信靠本机进程间通信维系。基于确保实时性和大数据量的通信要求,本机进程间通信选取的方法是共享内存,然后分别为通信层和应用层供应读写共享内存的接口,即运用DLL的方式分别加载到通信层程序和应用层程序中。其次,解决实时性牢靠性均衡问题,从多点通信和实时性的考虑动身,确定了选取无连接且传输更高效的UDP协议。然而,UDP协议不能保证牢靠性,于是想到了对UDP协议进行二次封装,形成一种兼顾通信的牢靠性与实时性的新协议RUDP协议。最终,采纳通信层进程读取.ini配置文件的配置信息的方法来解决IP端口可配置问题。 3.1 本机进程间通信 本机应用层与通信层之间的进程间通信须要借助共享内存技术、动态链接库技术来实现。 共享内存技术是通过内存映射文件的方式来实现的。内存映射文件是文件内容到进程虚拟地址空间的复制。文件的内容的拷贝称为文件映像,而操作系统用来维持该拷贝的内部结构称为文件映射对象。另一个进程通过运用第一个进程的文件映射对象建立映像,可以在它自己的虚拟地址空间建立完全一样的文件映像,这样就达到了进程间共享数据的目的。 设计方案将共享内存分为两种。一种发送报文时运用,应用层进程向此共享内存内写入报文,通信层进程安排线程采纳轮循或接收消息通知的方式读取共享内存中的待发送报文,并通过套接字将其发送到目的计算机的通信层进程。这种共享内存可称之为发送结点共享内存。另一种与此相反,接收报文时运用,通信层进程接收到报文后,依据报文首部推断与之对应的目的应用层,并将报文写入对应的共享内存,应用层进程再读出并解封装报文。依据报文发送目的地址与源地址,可为每个源地址与目的地址安排对应的共享内存。每一块共享内存,有一个或几个写入线程,一个读出线程与其相对应。 动态链接库技术用来供应读、写、清空共享内存的接口。在DLL完成相应共享内存的初始化工作后,发送接收双方进程通过调用该DLL中相应的写入读取共享内存的函数访问共享内存,从而实现双方的通信。双方进程启动后,用内存映射文件的方式把一块命名共享内存映射到DLL附加的各个进程地址空间。 共享内存的实现方式设计如图1所示。 3.2 UDP协议二次封装 RUDP就是在原TCP/IP协议的传输层的UDP协议和应用层之间加入了一层为保证牢靠数据传送而实现的RUDP软件模块而形成的一个五层体系结构,即在原有TCP/IP模型的应用层和传输层之间加入一个定制的通信层,这样就可以利用UDP协议实现一种基于消息的面对连接的牢靠数据传递机制。 为了保证数据传输的牢靠性,可以借鉴TCP的三次握手原理,对UDP进行二次封装,形成了RUDP传输机制。报文发送方对传输的牢靠性和实时性要求通过应用层与通信层的接口DLL,以出口函数的参数形式传递,然后再将这些信息封装到原报文首部。通信层中解封装报文首部,并依据这些信息敏捷地选择通信方式用以提高传输效率和保证牢靠。 3.3配置文件 .ini配置文件用来敏捷配置系统中某台计算机须要通信的节点个数、通信目的地址、对端接收端口和本机绑定端口。.ini的读写通过调用api函数GetPrivateProfileInt();GetPrivateProfileString()和WritePrivateProfileString()来实现。 4测试验证 依据通信方案的设计,我们已经编码实现了一套通信中间件,包含单独的通信层程序、配套动态链接库通信接口及.ini配置文件,并在101Mbps传输速率的局域网中进行了一对一、多对一、多对多的测试验证,得到测试结果如下表: 5结论 文中论述的通信方案确保了整个仿真系统可以高频度大数据量地进行通信,实现了上层工作站、中层服务器与下层管理计算机之间的数据交互要求。在保证数据传输牢靠性的的前提下,尽可能的满意了数据传输的实时性。通信层完全独立于须要通信的应用层,通信接口良好,可以做到敏捷配置,极大地便利了应用层的调用,为今后整个仿真系统的扩展,通信需求的增加供应了良好保证。完善后的通信方案不仅适用于本仿真系统,还可以应用于类似需求的局域网多点通信中。 参考文献 1施炜,李峥,秦颖编著.Windows Sockets 规范及应用-Windows网络编程接口. 2周伟明.多核计算与程序设计.华中科技高校出版社,2022. 3汪翔,袁辉编著.Visual C+实践与提高.网络编程篇.中国铁道出版社,2001. 4郎锐,孙方编著.Visual C+网络通信程序开发基础及实例解析.2版.北京:机械工业出版社,2022. 5电脑编程技巧与维护杂志社编著.Visual C+编程技巧典型案例解析网络与通信及计算机平安与维护篇.北京:中国电力出版社,2022. 6刘化君编著.网络编程与计算技术.北京:机械工业出版社,2022. 7梁庚,白焰.Windows下进程间通信方式探讨.微型电脑应用,2022,22(12). 8马魁涛,蔡颖,郭宝峰.Win32进程间信息共享的实现方法探讨. 9计算机应用与软件,2022,12,24(12). 第7页 共7页第 7 页 共 7 页第 7 页 共 7 页第 7 页 共 7 页第 7 页 共 7 页第 7 页 共 7 页第 7 页 共 7 页第 7 页 共 7 页第 7 页 共 7 页第 7 页 共 7 页第 7 页 共 7 页