TCP/IP协议之ICMP协议

来源:互联网 发布:2017海岛奇兵神像数据 编辑:程序博客网 时间:2024/06/06 00:38

一 IP缺点

1 无差错报告和差错纠正机制;

2 缺少一种为主机和管理查询的机制。


ICMP本身是网络层协议,但是,它的报文不是如设想的那样传给数据链路层,实际上,ICMP报文首先封装成IP数据报,然后再传送给下一层;

在IP数据报中的协议字段是1就表示其IP数据是ICMP报文

ICMP封装在IP的数据里面


ICMP报文种类

1 差错报告报文:ICMP总是把差错报文报告给原始的数据源

    类型3:终点不可达(硬件问题)

    类型4:原点抑制(发送端数据发得太快,接受端接收得慢,会发生堵塞,则接收端会给发送端发送原点抑制报文)

    类型11:超时(TTL值降到0)

    类型12:参数问题(首部丢失或者被更改产生二义性,校验和机制)

    类型5:改变路由(路由重定向)(当发现一条捷径时,给发送端发送一个改变路由的报文)

2 查询报文:

    类型8或0:回送请求或回答(ping命令)

    类型13或14:时间戳请求或回答(发送端给接收端发送信息,发送端什么时候发送的,接收端什么时候接收的,系统都会记录该时间)

    类型17或18:地址码请求或回答(发送端不知道它的地址掩码,会向路由发送查询)

    类型9或10:路由器查询报告(发送端会给路由器发送查询机制,查询端口是否正常工作)


ICMP差错报文有以下要点:

1 对于携带ICMP差错报文的数据报,不再产生ICMP差错报文(例如,当报文由发送端经路由A发送到路由B,路由B此时发现终点不可达,于是产生一个ICMP终点不可达的差错报文,当该差错报文回传到路由A时,路由A不再产生一个差错报文)

2 对于分片的数据报,如果不是第一个分片,则不产生ICMP差错报文(当一个数据报很大时,将其分为100片,当某一包数据丢失时,只有对第一个分片产生ICMP差错报文,而不对其他分片产生ICMP差错报文)

3 对于具有多播地址的数据报,不产生ICMP差错报文(具有多播地址:私有地址,共有地址,多播地址,广播地址)

4 对于具有特殊地址(如127.0.0.0(回环地址)或0.0.0.0)的数据报,不产生ICMP差错报文