入侵检测技术的演进(zZ)

 ZZ: 转载的一个广告    , 看了后感觉网络安全的变化也是一日千里啊。   

          随着对网络安全问题的理解日益深入,入侵检测技术得到了迅速的发展,应用防护的概念逐渐被人们所接受,并应用到入侵检测产品中。而在千兆环境中,如何解决应用防护和千兆高速网络环境中数据包线速处理之间的矛盾,成为网络安全技术发展一个新的挑战。 
    入侵检测技术的演进。 
    入侵检测系统(IDS, Intrusion Detection System)是近十多年发展起来的新一代安全防范技术,它通过对计算机网络或系统中的若干关键点收集信息并对其进行分析,从中发现是否有违反安全策略的行为和被攻击的迹象。IDS产品被认为是在防火墙之后的第二道安全防线在攻击检测、安全审计和监控等方面都发挥了重要的作用。
    但在入侵检测产品的使用过程中,暴露出了诸多的问题。特别是误报、漏报和对攻击行为缺乏实时响应等问题比较突出,并且严重影响了产品发挥实际的作用。Gartner在2003年一份研究报告中称入侵检测系统已经“死”了。Gartner认为IDS不能给网络带来附加的安全,反而会增加管理员的困扰,建议用户使用入侵防御系统(IPS, Intrusion Prevention System)来代替IDS。Gartner公司认为只有在线的或基于主机的攻击阻止(实时拦截)才是最有效的入侵防御系统。 
    从功能上来看,IDS是一种并联在网络上的设备,它只能被动地检测网络遭到了何种攻击,它的阻断攻击能力非常有限,一般只能通过发送TCP reset包或联动防火墙来阻止攻击。而IPS则是一种主动的、积极的入侵防范、阻止系统,它部署在网络的进出口处,当它检测到攻击企图后,它会自动地将攻击包丢掉或采取措施将攻击源阻断。因此,从实用效果上来看,和IDS相比入侵防御系统IPS向前发展了一步,能够对网络起到较好的实时防护作用。 

  ……Read More »

四驱车科普知识

ZZ: 从 http://bbs.paladin-club.cn/read.php?tid=9249 这里来的。

很多人都以为四轮驱动的汽车可在任何地面上跑,想去哪里就去哪里。实际上这是夸大了四驱车的能耐,就算是我的HUMMER,也不敢单独在野外行驶。开过四驱越野车的朋友可能都知道,在恶劣的路面上,汽车差速器使得每一轴只有一个轮可以得到驱动,而且是在不停地打滑。所以四驱车并非万能车,你必须知道四驱系统是怎么一回事。

四驱系统分类

1. 四轮驱动顾名思义就是汽车四个车轮都能得到驱动力。这样一来,发动机的动力被分配给四个车轮,遇到路况不好才不易出现车轮打滑,汽车的通过能力得到相当大地改善。四驱系统主要分成两大类:半时四驱(Part Time 4WD)和全时四驱(Full Time 4WD)。现时,我们使用的四驱车大多是半时四驱。只要车上有专门的两驱、四驱切换拨杆或按钮,那么,这辆就是使用半时四驱的四驱车。半时四驱是四驱车最常使用的四驱系统,基本型号(一辆四驱车可能有4-6种型号,如Pajero的五种型号的引擎、变速箱和车内饰完全不一样,车价可相差近一倍)的三菱帕杰罗,L300、L400、基本型号的陆地巡洋舰PRADO、LC100、LC70、LC75、美国JEEP、五十铃TROOPER、RODEO、铃木VITARA、JIMNY等都使用半时四驱。

2.  半时四驱的使用可分两种状态:一种是两驱,汽车只有两个车轮得到动力,与普通汽车没有区别;另一种则是四驱,此时汽车前后轴以50:50的比例平均分配动力。半时四驱历史悠久,其优点是结构简单、可靠性大,加装自由轮毂(Free Wheel Hub)后更加省油。全时四驱是使汽车四个车轮一直保持有驱动力的四驱系统。若要细分全时四驱系统,可分成固定扭矩分配(前后50:50比例分配)和变扭矩分配(前后动力分配比例可变)两大类。全时四驱也有很长的历史,可靠性更大,但其耗油量较大。

