簡易遠程消息交換協議SRMP


一、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)。

物聯網硬件設備建議直接忽略擴展長度。


SRMP請求格式
字節 7 6 5 4 3 2 1 0
1 請求0 單向 壓縮 加密 保留
1 序列號(0~255)
2 變長數據長度Length(0~65534)
變長
字節數 項目
S 服務名
N 請求參數
SRMP響應格式
字節 7 6 5 4 3 2 1 0
1 響應1 錯誤 壓縮 加密 保留
1 序列號(0~255)
2 變長數據長度Length(0~65534)
變長
字節數 項目
S 服務名
4 響應代碼
N 響應數據

 

 

 

 

 

 

 

 

 

 

 

 

三、SRMP遠程調用

SRMP主要分為請求和響應兩種指令。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM