icmp中flags[+]
时间: 2023-09-22 07:07:49 浏览: 149
在 ICMP 协议中,没有类似 TCP 协议中的标志位字段,因此无法直接检查 ICMP 报文的 [+] 标志。
不过,ICMP 报文中有一个重要的字段是类型码(type code),它指示了该 ICMP 报文的类型和子类型。其中,ICMP 报文类型码为 0、3、4、5、8、9、10、11、12、13、14 和 15 的报文都可以包含确认应答(ACK)信息,因此可以认为这些类型码的报文具有 [+] 标志。
因此,如果想要抓取包含 [+] 标志的 ICMP 报文,可以使用以下 tcpdump 过滤规则:
```
tcpdump 'icmp[0] == 0 or icmp[0] == 3 or icmp[0] == 4 or icmp[0] == 5 or icmp[0] == 8 or icmp[0] == 9 or icmp[0] == 10 or icmp[0] == 11 or icmp[0] == 12 or icmp[0] == 13 or icmp[0] == 14 or icmp[0] == 15'
```
这条规则会匹配 ICMP 报文类型码为 0、3、4、5、8、9、10、11、12、13、14 和 15 的所有报文,这些报文都可以包含 [+] 标志。
相关问题
能放在中括号里的有哪些,比如tcpflags
在 tcpdump 的过滤器表达式中,可以放在中括号里的有以下几种:
- `ether [subtype]`:匹配以太网数据包的子类型字段。
- `ip [ip_option]`:匹配 IP 数据包的选项字段。
- `tcp [tcp_option]`:匹配 TCP 数据包的选项字段。
- `udp [udp_option]`:匹配 UDP 数据包的选项字段。
- `icmp [icmp_option]`:匹配 ICMP 数据包的选项字段。
- `vlan [vlan_id]`:匹配 VLAN 标签。
- `ip6 [ipv6_option]`:匹配 IPv6 数据包的选项字段。
- `mpls [stack_entry]`:匹配 MPLS 数据包的标签栈。
其中,`tcp [tcp_option]` 中的 `tcp_option` 可以是 TCP 数据包头部中的任何字段,例如:
- `tcp [tcpflags]`:匹配 TCP 数据包头部中的标志位字段。
- `tcp [tcpseq]`:匹配 TCP 数据包头部中的序列号字段。
- `tcp [tcpack]`:匹配 TCP 数据包头部中的确认号字段。
- `tcp [tcpwindow]`:匹配 TCP 数据包头部中的窗口大小字段。
需要注意的是,放在中括号里的选项都是小写字母。
ICMP重定向报文格式
ICMP重定向报文的格式如下:
1. 类型(Type):标识此报文为ICMP重定向报文,它的值为5。
2. 代码(Code):表示重定向的类型,包括 "网络不可达"、"主机不可达"和"服务不可达"三种类型。
3. 校验和(Checksum):校验和字段覆盖整个ICMP数据报,计算方式同IP协议的校验和。
4. 其他IP报头信息:
- 报头长度(Header Length)和服务类型(Type of Service):和IP报头中一致。
- 总长度(Total Length):指的是整个IP数据包的长度,包括IP报头和ICMP数据。
- 标识(Identification)、标识位(Flags)、标记(Fragment Offset):同IP协议中的相应字段。
- 生存时间(TTL):同IP协议中的相应字段。
- 协议(Protocol):指示上层协议为TCP、UDP或ICMP。
5. 源IP地址(Source IP Address)和目的IP地址(Destination IP Address):分别表示产生ICMP重定向消息的网关的IP地址和接收合法数据报之主机的IP地址。
6. ICMP重定向报文数据:包括引起改变的第一个数据报的源地址(Original Source Address)、目的地址(Original Destination Address)和新网关(Gateway)的地址。
阅读全文