BASICS.TXT -- A tutorial for newcomers and prospective members of
Rev. 0.3 FidoNet. (All those things they don't tell you
about in the software docs!)
Please circulate and post for D/L and File Request as BASICSXX.ZIP,
where XX is the revision number (in this case, BASICS03.ZIP).
TABLE of CONTENTS
Basic FidoNet Terminology ...................... 2
FidoNet Technical Standards .................... 5
Fido News ...................................... 5
FidoNet Policy ................................. 6
More FidoNet Terminology ....................... 6
Events & Nodelists ............................. 6
Processing Nodelists ........................ 8
Nodelist Contents .............................. 8
File Requests, Attaches, etc. .................. 10
Routing Mail ................................... 11
EchoMail, How It Works ......................... 11
Cross-Links .................................... 15
Mail Archving & Naming Techniques .............. 17
How to apply for a Fido node number ............ 20
Security Issues and Passwords .................. 21
(copr 1990/1991) Chris Anderson at The Dinosaur Board
Please refer all change requests to FidoNet 1:104/114 via NetMail.
Some portions of this document are extracts from 101WAYS, which
includes 101CRASH and 101NIGHT, (copr 1989), Chris Anderson.
First, get some basic FIDO terminology under your belt. These words
will be used OFTEN during your use of any mailer and BBS net software!
The international system of Electronic Mail. Designed primarily to
transfer E-Mail messages between individual users around the world.
The user sends his message from a local system and this message is
forwarded to the appropriate system automatically. The sending
system pays for the service by placing the outbound call, usually
billed as a one minute call to the receiving system's location at
late hour long distance rates. Replies are paid for by the
reply sender. No profit is allowed to sysops for this service when
users are charged for the service.
All NetMail is sent at least nightly during Zone Mail Hour. This is
a synchronized event taking place from coast to coast every day of
the week. In addition, some systems allow sending and receiving of
messages 24 hours a day, even during the higher priced daytime hours.
This is known as CRASH MAIL, and is often sent as soon as it is posted
by the sender.
The method of sharing message boards between systems. This allows systems
to share one or more message boards on a nationwide basis. Some are even
worldwide systems. These shared boards are usually called ECHOS or
ECHO CONFERENCES. These ECHO's are available for a wide variety of
topics ranging from programming in Pascal to Amateur Radio. During the
night, each system sends its day's messages from selected message areas
to a central point and receives other system's day's messages in return.
Distribution of echos is, as noted, almost always handled by a central
system in each area to avoid confusion and possible duplication of
messages. This service is usually provided by sysops at no charge to
their users. An exception would be a board that charged for access for
all or most services.
Zone Mail Hour
Participants in the Fido NetMail system are obliged to make their system
available during Zone Mail Hour on a daily basis. This hour is
synchronized to occur simultaneously across the country.
0100-0200 Pacific Standard Time
0200-0300 Mountain Standard Time
0300-0400 Central Standard Time
0400-0500 Eastern Standard Time
Times are NOT adjusted for daylight savings time! In other words, if
you were in the Pacific zone, your hour would be from 0100-0200 during
standard time, and from 0200-0300 during daylight time if observed in
Your net may also observe other hours where your system needs to be
available. Often, these times are used for EchoMail transfers. Note
that sending EchoMail during Zone Mail Hour is a *usually* a no-no!
You should avoid it unless it is acceptable in your area. Zone Mail
Hour is usually reserved for NetMail transfers only, as large file
transfers of EchoMail can tie up your system badly during this event.
An example is that in the 104 (Denver) net, we once used the hours of
0100-0200 open for sending our EchoMail from the day to our central
"collection points" - our EchoMail Hubs. From 0200-0300 we had Zone Mail
Hour, and from 0300-0400 we received EchoMail from the coordinator.
ZONES, REGIONS, HOSTS (NETS), HUBS, NODES AND POINTS
Each of these is descriptive of the position of a system in the overall
network. Technically, every system in the Fido network is a NODE. A
node is, after all, a "connection" within a system. However, certain
nodes have responsibility for routing data between other nodes.
ZONES are the largest discrete group of systems. There are now six
FidoNet zones covering the world. One zone handles the U.S. & Canada,
one for the Asian and Pacific areas, one for Europe and one for Latin
America. Every node has an implied zone number (see Net/Node Number,
below). Zone numbers are also sometimes used for interconnect to
non-Fido networks. At this time, it is still common to find these
other nets using non-Fido zone numbers (such as 8) to identify themselves.
As Fido continues to add zones, this could someday present a problem,
and new identificiation methods have already been established to
handle this problem in a different way. We won't talk about this
"DOMAIN" addressing technique here, but you should be aware of it.
REGIONS identify a large geographical area within a zone. In the U.S.
Zone, there are several regions, each taking care of a group of states.
My region is 15 which takes in Colorado, Utah, Arizona, New Mexico and
Wyoming. It's known as the Mountain Region.
Region numbers are never used as part of a Net/Node number. However,
be aware that your Net Coordinator's boss is the Regional Coordinator.
He helps handle nodelist updates and the like, but isn't involved in
the day-to-day moving of mail.
HOSTS (also known as NETS) are the next smaller subdivision. Within
Region 15, Denver is NET 104. On a typical Fido nodelist, you'll see
these referred to as a HOST, we call them NETS. The person who
administrates your net is known as the Net Coordinator. This is the
person who is responsible for making sure that the current Nodelist
(the FidoNet "phone book", so to speak) and other important items
are made available to you. The Net Coordinator also assigns the
node numbers (see below) in your net area.
HUBS serve to distribute to a smaller geographic area. For example, as
part of the Denver Net (104), various suburbs and surrounding cities
are grouped around a Hub. My Hub is Boulder. These are never included
in Net/Node numbers. Not all nets make use of hubs for assistance.
NODES are the last step in the chain (but remember that actually, ALL
systems are Nodes). Each system has a unique Node number within its Host
or Net area.
POINTS are like "superusers". They use mailer software to receive mail
from a member of the network, and do not have their own node numbers
listed in the nodelist. However, they do have unpublished private net
(Point Net) numbers which are used to handle movement of mail between
their systems and their respective Boss Nodes. Point Net numbers can
be received by applying to your Zone Coordinator at 1/0. The ZC will
supply you with your private net number, and you can assign the node
portion of the number to systems as you see fit.
NET/NODE NUMBER - the mailing address that makes it all work. In fact,
the proper definition is ZONE:NET/NODE, but unless international or
inter-net transactions are occuring the Zone number typically defaults
in software to whatever your own Zone is.
Since I am in the U.S., Denver area, my number will be 1:104/something.
My node number within 104 is 114, so my full address is 1:104/114. As
noted above, the Zone is often ignored, so I'm 104/114 for short.
Remember that Regions and Hubs are used for administrative purposes,
and don't figure into your net/node address number.
Of course, the primary purpose of all this is to move "messages"
around the system between nodes. There are several types of message,
and each is handled in a unique way by your software. We've already
covered the definitions of EchoMail and NetMail messages above.
There are several other types of "messages" as well, including the
File Attach message and the File Request message. We'll touch on
those a bit later in this file. Most often, your software will
operate initially on the message with a filename in the form
of *.MSG. A rare few systems avoid this intermediate stage and
place the messages directly into the message base if there is
a "database" style message base in use.
Messages can be sent with a variety of attributes, some of which
are FidoNet standards, and some of which are unique to particular
software or groups of software. A few of these attributes include
Private - Various software can be configured to handle this
in a wide variety of ways. In many cases, only
the sysop, the sender, and the receiver are made
capable of reading a "private" message. Since the
point of an echo is to move useful mail to a great
many systems, sending a "private" message in an
echo is tacky. Hundreds of systems may be forced
to receive a message that their users can never read.
Crash - Flags that this message is to be sent "crash". On
many systems, the configuration causes a "crash"
message to be sent immediately to its destination
either directly or via whatever appropriate routing
has been supplied.
Hold - A message with a "hold" flag on it must generally
be picked up by a call *from* the destination
Kill/Sent - Most often used only on NetMail messages, this flags
your software to delete your message once it has been
packed or sent to the destination, avoiding cluttering
up your own message area with traffic that has already
been sent on its way.
The most BASIC unit of transfer between two systems is NOT the
message, it is the "packet". A packet is prepared by your software
that contains all of the messages destined for a given system - all
in one tidy bundle. There is no compression technique used here,
only the bundling process takes place. When two systems make
contact, and if things are configured properly, they will exchange
any packets destined for each other. If you have four messages
destined for a node, they will be transferred in a single packet
during the connect. They are immediately broken down into "messages"
by your software, and inspected for potential file requests or
attaches. Regular messages are then processed in whatever fashion
your software is designed to use to get the messages to someplace
where they can be read. If you should ever spot a file whose name
is in the form *.PKT, that's a packet. Note that when we discuss
moving archived (compressed) mail files back and forth later, that
it is the packets (*.PKT files) that are compressed. The FidoNet
standard for this is the old SEA 5.X ARC standard, although many
systems will use the newer ZIP format - but ONLY where mutually
agreed upon in advance.
There are official FidoNet Technical Standards covering the exact
construction of both messages and packets. Your software was most
probably written correctly, and will conform to these basic formats.
If, however, your software is prone to deviating from those standards,
you're likely going to run into trouble with your fellow net members
when *their* software gags and pukes on undecipherable messages or
packets. It is *your* responsibility to remedy such situations when
they occur. Always stay abreast of modifications and bug fixes for
your software that are intended to enable your software to maintain
FidoNet standard operation. If questions arise, the FTS standards
are the final authority for such matters.
If you're interested in seeing just how these standards allow your
system to talk to others, you may want to locate and download these
standards as created by the FidoNet Technical Standards Committee
(FTSC). A great deal more thought has gone into making our systems
function well together than first meets the eye!
Each week, more or less along with the new NODEDIFF file (the update
to our FidoNet "phone book"), you'll receive the Fido News. The
Fido News is a collection of editorial material, rants and raves,
amusing stories, and a useful list of the latest known revisions
for much of the software used by FidoNet systems. Announcements
of events of interest to members is also included.
Traditionally (well, let's say up until August 1990), the Fido News
was transmitted in archived (ARC) format. The editor decided it
would be amusing to begin transmission in LHARC (LZH) format in
August of 1990, to the consternation of the many FidoNet members
who have no utilities to turn the LHARC files back into readable
text. Your Net Coordinator or Administrative Hub may recreate
these files as ARC files, or may pass them through to you as LHARC
files. If your computer has no LHARC utility available for it,
you should request that it be converted before it is sent to you.
I suspect that if enough such requests are made, the Net Coordinators
will demand a return to a format for which decompression software
is more readily available. Time will tell.
FidoNet sysops are obliged to operate by a set of Policy guidelines
that must be followed by all within the FidoNet system. If you plan to
enter into the system, you should get a copy of whichever is currently
available (4 is in current today) and read it. Most important are the
understanding of Zone Mail Hour (above) and the responsibilities
of the individual Sysop. Pay particular attention to what is known as
an "annoyance". Fido is reasonably tolerant of a lot of things, but
Major Annoyances can get you canned from the system. The policy also
explains the responsibilities of the folks up the chain from you, and
therefore explains what you can and cannot reasonably expect from them.
Note that there is also an Echo Policy floating around. Sadly it doesn't
define much in regard to data formats or archiving utilities or any number
of other helpful things. However, it explains the duties of echo
coordinators and hubs and what you may and may not expect of them. Much
of the echo policy within a net is determined locally by the net members.
At the time of writing, no EchoPol has ever been formally adopted by
FidoNet as a whole. In addition, your net may have its own policy.
In addition, your own net may adopt local policies detailing its
own preferred method of operation so long as it does not come into
conflict with FidoNet policy.
Now for some other terms related directly to your software and its use:
An Event is pretty much what it sounds like. It is an action that is
taken at a specific time of day or within a range of times by your
computer. You will want to set up Events so that at the appointed time,
your system will begin to execute each Event. All you'll need to supply
is the time and a description of what you want accomplished. An
example of this would be to tell your mailer software that at 0200 it
needs to put itself into send/receive mode for NetMail.
All of the addresses for the over 7,500 systems are contained in a file
called the Nodelist. This file is updated on a weekly basis by the
Fido coodinators. In addition, for those that already have the
most recent large working file, small update files are made available
weekly to add to the existing file. This avoids having to shuffle
around the big one once a week to all systems.
The large file is distributed as NODELIST.Axx, where xx represents the
number of the distribution. This number is the day of year. The
.Axx extension indicates that the file has been archived using SEA or PK
or similar archive techniques. After un-ARC'ing the file, it will
look something like NODELIST.241 instead of NODELIST.A41. You don't
see the entire day, of course, until you un-ARC the file.
The list is not useable by most software packages in its form as
distributed. This list will likely need to be translated to operate
with your mailer package. In addition, an index and some other necessary
files are usually created from NODELIST.xxx. If you will be running
software that can handle SEAdog, Opus or Fido style nodelist compilations,
I strongly recommend use of XLAXNODE for your nodelist compiler.
In addition to the NODELIST.Axx files, you will receive NODEDIFF.Axx
files weekly. These are the changes rather than the entire list.
These can be incorporated using XLAXDIFF. NODEDIFF.Axx files have the
same extension (archive indicator + day number) as the larger files.
It's much faster to incorporate changes into your existing list than to
receive an entire list each week! You'll discover that the archived
version of the full list runs well over 300K!
Execution of XLAX is a piece of cake. Just get yourself into the directory
where XLAX and your node lists reside, and type XLAXNODE. You'll discover
that it asks you to repeat a number that it gives you. This was the
author's way of trying to convince you that you should register your copy
and sent him his $10. Without doing so, you won't be able to run the
program automatically in unattended mode. Send him his $10. It's a
Note: due to some overlap between some European and U.S. node numbers,
and the Zone-Brain-Dead nature of some mailer & BBS software, you may
see some "duplicate" warnings as the node list is being compiled. This
is normal. However, you should see pretty much the same ones month after
month. If new ones start showing up, your list may be hosed. If you need
to access these European nets, you may have to redefine them somehow.
The NET command can be used in your XLAXNODE.CTL file to redefine
duplicated net numbers. For example, if I have both a European and U.S.
Net 237, I could redefine the European net number like this:
NET 2:237 2237
By doing this, I can send a message to net "2237" and the call will be
placed to 2:237. This does cause some complications for the receiving
end, but if you wish to direct route mail to one of these "duplicate nodes",
I know of no other way to accomplish it given the current problems with some
of the BBS and mailer software out there that is not "zone aware".
A couple of files are needed for compiling any nodelist. In the case of
XLAXNODE, two of the more difficult to create are the file containing
costs and the file containing corrections for dialing. I've chosen to
call these COSTS.TXT and DIALFIX.TXT. The latter isn't too difficult,
but you're going to either have to borrow the former, or do some
substantial work to get accurate costs built into your nodelist if it
The XLAX docs provide an excellent description of the format for this
information. This list will probably the most time-consuming proposition
in the entire setup unless you can get an accurate list from another
sysop in your own local calling area. Best bet is to find the closest
FidoNet sysop and rework that list as opposed to building one from
scratch. One word of caution! If you use someone else's list, be aware
that this person may be using a different long distance carrier, and that
your rates may vary somewhat from his, even if you are in the same calling
area. Getting rates from your carrier can be a real bitch. They HATE
sending out rate lists for you in most cases. However, I've found that
threatening to ask them by phone, area code by area code, often produces
results. In general, rates don't vary much in the 1am-4am once you get
outside a certain distance from your area, but be sure! International
rates are a little easier to get in most cases. For in-state calls (where
your local phone company has you by the cajones) [yeah, sexist remark], the
possibilities may be endless and may require that you do some random
sampling and just generate an average in order to avoid a list that
could take weeks to enter. Of course, it should come as no surprise
that in-state calls wind up costing more than long distance. You'll get
an education into the cost of phone calls and federal regulation of
interstate long distance as you go about this process!
Be sure that you enter the default domestic and international rates at
the top of the list per the XLAX docs just in case your list misses
something along the way!
All of the entries in the node list are in the full length form.
For example, a Colorado number might appear as 1-303-123-4567.
If you live in Colorado, dialing 1-303- before every number gets you
a recording telling you that you really didn't need to do that.
In fact, you don't even need the 1- for calls in your local calling
area. This file is where these things are dealt with. XLAX docs
this well, as usual, but here's a couple of examples:
I live in area code 303. One of my long distance 303 nodes is at
1-303-555-1111. In addition, two of my local calling area prefixes
are 552-xxxx and 553-xxxx.
I would want to include the following in my DIALFIX.TXT file:
1-303-555 1-555 (strip off the 1-303 when dialing, and use a 1-)
1-303-552 552 (strip off the 1-303 when dialing)
1-303-553 553 (strip off the 1-303 when dialing) etc., etc.
Everyone in FidoNet should be familiar with the makeup of a nodelist
entry. Here is mine (split into two lines for convenience - they are
never split in the list).
Most of this information requires no explanation. The first number is
my node number within Net 104. The second bit of information is the
name of my BBS. Note that underscores are always used in the nodelist
entry, but are generally converted to spaces by other software. The
next items are my location, and my name. The phone number is
"normalized" to include all of the dialing information required for
somebody in the U.S. to place the call to my number. For those that
are in my area code (303), their nodelist compiler must remove the
1-303 if they are a local call, and the -303 if they are not a local
call. Next, the baud rate.
The baud rate is a little hinky. You may have a modem that can make
a zillion (ok, only 14400) connect to my modem. But we leave THAT to
the modems involved. 9600 is the highest baud rate that is reflected
in the node list. A call placed by an HST modem to my system would
indeed connect at the higher rate if the software was configured
properly to do so. What follows the baud rate varies a great deal
based on the system configuration and the diligence of the local
net coordinator. These are called the FLAG information. For a
system running 9600 or faster, there must be a flag that indicates
the modem type in use. The combination of HST and V.32 connect
possibilities are indicated because I am using a Courier HST Dual
Standard that supports both. Last, we have the mailer software
type. In my case, this is SEAdog, and the XP flag provides that
Last, you should understand the CM, #09 and MO flags. The CM
identifies a system able to receive mail (a 'crash' system) on
a 24 hour basis. The #09 indicates that the system is not a CM
system, but supports the Zone 1 (North American) zone mail hour
at 0900 hours Greenwich (Zulu, CUT, or whatever you prefer to
call it). A system with an MO flag is "Mail Only", and calling
it with normal comm software will get you nowhere, as there is
only a FidoNet mailer there - no BBS.
I strongly recommend that you have a look at the end of the
nodelist and find there a text section explaining the meaning
of all of the other possible flags. You should also be aware that
some NC's and hubs aren't very diligent about getting the right
flags into the list (with the exception of the #CM flag). You
should check your own entry to be sure it is correct in the
nodelist. A program like LIST.COM is a handy way to do this, using
the ind feature. Just search for Host,xxx where the xxx is
your net's number. Just below that, you'll find your own entry.
You may see a couple of "oddball" entries in the Nodelist. First,
there is the "Down" entry. This means that although the system may
still exist, it is either down due to technical or other troubles,
or the NC has been unable to communicate with it for unknown reasons.
Failure to be available for NetMail by your NC during Zone Mail
Hour may get you a "Down" notation in the list. Continued failure
to be available for contact during ZMH may cause the NC to remove
your entry from the list!
Also, there is the "PVT", or Private node. There are a few folks
out there that either don't want calls from anyone except their
NC or hub, or are running software that most other systems couldn't
connect with in the first place. These are discouraged, but when
included in the list, they are marked as PVT and their phone
numbers are generally unpublished in the list. The reason for their
inclusion is to allow you to know how to route mail to them via
their NC or hub. Yes, it's possible (and also common) to deliver
NetMail to one system by sending it to another for re-routing.
We'll cover this elsewhere.
FILE REQUESTS, FILE ATTACHES and other neat stuff
Besides the normal traffic of NetMail, EchoMail and the like, a typical
mailer system has a few more tricks up its sleeve that you may find very
One such feature is the File Attach Message. Although it is often
used to move a bundled up file of EchoMail, the File Attach Message
can be used to send a copy of any file between systems. When you
get your weekly copy of your NODEDIFF file from your Net Coordinator
or Hub, it is done by creating a special kind of message whose
subject is actually the path and name of a file. There is a special
bit set in order to do so - you can't just place a fully qualified
path\file name in the subject area and cause the file to be sent.
Either your mailer, message editor or BBS software will have the
ability or come with a utility that provides the file attach function.
This is not only a nice way to move FidoNews, the NODEDIFF files, and
other administrative items, but can be used between two nodes to
send out a new piece of interesting software, a copy of some config
file that needs debugging - whatever sort of file you wish to send.
Besides the File Attach Message, there is the File Request Message.
Sometimes, in order to abbreviate File Request, folks will use the
form " freq " or " f'req " instead. You'll often see someone
talking about freq'ing a file. This is the File Request.
As for the File Attach, one of your programs or associated utilities
will provide you the ability to create a File Request Message.
During any event that allows you to place a call to the system for which
you've set up a File Attach or File Request Message, your mailer system
will dial that system, and use the message to indicate to the other
system that a file transfer is desired. So long as the other system
hasn't included something like NO-FILES in the event, and as long as
the other system talks the same "language" as yours, the file transfer
One word of warning about File Requests...
The FidoNet standards for such file transfers were cleaned up in late
1989/early 1990. Two internal protocols for handling such file transfers
exist and are in common use in FidoNet. Both are valid, although
not all systems support both methods. In fact, CERTAIN authors have
still, as of this date (October 1990), refused to support one or the
other of the standards. Alas, there are politics in Fido, Martha, and
you should be aware that of this date, two mailers in particular have
taken a path that makes them completely incompatible with the SEAlink
protocol for file requests. One occurred by accident due to problems
in interpreting what was once a vague standard, and seems to have given
up trying. The other started out with similar problems, and then
simply REFUSED to make any attempt at compatibility. They are, in
order, Front Door and D'Bridge. If you are using either of these
two mailers in what is, as of today, their currently supported
versions, you can kiss file requests with SEAdog mailers goodbye.
Both the "barefoot" Opus and Binkley mailers cover both standards,
the Binkley mailer being the option for non-Opus-BBS users. If you
are concerned about possible file transfers with a SEAdog mailer at
any point in the future, Binkley may well be your best choice of a
mailer. Ditto for using SEAdog. If you're concerned about transfers
to Front Door, and ESPECIALLY D'Bridge mailers, SEAdog in its current
form is going to present problems. Since rev 2.40 (+ mods) of
Binkley, Bink and SEAdog are happily talking like crazy to one
It's possible to send a message directly to any system with a published
number in the Nodelist. This is due to the fact that all systems are
required to observe the minimum FTS-001 (Fido Technical Standards)
protocol that allows for the most basic mail packet to be transferred
between systems. However, an alternative is to send the same message
to the NC or hub of the destination node instead. Your mailer or
"packing" software will allow you to send a message destined for a
node to another system for re-transmission. It is ALWAYS acceptable
to send mail routed to another node's Net Coordinator if, for
whatever reason, you find any difficulty in connecting directly.
However, it is considered tacky to route through another system
without first obtaining permission from the other system. Moreover,
it is entirely possible that another system won't have the proper
routing installed to re-transmit your message to the destination
in the first place! Except for NC or hub routing, ALWAYS ask first!
ECHOMAIL, HOW IT WORKS
Most of the traffic moved through FidoNet is in the form of what we call
EchoMail. There are several other techniques for moving mail that are
in use by other networks, but we'll stick to the EchoMail model for our
Again, a few definitions are going to be helpful:
STAR SYSTEM / REGIONAL ECHO COORDINATOR
There are a few selected systems across the U.S. that act as "stars"
for FidoNet echomail. These systems supply cross-country connection
between the various nets by accepting and distributing mail between
each Region's primary system (often run by the Regional Echo Coordinator,
or REC for short). In the case of some of the larger nets, they are
connected directly to the "Star" systems, bypassing the Regional
Coordinator due to the load of mail involved. It might look something
like this (things tend to change frequently!), an abbreviation of the
real star system in use:
Western Star ------- MidWestern Star ------- Eastern Star
/ /|\ / /|\ /|\
/ | | \
etc A large Net | | \ etc
net is the 104 | | \
exception. / | \
/ | \
/ | |
/ | |
/ | |
/ | |
Region Region Region
14 11 12
etc | etc
/ | \ This is the more
/ | \ typical arrangement.
/ | \
Net Net Net
108 110 115
etc etc etc
Under the regions are typically the nets. Each net has its own primary
system, usually run by the Net Echo Coordinator (NEC for short), who
distributes the mail within the net. Often, the NEC appoints hubs to
help in distribution of the mail. This is especially important in nets
with a large number of systems and a large volume of EchoMail being
TAG LINE / ECHO TAG
Each message in an echo area must include information regarding the
specific echo to which the message belongs. This is placed at the
top of the message before exporting to the outside world, and is
used by all receiving systems to know in what message area the message
needs to be placed on the BBS. It is also used for making copies of
the message as needed (see below). This is called the Echo Tag, or
Echo Tag Line. Most BBS software does not display this information,
or strips it before placing the message in to the message base.
How is this mess kept straight??? Messages flying all over creation
and somehow, we manage to keep track of who needs to receive them and
who's already seen them. Enter the SEEN-BY line, and another piece of
useful information, the PATH line.
Although not used to figure out where things need to go, it is easier
to explain the whole procedure if we start with the PATH information
attached to each message as it travels its course. The PATH is simply
the list of systems through which any message has passed to get from
its originating system to the destination system. Since messages
will take different paths to reach different systems, each sees a
slightly different PATH line when the message is delivered. Let's
say, for example, that there are three systems that all share mail
between them (a radically simplified model of the real distribution
system shown above). Let's call these systems 100/1, 100/2, 100/3
100/4 and 100/5.
Let us further assume that 100/2 is handling all of the distribution
for mail between the three systems. In other words, all mail must
pass through 100/2, regardless of where it originates, and is then
passed on to the other two systems. In addition, we will assume
that 100/3 is 'hubbing' for 100/4 and 100/5.
The real topology of our "mini-net" would look like this:
A message from 100/1 that is shared by all other systems would pass
to 100/2 first, then to 100/3 and on to 100/4 and 100/5. The PATH
information will always show how the message got to where it finally
was posted on any system. For example, the message from 100/1 shows
only 100/1 on the PATH line of the message as it leaves 100/1 bound
for 100/2. The 100/2 is then attached before the message is routed
on to 100/3. The 100/3 is then attached to the message before it is
forwarded to 100/4 and 100/5. At 100/5, then, the path information
should look like this:
PATH 100/1 100/2 100/3 100/5
This is often abbreviated by software, making the assumption that
if no net number is provided, it is assumed to be the same as the
last listed net. In this (the most common) case, the PATH information
would include our net number only once (since no others are involved
in this message) and would simply be
PATH 100/1 2 3 5
If a message were originated at 100/2, the path at 100/4 would
PATH 100/2 3 4
and at 100/1, it would simply be
PATH 100/2 1
Where multiple nets are shown, paths might look like this:
PATH 100/1 2 13/1 104/1 115 114
This shows that a message was passed up from 100/1 to another node (2)
in that net, on to a net 130 system, to net 104, and down through a
couple of nodes in net 104 to the final destination of 104/114.
The next item of importance is the SEEN-BY line(s). This information
is used by each system along the PATH to determine who has seen the
message, and for whom copies need to be made. As a message is processed
by any system, SEEN-BYs are added for any systems for which a copy is
made by the processing system. Using our 5 node example above, a message
moving from 104/1 to 104/5 would function this way:
Message as sent from 100/1 SEEN-BY 100/1 2
Message as sent from 100/2 SEEN-BY 100/1 2 3
Message as sent from 100/3 SEEN-BY 100/1 2 3 4 5
Note that since 100/3 needs to make copies for both 100/4 and 100/5,
it adds the SEEN-BY for both nodes for which it has made copies.
Each system should provide itself in the SEEN-BY information when it is
the originating system. Why? If it did not do so, the next system that
received the message would send a copy back!
The method of deciding who should be receiving copies is usually one format
or another of a copies called AREAS.* Various software packages like to
see this file in slightly different formats, but the essential information
there is the echo tag with the list of nodes for which that system is
responsible for making copies.
So, to wrap it up, the PATH shows how the message got from the originator
to anyone receiving the message, and the SEEN-BY shows what systems copies
were made for along the way.
Checking for the sources of duplicate messages is simplified by the PATH
information. By observing the two (or more) paths that the message may
have taken to get to the destination, it is often easy to tell who has
been sending the message to the wrong system(s), or fouling up the SEEN-BY
information along the way. Note that clobbering SEEN-BY information or by
making it unreadable to some other system is guaranteed to create
duplicate messages. Although the PATH line must always begin with a
"Control A" (a hex 01), the SEEN-BY line should NEVER start with one of
these. Many systems won't "see" the SEEN-BY information if the line(s)
start out that way!
The origin line can be used by the sysop to provide any information
that helps identify the system that is originating the message. This
information always starts with a '*' and a space, and is typically
followed by the name and phone number of the originating system. There
are some sysops who also include a cute saying here, and this is
generally accepted, but beware of including messages with "political
content", as it is appended to every message a user generates in an
echo, and that user will not see the origin line after entering the
message! User's have been known to become hostile when their messages
are suffixed with things they're not in agreement with! Do NOT
include your net/node number in the origin line if your software will
add this automatically. All too often, new sysops add this to the
origin line info, only to discover it is being duplicated by the
software. Also, please note that much software won't display an
origin line of >80 characters total, so remember that when you create
your message, space must be left for the net/node and "* Origin"
This line starts with a '---' and is appended by either the message
editor/BBS software, the packer or the mailer. Some software will
delete any previously entered information and replace it with its own
as your message passes between your various programs.
Here's the "readable" portion of an EchoMail message, including a couple
of items we haven't yet discussed (note that not all software allows the
viewing of these items, even though they exist in the message). The
control A (01hex) character will be represented by a "^" so that you can
see where it would appear in the message.
^EID: eid info
^MSGID: msgid info
Text of the Message
* Origin: Origin line information (zone:net/node)
--- tear line information
SEEN-BY seenby nodes list
SEEN-BY continuation of list if required
^PATH path information
The EID and MSGID information is designed to help your software check
for duplicate messages. Most times, this is simply a check sum of the
body of the message, often including the header information (TO:, FROM:,
When quoting any message with a message editor, it is important that you
not accidently leave any of the EID, MSGID, SEEN-BY or PATH information
resident in the message without something to preface it that would keep
software from recognizing it. For example, if you have a need to quote
the PATH information, be sure to delete the little smiley-face that
appears for the 01hex, and stuff something in front of it (such as a ">")
just to be safe!
As you can imagine, a fouled up SEEN-BY line or two in a message can
cause a great number of duplicate messages to be created. Unless a
system using the EchoMail technique described above has the full
necessary SEEN-BY information, a system is likely to start generating
copies for people that should have been listed, but aren't. Broken
software can be a real pain here!
There IS an exception to this rule, and when used, it must be used
VERY carefully to avoid duplicates! This is the Cross-Link method
of moving mail. Rather than dropping down the normal tier of nodes,
the cross-linked mail message is transmitted "across" a number of
hub nodes of equal position within the structure. This is used to
avoid having to move mail up and back from the top level system in
any structure. Things move a bit faster this way. Let's say that
we have those old 100 series systems again, each *normally* being
served their daily doses of mail via the Net Echo Coordinator at
regional or star feed
/ | \
/ | \
/ | \
/ | \
/ | \
100/2 100/3 100/4
/ | \ / | \ / | \
to other nodes served
Normally 100/2, 100/3 and 100/4 would only send EchoMail between the nodes
they serve as hubs and 100/1, the Net Echo Coordinator as in the diagram
above. However, for those echos that are "Cross-Linked", this first
tier of hub systems are ALSO "cross-linked" to each other!
regional or star feed
/ | \
/ | \
/ | \
// | \\
/ | \ / | \ / | \
to other nodes served
When a message appears on 100/2 that is originated on 100/2 or one
of the nodes it serves, where the echo in question has been
declared a cross-linked echo, 100/2 will immediately make copies not
only for any of the nodes it serves, but also for 100/1, 100/3 and 100/4.
This makes it unnecessary to first move the message back up to 100/1,
wait until 100/1 unpacks and creates copies for 100/3 and 100/4, and
can make contact with these other two top tier systems.
This is CAREFULLY controlled (until someone screws up!) by making sure
that all other top level systems are included in the AREAS file of each
top level system. In the case of 100/2, the AREAS entry for a cross-linked
echo in the system shown above would appear as follows:
100/1 100/3 100/4 100/xxx 100/xxx (where xxx are the other nodes
that 100/2 hubs for).
A fouled up AREAS file on the part of ANY of the systems that play a
direct part in the cross-link will cause duplicates to be created
quickly. Picture this: 100/2 forgets to include 100/1 in his AREAS
file. When 100/3 and 100/4 see the message, they'll BOTH see that
100/1 isn't in the SEEN-BY information, and BOTH of them will make
copies for 100/1. Bummer.. don't let it happen to you!!!
There are numerous utilities in use out there for handling the archiving
and unarchiving of mail files. For SEAdog users, ARCMAIL (in one of its
various revisions) is often used. Users of other BBS and mailer systems
use this or other utilities.
Problem: Not all utilities are flexible about the file name extension used
for archived mail files. Not all systems can accept all extension
variations! Your mail files *may* not be unpacked by the receiver
under certain circumstances!
Problem: Some of the utilities used on other systems will create packets
improperly, generating "short packets".
Currently the following have been noted as file name extensions that are
being generated by various utilities:
dd="MO" (never changes) n=sequential number
dd=day of week (SU, MO, TU, WE etc.) n=sequential number
dd=day of week (SU, MO, TU, WE etc.) n=sequential number/letter
depending on the half hour of the day during packing (i.e., it
will be 0-9 or A-Z depending on the time of day)
xxx=minute of the month in base 36 (using 0-9 and A-Z in all
Don't be surprised if the FILENAME.ddn formats don't follow the
actual day of the week. Some just cycle through 10 digits in the
'n' position and then begin the next day regardless of the day of
the week when the file is created.
Formats A,B and C seem acceptable to most systems. This comes from
observing the experiences of the wide variety of software in use in
IF you are in contact with a system that generates the infamous "short packets"
in archived mail files sent to you, note that some utils will choke on
these, and you will be unable to extract your mail from them! Contrary to the
comments of some, these short packets are NOT properly built according to
FTS (FidoNet Technical Standards) format!
HOW ARCHIVE FILES ARE NAMED
(apart from the extension, which we've already discussed):
Incoming and outgoing archived mail files use the following method for
the root portion of the name:
NNNN=sender's net number - receiver's net number
nnnn=sender's node number - receiver's node number
In both cases, the result is always expressed in 4 hexidecimal
Example: I am node 104/114. I am having mail transfers with
node 363/18. If I send an archived bundle to 363/18,
the result will be:
= -259 96 decimal
= FEFD 0060 hexidecimal
= FEFD0060.ext filename
If 363/18 sends something to me, on the other hand:
= 259 -96 decimal
= 0103 FFA0 hexidecimal
= 0103FFA0.ext filename
Both archiving and mailer software make use of this convention to determine
where things are headed for. However, if both incoming and outbound files
are present in the same directory, there can be some confusion! AVOID THIS!
The REAL problem is where both result in valid node numbers! I got caught
by this problem when working with node 104/115. Mail he would send me would
look like mail *destined* for 104/113. If I didn't take time to unarchive
incoming mail for 104/115, it would be forwarded to 104/113!
Watch for this, as neither archivers nor mailers really know which
direction things are headed! How did this happen?
= 0 1 decimal
= 0000 0001 hexidecimal
= 00000001.ext filename
Now, if this were an incoming file, it would be correctly interpreted as
a file *coming* from 104/115. But what if the mailer was asked to
deal with an outbound file instead? You'd get the following!
= 0 1 decimal
= 0000 0001 hexidecimal
= 00000001.ext filename
Well, you can see that an incoming file called 00000001.ext means it is
arriving from 104/115, but an *outbound* file to 104/113 has the same
exact name! Since archivers and mailers use your net number as you've
described it in some configuration file for these computations... well, you
can see how you can get in hot water in a hurry.
The fellow at 104/113 and I suffered through several days of this before the
obvious occured to me. Don't leave someone else as confused as I did.
THE SOLUTION TO ALL OF THIS IS TO AVOID PLACING INCOMING "FILES" AND OUTGOING
"MAIL" (INCLUDING FILES) IN THE SAME DIRECTORY!!! Use different directories
by specifying them differently in the configuration file used by your software.
How to Apply for a FidoNet Node Number
Although written specifically regarding FidoNet procedures, you'll find
that much of the information here in 101WAYS is applicable to beginning on
any amateur network. The same is true for the process of obtaining and
using your own node number.
First, you'll need to locate the Net Coordinator (sometimes known as the
NC) for the net you want to join. In the case of FidoNet and some others,
it is preferred that you join the net nearest your physical location unless
there is a substantial reason (long distance to nearest hub, etc.) that
makes it financially more reasonable to go outside your local area.
In order to find the NC, just locate any bulletin board in your area that
supports FidoNet (or your choice of another network). You'll want to talk
the local sysop out of a copy of the current Nodelist either via disk or
download. Quite a few network sysops make these lists available for download.
Next, you'll need to create a message with your software to the NC who
will always be the /0 node of any network. For example, let's say that you
local or nearest network is #104. You'd send your application for a node
number to 104/0. During the time until you receive an official number, use
something like node number 999 or 9999 to send your request. The request
should include at least the following information:
Your name and voice phone #
The name and location of your board
The phone number of your board
Hours of operation
Whether or not you are able to handle continuous (crash) mail
Baud rates supported [if 9600+, please include which version(s)]
Which mailer software you are using
Each of these items is important as all but your voice phone # are required
items for your own Nodelist entry.
After sending your request, you should be available for a NetMail response
from the NC during the hours you've specified for your system. He will
return with your net/node address. Don't forget that people take vacations
and the like, so be patient. However, it should NEVER take more than three
weeks to get your node number. If it does, follow up with another message
and perhaps a voice call.
FidoNet mailers most often make available the feature of the
"session password". Any two systems may agree in advance on a particular
password, and install it on their systems. Let's say that system 104/A
and 104/B agree and install a password (the same password would be
used on both systems). If 104/A calls 104/B, the mailer software makes
notices that a password is being used when calling 104/B, and presents
it's password to 104/B. If 104/B finds that the password exists in
its own list, it continues the session. Note that 104/A doesn't ask
for a password, as it assumes that since *it* dialed the call, the
system on the other end is the real one!
If some other system comes calling under the guise of 104/A, and is
unable to provide the mutually agreed upon password, 104/B will hang
up on this intruder - no file transfers of data will take place. Of
course, this would also occur if one or the other systems accidently
installed the wrong password, or no password for the other system.
Obviously, both systems must agree and continue to employ a password
for any transfers to take place.
Why? Well, there are some naughty boys and girls out there who'd like
nothing better than to create problems for someone - often just for
the sake of doing so. The session password guarantees that when
someone comes calling to deliver and pick up mail that they really
are who they claim to be... simple as that.
In Net 104, we have a local net sysop's echo. One of the rules
established by the echo moderator is that in order to participate
in the echo, all transfers to or from another system of the echo
must be done within the confines of "session passworded" sessions.
This provides our net with some degree of security, keeping some
ne'er-do-well from gaining any insight into our private conversations
regarding how we're operating the net, problems (and solutions) with
users, etc. I STRONGLY recommend it for any system with which you will
be regularly moving mail. Of course, it is impossible to establish
session passwords with every system that might ever place a call to
your system. That, in itself, represents a problem, but with a bit
of manual effort on your part, this can be handled as well.
First, you should be aware that it is relatively easy to do ALL of the
following on a good many netmail capable systems that have not been
properly configured for good security protection:
o Messages sent into echos that appear to be from you, on your system, that
were sent by other persons. All path and seen-by information is perfect,
and, in fact, the message is sent by your system without anyone logging
on to your system. If you have session passwording between you and your
echo hub, all the better, as the message will pass straight through into
the echo via that path! You may never see the message posted on your
own system, however!
o Files sent by your system to another system. Can be anything that the
user of the other system can correctly identify a path for, regardless of
whether or not you have set that path up for file requests.
o Destruction of your inbound echomail or netmail archive files if you have
not yet processed them.
o Bad NODEDIFF files - one clever thought was to change the phone number of
a sysop's echo hub to the sysop's own home voice telephone number. In
another case, one 15 year old changed many numbers in the net to 911.
You can imagine the problems this caused with emergency services.
o A wide variety of other nasty things, including having your system make
expensive 976- calls, forward mail to Norway... you name it.
These things are possible due to the fact that many sysops ordinarily un'ARC
archived NetMail files without manually reviewing their contents. I won't go
into the techniques involved in causing any of the above, but suffice it to
say, it is a relatively easy matter to do these things, and I have tested
most of them in cooperation with other systems in my net.
So, how do you protect yourself? The sysop has only one recourse
against such bad behavior... and by the way, it doesn't require another Fido
sysop to accomplish this ... anyone with a working knowledge of some mailer
software and a nodelist could probably accomplish what I've outlined. No, it
isn't session passwording, although that is essential in order to make the
technique described work.
This technique allows you to automate unpacking and tossing of mail from your
regular sources - if you use session passwords. It avoids automatic unpacking
of potential 'trojan' netmail archives, and offers some measure of protection
The downside to this method is that incoming netmail must be moved to the
secure directory and un'arc'd manually and inspected before you allow it to be
posted to your system. This may cause some delays on incoming traffic for
your users if you allow them access to netmail for their own use.
CHECK YOUR SOFTWARE! If it allows multiple directories to be used for
inbound archived mail files, USE THEM! You should only automatically
unpack mail from those systems with which you regularly do business, and
for which you have session passwords installed. ALL OTHER inbound
archived mail should be shuttled off to a separate inbound file area
and should be INSPECTED carefully before you move these inbound messages
into the regular message area for processing.
Index to be created at Revision 1.0 (release) of this document).