文章目录

  • 一、ICMP 协议
  • 二、ICMP 协议 简介
  • 三、ICMP 五种差错报告报文
  • 四、ICMP 差错报文形成
  • 五、ICMP 差错报文 不发送 情形
  • 六、ICMP 询问报文
  • 七、ICMP 应用

一、ICMP 协议


网络层 协议 :

① IP 协议 : IP 协议是 网络层 核心协议 ;

② ARP 协议 : ARP 协议 是 网络层 与 数据链路层 之间的协议 , 通过 IP 地址查找 物理地址 ;

③ ICMP 和 IGMP 协议 : ICMP 和 IGMP 协议 是 网络层 与 传输层 之间的协议 ; 目的是更加有效的转发 IP 数据报 , 提高交付的成功率 ;

二、ICMP 协议 简介


ICMP 协议 简介 :

① ICMP 协议 全称 : 网际控制报文协议 ;

② ICMP 协议 功能 :

  • 差错报告 : 对应 发送 差错报文 ;
  • 网络探寻 : 对应 发送 探寻报文 ;

③ ICMP 报文 在 IP 数据报中位置 : ICMP 报文 属于 IP 数据报 的 数据部分 ;

ICMP 报文内容 : 其中的类型是 差错报文 / 探询报文 ;

三、ICMP 五种差错报告报文


ICMP 五种差错报告报文 :

① 终点不可达报文 : 路由器 / 主机 不能交付数据报时 , 就会向源点 发送 终点不可达报文 ;

② 源点抑制报文 : 路由器 / 主机 拥塞 , 丢弃 IP 数据报 , 向源点发送源点抑制报文 , 让源点降低发送速率 ;

③ 时间超过报文 :

  • 生存周期为 000 : 路由器 生存周期 TTL = 000 时 , 丢弃该报文 , 同时向源点发送 时间超过报文 ;
  • 分组丢失 : 终点 在预定时间内 没有收到 数据报的全部数据分组时 , 就会将已收到的数据分组全部丢弃 , 向源点发送时间超过报文 ;

④ 参数问题报文 : 路由器 / 主机 收到的 数据报 首部 字段由错误值 , 丢弃该数据报 , 向源点发送 参数问题报文 ;

⑤ 改变路由报文 : 路由器 将 改变路由报文 发送给主机 , 让主机下次将数据报发送给另外的路由器 ; 又称为 “重定向报文” ;

四、ICMP 差错报文形成


ICMP 差错报文形成 :

① 取出 IP 数据报内容 : 取出 IP 数据报 首部 , 以及 数据部分的 前 888 字节 ;

② ICMP 差错报文 组成 : ICMP 前 888 个字节 + IP 数据报 首部 + IP 数据报数据部分前 888 字节 ;

③ 组装 IP 数据报 : 将 ICMP 数据报 装入 IP 数据报 数据部分 ;

五、ICMP 差错报文 不发送 情形


ICMP 差错报文 不发送 情形 :

① ICMP 差错报文错误 : IP 数据报 中 , 如果 ICMP 差错报文部分出错 , 就不用再发送 ICMP 差错报告报文了 ;

② 后续数据报分片 : ICMP 差错报文只针对数据报的第一个分片 , 后续分片就不发送 ICMP 差错报告报文了 ;

③ 组播地址 : 如果 IP 数据报的地址是 组播地址 , 不发送 ICMP 差错报文 ;

④ 特殊地址 : 如果 IP 数据报的地址是 特殊地址 , 不发送 ICMP 差错报文 ; 如 : 默认路由地址 等 ;

六、ICMP 询问报文


ICMP 询问报文 :

① 回送请求 和 回答报文 : 主机 / 路由器 询问特定主机 , 目的主机收到该报文后 , 必须给源主机 发送 ICMP 回答报文 ; 目的是 测试该 目的主机是否可达 ;

② 时间戳请求 和 回答报文 : 请求 主机 / 路由器 当前的日期 和 时间 ; 用于进行时钟同步 和 时间测量 ;

七、ICMP 应用


ICMP 应用 :

① PING : 测试连通性 , 使用 ICMP 回送请求 和 回答报文 ;

② Traceroute : 追踪 分组 从原点 到 终点 路径 , 使用 ICMP 时间超过差错报告报文 ;

Traceroute 应用 细节 :

源主机 与 目的主机之间 有 nnn 个路由器 ;

第 111 个数据报 TTL = 111 , 第 111 个路由器收到该数据报 , 发现其生存周期为 000 , 向源主机回送 ICMP 时间超过差错报告报文 , 这样就得到了第 111 个路由器的地址 ;

第 222 个数据报 TTL = 111 , 第 222 个路由器收到该数据报 , 发现其生存周期为 000 , 向源主机回送 ICMP 时间超过差错报告报文 , 这样就得到了第 222 个路由器的地址 ;

⋮\vdots⋮

第 nnn 个数据报 TTL = nnn , 第 nnn 个路由器收到该数据报 , 发现其生存周期为 000 , 向源主机回送 ICMP 时间超过差错报告报文 , 这样就得到了第 nnn 个路由器的地址 ;

