专业科普:网络协议技术工程实现有多难?一场勇气和能力的豪赌

大家都知道,要组成一个网络,需要交换机、路由器、各类终端等基础设备,这些网络设备内部实际又是由晶片、作业系统(OS)、应用程式等组成,但是不一样的晶片、不一样的OS,为何都能互连互通形成网络?这要归功于网络协议技术。不过技术终归还是一种思想,要使其从虚拟层面,变成可运行的、能够改变人们生活方式、提高生产效率的有形产品,需要进行工程化实现。如果说网络协议技术是实现网络互连互通的基础,那么工程化实现就是必然路径,不过这条路走起来并不平坦,下面我们就来谈谈要工程化实现一项网络协议技术,到底有多难。

一、为什么说把技术搭载到晶片上很难?

知之易,行之难。从标准到可用的产品,尤其是对于一项新技术的工程实现来说,需要有很大的勇气和巨大的投入,例如2005年很火的WiMAX标准,市场看起来很好,有很多厂商注入资金搞开发,但由于没有考虑各国的频谱问题,导致无法普及,现在几乎看不到WiMAX的设备,这些厂商要么死掉要么转型。

网络空间分层次,最下面两层是物理层、链路层(后面笼统称为底层),这两层的网络协议定义了在不同的物理传输介质(如空气、铜线、光纤等等)中该如何收发数据,而底层协议的实现往往要採用有形的物理装置来实现,这是保障网络互联互通的最基础环节,通过底层来感知物理介质传送的信息,底层以上的网络层、传输层一直到应用层,基本都是通过软体编程方式来实现的,从而形成了丰富的虚拟网络世界。

听起来感觉比较复杂,打个比方,人面对面的交流,不是依靠脸,而是人都长了相同结构的耳朵,有耳廓、耳膜(这里好比网络的物理层、链路层),如果一个人没有耳廓或者耳膜,那么这个人就听不到对方的声音;耳朵先採集外界发出的声音,不论是中文或英文,都会转换成信号送到大脑,大脑交给各处理单元再进行一一处理(这里好比链路层之上的各层),最终听懂对方的说话进行交流。

可见底层是网络数据的出入口,对网络的通信性能有着至关重要的影响,实现底层协议的物理装置一般要设计专用的晶片来完成,性能才能达到最优。晶片属于高门槛行业,有经验的设计人才少、资金投入大、开发周期长。晶片设计需要依赖很多电子设计自动化(ElectronicsDesign

Automation,EDA)工具,如综合、仿真、布局布线、物理验证等等工具,而这些工具基本由国外的Cadence、Synopsys和Mentor这三家公司垄断,凡是垄断行业,价格都是超贵,就算购置一些入门级工具都要几百万,而对于中国技术创新的小体量公司是一种奢望,那么只好租用或与高校、研究机构搞合作,来解决这些问题。但由于常常受制于人,开发不连续,效率低,开发时间得不到保障等情况较为突出。

随着晶片技术的发展,集成度越来越高,一个嵌入式CPU集成网络通信模块已经是一个普遍现象,CPU实际上集成的就是网络的底层功能,其余的基本靠软体实现。高度集成的优势就是设备可小型化,成本低,这样才能有竞争优势。因此一项网络底层协议创新做出一颗专用晶片没有什么优势,因为用你的协议,你会比别人多用一颗晶片,多占一块PCB面积,显然在竞争激烈的市场被淘汰。那就需要再接再厉,跟这些CPU厂家谈IP的集成合作,开始没日没夜地拼命开发,适应多种不同的晶片架构。如果说技术标准和晶片分别是一座无形的大山和一座有形的大山,那工程实现就是在两座"大山"之间,搭一座桥。

上面谈到的还都是不受排挤的技术创新开发,还有一些因为触及既有利益格局而被阻挠的中国创新技术,步伐走得更是艰难。比如中国发明的WAPI安全机制,由于触及了英特尔(Intel)、博通(broadcom)等晶片大厂的利益(现在回想,也有可能是触碰了网络安全问题),联合打压WAPI安全技术,威胁中国若使用WAPI技术,将全面禁运WLAN晶片到中国等言论,使得西电捷通的WAPI开发之路变得曲折不堪。

