- 论坛徽章:
- 0
|
延时大点无所谓,我的意思是说,给网卡开的缓冲区是一定的,即使用内部协议栈,包在系统内的生存时间总有一个固定值,
假如说一个网卡1000K包数/秒,开辟一个100M大小的缓冲区,因为一个eth frame是1500,为了计算方便,给每个包使用
2k字节, 则1M放512个包, 100M可以放共100*512= 50K个包; 如果不做任何处理,则包的生存时间是1/20秒= 0.05秒
也就是如果应用程序能够50毫秒内处理完这个包,则系统相当不丢包,在这个条件下,一个应用程序如果有锁的碰撞,很容易丢包.
旁路拦截是在智能交换机(路由器)中,使用portmap或者端口分光技术,把出口的流量进行复制后送给处理机器,这样处理机器
就能处理那么多的流量了. 通常回复包的速度要远远快于正常请求包速度,这样就能先到达请求机器,从而达到控制的目的.
这种情况下,只能对tcp进行拦截,对udp无能为力,如果要对udp应用拦截,只能是模拟应用发送udp请求包.
这个系统缺点是要使用交换机等设备,但是能做交换机作不到的很多工作,比如应用拦截,统计,监控等.
如果采用直接拦截,我认为目前的PC SERVER是达不到这样的能力的,一个普通的防火墙应用,最多也只能处理300M左右
的流量吧(不确定).所以要用PC作这样的高性能防火墙,估计性能还是不怎么够.
如有错误,请多指教,呵呵. |
|