IP数据包包头分析
2010-06-02 17:13 libiver 阅读(1157) 评论(0) 编辑 收藏 举报
声明:欢迎任何人和组织转载本blog中文章,但必须标记文章原始链接和作者信息。
本文链接:http://blog.csdn.net/li_007/archive/2010/06/02/5642818.aspx
开拓进取的小乌龟------->CSDN点滴点点滴滴Blog
首先根据IP协议定义IP数据包头(关于IP协议头各部分的定义,具体参考http://en.wikipedia.org/wiki/IPv4),注意严格的类型大小,不然数据转换会出现错误。
首先来看一个调试内存截图,在这里都是以16进制来表示。
在这里我们需要注意在内存中字符存储方式(其实是由于CPU的决定的),也就是大小端和内存对齐原则。关于大小端做一个简单的解释。DEC和Intel的机器CPU一般采用小端. IBM, Motorola和Sun的机器CPU一般采用大端. 当然这并不能代表所有情况. 有的CPU即能工作于小端, 又能工作于大端, 比如ARM, PowerPC, Alpha. 具体情形参考处理器开发手册。
更形象的表述示例,来看看我在网上找到的图形。 比如一个int x, 起始地址为0x100, 它的值为0x1234567. 则它所占据的内存为0x100, 0x101, 0x102和0x103这4个字节,地址具体数值组织如下图:
Ok,可以结合大小端示例图与调试内存示例图,仔细分析分析,计算IP数据包头的各个变量的具体数值。然后结合IP数据包头定义来理解这个IP数据包的含义。
作者:点滴点点滴滴
本文版权归作者所有,欢迎转载,但未经作者同意时必须保留此段声明,且须在文章页面显著位置给出原文连接,否则作者保留追究法律责任的权利。