Официальный сайт студ.городка НГТУ
Программирование и БД » Разбор пакета IPv4 

#1  27.01.12 17:49

Разбор пакета IPv4

Разбор пакета IPv4

Код::

Пакет запрос
1327597004.217276 IP (tos 0x0, ttl 63, id 16590, offset 0, flags [DF], proto TCP (6), length 60)
    2.185.111.109.sta.211.ru.57348 > 192.168.0.104.22002: Flags [s], cksum 0x54d5 (correct), seq 3717054230, win 14600, opti$
       
        0x0000:  4500 003c 40ce 4000 3f06 136c 6d6f b902       1 строчка (16-байт)
        0x0010:  c0a8 0068 e004 55f2 dd8d bf16 0000 0000
        0x0020:  a002 3908 54d5 0000 0204 05b4 0402 080a
        0x0030:  002d ffd8 0000 0000 0103 0306

Пакет ответ
1327597004.217354 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40)
    192.168.0.104.22002 > 2.185.111.109.sta.211.ru.57348: Flags [R.], cksum 0xf5b1 (correct), seq 0, ack 3717054231, win 0, $
     
        0x0000:  4500 0028 0000 4000 4006 534e c0a8 0068
        0x0010:  6d6f b902 55f2 e004 0000 0000 dd8d bf17
        0x0020:  5014 0000 f5b1 0000

Пытаюсь научиться читать пакеты. Сегодня весь день ковырял их и у меня возникли вопросы. Буду излагать то что я выудил и выделять жирным непонятные и спорные моменты.

0. Введение
Пакет тут записан в HEX. Для того чтобы ивидеть биты двоичной системы попросту переводим его в бин.

Например F будет  двоичной системе 1111, что соответствует 4 битам. итого 1HEX символ=4битам, 2HEX=1байту (т.к. 1байт=8бит).

1. Разбор пакета запроса.
Удобно выполнять разбор пакета 32 битовыми словами.  Для удобства записи "-" разделяет по 4 бита.
4500 003c=0100-0101-0000-0000-0000-0000-0011-1100
1-4 бит: Версия IP 0100=4, значит IPv4
5-8 бит: длина заголовка пакета 0101=5. Означает что заголовок состоит из пяти 32х битовых слов (т.е. пять пар xxxx xxxx)
9-16 бит: Тип сервиса (ToS) 0000-0000
9-11 бит: приоритет пакета (0-обычный. 1-приоритетный, 2-немедленный, 3-срочный и т.д.)
12 бит: D - минимальная задержка
13 бит: T - высокая пропускная способность
14 бит: R - высокая надёжность
15 бит: C - низкая стоимость
16 бит: не используется
17-32 бит: Общая полная длина пакета 0000-0000-0011-1100 = 60 Байт.

40ce 4000=0100-0000-1100-1110-0100-0000-0000-0000
1-16 бит:   Идентификатор пакета 0100-0000-1100-1110=16590
17-19 бит: Флаг
17 бит: резервный бит =0
18 бит: Запрет/разрешение фрагментации пакета =1 (запрет фрагментации)
19 бит: Последний ли это фрагмент =0 (да, это последний фрагмент)
20-32 бит: смещение фрагмента

Исправлено den-lex (27.01.12 19:08)

Offline

#2  27.01.12 17:56

Re: Разбор пакета IPv4

3f06 136c = 0011-1111-0000-0110-0001-0011-0110-1100
1-8 бит: TTL. 0011-1111 Я так понял тут написано вовсе не время, а некий параметр, от которого каждый маршрутизатор отнимает по единице. тем самым предотвращается зацикливание пакетов. Изначально TTL=FF ?? или как?
9-16 бит: Протокол -0000-0110 = 6.  Это будет протокол TCP
17-32 бит: контрольная сумма заголовка пакета. Кто объяснит как её считать? =)

Offline

#3  27.01.12 18:10

Re: Разбор пакета IPv4

6d6f b902 - ну тут всё просто IP отправителя
c0a8 0068 - IP получателя

Offline

#4  27.01.12 18:17

Re: Разбор пакета IPv4

а вот далее не совсем понятно
<изображение>
идут опции IP, этот параметр указан как не обязательный