由于WAPI是定义在WLAN链路层的一种安全机制,那么就需要晶片来支持WAPI已使性能最优,但美国知道暂无晶片支持WAPI,就开始制造舆论,抹黑WAPI协议设计有问题,导致性能差的观点,很多由于WAPI负面的舆论,少有晶片公司愿意支持WAPI,西电捷通只能自力更生,採用现场可编程阵列(FPGA)的方式来实现,尽管成本会高,但性能得到了解决,证明协议设计没有任何问题,最终拿出的WAPI产品性能不比IEEE802.11i差,谣言不攻自破。一些晶片厂家开始支持WAPI技术,到目前基本所有的WLAN晶片都已集成了WAPI技术,包括Broadcom等公司。

二、适应不同OS版本,工程化实现怎么办?

鼓捣着晶片都支持了中国的技术,是不是开发就结束了呢?IT界有句话"硬体是基础,软体是核心。"从这看来万里长征仅仅迈出了第一步,一般链路层协议除了有一部分是晶片完成的,还有一部分要通过软体来实现,例如WAPI分为无线鑑别基础架构(WAI)和无线保密基础架构(WPI)两部分,晶片主要完成WPI的处理,软体需要完成WAI的处理。那么问题来了,软体部分需要程式设计师,每个程式设计师写出的代码肯定不一样,代码一般人也看不懂,怎么保证都是互连互通的呢?

大家都清楚,除了PC机有OS外,手机、平板和五花八门的嵌入式设备内部实际都跑有OS,OS内部实际把我们常用的通信协议已全部集成,在使用这些协议时,仅仅是调用而不是开发,这样有效保证了互联互通。因此可以看到将底层协议的软体部分处理放到OS中是最为合理科学的,那么要适配OS除了我们熟知的Windows系统就好多个版本,如Win

XP、Win7、Win8、Win10、WinNT等,常用的OS还有Linux、MACOS、Andorid、IOS,还有一些专用的OS,如VxWorks、QNX、eCOS,每个OS还有好多个版本,我的天啊,这也太难了吧,每个OS的架构都不一样,这开发何时是个头啊。

有一些OS还是闭源的,如Windows,常常宣称该API可支持第三方扩展、自定义等等,但实际使用中就会发现困难重重,尤其是一些安全组件更是排斥中国技术,对中国和国外厂商区别对待,例如多个应用程式编程接口(ApplicationProgrammingInterface,API)不开放,导致众多基于Windows

OS开发的防火墙、入侵检测系统、木马防御系统的开发受到较大影响。但与此同时,微软却对国外杀毒软体提供更多的API接口,对国内延迟甚至不提供,一定程度上造成我国杀毒软体在PC上的木马查杀效果及能力达不到国际领先水平。再比如要在Windows上实现WAPI的WAI,微软提供了IHV架构,用户可以通过该架构实现无线安全的自定义,确实可以实现,但会将WAPI显示为WEP,这让用户什么感受啊。

创新的技术,除了实现该技术本身以外,还要证明这个技术可用,好用,就需要做出对应的整机或者是样机,以充分展示技术的先进性。而整机的工作,需要配套各种的资源,一种是投入资金找到整机厂进行合作,获得具备新技术的整机,但与此同时是不是已经被山寨呢,当下中国,智慧财产权相对落后,一些小企业没钱打官司,惹不起躲的起,还是自己开发吧,再次开始拼命开发。

三、总结

啰嗦了这么多,总结一下,中国创新技术的工程化实现,尤其是对一些小企业来说,面临的挑战是巨大的。

一是中国技术在国外地位较低,新技术冒头容易被外企打压,加之一些特殊的新技术,如安全技术,更是对方的眼中钉肉中刺;网络是由美国人发明并推向世界,欧美属于网络技术研发先进国家,大部分的网络规范由欧美指定,是游戏规则的制定者,想要参与其中,或打破规则,显然难度是很大的。

二是中国自己的网络生态环境未形成,中国自己没有成熟的网络基础设施,CPU、底层的通信晶片、OS都受制于人,想搞新技术都要依赖别人的一些基础资源,不给你开放资源接口你就是没辙。

三是中国智慧财产权保护相对国外还很落后,尽管中国现在提倡创新型国家,搞的都是高铁、航空航天这些大项目,属于国家战略层面的,从事开发的也都是国企,对于中小企业因创新投入成本大、周期长、创新成果不被保护、维权成本高,往往创新动力不足。

当然欧美对中国的技术封锁也不是铁板一块,他们内部也有分歧,俗话说的好"。加上中国自己的努力,市场的开放,世界环境也发生了巨大的变化,比如从iPhone4不愿支持WAPI技术而去掉WLAN模块,到iPhone4s支持WAPI,到今年iPhone7首发国家出现中国,可见中国在全球经济的重要性。因此相信未来中国的技术创新之路将会越走越宽,在公平合理无歧视的环境,越走越快。