网络抓包分析【IP,ICMP,ARP】以及 IP数据报,MAC帧,ICMP报和ARP报的数据报格式

news/2024/11/14 23:56:25/

网络抓包分析,IP数据报,MAC帧,ICMP报,ARP报格式以及不同网络通信的过程。

  • 网络抓包工具 wireshark
  • 以太网v2MAC帧
  • IP数据报格式
  • ICMP报文格式
  • ARP协议及ARP报文格式
  • 抓包分析
    • IP数据报抓包分析
    • icmp数据报的抓包分析
    • ARP数据报的抓包分析

网络抓包工具 wireshark

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。


在这里插入图片描述


软件界面如下图:


在这里插入图片描述


以太网v2MAC帧


在这里插入图片描述


MAC帧的帧头包括三个字段。前两个字段分别为6字节长的目的地址字段和源地址字段,目的地址字段包含目的MAC地址信息,源地址字段包含源MAC地址信息。第三个字段为2字节的类型字段,里面包含的信息用来标志上一层使用的是什么协议,以便接收端把收到的MAC帧的数据部分上交给上一层的这个协议。例如,当类型字段的值是0x0800时,就表示上层使用的是IP数据报。

MAC帧的数据部分只有一个字段,其长度在46到1500字节之间,包含的信息是网络层传下来的数据。MAC帧的帧尾也只有一个字段,为4字节长,包含的信息是帧校验序列FCS(使用CRC校验)。

IP数据报格式


在这里插入图片描述


  1. 版本(4位):该字段定义IP协议版本,负责向处理机所运行的IP软件指明此IP数据报是哪个版本,所有字段都要按照此版本的协议来解释。如果计算机使用其他版本,则丢弃数据报。
  2. 首部长度(4位):该字段定义数据报协议头长度,表示协议头部具有32位字长的数量。协议头最小值为5,最大值为15
  3. 服务(8位):该字段定义上层协议对处理当前数据报所期望的服务质量,并对数据报按照重要性级别进行分配。前3位成为优先位,后面4位成为服务类型,最后1位没有定义。这些8位字段用于分配优先级、延迟、吞吐量以及可靠性。
  4. 总长度(16位):该字段定义整个IP数据报的字节长度,包括协议头部和数据。其最大值为65535字节。以太网协议对能够封装在一个帧中的数据有最小值和最大值的限制(46~1500个字节)。
  5. 标识(16位):该字段包含一个整数,用于识别当前数据报。当数据报分段时,标识字段的值被复制到所有的分段之中。该字段由发送端分配帮助接收端集中数据报分段。
  6. 标志(3位):该字段由3位字段构成,其中最低位(MF)控制分段,存在下一个分段置为1,否则置0代表该分段是最后一个分段。中间位(DF)指出数据报是否可进行分段,如果为1则机器不能将该数据报进行分段。第三位即最高位保留不使用,值为0。
  7. 分段偏移(13位):该字段指出分段数据在源数据报中的相对位置,支持目标IP适当重建源数据。
  8. 生存时间(8位):该字段是一种计数器,在丢弃数据报的每个点值依次减1直至减少为0。这样确保数据报拥有有限的环路过程(即TTL),限制了数据报的寿命。
  9. 协议(8位):该字段指出在IP处理过程完成之后,有哪种上层协议接收导入数据报。这个字段的值对接收方的网络层了解数据属于哪个协议很有帮助。
  10. 首部校验和(16位):该字段帮助确保IP协议头的完整性。由于某些协议头字段的改变,这就需要对每个点重新计算和检验。计算过程是先将校验和字段置为0,然后将整个头部每16位划分为一部分,将个部分相加,再将计算结果取反码,插入到校验和字段中
  11. 源地址(32位)源主机IP地址,该字段在IPv4数据报从源主机到目的主机传输期间必须保持不变。
  12. 目的地址(32位)目标主机IP地址,该字段在IPv4数据报从源主机到目的主机传输期间同样必须保持不变

ICMP报文格式

ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议(ICMP输入网络层的协议),用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

在这里插入图片描述

ICMP类型

