關于協議設計的一點想法:

1. 協議的設計分成兩個主要部分:鏈路的管理以及數據的收發。

2. 鏈路管理就是鏈路的配置,建立,斷開。

3.重要的一點,兩個設備之間的鏈路建立是順序的,一條鏈路沒有建好是不能建立下一條鏈路的。

4.一個設備在接收其他設備的鏈接時,可以同時處理,不會因為一條鏈路阻塞而阻塞另外一條。

5. 每條鏈路都有一個狀態機

6.兩個設備之間鏈路建立好了之后,可以建立多個通道。

7.設備之間的通道的建立必須是順序的,一個通道建立不成功是不允許建立下一條通道的。

8.這樣當建立多個通道時,再建立新通道時,首先要判斷先前的通道是否已經建立好,只有建立好了才能建立新的。

9. Tx和Rx的設計,協議棧采用統一的一塊內存來管理分配和釋放。

10.協議是有流程的,必須按照流程來走,如果發送的request沒有response,那么會有超時處理的,可以重連或者斷開連接。

11. 協議是異步的,不存在一個函數直接建立連接并成功,只會等待連接建立好的response,來表示連接建立成功。

12. 數據的TX也是異步的。