FidoNet: Technology, Use, Tools, and History
Randy Bush<br>randy@psg.com
Copyright 1992-3, Randy Bush. All rights reserved.<br>FidoNet is a trademark of Tom Jennings.
Abstract
FidoNet is a point-to-point and store-and-forward email WAN which uses<br>modems on the direct-dial telephone network. It was developed in 1984, and<br>has over 20,000 public nodes worldwide. Although originally based on MS-DOS<br>hosts, it has been ported to environments ranging from UNIX to the Apple //.<br>There are gateways from FidoNet to the Internet, usually via the uucp<br>network.
Technical Overview
The public FidoNet consists of over 20,000 nodes which move email and enews<br>over the public telephone network using a unique protocol and data format.<br>As the initial implementations were written for MS-DOS, DOS-based hosts are<br>still the vast majority of the network. But semi-formal specifications for<br>the data formats and protocols have facilitated implementations for UNIX,<br>Apples from the // to the Macintosh, CP/M, MVS, the Tandy CoCo, and many<br>other platforms.
As FidoNet is almost entirely financed by private individuals, minimization<br>of modem/telephone time has been the principal driving force behind any<br>design of the data transfer protocols. The original implementations used an<br>inefficient xmodem-based transport, a non-windowed ACK/NAK protocol with 128<br>byte packets. Although rarely used in practice, this protocol remains the<br>minimal basic standard implementation today as it is trivial to code.<br>Almost all current implementations offer an optional suite of quite<br>efficient zmodem-based streaming transport protocols which are ACK-less,<br>only NAKing in case of error. It is interesting to contrast this push for<br>efficiency with uucp's profligate G protocol and the Internet's SMTP and<br>NNTP protocols.
Addressing within FidoNet is numeric with a bit of punctuation, and<br>specifies a particular node in the administrative hierarchy. Addresses are<br>of the form zone:net/node where zone is one of the six continents (North<br>America, Europe, Oceania, Asia, or Africa), net is the city (or larger area<br>if the node density is sparse), and node is the particular host within the<br>local network. For example, 1:105/6 is host number six within the Portland<br>Oregon US local network (net 105) which is in North America ( zone 1). The<br>addressing scheme may be extended to accommodate points which are power<br>users who reduce their connect time by using private (i.e. unlisted) nodes<br>to exchange email and enews with public nodes. Thus the extended addressing<br>scheme is zone:net/node.point, e.g., 1:105/6.42.
A list of all nodes in the public FidoNet network is automatically updated<br>and distributed weekly. This list contains the actual data telephone number<br>of each host, as well as the geographic location and name of the system<br>operator (sysop). Every city's local network maintains its local data and<br>sends those data to a regional coordinator who, in turn, sends the region's<br>aggregated data to a continental coordinator. The continental coordinators<br>exchange their data, and create a list of the differences between the<br>current week's data and that of the previous week. This `nodediff' is then<br>distributed back down the hierarchy all the way to each individual node in<br>the network.
As all modem phone numbers are published in the nodelist, point-to-point<br>transfers are always possible. But, as store-and-forward capabilities are<br>specified in the basic standards, email tends to be routed through a<br>world-wide hierarchic topology and enews via a world-wide ad hoc, but<br>generally geographically hierarchic, acyclic graph.
Topology
FidoNet's addressing hierarchy - zone, net, node, point - approximates the<br>route which email follows.
Power users run points which may connect to only their respective host nodes<br>to receive and deliver their email and enews. As they are not in the public<br>nodelist, points are not considered to be official nodes in the network, and<br>thus are not subject to constraints of technology, national mail hour, etc.
Within a local network (i.e. city), nodes usually exchange email directly<br>with each other. For example, 1:105/6 exchanges mail directly with all<br>other nodes in 1:105/*. In those cities where phone tariff zones divide the<br>city, local hubs are used to concentrate intra-city traffic to reduce costs.
Each local network has one node with an alias of node 0 (i.e. zone:net/0)<br>which is known as the "inbound host." By default, all mail from outside the<br>local net is delivered to the inbound host to be distributed within the<br>local network. Thus, a node in New York may deliver all mail to San<br>Francisco with a single telephone call, as opposed to a call for every SF<br>node for which it has mail. While each node is responsible for sending its<br>own mail (as FidoNet is financed from the pockets of individuals), some<br>local networks cooperate sufficiently to provide an "outbound host" to<br>concentrate all mail destined for outside the city.
Each of the six zones (continents) has a...