FA_IPC_协议网络(VRPN)数据交互三

FA :Formulas and Algorithm, IPC :Inter-Process Communication, VRPN :Virtual Realiy Peripheral Network

VRPN是专门为"虚拟现实"技术适配的网络通信协议(当然适合于进程间通信)。VRPN本身囊括了三层,他们分别为:"会话层"、"表示层"和"应用层",对于1~4层的协议是整体复用的。一般情况下的vrpn通信链路可以表示如下:

层序号 层名称 归属 实现方
7 应用层(Application Layer) vrpn自研 设备抽象、Pub/Sub业务接口
6 表示层(Presentation Layer) vrpn自研 私有二进制序列化、端序处理
5 会话层(Session Layer) vrpn自研 连接握手、会话管理、断线重连
4 传输层(Transport Layer) 复用标准 TCP/UDP
3 网路层(Network Layer) 复用标准 IP
2 链路层(Data Link Layer) 复用标准 以太网/WiFi
1 物理层(Physical Layer) 复用标准 光纤、无线电
复制代码
备注:由于更改了会话层肯定会提升相应的传输效率(稳、快、准);由于涉及的有表示层的修改内容,在数据加密编辑有相应的适配更改;由于涉及的有应用层的适配,那么数据的格式、种类也会有优化。

一、协议层的适配和优化

5 会话层(Session):VRPN 自主实现全链路会话管理

VRPN 自研会话规则,属于会话层实现:

  • 客户端先用 UDP 上报本地端口 → 服务端 TCP 回连握手、版本校验

  • 协商成功后再切换专用 UDP 端口收发实时数据

  • 自动断线重连、设备会话保活、多客户端接入管理、会话销毁

    TCP 只负责初始握手,整套连接流程是 VRPN 在会话层实现

6 表示层(Presentation):VRPN 自定义数据序列化(私有二进制格式)

  • 自研报文头:消息类型、设备 ID、时间戳、数据长度、服务等级(可靠 / 非可靠)
  • 多字节大小端统一(htonl 网络字节序)、四元数 / 坐标结构体二进制打包
  • 无 Protobuf/JSON,全私有二进制编码 = VRPN 自研表示层

7 应用层(Application):设备抽象 + 业务接口(VRPN 核心)

  • 标准化设备类型:Tracker (位姿)、Analog (模拟量)、Button (按键)、力反馈设备四大类 API
  • 发布订阅回调模型:设备上报数据、客户端注册回调接收,应用层 Pub/Sub 逻辑
  • 硬件驱动适配层:对接 Vicon/OptiTrack、数据手套、IMU 等外设,向上统一接口

对于原有的协议中,vrpn做了轻量化的处理,删除、修改了不必要的数据传递指挥、流控、校验和加密等,用于动捕场景清优化设计 。另一方面,VRPN保留了双信道机制。1、TCP信道:会话 + 可靠指令(参数配置、设备启停);2、UDP信道:表示 + 应用, 高频位姿流(100~1000Hz)动捕数据

二、VRPN通讯代码实例

相关推荐
明月_清风4 小时前
开发者网络概念全扫盲:一篇搞定
后端·网络协议
刘马想放假8 小时前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
用户805533698039 小时前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297919 小时前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
王二端茶倒水1 天前
一套可落地的无线运营方案,不能只管 AP,还要管用户、计费和运维
网络协议
162723816081 天前
EtherCAT 分布式时钟(DC)原理与配置实战:把多轴真正"对齐到同一时刻"
网络协议
王二端茶倒水2 天前
宽带无线项目,怎么从一次性交付变成长期运营收入?
网络协议
Web3探索者2 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo2 天前
Linux系统中网线与USB网络共享冲突
linux