一次端口監聽正常,tcpdump無法監聽到指定端口報文問題分析

tcpdump命令:

sudo tcpdump -i ens2f0 port 6471 -XXnnvvv

下面是各個部分的詳細解釋:

1.tcpdump: 這是用于捕獲和分析網絡數據包的命令行工具。
2.-i ens2f0: 指定監聽的網絡接口。ens2f0 表示本地網卡),即計算機該指定網絡接口捕獲的網絡流量。
3.port 6471: 過濾條件,指定只捕獲涉及端口 6471 的數據包。端口 6471 可能是某個應用程序的通信端口。
4.-XX: 表示顯示每個數據包的完整內容,包括數據包的十六進制和 ASCII 形式的輸出。相當于顯示包的詳細數據,以便深入分析其內容。
5.-nn: 防止 tcpdump 將 IP 地址和端口號轉換為域名和服務名稱。直接顯示原始的 IP 地址和端口號。
6.-vvv: 提高輸出的詳細程度,-v 表示 verbose(詳細),-vv 和 -vvv 分別增加詳細輸出的級別。-vvv 會顯示更多的協議詳細信息。

上述tcpdump命令指定了網卡和port過濾報文,但是實測發現無論如何也監聽不到6471端口的報文。

經過排查把命令更換為下述命令,就可以監聽到報文

sudo tcpdump -i lo port 6471 -XXnnv??

分析,同一臺機器上兩個進程之間的通信,監聽指定端口報文的時候,指定外部網絡接口如ens2f0或者不指定網絡接口,都無法監聽到通信報文,有且只有指定網口為本地回環網絡接口時,才能監聽到本地通信報文即:-i lo

ifconfig如下:

lo: flags=73<UP,LOOPBACK,RUNNING> ?mtu 65536
? ? ? ? inet 127.0.0.1 ?netmask 255.0.0.0
? ? ? ? inet6 ::1 ?prefixlen 128 ?scopeid 0x10<host>
? ? ? ? loop ?txqueuelen 1000 ?(Local Loopback)
? ? ? ? RX packets 11391857892 ?bytes 88144245429787 (80.1 TiB)
? ? ? ? RX errors 0 ?dropped 0 ?overruns 0 ?frame 0
? ? ? ? TX packets 11391857892 ?bytes 88144245429787 (80.1 TiB)
? ? ? ? TX errors 0 ?dropped 0 overruns 0 ?carrier 0 ?collisions 0

執行?sudo tcpdump -i lo port 6471 -XXnnv? 后,讓我們詳細解析這個tcpdump -XX輸出的16進制報文的各部分含義。

報文基本信息

14:37:33.881148 IP (tos 0x0, ttl 64, id 23488, offset 0, flags [DF], proto TCP (6), length 362)
10.229.120.5.28202 > 10.229.120.5.6471: Flags [P.], cksum 0x0731 (incorrect -> 0xdf5d), seq 9714:10024, ack 360, win 1539, options [nop,nop,TS val 3542503468 ecr 3542503468], length 310
  • 時間戳14:37:33.881148,表示報文捕獲的時間。

  • IP頭部

    • tos 0x0:服務類型字段,值為0,表示常規服務。

    • ttl 64:生存時間,值為64,表示報文最多可以經過64個路由器。

    • id 23488:標識字段,用于唯一標識主機發送的每一分組。

    • offset 0:片偏移字段,值為0,表示該報文不分片。

    • flags [DF]:不分片標志位,表示該報文不允許分片。

    • proto TCP (6):協議字段,值為6,表示上層協議為TCP。

    • length 362:整個IP報文的長度為362字節。

  • TCP頭部

    • Flags [P.]:標志位,P表示推送(PSH),.表示確認(ACK)。

    • cksum 0x0731 (incorrect -> 0xdf5d):校驗和,計算結果為0x0731,但實際應為0xdf5d,表示校驗和錯誤。

    • seq 9714:10024:序列號范圍,從9714到10024,表示該報文段包含310字節的數據。

    • ack 360:確認號,表示期望收到的下一個報文段的序列號為360。

    • win 1539:窗口大小,值為1539,表示接收方的接收窗口大小。

    • options [nop,nop,TS val 3542503468 ecr 3542503468]:選項字段,包含兩個NOP(無操作)選項和一個時間戳選項,時間戳值為3542503468,時間戳回顯值為3542503468。

    • length 310:TCP數據部分的長度為310字節。

16進制報文詳細解釋

