Re[2]: Как протокол IP использует псевдозаголовок из UDP и T
От: Linuxoid  
Дата: 28.03.03 11:13
Оценка: 26 (1)
Здравствуйте, Linuxoid, Вы писали:

L>Здравствуйте, Booch, Вы писали:


L>Псевдозаголовок используется при расчете контрольной суммы TCP и включает в себя выборочные данные из IP-заголовка. Формат псевдо-заголовка (RFC 793):


L>- Source IP-address;

L>- Destination IP-address;
L>- Protocol;
L>- Size;

L>Размер псевдо-заголовка 12 байт.


Вот мой код для расчета TCP-чексумы (без тела TCP):


        // Initialize locals
        tcp_packet = (unsigned short*)(ip_datagram + ip_head_len);
        size = ip_datagram_len - ip_head_len;
        csum = 0;

        // Psevdo-header
        csum += *((unsigned short*)(ip_datagram+12));   // Source IP
        csum += *((unsigned short*)(ip_datagram+14));
        csum += *((unsigned short*)(ip_datagram+16));   // Destination IP
        csum += *((unsigned short*)(ip_datagram+18));
        csum += htons((unsigned short)ip_datagram[9]);  // Protocol
        csum += htons(size);
        
        // TCP body
        (skipped)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.