我正在學習使用原始套接字,並試圖刪除tcp頭數據,但我似乎無法弄清楚res1,ece和cwr是什麼。通過我的網絡書籍和谷歌我知道其餘的代表,但似乎無法找到這三個。 下面是我包含區域中的tcphdr結構。我在評估那些部分時,我正在弄清楚他們代表什麼。幫助理解linux/tcp.h
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;
};
'res1'可能只是 「保留」。儘管我沒有關於其他人的線索。 – pajton