大家都知道,一般ip head 的大小是20。但是事情总有例外。 比如用到了 ip head 中的可变长的一个数据结构,叫做: RR选项RR选项可以做很多事,不是吗? 包括路由地址记录,时间戳记录等等。可是,当我们要求一个 ping 请求时,并且要求记录路由地址,有一个问题我很疑惑。ping 请求是一个icmp 报,紧跟在ip head 后面的。 现在多了一个RR选项在ip head 后面,不是很别拗吗?为了分辨 RR 是不是就用了 ip head 的第一个字节,那个 ver_len 字节? 默认len 是 5 ,表示ip head 有20个字节, 现在就要加上RR选项了,那么有可能是 5-15 之间的数据。请问我说的是否正确?谢谢
解决方案 »
- csdn是不是有一个下载各种vs的地方?
- 如何分割ASF媒体?
- 非常看不懂的一个问题,关于PKCS11在USB KEY中的应用,希望高手指点一下
- 关于GetDIBits的问题?
- 各位大虾帮小弟看看这个问题怎么解决呀!!求救!!
- 关于CTOOLBAR和CTREELIST的两个问题
- MFCO42D.DLL 今天看了几个例程都因为这个搞不定!高手帮忙
- Invalidate()用得有点乱,缓存信息有些不想去除的,怎么保存下来呢?
- 我用MFC做的运行时不显示的Active控件,如何得到HWND?
- 如何获得鼠标在屏幕上的设备坐标
- 如何将一个ActiveX控件加入到一个COM中
- (使用ATL7.0开发ActiveX第一次进入该控件,控件中心出现一个ATL7.0字样)
ip头部中一共有两个标识长度的字段,一个是整个数据报的长度(头部+数据),还有一个就仅是头部长度也就是你说的ver_len了。而且,之所以要用ver_len,也就是因为ip选项的存在使得ip头部长度不固定,只有知道了头部长度才能准确定位数据的开始。
另外,ip头部的第一个字节ver_len其实分为两部分,前4bit标识版本号,后4bit才是头部长度