ICMP协议

(1) ICMP协议工作在网络层

(2) 提出的目的:为了更加有效地转发IP数据报提高交付成功的机会

(3) 作用:

<1> 简单点说:当转发IP数据报出现错误时,给出原因。

<2> 具体点说:当路由器或者主机发送IP数据报出现错误时,路由器或者主机会向源点发送原因。

注意:ICMP是网络层的自我检测,用来检测信息是否到达目的地。若没到达,在提供原因。

(4) 怎么发送数据:以IP数据报为载体发送

具体来说:ICMP差错报文的数据字段:IP数据报的首部和数据字段的前八个字节(包含端口号和发送序号)

(5) 分类:

<1> ICMP差错报告报文 -- 都是由发现问题的主机或路由器向源点发送。

1)终点不可达:找不到目的主机

2)源点抑制:网络拥塞

3)时间超过:收到的数据报生存时间为0(没有在预定时间内收到数据报)

4)参数问题:数据报首部出现问题。

5)改变路由:到达目的地址的最佳路径不经过默认路由,要改变路由表中的表相。

<2> ICMP询问报文

1)回送请求和回答:检测网络性能,通不通

2)时间戳请求和回答:请某个主机或者路由回答当前时间。用于同步。

(6) ICMP协议的应用:

<1> ping命令:判断两个主机之间的连通性

原理:向目的主机发送回送请求和回答报文,之后根据目的主机的回复,就可以检测。

<2> Traceroute命令:获得源点到终点的路径

原理:向目的主机发送一连串IP数据报,IP数据报中包含的是无法交付发的UDP数据报(端口非法)。

具体来说,分两种数据报。

工作原理:Traceroute从源主机向目的主机发送一连串的IP数据报,数据报中封装的是无法交付的UDP用户数据报。

<1> 第一个数据报P1的生存时间TTL设置为1。当P1到达路径上的第一个路由器R1时,路由器R1先收下它,接着把TTL的值减1。由于TTL等于零了,R1就把P1丢弃了,并向源主机发送一个ICMP时间超过差错报告报文

<2> 源主机接着发送第二个数据报P2,并把TTL设置为2。P2先到达路由器R1,R1先收下后把TTL减1再转发给路由器R2。R2收到P2时的TTL为1,但减1后TTL变为零了。R2就丢弃P2,并向源主机发送一个ICMP时间超过差错报告报文。这样一直继续下去。

<3> 当最后一个数据报刚刚到达目的主机时,数据报的TTL是1。主机不转发数据报,也不把TTL值减1。但因IP数据报中封装的是无法交付的运输层的UDP用户数据报,因此目的主机要向源主机发送ICMP终点不可达差错报告报文。这样,源主机达到了自己的目的,因为这些路由器和最后目的主机发来的ICMP报文正好给出了源主机想知道的路由信息——到达目的主机所经过的路由器的IP地址,以及其中的每一个路由器的往返时间。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值