【计算机网络】网络层 网际控制报文协议ICMP(Internet Control Message Protocol)

目的

为了提高IP数据报交付成功的机会,在网络层使用了网际控制报文协议(ICMP)来让主机或路由器报告差错和异常情况

ICMP报文格式

前四个字节  | 共三个字段:类型,代码和校验和
接着四个字节  | 内容与ICMP类型有关
数据字段  | 长度决定于ICMP类型

报文种类

ICMP差错报告报文

种类

1、3,终点不可达:当路由器或主机不能交付数据报时,就可向源点发送重点不可达报文
2、11,时间超过:当路由器收到生存时间(TTL)为零的数据时,除了丢弃该数据外,还要向源点发送时间超过报文(收到目的IP地址不是主机的报文时,就把TTL减去1,TTL大于0就转发出去,等于0则丢弃并发送时间超过报文)
3、12,参数问题:当路由器或者目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文
4、5:改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)
5、源点抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢(注:已不再使用

不应该发送ICMP差错报文的情况

1、对ICMP差错报告报文不在发送ICMP差错报告报文
2、对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
3、对具有多播地址的数据报都不发送ICMP差错报告报文
4、对于具有特殊地址(如127.0.0.0或者0.0.0.0)的数据报不发送ICMP差错报告报文

ICMP询问报文

1、8或0,回送请求和回答报文:由主机或路由器向特定的目的主机发出的询问,收到此报文的主机必须给源主机或者路由器发送ICMP回送回答报文。用于测试目的站是否可达以及了解其有关状态
2、13或14,时间戳请求和回答报文:请求某台主机或路由器回答当前的时间和日期。用于时间同步和时间测量
已不再使用的略

ICMP的应用

分组网间探测(Packet Internet Groper, Ping)

1、测试两台主机之间的连通性,使用ICMP回送请求和回答报文
2、工作在应用层,直接使用网络层ICMP,而未使用传输层的TCP或UDP

工作原理 PING命令由本地本机向要测试的远程主机连续发送四个ICMP回送请求报文,如远程主机正常工作,则响应并发回ICMP回送回答报文(有的主机为了防止恶意攻击就不理睬外界发送过来的这种报文)。由于往返的ICMP报文都有时间戳,因此最终得出了往返时间以及报文的发送接收丢失的结果(不会给出丢失的原因)

Traceroute/Tracert

1、用来跟踪分组从源点到终点经过的路径(路由)使用了ICMP时间超过报文
2、工作在网络层

工作原理 Tracerroute反复发送IP数据报,并将TTL从1开始逐渐升高。每当路由器接收到IP报文以后则将TTL减去1,当TTL减为0的时候路由器向源主机发送ICMP时间超过差错报告报文。当目的主机接收到TTL恰为1的数据报时,由于IP数据报封装的是无法交付的UDP用户数据报(故意使用一个非法的UDP端口),目标主机会向源主机发送ICMP终点不可达差错报告报文。接收到该报文后Traceroute发送终止。由此,使用Traceroute源主机就获得了到达目的主机所经过的所有路由器的相应的跳数,以此可建立网络的拓扑结构。整个过程相当于进行了一个广度优先搜索

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值