- 论坛徽章:
- 0
|
需求:
在一台单网口的工控服务器(CPU 赛扬600M,256M内存)上要实现这样一个功能:
1.服务器上有一对UDP侦听端口如5000:5001,当5000端口收到数据转发到5001端口收到数据的源Ip:原端口,
当5001端口收到数据转发到5000端口收到数据的源Ip:原端口
(注:数据的来源IP:端口,服务器事先是不知道的,每个UDP包长在200字节左右,包间隔20ms左右)
2.服务器上同时有100对这样的UDP端口对都支持这样的功能。
我的实现:
我自己写了一段应用程序来实现这个功能,
方法如下:侦听一对UDP端口A,B
当端口A收到数据时,记下A端口的数据来源Ip:端口,
当端口B收到数据时,记下B端口的数据来源Ip:端口,
然后端口A接收的数据转发到B端口数据来源Ip:端口,
端口B接收的数据转发到A端口数据来源Ip:端口。
发现问题:
当有48对同时工作时,CPU就被占用90%~100%,其中其系统占用到了80%。
cpu占用必须降下来才行。
寻求解决方案:
1.能否用iptable控制内核来实现上述功能?若可行具体怎么做?
2.其他??????
十万火急!!拜托求各位大虾帮忙。 |
|