• 为什么ping不通,而traceroute却可以通


    ping是走ICMP协议。tracert走追踪路由的吓一跳。。两个命令是不一样。
    如果服务器没有启用ICMP协议或者防火墙禁用ICMP,还有地址映射的时候没有做ICMP的映射,都会导致ping不通。。
    tracertoute 需要路由交换开启ip追踪才行。

    在这里插入图片描述
    说明目标机拒绝响应ICMP的echo而已。
    ping的时候,是发一个icmp的echo,目标机相应一个reply。然后就认为是通了。
    traceroute也是发icmp echo,但是,把TTL从1开始,逐渐增加。在通路上的节点,收到一个TTL为0的ICMP的时候,就会回一个错误信息。通过这样的方式,获知通路上的节点的情况。
    如果某个目标机,不响应icmp echo,却还是响应了icmp echo中TTL为0的情况,就是你这个表现了。

    ping与traceroute都使用icmp协议,但其工作原理及ICMP中类型字段的定义是不同的:
    对于ping,发送的是一个echo request包,类型为 8 0,当被ping者接到相关icmp包的时候,根据实际情况,逻辑是,就发回 reply 0 0,逻辑否,则根据具体情况发出一些其他的信息,总结起来的说,是看目的是否能及时的把icmp reply包送回到源,一当路径上的某个节点把reply包给deny掉了,就肯定ping不通了,比如会是time out,
    对于traceroute,本质可以理解为hop by hop的ping,但这个ping和上面讲的ping不一样,这个ping和我们的ping命令不同,traceroute包发出去后,途经的每个站点都会发回一个 类型代码为11 0的icmp 包回去,到了终点,才回发送一个代码为3 3的icmp包回到源
    因此,如果在某些途径的节点(路由器)上,限制了类型11的ICMP报文(ICMP报文是防火墙最常见的限制),就会出现你的情况。

  • 相关阅读:
    集群方法同步执行框架 Suona
    一个案例搞懂工厂模式和单例模式
    数据结构之折半插入排序
    自己设计CPU学习之路——基于《Xilinx FPGA应用开发》
    Hyperreal number
    Map,String,Json之間轉換
    source /etc/profile卡住不动
    火爆全网,Python+Pytest+Allure+Jenkins接口自动化框架(步骤+源码)
    聚类算法模型评价指标
    C++ Reference: Standard C++ Library reference: C Library: ctime: gmtime
  • 原文地址:https://blog.csdn.net/weixin_43214644/article/details/125410549