首页 > 技术文章 > ICMP和ARP

zjm6159 2021-01-22 09:54 原文

ICMP协议

Internet控制报文协议(Internet Control Message Protocol)
ping ,tracert,使用的是ICMP协议

IP网络设备之间发送控制报文、传递差错,控制、查询等消息;

收到的是对方发的TTL值,自身发过去的只要足够“生存”就可以。

 

ICMP的报文结构

 ICMP的报文不固定,但是前面三位是一样的;

ICMP协议的上层协议是IP协议


ICMP的Ping

(1).ping使用的是ICMP中的Echo;
(2).Echo分两类,reply和request,回来的是00,去的是80


ICMP的重定向

 

用于支持没有路由能力的设备

(1).主机A的网关指向RB;当主机A在ping服务器A的时候,会先发送给RB;
(2).RB也有自己的路由表,认为服务器A的网关应该指向路由器A;
(3).路由器B向主机A发送了一个ICMP重定向,让他去找RTA
(4).之后主机去往服务器A就可以直接找RTA了。


ICMP的重定向在实际报文

(1).三个网段在同一个网段才会发送;
(2).实际中极少应用,路由器不可能因为主机指定错误的网关而更改自己的路由表;


什么时候产生重定向

a)数据包的入接口和路由后的从指定出接口是同一个接口;
b)数据包的源IP地址和该报应走的下一跳IP地址属于同一个网段;
c)系统开启重定向功能。


ICMP的tracert

基于报文的TTL值来逐跳跟踪报文的转发路径

 

(1).发送TTL为1的报文,经过的路由器会发送TTL超时的报文,
(2).所以可以读取到接口的地址,之后又将TTL设置成2,以此类推
(3).到目标设备时会回复端口不可达

 (4).每个会测试三个包

ARP

(1).地址解析协议(Address Resolution Protocol)
(2).是通过目的IP地址而获取目的MAC地址的过程:目的IP地址-->目标MAC地址
(3)目标AMC地址未知时需要做ARP

判断目标MAC地址未知:查看ARP缓存表,不管表中对错,表里没有对应的表项时,发起ARP查询,即发送广播


ARP的报文结构

 

 

ARP的报文

(1).请求报文
当不知道目的地址时,进行ARP广播
(2).解析报文

 

 1为请求,2为解析
去的时候时广播,回来的时候是单播


ARP代理应用场景

(1).用于一些没有路由能力的设备
(2).配置ARP代理后,PC2的网段虽然与PC1不同,但可以ping通PC1


免费ARP

 用来监测IP地址

 

推荐阅读