【CFidonet】 FTS 网络标准与网络运转 施彤宇   我们现在所提到的所谓 BBS,实际上指的是使用者通过公共电话网和调制解 调器进行联接的 Dial-up BBS,这种系统一般来说一条电话线同时只能让一个用 户使用,如果想在系统中同时接纳多个用户,则需要在站台准备多条电话线以及 与之连接的调制解调器,而站台也必须采用多任务方式或在网络上同时运行多套 BBS 系统软件,以达到保持站台信息一致的目的。为了实现这种信息交流方式, 架设站台的站长必须具备一些十分重要,同时也是十分系统的站台技术标准知识, 这种知识就是 FidoNet 技术标准,从诞生的时间上来说, 在电子技术行业里已 经可以算老资格了。   FidoNet技术标准最早起源于美国的业余 BBS 爱好者相互间的通讯协议。现 在已知的世界上最早的 BBS 系统, 是于 1977 年初由美国芝加哥电脑爱用者团 体的会员 Ward Christensen 及 Randy Suess 开发的 CBBS (Computerized Bul- letin Board System),于此同时,另一位先行者 Bill Abeny 编写了 Forum-80 这个 BBS 软件。随着个人电脑的实际先驱 Apple 机的出现,BBS 系统很快向其 移植,从而有了 Apple Bulletin Board System(ABBS)、 People’s Message System(PMS)和 CommuniTree 等几种系统。   在 BBS 的诞生之初,调制解调器的传输速率还只是可怜的 300bps,而这已 经是当时超级玩家才拥有的法宝了。但随着计算机技术的飞速发展,“个人电脑” 终于不再是一个纯文学的字眼了,当 1981 年八月 IBM 推出了她的第一台 PC的 一年以后,第一套为 IBM PC 开发的 BBS 系统就出现了,它是用 BASIC 编写的, 运行在 Brad Hanson 和 Russ Lane 开设的 Dallas RCP/M\CBBS 站台上。   到了1983年,Capital PC User Group 的 Communication Special Interest Group 协会的会员共同将 Russ Lane 的站台软件整理强化, 于同年五月正式以 RBBS-PC/CPC09 的名字发表,到七月又由Thomse Mack将其升级到 RBBS-PC 10.0 版,这也就是 RBBS-PC 的第一个正式版本。   RBBS-PC 在现在的眼光看来已经十分简陋了,但她在当时却是功能相当完整 的,更重要的是,她汇集了当时许多业余和职业专家的才智,确立了很多开发PC BBS 软件的准则,尤其是 RBBS-PC 公开程序原代码的精神, 从很大意义上奠定 了计算机行业信息与技术共享的进步原则,并通过各种方式一直延续至今!   但当时的 RBBS-PC 还只是一个孤立的 BBS 站台,并不具备网络功能,直到 1984 年 BBS 系统才通过来自另一个由业余爱好者 Tom Jenninges 开发的名为 Fido 的 BBS 软件及其网络协议终于走出了信息孤岛, 于是 BBS 网络的新纪元 开始了!   在最开始, 还只是两个 BBS 站台之间试验性的通过公共电话网相互交换各 自站台上的信息,到了同年八月, 就已经有三十多个 BBS 站台加入了这个信息 交流的行列,而到了 1991 年底时, 在这个以创始人 Tom Jenninges 的爱犬的 名字命名的 FidoNet 网络里, 已经有了遍布欧、美、亚、澳及非洲,共一万两 千多个站台,而且正在以飞快的速度继续增长。   FidoNet 是全世界第一个 BBS 网络, 也是目前以及可以预见的未来全球最 大的 BBS 网络!而更为重要的是,整个 FidoNet 始终保持着她的创立者所倡导 的业余精神,至今她依然是一个业余 BBS 网络。任何一个对 BBS 技术或文化感 兴趣的人,无论他的种族、地域、文化传统、性别、年龄、学识有怎样的差异, 都可以建立一个属于自己的站台, 并加入 FidoNet 以使自己能立即汇入来自整 个世界的电子文化洪流。   在这里,世界就在你的面前;同时,你也就在整个世界的面前!   FidoNet 作为现在世界上最大的业余 BBS 网络, 虽然秉承其一贯的业余精 神接纳来自各个不同地域的站台和信息,但要维持一个如此庞大的跨国甚至跨洲 的网络的正常运行,其难度可想而知。 于是 FidoNet 的缔造和维护者们创立了 一套名为 Fidonet Technical Standard(FidoNet 技术标准, 简称 FTS)的标 准来维护整个网络的正常运行。 通过这套技术标准及其衍生产物, 来自全球的 FidoNet BBS 站长和软件开发人员就可以遵循着这些标准,来运行自己的站台或 开发相应的应用软件。   从一般角度来看,架设一个遵循 FidoNet 标准的 BBS 站台并不需要太多的 条件,硬件上你只需要一台微机(单线站台 486/66 足矣)和一条电话线加上一 个速率尽可能高的调制解调器。之所以要在调制解调器上多花投资,是因为它是 站台与外界联系的重要渠道,如果它的性能不稳定、速率不高,那么不仅你的用 户会因为频繁的断线而口出怨言,而且速率太低而带来的电话费用增长一定会赶 跑很多用户。实际上现在国内大中城市里的电信建设已经很有规模,普通电话线 上跑 33600bps 的高速是没有什么问题的。   硬件准备好后,就要开始收集开站必须的一些软件了。 因为 FidoNet 所汇 集的来自全世界的业余爱好者的奉献,因此我们现在有了许多可以选择的站台软 件。 因此,只要对 BBS 站台有兴趣,就可以用很小的投资开设一个具有自己特 色的 FidoNet 站台。   通过 Internet 我们现在可以看到许多远比以前功能强大得多的 BBS 站台 软件,但是这些软件与当初 FidoNet 系统的最大不同,就在于这些 BBS 系统多 半都不包括自成体系的站台网络功能,要使自己的站台走出孤岛与其它站台交流 信息,就必须增加一种叫做“前导软件”(Mailer)的工具来引导自己的站台完 成站台间的信息交流。   此外,为了建立一个功能完善的站台,我们还需要许多其它的工具,比如处 理“快信”的软件 Mail Processor、 管理站台上下载文件的文件管理器 Echo- file Processor、增加站台娱乐性的站台游戏 Door Game 等等等等。 所有这些 软件都来自于世界各地的业余爱好者的业余之作,因此这些软件中的绝大多数都 是 Shareware、PD 或 Cardware。虽然业余站台软件一向被一些无知的人诟病为 “业余爱好者的大杂烩”,但事实上业余绝不等于品质低劣,那些业余软件工程 师虽然利用他们的闲暇进行创作,但他们在创作中所付出的精力、智慧和心血, 足以保证他们的作品堪称精品,毕竟他们要比那些混饭吃的程序员们更有敬业精 神!   与 Internet 不同的是,Dial-Up BBS 的信件交流并不是实时的,各个站台 之间的信息交流只有当站台间的调制解调器通过电话拨通后到断线之间的时间才 能进行,从实际操作的需要来看,大量信息的交流并不一定需要全天 24 小时的 连通,虽然在技术上可以做到, 但其成本就不是一般业余 BBS 站长所能负担的 了。因此,根据业余网络自身的特点, FidoNet 等 Dial-Up BBS 均采用在每天 的特定时间里,由站台上的前导软件根据站台设置向其上游站(Uplink)拨号或 等待上游站台拨号, 调制解调器握手后再根据各个站台的网络信件(Netmail) 开始进行信包和文件的交流。每天这种交流的次数多是根据站台间的信息量和站 长的经济力量来决定的,一般每天一次。   FidoNet 的网络结构,采用的是常用的树状结构,从这个结构的最底层—— 普通站台开始,每一个站台都有自己的用户,位于同一地区的几个站台拥有一个 本地区的共同上游站,这个站台就被称作 HUB ;而几个 HUB 又共同以一个站台 为其上游站,这就是 Host(Net Coordinator),一般这个 Host 就是一个相对 集中区域的总上游了,比如北京地区或华东地区等就各有一个这样的 Host ;几 个 Host 的共同上游就是 Region Coordinator ,目前我们中国的大陆地区在整 个 FidoNet 的区域分类中为 R65 区,这样我们现在所有的 CFidoNet 站台就都 要接受 R65 的 Region Coordinator 的协调; 而每一个大洲都有一个统管该大 洲中所有站台的 Zone Coordinator,它是这个大洲内各个 Region Coordinator 的上游站;不同的 Zone Coordinator 则通过 Zone Gate 交流信息。   采用这样的区域分类,主要原因多半在节约电话费用,因此区域的划分一般 以电话区号进行,即 01 区的站台就同属一个 Net,而同一个 Region 的站台则 多属于一个国家或地区,同样的同一个 Zone 的站台,就都属于同一个大洲了。 比如在 FidoNet 里,亚洲的站台都属于 Zone 6。站台之间的协调需要各个上游 站的站长更多地参与网络管理工作,于是这些站长就有以各自站台在网络上所处 地位为名称的“头衔”, 这也就是 CFidoNet 上的信区中经常出现的 “NC”、 “RC”、“ZC”、“Hub”等名词的由来。   这样的树状结构,使得整个网络体系中的各个站台都能最大限度的节省各自 的电话费用,而网络本身的运行也可以随着当地网络的发展,随时灵活调控,这 对于流动性很大的业余网络来说是十分重要的一个特点。   在这个树状网络中,每一个站台都有各自独立的网络站号,这是在整个网络 中定位一个站台的依据。站号的构成为 zone:net/node.point,这可以用下面的 例子来说明: 洲(Z) : 区域(R) : 网(N) / 站(Node) . 点站(point) 6 65 650 1,2 .. > 如: 6:650/1001.0 | | | | | | | |----> 网内站号,区分独立站的最小单位; | | |-------------> 通常按所在电话局划分,如果站不多, | | 一般按城市划分,650 为北京; | |---------------------> 按地域划分的大区; 65 则分配给中 | 国大陆 |-------------------------------> 亚洲为 6,北美洲为 1,等等。   而站号最后的 Point 号则表示一个挂接在 Node 下的点站, 这个站与普通 用户没有太多的区别,所不同的就是使用的上站软件不同、拥有自己的站号和可 以保留一个完整的信库。   从网络的角度来讲,仅仅知道一个站号还不能解决问题,那么更详细的站台 资料就保存在站台上定期更新的 NodeList(FidoNet 站台表)里。在这个表里, 我们可以找到站台的站名、电话、站长ID、站台位置、调制解调器的速率等等资 料。这样,当站台的前导软件在站台转信时间,需要与某一个站台进行交流时, 就可以根据这个表中的该站台信息,通过调制解调器拨叫这个站台的电话。而站 台信息的载体 —— Netmail (网络信件)也才有可能找到发生的路由 (Route Netmail)。   从这个角度看, NodeList 与 Internet 上的域名服务器有异曲同工之妙, 所不同的只是每一个参加网络通邮的站台都需要自备一份 NodeList ,而组织管 理 NodeList ,并通知下游站台及时更新,则成为各个网络 NC 和 RC 的重要日 常工作之一。这其中所涉及到的网络知识和协调方法以及运筹学的运用都是十分 宝贵的实践经验,也都是很难在书本当中学到的。   Dial-Up BBS 网络的运行中,交流信息的主要内容就是信件和文件。每一个 参与 CFidoNet(中国 FidoNet 网络)网络运行的站台,都会在 R65EC(R65 网 总信区协调人)的协调下,在各自的站台上依据信区的主题,建立各种信区。每 一个信区都有各自唯一的信区标示,这个标示就是信区的 Echokey 或 Echotag。 通过这个标示,站台上的信件管理软件就可以以信包的方式将各个站台间的信息 相互交流。这种交流根据不同信区的通邮范围分为站台本地信区、本地通邮信区 和全国通邮信区,此外还有网络直达信件 NetMail。   当一个站友在自己所在的站台发出一封信后,这封信就被站台的信件管理软 件接收,并添加上必要的站台信息,如站名、站号等,再由站台上的前导软件以 信包的方式送往上游站台。于是,只要开通了这个信区通邮的站台,就都会在同 样的信区里接到这封信,而位于不同地域的用户也就可以从各自的站台上,读到 这封来自某人在某地的某站所写的信件。这种信件就叫作 EchoMail。   EchoMail 的体系是 1985 年由美国达拉斯城的 Jeff Rush 首先提出的。为 此他专门为 FidoNet 网络设计了一套压信和扫信软件 (Scanmail 与 Tossmail), 使信包可以通过 Netmail 来在整个网络内流通,这为整个 FidoNet 的发展起了 决定性的作用!   Echomail 的特点实际上就是公开信, 参与 Echo 的站台上的任何一个站友 都能看到这封信,并可以对此做出反应。因此当你在一个全国通邮信区发了一封 信时,就意味着将有来自全国各地的站友会与你共同讨论一个话题。不必担心有 人会对你的“插花”表示不满, 在 FidoNet 中只要你以真诚的心态认真参加讨 论,你在任何一个信区都会是一个受欢迎的站友,毕竟“尊重他人,方能赢得他 人的尊重”!   除了在不同区域通邮的 EchoMail 外,当你不希望除收信人外第三者看到一 封信时,还可以利用站台的保密信区,给自己的信件加上“私密”(Private) 属 性,但这并不意味着真的别人看不到了,因为站台管理上的需要,还有站长和信 区的协调人可以看到这封信。当然,不参与私人信件的讨论是站长和信区协调人 的“职业道德”,但从站台运行的性质上看,虽然私密信件只是收发信两个人之 间的事情,但这封信本身也还是要随着网络转信的过程流转在整个网络上,因为 两个人之间的私事而耗费各位站长的银子,这显然是不公平的,同时也是对网络 资源的一种浪费。而且因为转信过程中软件配合的问题,常常会在转信过程中将 信件的“私密”属性给屏蔽掉, 这样也就使私人信件变成了公开信, 借用我国 FidoNet 的一位元老的话说:“要是真有什么秘密,还是打电话吧。”因此,现 在国内 CFidoNet 各站除了在站台本地允许私密信件外,各个通邮信区已经明确 禁止了这种私密信件的投放。   除了私密信外,FidoNet 网络上还有一种拥有很好保密性和时效性的通讯方 式,那就是网络信件 NetMail。使用 NetMail 的前提是需要知道收信人的站号, 因此这种方式一般都是站长之间的使用较多,而一般用户也可以在需要时向别的 一般用户发 NetMail,但除非这个收信人上到发信人指定站号的那个站台,否则 收信人就不可能直接收到 NetMail。NetMail 与 EchoMail 的最大区别在于Echo- Mail 一旦进入网络运行,一封信就会变成无数封信散布到通邮的每一个站台上, 而 NetMail 则永远只有两封:一封由发信人保留,另一封则在收信人所在站台。 这有点类似于 Internet 上的 E-Mail。   NetMail 的发送有两种方式,一种基本上是站长专用的“直连”方式,即发 出的 NetMail 通过站台的前导软件,在 Nodelist 的协助下直接与 NetMail 的 收信站连机传递。这是最快捷的方式,当然也是最花钱的方式。而另一种则多是 站台向一般用户开放的 NetMail 功能所使用的 Route 方式,在这种方式下一封 NetMail 经过发信站的前导软件发给该站台的上游站台,由其上游根据NodeList 判断是继续向上一级网络 Hub 传送,还是留下来; 而向上发送将直到收发信站 台的共同上游站台为止, 即一封从北京发往广州的 NetMail 就需要先发到全国 转信的总 Hub,然后再逐级从上游下传到最终的收信站。如果在这个过程中有一 个站台的设置有错误,这封 NetMail 就无法再正确地发送了, 因此在 FidoNet 的规章中明确规定,成为 FidoNet 成员之一的条件就是能够互通 NetMail 。而 整个网络中 NetMail 的通畅与否也是一个网络是否成熟的真实表现。   除了 Fidonet 以外,同样还有许许多多采用 Fidonet 标准的网络,它们自 然就不能称为 Fidonet 了,通常称呼这些网络为 FTN(Fidonet Technical Net- work)。这些网络与 Fidonet 并不相互排斥,包括 FidoNet 规范的各种条例都 没有规定一个 BBS 站长只可以加入一个网络, 只要他愿意并遵循必要的制度, 他就可以加入任何他希望参与的网络,而且在技术上也不会因此造成网络运行的 混乱。   上面只是对整个 FidoNet 网络发展和运行技术的一个十分粗略的描述, 虽 然一般的站友并不需要了解太多站台上复杂的运行技巧, 但在参与到 CFidoNet 中,与别的站友共同讨论时,先有一个对 FidoNet 的整体了解, 对成为一个受 人欢迎的站友来说,还是十分重要的。