IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> day16、3 - ICMP协议 -> 正文阅读

[网络协议]day16、3 - ICMP协议

一、ICMP协议

1.ICMP协议概述

  • ICMP协议同IP协议,ARP协议属于网络层的协议。IP协议封装的IP包头中的协议号值为1表示是同层的ICMP协议传给IP协议的;协议号值为6表示是上层TCP协议传给IP;协议号值为17表示是上层UDP协议传给IP

    image-20211105200803641
  • 误区:ICMP协议属于三层协议,故没有对应的端口号。只有五层协议才有对应的端口号

2.ICMP的作用

  • 可以利用ICMP的网络探测和回馈机制,来实现①网络探测,②路由跟踪,③错误反馈

3.ICMP协议的封装格式

  • ICMP协议生成的ICMP报文组成部分:ICMP头数据

4.数据与ICMP头

1)数据

  • 数据字段没有任何意义,一般会填充一些字符,比如0000…或者abcdefg…,只表示有内容

2)ICMP头

  • ICMP头的组成:ICMP类型字段,代码

  • 作用:ICMP头会标识此ICMP报文使用哪一种探测类型或者哪一种回馈类型

  • 代码:代码一般跟前面ICMP类型字段的值一致–无意义;但是如果ICMP类型字段值为3,那么代码则有意义----会告诉你不可达的种类(原因),比如为1或者3或者0等

  • ICMP类型字段

    • 值为8:表示此ICMP报文类型为ping请求(利用ICMP探测机制)

      比如当我们输入ping命令时,则ICMP类型字段为8,表示此ICMP报文用于ping请求

    • 值为0:表示此ICMP报文的类型为ping应答(利用ICMP回馈机制)

      比如当我们ping对方,对方在线回应请求时,对方发送的ICMP报文中ICMP类型字段为0,表示此报文是一个ping应答报文,即对方成功应答

    • 值为3:表示此ICMP报文的类型为目标主机不可达(利用ICMP回馈机制)

      ICMP类型字段为3的原因有很多种:

      情况一:当帧到达路由表,由于路由器缺少路由表(不完整),无法路由,则会将此帧丢弃,并且回馈给我一个ICMP报文,此报文的ICMP头中类型字段为3,代码也为3表示目标主机不可达

      情况二:PC去ping一个不同网段的IP,则PC会先请求网关,但是如果PC没有配置网关,那么屏幕上就会弹出一句话,目标主机不可达

      情况三:整个网络中的路由器的路由表都配置完整,且也指网关了,但是现在某个路由器上配置了一个安全过滤策略,相当于一个防火墙,比如会过滤我的IP,那么路由器不会路由我的帧,则此时也会回馈一个ICMP报问,类型字段为3

      情况四:我发的帧已经成功到达对方电脑,但是对方电脑拒收:即拒绝ping对方主机。比如我现在想去ping服务器上的80端口,对方电脑可以收到我的帧,但是解封装到四层时,对方电脑四层上有一个防火墙,设置策略----禁止我访问80端口,则会将我的信息丢弃。也会回馈3,表示目标主机不可达

    • 值为11TTL超时(利用ICMP回馈机制)

      比如我去ping一台主机,但是网络中出现了回路,一个帧会有TTL值,经过一个路由器就会减一,最后减为0,路由器就会将帧丢弃,这台路由器就要回馈ICMP报文,类型值为11

5.启用ICMP协议误区

  • ICMP协议不是只有ping对方,发送与回馈需要使用ICMP协议,ping只是其中能启用ICMP协议的一种方式
  • ICMP适用于任何协议,只要帧在网络传输过程中,在某个三层及三层以上的设备处发生错误,这个设备就有义务启用ICMP协议给发送方回馈一个ICMP报文

二、路由跟踪

1.路由跟踪命令

1)windows上的命令

tracert IP地址

2)linux或路由器上的命令

traceroute IP地址

2.路由跟踪原理

  • 如图所示:

    image-20211106092128915
  • 说明:

    • 当PC1在cmd输入tracert 40.1.1.1时,PC会启用ICMP协议生成ICMP报文:ICMP类型字段值为8(即表示ping请求)、代码、数据为一堆填充数据比如abc。然后再经过IP协议,封装IP包头:源IP、目标IP、TTL值先设为1。在传入第四层封装帧头帧尾(ARP过程省略)。最后将帧发送出去
    • 当经过r1时,r1会解封装,最后将IP包头中的TTL值改为减一,即为0,那么r1路由器会将此帧丢弃;然后启用ICMP协议,生成ICMP报文:ICMP类型字段值为11(表示TTL超时)、代码、数据。同样通过IP协议封装IP包头:源IP为r1网关IP,目标IP为发送方10.1.1.1。通过四层封装帧头帧尾再将帧回馈给PC1
    • PC1收到后再启用ICMP协议生成ICMP报文:ICMP类型字段为8…。再通过IP协议封装IP包头:TTL值改为2…。再发送
    • 经过r1将TTL值减一,则TTL值=1。再经过r2,r2将TTL减一变为0。那么r2也会通过ICMP报文:类型值为11。封住成帧后回馈给PC1。
    • PC2收到后再启用ICMP,TTL值改为3…

    经过不断的发送ping请求ICMP报文,TTL值不断加一,最后收到了来自目标IP40.1.1.1的TTL超时ICMP报文,则结束追踪命令

    • 此时PC1的主机上会显示以下四条记录

      image-20211106101007195
  • 出现错误:

    1. 当有一条记录显示三个星号:表示此设备设置了禁止跟踪,但是允许帧通过

    2. 如果前面显示了几条记录,但是后面一律不显示了:表示可能从不显示的设备这里开始出现了网络问题

      image-20211106101300227

3.跟踪路由结果显示

image-20211106094848139

三、路由跟踪抓包分析

  1. 在PC上安装抓包工具:这里使用科来软件来分析。设置好抓取进出PC上的某网卡的数据包

  2. 在PC的cmd上输入tracert 目标IP地址,然后去科来上查看抓取的包,进行分析

    image-20211106102806708
  3. 选取ICMP协议这几个帧进行分析

    屏幕截图 2021-11-06 102945
    • 可以看到ICMP协议没有对应的端口,因为是一个三层协议,直接生成报文最后封装成帧

    • 此帧由帧头、IP包头、ICMP报文、帧尾构成,所以是ICMP协议的封装格式

    • 选取第一个由本地发帧中的ICMP报文部分:类型为8表示是ping请求,代码为0,数据部分这里以全0填充

      image-20211106103518928
    • 再看此帧中的IP包头部分:协议值为1表示此IP协议是从同层的ICMP协议传入的。即此帧为一个ICMP协议生成的

      image-20211106104047063
    • 再选取第二个由对方发送的帧的ICMP报文部分:类型为0表示ping应答,代码为0,数据用全0填充

      image-20211106103757219
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-05-12 16:42:19  更:2022-05-12 16:42:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 12:10:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码