Chinaunix

标题: 求救呀,这个问题一直找不到答案。关于添加ip option的!! [打印本页]

作者: wfgxzx    时间: 2011-11-22 16:44
标题: 求救呀,这个问题一直找不到答案。关于添加ip option的!!
我在ip包头中添加了option字段,并写进了 source route
  1. skb_push(skb,20);
  2.         memmove(skb->data,skb->data+20,20);
  3.         memset(skb->data+20,0,20);
  4.         sb->network_header -= 20;
复制代码
3次握手包也成功了,但是在发http get包时出问题了,图如下:



本应该是http包的结果变成了tcp segment of a reassembled PDU, 而其实包里是有http请求的。如图:



我不明白,为什么wireshark分析这个包时会出现这种情况,他把http请求部分分成了三块,一部分是tcp segment data,一部分是以太头的trailer,一部分是以太头的fcs。
而没改前,以太头是没有trailer和fcs的。图如下:



我不知道包是哪里造错了,我只加了一个20byte的option,各层指针,包头长度什么的我都相应的改了。还有我挂的钩子是在nf_ip_local_out上。

1.jpg (1.46 MB, 下载次数: )

1.jpg

2.jpg (1.27 MB, 下载次数: )

2.jpg

3.jpg (1.3 MB, 下载次数: )

3.jpg

作者: Randy_Xu    时间: 2011-11-24 11:16
不太清楚数据结构
sb->network_header -= 20;?
作者: renyuan000    时间: 2012-02-02 11:24
改包校验值没?
作者: goter    时间: 2012-02-03 08:31
ip头的长度没改?
ip头选项长度没改?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2