CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Linux/Unix社区 >  内核及驱动程序研究区

关于去包头的问题?

楼主yimuniao(暗暗亮)2005-08-01 16:54:14 在 Linux/Unix社区 / 内核及驱动程序研究区 提问

client将所有出外网的数据包都加上了一个自定义的包头(ip+udp),共28字节,我在总出口网关上将自定义包头去掉,用的是  
  memmove((unsigned   char   *)iph,(unsigned   char   *)((unsigned   char   *)iph+28),ntohs(iph->tot_len)-28);  
  memset((unsigned   char   *)iph+to_len,'\0',28);  
  skb_trim((*pskb),to_len);  
  运行成功了,可是效率是正常下载的1/3,原因可能是由于memmove存在大量的内存copy。  
   
  由于对linux内核以及sk_buff结构体的各个指针的含义,以及sk_buff的空间分配方式不是很了解,我想请问各位高手是否可以利用移动指针的方式解决这种问题,以避免memmove带来的大量的内存copy  
   
  谢谢了! 问题点数:100、回复次数:4Top

1 楼ericzhangali(另一个空间)回复于 2005-09-23 13:58:50 得分 0

不了解,顶一下Top

2 楼slone(slone)回复于 2005-09-24 13:26:00 得分 0

不用管那一块数据,将skb->data   指针下压,数据段长度缩短  
  skb_pull((*pskb),   28)Top

3 楼gaoxianfeng(高)回复于 2005-09-29 14:22:38 得分 0

是啊   数据不需要拷贝的   移动指针就可以了  
  Top

4 楼lirun(笨笨狗)回复于 2005-09-30 02:02:57 得分 0

是啊.不用拷贝,用   unsigned   char   *p_iph   =   (unsigned   char   *)((unsigned   char   *)iph   +   28)   不就可以了吗?Top

相关问题

  • 哪里有IP包头、ICMP包头、TCP包头等的声明文件?
  • 如何解析IP数据包头?
  • 写给 包头(最大的软件公司,呵呵!某方面)兄弟和同事 //这里有包头的吗????????
  • 一个关于TCP/IP包头教验和的问题
  • 请问VC下怎么控制一个tcp/ip的包头
  • 关于IP 包头与字节顺序的问题。。。
  • 如何解析IP数据包头?200分
  • 求助:关于Socket设置固定长度包头问题
  • 请教socks5代理udp,封包头的字节序列问题。
  • 怎么伪装IP地址啊,修改报文包头?

关键词

  • 指针
  • 数据
  • 包头
  • iph
  • memmove
  • skb
  • unsigned char
  • len

得分解答快速导航

  • 帖主:yimuniao

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo