關于協議設計的一點想法:
1. 協議的設計分成兩個主要部分:鏈路的管理以及數據的收發。
2. 鏈路管理就是鏈路的配置,建立,斷開。
3.重要的一點,兩個設備之間的鏈路建立是順序的,一條鏈路沒有建好是不能建立下一條鏈路的。
4.一個設備在接收其他設備的鏈接時,可以同時處理,不會因為一條鏈路阻塞而阻塞另外一條。
5. 每條鏈路都有一個狀態機
6.兩個設備之間鏈路建立好了之后,可以建立多個通道。
7.設備之間的通道的建立必須是順序的,一個通道建立不成功是不允許建立下一條通道的。
8.這樣當建立多個通道時,再建立新通道時,首先要判斷先前的通道是否已經建立好,只有建立好了才能建立新的。
9. Tx和Rx的設計,協議棧采用統一的一塊內存來管理分配和釋放。
10.協議是有流程的,必須按照流程來走,如果發送的request沒有response,那么會有超時處理的,可以重連或者斷開連接。
11. 協議是異步的,不存在一個函數直接建立連接并成功,只會等待連接建立好的response,來表示連接建立成功。
12. 數據的TX也是異步的。