У меня есть кадры Ethernet, и я хочу получить полезную нагрузку TCP на конкретный порт из этих кадров.
Как мне это сделать? Есть ли библиотеки для разбора фреймов и tcp?
Платформа - Linux.
У меня есть кадры Ethernet, и я хочу получить полезную нагрузку TCP на конкретный порт из этих кадров.
Как мне это сделать? Есть ли библиотеки для разбора фреймов и tcp?
Платформа - Linux.
По сути, вам нужно удалить заголовок Ethernet в качестве первого шага. Затем удалите заголовок IP и, наконец, удалите заголовок TCP. Однако шифрование может быть на уровне MAC или IP. В этом случае вам необходимо расшифровать данные, прежде чем вы сможете удалить заголовок и извлечь полезную нагрузку. В любом случае это очень широкий вопрос; вам следует ознакомиться с http://en.wikipedia.org/wiki/OSI_model. Я убедитесь, что в Linux есть библиотеки, которые делают то, что вы просите (при условии, что нет шифрования или вы можете расшифровать)
Может быть, попробуйте поискать библиотеки в libpcap / winpcap / jpcap или почерпнуть какие-нибудь идеи.
Или, если предположить, что кадры находятся в самой простой форме (без шифрования, без 802.1Q, нет ... и т. Д.), Они будут выглядеть так:
dmac (6) + smac (6) + etype (2) + IP_hdr (20) + TCP_src_port (2) + TCP_dst_port (2)
Вы можете сопоставить свой порт tcp dst соответствующим образом со смещением кадра.