Странный анализ IP-пакетов? - PullRequest
0 голосов
/ 07 июня 2019

Я использую tcpdump для перехвата некоторых tcp-пакетов, при анализе их в соответствии со схемой ip / tcp-пакетов пакет кажется поврежденным. Вот пример пакета, который я получил из вывода tcpdump. Кто-нибудь знаком с ними?

Разве первые 4 бита ip-пакета не должны всегда быть 0100 в ipv4?

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

1 Ответ

2 голосов
/ 07 июня 2019
    0x0000:  feee 809f 3247 5254 0054 aa9f 0800 4500  ....2GRT.T....E.

Первые 14 байтов от канального уровня (EN10MB).Уровень IP начинается только с 4500, где 4 (двоичный 0100) - это первые 4 бита, которые описывают номер версии, то есть версия IP 4.

Эти данные канального уровня явно запрашиваются -XX опция, которая используется ОП, как указано в комментарии Дэвида Хоэлзера.Цитировать из документации по tcpdump:

-XX. При синтаксическом анализе и печати, помимо печати заголовков каждого пакета, выведите данные каждого пакета , включая заголовок уровня ссылки , в шестнадцатеричном и ASCII.

...