IP 协议是一种不可靠的协议,无法进行差错控制。但 IP 协议可以借助其他协议来实现这一功能,如 ICMP。ICMP(Internet Control Messages Protocol, 网间控制报文协议)允许主机或路由器报告差错情况和提供有关异常情况的报告。
一般来说,ICMP 报文提供针对网络层的错误诊断、拥塞控制、路径控制和查询服务四项大的功能。ICMP报文如下:
1.Echo & Echo Reply
我们使用一个 ICMPECHO 数据包来探测主机地址是否存活(当然在主机没有被配置为过滤
ICMP 形 式 ), 通 过 简 单 的 发 送 一 个 ICMPECHO(Type 8) 数 据 包 到 目 标 主 机 , 如 果
ICMPECHOReply(ICMPtype0)数据包接受到,说明主机是存活状态。 如果没有就可以初步判断
主机没有在线或者使用了某些过滤设备过滤了 ICMP 的 REPLY。这种机制就是我们通常所用的 ping
命令来检测目标主机是否可以 ping 到.回送消息的源地址是回送响应消息的目的地址。若要形成一个回送响应消息,应该将源和目的地址交换,将类型代码更改为 0,重新计算机校验码。
2. 超时报文
如果网关在处理数据报时发现生存周期域为零,此数据报必须抛弃。网关同时必须通过超时
信息通知源主机。如果主机在组装分段的数据报时因为丢失段未能在规定时间内组装数据,此数
据报必须抛弃。网关发送超时信息。
3. 目标主机不可达报文
如果在目的域中指定的网络不可达,如网络距离为无限远,网关会向发送源数据的主机发送
目的不可达消息。而且,在一些网络中,网关有能力决定目的主机是否可达。如果目的地不可达,
它将向发送源数据的主机发送不可达信息。在目的主机,如果 IP 模块因为指定的协议模块和进程
端口不可用而不能提交数据报,目的主机将向发送源数据的主机发送不可达信息。
另外一种情况是当数据报必须被分段传送,而“不可分段”位打开,在这种情况下,网关必
须抛弃此数据报,并向向发送源数据的主机发送不可达信息。
1、ARP地址解析协议
地址解析协议,用于将IP地址解析为mac地址,在cisco路由器上可以使用debug arp查看arp消息
Aretha#debug arp
IP ARP:rcvd req src 172.19.35.2 0002.6779.0f4c, dst 172.21.5.1 Ethernet0
IP ARP:sent req src 172.21.5.1 0013.22af.febd,
dst 172.19.35.2 0002.6779.0f4c Ethernet0
可以使用show arp查看ARP表的内容.Cisco路由器保存Arp表的时间为4小时(14400s)
Martha(config)# interface ethernet 0
Martha(config-if)# arp timeout 1800
Arp表也可以实现静态绑定
Martha(config)# arp 172.21.5.131 0000.00a4.b74c snap
使用clear arp-cache 可以清空ARP缓存区
2、Proxy-ARP
代理arp即arp欺骗,路由器通过发送代理arp信息,让主机认为路由器即为目的主机。
通过这种方式,路由器可以转发数据流,cisco的路由器上,代理arp是默认打开的,可以在接
口上 no ip proxy-arp关闭代理arp
典型的使用代理arp的arp表
C:Documents and SettingsKevin Fang>arp -a
Interface: 192.168.1.111 --- 0x3
Internet Address Physical Address Type
192.168.1.34 00-d0-d0-33-af-cd dynamic
192.168.1.37 00-d0-d0-33-af-cd dynamic
192.168.1.1 00-d0-d0-33-af-cd dynamic
192.168.1.33 00-0a-eb-aa-33-ab dynamic
3、Gratuitous -ARP
主机偶尔会发送一个以自己 ip 作为目的地址的 arp 请求,防止 ip 冲突,但这种 arp 在很多 ip 中都没有实现
4、R -ARP
反向 arp 可以实现 ip 地址到已知硬件地址的映射,但很大程度上被 BOOTP 和 DHCP 所替代