通信协议
文章平均质量分 90
有关所有通信相关
奇树谦
软件开发工程师,从事军工/制造行业近5年,擅长跨平台上位机软件搭建,可以完成从UI到底层通信全链路代码编写。记录工作生活中的所学所感,欢迎一起学习交流。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
FastDDS阿里云DDSRouter安装和使用(失败)
本文介绍了在Alibaba Cloud Linux 3系统上源码编译安装DDS Router的详细过程,包括环境准备、依赖安装、源码获取和构建步骤。由于DDS Router依赖较多且部署复杂,作者最终放弃了跨网段通信方案,转而使用MQTT转发,仅在组网内使用FastDDS。文章还分析了当前技术环境下的可行替代方案,指出FastDDS原生TCP+Static Peers可能是更简单可靠的跨网段通信解决方案。通过对比表格展示了不同方案的优缺点,为面临类似问题的开发者提供了实用参考。原创 2026-01-09 15:46:40 · 536 阅读 · 0 评论 -
fastdds同一个服务器下Discovery Server环境部署
本文详细记录了在阿里云服务器(Alibaba Cloud Linux)上安装FastDDS作为Discovery Server节点的全过程。首先通过yum安装基础依赖工具,随后下载FastDDS源码并分步编译安装foonathan_memory、Fast-CDR和Fast-RTPS组件。在编译过程中遇到Asio版本不兼容问题,通过手动更新Asio库解决。最终成功编译并验证了FastDDS的安装,能够正常运行fast-discovery-server服务。整个过程涵盖了系统环境准备、依赖安装、源码编译、问题排原创 2026-01-09 08:30:00 · 1240 阅读 · 0 评论 -
FastDDS路由可达的跨网段通信支持说明
局域网内:用默认的简单发现(Simple Discovery)。跨网段、静态 IP:使用。复杂拓扑、动态节点:首选。跨公网/严格防火墙:使用并配置。通过合理配置发现机制和定位器(Locators),FastDDS 可以突破物理子网的限制,构建高性能的全球分布式通信网络。原创 2026-01-06 08:30:00 · 980 阅读 · 0 评论 -
FastDDS跨网段通信全解析:方法对比、云端部署与实战配置
在工业物联网、智能机器人协同、车载设备互联等场景中,设备常跨网段(甚至跨公网)部署,数据的实时、可靠传输成为核心需求。FastDDS(基于DDS标准的开源实现)作为工业级实时通信协议,凭借低延迟、高吞吐量、丰富QoS能力,成为跨网段通信的优选方案。本文将从「跨网段通信方法选型」切入,详细讲解云端服务器FastDDS环境部署、Discovery Server配置、本地/远端发布订阅参数配置,最后通过实战案例验证通信效果,帮你快速搞定FastDDS跨网段落地。跨网段场景下,FastDDS主流通信方案有4种,需根原创 2026-01-03 08:30:00 · 942 阅读 · 0 评论 -
OSI 七层模型的每一层作用、在代码编程中的具体体现
✔ 应用层是你平时写得最多的(HTTP、MQTT、DDS)✔ 表示层是序列化/反序列化(Protobuf、JSON)✔ 会话层是保持连接(WebSocket、MQTT、DDS)✔ 传输层是端口、TCP/UDP、粘包拆包✔ 网络层是 IP 地址、ICMP、路由✔ 链路层是 MAC、ARP、以太帧✔ 物理层是信号、比特流MTU(Maximum Transmission Unit)= 最大传输单元👉它指的是“二层以太网帧中 IP 包的最大大小”网络类型MTU有线以太网(Ethernet)原创 2025-11-18 08:00:00 · 1063 阅读 · 0 评论 -
Fast DDS IDL 自动生成与批量封装完整实践(含 fastdds_autogen.cmake 模块)
本文介绍了Fast DDS中IDL文件自动生成C++代码的完整实践方案,包含单文件生成和批量处理两个部分。第一部分详细说明了如何在CMake中配置单个IDL文件(如trajectory_frame.idl)的自动生成流程,包括设置输出路径、调用fastddsgen工具以及注册生成的源文件。第二部分则展示了如何封装为fastdds_autogen.cmake模块,实现多个IDL文件(如trajectory_frame、trajectory_command等)的批量处理,通过函数化封装简化CMake配置。方案支原创 2025-10-24 08:30:00 · 377 阅读 · 0 评论 -
如何设置Protobuf 自动生成的头文件并在项目中引用
有时候,我们希望生成的.pb.h文件集中放到固定位置,比如。并且 include 路径也完全由你控制。它在 build 目录中镜像源码结构并自动加入 include 路径而无需关心生成文件的位置。📎CMake 官方模块 FindProtobuf.cmakeProtocol Buffers 官方文档。原创 2025-10-24 08:15:00 · 865 阅读 · 0 评论 -
GenICam GenTL 标准 ver1.5(1)GenICam简介与框架
GenICam(Generic Interface for Cameras)是一种工业相机接口标准,旨在为机器视觉行业提供一个统一的、标准化的相机接口。它允许不同制造商生产的相机能够通过一个通用的接口与各种图像采集软件和硬件进行交互。这种标准化的接口极大地简化了相机的集成过程,降低了开发成本,提高了系统的可扩展性和兼容性。GenICam标准涵盖了从相机硬件接口到数据传输协议的多个方面。原创 2025-03-18 21:15:00 · 1366 阅读 · 0 评论 -
Fast DDS 默认传输机制详解:共享内存与 UDP 的智能选择
Fast DDS默认采用智能传输选择机制,优先使用共享内存(SHM)进行同主机进程间通信,跨主机时自动切换为UDPv4。传输层优先级为:进程内通信>共享内存>UDP。用户可通过QoS配置自定义传输方式,如禁用SHM强制使用UDP,或调整传输参数。系统提供日志监控功能,可通过环境变量或代码设置RTPS_TRANSPORT日志级别来验证实际传输选择。该机制实现了高性能(零拷贝)与跨网络通信的自动平衡,简化了开发复杂度。原创 2025-10-13 21:30:00 · 1949 阅读 · 0 评论 -
win10下Qt应用程序使用FastDDS
Qt与Fast DDS通信实现指南摘要 本文介绍了Qt应用程序与Fast DDS通信的实现方法。主要内容包括: 发布端实现: 定义发布数据类DDSPublisherManager,采用单例模式 封装DDS发布者生命周期管理功能 包含初始化、数据发布等核心方法 实现DomainParticipant、Topic、Publisher等对象的创建 关键步骤: 注册自定义数据类型 设置QoS参数 处理发布匹配事件 提供线程安全的单例访问 该实现参考Fast DDS官方示例,适用于Qt开发环境,可用于构建分布式系统中原创 2025-10-13 21:15:00 · 453 阅读 · 1 评论 -
深入理解 Fast DDS:DataReaderListener 与 DataWriterListener 工作机制详解
本文深入解析了Fast DDS中的DataReaderListener和DataWriterListener机制。这两种监听器采用事件驱动方式,为发布-订阅通信提供高效的非阻塞回调。DataReaderListener包含7个关键回调函数,处理数据到达、匹配状态变化等事件;DataWriterListener则提供4个回调,监控发布者状态和QoS兼容性。文章通过代码示例展示了如何继承这些监听器类并实现关键回调,如on_data_available()和on_publication_matched(),使开发原创 2025-10-12 10:00:00 · 754 阅读 · 0 评论 -
Fast DDS 官方示例程序 `HelloWorld_main.cpp`的详细中文讲解 + 完整注释版本
Fast DDS HelloWorld示例程序详解 该程序是一个命令行驱动的Fast DTS演示程序,主要功能包括: 运行模式选择 支持启动为Publisher(数据发布者)或Subscriber(数据订阅者) 通过命令行第一个参数指定模式(publisher/subscriber) 参数配置 发送次数控制(--samples) 发送间隔设置(--interval,默认100ms) 是否从环境变量加载QoS配置(--env) 实现细节 使用optionparser库处理命令行参数 包含完整的参数验证机制(数原创 2025-10-11 12:30:00 · 412 阅读 · 0 评论 -
《Fast DDS 详解:工业级实时通信的引擎》
Fast DDS:工业级实时通信解决方案 Fast DDS是eProsima公司基于OMG DDS标准开发的高性能开源通信框架,具有跨平台、跨语言、零中间件等特点,是ROS 2的默认通信中间件。文章详细解析了Fast DDS的核心架构,包括其基于发布-订阅模型的通信原理、关键组件(DomainParticipant、Publisher/Subscriber等)以及RTPS底层协议实现。通过实际应用场景(如机器人控制、车载系统)和C++代码示例,展示了Fast DDS的可靠传输、实时分发等特性。文章还对比了不原创 2025-10-11 12:15:00 · 1486 阅读 · 0 评论 -
《gRPC 与 Thrift 的架构与性能对比 — 实战篇》
本文对比了 gRPC和Thrift的架构与性能差异,通过Python代码示例展示了两种RPC框架的最小实现,并提供了可复现的基准测试方法。gRPC基于HTTP/2和Protobuf,适合云原生和流式场景;Thrift支持多种传输协议,在轻量级场景更具灵活性。文章包含详细的性能测试步骤和选型建议,帮助开发者根据实际需求选择合适方案。原创 2025-10-10 18:30:00 · 2207 阅读 · 0 评论 -
RPC 通信详解:一次搞懂分布式系统的“远程调用魔法”
RPC(远程过程调用)是一种让远程服务调用像本地函数调用的技术,通过序列化、网络传输和反序列化实现分布式通信。核心组件包括Stub代理、序列化协议(如Protobuf)、传输层(TCP/HTTP)和服务注册中心。典型框架如gRPC(高性能)、Thrift(轻量)和Dubbo(Java生态)。相比REST,RPC更高效但可读性较弱,适合微服务内部通信。其本质是隐藏分布式复杂性,使远程调用更自然。原创 2025-10-10 18:15:00 · 955 阅读 · 0 评论 -
《常用 IDL(接口定义语言)详解与对比》
IDL(接口定义语言)详解与对比 IDL是跨语言通信的契约语言,用于定义数据结构、接口和通信协议,通过代码生成实现多语言兼容。主流IDL分为三类: 实时通信(OMG IDL):适用于DDS/ROS 2,强实时性但生态偏底层。 RPC通信(Thrift/Protobuf):Thrift多语言支持好,Protobuf性能更优,是gRPC标准。 数据流(FlatBuffers/Avro):FlatBuffers零拷贝解析,适合游戏/嵌入式;Avro支持Schema演化,专为Kafka/Hadoop设计。 选型建议原创 2025-10-09 21:15:00 · 1328 阅读 · 0 评论 -
FastDDS官方HelloWorldPublisher详解
该代码实现了一个基于Fast DDS的"HelloWorld"发布者,用于发布消息到指定主题。主要功能包括初始化DDS参与者、创建发布者、注册消息类型、设置主题和写入器,并实现消息的持续或指定次数的发布。代码包含资源清理逻辑,确保在析构时正确释放DDS资源。发布者通过监听器跟踪匹配状态,支持两种运行模式:持续发布直到停止,或发布指定数量的样本。每次发布都会递增消息索引并输出发送日志。原创 2025-10-09 18:30:00 · 1059 阅读 · 0 评论 -
Qt开发的应用程序编译链接Fast DDS库
本文介绍了Fast-DDS的开发流程和集成方法。主要内容包括:1)使用Fast-DDS-Gen工具生成IDL转换的C++类型支持代码;2)Fast-DDS库的编译安装,建议统一安装到固定路径供多个程序调用;3)主程序(publisher)和子程序(subscriber)的开发方式,只需链接Fast-DDS库和IDL生成代码。文章详细说明了Windows环境下Fast-DDS的编译配置步骤,包括依赖项准备和Qt项目集成方法。最后指出目前遇到的Boost库链接问题,建议后续尝试更新版本解决。整个流程强调Fast原创 2025-10-08 20:18:09 · 1177 阅读 · 0 评论 -
IDL 入门指南 —— 从零编写你的第一个 IDL 文件
本文介绍了IDL(接口定义语言)的基本概念和应用场景。IDL是一种平台和语言无关的中间语言,用于定义数据结构、接口和类型,广泛应用于分布式系统、实时数据分发(如DDS)、gRPC等技术中。文章通过一个学校管理系统的示例,详细讲解了IDL的基本语法,包括模块(module)、结构体(struct)、基本数据类型和复合类型(如动态数组sequence)。重点说明了sequence的动态扩容特性及其在表示不定长数据集合时的优势。最后列举了IDL在CORBA、嵌入式系统等领域的典型应用场景。原创 2025-10-08 17:01:05 · 1464 阅读 · 0 评论 -
Fast-DDS相关的一些问题1
摘要 Fast DDS中的SHM传输(Shared-Memory Transport)是一种高效的进程间通信机制,通过共享内存实现单机内DomainParticipant间的直接数据交换,相比UDP/TCP回环具有更低延迟(微秒级)和更高吞吐量。其核心采用Segment、Buffer/Descriptor和Port环形缓冲区的架构,仅需一次内存拷贝,显著降低CPU占用。更高级的Data-Sharing/Zero-Copy模式通过内存映射实现零复制,适用于自动驾驶等对延迟敏感的实时系统。Fast DDS默认支原创 2025-09-27 17:31:58 · 795 阅读 · 0 评论 -
windows进程间DDS通信实现 安装FastDDS 生成C++绑定代码
场景推荐机制原因同主机高性能SHM传输 + 零拷贝最低延迟,最高吞吐局域网实时UDP多播 + 简单发现即插即用,低延迟广域网可靠TCP传输 + 客户端服务器发现可靠,支持NAT安全敏感安全插件 + 认证加密端到端安全资源受限最佳努力 + 批处理低资源消耗Fast DDS 通过这些丰富的通信机制组合,能够满足从嵌入式设备到云服务器的各种分布式系统需求。原创 2025-09-27 15:52:19 · 922 阅读 · 0 评论 -
同一个电脑内两个进程间如何通信的几种方式
本文介绍了实时传输轨迹数据到已启动进程的多种方法,并探讨了DDS在进程间通信的适用性。主要内容包括: 数据传输方案(按实时性排序): 共享内存:速度最快,需处理同步问题 本地TCP/UDP套接字:简单跨语言 QLocalSocket:比TCP延迟更低 Windows消息:仅限Windows窗口程序 中间文件:实现简单但延迟较高 DDS通信特点: 去中心化架构 主题订阅模式 丰富的QoS策略 自动发现机制 跨平台支持 实践建议: 低帧率场景可用QLocalSocket 高帧率或未来扩展推荐DDS 提供了Fas原创 2025-09-18 17:35:12 · 1106 阅读 · 0 评论
分享