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地址