The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"помогите пересчитать TCP checksum"
Отправлено vic, 27-Сен-06 14:24 
>>2. checksum в TCP считается за весь TCP-пакет (включая заголовок) плюс псевдозаголовок.
>>У вас только заголовок TCP + псевдозаголовок.
>что значит включая заголовок?

struct cksum {
    struct pseudo_hdr pseudo;
    struct tcp_hdr tcp;
};
здесь:
struct tcp_hdr tcp;
это tcp заголовок, судя по названию. А должен быть весь TCP-пакет (заголовок и данные).
об этом написано в rfc (азбука для сетевого программирования).
http://www.faqs.org/rfcs/rfc793.html

>>3. выравнивание в pack(1)для стуктур стоит?
>нет
сделать обязательно для тех стуктур что накладываются на сырые данные (из сокета или из файла). по умолчанию размер структуры не равен сумме размеров членов структуры т.к. используется выравнивание (в разных системах по разному).

struct aaa1
{
int  mmm;
char bbb;
} a1;

#pragma pack(push,1)
struct aaa2
{
int  mmm;
char bbb;
} a2;
#pragma pack(pop)

sizeof(a1) != sizeof(a2)

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру