2010-03-20 19 views
1

我正在學習使用原始套接字,並試圖刪除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; 
}; 
+0

'res1'可能只是 「保留」。儘管我沒有關於其他人的線索。 – pajton

回答