ICMP TYPE CODE 对应表
下载ping程序源代码等信息,可以在这里下载
[root@ht8 network-scripts]# ping -V
ping utility, iputils-s20160308 //ping实用程序,是在iputils这个包里面
//注意iputils是个工具包,包括了arping,ping,tracepath,traceroute等一系列工具
下载地址: http://www.skbuff.net/iputils/ //当前版本 iputils-s20160308
查看 https://sourceforge.net/p/iputils/code/ci/HEAD/tree/
在线查看头
http://lxr.linux.no/linux+v5.14/include/uapi/linux/icmp.h#L89
http://lxr.linux.no/linux+v5.14/include/net/ip.h
http://lxr.linux.no/linux+v5.14/include/uapi/linux/icmp.h#L89
1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2/*
3 * INET An implementation of the TCP/IP protocol suite for the LINUX
4 * operating system. INET is implemented using the BSD Socket
5 * interface as the means of communication with the user level.
6 *
7 * Definitions for the ICMP protocol.
8 *
9 * Version: @(#)icmp.h 1.0.3 04/28/93
10 *
11 * Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
12 *
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License
15 * as published by the Free Software Foundation; either version
16 * 2 of the License, or (at your option) any later version.
17 */
18#ifndef _UAPI_LINUX_ICMP_H
19#define _UAPI_LINUX_ICMP_H
20
21#include <linux/types.h>
22#include <asm/byteorder.h>
23#include <linux/if.h>
24#include <linux/in6.h>
25
26#define ICMP_ECHOREPLY 0 /* Echo Reply */
27#define ICMP_DEST_UNREACH 3 /* Destination Unreachable */
28#define ICMP_SOURCE_QUENCH 4 /* Source Quench */
29#define ICMP_REDIRECT 5 /* Redirect (change route) */
30#define ICMP_ECHO 8 /* Echo Request */
31#define ICMP_TIME_EXCEEDED 11 /* Time Exceeded */
32#define ICMP_PARAMETERPROB 12 /* Parameter Problem */
33#define ICMP_TIMESTAMP 13 /* Timestamp Request */
34#define ICMP_TIMESTAMPREPLY 14 /* Timestamp Reply */
35#define ICMP_INFO_REQUEST 15 /* Information Request */
36#define ICMP_INFO_REPLY 16 /* Information Reply */
37#define ICMP_ADDRESS 17 /* Address Mask Request */
38#define ICMP_ADDRESSREPLY 18 /* Address Mask Reply */
39#define NR_ICMP_TYPES 18
40
41
42/* Codes for UNREACH. 这里就是code */
43#define ICMP_NET_UNREACH 0 /* Network Unreachable */
44#define ICMP_HOST_UNREACH 1 /* Host Unreachable */
45#define ICMP_PROT_UNREACH 2 /* Protocol Unreachable */
46#define ICMP_PORT_UNREACH 3 /* Port Unreachable */
47#define ICMP_FRAG_NEEDED 4 /* Fragmentation Needed/DF set */
48#define ICMP_SR_FAILED 5 /* Source Route failed */
49#define ICMP_NET_UNKNOWN 6
50#define ICMP_HOST_UNKNOWN 7
51#define ICMP_HOST_ISOLATED 8
52#define ICMP_NET_ANO 9
53#define ICMP_HOST_ANO 10
54#define ICMP_NET_UNR_TOS 11
55#define ICMP_HOST_UNR_TOS 12
56#define ICMP_PKT_FILTERED 13 /* Packet filtered */
57#define ICMP_PREC_VIOLATION 14 /* Precedence violation */
58#define ICMP_PREC_CUTOFF 15 /* Precedence cut off */
59#define NR_ICMP_UNREACH 15 /* instead of hardcoding immediate value */
60
61/* Codes for REDIRECT. */
62#define ICMP_REDIR_NET 0 /* Redirect Net */
63#define ICMP_REDIR_HOST 1 /* Redirect Host */
64#define ICMP_REDIR_NETTOS 2 /* Redirect Net for TOS */
65#define ICMP_REDIR_HOSTTOS 3 /* Redirect Host for TOS */
66
67/* Codes for TIME_EXCEEDED. */
68#define ICMP_EXC_TTL 0 /* TTL count exceeded */
69#define ICMP_EXC_FRAGTIME 1 /* Fragment Reass time exceeded */
70
71/* Codes for EXT_ECHO (PROBE) */
72#define ICMP_EXT_ECHO 42
73#define ICMP_EXT_ECHOREPLY 43
74#define ICMP_EXT_CODE_MAL_QUERY 1 /* Malformed Query */
75#define ICMP_EXT_CODE_NO_IF 2 /* No such Interface */
76#define ICMP_EXT_CODE_NO_TABLE_ENT 3 /* No such Table Entry */
77#define ICMP_EXT_CODE_MULT_IFS 4 /* Multiple Interfaces Satisfy Query */
78
79/* Constants for EXT_ECHO (PROBE) */
80#define ICMP_EXT_ECHOREPLY_ACTIVE (1 << 2)/* active bit in reply message */
81#define ICMP_EXT_ECHOREPLY_IPV4 (1 << 1)/* ipv4 bit in reply message */
82#define ICMP_EXT_ECHOREPLY_IPV6 1 /* ipv6 bit in reply message */
83#define ICMP_EXT_ECHO_CTYPE_NAME 1
84#define ICMP_EXT_ECHO_CTYPE_INDEX 2
85#define ICMP_EXT_ECHO_CTYPE_ADDR 3
86#define ICMP_AFI_IP 1 /* Address Family Identifier for ipv4 */
87#define ICMP_AFI_IP6 2 /* Address Family Identifier for ipv6 */
88
89struct icmphdr {
90 __u8 type;
91 __u8 code;
92 __sum16 checksum;
93 union {
94 struct {
95 __be16 id;
96 __be16 sequence;
97 } echo;
98 __be32 gateway;
99 struct {
100 __be16 __unused;
101 __be16 mtu;
102 } frag;
103 __u8 reserved[4];
104 } un;
105};
106
107
108/*
109 * constants for (set|get)sockopt
110 */
111
112#define ICMP_FILTER 1
113
114struct icmp_filter {
115 __u32 data;
116};
117
118/* RFC 4884 extension struct: one per message */
119struct icmp_ext_hdr {
120#if defined(__LITTLE_ENDIAN_BITFIELD)
121 __u8 reserved1:4,
122 version:4;
123#elif defined(__BIG_ENDIAN_BITFIELD)
124 __u8 version:4,
125 reserved1:4;
126#else
127#error "Please fix <asm/byteorder.h>"
128#endif
129 __u8 reserved2;
130 __sum16 checksum;
131};
132
133/* RFC 4884 extension object header: one for each object */
134struct icmp_extobj_hdr {
135 __be16 length;
136 __u8 class_num;
137 __u8 class_type;
138};
139
140/* RFC 8335: 2.1 Header for c-type 3 payload */
141struct icmp_ext_echo_ctype3_hdr {
142 __be16 afi;
143 __u8 addrlen;
144 __u8 reserved;
145};
146
147/* RFC 8335: 2.1 Interface Identification Object */
148struct icmp_ext_echo_iio {
149 struct icmp_extobj_hdr extobj_hdr;
150 union {
151 char name[IFNAMSIZ];
152 __be32 ifindex;
153 struct {
154 struct icmp_ext_echo_ctype3_hdr ctype3_hdr;
155 union {
156 __be32 ipv4_addr;
157 struct in6_addr ipv6_addr;
158 } ip_addr;
159 } addr;
160 } ident;
161};
162#endif /* _UAPI_LINUX_ICMP_H */
163
ICMP类型对应讲解
TYPE | CODE | Description | Query | Error |
---|---|---|---|---|
0 | 0 | Echo Reply——回显应答(Ping应答) | x | |
3 | 0 | Network Unreachable——网络不可达 | x | |
3 | 1 | Host Unreachable——主机不可达 | x | |
3 | 2 | Protocol Unreachable——协议不可达 | x | |
3 | 3 | Port Unreachable——端口不可达 | x | |
3 | 4 | Fragmentation needed but no frag. bit set——需要进行分片但设置不分片比特 | x | |
3 | 5 | Source routing failed——源站选路失败 | x | |
3 | 6 | Destination network unknown——目的网络未知 | x | |
3 | 7 | Destination host unknown——目的主机未知 | x | |
3 | 8 | Source host isolated (obsolete)——源主机被隔离(作废不用) | x | |
3 | 9 | Destination network administratively prohibited——目的网络被强制禁止 | x | |
3 | 10 | Destination host administratively prohibited——目的主机被强制禁止 | x | |
3 | 11 | Network unreachable for TOS——由于服务类型TOS,网络不可达 | x | |
3 | 12 | Host unreachable for TOS ——由于服务类型TOS,主机不可达 | x | |
3 | 13 | Communication administratively prohibited by filtering——由于过滤,通信被强制禁止 | x | |
3 | 14 | Host precedence violation——主机越权 | x | |
3 | 15 | Precedence cutoff in effect——优先中止生效 | x | |
4 | 0 | Source quench——源端被关闭(基本流控制) | ||
5 | 0 | Redirect for network——对网络重定向 | ||
5 | 1 | Redirect for host——对主机重定向 | ||
5 | 2 | Redirect for TOS and network——对服务类型和网络重定向 | ||
5 | 3 | Redirect for TOS and host ——对服务类型和主机重定向 | ||
8 | 0 | Echo request ——回显请求(Ping请求) | x | |
9 | 0 | Router advertisement ——路由器通告 | ||
10 | 0 | Route solicitation ——路由器请求 | ||
11 | 0 | TTL equals 0 during transit ——传输期间生存时间为0 | x | |
11 | 1 | TTL equals 0 during reassembly——在数据报组装期间生存时间为0 | x | |
12 | 0 | IP header bad (catchall error) ——坏的IP首部(包括各种差错) | x | |
12 | 1 | Required options missing ——缺少必需的选项 | x | |
13 | 0 | Timestamp request (obsolete) ——时间戳请求(作废不用) | x | |
14 | Timestamp reply (obsolete) ——时间戳应答(作废不用) | x | ||
15 | 0 | Information request (obsolete) ——信息请求(作废不用) | x | |
16 | 0 | Information reply (obsolete) ——信息应答(作废不用) | x | |
17 | 0 | Address mask request ——地址掩码请求 | x | |
18 | 0 | Address mask reply ——地址掩码应答 |
icmp协议
定义(我在之前说过osi七层模型正对应着大量的rfc协议,以太网协议对应着硬件设备的通讯)
消息控制协议
https://www.rfc-editor.org/rfc/rfc792
http://www.rfc-editor.org/rfc/rfc777.txt
中文
http://www.cnpaf.net/rfc/rfc792.txt
ip协议
IP数据报的路由和转发
RFC791
https://www.rfc-editor.org/rfc/rfc791
arp协议
ARP协议的作用是通过IP地址获取MAC地址
RFC826
https://www.rfc-editor.org/rfc/rfc826.txt
linux下的头文件位置
[root@h8 net]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@h8 include]# ls
aio.h cpio.h fcntl.h grp.h langinfo.h monetary.h nfs protocols selinux string.h ucontext.h xen
aliases.h cpufreq.h features.h gshadow.h lastlog.h mqueue.h nl_types.h pthread.h semaphore.h strings.h ulimit.h xlocale.h
alloca.h crypt.h fenv.h gssapi libgen.h mtd nss.h pty.h sepol sys unistd.h zconf.h
a.out.h ctype.h fmtmsg.h gssapi.h libintl.h net obstack.h pwd.h setjmp.h syscall.h ustat.h zlib.h
argp.h dirent.h fnmatch.h gssrpc libio.h netash openssl python2.7 sgtty.h sysexits.h utime.h
argz.h dlfcn.h fpu_control.h iconv.h limits.h netatalk paths.h rdma shadow.h syslog.h utmp.h
ar.h drm fstab.h ieee754.h link.h netax25 pcrecpparg.h re_comp.h signal.h tar.h utmpx.h
arpa elf.h fts.h ifaddrs.h linux netdb.h pcrecpp.h regex.h sound termio.h values.h
asm endian.h ftw.h inttypes.h locale.h neteconet pcre.h regexp.h spawn.h termios.h verto.h
asm-generic envz.h _G_config.h kadm5 malloc.h netinet pcreposix.h resolv.h stab.h tgmath.h verto-module.h
assert.h err.h gconv.h kdb.h math.h netipx pcre_scanner.h rpc stdc-predef.h thread_db.h video
bits errno.h getopt.h keyutils.h mcheck.h netiucv pcre_stringpiece.h rpcsvc stdint.h time.h wait.h
byteswap.h error.h glob.h krad.h memory.h netpacket poll.h sched.h stdio_ext.h ttyent.h wchar.h
com_err.h et gnu krb5 misc netrom printf.h scsi stdio.h uapi wctype.h
complex.h execinfo.h gnu-versions.h krb5.h mntent.h netrose profile.h search.h stdlib.h uchar.h wordexp.h
[root@ht8 include]# pwd
/usr/include
ICMP TYPE CODE 对应表的更多相关文章
- ICMP type code 对应表(转)
ICMP类型 TYPE CODE Description Query Error 0 0 Echo Reply——回显应答(Ping应答) x 3 0 Network Unreachable——网 ...
- ICMP TYPE CODE
TYPE CODE Description Query Error 0 0 Echo Reply——回显应答(Ping应答) x 3 0 Network Unreachable——网络不可达 ...
- java.io.StreamCorruptedException: invalid type code: AC错误的解决方法
问题描述: 在向一个文件写入可序列化对象时,每次只想向文件的末尾添加一个可序列化的对象,于是使用了FileOutputStream(文件名,true)间接的构建了ObjectOutputStream流 ...
- Replace Type Code With Class和Replace Type Code With Subclass和Replace Type Code With State/Strategy
周末闲来写写看书总结,今天写<重构>中的3个重要手法,分别是Replace Type Code With Class.Replace Type Code With Subclass和Rep ...
- ObjectInputStream java.io.StreamCorruptedException: invalid type code: AC问题解决
感谢原文作者:攻城狮_无名 原文链接:https://blog.csdn.net/mingyang_2016/article/details/75208117 问题描述: 每次向一个文件中序列化对象时 ...
- input type="image" 提交表单
提到<input type="image" />,说起来有些惭愧.之前的工作基本每周都要制作两到三个注册用户的网页.其中就用它提交表单. 那个时候我想当然的以为这是用 ...
- 常用6种type的form表单的input标签分析及示例
<input> 标签用于搜集用户信息. 根据不同的 type 属性值,输入字段拥有很多种形式.输入字段可以是文本字段.复选框.掩码后的文本控件.单选按钮.按钮等等. 在这里博主介绍6中ty ...
- EF5.X Code First表关联与延迟加载
1-指定导航属性,会自动生成外键,命名规则为:“表名_主键名”2-默认情况下与导航属性的主键名称相同的字段会自动被标记为外键3-通过[ForeignKey]标记指定实体类的属性为外键,4-方式2的升级 ...
- type="image"提交表单
<input type="image" style="cursor:pointer; ">
随机推荐
- CF1534F1题解
首先,对于一个在第 \(i\) 行 \(j\) 列的沙子,如果他开始下降,他能够使哪些沙子下降呢? 很容易得知是第 \(j-1,j,j+1\) 列所有行号不小于 \(i\) 的沙子. 对于沙子 \(u ...
- Intellij IDEA远程debug线上项目记录
远程调试,特别是当你在本地开发的时候,你需要调试服务器上的程序时,远程调试就显得非常有用. JAVA 支持调试功能,本身提供了一个简单的调试工具JDB,支持设置断点及线程级的调试同时,不同的JVM通过 ...
- ZYNQ SGI、PPI、SPI三种中断的实例(含代码)
ZYNQ中断分为3类: SGI(Software Generated Interrupts)软件中断 PPI(Private Peripheral Interrupts)私有外设中断 SPI(Shar ...
- python 模块之 selenium 自动化使用教程
一.安装 pip install Selenium 二.初始化浏览器 Chrome 是初始化谷歌浏览器 Firefox 是初始化火狐浏览器 Edge 是初始化IE浏览器 PhantomJS 是一个无界 ...
- 内网渗透----Linux信息收集整理
一.基础信息收集 1.查看系统类型 cat /etc/issue cat /etc/*-release cat /etc/lsb-release cat /etc/redhat-release 2.内 ...
- c# winform 窗体 对话框绑定的值如何填到主窗体问题
这段代码放在主窗体中 private void txt_KeJiaAModel_DoubleClick(object sender, EventArgs e) { TimerEvent(); } // ...
- windows配置jdk环境变量、mysql环境变量、tomcat环境变量、maven环境变量、git环境变量、node环境变量
一.windows配置各种环境变量后 path 路径下的目录: 二.windows 配置各种环境变量的目的: 为windows系统添加上各种环境对应的命令 举例,为什么要添加jdk的bin目录,是因为 ...
- Github使用指南(学习中随时更新)
注册好一个账号后先创建一个仓库 点击"Create repository"创建一个版本库 填好带*号的必填项,选择是要公开仓库还是私人使用,勾选自动添加README选项 READM ...
- Android中的Coroutine协程原理详解
前言 协程是一个并发方案.也是一种思想. 传统意义上的协程是单线程的,面对io密集型任务他的内存消耗更少,进而效率高.但是面对计算密集型的任务不如多线程并行运算效率高. 不同的语言对于协程都有不同的实 ...
- Vue-cli安装步骤,搭建一个完整的 Vue 项目
安装node环境下载 node.js 官网地址:https://nodejs.org/en/ 下载完成后打开然后一路next安装完成后打开 dos 窗口输入命令:node -v 回车会输出node的版 ...