Skip to content

ZNetLink/ms-model-echo-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ms-model-echo-app

智网妙算回显应用模型

简介

EchoApp 是一个基于 UDP 的应用层回显服务模型,用于在妙算仿真中测试网络连通性和数据传输。该模型模拟客户端-服务器架构的回显应用:

  • 服务器模式:监听指定端口,接收客户端消息并返回带有 "Echo: " 前缀的响应
  • 客户端模式:定期向服务器发送消息,验证通信是否正常

模型支持通过 UDP 协议进行网络通信,需要与 UDP 传输层模型配合使用。

模型配置

EchoApp 模型在 models/echo_app.pr.m 中定义,具有以下可配置属性:

属性名 标签 类型 默认值 可选值 描述
role 角色 string "server" "server", "client" 应用运行模式:服务端或客户端
dest 目的地址 string "192.168.2.10" 任意有效IPv4地址 客户端模式下的目标服务器地址

模型行为概述

状态机设计

EchoApp 采用三状态设计:

  1. Wait(等待状态):初始状态,短暂等待后进入 Init 状态
  2. Init(初始化状态):完成模型初始化和 UDP 端口注册
  3. Idle(空闲状态):主要工作状态,处理消息收发

工作流程

初始化阶段(Init)

  1. 参数验证:读取并验证 roledest 配置参数
  2. UDP 注册:通过 udp_command ICI 向 UDP 模型注册端口监听
    • 监听端口:8100(默认)
    • 发送端口:8900(默认)

运行阶段(Idle)

服务器模式行为

  • 监听 8100 端口接收客户端消息
  • 收到消息后,自动回复 Echo: {原消息} 格式的响应
  • 通过源地址直接回复给客户端

客户端模式行为

  • 每 1 秒向配置的服务器地址发送一次消息
  • 消息格式:Hello from client: {仿真时间}
  • 发送到服务器的 8100 端口

数据包格式(models/echo_app.pkt.m

EchoApp 使用自定义的数据包格式,主要字段如下:

  • data(类型:type = 4,字符串,最大80字符)
    • 承载应用层数据,支持中文和英文字符

网络通信

默认端口配置

  • 服务端口:8100(用于接收消息)
  • 发送端口:8900(用于发送消息)

ICI 使用

模型使用以下 ICI 与 UDP 层交互:

UDP 注册 ICI(udp_command)

  • command:设为 "listen" 进行端口监听
  • local port:监听端口号(8100)
  • app module id:应用模块 ID

UDP 发送 ICI(udp_ind)

  • remote address:目标 IP 地址
  • remote port:目标端口(8100)
  • local port:本地端口(8900)

使用示例

服务器配置

{
  "role": "server",
  "dest": "192.168.2.10"
}

客户端配置

{
  "role": "client",
  "dest": "192.168.2.20"
}

依赖关系

  • 底层传输:需要 UDP 传输层模型支持
  • 网络层:依赖 IP 模型进行路由和转发
  • 仿真平台:基于智网妙算(Miaosuan)仿真平台

技术规格

  • 编程语言:Python 3.x
  • 仿真框架:Miaosuan Python API
  • 协议栈:应用层 → UDP → IP
  • 数据格式:自定义字符串格式
  • 最大数据长度:80 字符

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published