TYPECODEDescriptionQueryError
00Echo Reply——回显应答(Ping应答)x
30Network Unreachable——网络不可达x
31Host Unreachable——主机不可达x
32Protocol Unreachable——协议不可达x
33Port Unreachable——端口不可达x
34Fragmentation needed but no frag. bit set——需要进行分片但设置不分片比特x
35Source routing failed——源站选路失败x
36Destination network unknown——目的网络未知x
37Destination host unknown——目的主机未知x
38Source host isolated (obsolete)——源主机被隔离(作废不用)x
39Destination network administratively prohibited——目的网络被强制禁止x
310Destination host administratively prohibited——目的主机被强制禁止x
311Network unreachable for TOS——由于服务类型TOS,网络不可达x
312Host unreachable for TOS——由于服务类型TOS,主机不可达x
313Communication administratively prohibited by filtering——由于过滤,通信被强制禁止x
314Host precedence violation——主机越权x
315Precedence cutoff in effect——优先中止生效x
40Source quench——源端被关闭(基本流控制)
50Redirect for network——对网络重定向
51Redirect for host——对主机重定向
52Redirect for TOS and network——对服务类型和网络重定向
53Redirect for TOS and host——对服务类型和主机重定向
80Echo request——回显请求(Ping请求)x
90Router advertisement——路由器通告
100Route solicitation——路由器请求
110TTL equals 0 during transit——传输期间生存时间为0x
111TTL equals 0 during reassembly——在数据报组装期间生存时间为0x
120IP header bad (catchall error)——坏的IP首部(包括各种差错)x
121Required options missing——缺少必需的选项x
130Timestamp request (obsolete)——时间戳请求(作废不用)x
14Timestamp reply (obsolete)——时间戳应答(作废不用)x
150Information request (obsolete)——信息请求(作废不用)x
160Information reply (obsolete)——信息应答(作废不用)x
170Address mask request——地址掩码请求x
180Address mask reply——地址掩码应答

ARP协议及ARP报文格式

ARP(Address Resolution Protocol)地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
在这里插入图片描述

硬件类型:指明了发送方想知道的硬件接口类型,以太网的值为1;
协议类型:指明了发送方提供的高层协议类型,IP为0800(16进制);
硬件地址长度和协议长度:指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用;
操作类型:用来表示这个报文的类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4;
发送方硬件地址(0-3字节):源主机硬件地址的前4个字节;
发送方硬件地址(4-5字节):源主机硬件地址的后2个字节;
发送方IP地址(0-1字节):源主机硬件地址的前2个字节;
发送方IP地址(2-3字节):源主机硬件地址的后2个字节;
目标硬件地址(0-1字节):目的主机硬件地址的前2个字节;
目标硬件地址(2-5字节):目的主机硬件地址的后4个字节;
目标IP地址(0-3字节):目的主机的IP地址。

抓包分析

IP数据报抓包分析

打开wireshark软件,然后选择可以正常上网的网卡,然后进行抓包(右键 start capture)即可。


在这里插入图片描述


此时已经抓到了一些数据报,可以开始分析了


在这里插入图片描述


在分析之前,我们还需要做一件小事情,查看一下自己主机的ip信息和mac信息 win+r cmd 进入到控制命令台,然后输入ipconfig/all查看自己的网络配置信息.


在这里插入图片描述

在这里插入图片描述


然后我的wifi网络信息是:

IPv4 地址 : 192.168.122.114(首选)
子网掩码 : 255.255.255.0
物理地址(MAC地址): 4C-D5-77-A3-8E-A9
DNS 服务器 : 192.168.122.55


在这里插入图片描述


分析,此IP数据报的信息(恰好是tcp的数据报),我们知道网络是协议层层封装,所以应该是mac数据链路层->网络层ip->运输层tcp/udp->更高层次协议封装。

一、观察图中的数据,首先,前14个字节应该为mac的头部:

1. 4c d5 77 a3 8e a9 为我的wifi网卡的源mac地址.
2. e2 02 f5 b1 d1 c7 应该为网关的mac地址信息即目的mac.
3. 接下来是 0800 即 mac地址格式中的类型字段,表明当前接收的数据是ip数据报.

二、前14个字节,为mac帧的头部信息,所以从第15个字节开始,里面封装的应该是ip数据报

然后在ip数据报的格式中的话,我们首要的任务是找到其中的目的IP和源IP,经过上面的IP数据报格式得知,IP数据报首部每行4个字节。

  1. 对应的协议字段应该为第10个字节,即比特流中的第24个字节,对应下图的06,即此ip数据报的协议是tcp
  2. 源IP地址和目的IP地址,应该分别对应的其中第四行(第13-16字节)和第五行(第17-20字节)即比特流中的第27字节开始为源IP地址,第31字节开始为目的IP地址
  3. 源IP地址为75 a1 c0 ef (十六进制) 即 117.161.192.239(十进制)
  4. 目的IP地址为: c0 a8 7a 72 (十六进制)即 192.168.122.114 (十进制)。

