Tcpdump与Wireshark的渊源

1988年春,Steve McCanne在加州大学伯克利分校修完了计算机科学中的编译器课程,当时负责授课的是来自劳伦斯伯克利国家实验室的教授Van Jacobson,这个课程主要讨论了标准编译器的工作原理,包括:词法分析,语法分析,目标代码生成,程序优化等主题。学期末,Steve获得了Van研究小组的暑期实习机会。

不久之后,Steve便成为了由Van领导的“网络研究小组”的正式科研人员。在Steve刚加入这个网络研究小组的时候,Van正致力于TCP拥塞控制方面的研究,他对ARPANET频繁崩溃的机理做出了合理推测,为彻底查明问题,实施有效修复,他需要一个可靠的网络分析工具来进行分析和研究。

起初,Van用的是SunOS平台上的网络分析工具:etherfind,然而,其表现却不尽如人意,复杂的命令格式,令人困惑的协议解析,糟糕的性能,总之,你无法准确高效地看到自己想要的东西,尤其是当LAN中存在大量广播数据包的时候。

在这种情况下,研究工作无法展开,于是,Van放弃了etherfind,进而开发了全新的工具,叫做tcpdump,初期的tcpdump参考了etherfind的部分代码,为避免版权纠纷,Stevetcpdump中与etherfind相关的代码进行了重写,为确保新版代码中不会出现etherfind的代码片段,Steve在重构代码的时候,并没有参考tcpdump或者etherfind的源码,而是完全基于tcpdump的使用手册,根据功能描述,进行全新地开发。tcpdump基于BSD内核中的数据包过滤引擎BPF,其设计灵感源自于enet(1980年被卡耐基梅龙大学的Mike Accetta和Rick Rashid创造,后来被斯坦福大学的Jeffrey Mogul移植到了BSD上),主要由VanSteve两人设计,并最终由Steve在1990夏天开发完成。tcpdump开发团队还将tcpdump中的核心部分提取出来做成了开源函数库,这个库就是libpcap

几年过后,到90年代末期,意大利都灵理工大学有个叫Loris Degioanni的学生,他当时正为如何在学生用的windows机器上捕获网络流量而苦恼,在搜集资料的时候,他意外地看到了一篇由Steve McCanne参与著述的论文,受此启发,Loris便参考libpcap源码设计并实现了winpcap

与此同时,正就职于NIS(2011年被AOS收购)的Gerald Combs由于工作需要,时常要对网络流量进行监控和分析,他迫切地需要一种可靠易用的工具来辅助自己,对于像tcpdump之类的免费工具虽然强大,但命令行的方式使用起来并不方便,而当时可用的付费工具价格又太高,最后,Gerald决定自己开发一个,就这样,他一个人埋头苦干了几个月,到1998年7月,这个被叫做ethereal的工具终于面世,同样,它也是开源的。不过,ethereal这个商标却归Gerald所在公司NIS所有。

2005年,Loris DegioanniJohn Bruno合伙创办了CACE Technologies公司并担任CTO。2006年,GeraldLoris取得联系,两人就etherealwindows平台上捕获无线数据包的问题展开了讨论,同年,Gerald便离开了NIS加入CACE Technologies,在ethereal商标的使用权问题上,GeraldNIS无法达成一致,最终,Gerald把项目更名为wireshark。4年之后,CACE TechnologiesRiverbed Technology公司收购,巧合的是:Riverbed Technology当时的CTO正是tcpdump的开发者Steve McCanne,就这样,三位数据包抓取技术先驱最终汇聚到了一起!

下面按时间先后顺序,将关键事件依次列出:

1980年代末期

Steve McCanne, Van Jacobson tcpdump&libpcap&BPF

1990年代末期

Loris Degioanni winpcap

Gerald Combs ethereal/wireshark

2002年

Steve McCanne入伙Riverbed Technology,担任CTO

2005年

Loris Degioanni入伙CACE Technologies,担任CTO

2006年

Gerald Combs从NIS离职,加入CACE Technologies

2010年

Riverbed Technology收购CACE Technologies



References: