linux下udp的转发问题

Dream_lover 2011-07-30 05:16:08
加精
我在linux下开发了一个代理程序(接收到客户端发的udp包,然后抓发到指定目的地)

功能上没有问题,现在的现象是:
1. 如果只是转发到相同网络环境(比如电信到电信),效率正常, 如果跨网转发(比如从电信到网通),则转发效率低
2. 用相同功能的程序(比如l2tp服务器),跨网转发的效率比我的代理程序高很多

请高手们给点建议:
比如 udp转发设置 什么选项可以提高转发效率? 或者网卡的什么设置可以提高转发效率? 或者控制转发的数据包大小可以提高转发效率?

我能想到的都试过,还是没有效果,现在没有头绪了。
...全文
2847 69 打赏 收藏 转发到动态 举报
写回复
用AI写文章
69 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dream_lover 2011-09-07
  • 打赏
  • 举报
回复
多谢大家的关注和建议,结贴。
Dream_lover 2011-09-07
  • 打赏
  • 举报
回复
问题找到了,因为我们是双路机器,udp的socket初始化时,全部绑定到了其中一个网卡,导致没有双路效果

解决方法:
1. 将udp的socket分别绑定了不同的网卡,实现双路的效果。
wqOoops 2011-08-22
  • 打赏
  • 举报
回复
顶下....喜欢网络编程的路过
moheng1 2011-08-19
  • 打赏
  • 举报
回复
学习...
clearfxxk 2011-08-19
  • 打赏
  • 举报
回复
路过学习···
钱国正 2011-08-19
  • 打赏
  • 举报
回复
这个问题比较难额。。。分享下源码吧,601269358@qq.com
tangyao5d 2011-08-19
  • 打赏
  • 举报
回复
学习了!
liuxxu01 2011-08-19
  • 打赏
  • 举报
回复
学习了。。
signforlin 2011-08-19
  • 打赏
  • 举报
回复
刚刚开始学啊
xxmv99 2011-08-18
  • 打赏
  • 举报
回复
必须的。。。
老郭81 2011-08-18
  • 打赏
  • 举报
回复
上面的同学已经把相关的socket技术细节改进说了,挺好的
不过你这个问题,应该是主要是机制上的问题,不同的运营商之间本身是有数据传输限制的,
一般来说涉及到跨运营商之间发送数据会采用多个线路,这样可以改变运营商之间的限制
只是靠程序改进是很难实现的,因为运营商在机房做了限制,我们的程序是很难改变的
hhloong 2011-08-18
  • 打赏
  • 举报
回复
嗯,在看l2tp的代码,不过比较多,还没有找到关键的地方
Dream_lover 2011-08-18
  • 打赏
  • 举报
回复
[Quote=引用 49 楼 wwwllg 的回复:]
以我的经验,要从以下方面着手。

1.SOCKET系统缓冲,这个很重要,因为,哪果缓冲小了的话,可能发过来的包,还没有接收就被丢掉。

2.TTL设置,这个也很重要,因为,包的TTL不同,决定了你转发的路径。

3.就是人为的错,转发上面,尽量IO操作不能被阻塞,稍的耗时的操作另起线程。因为,稍有抖动你的数据就会被复盖或丢掉。

4.socket选项,有些选项可能需要更改,比如质量……
[/Quote]

多谢,关于第3点,我今天会修改一些怀疑的地方,观察效果
guoqing_rui 2011-08-17
  • 打赏
  • 举报
回复
扯淡的人真多
chrns 2011-08-17
  • 打赏
  • 举报
回复
嗯,在看l2tp的代码,不过比较多,还没有找到关键的地方
yuanwza 2011-08-17
  • 打赏
  • 举报
回复
学习......
YHL27 2011-08-16
  • 打赏
  • 举报
回复
网络。。
fengying0529 2011-08-16
  • 打赏
  • 举报
回复
mark
xiesuchun1 2011-08-15
  • 打赏
  • 举报
回复
谢谢分享很喜欢
哈哈王戈多 2011-08-15
  • 打赏
  • 举报
回复
谢谢分享,学习了!!!
加载更多回复(42)

23,115

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