ICMP:Internet控制报文协议。是IP层的组成部分。传递差错报文或其他信息。

ICMP报文被封装在IP数据报内部:

详细格式例如以下所看到的:

个字段含义例如以下:
  • 8位类型。

    表示该ICMP报文的含义,如目的不可达、超时、请求回显等。

  • 8为代码。进一步描写叙述该ICMP报文。ICMP报文的类型由类型字段和代码字段共同决定。
  • 16位检验和。和IP首部检验和的算法同样。
我们常常使用的ping程序就是基于ICMP报文进行的传输。

pingclient发送一个ICMP回显请求报文,server收到此报文后返回一个ICMP回显应答报文作为应答。client和server都是在内核层发送和接受该报文的,而不是通过用户进程。回显请求和回显应答报文格式例如以下:

类型0 + 代码0 = 回显应答
类型8 + 代码0 = 回显请求
ICMP回显请求和回显应答报文多出了几个特有的字段:
  • 标识符。表示发送进程的ID号。
  • 序号。从0開始,每发送一个新的回显请求就加1.
  • 选项数据。实际载荷,比如保存发送时间,接收端用当前时间减去发送时间就能计算出往返时间。
以下是抓包的结果:

client一共向server发送了4个回显请求。

TTL字段是在IP首部中的。因为ICMP属于IP层协议,而IP层又是不可靠、无连接、尽力而为式的传输。所以ping偶尔会出现传输出错的情况。

參考:
《TCP/IP具体解释》第6章、第7章。

转载于:https://www.cnblogs.com/mengfanrong/p/5186870.html

ICMP:Internet控制报文协议相关推荐

  1. ICMP Internet控制报文协议(四)

    (参考文献)TCP/IP详解,卷1:协议 ICMP经常被认为是IP层的一个组成部分.它传递差错报文以及其他需要注意的信息.ICMP报文通常被IP层或更高层协议(TCP和UDP)使用. ICMP报文是在 ...

  2. ICMP Internet控制报文协议

    ICMP报文主要有两大功能:查询报文和差错报文. 转载于:https://www.cnblogs.com/gardenofhu/p/8027431.html

  3. 《TCP/IP详解卷1:协议》第6章 ICMP:Internet控制报文协议-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  4. 利用WireShark分析由Ping产生的Internet 控制报文协议(ICMP)

    2019独角兽企业重金招聘Python工程师标准>>> ICMP是(Internet Control Message Protocol)Internet控制报文协议.它是TCP/IP ...

  5. Internet控制报文协议ICMP

    我们知道,互联网的网络层提供的是"best effort"尽力而为的服务,IP协议本身并没有任何可以帮助发方测试连接性能或者了解线路故障的机制.但是对于故障和错误的处理,是必不可少 ...

  6. 图文并茂的讲解 ICMP (网际控制报文)协议

    ICMP 网际控制报文 为了提高 IP 数据报交付成功的机会,在网络层使用了网际控制报文协议来允许主机或路由器报告差错和异常情况.ICMP 报文作为网际层数据报的数据,加上数据报的首部,组成 IP 数 ...

  7. ICMP —— 网际控制报文协议

    曾经看过这样的一道面试题,ICMP报文是基于什么传输层协议进行传输的?顺着他的思路传输层的两个主要协议TCP和UDP,区别也就是在于是否需要保证传输的可靠性.当时还没有系统的学习过ICMP的报文结构和 ...

  8. ICMP(Internet Control Message Protocol)网际控制报文协议初识

    ICMP是(Internet Control Message Protocol)Internet控制报文协议.它是TCP/IP协议族的一个子协议,用于在IP主机.路由器之间传递控制消息.控制消息是指网 ...

  9. 网际控制报文协议icmp_网络中的ICMP(Internet控制消息协议)

    网际控制报文协议icmp ICMP(Internet控制消息协议)简介 (Introduction to ICMP (Internet Control Message Protocol)) IP (I ...

最新文章

  1. mac搭建ios自动化环境之WebDriverAgent配置
  2. PostgreSQL 务实应用(三/5)分表复制
  3. linux系统下创建文件系统
  4. 不会Git怎么当程序员?十分钟包你会
  5. 网易回应裁撤生病员工;苹果押宝 5G 手机;IntelliJ IDEA 2019.3 RC 发布 | 极客头条...
  6. java mysql emoj报错_MySQL插入emoji表情报错 SQLException: Incorrect string value 的两种解决方案...
  7. Spring-xsd文件-配置文件
  8. 计算机考试a bcd哪一级难,2014计算机一级考试试题:WPS及基础题
  9. 百度服务器状态异常,百度抓取异常连接超时是什么意思
  10. Udesk即时通讯网页插件发送咨询对象(一、使用内嵌代码)
  11. 镂空三角形(for循环找规律)
  12. MIT推出3D全息图生成新方法,可在智能手机上实时运行
  13. 几个pdf文件怎么合并为一个?
  14. Java设计登录界面——GUI
  15. 笔记:文澜:桥接视觉和语言的大规模多模态预训练 WenLan: Bridging Vision and Language by Large-Scale Multi-Modal Pre-Training
  16. 【中文技术文档的写作规范_P03】如何书写标点符号和控制文档体系
  17. 查看电脑配置详细信息(内存,内存频率,硬盘,显卡)
  18. Linux_进程相关概念
  19. Docker启动tomcat容器部署java web应用详细过程
  20. 全球及中国有机食品市场供需规模与未来竞争态势研究报告2022版

热门文章

  1. 深度学习之对象检测_深度学习时代您应该阅读的12篇文章,以了解对象检测
  2. CSDN开播工具-嘉宾端使用说明
  3. csadcascascsacsa
  4. 克服SOA实施过程中的障碍
  5. Markdown简介和基本语法
  6. Linux-Android启动之Init进程前传
  7. python ssh登陆模块_使用python的Paramiko模块登陆SSH
  8. opengles 顶点数组 android,OpenGLES顶点属性、顶点数组和缓冲区对象
  9. android 生命周期_Android生命周期组件 Lifecycle 源码详解(一)
  10. MKL学习——基本操作C++实现