很多人都以为四轮驱动的汽车可在任何地面上跑,想去哪里就去哪里。实际上这是夸大了四驱车的能耐,就算是我的HUMMER,也不敢单独在野外行驶。开过四驱越野车的朋友可能都知道,在恶劣的路面上,汽车差速器使得每一轴只有一个轮可以得到驱动,而且是在不停地打滑。所以四驱车并非万能车,你必须知道四驱系统是怎么一回事。

半时四驱靠操作分动器实现两驱与四驱的切换。由于分动器内没有中央差速器,所以半时四轮驱动的汽车不能在硬地面(铺装路面)上使用四驱,特别是在弯道上不能顺利转弯。这是因为半时四驱在分动器内没有中央差速器,而无法把前后轴的转速调整所致。汽车转向时,前轮转弯半径比同侧的后轮要大,路程走得多,因此前轮的转速要比后轮快;以至四个车轮走的路线完全不一样,所以半时四驱只可以在车轮打滑时才挂上四驱。一回到摩擦力大的铺装路面应马上改回两驱,不然的话,轮胎、差速器、传动轴、分动器都会损坏。   不少半时四驱前轮都可以装上自由轮毂(FREE WHEEL HUB),这是一个很好的手动离合器,在不用四驱时,它可以断开前轮与传动半轴的连接,从而把车轮和左右传动半轴、差速器、传动轴、分动器的摩擦力都减去,达到省油和延长CV JOIN(万向节,constant velocity joint)和分动器齿轮寿命的目的。又可以降低车内噪声,是一个十分好的设计(WARN和ARB都有这产品给SUZUKI、LAND ROVER、HILUX、PRANDO、PAJERO、NISSAN CHEROKEE等半时四驱吉普车使用)。

所以驾驶半时四驱车必须小心,其四驱不可以在硬路面(铺装路面)上使用;下雨天也不可以用;有冰或雪地则可以用,而一旦离开冰雪路面应马上改回两驱。   全时四驱系统内有三个差速器:除了前后轴各有一个差速器外,在前后驱动轴之间还有一个中央差速器。这使全时四驱避免了半时四驱的固有问题(在硬路面不能用四驱的问题):汽车在转向时,前后轮的转速差会被中央差速器吸收。所以,全时四驱在硬路面(铺装路面)、下雨时有更可靠的四轮抓着力,比半时四驱优越。但到了冰雪,沼泽地就必须把中央差速器锁上(否则可能无法前进);回到不滑的硬路(铺装路),马上要把中央差速器锁解开。   有些全时四驱的中央差速器比较先进,一般情况下它可以把汽车动力平分给前后轴。当车轮出现打滑时,它会自动把中央差速器锁上。在第一代Range Rover自动变速车型中就可以找到这种设备,它是大众汽车发明的粘性防滑差速器。此系统同时也常被Audi的四驱车所使用。这种系统在小车上表现很好(类似的限滑差速器在现代的四驱轿车上被广泛使用,可有效提高行驶的安全性等),但在大四驱车上,它就没有差速器手动锁来得可靠。所以,新一代Range Rover已不再使用这一系统了。

另外,有一些四驱车使用看起来像全时四驱的智能四驱系统。这些系统平时是以前驱为主,当前轮打滑时,动力会部分转移后轮,帮助前轮使汽车行驶(可理解为智能的半时四驱),如本田CRV、HRV等就是使用这种系统(不少平价SUV包括CRV,HRV,凌志RX300丰田RAV4等都可能省去四驱系统而只是前轮驱动,购买时请注意)。这种系统并不可靠,但有新意(一般由前置前驱的轿车系统改进而来)。

从大四驱越野车的驱动系统来看,我个人喜欢半时四驱和有手动中央差速锁的全时四驱车,其它的智能四驱系统都是没有必要的。因为,时间证明了半时四驱和全时四驱带中央差速锁是最可靠的四驱系统。无可否认,智能四驱系统十分适合小汽车用。因为一般市民开车并不需要了解驱动结构,只要汽车会走就可以了。全自动是最简单的选择。

现在,有的四驱车标榜可以实现半时四驱和全时四驱的切换,我认为这是画蛇添足,只是车商为了增加新意的做法。如美国JEEP中顶级Cherokee、Grand Cherokee Evolution、日本顶级Pajero 3.5GDI等。它们还都有一个共同的缺点,就是不能装上自由轮毂(Free Wheel Hub),在用两驱时不能真正起到的省油作用。

差速器简单说:   前面已多次谈到差速器,可能有人连差速是什么也不太了解。要知道差速器对汽车来说是相当重要的。你必须对它有个认识,否则很难继续深入探讨。

