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通讯代码实例

相关推荐
姓刘的哦6 分钟前
STM32的启动流分析
linux·运维·arm开发
2601_949499949 分钟前
芯瑞科技 DT‑1414完全兼容HFBR‑1414TZ光模块国产化优选方案深度解析(工程师视角)
运维·网络·人工智能·科技·光模块
科技新知13 分钟前
宇树敲钟,机器人卖艺:一场资本与产业的错位赛跑
机器人
XUEYUAN521214 分钟前
代理日志分析与监控:代理池健康状态巡检与分级告警体系搭建(运维实战)
运维·网络·网络协议·tcp/ip·算法·架构
Fcy64816 分钟前
Linux下 Socket编程 —— UDP网络编程
linux·网络·udp
往事只能回味味道34 分钟前
MySQL创建数据库并授权指导用户与IP
数据库·tcp/ip·mysql
酒神dnspup39 分钟前
服务器端口检测怎么做?用 DNSPup 核对开放端口、监听服务与暴露风险
网络·网络协议·http·ssl证书·http状态码·服务器端口
lajidecrd44 分钟前
Ubuntu 24.04 LTS安装
linux·运维·ubuntu
FII工业富联科技服务1 小时前
从“单机自动化”到“技能复用”:从WRC 2026拆解机器人模型、仿真、部署与数据回流
人工智能·机器人·自动化
沫璃染墨1 小时前
《从零入门Linux系统篇(二十九):文件篇·二——深入文件描述符:从文件描述符表到重定向,再到Shell实现》
linux·运维·服务器·c++·驱动开发·系统架构