向局域网内的主机ping
捕获ARP包

可以看到第一行是请求包,第二行是响应包
捕获ICMP包

首先ping了一下同一个局域网之下的另一台主机

然后抓一下包
因为windows下ping命令默认执行4次,所以有8个ICMP报文


按照时间顺序,我们可以看一下第一个请求包
- 源IP 192.168.0.195
- 目的IP 192.168.0.196
- 消息类型 回射请求(即ping命令的请求)
- 序列号 21
- 随机数
同样这里还有一个配对的应答包

公网上的ARP包
ARP:完成从IP地址到MAC地址的映射。

主机知道192.168.0.195这个IP地址,但不知道目标的MAC地址是啥,所以发个广播问一问。

然后接下来有个应答,人告诉我192.168.0.195的MAC地址是什么

ICMP包
以ping www.baidu.com 为例
1.现在过滤器里写好过滤要求

2.去cmd里ping百度

3.抓包
因为windows下ping命令默认执行4次,所以有8个ICMP报文**

4.分析数据
4.1报文由IP首部和ICMP报文组成,其中IP首部占据20字节

4.2 ICMP报文占据40字节

4.3 Type and code
可以看到type=8时,为回射请求(ping请求)

然后type=0为回射应答(ping应答)

DNS
查看本机IP
ipconfig

查看电脑的本地域名服务器地址
这个地方需要解释一下,因为连接了WIFI,且WIFI开启了DHCP功能,所以我的DNS服务器会变成路由器的DNS,然后在本机上显示
192.168.0.1

查看必应网站的IP地址
nslookup www.biying.com

DNS报文格式

开始抓包
先设置好过滤格式,然后点击开始

ping 一下目标网站

对抓包数据进行分析
DNS查询报文

标红的地方有两组DNS请求和响应配对
第一组DNS请求查询 www.biying.com 域名对应的IP4地址(A代表IP4)
第二组DNS请求查询 www.biying.com 域名对应的IP6地址(AAAA代表IP6)
对第一组进行一下分析

可以看到网络传输层用的是UDP协议,端口号是53
接下来分析一下报文的基础结构部分

1.transaction ID:事务ID,DNS报文的ID标识,一对DNS报文(请求和应答),这个ID是相同的
2.Flags:DNS报文中的标志字段
3.Questions:DNS请求的查询请求数目
4.Answers RPs:DNS响应的数目
5.Authority RPs:权威名称服务器的数目
6.Addition RPs:附加的资源记录数,(权威名称服务器对应的IP地址数目)
Flags的字段含义
QR(response):查询请求时,值=0;响应时,值=0;
Opcode:操作码.0->标准查询;1->反向查询;2->服务器状态请求
Truncated:表示是否被阶段,值=1,表示响应超过512字节并且截断;值=0,返回前512字节.
Recursion desired:期望递归.该字段能在一个查询中设置,并在响应中返回。该标志告诉名称服务器必须处理这个查询,这种方式被称为一个递归查询。如果该位为 0,且被请求的名称服务器没有一个授权回答,它将返回一个能解答该查询的其他名称服务器列表。这种方式被称为迭代查询
DNS响应报文


可以看到事务ID与请求报文相同都是0x56c4

且报文的基本结构相同,同时可以看到服务器支持递归查询(RA=1)


这里,Answer字段为DNS资源记录部分
- name:DNS请求的域名
- Type:资源记录的类型
- class:地址类型
- Time to live:生存时间,以秒为单位,表示资源记录的生命周期,一般用于当地址解析程序取出资源记录后决定保存及使用缓存数据的时间。它同时也可以表明该资源记录的稳定程度,稳定的信息会被分配一个很大的值。
- Data length:资源数据的长度
那么,answers字段内容,翻译过来意思就是(从第一条开始按顺序翻译),
①,‘www.biying.com’域名的别名有’www-biying-com.cn.a-0001.a-msedge.net’;
②,‘www-biying-com.cn.a-0001.a-msedge.net’域名的别名为’china.bing123.com’;
③,‘china.bing123.com’域名对应的IP4地址有’202.89.233.101’;
④,‘china.bing123.com’域名对应的IP4地址有’202.89.233.100’;
TCP、HTTP
以新华网作为目标

ping一下,看看ip地址

图中所示的三条即为TCP三次握手的过程


由下图所得
- 源端口号为28948
- 目标端口号为80
- 源IP为 192.168.0.195
- 目标IP为 61.162.46.212
第一次握手

客户端发送一个TCP,标志位为SYN,序列号为0,表示想要建立连接。
第二次

服务器发回确认包,标志位为SYN,ACK,且将确认序号+1=1
第三次

客户端再次发送确认包ACK,SYN标志位为0,ACK确认位为1
HTTP
更改过滤条件之后获得http包

可以看出
- 请求方式GET
- 访问的具体页面

并且追踪HTTP流的话可以清晰的看到TCP包和HTTP的流程

本文详细介绍了网络通信过程,包括ARP、ICMP、DNS协议的工作原理和交互过程。通过实例解析了TCP三次握手和HTTP请求的方式,展示了数据包捕获和分析的关键步骤。

2182

被折叠的 条评论
为什么被折叠?