0x0000:  0000 0000 0000 0000 0000 0000 0800 4500  ..............E.
0x0010:  016a 5bc0 4000 4006 d7f9 0ae5 7805 0ae5  .j[.@.@.....x...
0x0020:  7805 6e2a 1947 5ebb e7b0 c247 9f08 8018  x.n*.G^....G....
0x0030:  0603 0731 0000 0101 080a d326 502c d326  ...1.......&P,.&
0x0040:  502c 0100 414a 011b 0000 0100 0000 3601  P,..AJ........6.
0x0050:  0000 0000 0ae5 7805 0819 0000 0000 0000  ......x.........
0x0060:  0000 0000 0000 0000 0000 0000 7b22 666d  ............{"fm
0x0070:  5479 7065 223a 312c 2272 6573 6f75 7263  Type":1,"resourc
0x0080:  6554 7970 6522 3a22 434c 5553 5445 524d  eType":"CLUSTERM
0x0090:  414e 4147 4552 222c 2273 7973 5479 7065  ANAGER","sysType
0x00a0:  223a 3232 3735 302c 2263 6f64 6522 3a32  ":22750,"code":2
0x00b0:  3032 3332 2c22 7265 6173 6f6e 436f 6465  0232,"reasonCode
0x00c0:  223a 3230 3233 3230 322c 2264 6573 6322  ":2023202,"desc"
0x00d0:  3a22 222c 2263 7265 6174 6554 696d 6522  :"","createTime"
0x00e0:  3a22 6e75 6c6c 222c 2263 6c65 6172 5469  :"null","clearTi
0x00f0:  6d65 223a 2232 3032 352d 3031 2d32 3620  me":"2025-01-26.
0x0100:  3134 3a33 373a 3333 222c 2272 6563 6f76  14:37:33","recov
0x0110:  6572 7974 7970 6522 3a34 2c22 6970 223a  erytype":4,"ip":
0x0120:  2231 302e 3232 392e 3132 302e 3522 2c22  "10.229.120.5",
0x0130:  706f 7274 223a 3630 3137 2c22 6473 7469  "port":6017,"dsti
0x0140:  6e66 6f22 3a22 312e 312e 312e 313a 3130  nfo":"1.1.1.1:10
0x0150:  3234 3a31 222c 2272 6573 6f75 7263 6549  24:1","resourceI
0x0160:  4422 3a22 3130 2e32 3239 2e31 3230 2e35  D":"10.229.120.5
0x0170:  3a36 3031 3722 7d00                        :6017"}
0x0000 - 0x000D:以太網頭部(如果存在)
  • 0000 0000 0000 0000 0000 0000:目的MAC地址(全0,表示可能是一個原始IP報文,沒有以太網封裝)。

  • 0800:以太網類型字段,值為0800,表示這是一個IP報文。

0x000E?- 0x0021:IP頭部
  • 4500:IP版本和首部長度。4表示IP版本為IPv4,5表示IP頭部長度為5個32位字節,即20字節。

  • 016a:總長度,十六進制016a轉換為十進制為362,表示整個IP報文長度為362字節。

  • 5bc0:標識字段,值為5bc0,用于唯一標識主機發送的每一分組。

  • 4000:標志和片偏移字段。4表示不分片(DF位為1),00表示片偏移為0,即該IP報文不分片。

  • 4006:生存時間(TTL)和協議字段。40表示TTL為64,06表示協議為TCP。

  • d7f9:頭部校驗和,用于檢測IP頭部在傳輸過程中是否出現錯誤。

  • 0ae5 7805:源IP地址,轉換為點分十進制為10.229.120.5。

  • 0ae5 7805:目的IP地址,也是10.229.120.5。

0x0022?- 0x002F:TCP頭部
  • 6e2a:源端口號,十六進制6e2a轉換為十進制為28202。

  • 1947:目的端口號,十六進制1947轉換為十進制為6471。

  • 5ebb e7b0:序列號,值為5ebb e7b0。

  • c247:確認號,值為c247。

  • 9f08:數據偏移(高4位)和保留位(中間6位)以及緊急指針字段(低4位)。數據偏移值為9(十進制為9),表示TCP頭部長度為9個32位字節,即36字節(包括20字節基本頭部和16字節選項部分)。

  • 8018:標志位和窗口大小字段。80表示PSH(推送)和ACK(確認)標志位為1,18表示窗口大小為18(需要乘以2的10次方,即18 * 1024 = 18432,但這里應該是16位的窗口大小字段,直接轉換為十進制為1539,表示窗口大小為1539)。

0x0030 - 0x0041:TCP頭部(繼續)
  • 0603:檢驗和,用于檢測TCP報文段在傳輸過程中是否出現錯誤。

  • 0731:緊急指針字段,值為0731,但在這個報文段中緊急指針可能沒有實際意義,因為緊急指針字段只有在緊急標志位為1時才有效。

  • 0000:填充字段,用于填充TCP頭部,使其長度為整數個32位字節。

  • 0101:選項字段,表示TCP選項的類型和長度。01表示時間戳選項,01表示該選項長度為10字節。

  • 080a:時間戳選項的類型和子類型,08表示時間戳,0a表示時間戳回顯。

  • d326 502c:時間戳值,用于TCP的擁塞控制和往返時間測量等。

  • d326 502c:時間戳回顯值,用于確認對方發送的時間戳。

0x0042?- 0x0170:TCP數據部分
  • 0100:TCP數據部分的開始,這部分數據的具體含義需要根據上層應用協議來解釋。例如,如果這是一個HTTP協議的數據,那么這些字節可能是HTTP請求或響應的一部分內容。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67710.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67710.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67710.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

“新月智能武器系統”CIWS,開啟智能武器的新紀元

新月人物傳記&#xff1a;人物傳記之新月篇-CSDN博客 相關文章鏈接&#xff1a;星際戰爭模擬系統&#xff1a;新月的編程之道-CSDN博客 新月智能護甲系統CMIA--未來戰場的守護者-CSDN博客 “新月之智”智能戰術頭盔系統&#xff08;CITHS&#xff09;-CSDN博客 目錄 智能武…

實驗六 項目二 簡易信號發生器的設計與實現 (HEU)

聲明&#xff1a;代碼部分使用了AI工具 實驗六 綜合考核 Quartus 18.0 FPGA 5CSXFC6D6F31C6N 1. 實驗項目 要求利用硬件描述語言Verilog&#xff08;或VHDL&#xff09;、圖形描述方式、IP核&#xff0c;結合數字系統設計方法&#xff0c;在Quartus開發環境下&#xff…

SCRM系統如何提升客戶管理及業務協同的效率與價值

內容概要 在當今商業環境中&#xff0c;SCRM系統&#xff08;社交客戶關系管理系統&#xff09;正逐漸受到越來越多企業的關注和重視。隨著科技的發展&#xff0c;傳統的客戶管理方式已經無法滿足快速變化的市場需求&#xff0c;SCRM系統通過整合客戶數據和社交網絡信息&#…

[免費]微信小程序智能商城系統(uniapp+Springboot后端+vue管理端)【論文+源碼+SQL腳本】

大家好&#xff0c;我是java1234_小鋒老師&#xff0c;看到一個不錯的微信小程序智能商城系統(uniappSpringboot后端vue管理端)&#xff0c;分享下哈。 項目視頻演示 【免費】微信小程序智能商城系統(uniappSpringboot后端vue管理端) Java畢業設計_嗶哩嗶哩_bilibili 項目介紹…

PID算法的數學實現和參數確定方法

目錄 概述 1 算法描述 1.1 PID算法模型 1.2 PID離散化的圖形描述 1.3 PID算法的特點 2 離散化的PID算法 2.1 位置式PID算法 2.2 增量式PID算法 2.3 位置式PID與增量式PID比較 3 控制器參數整定 3.1 PID參數確定方法 3.1.1 湊試法 3.1.2 臨界比例法 3.1.3 經驗法…

《DeepSeek R1:大模型最簡安裝秘籍》

DeepSeek R1&#xff1a;AI 大模型界的新起之秀 在人工智能的璀璨星空中&#xff0c;大模型如繁星般閃耀&#xff0c;而 DeepSeek R1 無疑是其中一顆冉冉升起的新星&#xff0c;自問世以來便吸引了全球的目光&#xff0c;在人工智能領域占據了重要的一席之地。 從性能表現上看…

【論文閱讀】RAG-Reward: Optimizing RAG with Reward Modeling and RLHF

研究背景 研究問題&#xff1a;這篇文章要解決的問題是如何優化檢索增強生成&#xff08;RAG&#xff09;系統&#xff0c;特別是通過獎勵建模和人類反饋強化學習&#xff08;RLHF&#xff09;來提高大型語言模型&#xff08;LLMs&#xff09;在RAG任務中的效果。研究難點&…

【數據結構】(3)包裝類和泛型

一、包裝類 1、什么是包裝類 將基礎類型包裝成的類就是包裝類。由于基礎類型不是繼承 Object 類的類&#xff0c;所以在泛型不能直接支持基礎類型&#xff0c;為了解決這個問題&#xff0c;就需要把基礎類型轉換為對應的包裝類。 基礎類型對應的包裝類 基礎類型包裝類byteByte…

DBUtils中QueryRunner(空參,傳數據源)構造方法的區別及應用場景

關于學習Spring框架時重構DAO層時&#xff0c;遇到的QueryRunner構造方法的問題&#xff0c;回憶MySQL中DBUtils部分 1. 空參構造方法 new QueryRunner() 特點&#xff1a; 不綁定數據源&#xff1a;QueryRunner 實例內部沒有 DataSource&#xff0c;因此無法自動獲取連接。 …

C++11線程

C11提供了線程庫&#xff0c;下面我們來看一下如何使用。 線程的創建 頭文件 要創建一個線程需要包一個線程頭文件:#include <thread> 我們先來看看thread支持的構造方式。 支持默認構造&#xff0c;直接使用thread創建一個空的線程對象。 也支持帶參的構造&#x…

梯度提升用于高效的分類與回歸

人工智能例子匯總:AI常見的算法和例子-CSDN博客 使用 決策樹(Decision Tree) 實現 梯度提升(Gradient Boosting) 主要是模擬 GBDT(Gradient Boosting Decision Trees) 的原理,即: 第一棵樹擬合原始數據計算殘差(負梯度方向)用新的樹去擬合殘差累加所有樹的預測值重…

Golang 并發機制-3:通道(channels)機制詳解

并發編程是一種創建性能優化且響應迅速的軟件的強大方法。Golang&#xff08;也稱為 Go&#xff09;通過通道&#xff08;channels&#xff09;這一特性&#xff0c;能夠可靠且優雅地實現并發通信。本文將揭示通道的概念&#xff0c;解釋其在并發編程中的作用&#xff0c;并提供…

Unity開發游戲使用XLua的基礎

Unity使用Xlua的常用編碼方式&#xff0c;做一下記錄 1、C#調用lua 1、Lua解析器 private LuaEnv env new LuaEnv();//保持它的唯一性void Start(){env.DoString("print(你好lua)");//env.DoString("require(Main)"); 默認在resources文件夾下面//幫助…

筆記:使用ST-LINK燒錄STM32程序怎么樣最方便?

一般板子在插件上&#xff0c; 8腳 3.3V;9腳 CLK;10腳 DIO;4腳GND ST_Link 19腳 3.3V;9腳 CLK;7腳 DIO;20腳 GND 燒錄軟件&#xff1a;ST-LINK Utility&#xff0c;Keil_5; ST_Link 接口針腳定義&#xff1a; 按定義連接ST_Link與電路板&#xff1b; 打開STM32 ST-LINK Uti…

網絡測試工具

工具介紹&#xff1a; 這是一個功能完整的網絡測速工具&#xff0c;可以測試網絡的下載速度、上傳速度和延遲。 功能特點&#xff1a; 1. 速度測試 - 下載速度測試 - 上傳速度測試 - Ping延遲測試 - 自動選擇最佳服務器 2. 實時顯示 - 進度條顯示測試進度 - 實時顯示測試狀…

java每日精進1.31(SpringSecurity)

在所有的開發的系統中&#xff0c;都必須做認證(authentication)和授權(authorization)&#xff0c;以保證系統的安全性。 一、基礎使用 1.依賴 <dependencies><!-- 實現對 Spring MVC 的自動化配置 --><dependency><groupId>org.springframework.bo…

簡單的SQL語句的快速復習

語法的執行順序 select 4 字段列表 from 1 表名列表 where 2 條件列表 group by 3 分組前過濾 having 分組后過濾 order by 5 排序字段列表 limit 6 分頁參數 聚合函數 count 統計數量 max 最大值 min 最小值 avg 平均 sum 總和 分組查詢使…

《程序人生》工作2年感悟

一些雜七雜八的感悟&#xff1a; 1.把事做好比什么都重要&#xff0c; 先樹立量良好的形象&#xff0c;再橫向發展。 2.職場就是人情世故&#xff0c;但也不要被人情世故綁架。 3.要常懷感恩的心&#xff0c;要記住幫助過你的人&#xff0c;愿意和你分享的人&#xff0c;有能力…

17.2 圖形繪制8

版權聲明&#xff1a;本文為博主原創文章&#xff0c;轉載請在顯著位置標明本文出處以及作者網名&#xff0c;未經作者允許不得用于商業目的。 17.2.10 重繪 先看以下例子&#xff1a; 【例 17.28】【項目&#xff1a;code17-028】繪制填充矩形。 private void button1_Clic…

自定義數據集 使用pytorch框架實現邏輯回歸并保存模型,然后保存模型后再加載模型進行預測,對預測結果計算精確度和召回率及F1分數

import numpy as np import torch import torch.nn as nn import torch.optim as optim from sklearn.metrics import precision_score, recall_score, f1_score# 數據準備 class1_points np.array([[1.9, 1.2],[1.5, 2.1],[1.9, 0.5],[1.5, 0.9],[0.9, 1.2],[1.1, 1.7],[1.4,…