Из ОС Linux я пытаюсь написать свой собственный монитор использования данных на C или Python. Я искал и исследовал в течение нескольких дней. В настоящее время я пытаюсь адаптировать sniffex.c к своим потребностям. Мне удалось проверить общее количество байтов, отправленных и полученных за несколько сеансов ftp.
В sniffex.c вычисляется размер TCP-пакета. Мой вопрос: как вы рассчитываете размер пакета UDP? Я искал по этой теме, но ничего не нашел. Имеет ли этот вопрос смысл?
Обновление:
Функция, в которой вычисляются размеры пакетов, выглядит так:
got_packet(u_char *args, const struct pcap_pkthdr *header, const u_char *packet)
{
...
int size_payload;
...
case IPPROTO_UDP:
printf(" Protocol: UDP\n");
size_payload = header->len;
...
}
Мне все еще нужно добавить 4 к size_payload
?
Обратный вызов этой функции выглядит так:
/* now we can set our callback function */
pcap_loop(handle, num_packets, got_packet, NULL);