Форум: "Сети";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];
ВнизHelp. CRC Tcp пакета Найти похожие ветки
← →
JorSand (2003-08-27 00:33) [0]Нужен алгоритм расчета CRC TCP пакета, если кто писал бросьте исходник-с плиз. Очень надо. Да, и RFC я уже читал, может конечно плохо, итог - у меня не вышел каменный цветок.
← →
JorSand (2003-08-27 10:30) [1]всем участвовавшим в обсуждении этого вопроса - большое человеческое спасибо.
← →
Verg (2003-08-27 10:39) [2]Писал, только на С:
ushort net_checksum( void *data, size_t len )
{
ulong sum = 0;
ushort *dp = (ushort*)data;
ushort sum_s;
int words = len >> 1;
while( words -- )
sum += *dp ++;
if( len & 1 )
sum += *(uchar*) dp;
sum = (ushort) sum + (sum >> 16) & 0xffff;
sum_s = (ushort) sum + (ushort)(sum >> 16);
return sum_s != 0xffff ? ~sum_s : sum_s;
}
ushort net_chksum_add( ushort s1, ushort s2 )
{
ulong sum = (ulong) s1 + (ulong) s2;
ushort usum = (ushort) sum;
sum = sum > 0xffff ? usum + 1 : usum;
if( !sum && (s1 || s2) )
return 0xffff;
else
return sum;
}
Кс TCP пакета:
Сумма котрольных кодов TCP пакета вместе с данными и псевдозаголовка TCP:
ushort get_udp_checksum(ip_header *iph, tcp_hdr* tcph, size_t size) {
tcp_pseudohdr ph;
ph.tph_saddr = iph -> ip_src;
ph.tph_daddr = iph -> ip_dst;
ph.tph_zero = 0;
ph.tph_proto = IP_PROTO_TCP;
ph.tph_len = tcph -> uh_ulen;
return net_chksum_add(
net_checksum( &ph, sizeof( ph ) ),
net_checksum( tcph, size ));
};
← →
Verg (2003-08-27 10:45) [3]Ошибочка:
> ushort get_tcp_checksum(ip_header *iph, tcp_hdr* tcph,
> size_t size) { // длина TCP пакета - заголовок+данные
> tcp_pseudohdr ph;
> ph.tph_saddr = iph -> ip_src;
> ph.tph_daddr = iph -> ip_dst;
> ph.tph_zero = 0;
> ph.tph_proto = IP_PROTO_TCP;
> ph.tph_len = size;
> return net_chksum_add(
> net_checksum( &ph, sizeof( ph ) ),
> net_checksum( tcph, size ));
> };
← →
JorSand (2003-08-28 10:25) [4]IP_PROTO_TCP равен 6 ????
Длина в псевдозаголовке (size) это есть = длина заголовока TCP пакета + кол-во байт данных?
← →
Jeer (2003-08-28 12:39) [5]http://www.programme.ru/archive/2001/1/012001_3_2.phtml
← →
JorSand (2003-08-28 13:46) [6]спасибо
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c