ICMP:Internet控制报文协议

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章。

时间: 2024-12-07 03:47:04

ICMP:Internet控制报文协议的相关文章

《TCP/IP详解卷2:实现》笔记--ICMP:Internet控制报文协议

ICMP在IP系统间传递差错和管理报文,是任何IP实现必须和要求的组成部分.可以把ICMP分成两类:差错和查询.查询报文 是用一对请求和回答定义的.差错报文通常包含了引起错误的IP包的第一个分片的IP首部(和选项),加上该分片数据部分 的前8个字节. 下图显示了所有目前定义的ICMP报文.双线上面的是请求和回答报文,双线下面的是差错报文. PRC_栏显示了Net/3处理的与协议无关的差错码和ICMP报文之间的映射.对请求和回答,这一列是空的.因为在这种情况 下不会产生差错.如果对一个ICMP差错

《TCP/IP具体解释卷2:实现》笔记--ICMP:Internet控制报文协议

ICMP在IP系统间传递差错和管理报文,是不论什么IP实现必须和要求的组成部分.能够把ICMP分成两类:差错和查询.查询报文 是用一对请求和回答定义的.差错报文通常包括了引起错误的IP包的第一个分片的IP首部(和选项),加上该分片数据部分 的前8个字节. 下图显示了全部眼下定义的ICMP报文.双线上面的是请求和回答报文,双线以下的是差错报文. PRC_栏显示了Net/3处理的与协议无关的差错码和ICMP报文之间的映射.对请求和回答,这一列是空的.由于在这样的情况 下不会产生差错.假设对一个ICM

ICMP:Internet控制报文协议实现学习笔记

ICMP是网络层的一个协议,可以看作IP协议的附属协议,因为它主要被IP用来与其他主机或路由器交换错误报文及其他需要注意的信息.当然,更高层协议(tcp/udp)甚至有些用户进程也可能用到ICMP报文 注册ICMP协议和ICMP协议的处理涉及以下文件: net/ipv4/icmp.c ICMP协议处理入口 net/ipv4/af_inet.c 网络层和传输层接口 ICMP报文结构 参见tcp/ip协议学习笔记(5)Internet Control Message Protocol(ICMP) 注

ICMP Internet控制报文协议

ICMP端口不可达验证. 1.准备 window上下载tftp32软件,并设置好服务器IP地址(window系统的ip),并关闭windows防火墙.如下图所示: 2.ubuntu虚拟机,安装tftp服务,并安装wireshark. sudo apt-get install tftp 3. 打开wireshark. 启动tftp服务,并连接window,指定8000端口,这个端口号是没有进程在使用的,当需要get文件,最终会显示端口不可达,超时. wireshark显示端口不可达.(window

tcp/ip协议学习 第四章 ICMP:Internet控制报文协议

派猴子来的救兵 关于ICMP的RFC文档在此! 干嘛的 在我看来, ICMP协议主要就是为了互相传递/查询一些基本信息, 大部分是传递一些错误信息. 比如A发送UDP信息到B的10000端口, 但B的10000端口并没有开放, 就会回一个ICMP包给A, 告诉A10000端口未开放. 基本的查询信息, 比如最常用的ping命令, 就是发送ICMP包到目的主机, 然后等待目的主机的响应(响应也是ICMP包). 协议 协议定义的非常简单. ICMP在IP层上面一层. 前面是20个字节的IP头, 然后

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

章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP:网际协议(1)-读书笔记 <TCP/IP详解卷1:协议>第3章 IP:网际协议(2)-读书笔记 <TCP/IP详解卷1:协议>第4章 ARP:地址解析协议-读书笔记 <TCP/IP详解卷1:协议>第5章 RARP:逆地址解析协议-读书笔记 <TCP/IP详解卷1:协

TCP/IP详解,卷1:协议--第6章 ICMP:Internet控制报文协议

引言 I C M P经常被认为是 I P层的一个组成部分.它传递差错报文以及其他需要注意的信息. I C M P报文通常被I P层或更高层协议( T C P或U D P)使用.一些I C M P报文把差错报文返回给 用户进程. 在本章中,我们将一般地讨论 I C M P报文,并对其中一部分作详细介绍:地址掩码请求和 应答.时间戳请求和应答以及不可达端口 ICMP报文的类型 各种类型的I C M P报文如图6 - 3所示,不同类型由报文中的类型字段和代码字段来共同决定. 图中的最后两列表明 I C

《TCP/IP详解卷1:协议》——第6章 ICMP:Internet控制报文协议(转载)

1.引言 ICMP被认为是IP层的一个组成部分,它传递差错报文以及其他需要注意的信息.ICMP报文通常被IP层或更高层协议(TCP或UDP)使用.一些ICMP报文把差错报文返回给用户进程. ICMP报文是在IP数据报内部被传输的.如图6-1所示: ICMP报文的格式如图6-2所示: 说明: (1)所有报文的前4个字节都是一样的,剩下的其他字节则互不相同. (2)类型字段可以有15个不同的值,以描述特定类型的ICMP报文.某些ICMP报文还使用代码字段的值来进一步描述不同的条件. (3)检验和字段

深入浅出网工第二个协议---Internet控制报文协议ICMP

ICMP简介 ICMP(Internet Control Message Protocol)是网络层的一个重要协议ICMP的作用:用来在网络设备间传递各种差错和控制信息,它对于收集各种网络信息.诊断和排除各种网络故障具有至关重要的作用ICMP协议中用到的报文类型:Echo-Request和Echo-Reply 两种报文 使用的都是单播报文 ICMP错误报告 ICMP定义了各种错误消息,用于诊断网络连接性问题:根据这些错误消息,源设备可以判断出数据传输失败的原因.比如,如果网络中发生了环路,导致报