Sniffer与Wireshark抓包实验:揭秘ICMP与TCP协议

目录

实验原理

实验步骤

使用Sniffer抓取百度的ICMP包头

使用Wireshark抓取TCP包头

解析后的TCP数据包信息如下:

数据包1(No.57857)

数据包2(No.58138)

数据包3(No.58139)

总结

实验总结

注意事项


使用Sniffer和Wireshark抓取网络包头的实验可以帮助你理解网络协议的工作原理,特别是ICMP和TCP协议。以下是实验的原理、过程和步骤:


实验原理

  1. ICMP协议:ICMP(Internet Control Message Protocol)是网络层协议,主要用于在IP网络中传递控制消息,如ping命令使用的就是ICMP协议。
  2. TCP协议:TCP(Transmission Control Protocol)是传输层协议,提供可靠的、面向连接的通信服务。TCP包头包含源端口、目的端口、序列号、确认号等信息。
  3. 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请求。

  • 停止抓包

    • 在Sniffer中点击“停止”按钮,停止捕获。

  • 分析ICMP包头

    • 在捕获的数据包列表中,找到与百度相关的ICMP包,查看其包头信息,包括类型、代码、校验和等。


使用Wireshark抓取TCP包头

  • 准备工作

    • 确保你的计算机连接到互联网。
    • 安装Wireshark工具。
  • 启动Wireshark

    • 打开Wireshark,选择要监听的网络接口(通常是你的网卡)。

  • 设置过滤器

    • 在Wireshark的过滤器中输入 tcp,只捕获TCP协议的数据包。

  • 开始抓包

    • 点击“开始”按钮,开始捕获网络流量。

  •  建立TCP连接

    • 打开浏览器,访问一个使用TCP协议的网站(如 blog.csdn.net),建立TCP连接。
    • 通过F12进入控制台,选择网络查看请求获取到网站的IP地址(或者通过PIN​G域名的方式获取)

  • 停止抓包

    • 点击“结束”按钮,停止捕获网络流量。

  • 再次设置过滤器

    • 在Wireshark的过滤器中输入 追加网站的IP地址,只捕获TCP协议+该地址的的数据包。

  • 分析TCP包头

    • 在捕获的数据包列表中,找到与该网址三次握手相关的TCP包,查看其包头信息,包括源端口、目的端口、序列号、确认号、标志位等。

解析后的TCP数据包信息如下:


数据包1(No.57857)
  • 时间: 19.216344秒
  • 源IP10.1.28.129
  • 目标IP220.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秒
  • 源IP220.185.184.40
  • 目标IP10.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秒
  • 源IP10.1.28.129
  • 目标IP220.185.184.40
  • 协议: TCP
  • 源端口15781 → 目标端口443
  • 标志[ACK](确认连接建立)
  • 关键字段:
    • Seq=1(确认服务器SYN+ACK后的序列号)
    • Ack=1(确认服务器序列号)
    • Win=262656(窗口大小)
    • 时间戳选项:
      • TSval=7594351(本地时间戳值)
      • TSecr=1483713837(回传时间戳值)

总结

  1. 客户端(10.1.28.129:15782)发送SYN到服务器(220.185.184.40:443)。
  2. 服务器回应SYN+ACK(443→15782),携带时间戳和SACK选项。
  3. 客户端发送ACK(15782→443),确认连接建立。


实验总结

通过使用Sniffer和Wireshark抓取ICMP和TCP包头,你可以深入了解这两种协议的工作原理和包头结构。实验过程中,注意观察和分析包头中的各个字段,理解它们在网络通信中的作用。

注意事项

  • 确保你有权限在网络上进行抓包操作,避免违反网络安全政策。
  • 在抓包过程中,尽量减少其他网络活动,以避免捕获到无关的数据包。
  • 分析数据包时,注意区分不同协议的数据包,避免混淆。

通过这个实验,你将能够更好地理解网络协议的工作原理,并掌握使用抓包工具进行网络分析的基本技能。

[menu_102] 70001=文件(&F) 40024=开始捕获(&S) 40025=停止捕获(&T) 40045=保存配置(&C) 40046=载入配置(&O) 40034=保存数据包数据到文件 40035=载入数据包数据文件 40039=导出 TCP/IP 流报告(&E) 40001=保存数据包摘要(&A) 40009=属性(&P) 40002=退出(&X) 70002=编辑(&E) 40031=复制(&C) 40007=全选(&A) 40015=全部取消选定(&D) 40032=下一项(&N) 40033=上一项(&P) 70003=查看(&V) 40005=显示网格线(&G) 40028=显示气球提示(&T) 40010=HTML 报告 - TCP/IP 流(&H) 40011=栏位设定(&N) 40012=自动调整栏的宽度(&A) 70004=选项(&O) 71001=显示模式(&M) 41101=自动(&A) 41102=ASCII(&S) 41103=16进制(&H) 71002=显示协议(&P) 41201=&TCP 41202=&UDP 41203=&ICMP 40027=显示 ASCII 码大于 127 的字符(&C) 40041=显示捕获时间(&T) 40042=将 IP 地址解析为主机名 40044=显示过滤设置 40040=高级选项(&A) 40043=捕获过滤设置 40026=选择设备(&O) 70005=帮助(&H) 40003=关于(&A) 41104=&URL 列表 [menu_104] 70001=Popup1 40010=生成 TCP/IP 流的 HTML 报告(&H) 40039=保存 TCP/IP 流报告(&E) 40001=保存数据包摘要(&A) 40011=栏位设定(&N) 40012=栏位自动宽度(&A) 40007=选择全部(&A) 40015=取消已选定(&D) 40031=复制(&C) 40032=下一项(&N) 40033=上一项(&P) 70002=Popup2 [dialog_105] caption=属性 1=确定 [dialog_108] caption=捕获选项 1007=原始套接字 (仅Windows 2000/XP) 1008=使用 WinPcap 包捕获驱动 1005=List1 1=确定 2=取消 1006=捕获方式 1009=选择网卡: 1045=选择网卡: [dialog_112] 1=确定 [dialog_113] caption=高级选项 1035=即时显示模式 - 捕获的同时列出 TCP/IP 会话 1011=每行字符数: 1013=显示时,在每 1025=显示 ASCII 字符 1026=在每行开头显示偏移量 1014=自动决定显示模式时要检查的字符数: 1032=不可显示的 ASCII 字符替换为: 1036=自动模式中, 若数据长度大于此限制则不显示16进制数据 1038=在下部面板中不显示数据长度大于此限制的项 1019=选择 1022=选择 1029=选择 1=确定 2=取消 1010=16进制显示选项 1015=个字符后插入额外的空格 1016=文字颜色 1017=源于本地主机的 TCP/IP 流的文字颜色: 1020=源于远程主机的 TCP/IP 流的文字颜色: 1030=捕获时间的文字颜色: 1031=常规显示选项 1034=捕获 1039=KB 1041=KB 1042=捕获同时显示 TCP/IP 会话内容开始的部分 1043=仅显示 TCP/IP 统计数据, 不在文件中保存捕获数据 1044=捕获时亦获取进程信息 1045=摘要模式 (每个连接之间不换行) [dialog_114] 1=确定 2=取消 3=清除 1037=输入一条或多条过滤规则, 以空格或回车分隔。以下是过滤字规则的几个例子: [dialog_1096] caption=栏位设定 1003=上移(&U) 1004=下移(&D) 1006=显示(&S) 1007=隐藏(&H) 1008=默认 1=确定 2=取消 1000=钩选要显示的内容, 用上移或下移按钮排列显示顺序 1002=栏位宽度(像素): [strings] 4=%d 个 TCP/IP 会话 5=, 选定 %d 个 6=创建本文件使用的是 7=选择保存文件的名称 8=数据包摘要 9=无法启动选定网卡上的包捕获。 10=该项所含数据长度超过 %d KB 限制。 11=可使用导出选项将此项保存到文件中。 12=此 TCP/IP 会话太大,无法在捕获同时显示。 13=停止捕获后将显示会话的完整内容。 14=正在加载... %d 15=已捕获 %d 个数据包 16=错误: 无法创建数据包文件! 17=正在捕获... 18=选择用于保存已捕获数据的文件名 19=载入存有数据包数据的文件 20=确定要停止捕获并退出 SmartSniff 吗? 21=选择用于保存已捕获的数据包流的文件名称 22=数据包流报告 23=当前操作含有非常大的数据包流,载入过程可能很慢,要继续吗? 24=选择要保存的配置文件名 25=选择要载入的配置文件 51=捕获过滤选项 52=显示过滤选项 101=字节 501=文本文件 502=制表符分隔的文本文件 503=空格分隔的表格化文本文件 504=HTML 文件 - 水平方式 505=HTML 文件 - 垂直方式 506=XML 文件 521=ICMP 522=TCP 523=UDP 541=文本文件 542=HTML 文件 543=原始数据文件 601=SmartSniff 数据包文件 602=tcpdump/libpcap 文件 621=SmartSniff 配置文件 1001=编号 1002=协议 1003=本地地址 1004=远程地址 1005=本地端口 1006=远程端口 1007=数据包数量 1008=包含封装信息的总数据量 1009=捕获时间 1010=不含封装信息的数据量 1011=服务名称 1012=本地主机 1013=远程主机 1014=进程号 1015=进程文件名 1051=IP 地址 1052=设备名称
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渣渣盟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值