在这里插入图片描述


icmp数据报的抓包分析

我们知道icmp最常用的场景就是ping命令和traceroute命令。

所以首先,重新开启wireshark抓包工具,然后在cmd中输入ping命令,比如ping 192.168.122.144(这里我ping的是自己的网关)。


在这里插入图片描述

在过滤器一栏中输入icmp,进行对不同协议的数据报进行过滤

在这里插入图片描述


因为icmp属于ip的一个子协议,然后的话上面也说了它的数据报格式,所以它是封装在ip数据报的数据部分中,即对应比特流中的mac 14字节的首部,ip地址20字节的首部地址,第35字节开始到第38字节结束为对应的icmp数据报的首部(4字节)。

03 03 73 7e 即为icmp的数据报首部。

  1. 第一个 03 为icmp的首部类型,对应十进制的3表示 Network Unreachable——网络不可达
  2. 第二个 03 为icmp的首部代码,对应十进制的3表示 Port Unreachable——端口不可达
  3. 73 7e 为icmp的首部校验和

在这里插入图片描述


ARP数据报的抓包分析

首先,查看一下本机的arp高速缓存表,使用命令arp -a.


在这里插入图片描述


同样,在过滤器中输入arp进行过滤查看,我们随便挑一条来分析下


在这里插入图片描述


先瞅一眼,mac帧的类型为 0806 即 封装的数据是arp的数据报

然后arp协议是封装在mac帧内部的,所以我们从比特流中的第15个字节开始看

  1. 00 01 对应的前两个字节硬件类型 ,十进制1代表以太网
  2. 08 00 两个字节对应协议类型0x0800即为ip协议
  3. 06 对应硬件长度
  4. 04 对应协议长度为4
  5. 00 02 对应操作类型 对应的十进制2表示arp响应。(ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4)
  6. 4c d5 77 a3 8e a9 就是完整的源mac地址
  7. c0 a8 7a 72 对应完整的源IP地址 192.168.122.144 我的wifi网卡的ip地址
  8. e2 02 f5 b1 d1 c7 对应完整的目的MAC地址
  9. c0 a8 7a 37 就是目的IP地址 192.168.122.55 我的DNS服务器地址


http://www.ppmy.cn/news/44535.html

相关文章

网站实现HTTPS的详细流程介绍

网站实现HTTPS的详细流程介绍 对于网站来说,采用HTTPS不仅可以提升网站安全性,还可以帮助优化搜索引擎排名,具体如何实现HTTPS呢?以下就详细介绍一下实现HTTPS的流程。 1、申请SSL证书 在实施HTTPS之前,需要先确认一…

Linux操作基础(文件系统和日志分析)

文章目录一、inode与block1.1inode和block概述1.2 inode包含文件的元信息1.3 linux文件系统的三个时间戳1.4 inode的号码1.5 inode的大小1.6 inode号的特点1.7软连接与硬链接二 、文件恢复2.1 xfsdump恢复2.2 opic恢复方式三 、日志文件3.1 日志文件的分类3.2 日志的格式3.3 常…

能聊天、会学习,远不是GPT的终局

自然语言处理(NLP)技术的发展和运用,使得计算机性能增长速度一举跃过摩尔定律瓶颈,将AI拱入属于它的高光时代。而象征技术融合的ChatGPT一夜爆红,仿佛给整个商业社会带来了一次“技术革命”。 微软、谷歌、百度、华为…

2023最全的自动化测试入门基础知识(建议收藏)

1)首先,什么是自动化测试? 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的过程一步步执行测试,得到实际结果与期望结果的比较。…

【接口测试】从0不到1的心路历程

我是一名做了三年测试的tester,2020年以功能测试工程师的身份入职北京一家医疗培训公司,入职后为了提高测试效率,接触到接口测试,以下是从零到现在 (还有很大完善的空间,所以不能算是1) 的一些心路历程。 做接口测试的…

精通 TensorFlow 1.x:11~15

原文:Mastering TensorFlow 1.x 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关心如何实现目标。—…

矩阵求逆_高斯消元法

高斯消元法流程 首先必须要判断矩阵是不是一个方阵,其方法是对于一个矩阵AnnA_{n \times n}Ann​,先构造一个增广矩阵W[A∣E]W[A \mid E]W[A∣E],其中EEE是一个nnn \times nnn的单位矩阵,这样WWW就成了一个n2nn \times 2nn2n的矩…

【刷题】27. 移除元素

27. 移除元素一、题目描述二、示例三、实现计数法双指针法27. 移除元素 一、题目描述 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外…