Помогите понять linux / tcp.h - PullRequest
1 голос
/ 20 марта 2010

Я учусь использовать необработанные сокеты и пытаюсь удалить данные заголовка tcp, но я не могу понять, что такое res1, ece и cwr. Через мою сетевую книгу и Google я знаю, что означают остальные, но не могу найти ничего из этих трех. Ниже приведена структура tcphdr в моей области включений. Я прокомментировал части немного, поскольку я выяснял, что они стояли.

struct tcphdr {
        __be16  source;
        __be16  dest;
        __be32  seq;
        __be32  ack_seq;
\#if defined(__LITTLE_ENDIAN_BITFIELD)
        __u16   res1:4,
                doff:4,//tcp header length
                fin:1,//final
                syn:1,//synchronization
                rst:1,//reset
                psh:1,//push
                ack:1,//ack
                urg:1,// urge
                ece:1,
                cwr:1;
\#elif defined(__BIG_ENDIAN_BITFIELD)
        __u16   doff:4,//tcp header length
                res1:4,
                cwr:1,
                ece:1,
                urg:1,//urge
                ack:1,//ack
                psh:1,//push
                rst:1,//reset
                syn:1,//synchronization
                fin:1;//final
\#else
\#error  "Adjust your <asm/byteorder.h> defines"
\#endif
        __be16  window;
        __sum16 check;
        __be16  urg_ptr;
};

1 Ответ

2 голосов
/ 20 марта 2010

См. http://en.wikipedia.org/wiki/Transmission_Control_Protocol#TCP_segment_structure

res1 называется зарезервированным там.Другие имеют то же имя.

CWR (1 бит) - уменьшено окно перегрузки (CWR)
ECE (1 бит) - ECN-Echo показывает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...