TCP頭部
在用libnids處理資料的過程中,產生了利用頭部的需求,但是呢,libnids並沒有帶上來。
需要自己來處理,最開始的時候不想動底層的協議棧,就註冊了一個ip回撥函式,通過seq排序方式來處理亂序。但今天又發生了一個比較尷尬的事情,就是重穿的沒辦法處理了。
現在只能去動協議棧了,這樣也好,直接每個包都找到自己的頭部,比較對應。
除錯過程中呢,也發現這個閱讀原始碼的過程,真的是很需要功底。最後直接用gdb的bt看到了所有的呼叫過程,這個比我在那裡弄好久要效率搞得多。
2018/06/20
而且發現這個坑是真的大,協議棧裡面的東西很複雜,不是說你隨便改個東西就完了。
不過倒是對這一塊tcp重組的部分,有了些瞭解。
我本質上的初衷,就是,我想讓這個頭部就像資料一樣,跟著上去。這就需要涉及到把他所有的那些類似seq的值給改了。
2018/06/21
他的邏輯是這樣的,如果這個包就是我要的,就是順序沒有錯,那麼我直接就進到了外掛裡面,如果是亂序的,那麼我就快取這個包。
我處理的過程是,一開始就把帶有tcp頭部的資料給傳輸上去,然後如果順序沒有錯誤,那麼直接就把這個頭部的資訊寫到這個a_tcp裡面。
如果是快取了,就快取了所有的包,等到需要我的時候,就把這個包的頭部也給安排進去。
昨天出了一個bug,是因為在這個步驟之間他還用了這個長度做判斷。所有導致錯誤了。
今天已經修改。
現在的版本應該是沒有錯誤的。
但是我感覺,如果是修改成了多執行緒之後,一旦資料沒有分割均衡好,可能會錯誤。反正現在是對的,已經滿足需求了。
相關文章
- TCP 請求頭TCP
- OpenGL ES 實現頭部形變和頭部晃動效果
- HTML————8、HTML 頭部HTML
- useHeadSafe:安全生成HTML頭部元素HTML
- laravel-admin 表格固定頭部Laravel
- iframe隱藏頭部的toolbar
- IP報文頭部圖解圖解
- HTML-head頭部淺析HTML
- Android帶有粘性頭部的ScrollViewAndroidView
- uniapp動態賦值頭部<title>APP賦值
- easyexcel匯出頭部樣式設定,多個tab匯出,頭部自定義RGB顏色Excel
- 檢視BAM檔案頭部資訊
- 頭部姿態估計 - OpenCV/Dlib/CeresOpenCV
- HTTP與快取相關的頭部HTTP快取
- IP資料包頭部資訊分析
- 土巴兔成“頭部的頭部”,網際網路裝潢跨入超級獨角獸時代
- vue3中如何實現通用頭部?Vue
- 兩家頭部消金公司業績披露
- TopThink頁面頭部HTML的loginInfo內部多一個 li 標籤HTML
- 搭建一個攝像頭應用程式 應用程式內部攝像頭
- 產品頭部化、寡頭化,營銷告別純買量時代
- 一場頭部SLG之戰又要拉開了
- 一分鐘看懂頭部 shell #!/usr/bin 命令
- Flutter仿頭條頂部tab切換實現Flutter
- 【HTML】HTML自定義網頁頭部小圖示HTML網頁
- laravel-admin 頭部query反覆查詢需要cloneLaravel
- 一個簡單的爬蟲 頭部構造爬蟲
- TopThink頁面頭部存在多餘 li 標籤
- Android RecyclerView實現頭部懸浮吸頂效果AndroidView
- 移動端的頭部標籤和meta,[html5]移動端的頭部標籤和meta屬性詳解HTML
- 頭部導航欄也是動態的,板塊裡面的內容根據頭部導航欄動態展現資料
- 「Premiere中文新手教程」綜藝頭部放大特效小技巧REM特效
- 失去頭部主播後,誰來“瓜分”薇婭?MJD
- 製作遊戲人物頭部的21個小技巧遊戲
- Servlet各版本的web.xml頭部資訊-模板ServletWebXML
- 《轉》Pycharm建立py檔案時自定義頭部模板PyCharm
- Vue-SSR: head Mixin 實現頭部資訊管理Vue
- TCPTCP