PDA

Просмотр полной версии : Проблема со структурой TCP Сегментами.


Велемир
07.08.2009, 13:48
День добрый.Использую утилиту IP Tools 1.98.08.Возьмём.к примеру,следующий пакет:



0x: 0045 00 00 28 D0 B8 40 00 80 06 72 91 52 83 05 8B
0x10: 40 0C 1F 6C 04 22 14 46 0D DF 3D C4 78 E2 AD0A
0x20: 5010 FD59 70FC 0000



http://ru.wikipedia.org/wiki/TCP

К примеру,возьмём порт источника.Судя по гуглу,это должны быть биты 4-9,т.е 2-3-ий байты.Но сниффер показывает байт,расположенный на строке 0х10 - 0422.Не странный ли результат и кому теперь верить ? Хоть под размер подходит...

ettee
07.08.2009, 17:31
Смещение. Относительно TCP пакета смещение 0.
Судя по гуглу,это должны быть биты 4-9,т.е 2-3-ий байты
Source port/Destination port это 16 —битовые поля.

neprovad
07.08.2009, 20:53
Чтоб не гадать , для наглядности лучше использовать снифферы нормальные. Например - wireshark.

PvgValo
07.08.2009, 21:06
Если не ошибаюсь, то порт отправителя должен находится в 34-35 байтах, плюс интересно смотря какая задача перед тобой стоит, все же стоит учитывать, что если пакет тэггированный, то будет смещение на 4 байта :)
Странное значение если получилось, не забывай проверять! Смотри по какого порта ты отправляешь пакет, и соответственно значение которое ты получишь в нужных тебе байтах, будет номер порта только в шестнадцатиричной системе

p.s. Если не линух а винда, то альтернатива wireshark'у - Ethereal

oRb
07.08.2009, 21:42
Это IP пакет. До TCP еще дойти надо. Так смотреть удобнее:

45 00 00 28 <- IPv4
D0 B8 40 00
80 06 72 91
52 83 05 8B <- IP-адрес отправителя
40 0C 1F 6C <- IP-адрес получателя
04 22 14 46 <- Отсюда уже начинается TCP (исходя из ого, что длина заголовка этого пакета = 5)
0D DF 3D C4
78 E2 AD 0A
50 10 FD 59
70 FC 00 00

Исходя из дампа:
ип:порт отправителя - 82.131.5.139:1058
получателя: 64.12.31.108:5190 (ICQ)

PvgValo
07.08.2009, 22:15
oRb, ну я имел ввиду TCP/IP соответственно. Вот пример пакета:

0000 00 01 03 fb 60 85 00 17 31 bb fd a1 08 00 45 00
0010 00 30 4a 6c 40 00 80 06 55 6b c0 a8 00 02 5b 14
0020 3f 32 10 7a 2f 20 9c e4 17 cf 00 00 00 00 70 02
0030 ff ff 33 e1 00 00 02 04 05 b4 01 01 04 02
Подчеркнул порт источника! Соответственно это 0-1 байты TCP или 34-35 байты TCP/IP! Все же уровни OSI путать не стоит, IP это третий уровень - сетевой, а TCP это Транспортный уровень, собственно то что нужно! ;)