使用Sniffer和Wireshark抓取网络包头的实验可以帮助你理解网络协议的工作原理,特别是ICMP和TCP协议。以下是实验的原理、过程和步骤:
实验原理
- ICMP协议:ICMP(Internet Control Message Protocol)是网络层协议,主要用于在IP网络中传递控制消息,如ping命令使用的就是ICMP协议。
- TCP协议:TCP(Transmission Control Protocol)是传输层协议,提供可靠的、面向连接的通信服务。TCP包头包含源端口、目的端口、序列号、确认号等信息。
- Sniffer和Wireshark:Sniffer和Wireshark都是网络抓包工具,可以捕获和分析网络流量。Sniffer通常用于抓取特定类型的包(如ICMP),而Wireshark则是一个功能更强大的网络协议分析工具,支持多种协议的抓包和分析。
实验步骤
使用Sniffer抓取百度的ICMP包头
-
准备工作:
- 确保你的计算机连接到互联网。
- 安装Sniffer工具(如Microsoft Network Monitor或类似工具)。
- Sniffer工具在Win7以上系统会有兼容性错误,建议在XP系统上安装使用。
安装sniffer pro网络监听工具的完整教程https://blog.csdn.net/2301_77001831/article/details/138806130
-
启动Sniffer:
- 打开Sniffer工具,选择要监听的网络接口(通常是你的网卡)。
-
设置过滤器:
- 在Sniffer中设置监视器与捕获的过滤器,只捕获ICMP协议的数据包。
- 通常可以在过滤器中输入
icmp
或protocol == icmp
。
设置步骤同上
-
开始抓包:
- 点击“开始”按钮,开始捕获网络流量。
-
发送ICMP请求:
- 打开命令提示符(Windows)或终端(Linux/Mac),输入
ping www.baidu.com
,向百度发送ICMP请求。
- 打开命令提示符(Windows)或终端(Linux/Mac),输入
-
停止抓包:
- 在Sniffer中点击“停止”按钮,停止捕获。
-
分析ICMP包头:
- 在捕获的数据包列表中,找到与百度相关的ICMP包,查看其包头信息,包括类型、代码、校验和等。
使用Wireshark抓取TCP包头
-
准备工作:
- 确保你的计算机连接到互联网。
- 安装Wireshark工具。
-
启动Wireshark:
- 打开Wireshark,选择要监听的网络接口(通常是你的网卡)。
-
设置过滤器:
- 在Wireshark的过滤器中输入
tcp
,只捕获TCP协议的数据包。
- 在Wireshark的过滤器中输入
-
开始抓包:
- 点击“开始”按钮,开始捕获网络流量。
-
建立TCP连接:
- 打开浏览器,访问一个使用TCP协议的网站(如
blog.csdn.net
),建立TCP连接。 - 通过F12进入控制台,选择网络查看请求获取到网站的IP地址(或者通过PING域名的方式获取)
- 打开浏览器,访问一个使用TCP协议的网站(如
-
停止抓包:
- 点击“结束”按钮,停止捕获网络流量。
-
再次设置过滤器:
- 在Wireshark的过滤器中输入
追加网站的IP地址
,只捕获TCP协议+该地址的的数据包。
- 在Wireshark的过滤器中输入
-
分析TCP包头:
- 在捕获的数据包列表中,找到与该网址三次握手相关的TCP包,查看其包头信息,包括源端口、目的端口、序列号、确认号、标志位等。
解析后的TCP数据包信息如下:
数据包1(No.57857)
- 时间: 19.216344秒
- 源IP:
10.1.28.129
- 目标IP:
220.185.184.40
- 协议: TCP
- 源端口:
15782
→ 目标端口:443
- 标志:
SYN
(发起连接请求) - 关键字段:
Seq=0
(初始序列号)Win=64240
(窗口大小)MSS=1460
(最大报文段长度)SACK_PERM=1
(支持选择性确认)- 时间戳选项:
TSval=7594330
(本地时间戳值)TSecr=0
(回传时间戳值)
数据包2(No.58138)
- 时间: 19.236515秒
- 源IP:
220.185.184.40
- 目标IP:
10.1.28.129
- 协议: TCP
- 源端口:
443
→ 目标端口:15781
(疑似OCR错误,应为15782
) - 标志:
[SYN, ACK]
(同步确认) - 关键字段:
Seq=0
(服务器初始序列号)Ack=1
(确认客户端SYN的下一个序列号)Win=1448
(窗口大小,可能受窗口缩放影响)SACK_PERM=1
(支持选择性确认)- 时间戳选项:
TSval=1483713837
(本地时间戳值)TSecr=7594320
(回传时间戳值)
数据包3(No.58139)
- 时间: 19.236585秒
- 源IP:
10.1.28.129
- 目标IP:
220.185.184.40
- 协议: TCP
- 源端口:
15781
→ 目标端口:443
- 标志:
[ACK]
(确认连接建立) - 关键字段:
Seq=1
(确认服务器SYN+ACK后的序列号)Ack=1
(确认服务器序列号)Win=262656
(窗口大小)- 时间戳选项:
TSval=7594351
(本地时间戳值)TSecr=1483713837
(回传时间戳值)
总结
- 客户端(
10.1.28.129:15782
)发送SYN到服务器(220.185.184.40:443
)。 - 服务器回应SYN+ACK(
443→15782
),携带时间戳和SACK选项。 - 客户端发送ACK(
15782→443
),确认连接建立。
实验总结
通过使用Sniffer和Wireshark抓取ICMP和TCP包头,你可以深入了解这两种协议的工作原理和包头结构。实验过程中,注意观察和分析包头中的各个字段,理解它们在网络通信中的作用。
注意事项
- 确保你有权限在网络上进行抓包操作,避免违反网络安全政策。
- 在抓包过程中,尽量减少其他网络活动,以避免捕获到无关的数据包。
- 分析数据包时,注意区分不同协议的数据包,避免混淆。
通过这个实验,你将能够更好地理解网络协议的工作原理,并掌握使用抓包工具进行网络分析的基本技能。