ping和traceroute

PING和traceroute
ping

ping实际作用是用来查询两个主机之间是否可达,具体过程如下:

  1. ping是基于ICMP协议的,首先构建ICMP请求报文(类型为0),IP层协议再以ICMP为数据部分构造IP数据包,
  2. 如果两台主机在局域网内,则需要查询目的主机的mac地址(通过ARP协议查询),如果是在互联网中,则需要查询相应路由器的mac地址(通过ARP协议)查询到了相应mac地址后,构造数据链路层帧,并将帧发送给目的主机(路由器),
  3. 当目的主机收到请求后,会向源主机发送ICMP响应,当源主机收到响应则表示网络可达,如果超时则显示超时(网络不可达),同时ping还可以计算网络响应延迟
traceroute

即路由追踪,可以追踪到达目的主机上的所有路由器的情况,可以显示所经过的路由器的ip等信息,具体实现方式有两种

  1. 基于UDP的实现方式
    • 源主机每次构造一个UDP包(端口号大于30000),开始TTL为1,第一个路由器收到后,返回超时ICMP报文
    • 源主机再次构造一个UDP包,TTL为2,第二个路由器收到后,返回超时ICMP报文
    • 如此直到到达目的主机,目的主机返回端口不可达ICMP报文
  2. 基于ICMP报文
    • 源主机每次构造一个ICMP回显请求报文,开始TTL为1,第一个路由器收到后,返回超时
    • 下一次构造TTL为2,第二个路由器收到后返回超时
    • 直到到达目的主机后,目的主机发送ICMP回显应答报文
发布了23 篇原创文章 · 获赞 4 · 访问量 2131

猜你喜欢

转载自blog.csdn.net/hdadiao/article/details/104614489