1.7.各自独立但地位平等

 
OSI请求政府、电话公司和其他一些组织的帮助。那些组织更倾向于官方标准组织而非风格自由的IETF 。因为这些组织代表了主要的客户群体,此时的计算机和网络厂商开始开发遵从OSI的协议族。Novell (NetWare), Banyan (VINES), General Motors (MAP and TOP), Apple (AppleTalk)和其他公司争着显示他们的网络操作系统是如何兼容OSI参考模型的。
 
但是在OSI上作出最大成就的公司是数字设备公司(DEC),它开发的整个协议成了OSI协议的同义词。DEC1970年代中期就建立了其数字网络体系(DNA,Digital Network Architecture),而且开发出了4个版本的DECnet软件作为DNA的实现。他们称每个版本为一个阶段,定为DECnet阶段IIV1987DEC推出DECnet阶段V,1991年开始销售支持阶段V的产品。[31]这个最新版本遵从OSI模型,与以前的DECnet版本大不一样。1987年,ISO采纳了DEC的成果,所以DECnet阶段V跟我们今天所说的OSI协议族区别甚微。
[31] James Martin and Joe Leben, DECnet Phase V: An OSI Implementation, Digital Press, 1992.
 
DECnet阶段V所用的网络路由协议由DECRadia Perlman, Mike Shand, Dave Oran和其他人一起开发,又被ISO全盘接受为ISIS。“人们知道ISOCLNP路由标准叫ISIS,” Perlman写道,“因为其他的名字(例如,10589:‘中间系统到中间系统域内路由信息交换协议)更糟糕。” [32]
[32] Radia Perlman, Interconnections: Bridges and Routers, page 268, Addison-Wesley, 1992.
 
大概在1987ISO采纳ISIS的同时,IETF意识到有链路状态内部网关协议的需求。NSFNET和当时的地区性网络用的或者是静态路由,或者是在有动态路由需要的地方用RIP。静态路由无可扩展性,不利于简单管理。RIP在网络扩展后暴露出许多早期ARPANET Bellman-Ford协议就有的弱点。有了开发和运行ARPANETSPF协议的经验,开发一种用于更大规模网络的链路状态IGP就顺理成章了。
 
但这使IETF产生了两个阵营。一个阵营看了ISIS后认为既然已有了一个链路状态协议,再开发一个新的是没有意义的。为什么不对ISIS进行扩展使其支持TCP/IP呢?另一个阵营则不想要一个受外部机构控制的协议,特别是像ISO这么僵化官僚的外部机构。IETF方式已被证明行之有效且轻车熟路,那么为什么不开发一个开放的、非专有的ARPANETSPF版本—OSPF来跟开放的TCP/IP共存呢?对ISO在拒绝TCP/IP时的傲慢自大的痛恨也壮大了第二个阵营;ISIS之不可接受仅仅是因为它是个ISO协议。
 
IETF没有从两个竞争的阵营中选择某一个,而是决定采取折衷办法--同时接受二者,一个扩展的ISIS和本家自产的OSPF作为各自独立但又地位平等的协议。 ISIS工作中和OSPF工作组建立了起来。
ISIS工作组在1990年完成扩展ISIS以支持IP的工作,称这个扩展版本为“集成的”或“双”ISISIP扩展部分公开在RFC 1195,由Ross Callon撰写。他是DEC的工程师,曾在BBN工作。[33]
[33] Ross Callon, "Use of OSI IS-IS for Routing in TCP/IP and Dual Environments," RFC 1195, December 1990.
 
OSPF工作组198910月提出了OSPF第一版。然而,第一版(OSPFv1)暴露出一些运行问题以及可加以优化的地方;此版本从未被部署过。工作组进行了修订,随后19917月在由John Moy 撰写的RFC 1247中公开了OSPFv2[34]Moy在早期的一个路由器厂商Proteon工作。跟Callon一样,他也是前BBN工程师。
[34] John Moy, "OSPF Version 2," RFC 1247, July 1991.
 
1990OSPF在一些地区性网络成功部署,并在199110月的INTEROP做了成功演示。“做一个路由协议的精彩演示很难,”Moy写道,“当路由协议工作时,人们根本意识不到它的存在。” [35]
[35] John Moy, OSPF: Anatomy of an Internet Routing Protocol, Addison-Wesley, 1998.
 
在整个开发过程中,两个工作组互相借鉴。例如,OSPFISIS都有的广播网络中的指定路由器的概念最初是为ISIS开发的。他们也都吸取了ARPANETSPF协议的经验教训。比如,RFC789所述的19801027ARPANET令人震惊的崩溃的部分原因是协议采用循环序列号空间。ISISOSPF使用了线性序列号空间(见第二章)。两个工作组也都认识到自适应度量值的复杂因而定义了可配置的、非自适应的度量值。
 
1990年代中期,Cisco系统开始成为互联网骨干和地区性网络所用路由器的占统治地位的商业提供商。1991Cisco开始支持OSPFOSI版本的ISIS;第二年,发布了支持IP的集成ISIS的实现版本。但是,导致ISIS在全球运营商网络中使用的具有重大意义的事件发生于1994—cisoc开始支持NLSP
 
Novell网络早在几年前就开始为其NetWare网络操作系统开发链路状态协议。在Neil Castagnoli[36]的领导下,Novell发布了NetWare链路服务协议(NLSP,NetWare Link Services Protocol)。NLSP本质上是用于路由Novell IPX的改编版ISIS。(NLSP发布后不久Radia Perlman就加入了Novell,这是传说她从ISIS中创造了NLSP的原因。)
[36] Hannes Gredler and Walter Goralski, The Complete IS-IS Routing Protocol, Springer, 2005, page 5.
 
Cisco系统在实现NLSP时,决定重写ISIS代码,在IOS内部一切可能的地方合并这两个非常相似的协议。Dave Katz执行了这次重写工作,结果是产生了一个可靠的、强壮的ISIS实现。同期的CISCOOSPF实现精确性略差,运营商对它不满意。部分受到当时的OSI狂热的影响,许多运营商切换到ISIS,自那以后就成了ISIS的忠实用户。当然,CiscoOSPF代码也早已同样可靠,但1994年至1996年的经历使许多人至今仍辩称ISIS是更可靠的协议。