从排队、碰撞到信号波形:基于Sysevents的网络—信号一体化仿真

在网络系统中,报文产生、排队等待、资源竞争、发送接收和状态切换等过程,通常由一个个离散事件推动。随着模型逐步深入,工程师不仅需要分析吞吐量、时延、碰撞和重传等网络指标,还需要进一步观察编码、信号传播、波形叠加与接收判决如何影响协议行为。

**Sysevents 是在 MWORKS.Sysblock 基础上全新推出的面向离散事件系统建模与仿真环境。**它进一步拓展了同元软控自主研发工业软件平台在离散事件建模与仿真方面的能力,可面向事件驱动系统,通过实体生成、队列、服务、门控、切换、复制和离散事件状态机等建模要素,组织实体流动、资源占用、条件控制和状态跳转,构建可执行、可观察的离散事件模型。

依托 MWORKS 平台,Sysevents 还可以与 Syslab 协同仿真。在本文的网络仿真场景中,Sysevents 负责组织业务流、网络节点、事件调度和协议进程,Syslab 基于 Julia 语言完成编码、滤波、波形生成、接收判决和 CRC 校验,使信号计算结果能够进入协议事件链。

本文将通过三个递进案例展示这一过程:首先以 M/M/1 排队系统介绍基础的实体、队列与服务建模;随后通过 CSMA/CD 模型展示多节点竞争、碰撞、退避和重传;最后在原有网络拓扑和协议逻辑基础上接入信号级物理层,呈现从网络事件到信号计算,再到协议反馈的完整仿真过程。

一、基础案例------M/M/1 排队系统:接近饱和时,平均等待为何达到14秒?

首先从一个基础的 M/M/1 排队系统开始。该模型由数据包源、FIFO 队列、处理服务和数据销毁器组成,用于呈现数据包从生成、排队到接受服务的完整事件流程。

本案例将服务能力设置为略高于业务到达需求,使系统满足稳定运行条件,同时保持较高负载,以观察随机到达和随机服务条件下的排队过程,并将仿真统计结果与 M/M/1 理论值进行对照。

在Sysevents模型中,EntityGenerator 用于生成数据包,数据包到达间隔服从均值为1 s的指数分布,对应平均到达率 λ=1 packet/s ;EntityQueue 采用FIFO 规则,容量设置为极大值,以近似无限缓冲;EntityServer 用于处理数据包,服务时间服从均值为0.9375 s的指数分布,对应平均服务率 μ≈1.0667 packet/s。

基于 Sysevents 的 M/M/1 系统模型

在该参数设置下,系统的服务器利用率为:ρ=λ/μ=0.9375。

由于 ρ<1,系统满足 M/M/1 稳态条件;但93.75%的服务器利用率也意味着系统已经接近饱和,服务端只有约6.25%的平均剩余处理能力。随机到达和随机服务造成的短期波动,需要通过这部分有限的服务余量逐步消化,因此系统仍会形成较长的排队等待。

本案例重点观察的理论指标如下:

仿真运行过程中,数据包平均排队等待时间逐步在理论稳态值14.0625 s附近波动。本次运行结果与 M/M/1 理论预期基本吻合,说明模型能够按照设定的随机到达、FIFO 排队和随机服务规则执行,并对排队过程进行统计。

通过这一案例,Sysevents 完成了数据包实体生成、FIFO 排队、随机服务、事件调度和性能统计,构成了网络业务流与协议过程建模的基础。

M/M/1 模型描述的是一个数据入口对应一个处理服务的基础事件流。当多个节点需要同时使用同一通信资源时,模型还需要进一步表达信道判断、资源竞争、碰撞、退避和重传等过程。下面通过 CSMA/CD 模型,将单一排队过程扩展到多节点共享信道竞争。

二、进阶案例------基础 CSMA/CD :三台主机抢一条共享信道

当单一服务过程扩展为三台主机争用一条共享信道后,模型需要处理的就不再只是排队。

想象这样一个场景:三台主机"开会",没有主持人,大家约定"发言"前先听"会议室"有没有人"说话",但如果两台主机在传播时延窗口内几乎同时发送,仍会发生"撞话"导致互相"听不清楚",这时候该怎么办?下面这个示例模型基于Sysevents,把这套 CSMA/CD 机制拆成了可观察的事件链。

CSMA/CD 机理示意图

模型中,三台主机通过共享以太网集线器(Ethernet Hub)进行通信。每台主机软件组件生成46-1500 Bit的 payload 及目的 MAC 地址;以太网接口(Ethernet Interface)依次完成 MAC 帧组装、FIFO 发送缓冲和信道访问控制。

三台计算机通过共享以太网集线器进行通信

从信道侦听到退避重传

