ICMP协议
廖家龙 用心听,不照做

ICMP协议:

TCP/IP协议栈:

ICMP协议:为了更有效的转发IP数据报和提高交付成功的机会

网际控制报文协议ICMP:ICMP协议支持主机或路由器:差错(或异常)报告、网络探询,发送特定ICMP报文【ICMP差错报文、ICMP询问报文】

ICMP差错报告报文:
1)终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文【无法交付】
2)源点抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢【拥塞丢数据】
3)时间超过:当路由器收到生存时间TTL=0的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文【TTL=0】
4)参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文【首部字段有问题】
5)改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)【值得更好的路由】

不应发送ICMP差错报文的情况:
1)对ICMP差错报告报文不再发送ICMP差错报告报文
2)对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
3)对具有组播地址的数据报都不发送ICMP差错报告报文【广播是一对全部;组播是一对多,有选择性的】
4)对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文

ICMP询问报文:
1)回送请求和回答报文:主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文【测试目的站是否可达以及了解其相关状态】
2)时间戳请求和回答报文:请某个主机或路由器回答当前的日期和时间【用来进行时钟同步和测量时间】
3)掩码地址请求和回答报文
4)路由器询问和通告报文

ICMP的应用:
1)PING:测试两个主机之间的连通性,使用了ICMP回送请求和回答报文
2)Traceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文