wireshark简易抓包分析——ping指定大小包长多28Byte

这篇具有很好参考价值的文章主要介绍了wireshark简易抓包分析——ping指定大小包长多28Byte。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

wireshark简易抓包分析

测试ping时会发现一个现象:
在指定ping包长度后,实际发出的包总长=指定ping包长度+28

为什么ping -s指定大小n后,发出的包长为n+28呢?

先在不涉及分片的简单情况下抓包分析。
通过下方ping指令指定包长20Byte后,终端输出的结果显示实际发出去的包长却是48Byte(小于MTU 1500,此时ping包不会被分片)。

test@test-FTF:~$ ping 172.30.200.180 -s 20
PING 172.30.200.180 (172.30.200.180) 20(48) bytes of data.
28 bytes from 172.30.200.180: icmp_seq=1 ttl=63 time=0.253 ms
^C
--- 172.30.200.180 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1016ms
rtt min/avg/max/mdev = 0.153/0.203/0.253/0.050 ms

先看下ip协议定义的包头:
wireshark简易抓包分析——ping指定大小包长多28Byte

固定ip头为20Byte(除去可选字段的可变部分),片偏移值的单位为8字节(此值为n,代表着此包数据部分偏移量是8n Byte),整个ip头的长度按照4字节对齐。

icmp协议定义的头部如下,前4Byte固定头部,一般认为icmp request、reply等常见的报文类型头部8Byte(有4Byte的可变部分记录序列号+标识符):
wireshark简易抓包分析——ping指定大小包长多28Byte
下图为实际wireshark抓包,可以看到ping包的offset偏移量是0(因为有且只有一个包),ip包总长=48Byte。这里会发现,当指定ping包20Byte时,icmp包的data部分只有12Byte,与实际发出的48Byte相差了36Byte
wireshark简易抓包分析——ping指定大小包长多28Byte
其中20Byte很好理解是IP协议头,另外8Byte为ICMP头,但是多剩下的8Byte是哪里的呢?
查看wireshark显示的十六进制ICMP报文内容,一共28Byte:

0020         08 00 6e ff 12 89 00 0a 47 ae 2a 63 00 00   ....n.....G.*c..
0030   00 00 d4 37 0e 00 00 00 00 00 10 11 12 13         ...7..........

其中“47 ae 2a 63 00 00 00 00 ”是icmp时间戳,占了8Byte,正好是前面找不到原因的8Byte大小。所以多出来的36Byte=icmp协议头固定前8Byte+icmp时间戳8Byte+ip协议头20Byte。

由此知,icmp 报文格式还有一部分可选字段是记录时间戳,request和reply类型都会使用此字段:
wireshark简易抓包分析——ping指定大小包长多28Byte
这就是为什么指定了ping包长为20后,实际抓到的icmp报文长却是28(icmp data长12)、ip包长48

当通过ping -s len指定发出长度为len的ping包时,程序默认将固定的8Byte ICMP头部长度涵盖了进去,意味着icmp报文的数据段长度将设为(len-8)。但实际发出的icmp包可能使用了头部的可选数据段记录时间戳,导致实际发送时icmp包长增加了8Byte,总的ip包长增加了28Byte。

icmp大包是如何被分片的呢?

上面是未被分片的抓包,下面观察下被分片的icmp包的ip头部offset变化。
下方指令指定5000包长后,实际发出是5028Byte。28Byte的增量同理。

test@test-FTF:~$ ping 172.30.200.180 -s 5000
PING 172.30.200.180 (172.30.200.180) 5000(5028) bytes of data.
5008 bytes from 172.30.200.180: icmp_seq=1 ttl=63 time=21.9 ms
^C
--- 172.30.200.180 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 21.860/24.090/26.321/2.230 ms

当指定ping包长为5000时,每个发出的icmp报文的数据部分长度为5000-8=4992Byte,ICMP报文总长度为4992+8+8=5008Byte=5028-20。

对于ip层来说,待传输的ip层数据为5008Byte ICMP报文,ip层将对这5008Byte的数据进行分片,确保每个分片包加上ip头部后的包总长不超过1500,即会把ip层数据分为5008=1480*3+568这四部分,需要分成4个分片包发出。

一个ping包发出,wireshark会抓到四个fragmented ip 包,如下图:
wireshark简易抓包分析——ping指定大小包长多28Byte

