FidoNet:技术、用途、工具与历史(1993)
摘要
FidoNet 的技术概述,这是一种使用调制解调器的存储转发电子邮件广域网,于1984年开发,全球拥有超过20,000个节点。
暂无内容
查看缓存全文
缓存时间: 2026/06/02 15:32
来源:https://www.fidonet.org/inet92_Randy_Bush.txt
FidoNet:技术、使用、工具与历史
Randy Bush
[email protected]
版权所有 1992-3, Randy Bush。保留所有权利。
FidoNet 是 Tom Jennings 的商标。
**摘要**
FidoNet 是一种点对点、存储转发的电子邮件广域网,使用公用电话交换网上的调制解调器。它于 1984 年开发,全球拥有超过 20,000 个公共节点。虽然最初基于 MS-DOS 主机,但已移植到从 UNIX 到 Apple // 等多种环境。存在从 FidoNet 到互联网的网关,通常通过 uucp 网络。
**技术概述**
公共 FidoNet 由超过 20,000 个节点组成,它们使用独特的协议和数据格式通过公共电话网络传输电子邮件和电子新闻。由于最初的实现是为 MS-DOS 编写的,基于 DOS 的主机仍然是网络的绝大多数。但数据格式和协议的半正式规范促进了在 UNIX、从 Apple // 到 Macintosh 的 Apple 系统、CP/M、MVS、Tandy CoCo 以及许多其他平台上的实现。由于 FidoNet 几乎完全由个人资助,最小化调制解调器/电话时间一直是数据传输协议设计的首要驱动力。最初的实现使用了一种低效的基于 xmodem 的传输协议,这是一种非滑动窗口的 ACK/NAK 协议,使用 128 字节数据包。尽管在实践中很少使用,但该协议仍然是今天的最低基本标准实现,因为它易于编码。几乎所有当前的实现都提供了一套可选的、相当高效的基于 zmodem 的流式传输协议,这些协议无 ACK,仅在出错时发送 NAK。有趣的是,可以将这种对效率的追求与 uucp 浪费的 G 协议以及互联网的 SMTP 和 NNTP 协议进行对比。
FidoNet 内的地址是数字加标点,指定管理层次结构中的特定节点。地址格式为 洲:网/节点,其中洲是六大洲(北美洲、欧洲、大洋洲、亚洲或非洲)之一,网是城市(如果节点密度稀疏则可能是更大区域),节点是本地网络内的特定主机。例如,1:105/6 是美国俄勒冈州波特兰本地网络(网 105)中的 6 号主机,该网络位于北美洲(洲 1)。寻址方案可以扩展以容纳“点用户”(power users),这些人通过使用私有(即未列出的)节点与公共节点交换电子邮件和电子新闻来减少连接时间。因此,扩展的寻址方案是 洲:网/节点.点,例如 1:105/6.42。
公共 FidoNet 网络中所有节点的列表每周自动更新并分发。该列表包含每个主机的实际数据电话号码,以及地理位置和系统管理员(sysop)的姓名。每个城市的本地网络维护其本地数据,并将其发送给区域协调员,区域协调员再将区域的汇总数据发送给洲协调员。洲协调员交换数据,并创建当前周数据与上一周数据之间的差异列表。这个“节点差异”(nodediff)随后沿层次结构向下分发给网络中的每个单个节点。由于所有调制解调器电话号码都发布在节点列表中,点对点传输始终是可能的。但是,由于基本标准中规定了存储转发能力,电子邮件倾向于通过全球分层拓扑路由,而电子新闻则通过全球临时的、通常在地理上分层的有向无环图路由。
**拓扑**
FidoNet 的寻址层次结构(洲、网、节点、点)近似于电子邮件的路由路径。高级用户运行点节点,这些点节点可能只连接到各自的主节点以接收和发送其电子邮件和电子新闻。由于它们不在公共节点列表中,点不被视为网络中的官方节点,因此不受技术限制、国家邮件时间等约束。
在本地网络(即城市)内,节点通常直接相互交换电子邮件。例如,1:105/6 与 1:105/\* 中的所有其他节点直接交换邮件。在那些电话资费区划分城市的地区,使用本地集线器来集中市内流量以降低成本。每个本地网络都有一个别名为节点 0(即 洲:网/0)的节点,称为“入站主机”。默认情况下,来自本地网络外部的所有邮件都送达入站主机,以便在本地网络内分发。因此,纽约的节点只需打一个电话就能将所有邮件送达旧金山,而不是为每个有邮件的旧金山节点分别打电话。虽然每个节点负责发送自己的邮件(因为 FidoNet 由个人自掏腰包资助),但一些本地网络充分合作,提供“出站主机”来集中所有目的地为城外的工作。
六个洲中的每个洲都有一个独特的主机提供洲间电子邮件路由。这些“洲网关”的别名地址格式为 源洲:源洲/目标洲。例如,从北美洲(洲 1)到大洋洲(洲 3)的网关的地址别名为 1:1/3。因此,北美洲的节点可以通过将消息发送到 1:1/3 来节省打往澳大利亚的洲际电话费用,而 1:1/3 又会将其发送到 3:3/1,后者会确保它在澳大利亚境内送达。
自 1991 年 11 月起,一个实验性系统开始使用互联网在欧洲和北美洲之间传输邮件和电子新闻。数据通过 IP 直接在洲网关之间移动(即不在数据格式之间进行网关转换),这得益于 RIPE 和 EUnet。这为 FidoNet 运营商每月节省了数千美元。自 1992 年底以来,这种通过互联网的隧道技术已扩展到台湾、南部非洲、智利和其他地区。这是在相关 IP 运营商的明确同意下进行的,FidoNet 对此深表感谢。
**到其他网络的网关**
存在 FidoNet 与 uucp 网络之间的网关,从而与互联网相连。FidoNet 可通过 DNS 区域 fidonet.org 从互联网 DNS 世界寻址。一个 FidoNet 节点,例如 1:105/42,其域名化名称为 f6.n105.z1.fidonet.org。网关几乎完全通过 uucp 网络进行。fidonet.org 区域的 MX 转发器设置使得如果目标主机没有本地网关,则对所有 FidoNet 主机都有默认转发。对于 FidoNet 高级用户(位于点 zo:ne/no.po),正确的 RFC822 地址是 [email protected]。例如,[email protected]。并且,由于点在 FidoNet 中是可选的,节点 洲:网/节点 上 BBS 的用户 Jane User 的地址是 [email protected]。例如,[email protected]。
UFGATE 软件包允许基于 MS-DOS 的 FidoNet 节点模拟 uucp 主机,它可以网关传输电子邮件和电子新闻。该软件包在 1987 年使网关变得相当流行。最近,其他 DOS 软件包也提供了类似功能。RFmail 是一个完整的 FidoNet 实现,运行在 UNIX SysV 和 Xenix 上,它包含网关软件,用于在 FidoNet 消息格式和 uucp/互联网格式之间进行转换。目前大约有一百多个网关系统,大部分在北美洲。除了预期的网络间电子邮件外,Usenet 新闻与 FidoNet 回声邮件会议之间也有大量的网关传输。许多新闻组在 FidoNet 和 Usenet 之间全球共享,例如 FidoNet 的 MODULA-2 回声邮件会议对应 Usenet 的 comp.lang.modula2,FidoNet 的 K12Net 会议对应 Usenet 的 k12.* 层次结构。Usenet 新闻组也在许多城市作为 FidoNet 回声邮件在纯本地基础上提供。网络间网关已被非洲的非政府组织(NGO)广泛使用,也被用于一个巧妙的传输方案,连接南非学术 IP 网络(UNINET-ZA)与互联网 \[Guillarmod 92\]。
**用户**
公共 FidoNet 在全球约有 20,000 个节点。虽然 FidoNet 始于北美洲,但到 1985 年,欧洲已有系统,很快其他大洲也出现了系统。目前,公开列出的节点中约 59% 在北美洲,30% 在欧洲,4% 在澳大利亚和新西兰,7% 在亚洲、拉丁美洲和非洲。FidoNet 技术也被大型企业、公共机构和非政府组织内部私有使用。虽然私有使用 FidoNet 的规模未知,但估计至少与公共网络一样大。已知它在 AT&T、Georgia Pacific 和加拿大邮政等公司中使用。它在非洲的 NGO 中被大量使用。虽然业余爱好者和公共 BBS 在北美洲 FidoNet 中占主导地位,但欧洲大约一半的公共系统由中小型企业资助。在非洲,NGO 和资金匮乏的学术机构有非常严肃的使用。在北美洲,由于 K12Net 的扩展 \[Murray 92\],学校系统中的使用正在增长。
虽然最初的 FidoNet 系统完全集成在公告板系统(BBS)中,但现在“纯邮件”的 FidoNet 系统已成为公共网络的重要部分。这些系统为所有者提供了类似业余无线电或传真机的功能,但不通过拨号提供公共访问。在全球范围内,具备 FidoNet 能力的 BBS 提供了当今最公开可访问且成本最低的电子邮件和电子新闻服务。虽然大多数 BBS 一次只能由单个拨号用户使用,但其他 BBS 运行多线系统,范围从两条到二十条线路。公共访问要求各不相同,从正式的用户验证(可能收取少量费用)到完全开放的设施,允许首次拨号用户完全使用。虽然没有进行正式测量,但估计平均每个 FidoNet BBS 有超过 200 名活跃用户,其中一半使用电子新闻,5% 使用私人电子邮件。由于并非所有 FidoNet 节点都有 BBS 访问,我们可以估计大约有 2,000,000 名 FidoNet 用户阅读或撰写电子新闻,其中大约 200,000 名使用私人电子邮件。
**历史**
1984 年,Tom Jennings 希望将消息从他基于 MS-DOS 的 Fido BBS 转移到朋友 John Madil 的 BBS 上。由于 Jennings 是 Fido BBS 的作者,他能够快速修改它,从专门指定的本地消息库中提取消息,并将其排队发送到远程 BBS。由于美国电话费用在午夜较低,他编写了一个单独的外部程序,在指定的一个小时内运行该电子邮件传输,以与其他节点交换邮件。这很快发展到更多节点,到 1985 年初达到 200 个。节点列表(公共 FidoNet 中所有已知活动节点的列表)被开发为一个分布式外部文件,最初由 Jennings 维护。保留的邮件传输小时被确立为“全国邮件时间”,并保留至今,尽管当前技术能够混合邮件传输和 BBS 访问。
随着 FidoNet 移植到 DEC Rainbow,FidoNet BBS 在密苏里州圣路易斯的 DEC 用户组中变得非常流行。Ken Kaplan 和 Ben Baker 特别活跃,创办了第一份 FidoNet 通讯。当节点列表接近 100 个成员时,Kaplan 和 Baker 从 Jennings 手中接管了其组织和管理。当节点列表超过 200 个时,很明显,例如,旧金山与圣路易斯之间每天有大量流量,反之亦然,并且每个城市之间需要拨打数十个电话给各个节点。由于美国国内城市间的通话通常是免费的,但城市之间的通话不是免费的,因此将城际流量集中到每晚一个电话似乎是显而易见的。因此,原本简单的线性节点列表被分解为城市片段结构,将 FidoNet 地址符号从 node 转变为 net/node。
1986 年底,很明显洲际之间存在类似的问题。与此同时,出现了高级用户或点的概念,他们可以使用 FidoNet 数据格式和传输协议(而不是 BBS 接口)来发送和接收他们的邮件和电子新闻。因此,在 1986 年 10 月的 FidoNet 标准委员会会议上,节点列表被重新设计为四级层次结构:洲、网、节点和点,地址变为 洲:网/节点.点,并沿用至今。
FidoNet 的增长速度似乎与过去十年电子网络的典型增长一致。年末的近似节点数为:
| 年份 | 节点数 |
|------|--------|
| 1984 | 100 |
| 1985 | 600 |
| 1986 | 1400 |
| 1987 | 2500 |
| 1988 | 4000 |
| 1989 | 6500 |
| 1990 | 9000 |
| 1991 | 11000 |
| 1992 | 16000 |
| 1993 | 20000 (1993年4月) |
目前,注册的公共 FidoNet 比 BITNET 大得多,并且最近已超过 uucp 网络注册部分的估计规模。
1986 年 2 月,Jeff Rush 开发了 FidoNet 形式的电子新闻,称为回声邮件(echomail)。由于很少有 FidoNet 用户熟悉 Usenet,他们对回声邮件的受欢迎程度和增长速度感到惊讶。两周内,一个国际回声邮件会议 MODULA-2 就在欧洲、澳大利亚和北美之间传播开来,如今每日压缩回声邮件的容量超过 8 兆字节。电子会议对网络产生的社会影响(无论好坏)与 Usenet 相似。
尽管早期进行过一些原始实验,但在 1986 年,FidoNet 与 uucp 网络(因而与互联网)之间的网关变得足够可靠,可用于生产环境。
**技术标准**
技术标准开发始于 1986 年,发布了 FSC-0001,描述了当时存在的基于 xmodem 的协议套件和基本数据格式 \[Bush 1986\]。不久之后,FSC-0002 发布了节点列表的描述 \[Baker 87\]。1986 年,由当时的活跃软件作者组建了 FidoNet 标准委员会(现称 FTSC),由一位非作者担任主席。FTSC 收集并发布称为 FSC 的文档,类似于 IETF 的 RFC。那些被投票成为正式标准的文档称为 FTS 文档。目前大约有 80 个 FSC 文档和五个官方 FTS 标准。其中一些比较有趣的是:
| 文档 | 主题 |
|-----------|----------------------------------------|
| FTS-0001 | 基本数据格式和协议 |
| FTS-0004 | 回声邮件的格式 |
| FTS-0005 | 节点列表的语法和语义 |
| FTS-0006 | 增强的会话和传输协议 |
| FSC-0034 | 嵌入消息文本中的控制数据 |
当前的文档集保存在许多 FidoNet 节点上,并可通过互联网上的 ftp 获取:ftp.psg.com:~/pub/fidonet/stds/\*
FTS-0001 描述了 Tom Jennings 最初开发的原始消息数据格式、会话协议和链路层协议。如果节点希望被列在公共 FidoNet 中,则必须遵守此标准,尽管绝大多数连接现在使用效率高得多的 FTS-0006 套件。数据传输使用 xmodem 和一种称为 TLink 的变体,即 128 字节块 ACK/NAK 协议,这两种协议均不是流式、双向或滑动窗口的,并且在会话和数据传输级别区分电子邮件和文件传输。也不支持文件中途恢复。FTS-0006 会话和链路层协议 \[Becker 90\] 由 Wynn Wagner 和 Vince Perriello 于 1987 年开发,以克服 FTS-0001 的严重低效问题。其描述的默认数据链路层使用 zmodem,这是一种非常高效的流式、窗口化、无 ACK(仅在失败时 NAK)协议,由 Chuck Forsberg 设计。它还提供了文件中途恢复功能。
相似文章
Show HN: Freenet,一个面向去中心化应用的点对点平台
Freenet 是一个点对点平台,用于构建无需服务器运行的去中心化应用,它采用按环上位置组织的小世界网络。开发者可以使用 Rust 和 TypeScript 等熟悉工具部署应用,用户则通过浏览器访问,无需担心被追踪或被下架风险。
Direct File 的兴衰 [pdf]
本文探讨了计算领域中文件处理技术 Direct File 的历史兴衰。
探索日本XD FirstClass网络BBS
一篇博客文章,探索了一张1994年的CD-ROM,其中收录了日本关西地区的XD FirstClass网络BBS,包括其客户端软件和社区帖子,让人们得以一窥互联网前的在线社区。
网络与互联网,从基本原理出发
一篇深入的教育文章,从基本原理出发解释网络与互联网,涵盖分组交换、TCP、DNS、TLS以及数据如何在全球传输。
Netstrings (1997)
这篇文章来自1997年,描述了netstrings,一种用于在网络中对字符串进行编码和成帧的简单数据格式。