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

TD 3G卡sk_buff修改了http应用层的信息后包不肯发出去

    来源: 互联网  发布时间:2016-08-15

    本文导语:  情况是这样的: 网关设备中我的一个模块挂载在forward点,当该网关下的PC上网时对特定的URL,会修改http get的URL地址信息和TCP头checksum,以转到相应的URL。 网关设备支持不同的上网方式,设置成IP连接(就是WAN口是...

情况是这样的:
网关设备中我的一个模块挂载在forward点,当该网关下的PC上网时对特定的URL,会修改http get的URL地址信息和TCP头checksum,以转到相应的URL。

网关设备支持不同的上网方式,设置成IP连接(就是WAN口是可以正常上网的以态网)时,模块运行正常,URL地址被替换。

但一旦用3G TD卡上网,URL地址信息也确实已被修改了,TCP头的checksum也重算了,但是结果抓包发现TD卡就是不肯将这包发出去。(TCP Retransmission自动重发当然也失败了)

请问各位大爷可能的问题在哪?
是不是还得修改skb其它什么信息,以使TD卡PPP上网也能正常呢?

|
http://lxr.linux.no/linux+v2.6.33/net/ipv4/netfilter/nf_nat_helper.c#L153

关于修改tcp包,你可以参考一下nf_nat_mangle_tcp_packet  这个函数

我看读懂你的代码是要修改什么,不过修改了ip地址,好像也要重新计算ip头的校验的。
你还是抓包仔细看看吧,wireshark里面如果出现校验错误他会提示的。

|
把你的代码发出来看看。如果改变了包的长度,还需要在后面修复ack的

    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • 关于socket的sk_buff,如何判断这个sk_buff是不是完整的?
  • 有关sk_buff
  • sk_buff链表的一个问题
  • 怎样取得sk_buff中的data
  • sk_buff中tcp的data
  • sk_buff的小问题!!!!!!!!!!!!!!
  • 请问如何把sk_buff中所保存的数据信息显示出来?急!
  • 请问有关linux底层网络数据结构sk_buff相关知识
  • 关于sk_buff的问题
  • 怎样从sk_buff结构中取得vlan信息
  • 传入一个sk_buff的结构,如何获取tcp的端口和其它数据
  • 如何将数据包sk_buff从内核空间提交给用户空间呢?
  • 新内核版本的sk_buff问题!!!急求高见!!!
  • 从netfilter里注册的函数获得的sk_buff的数据包如何重组?
  • sk_buff结构里的char cb[48]是什么用的?
  • linux是如何给usb网卡封包成sk_buff的
  • 关于linux套接字缓冲区sk_buff的问题
  • sk_buff中定义的一个char cb[48]是用来干什么的啊?
  • sk_buff中重复字段的区别及data数据字段请教
  • linux内核中sk_buff的问题


  • 站内导航:


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

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

    浙ICP备11055608号-3