Ping和Traceroute命令详解

Ping和Traceroute命令详解1.概述ICMP是IP层的一个组成部分,报文在IP数据包内部被传输在IP通信中,经常有数据包到达不了对方的情况。原因是,在通信途中的某处的一个路由器由于不能处理所有的数据包,就将数据包一个一个丢弃了。或者,虽然到达了对方,但是由于搞错了端口号,服务器软件可能不能接受它。这时,在错误发生的现场,为了联络而飞过来的信鸽就是ICMP报文。在IP网络上,由于数据包被丢弃等原因,为了控制将必要的信息传递给发信方。ICMP协议是为了辅助IP协议,交换各种各样的控制信息而被制造出来的ICMP是基于I

1.概述

ICMP是IP层的一个组成部分,报文在IP数据包内部被传输

在这里插入图片描述
在IP通信中,经常有数据包到达不了对方的情况。原因是,在通信途中的某处的一个路由器由于不能处理所有的数据包,就将数据包一个一个丢弃了。或者,虽然到达了对方,但是由于搞错了端口号,服务器软件可能不能接受它。这时,在错误发生的现场,为了联络而飞过来的信鸽就是ICMP 报文。在IP 网络上,由于数据包被丢弃等原因,为了控制将必要的信息传递给发信方。ICMP 协议是为了辅助IP 协议,交换各种各样的控制信息而被制造出来的

  • ICMP是基于IP协议工作的,但是它并不是传输层的功能,因此仍然把它归结为网络层协议
  • ICMP只能搭配IPv4使用,如果是IPv6的情况下, 需要是用ICMPv6

ICMP报文结构:
在这里插入图片描述
类型字段可以有15个不同的值,以描述特定类型的ICMP报文。某些ICMP报文还使用代码字段的值来进一步描述不同的条件,不同类型由报文中的类型字段和代码字段来共同决定,其中比较重要的

  • 类型3 代码1 主机不可达 差错报文
  • 类型3 代码3 端口不可达 差错报文

总的来分,ICMP报文分为查询报文和差错报文,下面的情况一定不会导致差错报文:

  • 来源报文就是一个ICMP差错报文
  • 目的地址是广播或多播地址的IP数据报
  • 作为链路层广播的数据报
  • 不是IP分片的第一片
  • 源地址不能为零地址,环回地址,广播地址,多播地址

2.Ping

Ping发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答

如果我们Ping不通某台主机,可能是因为防火墙或者路由器限制了某种协议或者端口号,也可能并非完全不可达

在这里插入图片描述

Ping的回显类型是很重要的

Ping命令也可以通过-R选项也可以查看路由,但是IP首部只有有限的空间,所以我们要查看路由跳还是用traceroute

Ping的工作原理,是利用去向的Type 8(Echo Request),以及返程的Type 0 ( Echo Reply

3.Traceroute程序

它可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由

和ping命令的区别

  • 不同于Ping,它不需要中间路由器具备任何特殊的功能
  • 它没有了Ping的IP首部空间不足的问题

Traceroute的核心是ICMP报文和IP首部中的TTL字段

当路由器收到一个Traceroute发送的UDP报文时,如果TTL减一是0,然后返回一个ICMP报文(因为traceroute会指定一个端口很大的端口,一定没有程序使用,所以并不会交给应用程序),会通过ICMP Type 11 发送出错消息“TTL Expired”

Traceroute程序本身就是通过不断改变TTL找到中间路由,但是很多服务器屏蔽了ICMP错误报文,这样就会返回 ***这种
在这里插入图片描述

今天的文章Ping和Traceroute命令详解分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/10066.html

(0)
编程小号编程小号

相关推荐

发表回复

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