当前位置:  技术问答>linux和unix

关于IP包头的极度困惑,在线等。。。。

    来源: 互联网  发布时间:2017-03-23

    本文导语:  IP数据包头开始第一个byte分别为bit0 - bit3为4位版本号,bit4 - bit7为4位首部长度,一般情况都是版本好为4,首部长度为5,按照我的理解打印出来应该是0x54,但是抓包打印出来是0x45,而本人自己打印出来也是0x45,所...

IP数据包头开始第一个byte分别为bit0 - bit3为4位版本号,bit4 - bit7为4位首部长度,一般情况都是版本好为4,首部长度为5,按照我的理解打印出来应该是0x54,但是抓包打印出来是0x45,而本人自己打印出来也是0x45,所以本人非常疑惑,也查了很多资料,其中涉及的问题就是大小端的问题,但是按照本人的理解大小端对于单个字节是没有影响的
struct ip
  {
#if __BYTE_ORDER == __LITTLE_ENDIAN
    unsigned int ip_hl:4; /* header length */
    unsigned int ip_v:4; /* version */
#endif
#if __BYTE_ORDER == __BIG_ENDIAN
    unsigned int ip_v:4; /* version */
    unsigned int ip_hl:4; /* header length */
#endif
 ......
 ......
}本人对于这个定义的理解无论在大小端系统,都应该把ip_hl放在高四位,ip_v放在低四位,但是为什么直接在内存里打印出来却是0x45呢,求救,在线等.................................

|
位序的图,修改了一下(更改下顺序):
关于IP包头的极度困惑,在线等。。。。[图片]

|

从头到尾都是0x45 ,注意左右0~7的顺序
这里的0~7是什么顺序?0是对应字节的最高位第7位,而7对应最低位吗

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • IP包头在经过路由转发时是否会被修改
  • 什么情况下,系统会设置TCP包头中的PUSH标志位,谢谢!
  • ts包头结构问题
  • 知道TCP/UDP的包头,如何判断其应用层协议类型,struct tcphdr和 struct udphdr结构中那个变量能判断应用层协议类型。
  • 百思不得其解:从ip包头中取源目地址不正确


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3