2-5号是4个分片包。注意:第一列2-5这个序号不代表ip报文id,而是表明这个软件抓到的第几个包的序号。reassembled in #5代表着这些分片内容将在5号包内重组后显示。

  • 第一个分片包:ip头部header length这里二进制值为0101,转换成十进制为5,因为这个项值的单位是4Byte,这里代表的是ip头部长度为20Byte。ip包的数据部分长度1500-20=1480Byte
    wireshark简易抓包分析——ping指定大小包长多28Byte

  • 第二个分片包:flags值为20b9=0010 0000 1011 1001,flags部分的最高位0是保留位,从左数第二高位0是DF位(DF位置1代表不分片),第三高位1是MF位(MF置1代表着more fragments后面还有分片包),后13位代表片偏移,片偏移为0 0000 1011 1001(185),此值单位是8Byte,所以表示的是185*8=1480 Byte的偏移量。对于第一个分片包的icmp数据来说,第一个包只存放了1480Byte的ICMP内容,故第二个分片包的片偏移为1480。
    wireshark简易抓包分析——ping指定大小包长多28Byte

  • 第三个分片,flags值为2172=0010 0001 0111 0010,片偏移为0001 0111 0010(370),偏移量为3708=2960Byte。对于第一个分片包的icmp数据来说,前两个包存放了14802=2960Byte的ICMP内容,故第三个分片包的片偏移为2960。
    wireshark简易抓包分析——ping指定大小包长多28Byte

  • 第四个分片,flags值为022b=0000 0010 0010 1011,片偏移为0 0010 0010 1011(555),偏移量为5558=4440Byte。对于第一个分片包的icmp数据来说,前三个包存放了14803=4440Byte的ICMP内容,故第四个分片包的片偏移为4440。最后一个分片的icmp数据长度为588-20=568Byte。注意,最后一个分片包的MF未置上,说明当前包就是最后一个分片了。
    wireshark简易抓包分析——ping指定大小包长多28Byte
    在最后一个分片包内,wireshark会自动将前面收到的所有IP分片重组后显示在此包的ip数据部分,对比可发现前面三个分片ip头之后就只有ip data区,而最后一个分片ip头后是一个完整的icmp报文(16Byte头+4992Byte数据)。文章来源地址https://www.toymoban.com/news/detail-444429.html

到了这里,关于wireshark简易抓包分析——ping指定大小包长多28Byte的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ping命令 网络抓包 分析

    首先,执行ipconfig确认自己电脑的ip地址 可以得到我的电脑的ip地址为192.168.43.15,网关地址为192.168.43.1 打开wireshark抓包工具,ping网关,看看会发生什么 命令行中,我们发送了4个具有32B的数据,从抓包工具中,我们可以看出该命令采用的是icmp协议 第1帧 该帧序号为1,发生在

    2024年02月07日
    浏览(40)
  • Wireshark抓包分析IP协议

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「专栏简介」: 此文章已录入专栏《计算机网络零基础快速入门》 试验目的:抓包分析IP协议的传输过程和数据分片 操作系统:Windows 10 企业版 抓包工具:W

    2024年02月06日
    浏览(49)
  • Wireshark抓包分析ICMP协议

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 分析目的:分析ICMP协议的数据格式、报文类型及作用。 操作系统:Windows

    2024年02月08日
    浏览(40)
  • WireShark快速分析抓包技巧

    目录 WireShark快速分析抓包技巧 混杂模式 概述 使用WireShark对常用协议抓包并分析原理 ARP协议 确定WireShark的物理位置,如果没有一个正确的位置,启动Wireshark后会花费很长的时间捕获一些与自己无关的数据 选择捕获接口。一般都是选择连接到Internet网络的接口,这样才可以捕

    2023年04月08日
    浏览(46)
  • Wireshark抓包及DNS报文分析

    Wireshark抓包及DNS报文分析 来来来,点我进行5分钟视频学习,冲冲冲 一、抓包整体描述 第一行,帧Frame 2 指的是要发送的数据块,其中,所抓帧的序号为2,捕获字节数等于传送字节数:696字节。 第二行,以太网,有线局域网技术,是数据链路层。源Mac地址为00e04c3639fa;目标

    2023年04月08日
    浏览(50)
  • 利用wireshark对TCP抓包分析

    抓包结果已上传可免费下载对应观看: wireshark抓包结果 我的机子192.168.1.131简称A与服务端机子223.166.138.30简称B先三次握手建立TCP连接,再进行HTTP请求,最后四次挥手断开TCP连接 1.三次握手: A先给B发出一个SYN包请求建立连接 B给A发回一个ACK SYN包针对上一个SYN请求且发出请求

    2024年02月09日
    浏览(46)
  • Wireshark抓包分析教程(ubuntu版本)

    first,多亏我们的C知道,成功安装了wireshark, Steps are as following: 添加wireshark的软件源(PPA:personal package archive(档案)) sudo apt-add-repository ppa:wireshark-dev/stable ppa:wireshark-dev/stable 是一个Wireshark开发团队维护的PPA,它提供了Wireshark的最新稳定版本。通过添加这个PPA,您可以轻松地安

    2024年02月16日
    浏览(39)
  • 使用Wireshark抓包分析TCP协议

    wireshark数据包详细栏每个字段对应的分层。 我们点开这个字段,从该字段中可以看到相邻两个设备的MAC地址 本层主要负责将TCP层传输下来的数据加上目标地址和源地址。 这一层用到了TCP协议 tcp包头 每个字段对应的TCP包头 TCP三次握手示意图 第一次握手 :客户端向服务器发

    2023年04月13日
    浏览(45)
  • Wireshark抓包分析之ICMP协议包

    一、 Wireshark简介:(前身为Ethereal,2006年改名为wireshark) Wireshark 是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。 Wireshark 使用 WinPCAP 作为接口,直接与网卡进行数据报文交换。 (一) 功能:可用于网络流量捕获

    2024年02月08日
    浏览(42)
  • Wireshark抓包分析TCP的三次握手

    一、TCP三次握手连接建立过程     Step1:客户端发送一个SYN数据包(SYN=1,Seq=X,ACK=0)给服务端,请求进行连接,这是第一次握手;     Step2:服务端收到请求并且允许连接的话,就会发送一个SYN+ACK的数据包(SYN=1,Seq=Y,ACK=X+1)给发送端,告诉它,可以通讯了,并且让客户

    2024年02月08日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包