- 论坛徽章:
- 2
|
原帖由 独孤九贱 于 2005-11-22 09:37 发表
不太同意你的话:
1、我的报告是国家信息安全测评中心测试的,只是关系很多商家的利益,不敢乱贴,sorry!
2、请贴出你的freebsd能到80M讲给出测试环境,以及测试的包的大小,我不太相信p3 1G的CPU,64by ...
fps鲜有所闻,大家好像一般都是说pps。桢的概念似乎是通讯上的,包似乎是网络处理上的。
先看看操作系统如何处理包:
一般对于高效处理,很少是一个包一个中断的,都是通过轮询方式,比如在freebsd下,高负载情况下,
可以设置5000次/s(intel百兆卡,一般够用,至于怎么够用,自己算吧)甚至更高,网卡会将收到的包
存放于队列中,等待cpu的主动处理。这样中断数会极大降低。一般好的网卡比如常见的intel百兆卡,
(如果没有记错的话,队列大小是32,而8139才4),可以缓冲大量的包,这样cpu的一次中断可以处理多
个包。在纯路由模式下,即使有少量的规则,包转发的速度是非常快的,基本可以达到线速的,当然
不是100M,所有的网络节点设备都会有延时的,只是多少而已。在防火墙中,消耗cpu的是nat和复杂的
规则检测,其他的基本功能消耗cpu比较少, 速度非常快,拿过一个包,通过指针定位ip头,根据ip头
定位动态规则表(hash检索),比较一下要么丢弃,要么直接送到下层。如果对协议栈了解的话,会
知道一个包从网络进入协议栈,大部分流程都是条件判断。
arp表,路由表之类的处理也非常快的,记得是3跳命中。再说了还有高速缓冲的,在freebsd中还可以
打开fastforward。mbuf使用起来也不像应用层的内存申请使用,不用担心那么耗费指令。对于包效验
和,汇编指令编写的,一般需要几十条指令,不会超过百条。
再看看CPU:
谈论到CPU,不能仅仅考虑频率。CPU的性能不能仅看频率,不同CPU的IPC也是不同的,众所周知的PIV
刚出来的时候还不如PIII,就是因为PIV的IPC不如PIII。而且现在CPU的IPC大都大于1,流水线技术不是
个摆设。还有就是PIII不等同于i686,i686只是一个指令集,支持i686的cpu很多,但是同代CPU中,PIII
是最强的。至于Cyrix的,是走低功耗市场的,性能嘛,不说了。
做程序,讲性能,不是简简单单的加减乘除,理论不等于实际。42%,莫非增加N多复杂规则检测? |
|