我使用tcpdump捕获一些tcp数据包,根据ip / tcp数据包模式分析它们时,该数据包似乎已损坏。这是我从tcpdump输出获得的样本数据包。有没有人熟悉他们?
在ipv4以下,ip数据包的前4位是否总是0100?
ip数据包:https://en.wikipedia.org/wiki/IPv4
一些示例:http://mike.passwall.com/networking/samplepacket.html
13:11:43.330397 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 60)
172.16.0.14.16668 > 36.24.146.114.64853: Flags [S.], cksum 0xdc0f (correct), seq 3029391223, ack 129060479, win 14480, options [mss 1460,sackOK,TS val 1254469916 ecr 1492278057,nop,wscale 6], length 0
0x0000: feee 809f 3247 5254 0054 aa9f 0800 4500 ....2GRT.T....E.
0x0010: 003c 0000 4000 4006 d813 ac10 000e 2418 .<..@.@.......$.
0x0020: 9272 411c fd55 b490 d777 07b1 4e7f a012 .rA..U...w..N...
0x0030: 3890 dc0f 0000 0204 05b4 0402 080a 4ac5 8.............J.
uname -a
# Linux VM_0_14_centos 2.6.32-754.2.1.el6.x86_64 #1 SMP Fri Jul 13 12:50:12 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
# tcpdump
tcpdump tcp -vv -XX -n -i eth0 port 16668
答案 0 :(得分:2)
0x0000: feee 809f 3247 5254 0054 aa9f 0800 4500 ....2GRT.T....E.
前14个字节来自链接层(EN10MB)。 IP层仅以4500
开头,其中4(二进制0100)是描述版本号的前4位,即IP版本4。
这些链接层数据由-XX
选项明确请求,该选项由OP使用,正如David Hoelzer在评论中指出的那样。引用tcpdump的文档:
-XX解析和打印时,除了打印每个数据包的标头外,还以十六进制和ASCII码打印每个数据包的数据(包括其链接级别标头)。