wireshark中抓取ICMP报文「建议收藏」

wireshark中抓取ICMP报文「建议收藏」为了更有效地转发IP数据报和提高交付成功的机会,在网络层使用了网际控制报文协议ICMP(InternetControlMessageProtocol)[RFC792]。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成数据报发送出去。ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文…

大家好,又见面了,我是你们的朋友全栈君。

为了更有效地转发IP数据报和提高交付成功的机会,在网络层使用了网际控制报文协议ICMP(Internet Control Message Protocol)[RFC 792]。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成数据报发送出去。 ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文。

大家先了解一下几种常见的ICMP报文类型:
这里写图片描述

我们现在就来抓取报文
打开dos窗口,在里面输入ping mail.sina.com.cn:
这里写图片描述

打开wireshark,在filter栏中输入 ip.addr ==192.168.199.222(自己的IP地址) and (icmp or dns),敲回车。
再来看wireshark抓到的一堆报文:
这里写图片描述
可以看到我们抓到了八个ICMP报文,向对方主机询问(request)四次同时接收到四次应答(reply),这样加起来一共就有八个。而其上方的DNS报文起到了域名解析的作用,通过域名找到其IP地址,方便我们用户访问互联网。

Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据包访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。

我们看看发出的ICMP报文都经过了哪些路由器,再次打开dos窗口,输入 tracert mail.sina.com.cn
这里写图片描述

在filter栏中输入 icmp
这里写图片描述

抓到的报文有点多哈,我们先看顺数第一个和第二个,第一个ICMP的报文type类型是8,说明它为询问报文,而第二个报文type类型为11,说明超时了。
这里写图片描述
还有需要注意的是,我们主机发送的报文所设置的生存时间(TTL)在从1开始不断地变大,因为TTL每经过一个路由器的时候会被减1,当TTL等于0的时候就会被抛弃。所以一直这样下去,总有一次我们发送最后一个数据报刚刚到达目的主机时,数据报的TTL是1,这时候我们就不减1了。
从刚才的dos窗口可以看到,当我们的TTL达到13时,报文可以顺利发送到目的地,我们也就能顺利得到相应应答。
这里写图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131968.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号