在 Sysevents 中,CSMA/CD 协议被组织为一条由事件推动的执行链:

  • 软件组件生成业务数据,以太网接口完成 MAC 帧组装,并将帧送入 FIFO 发送队列;
  • 节点准备发送时,首先检查共享信道状态;
  • 信道空闲时,门控组件允许数据帧进入发送过程;信道忙碌时,数据帧继续等待;
  • 数据帧进入共享信道后,由复制组件向其他节点分发相应的传输事件;
  • 如果多个节点在传播时延窗口内近乎同时开始发送,模型触发碰撞事件;
  • 发生碰撞后,离散事件状态机更新碰撞次数,并按照截断二进制指数退避算法生成随机等待时间;
  • 退避结束后,数据帧重新进入信道侦听和发送流程;当碰撞次数达到16次时,状态机放弃该帧。

新生成的数据帧和等待重传的数据帧在发送入口合流。门控、切换、服务、复制等组件负责组织帧的等待、发送和事件分发,离散事件状态机负责载波侦听、碰撞、退避、重传及放弃等协议状态。

以太网接口(Ethernet Interface)

由此,一个数据帧在模型中的运行过程可以表示为:帧生成 → 进入发送队列 → 检查信道 → 开始发送 → 发生碰撞 → 随机退避 → 再次侦听 → 重新发送。

业务负载变化如何影响信道占用?

为观察业务负载变化对共享信道的影响,保持网络拓扑、其他节点业务参数和仿真时长不变,仅调整 Computer 1 的数据生成周期。

在默认设置下,Computer 1 的数据生成周期为32.6 ms,其平均信道利用率在仿真后期稳定在0.12附近;将数据生成周期缩短至10 ms后,Computer 1产生数据帧的频率提高,平均信道利用率相应上升至约0.20。

平均信道利用率:默认设置约0.12(红);Computer 1发包周期改为0.01 s后约0.20(蓝)

该结果说明,模型能够将业务数据生成频率的变化传递到信道访问和占用过程。但平均信道利用率只能反映业务负载变化带来的信道占用结果,还不足以单独说明碰撞、退避和重传机制的实际运行情况。

CSMA/CD离散事件状态机

为进一步观察协议执行过程,在 CSMA/CD 状态机中增加累计碰撞次数、累计重传次数和数据帧收发状态三个观测量。碰撞次数和重传次数用于反映竞争及重试过程,收发状态则由同一个状态输出统一记录。

Computer 1累计碰撞次数随时间变化

上图给出了累计碰撞次数的变化。计数在0.0002 s 时由0增至4,在0.0004 s时进一步增至5,此后直至仿真结束保持不变。因此,本次0.1 s仿真共检测到5次碰撞,且碰撞主要集中在起始阶段。

Computer 1累计重传次数随时间变化

上图中的累计重传次数同样在0.0002 s 时增至4,在0.0004 s时增至5,最终累计5次。在状态机中,碰撞计数在进入 Collision 状态时更新,而重传计数只有在满足重试次数小于16、并实际将帧送入重传通道时才更新。两项计数在本次仿真中相等,说明每次检测到的碰撞都触发了重传,没有数据帧因达到重试上限而被放弃。

Computer 1数据帧收发状态变化

上图表示数据帧的发送和接收过程。发送侧状态码为:1---发送中,2---发送成功,3---碰撞或等待重传,4---达到重试上限后放弃;接收侧状态码为:5---接收中,6---接收成功,7---接收失败。本次仿真实际出现了状态码1、2、3、5、6和 7,按状态码的进入沿统计,Computer 1共4次进入发送成功状态、11次进入接收成功状态、10次进入接收失败状态。状态码4未出现,与碰撞和重传计数结果一致,说明没有帧达到重试上限。需要说明的是,发送成功、碰撞、放弃、接收成功和接收失败均为瞬态协议结果;为避免它们在同一事件时刻被后续状态覆盖,相应状态码会保持到下一次发送或接收动作开始。

本案例展示的 Sysevents 能力:在多节点共享资源场景中组织门控、切换、服务和报文复制,并用离散事件状态机表达载波侦听、碰撞检测、指数退避、重传及放弃等协议逻辑。

通过上述模型,可以观察到业务负载变化、碰撞发生以及重传过程对网络性能的影响。但在实际通信系统中,协议层看到的"碰撞"只是结果,其背后还包含信号传播、波形叠加和接收判决等物理过程。

因此,在保持网络拓扑、业务流和 CSMA/CD 协议逻辑不变的基础上,进一步引入信号级物理层模型,可以帮助工程师追踪协议行为背后的信号原因,实现从"观察结果"到"分析原因"的跨层仿真。

三、高级案例------基于详细物理层的 CSMA/CD 建模仿真

