What FidoNet Does ================= Fidonet's purpose is to link FIDO based Bulletin Board systems together for the purpose of automatic message and file transfers. FidoNet is a true electronic mail network, not to be confused with other systems that use the word "net" because it sounds trendy. FidoNet links all of the Fidos across the country, all together once a night (or more), to accomodate automatic message and file transfers. Simply put, you enter a message on one system, say in Johannesburg, and Fidonet later sends that message to the right Fido, which may be in Durban. All of this is totally automatic. From the users point of view, FidoNet is just another message area. All of the magic is hidden away. As a sysop, you should make an effort to understand it, as it will make it a lot easier to install and use. The most important point in the original FidoNet design was low cost. Since most Fidos are run privately, having it send *.EXE to every Fido in the country is not too desireable. Therefore, Fido has complete cost control at every step; FidoNet need not cost you anything to operate. You get to control absolutely everything that FidoNet does. Fido keeps logs and "accounts" with each user, and each host and node system. These are used to control costs (a user with no credit cannot send mail) and to make it easier to pay a host for passing you mail across the country. Costs ===== Each node maintains a node list, that contains the accessible remote systems. Systems not in the list cannot be mailed to. The sysop controls this file, updating or changing it with any text editor. It can only be read from within Fido; users cannot otherwise access it, and cannot see the actual phone numbers used to dial. If your Fido is a public "free" one, then probably no toll call systems will be allowed for general use. All users credits default to zero, so that users cannot send mail willy nilly. In order for a user to enter a mail message (to a toll call system) the sysop has to assign them credit with the SYSOP.EXE utility program. If a system in the node list is marked as free, then anyone may send messages to it. Each user record contains a credit and a debit. Sending mail costs. Receiving mail is free! Messages entered are charged to debit, and cannot exceed the credit. Deleteing a message (that has not been sent yet) entered lowers the debit by the cost of the message; the actual cost of the message is stored within the message. Once a message is sent, the cost cannot be recovered by deleteing it. For a paying system, the sysop must occasionally set the users credit. If reasonably large sums are used as a minimum (R10-00 or more) this will not need to be done more than once every few months. FidoNet Glossary First, a small glossary of terms used to describe FidoNet and all it's permutations. Network: A group of two or more Fidos, with the same net number that send mail to/from each other at a specified time. Region: A geographical area of a continent. Node: One Fido, running FidoNet. It may be a host as well. Host: A node that handles mail for itself as well as other nodes. It may accept mail, and send it on to another node. Local Net: A group of nodes, presumably within a small geographical area, (ie. non-toll call or cheap calls) that consists one or more nodes and a host. Basically, a small, self contained Network. Local Node: Really the same as just "Node", but implies that it is a node that has a host serving it. Topography: Basically, if you were to draw a map showing all the nodes and their interconections. Some of the "shapes" made by the map are called "topographies" if they show some recognizable pattern, such as star, ring, etc. Traffic: The actual messages being sent. If you picture messages as things that travel along the phone connection, it makes more sense. FidoNet Operation ================= Fido and FidoNet are both contained in one program, run as specified by the scheduler. Fidonet is a time driven system, and the national time slot is at 1:00 AM Pacific Time. (4:00 AM eastern Time) During normal Fido operation, users can enter messages, and during the FidoNet time, these messages are made into packets and sent to the right destination. The messages may be destined to any one or more of the available remote nodes in the nodelist. At the predetermined time, Fidonet takes control. It then (if enabled) creates mail packets, one per node, containing the messages for each node. If there is no mail to a node, no packet is created, and no call is made to that system. After the outgoing packets are made, FidoNet alternately waits for calls and attempts to place calls. Mail packet transfers are done on a collision detection basis. After the first few collisions, the network synchronizes. If there are a number of nodes to send mail to, each one is called in turn, until all are sent, or mail time is over. If it fails with one node, it goes on to the next, and repeats the failed one only after trying all of the others first. In between outgoing calls (if any) FidoNet delays a random interval, during which it waits for incoming calls. This interval, along with the redial algorithm, synchronizes the net after the initial collisions. If an incoming call is detected, it attempts connection with it. The baud rate is determined (same as a normal caller would in Fido) and a message to human callers is displayed (warning them that it is accepting only other FidoNodes) and a synchronization process is started. This process must complete within 60 seconds, or the call is terminated. Once synchronized, the packet transfer is made. The receiver just stores that packet for later use, and then disconnects. Whenever an incoming call is received, FidoNet calls out immediately afterwards (assuming there are calls to be made) since there is a high probability that the line is now clear. This helps synchronize the network. To place an outgoing call, the sender dials the number, performs the sync process mentioned above, and transfers it's outgoing packet. (Messages to a given node are again checked against the node list at mail time; if they do not match, the packet is not sent, and an error is logged.) If there are any files to be sent, they are sent after hte packet. If the transfer was successful, the destination node number is deleted from the senders list of nodes to call. The collision detect algorithm is optimized such that during the first few minutes of mail time, there are many collisions, after which the net synchronizes, and none or few collisions occur. When mail time is over, FidoNet deletes all it's outgoing packets that were assembled, and for each one that was sent sucessfully, marks those messages (in the mail area) as SENT, so the originator can tell if they went out or not. Then, the incoming packets are unassembled, and the messages placed sequentially in the mail area. These packets are then deleted. Any files received are marked in the FILES.BBS file list in the mail file area. If any mail at all was sent, the user credits are balanced. This is somewhat unsatisfactory, as it balances the accounts even if the mail was not sent. This is to prevent extremely long processing time necessary to account for each message and user. (Users lists run upwards of 600 entries typically; on a floppy based system this would become unworkable.) Fidonet then terminates, and if there were no fatal errors invokes Fido for another day. Messages received are then accessible like any other message.