Поле Опции (IP Options) является необязательным и используется обычно только при отладке сети. Механизм опций предоставляет функции управления, которые необходимы или просто полезны при определенных ситуациях, однако он не нужен при обычных коммуникациях. Это поле состоит из нескольких подполей, каждое из которых может быть одного из восьми предопределенных типов. В этих подполях можно указывать точный маршрут прохождения маршрутизаторов, регистрировать проходимые пакетом маршрутизаторы, помещать данные системы безопасности, а также временные отметки. Так как число подполей может быть произвольным, то в конце поля Опции должно быть добавлено несколько байт для выравнивания заголовка пакета по 32-битной границе.
Поле Выравнивание (Padding) используется для того, чтобы убедиться в том, что IP-заголовок заканчивается на 32-битной границе. Выравнивание осуществляется нулями.

Исправлено den-lex (27.01.12 18:18)

Offline

#5  27.01.12 18:28

Re: Разбор пакета IPv4

Выявленная закономерность
в запросе
e004 55f2
dd8d bf16
0000 0000
в ответе
55f2 e004
0000 0000
dd8d bf17

выделенное розовым зеркально отображено

55f2 - это номер порта на который был отослан запрос

e004 - ???
dd8d bf1[6 -???
0000 0000 - ???


а две другие 32 битовые строки очень похожи между собой
Так вот вопрос? Указаны ли тут опции IP? Где начинаются данные?

Offline

#6  27.01.12 19:44

Re: Разбор пакета IPv4

итак как оказалось выделенное жирным относиться уже к TCP
        0x0010:  c0a8 0068 e004 55f2 dd8d bf16 0000 0000
        0x0020:  a002 3908 54d5 0000 0204 05b4 0402 080a
        0x0030:  002d ffd8 0000 0000 0103 0306

Offline

#7  27.01.12 22:37

sav
Профиль

Re: Разбор пакета IPv4

очень специфичный вопрос. со стеком ip/tcp напрямую мало кто работает (по сравнению, к примеру, с http).

я тебе оч. рекомендую, в качестве альтернативного форума:
rsdn.ru - один из лучших русскоязычных
или мировой лидер, где получишь ответы на 99% вопросов:
stackoverflow.com

Offline

#8  27.01.12 23:20

Re: Разбор пакета IPv4

Забей в вики IP-пакет. Там очень понятная картинка.

Offline

#9  30.01.12 04:34

Re: Разбор пакета IPv4

den-lex написал(а):

5-8 бит: длина заголовка пакета 0101=5. Означает что заголовок состоит из пяти 32х битовых слов (т.е. пять пар xxxx xxxx)

опции - это часть заголовка

Исправлено dorido (30.01.12 04:36)

Offline

#10  31.01.12 09:28

Re: Разбор пакета IPv4

Предлагаю использовать Wireshark для этих целей. очень наглядно. зачем изобретать велосипед? он и покажет тебе все названия полей (вплоть до уровня приложений) и подчеркнёт нужный hex кусок. попробуй.
http://www.wireshark.org/

Offline

#11  01.02.12 18:05

Re: Разбор пакета IPv4

По заголовкам пакета разобрался =)
Заголовок IPv4 и TCP в моём случае имеет размер по пять 32х битовых слов. Итого на заголовки уходит 10 пар xxxx_xxxx.
Из одного пакета выдрал данные.
Вот оно:
0204 0550 0103 0300 0101 0402 0101 080a 0000 156e 0000 0000

Теперь ломаю голову как их читать =))

Offline

#12  27.02.12 23:28

Re: Разбор пакета IPv4

Имеется стандарт IEEE802.3u на 100BASE-T, можно скачать, подписавшись для академических целей и согласившись на 1 распечатку без распространения. И вместо разбора будешь сам генерить.
Есть бесплатные стеки TCP/IP от производителей микроконтроллеров, типа STM, NXP, TI, можно их поковырять, наполнение пакета все равно по стандарту идет.

Исправлено [D}|{]-a-z-Z (27.02.12 23:33)

Offline

#13  06.03.12 22:30

Re: Разбор пакета IPv4

офигеть, ты пакеты эвристикой разбираешь? а стандарты посмотреть не судьба?

Исправлено Malkolm (06.03.12 22:33)

Offline

Программирование и БД » Разбор пакета IPv4 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.185 сек.
Выполнено 14 запросов.