t io 學習筆記(一)

2022-05-28 17:09:09 字數 1587 閱讀 2667

基礎介紹理解篇

序:本文也是在t-io官網學習的基礎上寫的理解學習筆記;1.什麼是t-io?

t-io是基於jvm的網路程式設計框架,和netty屬同類,所以netty能做的t-io都能做,考慮到t-io是從專案抽象出來的框架,所以t-io提供了更多的和業務相關的api,大體上t-io具有如下特點和能力.

文件集中在官網,使用者不需要到處學習無用的、錯誤的文件——進一步降低學習成本和試錯成本

官網 提供了大量的,netty 和t-io的比較,這裡不再描述;

以下是tcp協議模型: 分為7層,t-io官網上說是可以理解四層,這個知識點知道就行了,記了很多次,都沒記住;

傳輸層在往應用層傳遞資料時,並不保證每次傳遞的資料是乙個完整的應用層資料報(以http協議為例,就是並不保證應用層收到的資料剛好可以組成乙個http包),這就是我們經常提到的半包和粘包。傳輸層只負責傳遞byte資料,應用層需要自己對byte資料進行解碼,以http協議為例,就是把byte解碼成http協議格式的字串。

bytebuffer的屬性

byte buff //buff即內部用於快取的陣列。

position //當前讀取的位置。

mark //為某一讀過的位置做標記,便於某些時候回退到該位置。

capacity //初始化時候的容量。

limit //當寫資料到buffer中時,limit一般和capacity相等,當讀資料時,limit代表buffer中有效資料的長度。

我們可以把bytebuffer理解成如下幾個屬性組成的乙個資料結構

這裡不再過多描述這個了,可以baidu去查查;

半包和粘包:

1.半包:

顧名思義,就是收到了半個包,這個時候不足以組成乙個應用層的包。就像你要對你喜歡的人說「我喜歡你」,但是因為喝水咽著了,第一次只說了「我」字,第二次說了個「喜」字,第三個次了個「歡你」,那麼就發生了半包問題,對方只有等待你說完這4個字後才知道你是想說「我喜歡你」!

2.粘包

說明:http協議是一來一回的,所以正常場景是不會有粘包的,但pipeline模式下是允許一方連續發多個請求的,所以會有粘包產生

半包、粘包所以在通訊的時候,可能會出現,有時候出錯,或資料丟失的時候,要考慮到;

學習筆記一

lisp 最重要的一種執行模式之一 repl that endless cycle of reading,evaluating,and printing is why it s called the read eval print loop or repl.第乙個lisp程式 在repl模式下執行l...

學習筆記 一

什麼是seo?搜尋引擎優化 search engine optimization,簡稱seo 是一種利用搜尋引擎的搜尋規則來提高目的 在有關搜尋引擎內的排名的方式。深刻理解是 通過seo這樣一套基於搜尋引擎的營銷思路,為 提供生態式的自我營銷解決方案,讓 在行業內佔據領先地位,從而獲得品牌收益。研究...

學習筆記一

今天兩節課,也就是兩個問題的分析裝配線排程問題和矩陣鏈相乘ai,j中的 i,j 分別表示的是第 i 條線路的第 j 個步驟,每個線路每條步驟都有不同的用時,還有t i j中的 i,j 表示的就是從第 i 條線路第 j 步到達另外一條線路的第 j 1 步要用的時間,我們可以用如下 表示每一步花費的時間...