差速器是把两个传动半轴(传动半轴直接连着左右车轮)连起来,通过齿轮组的特殊设计,两半轴(左右车轮)可以实现不同速度旋转,而不会出问题。差速器是1825年由法国人发明的。它是汽车工业发展中十分重要的一环,要是没有差速器,汽车就无法实现顺利地转弯。   由于车子在转弯时左右轮转速不一样,内侧车轮转得慢、外侧车轮转得快,驱动轴如何能传递动力而不干扰车轮的正常转速呢?靠的就是差速器,如果没有差速器,汽车在路面上就不能实现转弯(差速器种类及原理,解释起来需要较大篇幅,在此不冗述)。   在汽车发明的初期,道路条件很差。所以早在1902年,第一辆四驱车就已经诞生,但由于成本问题,加上CV JOJN万向节还没有达到成熟的地步,所以,四驱车并没有被大量生产。到了第一次世界大战,四驱车的可靠性得到认同,促使军队投入大量资金去制造全轮驱动的汽车。今日,全时四驱已十分流行三差速器的设计,它们可以在硬路(铺装路面)使用四驱系统而不会互相干涉。

解决差速器的缺陷:   差速器的结构精巧,可巧妙地抵消不同车轮间的转速差,但它又有致命的弱点。就是碰到恶劣路面如沙、泥地时,只要一个车轮陷入打滑状态,差速器另一端的车轮会完全丧失动力而一动不动。为解决这个问题,你必须为你的差速器装上LSD防滑差速器或AIRLOCK气动差速锁,把差速器的齿轮组部分完全锁止,使差速作用临时失效。

现代不少四驱车都装有差速器锁。在越野时可自动或手动地锁上差速器;如果你的四驱车没有差速器锁,那么,只要自己装上前后差速锁,在越野时可以发挥出真正的四驱本色。如今,有不少车装有ATRC(ACTIVE TRC)、TT4(TORQUE TRACK 4)等牵引力控制系统。当前或后轴轮胎发生空转打滑时,汽车会对空转轮施以制动力。由于差速器的结构使得其驱动力自动转往另外一边的车轮。这看起来很方便,在理论上十分好,但在攀爬高山和沼泽地时这套系统容易出现故障。这个连HUMMER身上的TT4也不例外,有时甚至连刹车系统也同时出现故障。所以我自己的HUMMER也再加上了前后两组ARB AIRLOCK(ARB品牌的手动控制气动差速器锁,这是一种改装用的限滑差速器锁),手动的差速锁是最可靠的。   L.S.D(Limited Slip Differential)限(防)滑差速器有许多种,但适合越野的不多。只有50%,75%和100%的限滑率才适合真正的越野。5%,25%的防滑差速器并不适合真正的越野,最起码应有50%。但50%和75%LSD在硬路U形转弯时会发出一点“滴、滴”声,因为它是用离合器的原理。而100%锁止的Airlock则是所有LSD中最好的一组,它是唯一可完全锁止差速器的装置(回到硬路面又可恢复一般差速器功能),是通过压缩空气来推动的。奔驰G系原装有三个用油压推动的差速器锁,而LC100、LC90、日产等四驱车也可以加装这种配件,Airlock在四驱车专门店都可以找到。

如果你还不能理解为什么要装差速器锁的话,希望我平时玩四驱车曾出现各种车轮离地打滑的状况能帮助你理解这一原理.

The legend of Borland 2nd edition 2004

这两天读了 《Borland 传奇》, 因为从学生时代到工作后的很多年都在用Borland的产品, 从 Turbo Pascal, Turbo C++,到后面的Jbuilder。 可以说在我们事业成长的过程中, Borland的开发工具是非常重要的一个支柱。 看了此书, 回想当年, 感觉很悲壮。  市场的竞争真是很残酷。

顺带摘了些当年的资料:

