4.4.1 ICMP报文的种类

  • ICMP报文分为两种
    1、ICMP差错报告报文
    2、ICMP询问报文

  • ICMP差错报告报文
    1、终点不可达:路由器或主机不能交付数据报时就向源点发送终点不可达报文
    2、时间超过:当路由器收到生存时间为0的数据报时,丢弃该数据报,还要向源点发送时间超过报文。
    当终点在预先规定的时间内未收到一个数据报的全部报片时,会丢弃已收到的数据报片,并向源点发送时间超过报文
    3、参数问题:当路由器或目的主机收到的数据报的首部有字段不正确时,就丢弃该数据报,并向源点发送参数问题报文
    4、改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给 别的路由器(更好的路由),详情见下

  • 改变路由报文
    互联网上的 主机 自身也有一个路由表
    当主机要发送数据报时,首先查找 主机自己的路由表 ,确定从哪个接口将数据报发送出去
    由于互联网中的 主机数量 远大于 路由器的数量 ,考虑效率问题,主机一般不和连接在网络上的路由器定期交换路由信息
    主机刚开始工作时,一般都在 主机路由表 中设置 一个默认路由器的ip地址,主机发出所有的数据报都先被传送给这个默认路由器
    默认路由器 知道 到每一个网络的最佳路由(通过和其它路由交换信息可以得到)
    若默认路由器 发现主机发往某个目的地址的数据报的最佳路径 应当经过 另一个路由器 而不是 默认路由 时,就向主机发送改变路由报文
    于是主机就在其路由表中增加一个项目:到xx目的地址应经过路由器R(而不是默认路由器)

  • ICMP差错报告报文格式
    在这里插入图片描述

0 ~ 3 byte:统一的格式
4 ~ 7 byte:取决于ICMP差错报告报文的类型
其余部分:就是ICMP差错报告报文的 数据部分,由需要进行差错报告的 分组的首部分组数据字段的前8个字节 提取出来,作为ICMP差错报告报文(ip数据报的数据字段前8个字节是为了得到 运输层的端口号运输层报文的发送序号
在这里插入图片描述

  • 不需要发送ICMP差错报告报文的几种情况
    1、不需要为ICMP差错报告报文发送ICMP差错报告报文
    2、为分片数据报的 第一个分片 发了,后续分片 都不用发了
    3、多播地址的数据报
    4、特殊地址的数据报(如 127.0.0.0 或 0.0.0.0)

  • ICMP询问报文
    1、回送请求和回答 报文
    主机或路由器特定目的主机 发出的 回送请求报文,收到此报文的主机必须给源主机或路由器发送ICMP回送 回答报文
    此种报文一般用于测试目的站是否 可达
    2、时间戳请求和回答 报文
    请求 某台主机或路由器 回答 当前的日期和时间
    时间戳回答报文 有一个32bit的字段存放从 1900年1月1日当前时刻 一共有多少秒
    主要用于时钟同步和时间测量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值