np是networkprocessor的缩写,意为网络处理器。根据“国际网络处理器会议”的定义:网络处理器是一种可编程器件,它特定地应用于通信领域的各种任务,比如包处理、协议分析、路由查找、防火墙、qos等。
网络处理器器件内部通常由若干个微码处理器和若干硬件协处理器组成,且多个微码处理器在np内部并行处理,通过预先编制的微码来控制处理流程。对于某些复杂的标准操作,如内存操作、路由表查找算法、qos的拥塞控制算法、流量调度算法等,则采用硬件协处理器来进一步提高处理性能,从而实现了业务灵活性和高性能的有机结合。
np的多种产品形态
目前np主要用于网络骨干设备和网络接入设备,用来开发从网络第2层到第7层的各种服务和应用。目前,采用np处理分组交换的厂家,既有第一梯队的网络公司,如思科、北电和朗讯等,也有不少后起之秀,如华为、中兴、港湾等。但是,其np用途却不尽相同:思科宽带汇聚系列产品使用了思科的并行快速转发(pxf)np,它被业内称为“np的鼻祖”;华为在“第五代路由器”ne80/40/20系列产品中全面采用了np;港湾的高端路由器、核心交换机,如nethammerg系列采用了np相关技术;ut斯达康公司选择了motorola的np作为几项3g无线接入网产品的封包转发引擎……
哪种np技术更适合防火墙
我们不难了解,由于各厂商所专注的np技术领域不同,决定了np产品之间的差异。目前,国内多数安全厂商在np技术上大都选择了ibm或intel的np技术。其实,具体选用哪种np技术开发防火墙,因素有很多,包括所选np技术的性能和成熟度、提供np技术的厂商实力和重视程度,以及np技术厂商可提供的支持力度及价格。
ibm研发的powernp系列芯片不仅支持多线程,且每个线程都有充足的指令空间,在一个线程里完成防火墙功能绰绰有余。其系列产品中,以np4gs3为代表,该芯片最高端口速率可达oc-48,并具有4.5mbps的报文处理能力和最大4g的端口容量,并且,其拥有ibm创新的带宽分配技术(bat),是进行下一代系统设计的强大部件。而且,ibm还为开发者提供了软件架构的解决方案和仿真平台,大大缩短了开发难度和周期。目前,已经有不少厂家采用ibm的芯片开发高端防火墙产品,如联想网御于2003年10月推出了国内第一款基于np技术的千兆线速防火墙;2005年,在解决了多项基于多np协同工作的技术难题的基础上,联想网御成功推出了万兆级的超性能防火墙。
intel推出的ixp2000系列芯片支持微码开发,在性能上有了长足的提高,如ixp2400理论上最多可支持2.5gbps的应用,ixp2800则支持10gbps以上的应用。其sdk开发包一般功能十分齐全,模块化很好,便于开发人员控制。不足的是,ixp2400每个微引擎仅能存储4k*32位的指令,比较适合开发路由器和交换机这类产品;ixp2800每个微引擎能存储8k*32位的指令,基本可以满足防火墙功能开发的需要,但是,由于其性能提高带来了产品设计与应用复杂度的成倍提高,造成价格十分昂贵。此外,该系列产品的硬件查表功能比较弱,这对于防火墙这类需要大量查表操作的设备来讲,是致命的弱点。
np防火墙将大步前行
随着新一代网络的继续发展,np将更加倚重线速、智能化的包处理技术,而不仅仅是简单的基本性能,np技术的发展将直接影响到np防火墙的发展。据业内专家调查分析,np技术将向着更高的性能、更多功能支持、多种技术并存和标准化等特征发展,基于np的防火墙产品将随着np的发展大步前行。
更高的性能
五年来,网络的传输速度每年翻一番,几年前的主干网速度是155mb/s,现在已经到了10gb/s,两到三年内又会提高到40gb/s,网络处理器也必须满足这种变化。np性能的提高,将直接推动防火墙性能的提高。
更多的功能支持
随着网络处理器在更多领域中的应用,网络处理器必须具有更多的功能支持,如深度内容处理和ipv6协议识别,以能适应防火墙等安全设备的需求。
多种技术并存
np不是万能的,它并不会完全取代通用处理器和asic在网络设备中的应用。在对处理性能需求很高的高端设备中,asic仍然具有很强的生命力,可以预见的是,在数据层面、控制层面和管理层,通用处理器、np和asic将各司其职,共同为防火墙应用提供灵活的服务。
实现标准化
np技术的开发与应用直接促成了网络处理器论坛(npf)的诞生。npf的成立,将进一步推动np的发展,实现标准化,解决产品互连互通和软件可移植性等问题。
涌现庞大的第三方开发队伍
随着标准化工作的深入,再加上网络处理器本身具有模块化结构的特点,将涌现出一支庞大的第三方队伍,在硬件组件、np操作系统、开发工具、软件应用等方面努力。
总之,防火墙技术与np技术开始紧密地联系在一起,np技术的变革将推动防火墙技术向着更高性能、更多功能以及标准化的方向发展。
元素符号:np英文名:neptunium中文名:镎
相对原子质量:237.048常见化合价:+3,+4,+5,+6电负性:1.36
外围电子排布:5f46d17s2核外电子排布:2,8,18,32,23,8,2
同位素及放射线:np-235[1.08y]np-236[155000y]np-236m[22.5h]np-237(放α[2140000y])np-238[2.11d]np-239[2.35d]np-240[1.03h]np-240m[7.22m]
热容:j/(mol·k)
29.46
导热系数:w/(m·k)
6.3
导电性:10^6/(cm·Ω)
0.00822
熔化热:(千焦/摩尔)
5.190
电子亲合和能:0kj·mol-1
第一电离能:600kj·mol-1第二电离能:0kj·mol-1第三电离能:0kj·mol-1
单质密度:20.45g/cm3单质熔点:640.0℃单质沸点:3902.0℃
原子半径:0埃离子半径:埃共价半径:0埃
常见化合物:npo2npf4
发现人:麦克米伦、阿贝尔森时间:1940地点:美国
名称由来:
得名于海王星的名字“neptune”。
元素描述:
稀有的银白色放射性金属。
元素来源:
用慢中子轰击铀原子而得到。
元素用途:
没有什么实际用途。
p/np问题是在理论信息学中计算复杂度理论领域里至今没有解决的问题,它被“克雷数学研究所”(claymathematicsinstitute,简称cmi)在千禧年大奖难题中收录。p/np问题中包含了复杂度类p与np的关系。1971年史提芬·古克(stephena.cook)和leonidlevin相对独立的提出了下面的问题,即是否两个复杂度类p和np是恒等的(p=np?)。
p和np
复杂度类p包含所有那些可以由一个确定型图灵机在多项式表达的时间内解决的问题;类np由所有其肯定解可以在给定正确信息的多项式时间内验证的决定问题组成,或者等效的说,那些解可以在非确定图灵机上在多项式时间内找出的问题的集合。很可能,计算理论最大的未解决问题就是关于这两类的关系的:
p和np相等吗?
在2002年对于100研究者的调查,61人相信答案是否定的,9个相信答案是肯定的,22个不确定,而8个相信该问题可能和现在所接受的公理独立,所以不可能证明或证否。[1]对于正确的解答,有一个,000,000美元的奖励。
np-完全问题(或者叫npc)的集合在这个讨论中有重大作用,它们可以大致的被描述为那些在np中最不像在p中的。(确切定义细节请参看np-完全)理论计算机科学家现在相信p,np,和npc类之间的关系如图中所示,其中p和npc类不交。
假设p≠np的复杂度类的图解.如p=np则三个类相同.本质上,p=np问题问道:如果是/不是问题的正面答案可以很快验证,其答案是否也可以很快计算?这里有一个给你找点这个问题的感觉的例子。给定一个大数y,我们可以问y是否是复合数。例如,我们可能问53308290611是否有非平凡的因子。回答是肯定的,虽然手工找出一个因子很麻烦。从另一个方面讲,如果有人声称答案是"对,因为224737可以整除53308290611",则我们可以很快用一个除法来验证。验证一个数是除数比首先找出除数来简单得多。用于验证一个正面答案所需的信息也称为证书。所以我们的结论是,给定正确的证书,问题的正面答案可以很快的(也就是,在多项式时间内)验证,而这就是这个问题属于np的原因。虽然这个特定的问题,最近被证明为也在p类中(参看下面的关于"质数在p中"的参考),这一点也不明显,而且有很多类似的问题相信不属于类p。
限制到是/不是问题并没有改变问题;即使我们允许更复杂的答案,最后的问题(是否fp=fnp)是等价的。
形式化定义
更正式一些,一个决定问题是一个取一些字符串为输入并要求输出为是或否的问题。若有一个算法(譬如图灵机,或一个lisp或pascal的程序并有无限的内存)能够在最多nk步内对一个串长度为n的输入给出正确答案,其中k是某个不依赖于输入串的常数,则我们称该问题可以在多项式时间内解决,并且将它置入类p。直观的讲,我们将p中的问题视为可以较快解决的问题。
现在假设有一个算法a(w,c)取两个参数,一个串w,也就是我们的决定问题的输入串,而另一个串c是“建议证明”,并且使得a在最多nk步之内产生“是/否”答案(其中n是w的长度而k不依赖于w)。进一步假设
w是一个答案为“是”的例子,当且仅当,存在c使得a(w,c)返回“是”。
则我们称这个问题可以在非决定性多项式时间内解决,且将它放入np类。我们把算法a作为一个所建议的证明的检验器,它运行足够快。(注意缩写np代表“non-deterministic(非确定性)polynomial(多项式)”而不是代表“non-polynomial(非多项式)。)
np完全
要解决p=np问题,np完全的概念非常有用。不严格的讲,np完全问题是np类中“最难”的问题,也就是说它们是最可能不属于p类的。这是因为任何np中的问题可以在多项式时间内变换成为任何特定np完全问题的一个特例。例如,旅行商问题的判定问题版本是np完全的。所以np中的任何问题的任何特例可以在多项式时间内机械地转换成旅行商问题的一个特例。所以若旅行商问题被证明为在p内,则p=np!旅行商问题是很多这样的np完全的问题之一。若任何一个np完全的问题在p内,则可以推出p=np。不幸的是,很多重要的问题被证明为np完全,但没有一个有已知快速的算法。
更难的问题
虽然是否p=np还是未知的,在p之外的问题是已经知道存在的。寻找国际象棋或围棋最佳走法(在n乘n棋盘上)是指数时间完全的。因为可以证明p≠exptime(指数时间),这些问题位于p之外,所以需要比多项式时间更多的时间。判定presburger算术中的命题是否为真的问题更加困难。fischer和rabin于1974年证明每个决定presburger命题的真伪性的算法有最少2^(2^(cn))的运行时间,c为某个常数。这里,n是presburger命题的长度。因此,该命题已知需要比指数时间更多的运行时间。不可判定问题是更加困难的,例如停机问题。它们无法在任何给定时间内解决。
p真的容易处理吗?
上面所有的讨论假设了p表示“容易”而“不在p中”表示“困难”。这是一个在复杂度理论中常见而且有一定准确性的假设,它在实践中却不总是真的,原因包括如下几点:
它忽略了常数因子。一个需要101000n时间的问题是属于p的(它是线性时间的),但是事实上完全无法处理。一个需要10-100002n时间的问题不是在p中的(它是指数时间的),但是对于n取值直到几千时还是很容易处理的。
它忽略了指数的大小。一个时间复杂度n1000属于p,但是很难对付。已经证明在p中存在需要任意大的指数的问题(参看时间等级定理)。一个时间复杂度2n/1000的问题不属于p,但对与n直到几千还是容易应对的。
它只考虑了最坏情况的复杂度。可能现实世界中的有些问题在多数时候可以在时间n中解决,但是很偶尔你会看到需要时间2n的特例。这个问题可能有一个多项式的平均时间,但最坏情况是指数式的,所以该问题不属于p。
它只考虑确定性解。可能有一个问题你可以很快解决如果你可以接受出现一点误差的可能,但是确保正确的答案会难得多。这个问题不会属于p,虽然事实上它可以很快求解。这实际上是解决属于np而还不知道是否属于p的问题的一个办法(参看rp,bpp)。
新的诸如量子电脑这样的计算模型,可能可以快速的解决一些尚未知道是否属于p的问题;但是,没有一个它们已知能够解决的问题是np完全的。不过,必须注意到p和np问题的定义是采用象图灵机这样的经典计算模型的属于表述的。所以,即使一个量子计算机算法被发现能够有效的解决一个np完全问题,我们只是有了一个快速解决困难问题的实际方法,而不是数学类p和np相等的证明。
计算机科学家为什么认为p≠np?
多数计算机科学家相信p≠np。该信念的一个关键原因是经过数十年对这些问题的研究,没有人能够发现一个np完全问题的多项式时间算法。而且,人们早在np完全的概念出现前就开始寻求这些算法了(karp的21个np完全问题,在最早发现的一批中,有所有著名的已经存在的问题]])。进一步地,p=np这样的结果会导出很多惊人的结果,那些结果现在被相信是不成立的,例如np=余np和p=ph。
也有这样论证的:问题较难求解(np)但容易验证(p),这和我们日常经验是相符的。
从另一方面讲,某些研究者认为我们过于相信p≠np,而应该也去寻找p=np的证明。例如,2002年中有这样的声明:
倾向p≠np的主要论据是在穷尽搜索的领域完全没有本质进展。也就是说,以我的观点,一个很弱的论据。算法的空间是很大的,而我们只是在开始探索的起点。[...]费马最後定理的解决也显示非常简单的[sic]问题可能只有用非常深刻的理论才能解决。
—moshevardi,莱斯大学
过分依赖某种投机不是规划研究的一个好的导引。我们必须总是尝试每个问题的两个方向。偏见可能导致著名的数学家无法解决答案和他们的预计相反的著名问题,虽然他们发展了所有所需的方法。
—anilnerode,康奈尔大学
关于证明的难度的结果
虽然百万美元的奖金和大量投入巨大却没有实质性结果的研究足以显示该问题是困难的,还有一些形式化的结果证明为什么该问题可能很难解决。
最常被引用的结果之一设计神喻。假想你有一个魔法机器可以解决单个问题,例如决定一个给定的数字是否为质数,但可以瞬间解决这个问题。我们的新问题是,若我们被允许任意利用这个机器,是否存在我们可以在多项式时间内验证但无法在多项式时间内解决的问题?结果是,依赖于机器能解决的问题,p=np和p≠np二者都可以证明。这个结论的后果是,任何可以修改来证明该机器的存在性的结果不能解决问题。不幸的是,几乎所有经典的方法和大部分已知的方法可以这样修改(我们称它们在相对化)。
如果这还不算太糟的话,1993年razborov和rudich证明的一个结果表明,给定一个特定的可信的假设,在某种意义下“自然”的证明不能解决p=np问题。[3]这表明一些现在似乎最有希望的方法不太可能成功。随着更多这类的定理得到证明,该定理的可能证明有越来越多的陷阱要规避。
这实际上也是为什么np完全问题有用的原因:若有一个多项式时间算法,或者没有一个这样的算法,对于np完全问题存在,这将用一种相信不被上述结果排除在外的方法来解决p=np问题。
多项式时间算法
没人知道多项式时间算法对于np完全问题是否存在。但是如果这样的算法存在,我们已经知道其中的一些了!例如,下面的算法正确的接受了一个np完全语言,但是没人知道通常它需要多久运行。它是一个多项式时间算法当且仅当p=np。
//接受np完全语言的一个算法子集和。
//
//这是一个多项式时间算法当且仅当p=np。
//
//“多项式时间”表示它在多项式时间内返回“是”,若
//结果是“是”,否则永远运行。
//
//输入:s=一个自然数的有限集
//输出:"是"如果某个s的子集加起来等于0。
//否则,它永远运行没有输出。
//注意:"程序数p"是你将一个整数p写为二进制,然后
//将位串考虑为一个程序。
//每个可能的程序都可以这样产生,
//虽然多数什么也不做因为有语法错误。
//
forn=1...infinity
forp=1...n
以s为输入运行程序数pn步
if程序输出一个不同的整数的列表
and所有整数都在s中
and整数的和为0
then
output"是"并停机
若p=np,则这是一个接受一个np完全语言的多项式时间算法。“接受”表示它在多项式时间内给出“是”的答案,但允许在答案是“否”的时候永远运行。
可能我们想要“解决”子集和问题,而不是仅仅“接受”子集和语言。这表示我们想要它总是停机并返回一个“是”或“否”的答案。是否存在任何可能在多项式时间内解决这个问题的算法?没有人知道。但是如果这样的算法存在,那么我们已经知道其中的一些了!只要将上面的算法中的if语句替换成下面的语句:
if程序输出一个完整的数学证明
and证明的每一步合法
and结论是s确实有(或者没有)一个和为0的子集
then
output"是"(或者"不是"如果那被证明了)并停机
逻辑表述
p=np问题可以用逻辑命题的特定类的可表达性的术语来重新表述。所有p中的语言可以用一阶逻辑加上最小不动点操作(实际上,这允许了递归函数的定义)来表达。类似地,np是可以用存在性二阶逻辑来表达—也就是,在关系、函数、和子集上排除了全域量词的二阶逻辑。多项式等级,ph中的语言对应与所有的二阶逻辑。这样,“p是np的真子集吗”这样的问题可以表述为“是否存在性二阶逻辑能够表达带最小不动点操作的一阶逻辑的所不能表达的语言?”
花絮
普林斯顿大学计算机系楼将二进制代码表述的“p=np?”问题刻进顶楼西面的砖头上。如果证明了p=np,砖头可以很方便的换成表示“p=np!”。[4]
康奈尔大学的hubertchen博士提供了这个玩笑式的p不等于np的证明:“反证法。设p=np。令y为一个p=np的证明。证明y可以用一个合格的计算机科学家在多项式时间内验证,我们认定这样的科学家的存在性为真。但是,因为p=np,该证明y可以在多项式时间内由这样的科学家发现。但是这样的发现还没有发生(虽然这样的科学家试图发现这样的一个证明),我们得到矛盾。
在一些游戏当中。
一些玩家会向对方输入np。noproblem意思是没关系。
语言学研究常用术语
np的意思是名词性成分,应该是nominal(名词性的)和part(部分)的省称,名词性成分包括名词和名词性的短语。与之相关的一个词是vp,意思当然是动词性成分了,包括动词和动词性短语。如有篇语言学论文题目是《确定"s+vp+的(+np)"结构中"的"字归属之我见》。如果词语解释有误,希望知者斧正,因为目前网上和词典还找不到这两词的精确解释,大学问家又不肯站出来说话,因此我只能抛砖引玉了。