Wireshark的前世今生

2018年8月4日16:20:31 发表评论 752 views

    如果你常常被视为木讷的IT青年,该是时候审视一下自我形象的了,至少约会时不能再跟妹子谈什么EIGRP和OSPF的差别。星座当然是个安全的话题,但假如你觉得实在太不科学(千万不要说出来),我建议把话题转到IT八卦上,因为既符合身份,又不会暴露了技术草根的身份。如果发挥得好,说不定可以伪装成颇有涵养的高端人士,让姑娘们产生既有安全感,又不失情趣的错觉。

 

IBM和Oracle之类是没什么好聊的,连人事部的姐姐们都知道。当然要找又酷又小众的。假如你是一名网络工程师,不妨聊聊Wireshark,那可是顶级工程师才会玩的东西。我今天就总结了Wireshark的历史,以备各位读者使用。

 

故事要从上世纪90年代开始说起。那时的IT业欣欣向荣:摩托罗拉正野心勃勃地实施铱星计划;Google的两位创始人还在房东的车库里研究搜索引擎;而故事的主人公Gerald Combs当时还默默无闻。和那个时代的很多IT青年一样,Gerald热情上进、动手能力极强。他是一家网络提供商的工程师,时常需要分析软件来辅助工作。可惜这样的软件极少,而且一个license就价值80,000美金(即便在今天的美国,这也不是小数目)。

和我们当中的很多人不一样,Gerald没有下载盗版软件,而是决定自己写一个。他单枪匹马写了几个月,专业人士都能想见其中的艰辛——很多从业多年的工程师,对基本协议还一知半解,不要说开发一个能分析协议的软件了。谦虚的Gerald至今还是对此轻描淡写, “I spent several months doing research and making notes.” 到了1998年7月,这个软件终于面世了。它带来了这样的功能:当人们透过它看到网络时,不再是没有意义的0和1,而是解析之后的简洁文字。更难得的是还配有权威解说和详细的分析报告。Gerald把这个软件命名为Ethereal。代码的版权自然属于Gerald,而他所在的公司NIS (Network Integration Services)则拥有Ethereal商标。当时谁也没有想到,这个归属权最后会引起一场小风波。由于Ethereal写得太好了,而且是以GNU GPL开源许可证发布的,世界各地的开发者纷纷参与到这个项目中。没过多久,它就涵盖了世界上大多数通信协议,成为广受欢迎的网络分析软件。它可以用于教学,如果网络老师懂得用它辅助上课,逃课的学生一定大大减少。它也可以辅助开发,是调试程序的好工具。当然最大用途是诊断问题,从基础通信到活动目录,再到各种应用软件,几乎涉及网络的地方就有它的用武之地。而且还是完全免费的,每个愿意学习的工程师都可以受益。颇具喜感的是,eBay上居然有人在销售,还真的卖出去了。我不得不感叹有人生财有道,也有人擅长消费。

 

世界的变化总是超乎我们的想象,尤其是在IT业。没几年时间,铱星计划彻底破产;Google成了最大的网络公司。只有Gerald没有变化,一直在兢兢业业地维护Ethereal。每个月都有新协议出现,已有的协议也在推出新版本,他永远有忙不完的活。中间仅仅发生过一次改名风波。2006年他离开NIS,加入了CACE。由于和老东家在Ethereal的商标问题上无法达成一致,Gerald把项目改名为Wireshark。从此Ethereal这个风靡多年的项目停止了,只留下www.ethereal.com域名。

Wireshark延续了Ethereal的成功,现在已经有成千上万的开发者在追随Gerald。2011年它在SecTools排行第一,2012年被Insecure.org评为“No. 1 Packet Sniffers”。美国的技术作家们开始为它著书立说,中国的出版社也在引进。值得一提的是,CACE后来被Riverbed收购了。很多中国工程师可能觉得Riverbed名不见经传,但说到Linux里常用的tcpdump命令就不会陌生了。Tcpdump的开发者之一Steve McCannE就是Riverbed的CTO。而Wincap的开发者Loris Degioanni也在Riverbed服务。似乎冥冥之中自有天意,把网络探测界的先锋们聚到一起。

 

不久前Gerald在Twitter宣布, "Wireshark is, and will always be open source." 让所有人赞叹他的高尚。一名工程师最大的荣耀,莫过于创造一件所有人都能享受的作品。让我们向Gerald致敬。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: