Как определить, был ли записан файл PCAPNG с ограниченной длиной привязки при синтаксическом анализе с помощью SharpPCap в C#? - PullRequest
1 голос
/ 08 мая 2020

Это кажется глупым вопросом, но я не могу найти способа узнать, был ли пакет захвачен только частично. Все длины данных, которые я могу найти в структурах пакетов, используют длины из заголовка, и даже байтовые структуры, кажется, заполняют данные мусором. IE, если я захватил 50 байтов из 768-байтового пакета, в пакете будет 768 байтов «данных».

Источник Wireshark, кажется, требует исключения при синтаксическом анализе пакета, чтобы узнать, что он был захвачен только частично. Я читаю только информацию заголовков, поэтому я не анализирую ничего, кроме заголовка TCP.

Что я действительно хочу сделать, так это создать индикатор выполнения, который работает для захватов с ограничением длины привязки, если есть способ просто сделай это.

Спасибо,

1 Ответ

0 голосов
/ 09 мая 2020

Если вы нажмете ctrl + c при захвате пакета с помощью tshark или tcpdump, вы можете повторить это. Длина захваченных полей и фактическая длина в заголовках пакетов pcap и pcapng будут отличаться, если захват будет прерван в середине пакета.

Согласно документации , для один заголовок пакета, соответствующие поля:

Public Fields
  CaptureLength uint . The the bytes actually captured. If the capture length is 
                         small CaptureLength might be less than PacketLength  
  PacketLength  uint . The length of the packet on the line

Я не вижу кода pcapng в репозитории Sharppcap , поэтому маловероятно, что был реализован синтаксический анализатор.

...