在前一案例基础上,继续保留三台计算机、共享信道和上层 CSMA/CD 状态机,只将原先以时延与误码参数表示的抽象物理层替换为详细物理层。这样,协议中的一次"碰撞"便可以进一步追踪到具体的波形叠加、接收判决和 CRC 校验过程。

基于信号级物理层的 CSMA/CD 案例

模型基于离散事件状态机和 Julia 函数组合。其中,离散事件状态机负责接收发送请求、分配物理帧标识、安排各节点的接收完成事件并路由接收结果;Julia 函数负责帧组装、编码、滤波、波形叠加、接收判决和 CRC 计算。该结构将事件调度与信号计算分离,从而避免将协议控制与链路算法混在同一模块中。

CSMA/CD 案例信号级物理层实现

从帧传输到信号判决:协议事件与信号过程关联

发送端在帧进入共享信道时依次组装前导码、帧起始定界符、地址、长度、载荷和 CRC,将字节序列转换为比特流,再经过曼彻斯特编码、过采样和低通 FIR 滤波生成物理波形。模型根据处理时间和各节点电缆长度计算传播时延,为不同接收节点安排独立到达事件;当多帧的接收时窗重叠时,波形在共享信道中线性叠加,并记录重叠帧数;接收端结合波形判决、帧格式校验、CRC 校验及重叠状态给出接收错误结果。由此,协议层的碰撞事件可以与相应的叠加波形建立可追踪关联。

接收端由帧到达事件触发,在目标时窗内提取叠加波形并再次滤波,通过前、后半比特的平均电平完成判决,随后恢复字节并校验前导码、长度和 CRC。接收结果重新封装为网络报文,同时保留接收节点、有效波形长度、重叠帧数和CRC错误等信息,供上层 CSMA/CD 状态机继续执行重传、退避和业务统计。

为验证调制解调链路,模型将调制前比特、解调后比特输出到 Syslab 工作区。

除比特级对比外,模型记录发射帧经曼彻斯特编码、过采样和发送滤波后的参考波形,以及记录其在共享介质叠加并经接收滤波后的波形;其中,比特级对比用于观察判决结果,波形级对比用于解释接收过程。

该扩展没有改变原有网络拓扑、业务流和 CSMA/CD 机制,而是对共享介质关键链路进行了信号级细化。仿真既可以观察时延、碰撞和重传等网络指标,也可以回溯对应帧的发送参考波形、叠加接收波形和判决结果,从而把协议事件和信号过程纳入同一时间轴进行关联分析。

从发送重叠到网络指标:一条完整的跨层结果链

仅展示模型结构和单次波形,还不足以说明信号计算已经进入协议过程。为此,本文从1秒仿真运行中选取一个"接收时窗重叠且产生接收错误"的事件,沿统一的MacFrameId、PhyFrameId 和事件时刻依次观察波形、判决、协议状态和网络指标。

**首先看物理层证据。**两个发送时窗在共享介质上重叠后,接收波形不再等同于目标帧的发送参考波形;在前256个判决比特中可观察到56个差异,接收检查最终给出CRC=1。由此,原本由抽象误码参数表示的接收失败过程,被展开为"发送时窗重叠---波形叠加---比特判决差异---CRC失败"的可观察过程。

模型的 MAC 层共有8个状态码:0表示初始化/待机,1表示发送中,2表示发送成功,3表示碰撞,5表示接收中,6表示接收成功,7表示接收失败,9表示达到重传上限后丢弃。数值4和8没有使用;状态机内部的 TxReset 和 RxReset 也没有单独分配观测码。

**随后看协议反馈。**图中的第一栏展示节点3的 MAC 层采样状态,同一共享介质重叠事件在发送节点3的 CSMA/CD 状态机中表现为 Collision,随后 RetryIndex由0跳变为1,并对同一 MacFrameId 发起后续物理发送。

**最后回到网络级结果。**在本次1秒仿真结束时,节点3累计记录36次碰撞和36次重传。累计曲线和帧完成时延曲线表明,信号级重叠与接收判决并未停留在波形显示层,而是通过协议状态机改变发送进程,并进一步反映到累计碰撞次数、累计重传次数和帧完成时延等网络指标中。

该案例展示了 Sysevents 与 Syslab 协同实现跨层仿真的过程:Sysevents 组织业务到达、信道竞争、状态切换和重传事件,Syslab 承接 Julia 信号算法的计算与结果分析;两者通过报文属性、稳定 MAC 帧标识、逐次 PHY 帧标识和统一事件时刻进行关联,从而形成"发送重叠---波形叠加---CRC失败---协议切换---退避重传---网络指标"的完整跨层结果链。

四、基于 Sysevents 的一体化仿真机制

前面的 M/M/1 案例展示了最基础的"到达---排队---服务---统计"链路;基础CSMA/CD 案例展示了共享信道竞争和协议状态机;详细物理层 CSMA/CD 进一步把信号计算接入协议事件链。

