wireshark——ICMP协议&DHCP协议&DNS协议&HTTP协议

ICMP协议

定义

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

特性

ICMP靠IP协议来完成任务,所以ICMP报文中要封装IP头部,当IP报头中的协议字段值为1时,就说明这是一个ICMP报文。它与传输层协议(如TCP和UDP)的目的不同,一般不用来在端系统之间传送数据,不被用户网络程序直接使用,除了想Ping和Tracert这样的诊断程序。

ICMP报文格式
在这里插入图片描述

icmp请求报文的封装格式

Internet Control Message Protocol
Type: 8 (Echo (ping) request) // ICMP类型为8,说明这是一个ICMP请求查询报文
Code: 0 //表示是请求
Checksum: 0xf7e9 [correct] //校验和
[Checksum Status: Good] //校验和状态,good表示校验和正确,bad表示数据报被修改或者发生错误
Identifier (BE): 1 (0x0001) //标识,用于区分在linux下抓包,基本上抓的每一个ICMP包都是1
Identifier (LE): 256 (0x0100) //标识,用于区分在windows下抓包,基本上抓的每一个ICMP包都是256
Sequence number (BE): 21 (0x0015) //序列号,用于区分在linux下抓包,每一个ICMP包的序列号都不一样
Sequence number (LE): 5376 (0x1500) //序列号,用于区分在windows下抓包,每一个ICMP包的序列号都不一样
[No response seen]
Data (64 bytes) //数据部分

wireshark抓ICMP报文数据

使用ping在wireshark中捕获ICMP包:

1、ping程序使用ICMP协议的强制回显请求数据报以使主机或网关发送一份 ICMP 的回显应答。回显请求数据报含有一个 IP 及 ICMP的报头,后跟一个时间值关键字然后是一段任意长度的填充字节用于把保持分组长度为16的整数倍。主要用来检查网络是否通畅或者网络连接速度快慢,从而判断网络是否正常。

2、ping命令底层使用的是ICMP,ICMP报文封装在ip包里。它是一个对IP协议的补充协议,允许主机或路由器报告差错情况和异常状况。
3、查看通过ping命令抓的ICMP协议包,Info一列中,request是ICMP请求数据报,reply是ICMP回答数据报,另外request和reply是一组ICMP请求回答数据报

两个ICMP数据报的序列号都是一样的,说明了这两个ICMP数据报就是一组的。

使用Tracert在wireshark中捕获ICMP包

1、先在wireshark设置过滤器,将捕获icmp协议另存一个文件
打开控制台,让系统生成icmp数据包输入命令tracert 目标id地址

DHCP协议

定义

  • P(Dynamic Host ConfigurationProtocol,动态主机配置协议)是一个局域网的网络协议.
  • 用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段,在RFC2131中有详细的描述。
  • DHCP有3个端口,其中UDP67和UDP68为正常的DHCP服务端口,分别作为DHCP 服务端>和DHCP客户端的服务端口;546号端口用于DHCPv6客户端而不用于DHCPv4,是为DHCPfailover服务,这是需要特别开启的服务,DHCP failover是用来做"双机热备"的。

DHCP报文格式
在这里插入图片描述

op:  报文的操作类型。分为请求报文和响应报文。1:为请求报文,2为响应报文
htype:  DHCP客户端的硬件地址类型。1代表以太网
hlen: DHCP客户端的硬件地址长度。Ethernet为6
hops: DHCP报文经过的DHCP中继的数目,默认为0.报文每次经过一个DHCP中继,该字段就会加1 
xid:  客户端发起一次请求的随机数。
secs: DHCP客户端开始DHCP请求后所经过的时间。目前尚未使用,固定为0
flags: DHCP服务器响应报文是采用单播还是广播方式发送。只使用第0比特位。0表示单播,1表示广播。其余比特为保留
ciaddr: DHCP客户端的IP地址
yiaddr: DHCP服务端分配给客户端的IP地址
siaddr: DHCP服务端的IP地址
giaddr: DHCP客户端发出请求报文后经过的第一个DHCP中继的IP地址,也就是网管IP地址
chaddr: DHCP客户端的硬件地址,也就是MAC地址 
sname: 服务器的名称
 file: DHCP服务器为DHCP客户端指定的启动配置文件名称及路径信息
options: 可选变长选项字段,包含报文的类型,有效租期,DNS服务器的IP地址等

功能

1、保证任何IP地址在同一时刻只能由一台DHCP客户机使用

2、DHCP可以给用户分配永久固定的IP地址

3、DHCP允许用其他方式获取IP地址的主机共存,如手动配置IP地址的主机

工作流程

网络上首先必须有一台DHCP服务器,而其他的计算机则是DHCP客户端。当DHCP客户端程序发出一个信息,要求一个动态IP地址时,DHCP服务器将根据,目前配置的IP地址池,从中提供一个可供使用的IP地址和子网掩码给客户端。

wireshark抓DHCP报文数据

推荐看这篇博客,分析的很清楚!
https://blog.csdn.net/swanabin/article/details/58171839
分析

要想抓取到DHCP包,先要保证有可用的DHCP服务器,然后将主机IP地址获取方式设置为自动获取。如果主机在抓包之前已经联网,需要先断开主机的网络连接,然后再连接网络。在cmd下使用命令ipconfig来完成网络断开与连接的过程:

bash ipconfig /release 断开主机当前的网络连接 ipconfig /renew 请求连接网络
(1)ipconfig /release 断开当前的网络连接,主机IP变为0.0.0.0,主机与网络断开,不能访问网络。
(2)ipconfig /renew 更新适配器信息,请求连接网络,这条命令结束之后,主机会获得一个可用的IP,再次接入网络。

2、开始抓包

  • 在Wireshark中点击start开始抓包,在过滤栏输入bootp,使其只显示DHCP数据包。然后在cmd中输入ipconfig /release 断开网络连接。 当Wireshark中截获到一个DHCP Release数据包。

  • 在cmd中输入ipconfig /renew 请求网络连接。 此时,可以看到在Wireshark中新增了4个DHCP数据包:
    数据包1:DHCP Discover
    数据包2:DHCP Offer
    数据包3:DHCP Request
    数据包4:DHCP ACK
    等待这条命令执行完毕之后,在cmd中可以看到主机被分配了IP,主机成功连入网络中。
    为了后续分析使用,我们再执行一次ipconfig /renew

最后将抓到的dhcp包分析,具体可以看这篇博客哟
https://blog.csdn.net/qq_24421591/article/details/50936469

DNS协议

定义

1、DNS协议则是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)。
2、DNS协议基于UDP和TCP协议的,端口号53,用户到服务器采用UDP,DNS服务器通信采用TCP。
3、大型运营商、互联网机构等会向公众提供免费的DNS服务,例如,谷歌的8.8.8.8 8.8.4.4 阿里巴巴223.5.5.5
223.6.6.6 4、如果DNS服务器down掉了,那么你只能通过IP地址来访问服务了。

DNS报文格式
在这里插入图片描述
关于DNS协议的分析这篇博客写的很好哟
https://blog.csdn.net/hunanchenxingyu/article/details/21488291

HTTP协议

这个的内容很多,而且比较重要,在CSDN上找到一篇很详细的讲解:
https://blog.csdn.net/sunrise_2013/article/details/9232473?spm=1001.2014.3001.5502

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值