Borland软件公司(有译宝蓝公司或寶蘭公司,Borland Software Corporation,NASDAQBORL),是一家总部位于美国加利福尼亚州的软件公司,以提供软件开发生命周期所需的各种工具,以及已经变成今天的DelphiTurbo Pascal而闻名于世。2009年5月6日,Micro Focus宣布以7500万美元收购Borland。(http://zh.wikipedia.org/wiki/Borland

《Borland 传奇》 第二版 2004年。 有关介绍:

  ……Read More »

最大公约数和最小公倍数(Greast Common Divisor & Least Common Multiple)

ZZ: http://blog.csdn.net/huchong26/archive/2006/04/12/660195.aspx

最大公约数和最小公倍数
Greast Common Divisor & Least Common Multiple

看见网上有好多关于最小公倍数的算法,收集了一点,然后记录在自己的本子里,供自己学习之用。

1.欧几里德算法(辗转相除法):求两个数的最大公约数的算法思想:(最小公倍数=两个整数之积/最大公约数)
(1) 对于已知两数m,n,使得m>n;
(2)  m除以n得余数r;
(3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4);
(4) m←n,n←r,再重复执行(2)。

代码如下:
int gcd(int a, int b)
{
int m = a>=b?a:b;
int n = a<b?a:b;
int r = m%n;
while(r != 0)
{
m = n;
n = r;
r = m%n;
}
return n;
}

int lcm(int a,int b)
{
int tmp = gcd(a,b);
return (a*b)/tmp;
}

2.Stein算法
欧几里德算法是计算两个数最大公约数的传统算法,他无论从理论还是从效率上都是很好的。但是他有一个致命的缺陷,这个缺陷只有在大素数时才会显现出来。考虑现在的硬件平台,一般整数最多也就是64位,对于这样的整数,计算两个数之间的模是很简单的。对于字长为32位的平台,计算两个不超过32位的整数的模,只需要一个指令周期,而计算64位以下的整数模,也不过几个周期而已。但是对于更大的素数,这样的计算过程就不得不由用户来设计,为了计算两个超过64位的整数的模,用户也许不得不采用类似于多位数除法手算过程中的试商法,这个过程不但复杂,而且消耗了很多CPU时间。对于现代密码算法,要求计算128位以上的素数的情况比比皆是,设计这样的程序迫切希望能够抛弃除法和取模。

Stein算法由J. Stein 1961年提出,这个方法也是计算两个数的最大公约数。和欧几里德算法 算法不同的是,Stein算法只有整数的移位和加减法,这对于程序设计者是一个福音。

为了说明Stein算法的正确性,首先必须注意到以下结论:

gcd(a,a) = a,也就是一个数和他自身的公约数是其自身

gcd(ka,kb) = k gcd(a,b),也就是最大公约数运算和倍乘运算可以交换,特殊的,当k=2时,说明两个偶数的最大公约数必然能被2整除

有了上述规律就可以给出Stein算法如下:

1.如果A=0,B是最大公约数,算法结束
2.如果B=0,A是最大公约数,算法结束
3.设置A1 = A、B1=B和C1 = 1
4.如果An和Bn都是偶数,则An+1 =An /2,Bn+1 =Bn /2,Cn+1 =Cn *2(注意,乘2只要把整数左移一位即可,除2只要把整数右移一位即可)
5.如果An是偶数,Bn不是偶数,则An+1 =An /2,Bn+1 =Bn ,Cn+1 =Cn (很显然啦,2不是奇数的约数)
6.如果Bn是偶数,An不是偶数,则Bn+1 =Bn /2,An+1 =An ,Cn+1 =Cn (很显然啦,2不是奇数的约数)
7.如果An和Bn都不是偶数,则An+1 =|An -Bn|,Bn+1 =min(An,Bn),Cn+1 =Cn
8.n++,转4

代码如下:
C++/java 实现
// c++/java stein 算法
int gcd(int a,int b){
if(a<b)//arrange so that a>b{
int temp = a;
a = b;
b=temp;
}
if(0==b)//the base case
return a;
if(a%2==0 && b%2 ==0)//a and b are even
return 2*gcd(a/2,b/2);
if ( a%2 == 0)// only a is even
return gcd(a/2,b);
if ( b%2==0 )// only b is even
return gcd(a,b/2);

return gcd((a+b)/2,(a-b)/2);// a and b are odd

}

  ……Read More »

On building Borealis under Fedora 8

Borealis has been closed,  the last modification of install instruction was occured onTuesday August, 12, 2008.  By following the instruction, we know that Borealis has been built on Debian, Red Hat, Fedora Core 2, and Mandrake GNU/Linux. All these OSs are outdated, by today, Read Hat has been changed to Red Hat AS 5, and Redora Core 2 is called Fedora 12. Though you can try to download a FC2, why do not try to compile it on a newer OS, so let’s go. Our target is try to compile Borealias 2008 summer version on  Fedora 8.

