Кто-нить знает, есть ли стандартные функции для подсчета контрольной сумы tcp / udp пакетов ?
нашел только для ip:
#include <machine/in_cksum.h>
int in_cksum_hdr(struct ip *);
в nmap 3.0 есть функция для подсчета так называемой интеренет-контрольной сумы. u_short in_cksum(u_char *pkt, int size);
В доках нашел, что контрольная сума tcp/udp пакетов вычисляется на основе интернет-котрольной сумы следующей информации:
buf = заголовок tcp + payload (ака данные пакета) + псевдо заголовок.
/* Копирования данных делал через memcpy */
sum=in_cksum(buf ...);
printf("sum: %d", htons(sum));
вроде все сделал...но сума не совпадает, тоесть где-то ошибка :-\
второй день над этим сижу, замахался уже...вот поэтому и спрашиваю, может можно возложить эту задачу на систему ?