《数据通信与网络》笔记--ICMP

ICMP存在的意义

IP提供了不可靠的无连接的数据报传递,这样设计为了有效地利用资源,IP协议时一个尽力传递的服务,他将一个数据报从它原始的源端传递到最终的目的端。但是,它有2个缺点:缺少差错控制和缺少辅助机制。
IP协议没有差错报告和差错纠正机制,如过出现差错会发生什么?如果路由器找不到一个可以到达最终目的端的路由器会发生什么?
IP协议还缺少了一种为主机和管理查询的机制,主机有时需要确定一个路由器或者另一个主机是否活跃,有时网络管理员需要从一个主机或路由器得到信息。
因特网控制报文协议(Internet Control Message Protocol,ICMP)就是为了弥补以上的缺点而设计的。他是配合IP协议使用的(ICMP报文作为IP的数据进行传输)。

报文类型

ICMP报文分为2大类:差错报告报文(error-reporting message)和查询报文(query message)。
差错报告报文向路由器或者主机报告在处理一个IP数据报时可能碰到的一些问题。
查询报文是成对出现的,他帮助主机或网络管理员从一个路由器或一个主机得到特定的信息。

差错报告

ICMP不能纠正错误,它只是报告差错,差错纠正是留给高层协议去完成的,差错报文总是发送给原始的源端。
共有5种差错可处理:
关于ICMP差错报文有下列要点:
1.对于携带ICMP差错报文的数据报,不再产生ICMP差错报文。
2.对于分段的数据报,如果不是第一个分段则不产生ICMP差错报文。
3.对于多播地址的数据报文,不产生ICMP差错报文。
4.具有特殊地址,如127.0.0.0或0.0.0.0,不产生ICMP差错报文。
目的端不可测
当路由器不能给数据报找到路由或者主机不能传递数据报时,就丢弃这个数据报,然后这个路由器或主机就发回目的端不可达报文(destination-unreachable message)。
源端抑制
IP协议是无连接的协议,源主机从来不知道某些路由器或目的主机是否已经被过多的数据报造成超载,源主机也从来不知道它产生的数据报是否太快,以致路由器来不及转发或者目的主机来不及处理。
如果数据报的接收速率比它们被转发的速率快的多,则接收方的缓存就会溢出,这个时候,路由器或者主机别无选择,只能将数据报丢弃。源端抑制报文(source-quench message)就是为了给IP增加一个流量控制而设计的。当路由器或者主机因拥塞而丢弃数据报时,他就想数据报的发送方发送源端抑制报文。
时间超时
时间超时(time-exceeded message)是在2种情况下产生的。其一,每一个数据报都有生存时间字段,在进行路由时,每经过一跳路由器该字段值就减1,如果该字段为0时,就丢弃这个数据报,此时路由器就要向源端发送一个时间超时报文。其二,当组成一个报文的所有分段未能在某一时限内到达主机,也要产生时间超时报文。
参数问题
当数据报在因特网上传播时,在某头部中出现的任何二义性都可能会产生严重的问题。如果路由器或目的主机发现了这种二义性活在数据报中某个字段缺少某值,他就丢弃这个数据报,并向源端发送参数问题(parameter-problem message)报文。
重定向
在下面的情况下发送重定向报文。

主机A想要想主机B发送数据报,路由器R2显然是最有效的路由选择,但是主机A没有选择R2,而是选择R2,数据报发送发送R1,R1查找路由表后发现分组应当走R2,它把分组发送到R2,并同时向主机A发送重定向报文,这时主机A的路由表就更新了。


查询

共有四种查询报文:

回送请求和回答
回送请求报文(echo-request message)和回送回答报文(echo-reply message)是为了诊断目的而设计的。它们组合起来确定两个系统能够彼此通信,ping命令就是创建一系列回送请求或者回送回答报文。
时间戳请求和回答
两个系统(主机或者路由器)可使用时间戳请求报文(timestamp request message)和时间戳回答报文来确定IP数据报在2个系统之间往返所需的时间,它也可以做两个机器之间的时钟同步。
地址掩码请求和回答
该请求和回答能获取目的主机的掩码。
路由器请求和回答
主机通过路由器请求和回答获取本局域网的路由器是否正常工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值