According to “Packages Needed For Borealis”, we know that Gcc ,JDK and  BerkeleyDB are three packages that are very important. Before we go, try to become a Supper user and use “yum” command to install the necessary packages. During testing, I found that:

1. Gcc version must be 3.3.5 through 4.1.1,  or borealis’compiling will fail.

2. Berkely DB, also called db4, use the version shipped with Fedora 8 is OK.

3.XercesC, try to download the pointed version and compile it under Fedora 8.

After installing these package, then you have to modify the environment. It seems unnecessary that  add all path or alias.  For my system, my .bashrc file looks like this:

=======================================

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

# User specific aliases and functions

export JAVA_HOME=/usr/lib/jvm/java
export PATH=$JAVA_HOME/bin:$PATH

export INSTALL_NMSTL=/usr/local
export INSTALL_ANTLR=/usr/local
export INSTALL_BDB=/usr
export INSTALL_XERCESC=/usr/local/xerces
export INSTALL_GLPK=/usr
export INSTALL_GSL=/usr
export INSTALL_OCV=/usr

LD_LIBRARY_PATH=${INSTALL_ANTLR}/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${INSTALL_NMSTL}/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${INSTALL_XERCESC}/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${INSTALL_GLPK}/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${INSTALL_GSL}/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${INSTALL_BDB}/lib

export  LD_LIBRARY_PATH

=========================================================

If you install the packages by “yum”, then the software will be installed into /usr/bin , /usr/include and /usr/lib three directory.  For my environment, I justed  downloaded ANTL and XERCESC two package, and installed them into /usr/local directory.

At last,  you can build Borealis by using the “build.borealis.sh”.

1. Go to nmstl directory,  and run below commands:

> cd nmstl
> autoconf
> ./configure
> make
> make install

If you get any error messages, try to check your Gcc’s verison.

2. IGo to borealis directory,

If you want to build an dynamicall lib, you can try

> cd src
> ./setup
> wtf ./configure –enable-shared –disable-static –with-antlr=/usr/local –with-db4=/usr/ –with-nmstl=/usr/local/ –with-xercesc=/usr/local/xerces

If you need a static lib system, try these:

> wtf ./configure –disable-shared –enable-static –with-antlr=/usr/local –with-db4=/usr/ –with-nmstl=/usr/local/ –with-xercesc=/usr/local/xerces

Explanation:
- “wtf” comes with nmstl and pretty-prints all gcc error messages (great tool!)
- There are reasonable defaults for all packages (the ones listed in the example above) so you might be able to run only:
> wtf configure –enable-shared –disable-static
- The “–enable-shared –disable-static” flags should prevent the compiler from generating static libraries.

Notice:  Above command can work under src directory and will generate monitor and borealis two file. For other direcotry,  this method will meet errorssssss.

3. So, it recommend that use the shell command to do this, simple and OK.

Try to build by a shell toolkit, try this line:
./build.borealis.sh -client -tool -static -antlr /usr/local -bdb /usr/ -nmstl /usr/local -xercesc /usr/local/xerces

./build.borealis.sh  -demo -static -antlr /usr/local -bdb /usr/ -nmstl /usr/local -xercesc /usr/local/xerces -

./build.borealis.sh  -test -static -antlr /usr/local -bdb /usr/ -nmstl /usr/local -xercesc /usr/local/xerces

4. If you install glpk, gsl, ocv packages, you can try thist:

./build.borealis.sh -client -tool -static -antlr /usr/local -bdb /usr/ -nmstl /usr/local -xercesc /usr/local/xerces -glpk /usr/local -gsl /usr/local -ocv /usr/local

./build.borealis.sh  -demo -static -antlr /usr/local -bdb /usr/ -nmstl /usr/local -xercesc /usr/local/xerces -glpk /usr/local -gsl /usr/local -ocv /usr/local

./build.borealis.sh  -test -static -antlr /usr/local -bdb /usr/ -nmstl /usr/local -xercesc /usr/local/xerces -glpk /usr/local -gsl /usr/local -ocv /usr/local

In my Fedora 8, I met some errors on SDL, when I try to compile Demo and Test.

5. After that, you can get

> src/monitor
> src/borealis
> test/mytest

and some tools under tool directory.

6. “Install”

If you try “make install”, the execute files will be copied to /usr/local/bin, /usr/local/lib directorys. If you like, try this, or you have to execute the file in different direcotry.

The end and good luck.

SEO Powered by Platinum SEO from Techblissonline