【计算机网络】网络层 : ICMP 协议 ( ICMP 差错报文 | 差错报文分类 | ICMP 询问报文 | ICMP 应用 | Ping | Traceroute )相关推荐

  1. 计算机网络 | 网络层ARP协议ICMP协议

    目录 IP地址的概述与应用 IP地址就是互联网协议里的地址 配置主机的IP地址(Windows7) 手工配置IP地址 IP包头的格式 子网划分题目 IP路由汇总 路由概述 路由的类型 添加静态路由的步 ...

  2. 计算机网络---网络层ARP协议

    ARP协议 ARP协议为地址解析协议,根据IP地址获取物理地址.当主机想要给另一台主机发送数据时,会将包含目标地址的ARP广播到局域网上的所有主机,并受到主机的返回消息,来确认目标主机的物理地址. A ...

  3. 693-详解ICMP 协议

    什么是 ICMP 协议 IP 协议作为一种提供不可靠数据交付的网络层协议,在传输的过程中,其 IP 数据报可能会发生丢失.重复.延迟和乱序等各种情况, 但是 IP 协议对这些糟糕的情况并不拥有有效的检 ...

  4. 《TCP/IP详解》学习笔记(四):ICMP 协议、ping 和 Traceroute

    ICMP 协议介绍 前面讲到了,IP 协议并不是一个可靠的协议,它不保证数据被成功送达,那么自然的,保证数据送达的工作应该由其他的模块来完 成.其中一个重要的模块就是 ICMP(网络控制报文)协议. ...

  5. Wireshark抓包分析之ICMP协议包

    Wireshark抓包分析之ICMP协议包 一. Wireshark简介:(前身为Ethereal,2006年改名为wireshark) Wireshark 是一个网络封包分析软件.网络封包分析软件的 ...

  6. 透析ICMP协议(一): 协议原理

    透析ICMP协议(一): 协议原理 =============================== 这篇文章原创自bugfree/CSDN 平台: VC6 Windows XP ICMP简介: --- ...

  7. 利用ICMP协议,使用python原始套接字实现主机存活探测工具

    一.课题概述. 一学期一次的课程设计终于开始了(停课两周,马上放寒假了,哈哈哈哈哈哈...)这次我们课程设计的科目是计算机协议,我们小组抽到的题目是利用ICMP模仿ping命令写一个主机存活探测的工具 ...

  8. 【绿冰壶的脚本小屋】第二期:基于icmp协议开发简易ping工具

    [绿冰壶的脚本小屋]第二期:基于ICMP协议开发简易ping工具 任务目标:编写程序使用 ICMP 协议探测主机是否存活 任务要求: 1.理解ICMP协议的原理 2.实现代码,尽可能多的实现探测主机是 ...

  9. 通过 ICMP 协议实现 Ping Tunnel 建立可穿透网络隧道

    Twitter via Ping Tunnel 周四 Cola 没去幼儿园,中午带着他去 KFC 吃东西.回来的时候小林指着西总布胡同说走这条路回去还是原路返回,他说还是走原路吧!于是我们就骑着电动滑 ...

  10. 网络数据包分析之用途广泛的ICMP协议

    步骤1:Echo请求与回应 对于ICMP协议来说,我们接触最多的莫过于ping这款工具了,相信很多计算机网络安全爱好者对它很熟悉.但是很多人对ping有个误解,以为它是一个命令,但事实上,ping是一 ...

最新文章

  1. UML系列图--用例图
  2. python生成多维数组方法总结(多维创建有问题的情况)
  3. LA3971 组装电脑
  4. stm32L0工程建立(HAL+IAR,无cubemx)
  5. 孙叫兽进阶之路之如何进行情绪管理
  6. C++中重载、重写(覆盖)和隐藏的区别实例分析
  7. JAVA中对象的序列化的作用?
  8. ajax静态加载图片,JQuery实现Ajax加载图片的方法
  9. 《HTML5与CSS3实战指南》——第2章 HTML5样式的标记2.1 The HTML5 Herald简介
  10. 数据库实验8 数据库安全性(用户与权限管理)实验
  11. 前端性能优化如何做到极致?
  12. mysql嵌套查询方式
  13. C++单例模式(懒汉模式)实现
  14. 教案设计计算机,计算机应用基础教案设计
  15. 《个人信息保护法》正式施行,拒绝隐私泄露
  16. 解决Gitbub打开或者下载很慢
  17. python学习(2)
  18. 淘宝CRM是如何通过数据分析进行解决问题的
  19. 鸿蒙系统手机一览表,四款华为鸿蒙系统手机推荐,后续可直接升级鸿蒙2.0
  20. 第4章 计算机网络自顶向下——网络层:数据平面

热门文章

  1. linux之vsftpd虚拟用户搭建
  2. 请别埋没了URL Routing
  3. 小心!目录删除及重命名操作 ,一定丢失Session~~!
  4. JavaScript 返回多个值
  5. Git 学习第二天(一)
  6. 移动端geolocation插件+百度地图js获取地址
  7. bzoj2339[HNOI2011]卡农 dp+容斥
  8. 机器学习工作流程第一步:如何用Python做数据准备?
  9. C++ cin不支持录入空格
  10. 用VB.net开发.NET Micro Framework