计算机网络协议分析 第七课 ICMP

本文详细介绍了ICMP协议,包括ICMPv4报文的类型和功能,如差错报告报文(终点不可达、超时、参数错误、重定向)和请求应答报文(回送、时间戳、路由器通告/恳求)。同时讨论了ping不通的原因、IP协议无差错报告的特点、Tracert程序的工作原理及ICMP的安全问题,如Smurf攻击和路由欺骗。此外,还涉及了如何利用ICMP进行网络故障诊断和性能测量。
摘要由CSDN通过智能技术生成

第五章 ICMP

ICMP协议

:当你ping一些网站的时候ping不通,是否代表着一定是数据报出错或半路丢失?
:可能是拒绝你的请求,也可能是拒绝发响应。我们学校的官网就是属于ping不通,但用浏览器能打开

:如何理解“IP协议没有差错报告报文”?
:从“传输过程中IP数据报是否出错?是否到达目的主机?”方面理解

:ICMP用于向谁报告差错?可报告哪些差错?可纠正差错吗?哪些节点需要运行ICMP?
:ICMP中只含源地址和目的地址所以向源站报告差错。报告的差错有网络问题,路由器问题,网络构造等问题。不可纠正差错。发送方、接收方、节点都要运行ICMP

5.1 ICMPv4报文

ICMPv4报文
已知ping -l出去的默认32字节
ICMP报文ping出去时,32(原默认字节)+8ICMP首部+20数据部分=60字节

ICMPv4报文的类型

ICMPv4报文类型
详见课本P66,推荐背诵

ICMPv4差错报告报文

ICMPv4差错报告报文
在ICMPv4差错报告报文中,可以得知以上4种信息。
从上到下:

  1. 在ICMP首部中获取
  2. 在ICMP首部中获取
  3. 后面一个IP首部中获取
  4. 后面一个IP首部中获取

1. 终点不可达ICMP报文

终点不可达

由“代码”字段指明丢弃该数据报的具体原因:

  • 网络不可达(代码=0)路由器找不到目标网络后被丢弃
  • 主机不可达(代码=1)最后一个路由器找不到目的MAC(由于关机等原因)
  • 协议不可达(代码=2)由于路由器或主机的协议被卸载等情况而消失了
  • 端口不可达(代码=3)主机或者路由器的端口没开,无法访问
  • 不能分片(代码=4)DF位被置位,数据报不能分片却遇到必须分片的情况
    。。。。

2.超时ICMP报文

超时ICMP报文
两种情况下产生:

  1. TTL=0(代码=0)路由器上的问题,主机上不会遇到,因为主机不会执行TTL-1的操作
  2. 数据报分片重组超时(代码=1)目标主机上会遇到

3.参数错误ICMP报文

参数错误ICMP报文
当IP数据报的首部出错时:

  1. IP首部某字段有差错时,代码=0,指针指向差错字段
  2. 缺少所需的选项时,代码=1,指针不使用

4.重定向ICMP报文

重定向ICMP报文
当网络拓扑发生变化时,路由重定向ICMP报文可以更新主机的路由表。(所以主机是有路由表的,用route print查看路由表)
当A向C发送数据时,A会向R1查询主机C的信息,然后发现R2是必经的路径,从A自己走会更好,于是发重定向报文给A,使A的路径改成A-R2-C

例题P77,第三题
例题
答:因为R5不是S的网关,于是发送的信息无法改变S的路由表,下一个MAC依旧是R1。如果R4和R1在同一个位置就可以。

ICMPv4请求应答报文

功能:实现对网络的故障诊断与网络控制
ICMP请求应答报文总是在源和目标之间双向、成对出现

类型值报文类型作用
8/0回送请求/应答报文测试两个站点之间连通性
13/14时间戳请求/应答报文测试两个站点之间的往返时间
9/10路由器通告/恳求报文通告/寻找默认路由器

1.回送请求和应答报文

回送请求和应答报文

  • 类型=8/0:回送请求/回送应答报文
  • 回送应答报文“数据区”=回送请求报文“数据区”
  • 标识和序号:用来匹配请求报文和应答报文
  • 注意:成对的请求和应答报文使用相同的“标识”和“序号”字段

2.时间戳请求和应答报文

时间戳请求和应答报文

  • 初始时间戳:发送方发送请求报文时填写
  • 接收时间戳:接收方收到请求报文时填写
  • 传送时间戳:接收方发送应答报文时填写

问1:如何估算往返时延?
:往返时延=发送方收到应答报文的时间-初始时间戳

问2:如何估算传输时延?
:传输时延=往返时延-(传送时间戳-接收时间戳)

3.路由器通告和恳求报文

路由器通告和恳求报文
路由器定期(10分钟)广播发送路由器通告报文,正在监听的主机更新路由表
主机启动后广播发送路由器恳求报文,寻找默认路由器
这个报文无线用的多,移动用的少

PING程序

  • 在命令行中输入:ping -f -l 1472 192.168.1.1
  • 如果出现:Packet needs ti be fragmented but DF set.(表示数据包太大需要分片,DF位被置位无法分片)
  • 当ping成功时:MTU=-l后面的数据+ICMP头(8字节)+IP头(20字节)

Tracert程序

Q1:描述Tracert程序的工作过程
:主机A向R1、R2各发送3个类型值8的回送请求报文,收到超时ICMP报文,再向B发送3个回送请求报文,收到类型值为0的超时应答报文

Q2:Tracert程序运行结束时主机A发出IP数据报的总个数?
:3*3,对R1、R2、B三个各发三个报文

Q3:主机A收到哪几种类型ICMP报文?
:请求,相应,超时三种
衍生:windows操作系统下Tracert程序正常运行时使用了哪些类型的ICMP报文?
:回送请求和应答报文、超时;如果是UNIX系统则是超时和终点不可达

Q4:主机A如何判断何时结束Tracert程序?
:B向A发送的不同于R1、R2发送类型的类型值为0的超时应答报文

Traroute的区别:
A发送的是UDP,R1,R2发回的内容一致,B发的是端口不可达的网络不可达报文。

衍生:以下ICMP差错报告报文中,哪些类型是既可能由路由器生成也可能由目的主机生成的?( )
A:终点不可达 B:超时
C:重定向 D:参数错误
答案在末尾哦~

Tracert与IP记录路由选项

IP首部记录路由选项
一句话来说就是,记录路由选项是来回的
例题

5.2 ICMP的安全问题

课本P76

基于ICMP的DOS攻击:ICMP Smurf攻击

攻击方伪装自己的IP地址为被攻击方的IP地址给目标网络主机发送ICMP回送请求报文,目标网络向被攻击方发送ICMP回送应答报文,导致对被攻击方造成DDos攻击
Smurf攻击

基于ICMP重定向的路由欺骗

向网络中发送伪造的路由重定向ICMP报文,让所有主机将到达某些目的网络的IP数据报都转发给自己。

衍生题答案:A、B

上一课:第6课 IPV6
下一课:第8课 UDP

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值