摘要:
最近遇到一个问题:为什么IP中的偏移单位是8B而不是4或16等其他字节?上网查了一下,发现回答往往是RFC的规定,IP的规定,并没有做出实质性的解释。再仔细研究一下IP头中每个字段的含义,终于发现偏移单位定为8B是有其原因的。它是由IP头部格式中的“总长度(16bit)”和“偏移(13bit)”两个字段所决定的。总长度定义了IP包的最大长度为2^16=64KB,偏移说明了IP分片时它最多能表示2^13个偏移单位,这样偏移单位就是2^16/2^13=2^3,即为8B了。如果偏移单位不是8B,如选4B,则13bit的"偏移"就不能表示出IP的最大长度了,而如果选16B,只需要1 阅读全文
posted @ 2012-12-04 17:03
静心小阁
阅读(7314)
评论(0)
推荐(3)
摘要:
1 #include <stdint.h> 2 #include <string.h> 3 typedef struct{ 4 int a; 5 union{ 6 int b; 7 int c; 8 struct{ 9 int d;10 union{11 int e;12 ... 阅读全文
posted @ 2012-12-04 14:57
静心小阁
阅读(255)
评论(0)
推荐(0)
浙公网安备 33010602011771号