tcp协议头中the_off保存tcp头大小的算法~

来源:互联网 发布:linux cat 写入文件 编辑:程序博客网 时间:2024/06/03 19:24

咳咳,有些东西还是自己动脑好,找资料找了半天都没理解~

具体算法是

pcTphdr->dataoffset=sizeof(TCPHeader)<<2;//dataoffset为UCHAR类型

为什么是这样呢~~

本来用4位只能存入0-15的大小,因为tcp头范围为20-60,这样转为二进制前面2位(在the_x2)必然为0,所以在封包时将大小循环左移2位,及如果sizeof(TCPHeader)如果等于20,则存入0x50.这边很明显用到了许多保留位~~~

上面的算法在Ethereal中经过验证~~~