《TCP/IP详解卷3:TCP事务协议、HTTP、NNTP和UNIX域协议》 —1.9 实现
1.9 实现
第一个T/TCP实现是由Bob Braden和Liming Wei在南加州大学的信息科学学院(USC ISI)完成的。该项工作得到了美国国家科学基金(NSF)的部分资助,批准号为 NCR-8922231。该实现是为SunOS 4.1.3(从伯克利演变而来的内核)做的,1994年9月就可以用匿名的FTP得到了。SunOS 4.1.3 的源代码补丁可以从ftp://ftp.isi.edu/pub/braden/TTCP.tar.Z得到,但你必须有SunOS内核的源代码才能应用这些补丁。
Twente大学(荷兰)的Andras Olah修改了USC ISI的实现,并于1995年3月将其在FreeBSD 2.0版中发布。FreeBSD 2.0中的网络代码是基于4.4BSD-Lite版的(卷2中有介绍)。图1-16给出了各种BSD版本的演变历程。与路由表(我们将在第6章中讨论)有关的所有工作都是由麻省理工学院(Massachusetts Institute of Technology)的Garrett Wollman完成的。FreeBSD实现的有关信息可以从http://www.freebsd.org得到。
本书作者把 FreeBSD实现移植到了BSD/OS 2.0内核(该内核也基于4.4BSD-Lite中的网络代码)中,也就是运行在主机bsdi和laptop(图1-13中)中的代码,本书从头至尾都用它们。为了支持T/TCP而对BSD/OS所做的修改可以从作者的个人主页里找到:http://www. noao.edu/~rstevens。
图1-16给出了各个BSD版本的演变历程,其中还标出了重要的TCP/IP特性。图中左边显示的是可以公开得到源代码的版本,其中有所有网络代码:协议本身、网络接口的内核例程以及许多应用程序和实用工具(比如Telnet和FTP)。
本书中所描述的T/TCP实现的基础软件的正式名称是4.4BSD-Lite,但我们一般简称其为Net/3。还要说明的是,可以公开得到的Net/3版本中不包括本书所述为支持T/TCP而做的修改。当提到Net/3这个术语时,实际所指的就是这个不包含T/TCP的、可公开得到的版本。
4.4BSD-Lite2是1995年对4.4BSD-Lite的升级。从网络部分来看,从Lite到Lite2仅仅是解决了一些bug,以及少量的改进(比如我们将在14.9节中介绍的超时的持续探测)。我们给出了3个基于Lite代码的系统:BSD/OS、FreeBSD和NetBSD。本书所述全部都是基于Lite代码的,但所有以上的3个版本都应该在下一个主要版本中升级到Lite2。可以从下面的Walnut Creek CDROM站点得到含有Lite2版本的光盘:http://www.cdrom.com。
本书全书都将用“从伯克利演变而来的实现”这个术语指称厂商的实现,比如SunOS、SVR4(System V Release 4)和AIX,因为所有这些实现的TCP/IP代码最初都来自于伯克利源代码,它们之间有许多共同点,甚至连程序中的差错都相同!
- 点赞
- 收藏
- 关注作者
评论(0)