嵌入式工作笔记 - 协议网关
嵌入式工作笔记 - 协议网关
一.概念
- 协议网关:使用 不同协议 的 网络区域间 做 协议转换
- 协议网关属于网关中的一种,专注于转换通信协议(数据链路层至应用层),不涉及网络层路由
- 协议网关主要处理应用层协议转换,即:主要工作于应用层
说直白一点,就是两份不同的协议通过某个中间者做协议转换,这个中间者就叫协议转换
举个例子,一个外国佬来问路,唧唧哇哇的(绝不是我英语不好),你一句也听不懂,这个时候就需要一个人来帮忙翻译了
当然,如果你有一个外语很好的朋友,你倒是可以把他抓过来当冤大头,只不过这样很容易没朋友
- 网关:又称网间连接器、协议转换器,即:完成不同网络协议转换的设备
- 换句话说,网关就是连接不同网络或协议体系的硬件/软件设备,充当“翻译官”角色,实现异构系统间的通信
- 网关的核心定义是 在不同网络或协议之间进行转换 的设备
- 主要指传输层以上的协议转换,用于不同网络的互连
- 不同网络的协议可能不同,必须对协议进行转换,才能相互通信
再说直白一点,你抓了一个冤大头朋友来给你免费当了一天的翻译官,这个冤大头就是网关,完成了你和老外的交流
朋友:我谢谢您嘞
| 网关(Gateway) | 协议网关(Protocol Gateway) | |
|---|---|---|
| 范围 | 广义概念(包含路由、安全等功能) | 网关的子类(仅协议转换) |
| 核心任务 | 跨网络互联 + 协议转换 | 纯协议转换 |
| 工作层级 | OSI L3-L7 | OSI L2/L7(侧重应用层) |
| 是否改变接口 | 可能(如RS485转以太网) | 不一定(可同接口转换协议) |
| 典型代表 | 家庭路由器、API网关 | Modbus转Profinet网关、BACnet/IP转换器 |
二.类型
网关分很多类型,例如 协议转换网关,通信接口网关,透传网关
| 类型 | 功能 |
|---|---|
| 协议转换网关 | 转换不同协议(如Modbus转Profibus) |
| 通信接口网关 | 转换物理接口(如RS485转以太网) |
| 透传网关 | 仅延长信号,不修改协议 即:透明传输原始数据,不解析/修改协议内容 |
问:你对上位机认识最多的东西是什么
答:透传
问:为什么
答:因为隔壁做上位机的同事说得次数最多的和上位机有关的就是透传
问:。。。。。。。
三.协议网关实例 — 双RS485实现的协议网关
假设你现在在做一款单片机设备,这个单片机上面有多个RS485,现在我们利用上面的2个实现一个协议网关操作
具体操作如下:
+---------------------+
RS485-1 (协议A) | | RS485-2 (协议B)
------[数据]--->| 协议网关 |------[转换后数据]---> 目标设备
| - 解析协议A |
| - 映射为协议B |
| - 封装为协议B帧 |
+---------------------+
当然,你可能看不懂上面在说什么,所以请个"冤大头"网关选手出来翻译亿下下 ?
首先,我们需要通过工具(通常是串口工具,例如SSCOM)按照协议A发送数据帧到RS485-1上面
RS485-1接收到之后,先解析,再经过协议转换,最后封装完成后,发射!
也就是上图的三步走 —— 解析协议A,映射为协议B,封装为新的协议B
然后通过RS485-2发送出去,最后由我们的目标设备接收
问:这个过程中,谁是冤大头(网关)?谁又是冤大头中的冤大头(协议网关)?
答:是"我"做的这个协议转换,所以我们都是冤大头
再说的通俗易懂一点,就是
你(A)需要和路人甲(B)交流,但是你们两个,因为语言问题,迟迟无法沟通
这个时候就需要一个人来帮忙翻译,姑且就叫他朋友C吧
①你向朋友C说了一句 "请问你想询问一些什么?",让他帮忙翻译,
②朋友肯定知道你说的话是什么话,
③然后翻译为英文 "May I ask what you would like to ask?" 有道翻译温馨提供
④最后告诉路人甲B,
⑤B知道后作出回应,
⑥然后朋友翻译B的回应,
⑦最后将翻译内容转达给你
对应利用网关实现的数据传输流程:
①你使用SSCOM窗口助手向RS485-1发送了一条控制指令(协议A1帧)
②RS485-1接收到之后开始解析协议,解析完成后,进行协议转换
③协议转换之后,经过封装,封装为协议B1帧
④最后通过RS485-2将协议B1帧发送给目标设备,
⑤目标设备接收到协议B1帧之后,回复数据帧B2(通过RS485-2回复)
⑥之后,又经过协议解析,装换和包装后,得到一个数据帧 - 协议A2帧
⑦最后将协议A2帧经过RS485-1发送给串口助手
用户A
↓ (发送协议A1帧)
网关RS485-1接收 → 协议解析 → 协议转换(A1->B1) → B1帧封装
↓ (发送协议B1帧)
目标设备B
↓ (回复协议B2帧)
网关RS485-2接收 → 协议解析 → 协议转换(B2->A2) → A2帧封装
↓ (发送协议A2帧)
用户A接收回复
+-----------+ 1.发送A1帧 +-----------+ 2.发送B1帧 +-----------+
| | -------------------> | | -------------------> | |
| A | | C | | B |
| (SSCOM) | <------------------- | (网关) | <------------------- | (目标设备)|
| | 4.接收A2帧 | | 3.接收B2帧 | |
+-----------+ +-----------+ +-----------+
+----------------+ +----------------+ +----------------+
| 用户(A) | | 网关(C) | | 目标设备(B) |
| SSCOM串口助手 | | (协议转换器) | | |
+-------+--------+ +-------+--------+ +-------+--------+
| | |
| ① 发送A1帧 | |
| ---------------------->| |
| | |
| | ② 转换A1->B1 |
| | ------+ |
| | | |
| | <-----+ |
| | |
| | ③ 发送B1帧 |
| | ---------------------->|
| | |
| | ④ 接收B2帧 |
| | <----------------------|
| | |
| | ⑤ 转换B2->A2 |
| | ------+ |
| | | |
| | <-----+ |
| | |
| ⑦ 接收A2帧 | |
| <----------------------| |
| | |

浙公网安备 33010602011771号