IP协议是互联网最基础的协议,在使用tcpdump查看数据包的时候,有时候对一些字段的汉所以不是很明确
比如:
[tim@localhost ~]$ sudo tcpdump -i any -n icmp -vvvv
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
21:11:21.505189 IP (tos 0x0, ttl 64, id 36112, offset 0, flags [DF], proto ICMP (1), length 84)
192.168.58.100 > 14.215.177.38: ICMP echo request, id 61852, seq 1, length 64
21:11:21.509826 IP (tos 0x0, ttl 128, id 49303, offset 0, flags [none], proto ICMP (1), length 84)
14.215.177.38 > 192.168.58.100: ICMP echo reply, id 61852, seq 1, length 64
我们仔细对照IP协议来分析上面的内容
IP协议头
下来的3个字段则描述如何实现分片:
[tim@localhost ~]$ sudo tcpdump -i any -nxt icmp -vvvv
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
IP (tos 0x0, ttl 64, id 8012, offset 0, flags [DF], proto ICMP (1), length 84)
192.168.58.100 > 14.215.177.38: ICMP echo request, id 9198, seq 1, length 64
0x0000: 4500 0054 1f4c 4000 4001 6053 c0a8 3a64
0x0010: 0ed7 b126 0800 0495 23ee 0001 8b13 a25c
0x0020: 0000 0000 d638 0d00 0000 0000 1011 1213
0x0030: 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
0x0040: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
0x0050: 3435 3637 0000 0000 0000 0000 0000 0000
0x0060: 0000 0000
IP (tos 0x0, ttl 64, id 8012, offset 0, flags [DF], proto ICMP (1), length 84)
192.168.58.100 > 14.215.177.38: ICMP echo request, id 9198, seq 1, length 64
4500 0054 1f4c 4000 4001 6053 c0a8 3a64
字段 | 协议 | 内容 | 对应的tcpdump文字描述 |
---|---|---|---|
0x4 | 4位的版本号 | IP版本号 | |
0x5 | 4位的头部长度 | 头部长度为5个字(20字节) | |
0x00 | 8位的服务类型TOS | 普通服务 | tos 0x0 |
0x0054 | 16位的总长度 | 数据包总长度(84字节) | length 84 |
0x1f4c | 16位的标识 | 数据报标识 | id 8012 |
0x4 | 3位的标志 | 禁止分片,因没携带数据 | flags [DF] |
0x000 | 13位的位偏移 | 为0表没发生位偏移 | offset 0 |
0x40 | 8位的生存时间 | 生存时间为64跳 | ttl 64 |
0x01 | 8位的协议字段 | 为1表上层协议是ICMP协议 | proto ICMP (1) |
0x6053 | 16位的IP头部校验和 | 头部校验和 | |
0xc0a8 3a64 | 32位的源端IP地址 | 源端IP地址192.168.58.100 | 192.168.58.100 |
0x0ed7 b126 | 32位的目的端IP地址 | 目的端IP地址14.215.177.38 | 14.215.177.38 |
8个优先级的定义如下:
111--Network Control(网络控制);
110--Internetwork Control(网间控制);
101--Critic(关键);
100--Flash Override(疾速);
011--Flash(闪速);
010--Immediate(快速);
001--Priority(优先);
000--Routine(普通)
ICMP Internet
控制消息TCP
传输控制UDP
用户数据报