CN116668560A - 一种支持动态创建的半实物仿真通信方法 - Google Patents
一种支持动态创建的半实物仿真通信方法 Download PDFInfo
- Publication number
- CN116668560A CN116668560A CN202310641129.XA CN202310641129A CN116668560A CN 116668560 A CN116668560 A CN 116668560A CN 202310641129 A CN202310641129 A CN 202310641129A CN 116668560 A CN116668560 A CN 116668560A
- Authority
- CN
- China
- Prior art keywords
- simulation
- tcp
- message
- udp
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 87
- 238000004891 communication Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 abstract description 9
- 241001522296 Erithacus rubecula Species 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种支持动态创建的半实物仿真通信方法,属于通信网络仿真技术领域。传统的基于OMNeT++仿真平台的半实物仿真通常使用单一Socket通信方法,不支持根据不同仿真场景灵活分配TCP和UDP的通信套接口的数量、类型。本发明在实现了TCP和UDP接口模块复用的基础上,支持根据规划的仿真场景文件内容,动态分配TCP和UDP的通信套接口的数量、类型,采取轮循检测的方式,有效降低仿真平台从本地网卡接收报文时延,为实现仿真平台与通信设备、外部业务应用软件的互联互通提供重要保障。
Description
技术领域
本发明属于通信网络仿真技术领域,特别涉及网络仿真平台的半实物通信方法,可用于对外连接设备进行半实物仿真,或用于需要将网络仿真平台集成到其他软件与系统的场景。
背景技术
OMNeT++是开源的基于组件的模块化的开放网络仿真平台,它采用面向对象的方法进行建模与仿真,可支持多种有线与无线通信协议进行网络仿真。
随着半实物仿真技术的兴起,基于OMNeT++仿真平台的半实物仿真技术也得到了广泛应用。但是,传统的基于OMNeT++仿真平台的半实物仿真通常使用单一Socket通信方法,不支持根据不同仿真场景动态分配TCP和UDP的通信套接口的功能。
发明内容
针对现有技术中的缺陷,本发明提出一种支持动态创建的半实物仿真通信方法,该方法可以克服现有OMNeT++网络仿真中半实物通信接口数量可拓展性差、无法同时支持TCP、UDP传输协议、多套接口接收报文时延大的问题。
为了实现上述目的,本发明采用的技术方案为:
一种支持动态创建的半实物仿真通信方法,包括以下步骤:
(1)在OMNeT++仿真软件中配置与导调软件通信的UDP接口模块,用于接收导调软件下发的网络拓扑文件和与通信设备、应用业务软件通信的Socket配置文件;
(2)OMNeT++仿真软件接收并读取用于仿真的网络拓扑文件和Socket配置文件内容,在仿真网络中加入节点、链路和对应数量的TCP、UDP接口模块;
(3)根据接收的TCP和UDP接口的IP地址和端口号,按照数量和类型,分别进行本地网卡Socket绑定操作;
(4)启动仿真,所有TCP接口开启监听,接收外部软件客户端TCP连接请求,建立TCP连接;
(5)仿真端接收外部应用业务软件报文,完成业务仿真流程后,将报文发至接收方的应用业务软件;
(6)仿真结束后,关闭所有的套接口,包括TCP接口和UDP接口。
进一步地,步骤(2)具体包括以下步骤:
(201)读取网络节点文件内容,加入节点模块,设置节点属性,节点属性包括节点号;
(202)读取网络链路文件内容,根据不同信道类型,选择相应信道连接各个节点,设置速率、带宽、误码率、时延参数;
(203)读取Socket配置文件内容,根据Socket接口类型和数量,加入相应数量的TCP接口模块或者UDP接口模块,如果某些网络节点具备和外界通信功能,则将该节点号写入到对应的接口模块参数表中。
进一步地,步骤(3)具体包括以下步骤:
(301)读取UDP接口信息内容,包括本地和对端的IP地址和端口号,调用bind()函数,完成所有UDP接口绑定;
(302)读取TCP接口信息内容,包括本机服务器的IP地址和端口号,调用bind()函数,完成所有TCP接口绑定。
进一步地,步骤(4)具体包括以下步骤:
(401)使用select()函数轮询读取各套接口上的待接收报文;
(402)通过内部接口模块解析报文,生成回执报文;
(403)调用send()函数发送TCP确认报文;
(404)完成TCP握手过程,建立TCP连接。
进一步地,步骤(5)具体包括以下步骤:
(501)仿真端将接收到的应用报文进行解析,得到源节点号,发至拓扑中的源节点;
(502)源节点的网络层查询路由表,得到下一跳通信方式,封装应用报文并发送至对应通信设备的接口层;
(503)设备接口层再次对报文进行封装,通过调用对应的UDP接口模块,将报文发送至对应通信设备;
(504)仿真内部目的节点从通信设备收到应用报文后,调用对应的TCP模块,将应用报文发至接收方的应用业务软件。
本发明相比背景技术的优点在于:
1.传统的基于OMNeT++仿真平台的半实物仿真通常使用单一Socket通信方法,不支持根据不同仿真场景灵活分配TCP和UDP的通信套接口的数量、类型。本发明实现了基于OMNeT++仿真平台的多种半实物接口通信功能,支持TCP、UDP套接口同时使用。
2.本发明基于非阻塞式Socket编程方法,有效降低从套接口接收报文时延。
3.本发明可根据不同网络仿真场景,灵活分配与通信设备和外部软件的半实物通信模块,解决了同一类通信模块无法复用问题。
附图说明
图1是本发明的原理框图;
图2是半实物接口模块生成流程图;
图3是支持多半实物接口的实时事件调度流程图;
图4是轮询检测Socket模块流程图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细的说明。
一种支持动态创建的半实物仿真通信方法,包括以下步骤:
(1)在OMNeT++仿真软件中配置与导调软件通信的UDP接口模块,用于接收导调软件下发的网络拓扑文件和与通信设备、应用业务软件通信的Socket配置文件。
(2)OMNeT++仿真软件接收并读取用于仿真的网络拓扑文件和Socket配置文件内容,在仿真网络中加入节点、链路和对应数量的TCP、UDP接口模块。
(3)根据接收的TCP和UDP接口信息(IP地址和端口号),按照数量和类型,分别进行本地网卡Socket绑定操作。
(4)启动仿真,所有TCP接口开启监听,接收外部软件客户端TCP连接请求,建立TCP连接。
(5)仿真端接收外部应用业务软件报文,完成业务仿真流程后,将报文发至接收方的应用业务软件。
(6)结束仿真,关闭所有的套接口,包括TCP接口和UDP接口。
步骤(2)包括以下内容:
(201)读取网络节点文件内容,加入节点模块,设置节点属性,包括节点号等内容。
(202)读取网络链路文件内容,根据不同信道类型,选择相应信道连接各个节点,设置速率、带宽、误码率、时延等参数等内容。
(203)读取Socket配置文件内容,根据Socket接口类型和数量,加入相应数量的TCP接口模块或者UDP接口模块,如果某些网络节点具备和外界通信功能,则将该节点号写入到对应的接口模块参数表中。
步骤(3)包括以下内容:
(301)读取UDP接口信息内容,包括本地和对端的IP地址和端口号,调用bind()函数,完成所有UDP接口绑定。
(302)读取TCP接口信息内容,包括本机服务器的IP地址和端口号,调用bind()函数,完成所有TCP接口绑定。
步骤(4)包括以下内容:
(401)使用select()函数轮循读取各套接口上的待接收报文。
(402)内部接口模块解析报文,生成回执报文。
(403)调用send()函数发送TCP确认报文。
(404)完成TCP握手过程,建立TCP连接。
步骤(5)包括以下内容:
(501)仿真端将接收到的应用报文进行解析,得到源节点号,发至拓扑中的源节点。
(502)源节点的网络层查询路由表,得到下一跳通信方式,封装应用报文并发送至对应通信设备的接口层。
(503)设备接口层再次对报文进行封装,通过调用对应的UDP接口模块,将报文发送至对应通信设备。
(504)仿真内部目的节点从通信设备收到应用报文后,调用对应的TCP模块,将应用报文发至接收方的应用业务软件。
该方法实现了仿真平台同时使用TCP、UDP通信接口的功能,其采用非阻塞式网络编程方法,有效减少了接收报文时延,并可根据不同仿真场景动态分配半实物通信接口。
图1是本方法所对应系统的原理图。在实现流程上,仿真平台启动后,根据导调下发的节点、链路和半实物接口信息,仿真内的拓扑及半实物接口生成模块负责生成网络拓扑并给各网络节点动态配置UDP及TCP套接口。实时事件调度模块负责按时间顺序调度仿真内所有事件,当轮循检测Socket模块接收到外部通信设备或外部应用业务软件的报文后,将产生新事件并插入到未来事件集中。网络协议模型负责对未来事件集的事件进行处理,完成半实物网络协议仿真功能。
下面为一个更具体的例子:
一种支持动态创建的半实物仿真通信方法,包括:
拓扑及半实物接口生成模块:根据输入文件中的节点和链路信息,在仿真平台中加载出网络拓扑,配置节点基本参数,计算路由表,读取半实物接口信息,为相应半实物节点配置TCP和UDP接口模块。
实时事件调度模块:仿真平台启动后,按照仿真事件发生时间,将事件放入未来事件集中,物理时钟推动仿真时间实时变化。
轮循检测Socket模块:通过循环调用select函数,读取待接收的TCP或UDP报文信息。
网络协议模型:提供了网络仿真所需的传输层、网络层等协议,支撑仿真平台实现半实物网络协议仿真功能。
拓扑及半实物接口生成模块用于支持根据不同网络仿真场景,动态生成网络拓扑并为具有半实物通信功能的网络节点分配TCP和UDP接口模块,完成Socket绑定。
拓扑及半实物接口生成模块的主要工作流程如图2所示,包括以下内容:
(201)读取接收到的网络拓扑信息,得到节点信息、节点关系等内容。
(202)加载网络节点和连接关系到拓扑中,搭建网络仿真拓扑,并为节点和连接配置参数。
(203)调用路由算法函数,计算网络路由表。
(204)读取接收的半实物接口信息,包括ip、端口号、对应网络节点号、UDP或TCP通信方式等内容。
(205)实例化UDP或TCP接口模块,配置Socket参数,将接口模块放入对应节点模块中。
(206)根据Socket参数,绑定外部网卡ip和端口号,若是TCP通信模块,则需开启监听。
实时事件调度模块不仅实现了仿真平台的消息分发机制,把各个仿真类对象所发送的消息按照其应该到达的时间,按时有效的传递到各个实例的handleMessage函数中,而且还能同时接收来自网口的TCP或UDP协议格式报文,发至对应接口模块中进行处理。
实时事件调度模块的主要工作流程如图3所示,包括以下内容:
(301)仿真启动后,将仿真内部产生的内部消息按照发生事件插入到未来事件集中,等待按序调度。
(302)调用轮循检测Socket模块检测各套接口上是否有待接收报文。
(303)存储接收报文并发至对应接口模块中进行处理。
(304)按照事件发生时间,依次从未来事件集中取出事件进行处理。
(305)事件处理完毕后,仿真内部物理时钟推动仿真时间变化。
轮循检测Socket模块用于轮循检测各个Socket套接口状态,读取待接收的TCP或UDP报文信息,采取非阻塞方式,有效减少从本地网卡接收报文的时延。
轮循检测Socket模块的主要工作流程如图4所示,包括以下内容:
(401)将所有的TCP和UDPSocket放入fd_set集合中。
(402)调用select函数,查询是否有待接收Socket。
(403)判断Socket类型,如是UDPSocket,则将接收到的报文发至对应UDP模块进行处理;如是TCPSocket,则根据报文长度和内容进行相应处理。
总之,本发明在实现了TCP和UDP接口模块复用的基础上,支持根据规划的仿真场景文件内容,动态分配TCP和UDP的通信套接口的数量、类型,采取轮询检测的方式,有效降低仿真平台从本地网卡接收报文时延,为实现仿真平台与通信设备、外部业务应用软件的互联互通提供重要保障。
Claims (5)
1.一种支持动态创建的半实物仿真通信方法,其特征在于,包括以下步骤:
(1)在OMNeT++仿真软件中配置与导调软件通信的UDP接口模块,用于接收导调软件下发的网络拓扑文件和与通信设备、应用业务软件通信的Socket配置文件;
(2)OMNeT++仿真软件接收并读取用于仿真的网络拓扑文件和Socket配置文件内容,在仿真网络中加入节点、链路和对应数量的TCP、UDP接口模块;
(3)根据接收的TCP和UDP接口的IP地址和端口号,按照数量和类型,分别进行本地网卡Socket绑定操作;
(4)启动仿真,所有TCP接口开启监听,接收外部软件客户端TCP连接请求,建立TCP连接;
(5)仿真端接收外部应用业务软件报文,完成业务仿真流程后,将报文发至接收方的应用业务软件;
(6)仿真结束后,关闭所有的套接口,包括TCP接口和UDP接口。
2.根据权利要求1所述的一种支持动态创建的半实物仿真通信方法,其特征在于,步骤(2)具体包括以下步骤:
(201)读取网络节点文件内容,加入节点模块,设置节点属性,节点属性包括节点号;
(202)读取网络链路文件内容,根据不同信道类型,选择相应信道连接各个节点,设置速率、带宽、误码率、时延参数;
(203)读取Socket配置文件内容,根据Socket接口类型和数量,加入相应数量的TCP接口模块或者UDP接口模块,如果某些网络节点具备和外界通信功能,则将该节点号写入到对应的接口模块参数表中。
3.根据权利要求1所述的一种支持动态创建的半实物仿真通信方法,其特征在于,步骤(3)具体包括以下步骤:
(301)读取UDP接口信息内容,包括本地和对端的IP地址和端口号,调用bind()函数,完成所有UDP接口绑定;
(302)读取TCP接口信息内容,包括本机服务器的IP地址和端口号,调用bind()函数,完成所有TCP接口绑定。
4.根据权利要求1所述的一种支持动态创建的半实物仿真通信方法,其特征在于,步骤(4)具体包括以下步骤:
(401)使用select()函数轮询读取各套接口上的待接收报文;
(402)通过内部接口模块解析报文,生成回执报文;
(403)调用send()函数发送TCP确认报文;
(404)完成TCP握手过程,建立TCP连接。
5.根据权利要求1所述的一种支持动态创建的半实物仿真通信方法,其特征在于,步骤(5)具体包括以下步骤:
(501)仿真端将接收到的应用报文进行解析,得到源节点号,发至拓扑中的源节点;
(502)源节点的网络层查询路由表,得到下一跳通信方式,封装应用报文并发送至对应通信设备的接口层;
(503)设备接口层再次对报文进行封装,通过调用对应的UDP接口模块,将报文发送至对应通信设备;
(504)仿真内部目的节点从通信设备收到应用报文后,调用对应的TCP模块,将应用报文发至接收方的应用业务软件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310641129.XA CN116668560A (zh) | 2023-06-01 | 2023-06-01 | 一种支持动态创建的半实物仿真通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310641129.XA CN116668560A (zh) | 2023-06-01 | 2023-06-01 | 一种支持动态创建的半实物仿真通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116668560A true CN116668560A (zh) | 2023-08-29 |
Family
ID=87716729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310641129.XA Pending CN116668560A (zh) | 2023-06-01 | 2023-06-01 | 一种支持动态创建的半实物仿真通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116668560A (zh) |
-
2023
- 2023-06-01 CN CN202310641129.XA patent/CN116668560A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101552803B (zh) | 网络地址转换地址映射表维护方法、媒体网关及其控制器 | |
JP4486902B2 (ja) | ネットワークシステム及びゲートウェイ装置 | |
US8670460B2 (en) | Method and system for optimized transmission of data between a control device and a plurality of field devices | |
US20130262714A1 (en) | Fieldbus gateway using virtual serial filedbus port and data transmission method thereof | |
CN113411215B (zh) | 基于opc ua的时间敏感网络集中用户配置方法及系统 | |
CN100558109C (zh) | 基于会话初始协议的负载均衡实现方法及系统 | |
CN103166874A (zh) | 一种报文转发方法及设备 | |
CN112769598B (zh) | 一种网络通信系统及其通信实现方法 | |
CN112838940B (zh) | 一种网络控制器框架和数据处理方法 | |
US7957279B2 (en) | Session border control using multiple processors | |
CN101567861B (zh) | 异构应用系统之间的数据同步方法及应用系统 | |
CN102045409A (zh) | 网络穿透方法及网络通讯系统 | |
CN114189438A (zh) | 一种基于opc ua的工业设备自动发现与配置方法 | |
CN112039746B (zh) | 一种工业控制网络系统 | |
CN104539576B (zh) | 基于IPv6网络的通信方法与系统 | |
CN116668560A (zh) | 一种支持动态创建的半实物仿真通信方法 | |
CN101465858B (zh) | 监控业务中实现私网穿越的方法、网络设备和服务器 | |
CN117440446B (zh) | 一种基于数据分发服务的数据传输方法和装置 | |
US20030063612A1 (en) | Repeating device, telephone set, and recording medium | |
US20240179065A1 (en) | Network Device, Time-Sensitive Network System and Auto-configuration Method Thereof | |
CN111836138B (zh) | 基于olt调度的pon终端升级方法、系统及olt设备 | |
CN101258724A (zh) | 通信接口 | |
CN110209136B (zh) | 一种控制系统中硬件资源统一调度方法 | |
WO2023151478A1 (zh) | 网络接入设备、系统以及通信方法 | |
JP2005020080A (ja) | 加入者端末間通信システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |