《計算機網絡》實驗報告二 IP協議分析

目? 錄

1、實驗目的

2、實驗環境

3、實驗內容

3.1 tcpdump 基本用法

3.2 wireshark基本用法

3.3 利用tcpdump抓包,wireshark分析包

4、實驗結果與分析

4.1 tcpdump命令的基本用法

4.2 wireshark的基本用法

4.3 利用tcpdump抓包,wireshark分析包

5、實驗小結

5.1 問題與解決辦法:

5.2 心得體會:


1、實驗目的

? ? ? ? 1、了解Linux命令終端和Windows命令行使用

? ? ? ? 2、了解IP報文格式,熟悉IP報文各個字段含義、長度

? ? ? ? 3、掌握基于tcpdump和wireshark軟件進行數據包抓取和分析技術


2、實驗環境

? ? ? ? 1、硬件要求:阿里云云主機ECS 一臺、筆記本電腦一臺

? ? ? ? 2、軟件要求:Linux/ Windows 操作系統


3、實驗內容

3.1 tcpdump 基本用法

????????1. tcpdump是一個用于截取網絡分組,并輸出分組內容的工具。憑借強大的功能和靈活的截取策略,使其成為類UNIX系統下用于網絡分析和問題排查的首選工具。

????????2. tcpdump 支持針對網絡層、協議、主機、網絡或端口的過濾,并提供and、or、not等邏輯語句來幫助你去掉無用的信息。

????????3. 參考文獻:

https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

https://www.jianshu.com/p/d9162722f189

3.2 wireshark基本用法

????????1. Wireshark(前稱Ethereal)是一個網絡封包分析軟件。網絡封包分析軟件的功能是擷取網絡封包,并盡可能顯示出最為詳細的網絡封包資料。Wireshark使用WinPCAP作為接口,直接與網卡進行數據報文交換。

????????2. 網絡管理員使用Wireshark來檢測網絡問題,網絡安全工程師使用Wireshark來檢查資訊安全相關問題,開發者使用Wireshark來為新的通訊協定除錯,普通使用者使用Wireshark來學習網絡協定的相關知識。

????????3. 參考文獻:

https://www.wireshark.org/#download

https://pc.qq.com/search.html#!keyword=wireshark

https://www.cnblogs.com/csnd/p/11807736.html

https://pc.qq.com/search.html#!keyword=xshell

3.3 利用tcpdump抓包,wireshark分析包

????????1. 在阿里云主機運行命令traceroute www.xju.edu.cn ,并利用tcpdump抓包。下載文件到本地機器利用wireshark軟件進行分析。

????????2. 提示:

????????必須首先執行抓包命令,然后再執行路徑追蹤命令,抓包命令 tcpdump -i eth0 -w test.cap

????????可使用scp命令或者利用xshell和xftp下載數據包到本地機器

????????1)利用tcpdump抓包,通過wireshark分析捕獲的數據包,分析IP的報文結構,將IP協議樹中各個名字字段,字段長度,字段信息填入下表。

????????2) 利用wireshark分析并解讀相關traceroute命令執行結果。

????????提示:在wireshark 過濾器工具欄設置僅顯示ICMP


4、實驗結果與分析

4.1 tcpdump命令的基本用法

????????1. 直接啟動tcpdump監視第一個網絡接口上所有流過的數據包。

tcpdump

????????2. 監視指定網絡接口eth0的數據包,使用-i指定tcpdump需要監聽的接口,默認會抓取第一個網絡接口。

tcpdump -i eth0

????????3. 截獲所有172.16.2.5的主機收到和發出的所有數據包。

tcpdump host 172.16.2.5

????????4. 使用參數src截獲主機172.16.2.5發送的所有數據。

tcpdump -i eth0 src host 172.16.2.5

????????5. 使用參數dst監視所有送到主機172.16.2.5的數據包。

tcpdump -i eth0 dst host 172.16.2.5

????????6. 使用參數net打印網絡地址為172.16.2.5的所有通信數據包。

tcpdump net 172.16.2.5

????????7. 打印所有源地址或目標地址是本地主機的IP數據包。

tcpdump ip

????????8. 打印TCP會話中的開始和結束數據包,并且數據包的源地址或目的地址不是本地網絡上的172.16.2.5主機。

tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net 172.16.2.5'

????????9. 監視指定網絡接口eth0與172.16.2.5網段通信的數據包,參數-c可以指定抓取包的數量。

tcpdump -i eth0 -c 20 net 172.16.2.5

????????10. 只抓取接口為eth0的包,并且只抓取20個數據包,將地址以數字方式顯示。

tcpdump -c 20 -nn -i eth0

????????11. 抓取目標端口為22的數據包,只抓取20個數據包,將地址以數字方式顯示。

tcpdump -c 20 -nn -i eth0 tcp dst port 22

????????12. 解析目標端口為22的數據包,快速打印輸出詳細的包的頭部數據,將地址以數字方式顯示。

tcpdump -c 5 -q -XX -vvv -nn -i eth0 tcp dst port 22

4.2 wireshark的基本用法

????????1. Wireshark使用WinPcap作為接口,直接與網卡進行數據報文交換,打開Wireshark后選擇要打開的數據包或者要抓取的網卡。

????????2. 雙擊選擇WLAN網卡之后,開始進行抓包,停止抓包后保存抓取到的數據包。

????????3. 使用Wireshark對eth.pcap中爬取的數據包中地址為172.16.2.91的過濾地址。

ip.addr == 172.16.2.91

????????4. 使用Wireshark對eth.pcap中爬取的數據包中地址為172.16.2.91的過濾源地址。

ip.src == 172.16.2.91

????????5. 使用Wireshark對eth.pcap中爬取的數據包中地址為172.16.2.91的過濾目的地址。

ip.dst == 172.16.2.91

????????6. 使用Wireshark對eth.pcap中爬取的數據包中協議名為HTTP的數據包進行過濾。

http

????????7. 使用Wireshark對eth.pcap中爬取的數據包中協議名為TCP的數據包進行過濾。

tcp

????????8. 使用Wireshark對eth.pcap中爬取的數據包中端口號為80的數據包進行過濾。

tcp.port == 80

????????9. 使用Wireshark對eth.pcap中爬取的數據包中http協議的請求方式為POST的數據包進行過濾。

http.request.method == "POST"

10. 使用Wireshark對eth.pcap中爬取的數據包中地址為172.16.2.91并且http協議的請求方式為POST的數據包進行過濾。

ip.src == 172.16.2.91 and http.request.method == "POST"

4.3 利用tcpdump抓包,wireshark分析包

????????1. 使用traceroute命令測試數據包到達www.xju.edu.cn所經過的路徑。

traceroute www.xju.edu.cn

????????2. 使用tcpdump命令對網關eth0進行抓包操作,并將數據包信息保存在test.cap中。

tcpdump -i eth0 -w test.cap

????????3. 通過Wireshark分析捕獲的數據包,分析IP的報文結構,將IP協議樹中各個字段的名字、長度等信息填入下表。

????????4. 使用Wireshark對eth.pcap中爬取的數據包中相關treceroute命令執行結果的數據包進行過濾,即對協議名為ICMP的數據包進行過濾。

icmp


5、實驗小結

5.1 問題與解決辦法:

????????1. 問題一:使用traceroute命令時出現如下提示此命令未找到:

????????解決方法:由于系統中沒有traceroute命令所導致,需要在使用此命令前通過 yum install traceroute 命令進行安裝。

????????2. 問題二:使用tcpdump進行數據包的抓取時出現如下提示此命令未找到:

解決方法:由于命令輸入錯誤導致,數據包的抓取命令為tcpdump,而不是tcpdnmp,將對應命令進行更改后錯誤消失。

????????3. 問題三:對指定網絡接口的數據包進行抓取時出現如下提示語法錯誤:

解決方法:由于命令鍵入不完整所導致,指定網絡接口所需要的參數是-i,在eth0前方添加-i后錯誤消失。

????????4. 問題四:截獲所有172.16.2.5的主機收到和發出的數據包時出現如下提示語法錯誤:

解決方法:由于命令鍵入不完整所導致,指定主機所需要的參數是host,在172.16.2.5前方添加host后錯誤消失。

????????5. 問題五:使用tcpdump抓取所有的數據包時一直在抓取,不能夠自動停止抓包:

解決方法:使用Ctrl+c就可以終止運行的命令,進而就可以停止抓包。

????????6. 問題六:使用Wireshark對抓取的數據包進行過濾時出現如下提示輸入框出現紅色:

解決方法:由于過濾命令輸入錯誤,在過濾地址時使用ip.addr,將輸入內容中的id.addr改為ip.addr后紅色報錯消失。

????????7. 問題七:使用Wireshark對抓取的數據包進行多個條件同時成立過濾時出現如下提示輸入框出現紅色:

解決方法:由于多個條件同時成立時需要使用and進行連接,但是輸入命令時并沒有使用and進行連接所導致,在輸入內容中加入and后紅色報錯消失。

5.2 心得體會:

????????1、tcpdump 對截獲的數據并沒有進行徹底解碼,數據包內的大部分內容是使用十六進制的形式直接打印輸出的。因此先使用帶-w參數的tcpdump 截獲數據并保存到文件中,然后再使用Wireshark軟件進行解碼分析。

????????2、tcpdump是基于Unix系統的命令行式的數據包嗅探工具。如果要使用tcpdump抓取其他主機MAC地址的數據包,必須開啟網卡混雜模式,所謂混雜模式,用最簡單的語言就是讓網卡抓取任何經過它的數據包,不管這個數據包是不是發給它或者是它發出的。

????????3、使用SSH登錄到遠程Linux,然后直接運行tcpdump,會抓到大量的數據包,而且速度非常快,這是因為tcpdump抓到的包發送給遠程的終端顯示,同時又抓了這個包,再顯示,再抓取,造成了循環抓取。

????????4、38039是客戶端的TCP端口,http的默認端口是80,如果tcpdump在/etc/services中發現端口對應的服務名稱,那么會自動的轉為名字。

????????5、默認情況下,tcpdump抓包結果顯示在屏幕上,這不利于進一步的數據分析,因此我們需要將抓包結果存放在文件中,可是使用-w命令將結果保存在文件中。

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

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

相關文章

k8s學習記錄(三):Pod基礎-Node選擇

一、前言 在上一篇文章中我們學習了Pod的一些基本的知識,今天我們將繼續學習Pod。 二、K8S如何選擇節點來運行Pod 我們知道在一個K8S集群中,會有多個工作節點(Worker Node),那么k8s會選擇那個node呢?接下…

3天功能開發→3小時:通義靈碼2.0+DEEPSEEK實測報告,單元測試生成準確率92%的秘密

活動鏈接:https://developer.aliyun.com/topic/lingma-aideveloper?spma2c6h.29979852.J_9593490300.2.49b8110eeymlF8 前言 隨著人工智能技術的迅猛發展,AI 賦能編程成為了必然趨勢。通義靈碼應運而生,它是阿里巴巴集團在人工智能與編程領…

【小沐學GIS】基于Rust繪制三維數字地球Earth(Rust、OpenGL、GIS)

🍺三維數字地球GIS系列相關文章如下🍺:1【小沐學GIS】基于C繪制三維數字地球Earth(OpenGL、glfw、glut)第一期2【小沐學GIS】基于C繪制三維數字地球Earth(OpenGL、glfw、glut)第二期3【小沐學GI…

ARM 學習筆記(三)

參考文獻:《ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition》《ARM Cortex-A (ARMv7-A) Series Programmer’s Guide》1、內存類型 ARMv7-A 處理器中,將 Memory 定義為幾種類型(Memory Type): Strong…

Flask 框架(一):核心特性與基礎配置

目錄 一、為什么選擇 Flask? 二、Flask 核心概念與初始化 2.1 程序實例初始化 2.2 運行配置:app.run () 參數詳解 2.3 應用配置:三種參數設置方式 1. 字典直接配置(簡單臨時場景) 2. 配置文件導入(生…

社交圈子系統開源社交源碼 / 小程序+H5+APP 多端互通的底層技術分析

伴隨社交產品向“圈子化”、“內容驅動”發展方向演進,打造一套支持小程序、H5、APP 互通的社交圈子系統,已經成為構建垂直社區的基礎架構能力要求。本文圍繞一套典型的多端社交興趣平臺(即友貓社區平臺)的設計實踐,對…

gitlab-runner配置問題記錄

引言 筆者曾通過2種方式部署過 gitlab-runner,在 gitlab 中使用這個 runner 拉起 ci job 的過程中或多或少遇到些問題,主要都是 job 中無法訪問宿主機的docker 等組件。本篇文檔主要記錄 gitlab-runner 安裝及相關配置。 二進制部署 gitlab-runner 部署 …

每日面試題10:令牌桶

令牌桶算法:優雅的流量控制藝術在現代分布式系統中,流量控制如同交通信號燈般重要——它既不能讓請求"堵死"系統,也不能放任流量"橫沖直撞"。令牌桶算法(Token Bucket Algorithm)正是這樣一種精妙…

【java】消息推送

文章目錄Java網頁消息推送解決方案 短輪詢、長輪詢、SSE、Websocket

STM32 | 有源蜂鳴器響,無源蜂鳴器播音樂

目錄 Overview 有源蜂鳴器 無源蜂鳴器 有源蜂鳴器控制 GPIO配置 控制程序 無源蜂鳴器控制 反轉GPIO控制 GPIO配置 控制接口 PWM控制 GPIO配置 控制函數 改變頻率播音樂 原理 1. 頻率決定音調 2. 占空比決定音量 GPIO初始化 結構體定義和音符頻率表 播放接口 …

第十四章 gin基礎

文章目錄Gin快速搭建一個web服務Gin數據交互JSON串內容規范Gin使用結構體返回數據給前端Gin配置POST類型的路由Gin獲取GET請求參數Gin獲取POST請求參數-form-data類型Gin獲取POST請求參數-JSON類型Gin獲取參數綁定至結構體Gin快速搭建一個web服務 下載包 \\新建一個文件&…

Baumer工業相機堡盟工業相機如何通過YoloV8的深度學習模型實現PCB的缺陷檢測(C#代碼,UI界面版)

Baumer工業相機堡盟工業相機如何通過YoloV8的深度學習模型實現PCB的缺陷檢測(C#代碼,UI界面版)工業相機使用YoloV8模型實現PCB的缺陷檢測工業相機實現YoloV8模型實現PCB的缺陷檢測的技術背景在相機SDK中獲取圖像轉換圖像的代碼分析工業相機圖…

【Vivado那些事兒】AMD-XILINX 7系列比特流加密

前提:加密有風險,操作需謹慎前言在許多項目中,經過漫長的等待,我們的 FPGA 設計終于可以投入現場部署了。前期的資金的投入及知識產權的保護,我們需要對現場部署的 FPGA 進行比特流保護以防止逆向工程和未經授權的重復…

RK3588 安卓adb操作

adb(Android Debug Bridge)是一個用于與安卓設備進行通信和控制的工具。adb可以通過USB或無線網絡連接安卓設備,執行各種命令,如安裝和卸載應用,傳輸文件,查看日志,運行shell命令等。adb是安卓開…

【華為機試】70. 爬樓梯

文章目錄70. 爬樓梯描述示例 1示例 2提示解題思路核心分析問題建模算法實現方法1:動態規劃(標準解法)方法2:空間優化動態規劃(最優解)方法3:遞歸 記憶化方法4:數學公式(…

山東大學軟件學院面向對象期末復習

面向對象 文章目錄面向對象04 類封裝接口 抽象類05 消息,實例化,靜態變量方法消息動/靜態類型語言對象創建類及實例具有下面特征對象數組的創建靜態數據成員構造函數06_0 繼承繼承是向下傳遞的JAVA為什么不支持多重繼承繼承的形式特殊化繼承替換原則規范…

讓 Windows 用上 macOS 的系統下載與保姆級使用教程

模擬蘋果桌面軟件下載:https://xpan.com.cn/s/8NFAGT 還記得 Windows 11剛發布時,很多人就說“果里果氣"的,但界面確實做的漂亮。 不知道現在有多少小伙伴正用著macOS,不過我敢確定,喜歡macOS的人絕對不少&#…

嵌入式硬件篇---繼電器

繼電器是一種通過小電流控制大電流的電磁開關,廣泛應用于自動化控制、電力系統和電子設備中。以下從工作原理、應用場景和電路特點三個方面詳細介紹:一、工作原理繼電器本質是電磁控制的機械式開關,核心部件包括:線圈(…

鴻蒙網絡編程系列58-倉頡版TLS數字證書查看及驗簽示例

1. TLS數字證書驗簽簡介 數字證書的簽名驗證是網絡編程中一個重要的功能,它保證了數字證書是由可信任的簽發方簽署的,在此基礎上,我們才可以信任該證書,進而信任基于該證書建立的安全通道,所以說,數字證書…

【React Native】安裝配置 Expo Router

過去開發React Native,所使用的路由都是React Navigation。但是這個東西使用起來非常困難,配置無比繁瑣。Expo,為了簡化操作,就基于React Navigation開發了Expo Router。 Expo Router用起來就要簡單的多了,配置也相對…