textfiles/bbs/FIDONET/JENNINGS/STANDARDS/fidonet.doc.txt
2021-04-15 13:31:59 -05:00

285 lines
11 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Tom Jennings
30 Apr 84
Fido #1: (415)-864-1418
Some preliminary ideas for the FidoNet. (If you<6F>
haven't heard, FidoNet is an intersystem message forwarding<6E>
system mostly for Fidos, but could be used for others as<61>
well.)
Please, don't worry about all the seeming complexity<74>
here. Most will go away. I have just typed everything I<>
could think of all at once, and not all is applicable.<2E>
(Besides, you're (probably) not gonna code it.)
There are some points that need ideas: mainly, how<6F>
to pay for it, how it will appear to callers trying to send<6E>
mail, and any mysterious operational type problems you see.<2E>
Like most of Fido, I imagine this too will be built with 90%<25>
suggestions.
If you have any ideas on this proposed system,<2C>
please leave me a note on Fido #1 at the above number.<2E>
Thanks.
O P E R A T I O N
From a callers point of view, the system will have<76>
one additional feature when entering a message. One way or<6F>
another the caller tells Fido which system the message is to<74>
be sent to. This could consist of a prompt (System A, B,<2C>
...) or some such thing. (Any ideas?)
In any case, mail will only work from a MAIL<49>
subdirectory. Messages left here will be like all other<65>
messages; readable or not, depending on the privacy, etc.<2E>
Replies can be left, etc, which get mailed in the same way.
It may be desirable to search this area for each<63>
user after signon, the same way message searching works now.<2E>
If old messages don't pile up like in other areas, this<69>
should be nice and fast.
There will not be any automatic confirmation of<6F>
received messages. It will be up to the user to do so, by<62>
mailing a message stating that is was received. Maybe it<69>
will be possible to confirm, by reading the RECV'D flag from<6F>
the message, but that won't go into the first one.
In the MAIL area, the usual message search<63>
("Messages to you" etc) should be adequate, if mail traffic<69>
is less than or the same as the current message traffic.
I M P L E M E N T A T I O N
The only change to Fido will be a new command line<6E>
parameter:
<number>/Y
<number>/W
/Y Is the hour of the day to start doing mail as<61>
opposed to normal BBS stuff. /W is the window width, in<69>
minutes, to do mail in. For example, 0200/Y 90/W says do<64>
mail from 2:00AM, for up to 90 minutes, i.e. until 3:30AM.<2E>
During this time, Fido will not accept any normal callers.<2E>
Also, outside these times, Fido will not accept mail. If no<6E>
switch is present, or the window is set too small (TBD) then<65>
it will not send or receive mail, like it does now.
Neither will it bump someone off if they happen to<74>
call just before the appointed time. However, as soon as<61>
they logoff, it will start handling mail if it's supposed<65>
to.
The mailer (the program that actually sends and<6E>
receives mail) is a seperate program. It is run from the<68>
batch file (RUNBBS.BAT) right after Fido.EXE. This works<6B>
like Control-C and errors do; via ERRORLEVEL. For instance,<2C>
the batch file might look like:
FIDO ... 0200/Y 90/W
IF ERRORLEVEL 4 GOTO MAIL
IF ERRORLEVEL 1 GOTO END
RUNBBS
MAIL:
MAILER 0200/Y 90/W
RUNBBS
END:
Like current Fidos, ERRORLEVEL is 0 if normal<61>
termination (caller hung up, etc) 1 if Control-C or stack<63>
overflow, 2 if disk file error (disk full, missing files,<2C>
etc) or 4, the new level for: "Time to do Mail".
If it's time to do mail, Fido exits with ERRORLEVEL<45>
4. If 4 or higher, it runs MAILER, which then runs<6E>
RUNBBS.BAT which starts it all over again. Otherwise, if 1<>
(or higher) it is an error, it goes to the end and stops.
When run, the mailer sits and waits for phone calls,<2C>
or if instructed to do so, (command line switches or a<>
command file, whatever) makes calls. If a human type caller<65>
calls, they will get a message to the effect "Waiting for<6F>
mail, please call back after <xxx>", where <xxx> is the end<6E>
of the window to wait for mail, and hang up on them. (The /W<>
and /Y switches will be duplicated in the mailer, for<6F>
reasons I'll not bother with now.)
C O S T
First, it is very important that we figure out what<61>
it would cost. This is the second most important part. The<68>
cheaper it is, the more likely FidoNet can be made operable.<2E>
However, no matter how cheap it is, if an ingenous way of<6F>
paying for it doesn't exist, then it all falls flat.
Right now, late night long distance (coast to coast)<29>
toll charges are about $13.00 per hour. ATT is proposing, as<61>
part of some other boring issue, lowering this to $10.00 per<65>
hour. This is quite cheap; a lot of messages can be sent in<69>
an hour.
I hereby declare the mail size unit to be the Cubit:
1 Cubit == 80 characters * (1200 / baud rate)
A cubit of mail sent at 300 baud will cost 4 times<65>
as much as one sent at 1200. When 4800 baud modems become<6D>
available, the price per cubit will drop.
Unlike commercial mail systems that are out for<6F>
profit, FidoNet's mail unit, the Cubit, is small enough to<74>
account for very small messages, but large enough not to be<62>
too small to account for. There are 12.8 cubits in a K byte.
An error checking transfer protocol is needed;<3B>
XMODEM will not be used, as transfer times routinely double<6C>
with long phone lines. (Dont want to pay for that.) More on<6F>
that later.
As an example, say we want to send a small (five<76>
lines, 64 characters per line) message from Los Angeles to<74>
New York. Each message has a header (to, from, date, etc)<29>
that consumes about 80 characters. Assume also that the<68>
transfer rate is 1200 baud, and also that the transmission<6F>
method has a 10% overhead.
Msg size: 4. Cubits
Message Overhead: 1. Cubit
Message Size: 5. Cubits
Message Size: 400. Characters
Cost Per Hour: 13.00 Dollars
Chars/Second: 120.0 (10 bits/char)
Cubits/Second: 1.3636.. (120sec / (cubit * 1.10))
Cubits/Hour: 4,909. (3600 sec * cubits/sec)
Cost/Cubit: 0.2648 Cents ($13.00/cubits/hr)
Sample Msg Cost: 1.324 Cents
Yes ... its cheap. Remember, this is pure cost, no<6E>
hardware maintenaince overhead, no payroll, no profit, etc.<2E>
Delivery time, nor even delivery, is garenteed. The above<76>
does NOT include any connect/disconnect or disk access<73>
overhead. However, it also does not count any savings from<6F>
text compression, which could save 10% to 40% maximum.<2E>
Probably more like 20% maximum in the real world.
P A Y I N G F O R A L L T H I S
This is the most serious problem. The technical part<72>
is easy! Also, BBS's in general are run more like little<6C>
fiefdoms than businesses, in the sense the are usually<6C>
operated privately, and almost never pay for themselves,<2C>
never mind make money! If FidoNet takes inordinate amounts<74>
of effort on the part of the sysop, it'll probably fold up<75>
due to that also.
There are a couple of ways this can be paid for, but<75>
none are really any good for typical free systems. (Note<74>
that receiving (accepting) mail costs nothing. FidoNet might<68>
be able to operate well with only a few well placed<65>
"benefactors", and work acceptably well with only local<61>
"paying" nodes, if mail is limited to say, an area code.)
IF YOU HAVE ANY IDEAS AT ALL ON THIS SUBJECT PLEASE<53>
LET ME KNOW!!!!!! THIS WILL MAKE OR BREAK THE FIDONET<45>
IDEA!!!!
In any case, some sort of accounting will have to be<62>
done. Except for very rare cases, mail will have to be paid<69>
for. The mailer will be able to account for each messages<65>
cost, length of transmission, etc. There must be a method<6F>
for limiting mail sent by a specific user, and a "sysop"<22>
type feature for relatively unlimited, or at least<73>
differently limited, mail. The information associated with a<>
peice of mail will have to be worked out in detail later,<2C>
and while not too complex (any complexity can be put upon<6F>
the mailer) it must be adequate for future expansion.
Presumably, not everyone will be allowed to forward<72>
mail indescriminately. That would be awful nice, but<75>
unfortunately not practical. There may be exceptions: for<6F>
instance, for a club-run system, you might want to let any<6E>
user send a fixed amount of mail over a fixed period of<6F>
time, say, a month. If it was a dues paying club, a number<65>
could be worked out that would accomodate this. Anything<6E>
beyond that amount would have to be accounted for by some<6D>
other method.
IDEA #1
Club-run systems. Basically, covered above.
IDEA #2
Private, pay-ahead system. While this is very<72>
workable, it means even more work for the sysop, and<6E>
probably some legal liability, like running a business,<2C>
unless the proper rigamarole wording is used, i.e.<2E>
"donations" not "charges".
No one will be able to send mail unless they mail<69>
some amount of money to the sysop. The amount donated is<69>
kept in a list maintained by the mailer, who subtracts the<68>
cost of the message from the balance. Usual warnings if not<6F>
enough, etc, and probably a warning when it reaches some<6D>
threshold.
T H E N E T W O R K
Might as well be trendy and use some network<72>
terminology here. Some of it's even handy.
The topography of FidoNet is in keeping with<74>
bulletin board philosophy; totally random and as little<6C>
organization as possible. Also, there is no control over the<68>
location of the various message nodes (mail send/receive<76>
systems).
My first thought was to pass mail over as short a<>
distance as possible; however, this is a waste of time, as<61>
late night long distance calls are charged on a per hour<75>
basis, and in any case the more transfers the higher<65>
likelyhood of messages getting lost.
Message delivery time, if all is well, should be<62>
overnight. If a system goes down, delays will be in<69>
increments of 24 hours.
There should also probably be a "broadcast" type<70>
message, that stops at each node. Also, there really isn't<>
anything stopping binary files from being mailed; they are<72>
not included here mainly because costs will skyrocket, but<75>
it would be a nice way to do Fido updates, etc.
So, my current idea (any other ideas at all<6C>
welcome!) is:
Each sender has a list of systems it can forward to.<2E>
This can be used to limit forwarding to non-toll call areas<61>
if desired. Also, this same list can be used to send mail<69>
destined for one system, to be sent to a different system,<2C>
for further forwarding. This allows cheapskates to let<65>
someone else make the toll calls. (If they in turn let it<69>
go) Also, it lets a well funded system forward mail for<6F>
other systems.
If there are messages destined for five different<6E>
systems, there will be five calls made (unless the<68>
abovementioned forwarding is done). This "nodeless" system<65>
is then relatively insensitive to down machines, etc, such<63>
that only mail for the down system will not be sent.
If the net gets tied up (everyone calling everone<6E>
else, for instance, though I think thats unlikely!) then<65>
some message forwarding can be done to lessen the traffic<69>
load between busy systems.