Как отличить tcp segment data от остальных данных в pcap пакете?

При написании программы на c++ для обработки pcap-пакета столкнулся с проблемой: в wireshark видно, что у пакета есть протокол маршрутизации, но также присутствует tcp segment data, который не подходит под критерии протокола маршрутизации.

Может кто-то знает, как можно отличить tcp segment data от bgp протокола, или хотя бы как узнать длину tcp segment data, и где он находится (т.к. иногда он идет до bgp протокола, а иногда после)?
ZrA3u.png
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ответы на вопрос 2
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
как можно отличить tcp segment data от bgp протокола,

BGP передаётся внутри TCP соединения. Поэтому все данные проходящие по соединению -- это BGP. Но поскольку это TCP и данные передаются сегментами, размер которых не связан со структурой данных, в TCP сегментах могут быть как целые сообщения BGP, так и части. На картинке видны два сообщения BGP: одно целое, общей длиной 0xa1, с 0x17c по 0x21с, и начало следующего, общей длиной 0xa0, с 0x21d и до конца TCP-сегмента. В следующем TCP-сегменте, соответственно, будет продолжение этого сообщения.

как узнать длину

Посмотреть в определение протокола, увидеть поля marker и length, использовать их?
Ответ написан
msHack
@msHack
почитайте про файловые сигнатуры
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы