前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简易远程消息交换协议SRMP

简易远程消息交换协议SRMP

作者头像
大石头
发布2018-10-08 10:56:17
5520
发布2018-10-08 10:56:17
举报
文章被收录于专栏:智能大石头智能大石头

一、SRMP目标定位

经过十多年实战经验积累以及多方共同讨论,新生命团队(https://github.com/newlifex)制订了一种简单而又具有较好扩展性的RPC(Remote Procedure Call)协议。全称:简易远程消息交换协议,简称:SRMP(Simple Remote Messaging Protocol)

SRMP主要定位于以下场景:

  1. 内网高速通信,大吞吐量(>100万tps)、低延迟(<1ms)
  2. 外网远程通信,稳定可靠,海量连接(>10万)
  3. 物联网硬件设备,容易简单实现协议

二、SRMP基础格式

协议格式1 Flag + 1 Sequence + 2 Length + N Payload 1个字节标识位,标识请求、响应、错误、加密、压缩等; 1个字节序列号,用于请求响应包配对; 2个字节数据长度N,小端字节序,指示后续负载数据长度(不包含头部4个字节),解决粘包问题; N个字节负载数据,数据内容完全由业务决定,最大长度65534=64k-1。

负载数据大于等于64k时,数据长度字段填65535(0xFFFF),启用后续4字节扩展长度,最大长度4G(0xFFFFFFFF)。

物联网硬件设备建议直接忽略扩展长度。

偏移

1

2

0

1

2

3

4

5

6

7

0

1

2

3

4

5

6

7

0

保留

单向

请求0

序列号(0~255)

2

数据长度Length(0~65534)

4

扩展长度(可选,Length=65535时启用)

4/8

字节数 项目 1~4 名称长度S S 服务名 1~4 参数长度N N 参数

字节数

项目

1~4

名称长度S

S

服务名

1~4

参数长度N

N

参数

字节数

项目

1~4

名称长度S

S

服务名

1~4

参数长度N

N

参数

偏移

1

2

0

1

2

3

4

5

6

7

0

1

2

3

4

5

6

7

0

保留

错误

响应1

序列号(0~255)

2

数据长度Length(0~65534)

4

扩展长度(可选,Length=65535时启用)

4/8

字节数 项目 1~4 名称长度S S 服务名 4 响应代码 1~4 响应数据N N 响应长度

字节数

项目

1~4

名称长度S

S

服务名

4

响应代码

1~4

响应数据N

N

响应长度

字节数

项目

1~4

名称长度S

S

服务名

4

响应代码

1~4

响应数据N

N

响应长度

三、SRMP远程调用

SRMP主要分为请求和响应两种指令。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-09-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、SRMP目标定位
  • 二、SRMP基础格式
  • 三、SRMP远程调用
相关产品与服务
物联网
腾讯连连是腾讯云物联网全新商业品牌,它涵盖一站式物联网平台 IoT Explorer,连连官方微信小程序和配套的小程序 SDK、插件和开源 App,并整合腾讯云内优势产品能力,如大数据、音视频、AI等。同时,它打通腾讯系 C 端内容资源,如QQ音乐、微信支付、微保、微众银行、医疗健康等生态应用入口。提供覆盖“云-管-边-端”的物联网基础设施,面向“消费物联”和 “产业物联”两大赛道提供全方位的物联网产品和解决方案,助力企业高效实现数字化转型。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档