icmp报文_wireshark抓包 ,ping/tracert-ICMP,nslookup-DNS 分析

Windows提供了一系列用于检测网络状态,监控计算机与其他主机之间会话的命令用户可以通过这些命令发现、诊断网络连接问题,发现和处理外部终端为非法访问计算机资源而创建的会话。

本文以以下3个命令为例,对命令的相关协议进行分析:(采用wireshark抓包)

1、ping

1.1抓包:

a4b2e7790b4ec79998dd56bbb1e6101d.png

fe8694a0498dc783fec6ce8cf5c14f02.png

1.2数据帧结构:

(观察第一个编号为 12333 的 Echo (ping) request 数据帧)

1fc64d8f948f235ceea8e48e559d993d.png

如上图所示,可以看到这个数据帧的结构是:

Ethernet II
IP
ICMP

1.3观察 Ethernet II 数据帧的内容

bd4530b6b913af2da226f18f03386c82.png

Ethernet II 数据帧的格式如下:

DASATypeDataFCS

DA: 该字段有 6 个字节,表示目的 MAC 地址。如上图所示,目的 MAC 地址为 d0:76:e7:16:c0:a0。

SA: 该字段有 6 个字节,表示源 MAC 地址。如上图所示,源 MAC 地址为 64:5d:86:56:7d:5e。

Type: 该字段有 2 个字节,表示数据包的类型。如上图所示,类型的值为 0x0800,表示 Internet Protocol(IP)。

Data: 数据载荷。

FCS: 该字段有 4 个字节,表示帧校验序列,用于校验帧是否出错。该字段内容已被网络设备滤去,抓包软件已无法获取。

1.4观察 IP 数据包的内容

9be157a276faa870fcbf3d3f8ca63378.png

如上图所示,可以看到 IP 数据包的信息:

Version: 4,表示 IPv4。

Header Length: 5, 表示 5 个以 32 bit 为单位的 word,即 20 bytes。

Time to live: 64, 生存时间。

Protocol: 1,表示 ICMP。

Source: 192.168.1.107,源 IP 地址。

Destination: 36.152.44.96,目的 IP 地址。

1.5观察 ICMP 数据包内容

79679272fc6f71a5f4c248bfa2188051.png

ICMP 数据包的格式如下:

4ddaa368502dd2799514935e0c946392.png

Type: 该字段有 1 个字节,表示特定类型的 ICMP 报文。

一台主机向一个节点发送一个类型字段值为8的ICMP报文,如果途中没有异常(如果没有被路由丢弃,目标不回应ICMP或者传输失败),则目标返回类型字段值为0的ICMP报文,说明这台主机存在。

Code: 该字段有 1 个字节,进一步细分 ICMP 的类型。如上图所示,Type 的值为 8,Code 的值为 0,表示回显请求。

Checksum: 该字段有 2 个字节,表示校验和。

Identifier: 该字段有 2 个字节,用于匹配 Request/Reply 的标识符。

Seq Num: 该字段有 2 个字节,用于匹配 Request/Reply 的序列号。

Data: 数据载荷。

2、tracert

2.1抓包

ec95e3d8d0f44e166eeee2f6151c5da4.png

91878dafb6bf52e4a29ba279f84af98f.png

2.2 协议分析

由于tracrt命令的底层协议与ping的底层协议相同(都是ICMP),故不做具体分析。

3、nslookup

3.1抓包

d0ae0d8231db31fecbd94ada909f0751.png

56d5b4c9ecf9d7345d0f1a40c4b6f267.png

3.2数据帧结构

8efdef93ea88cb4842b4d82b824258cf.png

如上图所示,这个数据帧的结构是:

(DNS为应用层协议,下层传输层采用UDP,再下层网络层是IP协议,然后是数据链路层的以太网帧.)

Ethernet II (已做分析)
IP (已做分析)
UDP
DNS

3.3 UDP数据帧分析

a5b88290862bc3f72e627fe85a4ac889.png

可以看出格式如下:

SP:该字段占2个字节,源端口号为54064

DP: 该字段占2个字节,目的端口号为53

Length: 该字段占2个字节,长度,39bytes

Checksum: 该字段占2个字节,校验和

3.4 DNS报文分析

31a21951349b6381a2a967c675d74e51.png

DNS报文结构为:

a1ecbb52cd6f78eeb43b86c89764a391.png

第一个是Transaction ID为标识字段,2字节,用于辨别DNS应答报文是哪个请求报文的响应.图中报文标识数为:0x0002。

第二个是Flags标志字段,如图所示:

3dba138ed19e02672dba7b9553c575b4.png

QR(1比特):查询/响应的标志位,1为响应,0为查询。

opcode(4比特):定义查询或响应的类型(若为0则表示是标准的,若为1则是反向的,若为2则是服务器状态请求)。

AA(1比特):授权回答的标志位。该位在响应报文中有效,1表示名字服务器是权限服务器(关于权限服务器以后再讨论)

TC(1比特):截断标志位。1表示响应已超过512字节并已被截断(依稀好像记得哪里提过这个截断和UDP有关,先记着)

RD(1比特):该位为1表示客户端希望得到递归回答(递归以后再讨论)

RA(1比特):只能在响应报文中置为1,表示可以得到递归响应。

zero(3比特):不说也知道都是0了,保留字段。

rcode(4比特):返回码,表示响应的差错状态,通常为0和3,各取值含义如下:

0:表示无差错, 1:表示格式差错 ,2:表示问题在域名服务器上,3; 表示域参照问题

4: 表示查询类型不支持 ,5: 表示在管理上被禁止 ,6 – 15: 表示保留

问题数、回答资源记录数、授权资源记录数、附加资源记录数:这四个字段都是两字节,分别对应下面的查询问题、回答、授权和附加信息部分的数量。在图中报文对应字段分别为1,0,0,0;

第七个是Queries为查询问题区域,其包含正在进行的查询信息。包含查询名(被查询主机名字的名字字段)、查询类型、查询类。图中报文查询名为:www.baidu.com,查询类型为:A(IPv4地址),查询类为:IN(Internet数据)。(观察报文发现图中报文仅有查询问题区域,故不做其他区域的分析)

总结与体会

通过此次实验,加深了对ping、tracert、nslookup等命令的理解,同时也让我更加熟练的掌握了相关命令的操作。通过对相关命令的底层协议进行分析,也加深了我对一系列网络管理和监控命令的工作原理的理解,总的来说,此次实验收获很多。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值