Формат заголовка кадра TCP/IP
Я использовал ethereal для захвата некоторых пакетов, и я пытаюсь разобраться в данных. Это вывод 1 из кадров.
0x0000: 4500 003a 4564 4000 4006 df05 0a01 012b E..:Ed@.@......+
0x0010: 0a01 0128 bfcf 3a98 e938 b9c8 e8a0 761f ...(..:..8....v.
0x0020: 8018 05b4 ef33 0000 0101 080a 0005 ff31 .....3.........1
0x0030: 0005 2c31 6865 6c6c 6f0a ..,1hello.
Символы справа являются ascii представлением информации слева (которая является шестнадцатеричной). Отправляемое сообщение "привет", а остальная часть информации (или, по крайней мере, часть ее) является заголовком, верно? Какой формат заголовка? Я немного погуглил и обнаружил, что это изображение: http://electronicdesign.com/site-files/electronicdesign.com/files/archive/electronicdesign.com/files/29/2099/figure_03.gif. Это правильно? Согласно изображению, байты 27-30 (761f 8018) являются IP-адресом назначения, но преобразование шестнадцатеричного значения в десятичное не заканчивается тем, что я являюсь моим ip. Я что-то упустил или я совершенно не прав? Также, как мне найти номер протокола?
1 ответ
Ваш источник ip 10.1.1.43 и пункт назначения ip 10.1.1.40?
Я считаю, что показанная информация не является сетевым фреймом, это IP-пакет. Первый октет уже является заголовком IP.
Чтобы получить быструю ссылку на заголовки IP и TCP, вы можете использовать вики
http://en.wikipedia.org/wiki/IPv4
http://en.wikipedia.org/wiki/Transmission_Control_Protocol
Но если вы хотите получить более подробную и достоверную информацию, вам следует проверить RFC напрямую.
http://tools.ietf.org/html/rfc791
http://tools.ietf.org/html/rfc793
Если я переставлю ваши данные в 4 октета в формате строки
4500 003a total length
4564 4000 fragment
4006 df05 header checksum
0a01 012b source IP
0a01 0128 destination IP
bfcf 3a98 ports
e938 b9c8 seq
e8a0 761f ack
8018 05b4 windows
ef33 0000 checksum
0101 080a
0005 ff31
0005 2c31
6865 6c6c
6f0a
Первый октет равен 4, поэтому вы должны использовать IPv4. В 3-й строке второй октет равен 6. Это номер протокола для TCP. Из этих двух советов, я думаю, это IP-пакет, а не Ethernet-пакет.
И насчет неземного, Реми прав, используйте Wireshare https://www.wireshark.org/