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)动捕数据。