一、資料傳送過程中存在的問題
傳送中無法取消檔案傳送
大檔案傳輸容錯率較低
同一連線無法實現檔案、普通資訊優先順序
二、分片資料傳輸流程
三、分片邏輯實現
根據檔案大小計算分片、並讀取資料到分片
分片資料固定格式打包傳送
分片資料解析與分片組裝
dispatcher排程邏輯調整
四、packet規則
五、分片訊息規則
幀大小 : 最大為2的16次方-1=65535(0占用乙個位元組,所以最大標識為65535),即幀的大小最大為65535
幀型別 :表明幀是否是首幀(如果為首幀,則根據型別建立對應的幀型別。如果不是,則直接新增資料)、取消幀等
幀標誌資訊:用於儲存加密的資訊,如加密的型別
對應包唯一標示 :正數,範圍為1~255(0一般不使用),比如頭幀packet攜帶的是1,資料幀也是1,那麼第二個packet來的時候攜帶的標示為2,資料幀也為2。當接收到標示為2時,則向相同的packet塞資料。此時,可以實現併發255個的訊息傳輸。
預留空間 : 對於可能性的擴充套件
資料區 :幀載體
六、packet新規則
packet包含包頭和包體,包頭為首幀,首幀為如圖所示的資料結構。
包頭的內容會新增到幀的資料區中,告訴packet的包體是多長,型別是什麼,包體的packetinfo是什麼。
包體包含很多幀。
七、幀frame資料結構
八、首幀資料內容
上半部分是每一幀的頭部部分
從data length開始,都屬於資料部分。
資料部分,首先使用5個位元組儲存資料的長度,1個位元組儲存資料的型別,256個位元組儲存headerinfo
九、基礎的類
frame :分片的類
abssendframe : 基礎傳送幀
abssendpacetframe : 基礎傳送packet幀
sendheaderframe : 傳送頭幀
sendentityframe :傳送實體幀
absreceiveframe : 基礎接收幀
receiveheaderframe :接收頭幀
receiveentityframe :接收實體幀
cancelsendframe :取消傳送的幀
asyncpacketreader : 管理packet的接收,實現分片的邏輯
asyncpacketwriter : 管理packet的接收,實現分片的邏輯
byteprioritynode : 帶優先順序的結點,可用於構成鍊錶
十、類圖
十一、將packet轉為frame的過程
單向資訊傳輸系統設計實現
這樣的系統,必然是真正的 機器視覺 系統,不僅包括影象演算法的處理,而且需要包括裝置的架設,並且結合多種技術 ocr,具有一定挑戰意義和現實意義。這裡做簡單實現。一 基於ocr的單向資訊傳輸系統。所謂單項資料傳輸,書中提到的方法是採用ascii碼進行分析。但是我認為採用ocr識別的話,如果能夠很好地...
漫遊Kafka設計篇之訊息傳輸的事務定義(5)
之前討論了consumer和producer是怎麼工作的,現在來討論一下資料傳輸方面。資料傳輸的事務定義通常有以下三種級別 最多一次 訊息不會被重 送,最多被傳輸一次,但也有可能一次不傳輸。最少一次 訊息不會被漏傳送,最少被傳輸一次,但也有可能被重複傳輸.精確的一次 exactly once 不會漏...
設計與實現
為了概念上的完整性,系統的設計必須有乙個人,最多2個人來完成,問題來了,有的人會認為,那其他人員幹什麼?創意都被這1 2個人壟斷,剩下的實現過程就很枯燥了.實際上,經驗已經表明,沒有規矩,不成方圓 最差的建築往往是那些預算遠遠超標的專案,因為這些專案一開始的概念就不完整.外部的體系結構的強制性 設計...