ICMP报文分类
Type | Code | 描述 | 查询/差错 |
---|---|---|---|
0-Echo响应 | 0 | Echo响应报文 | 查询 |
3-目的不可达 | 0 | 目标网络不可达报文 | 差错 |
1 | 目标主机不可达报文 | 差错 | |
2 | 目标协议不可达报文 | 差错 | |
3 | 目标端口不可达报文 | 差错 | |
4 | 要求分段并设置DF flag标志报文 | 差错 | |
5 | 源路由失败报文 | 差错 | |
6 | 未知的目标网络报文 | 差错 | |
7 | 未知的目标主机报文 | 差错 | |
8 | 源主机隔离报文 | 差错 | |
9 | 禁止访问的网络报文 | 差错 | |
10 | 禁止访问的主机报文 | 差错 | |
11 | 对特定的TOS网络不可达报文 | 差错 | |
12 | 对特定的TOS主机不可达报文 | 差错 | |
13 | 由于过滤 网络流量被禁止报文 | 差错 | |
14 | 主机越权报文 | 差错 | |
15 | 优先权终止生效报文 | 差错 | |
5-重定向 | 0 | 重定向网络报文 | 差错 |
1 | 重定向主机报文 | 差错 | |
2 | 基于TOS的网络重定向报文 | 差错 | |
3 | 基于TOS的主机重定向报文 | 差错 | |
8-Echo请求 | 0 | Echo请求报文 | 查询 |
9-路由器通告 | 0 | 路由通告报文 | 查询 |
10-路由器请求 | 0 | 路由器的发现/选择/请求报文 | 查询 |
11-ICMP超时 | 0 | TTL超时报文 | 差错 |
1 | 分片重组超时报文 | 差错 | |
12-参数问题 | 0 | IP报首部参数错误报文 | 差错 |
1 | 丢失必要选项报文 | 差错 | |
2 | 不支持的长度报文 | 差错 | |
13-时间戳请求 | 0 | 时间戳请求报文 | 查询 |
14-时间戳应答 | 0 | 时间戳应答报文 | 查询 |
15-信息请求 | 0 | 信息请求报文 | 查询 |
16-信息应答 | 0 | 信息应答报文 | 查询 |
TOS概念
ToS即为服务类型,只有当网络设备能够支持(能够识别IP首部中的ToS字段)识别ToS字段时,这给字段设置才有意义。否则都是空谈。
先说具体字段的意义:
Tos字段长度为8bit
前3bit字段:
为优选权子字段,现在已经废弃,这个字段默认值是000,大部分IP首部中的ToS字段的8bit字段中,前三个子字段默认值是000,默认填充为000。但是在一些特定的场景,例如OSPF协议中网络设备之间交互OSPF相关数据,该字段是有用的
4bit字段:
这四个字段组合在一起,表示了该数据报对应的服务类别,这个应用层的服务类别是不同的。这里所说的服务类别,是指:
1000 – minimize delay ** #最小延迟**
0100 – maximize throughput #最大吞吐量
0010 – maximize reliability #最高可靠性
0001 – minimize monetary cost** #最小费用**
0000 – normal service** #一般服务**
IP首部中的ToS字段,只能表示一种服务类别,也就是:这4bit字段中,最多只能有一个bit字段为1。
看下不同应用下该4bit字段对应的值:
翻译过来就是:
最小延迟,对应于对延迟敏感的应用,如telnet和人login等。
最大吞吐量,对应于对吞吐量要求比较高的应用,如FTP文件应用,对文件传输吞吐量有比较高的要求。
最高可靠性,对网络传输可靠性要求高的应用,如使用SNMP的应用、路由协议等等。
最小费用,如NNTP这种用户网络新闻等。
1bit字段:
这个1bit末尾,没有被使用,必须强制设置为0
总结:
该字段中,正常的IP报文,前3bit的值是000,用不上该优先权子字段;
4bit字段中,表示的是服务类别,并且该4bit字段中,只能有一个bit字段为1;
1bit字段中,该字段未使用但是必须强制为0。