最近在對wireshark抓取的資料包進行linux下的c語言分析重組,但是發現用fread,fwrite讀到的資料顯示在文本中是亂碼,我都清過快取的,不知道是不是編碼的問題,但是這方面又不懂,可有高手給我講解一下思路(如何用c重組tcp資料包,并保存相關資料比較好),小弟感激不盡。
我之前的思路就是:將五元組放到鏈表中,然后來一個比對一個,符合的就將內容寫入檔案中。但是后面發現寫的那些內容就是IP總長度減去40個位元組的ip頭和tcp頭,得到的資料部分,有些是亂碼。
uj5u.com熱心網友回復:
求高手解答啊,好迷茫uj5u.com熱心網友回復:
tcp里的要緊的就是埠號和包的序列號了,過濾埠號,然后按照序列號的順序把資料拷貝在一起,記住最后一次保存資料時的序號,如果以后收到比這個序號小的包就認為是重傳包,可以丟掉不理會。uj5u.com熱心網友回復:
大哥,你可有這方面的代碼,可能給我看看,學習一下。謝謝了。uj5u.com熱心網友回復:
這個還真沒有,自己動手寫一下吧uj5u.com熱心網友回復:
你可以用libpcap抓包,會得到一個完整的資料包,分析處理后再libnet發送出去轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/134150.html
標籤:網絡通信
上一篇:遇到ping指令掉包35%!
下一篇:網路社區營銷的技巧有哪些?