协议库与网络仿真协议模型

由这三个案例可以归纳出一种一体化建模仿真机制:基于离散事件基础模型构建网络协议模型,用于描述业务产生、排队、转发、竞争接入及协议状态转换等离散行为;基于时间驱动的信号链路模型,对通信链路中的调制、编码、滤波、信号传输及物理波形处理过程进行建模。两类模型通过 Discrete Event Chart(离散事件状态机) 及相应接口实现协同调度:网络协议模型根据报文到达、发送开始、发送结束等事件触发信号链路模型运行,信号链路模型则将传输完成、信道占用、冲突或接收状态等结果反馈至协议模型,从而形成"离散事件协议仿真---时间驱动信号仿真---结果反馈"的闭环联合仿真机制。

基于网络协议的节点建模

在模型组织上,可以先根据网络拓扑和通信任务需求,构建网络、节点与进程层级,再将关键节点中的物理层模块替换为更细粒度的信号模型。同一套场景既可用于网络级快速评估,也可根据分析需求进一步细化到编译码、调制解调、信道均衡、干扰抑制等信号过程,避免网络模型和信号模型分别维护。

基于上述一体化仿真机制,Sysevents 的技术特点主要体现在以下几个方面:

  • 离散事件与时间驱动计算协同

离散事件机制负责业务到达、排队变化、发送请求、状态跳转与定时器;时间驱动计算负责编码、滤波与波形处理。事件到达时触发对应信号计算,信号计算完成后再生成带有接收结果的事件,从而维持统一时序。

  • 抽象物理层与详细物理层可替换

同一网络拓扑与协议流程既可使用时延、误码率等参数化物理层,也可在关键共享介质上启用详细物理层。模型粒度按分析任务选择,上层业务对象和协议逻辑不需要随之重建。

  • 网络事件与信号结果关联和追踪

MAC 帧标识、物理帧标识和统一事件时刻把发送请求、到达时窗、发送波形、叠加波形、接收判决和 CRC 结果关联起来;错误标志随报文返回协议状态机,协议侧的碰撞、退避和重传又可继续追踪到累计碰撞、重传和帧完成时延等网络指标。

上述一体化机制通过Sysevents 与 Syslab 的协同实现跨层仿真。Sysevents 组织网络对象、协议事件与跨层数据流,Syslab 承接 Julia 信号算法的计算与结果分析,使协议进程中的事件记录能够与信号处理结果进行关联验证。

五、典型应用与工程价值

三个案例已经覆盖随机业务到达与排队统计、共享信道竞争、碰撞检测、指数退避与重传,以及编码、滤波、波形叠加、接收判决和 CRC 校验进入协议事件链。由此可以在同一模型中关联队列等待、信道占用、协议状态与具体物理帧的比特和波形。

在当前机制上,可替换不同编码、滤波或判决算法,调整业务负载、线缆长度、处理时延和误码参数,扩展节点数量或比较不同介质访问配置。此类扩展沿用已有事件接口与帧级关联机制,但仍需通过对应实验验证具体性能结论。

更大规模的场景想定、系统级参数优化、自动代码生成、半实物闭环与面向具体硬件的工程验证,需要进一步结合 MWORKS 平台中的场景、优化、代码生成和测试工具。

在 MWORKS 平台内,Sysevents 与 Syslab 的协同,使网络仿真不仅能够观察业务、队列、碰撞、重传和时延等结果,还可以进一步追踪这些结果对应的具体帧、信号波形与接收判决过程。由此,网络层与信号层不再各自独立分析,而是能够沿统一事件链相互关联:既看到"发生了什么",也为进一步追踪"为什么发生"提供可观察、可验证的入口。

相关推荐
言乐61 小时前
Python加速器4跨境网络加速器
运维·服务器·开发语言·网络·python
疯狂打码的少年3 小时前
【计算机网络】IPv6基础(特点、表示法、与IPv4对比)
网络·笔记·计算机网络
门思科技3 小时前
LoRaWAN 网络容量估算:一个 SX1302 网关到底能带多少设备
开发语言·网络·php
今天AI了吗7 小时前
什么是 AI Agent?它与直接调用大模型 API 有何区别
java·网络·人工智能·架构·java-ee
小祺先生8 小时前
mt7921 debian系统 如何安装驱动
运维·网络·debian
qq_508576099 小时前
机器人通讯协议
网络·机器人
captain3769 小时前
网络原理(3)-TCP核心机制连接管理▲▲▲
java·服务器·网络·ide·网络协议·tcp/ip·java-ee
小程序设计9 小时前
基于SNMP+NetFlow的企业内网链路质量监测系统设计与实现
网络
宵时待雨10 小时前
linux笔记归纳19:网络层协议IP
linux·网络·笔记·网络协议·tcp/ip