簡體   English   中英

TCP數據包段python

[英]TCP packet segment python

我正在處理TCP數據包。 該應用程序充當嗅探器並建立SIP數據包。 一些TCP SIP數據包是零散的,因此我需要重新組裝它們。

我要做的是,最初,我使用以下命令處理第一個TCP連接:

packet = s.recvfrom(sipLocatorConfig.NETWORK_MAX_SIZE)

之后,我獲取了數據,然后將其分割,剩下的只是使用.recv

socket.recv(sipLocatorConfig.NETWORK_TCP_MAX_SIZE)

當我獲得第二個片段時,使用.recv ,我在一開始會出現亂碼數據,我認為這是ETH,IP,TCP信息:

M*?
M*?@{
QyE

如何刪除此ETH,IP和TCP標頭信息並僅從Packet中提取數據? 謝謝

您可以將數據包解析為:

  • 前14個字節是以太網頭
  • 接下來的20個字節可能是ip標頭
  • 同樣,從ip標頭中,我們可以提取正在使用的協議,最后看到協議參考以解析其中的數據

例如。 TCP連接數據包如下: eth_header+IP_header+TCP_Header+payload(data)每個標頭都有其特定長度,並且從標頭中提取信息將需要您在python中使用struct模塊(請參見struct.unpack(“”,“”) )。 提取標題信息還需要了解標題的結構。 最終,您可以計算出有效載荷位置並最終將其提取出來。

具體來說,請參閱此鏈接以獲取更多信息。 希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM