【技术实现步骤摘要】
本专利技术属于多机通信领域,尤其是涉及一种用于面向高速磁浮交通仿真的通信方法。
技术介绍
为了实现高速磁浮交通仿真中不同仿真计算机或仿真服务器之间的数据传输和通信管理,以完成对磁浮交通仿真实时的、大数据量的故障注入和信息推送的测试与验证,需要使用一种高效并且可靠的传输方式作为不同主机之间的通信机制。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种提高数据传输可靠性的用于面向高速磁浮交通仿真的通信方法。本专利技术的目的可以通过以下技术方案来实现:一种用于面向高速磁浮交通仿真的通信方法,用于高速磁浮交通仿真中不同仿真计算机或仿真服务器之间的数据传输和通信管理,该方法在使用可靠UDP协议的基础上,增加封装报文机制和确认报文机制,并且使用套接字处理并发的多个通信请求,包括以下步骤:(1)将原始通信报文封装为封装报文;(2)发送方与接收方之间通过套接字建立连接;(3)判断套接字是否可读,如果是,则执行步骤(4),否则,返回步骤(2);(4)发送方将封装报文发送给接收方;(5)接收方将封装报文解封装为原始通信报文,并判断封装报文和原始通信报文是否正确,如果是,则执行步骤(6),否则,接收方给发送方发送重发请求并执行步骤(1);(6)接收方给发送方发送确认报文,发送方接收确认报文,通信完成。所述的步骤(1)具体为:将重传和地址验证信息作为报文首部,添加至原始 >通信报文成为封装报文。将原始通信报文进行封装,不仅可以使接收方能够快速识别通信报文的类型,而且可以检查通信报文的目的地址与重发次数等信息,提高高速磁浮仿真中传输报文的准确性。所述的步骤(3)具体为:根据用户需求确定可指向的套接字组和select函数的最长等待时间,以识别不同的通信进程和连接,将套接字添加到readfds集合中,并设置WinsockI/O模型中的Select函数的readfds、writefds、timeout等参数,然后调用select函数并且等待其返回,如果select函数返回并且调用成功,则判断该套接字是否仍为readfds集合中的一员,如果是,则表明该套接字“可读”,否则返回错误信息SOCKET_ERROR,并返回步骤(2)。由于高速磁浮交通仿真中的通信需求多样性,既可以支持阻塞的通信调用方式,也可以接受非阻塞的通信调用方式。本专利技术使用使用WinsockI/O模型中的Select模型实现多通信请求的并发服务。由于高速磁浮交通仿真中的每一台主机中都存在多个通信节点和通信接口,套接字的信息和数量在不断变化。因此建立发送用套接字的Map容器SendSocketMap,存储所有发送用套接字;建立接收用套接字的Map容器RecvSocketMap,存储所有接收用套接字。通过维护套接字的Map容器,修改套接字信息和查看当前通信请求是否可用等,可以维护所有使用到的套接字。所述的步骤(5)具体为:接收方将封装报文解封装为原始通信报文,比较封装报文首部的通信节点序号与接收方的通信节点序号是否一致,如果是,则读取封装报文首部的重传次数和重传间隔,如果重传次数为零,则执行步骤(6),否则,接收方给发送方发送重发请求并执行步骤(1)。所述的步骤(6)具体为:接收方读取封装报文首部的源地址IP和源地址端口,并给发送方发送确认报文,发送方接收到确认报文后,读取确认报文中的序列号,并判断该序列号是否正确,如果是,则通信成功,否则,通信失败。增加确认报文机制,确保通信报文不被丢失,能够顺序到达。本专利技术采用可靠UDP(RUDP)传输协议作为高速磁浮交通仿真的通信协议。RUDP协议在原TCP/IP协议的传输层(UDP协议)和应用层之间加入了一层为保证可靠数据传送而实现的RUDP软件模块。这样不仅可以利用UDP协议的传输速度优势,而且可以提高传输的可靠性,避免在UDP协议下的大量丢包情况,确保在高速磁浮交通仿真中大量通信报文传输的实时性与可靠性。与现有技术相比,本专利技术具有以下优点:(1)本专利技术在使用可靠UDP协议的基础上,增加封装报文机制和确认报文机制,并且使用套接字Socket处理并发的多个通信请求,提高通信报文的传输准确性和可靠性,完成磁浮交通仿真的多机间通信;(2)对通信报文的封装,不仅可以使接收方能够快速识别通信报文的类型,而且可以检查报文的目的地址与重发次数等信息,提高高速磁浮仿真中传输报文的准确性;(3)增加确认报文机制,确保通信报文不被丢失,能够顺序到达;(4)可靠UDP(RUDP)传输协议不仅具有UDP协议的传输速度优势,而且借鉴了TCP协议的三次握手原理以解决通信报文出现丢失或乱序到达的问题;(5)在RUDP的基础上使用套接字Socket机制,确保能够响应磁浮交通仿真中多个并发的通信请求;(6)本专利技术不仅可以满足高效的、海量的通信报文的传输,还可以提高数据传输的可靠性,确保磁浮交通仿真的传输性能。附图说明图1为本专利技术的流程图。具体实施方式下面结合附图和具体实施例对本专利技术进行详细说明。本专利技术采用可靠UDP(RUDP)传输协议作为高速磁浮交通仿真的通信协议。RUDP协议在原TCP/IP协议的传输层(UDP协议)和应用层之间加入了一层为保证可靠数据传送而实现的RUDP软件模块。如果出现数据包丢失,接收方发送重发请求给发送方;如果数据包完整到达,接收方则响应发送方的完成帧。这样不仅可以利用UDP协议的传输速度优势,而且可以提高传输的可靠性,避免在UDP协议下的大量丢包情况,确保在高速磁浮交通仿真中大量通信报文传输的实时性与可靠性。如图1所示,一种用于面向高速磁浮交通仿真的通信方法,用于高速磁浮交通仿真中不同仿真计算机或仿真服务器之间的数据传输和通信管理,该方法在使用可靠UDP协议的基础上,增加封装报文机制和确认报文机制,并且使用套接字处理并发的多个通信请求,包括以下步骤:(1)将重传和地址验证信息作为报文首部,添加至原始通信报文成为封装报文。将原始通信报文进行封装,不仅可以使接收方能够快速识别通信报文的类型,而且可以检查通信报文的目的地址与重发次数等信息,提高高速磁浮仿真中传输报文的准确性。封装报文设计如表1。表1封装报文结构(2)发送方与接收方之间通过套接字建立连接;(3)根据用户需求确定可指向的套接字组和select函数的最长等待时间,以识别不同的通信进程和连接,将套接字添加到readfds集合中,并设置W本文档来自技高网...
【技术保护点】
一种用于面向高速磁浮交通仿真的通信方法,用于高速磁浮交通仿真中不同仿真计算机或仿真服务器之间的数据传输和通信管理,其特征在于,该方法在使用可靠UDP协议的基础上,增加封装报文机制和确认报文机制,并且使用套接字处理并发的多个通信请求,包括以下步骤:(1)将原始通信报文封装为封装报文;(2)发送方与接收方之间通过套接字建立连接;(3)判断套接字是否可读,如果是,则执行步骤(4),否则,返回步骤(2);(4)发送方将封装报文发送给接收方;(5)接收方将封装报文解封装为原始通信报文,并判断封装报文和原始通信报文是否正确,如果是,则执行步骤(6),否则,接收方给发送方发送重发请求并执行步骤(1);(6)接收方给发送方发送确认报文,发送方接收确认报文,通信完成。
【技术特征摘要】 【专利技术属性】
1.一种用于面向高速磁浮交通仿真的通信方法,用于高速磁浮交通仿真中不
同仿真计算机或仿真服务器之间的数据传输和通信管理,其特征在于,该方法在使
用可靠UDP协议的基础上,增加封装报文机制和确认报文机制,并且使用套接字
处理并发的多个通信请求,包括以下步骤:
(1)将原始通信报文封装为封装报文;
(2)发送方与接收方之间通过套接字建立连接;
(3)判断套接字是否可读,如果是,则执行步骤(4),否则,返回步骤(2);
(4)发送方将封装报文发送给接收方;
(5)接收方将封装报文解封装为原始通信报文,并判断封装报文和原始通信
报文是否正确,如果是,则执行步骤(6),否则,接收方给发送方发送重发请求并
执行步骤(1);
(6)接收方给发送方发送确认报文,发送方接收确认报文,通信完成。
2.根据权利要求1所述的一种用于面向高速磁浮交通仿真的通信方法,其特
征在于,所述的步骤(1)具体为:将重传和地址验证信息作为报文首部,添加至
原始通信报文成为封装报文。
3.根据权利要求1所述的一种用于面向高速磁浮交通仿真的通信方法,其特
征在于,所述的步骤(3)具体为:确定可指向的套接字组和select函数的最长等
技术研发人员:袁时金,张旭彤,穆斌,林晔,马骕,
申请(专利权)人:同济大学,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。