1. ICMP
ICMP控制报文协议:用于传递差错报文和其他需要注意的信息。
除了差错报文,还有回显报文、回显响应报文(Ping使用),时间戳请求、时间戳应答;路由通告、路由请求;地址掩码请求、地址掩码应答(无盘工作站获取自己的地址掩码)。
2. ICMP是主机之间的信息交换,不能到端口。
3. ICMP应用
3.1. Ping
使用回显类型,标识字段使用的是进程,因此运行多个Ping也可也匹配相应的回显。
IP首部会有TTL,另外可以在内容中记录时间,因此可以计算RTT。也可也使用IP记录路由选项(RR)。
3.2. Traceroute
使用ICMP和IP头部的TTL字段。Ping一般设置TTL为最大值255。
TTL的目的是防止报文在网络中无限传递。当TTL为0或1时,路由器会产生ICMP差错报文,并将相应的IP设置为路由IP。因此Traceroute根据设置TTL值,以及其返回的ICMP即可知道相应路由器和发送主机的距离。
Traceroute实现是发一份UDP报文,且选择不可能的值为端口;并设置TTL值,如果UDP报文真正到的目的地后会产生ICMP“端口不可达”错误报文,否则TTL减到1还没到目的地,则路由器返回超时。因此Traceroute只要处理好ICMP错误报文的类型即可。
4. IP选路
路由表,注意与ARP缓存表比较
4.1. 静态路由
4.2. 动态路由(选路信息协议---RIP),用于路由器间通信。
4.2.1. 自治系统(AS)
4.2.2. 内部网关协议(IGP),也称域内选路协议(IRP)。开放最短路径优先(OSFP)是一种IGP,意在替代RIP协议。
4.2.3. 外部网关系统(EGP)
4.2.4. 边界网关协议(BGP),意在替代EGP。