石家庄快餐美食交流组

网络中经常接触的Ping 一次性教你弄懂如何检测三层网络

只看楼主 收藏 回复
  • - -
楼主
华为云存储

ipv4协议为面向无连接协议,而icmp是协助ipv4,用于检测三层网络的连通性、差错提示和路径优化(重定向redirect)。

因特网控制消息协议:icmp 为控制层面协议

ipv4协议为面向无连接协议,而icmp是协助ipv4,用于检测三层网络的连通性、差错提示和路径优化(重定向redirect)。

报文封装:ethernet2/ipv4/icmp/fcs(ip协议号1)

注:type:类型 code:编码 checksum:icmp报文校验。

icmp消息类型和编码类型(code);目的不可达报文、源端抑制报文、超时报文、参数问题、改变路由、回送请求和回答、时间戳请求和回答、地址掩码请求和回答、路由询问和通告;部分如下:

ping命令:echo request 回声请求

echo reply 回声应答:

traceroute命令:路由跟踪

报文封装:ethernet 2/ipv4/udp/traceroute/fcs udp 端口号33434

原理:traceroute 命令用ttl字段和 icmp 错误消息来确定从一个主机到网络上其他主机的路由。首先traceroute送出一个ttl是1的ip 数据包到目的地,当路径上的第一个路由器收到这个数据包时,分组改写引擎将ttl减1。此时,ttl变为0,所以该路由器会将此数据包丢掉,并送回一个「icmp time exceeded」消息(包括发ip包的源地址,ip包的所有内容及路由器的ip地址),traceroute收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个ttl是2 的数据包,发现第2 个路由器...... traceroute 每次将送出的数据包的ttl 加1来发现另一个路由器,这个重复的动作一直持续到某个数据包抵达目的地。当数据包到达目的地后,该主机则不会送回icmp time exceeded消息,一旦到达目的地,由于traceroute通过udp数据包向不常见端口号33434发送数据包,因此会收到「icmp port unreachable」消息,故可判断到达目的地。

注:traceroute 1.1.1.1 source 2.2.2.2 指定源地址traceroute目的地址,思科带源traceroute的源地址必须是该路由器的接口地址,防止ddos攻击。

 


举报 | 1楼 回复

友情链接