9. 目前業務處理執行緒裡面需要包含重的 work_socket 物件,網路處理和業務混合在一
起,耦合比較強;按網路是網路,網路是資料通道;業務是業務,業務利用資料通道的
業務開發人員也就無法直接去和客戶端互動,可以有效遮蔽錯誤;建議業務處理層只是
保留乙個輕量級別的連線id結構,而不是乙個完整的 socket 物件,否則業務處理層可
以任意的傳送資料,不好控制;網路處理層提供傳送資料的藉口: send(char *buff,
struct connectid);把資料送到網路層後,網路層負責傳送。這個是走讀**的一點
建議,對以後設計做參考。現在這個模型成熟度比較高,穩定先用好。
10. 還有乙個原則,就是通訊是通訊,協議是協議。這個目前我們框架裡面有比較好的表現。
大致就說說通訊只是負責傳送資料,傳送什麼資料是由協議來控制的,資料完整不完整也是
由協議來控制。比如乙個 tcp 連線,是乙個通訊,上面傳什麼資料是由協議來控制,協議
包裡面組裝什麼資料就是什麼資料。一次收到的資料,資料是不是完整,是乙個完整包,還
是多個完整包,由協議來控制。如果有多餘的半個資料報,下次收完整後合併資料。一般
是收一批資料,把資料送到指定協議解析,解析成功,進行拆包,把拆好的乙個乙個資料
包送到業務層去處理。這樣,通訊和協議有聯絡,有區分,他們可以分開分層設計了。
11. socket 是否可以重用,乙個連線上是否可以傳送多個業務資料報;避免短連線,
特別是移動網際網路或者大併發業務,建立乙個網路連線的成本是很高(慢)的。
12. 網路資料收發是否支援非同步收發,收和發分開設計和實現,收的時候可以發,因為
網路通道是雙通道的(tcp,udp)。
13. 協議解析可配置,乙個程序支援多份協議,靈活載入。
14. 服務發現;故障遷移,節點摘除;配置中心化,更新自動化;介面呼叫耗時;業務介面錯誤統計
通過socket進行網路通訊(服務端)
宣告 此文只是為自己方便理解,做了一些具象的比喻和假設,並不符合客觀事實,謹慎閱讀!在一台主機中,兩個程序想要通訊可以通過乙個管道 檔案 乙個從管道的一端寫,乙個從另一端讀 然而管道是半雙工的 如果乙個程序既想讀又想寫 那就建立兩個管道。利用socket進行網路通訊的過程與之類似 將對方主機抽象成乙...
網路通訊 協議設計
2 tlv 2.5 解析步驟 3 上下位機常用自定義協議 4 socket常用自定義協議 參考應用層的資料解析,目前博主涉及工業領域的上下位機串列埠通訊和客戶端服務端socket通訊,都是資料量不大的場景。在串列埠傳輸不穩定時,需要加上crc進行校驗。在socket通訊中,目前通訊丟包的可能性很小,...
網路通訊的幾個名詞術語解釋
閘道器 gateway 又稱網間聯結器 協議轉換器。預設閘道器在網路層上以實現網路互連,是最複雜的網路互連裝置,僅用於兩個高層協議不同的網路互連。閘道器的結構也和路由器類似,不同的是互連層。閘道器既可以用於廣域網互連,也可以用於區域網互連 閘道器實質上是乙個網路通向其他網路的ip位址。比如有網路a和...