簡單高效可靠的自定義通訊協議(傳輸協議)

2021-07-05 14:24:40 字數 501 閱讀 3741

取「高效簡單可靠」這幾個形容詞還是很虛的,畢竟這是yy出來的東西。

設計的目的在於:在收發雙方能夠正常執行的情況下,盡可能高的利用網路傳輸能力(不使用一應一答),以及提高傳輸效率(無須對每個報文幀進行應答)。

對比xmodem、kermit,以及借鑑tcp的協議棧設計思想,設計一套通訊協議:

1,定義傳送方sender、接收方receiver;

2,sender無需應答即不斷地傳送資料幀,直到receiver報告的接收緩衝為空;

3,receiver逐個處理接收到的資料幀,當接收緩衝區空閒大小大於總大小的一半,或超過1秒(這個時間可設定)未傳送ack時,則傳送正響應ack,正響應ack中帶有下乙個期望接收的位元組序列號(每個位元組對應乙個序列號)、可用接收緩衝大小等接收方資訊。

4,當receiver接收出現異常時,傳送負響應ack,帶有下乙個期望接收的位元組序列號、可用緩衝大小、錯誤碼。

5,sender接收到負響應ack後,從「下乙個期望接收的位元組序列號」開始重發資料。

Arduino自定義通訊協議解析

給出了通訊協議的設計。通訊協議的格式如下 協議首部 指令長度 控制指令 校驗和 控制指令 設計成如下格式 裝置型別 裝置號埠號 比如說上位機傳送如下的格式的資料 aa0305020106,意思就是協議的首部為aa,指令長度為03,控制指令為050201 實際意義就是裝置型別為05,裝置號為02,埠為...

自定義通訊協議 網摘

現在大部分的儀器裝置都要求能過通過上位機軟體來操作,這樣方便除錯,利於操作。其中就涉及到通訊的過程。在實際製作的幾個裝置中,筆者總結出了通訊程式的通用寫法,包括上位機端和下位機端等。1 自定義資料通訊協議 這裡所說的資料協議是建立在物理層之上的通訊資料報格式。所謂通訊的物理層就是指我們通常所用到的r...

我的簡單通訊協議

寫了個自己的通訊協議 功能很簡單 可能還不能稱作協議 稱為通訊地基還好些 不過寫個指導的東西還是很好的 有了目標就不會迷失了嘛 呵呵 基於xmpp的簡單通訊協議 能夠實現的功能 使用者登入 註冊 上下線訊息通知 一對一聊天 群聊 在實現中.一.伺服器和客戶機之間訊息傳送格式 採用xmpp格式 1.從...