Before home internet, the packet bulletin board system (BBS) was how hams sent mail to each other across a region, a country or the world, entirely by radio. A message entered at one BBS hopped from system to system until it reached the one where its recipient picked up their mail.
This is the fourth post in the packet radio series. The first covered AX.25 and connected sessions, and the third covered APRS, which broadcasts to everyone. A BBS is the opposite of APRS: it’s built on connected sessions, and its whole job is to move one message, intact, to one place.
01 · Store and Forward
A BBS works like a post office that only opens when someone connects:
- A user connects to the BBS over a connected AX.25 session, the kind described in the first post, where every frame is acknowledged.
- They send a message: a personal message to one station, a bulletin for everyone, or formal traffic.
- The BBS stores it.
- On a schedule, or when something is waiting, the BBS connects to a neighbouring BBS and forwards it, and that system does the same, until the message reaches the BBS its address names.
- The recipient connects to their home BBS and reads it.
Nothing needs to be online end to end. Each hop is a separate session between two systems that only need to reach each other, which is why packet mail kept working over slow, intermittent links.
The common message types are P (personal), B (bulletin) and, for formal National Traffic System messages, T (traffic) [3].
02 · Full BBS and Personal Mailbox
A full-service BBS runs on a computer and handles many users, many bulletins, and forwarding to several neighbouring systems.
Many TNCs also contain a personal mailbox (PBBS), a small message store in the TNC’s own memory. It’s easy to underestimate. The Kantronics KPC-3 Plus manual, for example, describes a PBBS that holds messages for its owner, and that can reverse-forward messages into the local community BBS when that BBS asks for them, or be set to connect to the community BBS automatically and forward what it holds [3].
Messages entered into that PBBS over the radio are held until the owner releases them, and to be forwarded onward they need the full @BBS address, including the hierarchical part [3]. A PBBS is a mailbox that feeds a BBS network, not a replacement for one.
03 · Hierarchical Addresses
A packet mail address has two parts: the station the message is for, and the BBS where that station collects mail, followed by a hierarchical address that locates that BBS. Larry Kenney, WB9LOZ, gives the format and his own address as an example [1]:
addressee-call @ BBS-call.#local-area.state-province.country.continent
WB9LOZ @ W6PW.#NCA.CA.USA.NOAMThat reads: WB9LOZ, at the W6PW BBS, in the northern California local area (#NCA), California, USA, North America. A simpler address, such as the RI.USA.NOAM example in the KPC-3 Plus manual, leaves out the local area [3].
The order matters, and it’s the reverse of what many people assume. The BBS software tries to match the parts of the address against its forward file, the sysop’s list of where to send what, starting with the left-most item and moving right until something matches [1][2]. The AA4RE BBS manual’s example: for KB6RAA @ KB6RAA.CA.USA.NA, a forward file with only CA in it is enough to forward the message, but if KB6RAA were listed, that entry would win, because it’s further left [2].
So the most specific part of the address is tried first, and the continent is the fallback. A BBS that knows nothing about your local area still gets the message moving toward the right state, country or continent.
04 · How BBSes Forward to Each Other
Forwarding between BBSes is done by software, not people, over a connected session. Jean-Paul Roubelat, F6FBB, documented the protocol his FBB software uses. FBB also supports the older MBL/RLI forwarding protocol, and adds its own, faster one, described here [4].
The sending BBS proposes messages before sending any of them. A proposal names the message type, sender, destination BBS, recipient, a unique identifier and the size [4]:
FB P F6FBB FC1GHV.FFPC.FRA.EU FC1MVP 24657_F6FBB 1345FB P FC1CDC F6ABJ F6AXV 24643_F6FBB 5346FB B F6FBB FRA FBB 22_456_F6FBB 8548F>The receiving BBS answers each line in one reply [4]:
FS -+=That means: don’t send the first one, send the second, and defer the third (perhaps because it’s already arriving over another link). Up to five proposals go in one block, and FBB’s default block size for VHF is 10 KB. Sending several proposals at once and reversing direction after each block cuts down the turnarounds that dominate slow links [4].
BIDs and MIDs Stop Duplicates
The identifier in each proposal, such as 24657_F6FBB, is the message’s MID (for personal mail) or BID (for a bulletin) [4]. The protocol is built on this identification [4]. A bulletin can reach a BBS by several routes, so a BBS that already holds a message with that identifier declines the proposal, which is what stops bulletins circulating forever.
Compression
FBB’s protocol has an ASCII version and two binary compressed versions, each backwards compatible with the one before [4]. The compressed versions send messages compressed with LZHUF, with a CRC-16 to confirm the whole message arrived intact [4]. How much airtime compression saves depends on the message, since plain text compresses well and already-compressed data doesn’t.
05 · Who’s Responsible for a Forwarded Message
A message can pass through a dozen unattended systems on its way. Part 97 has a rule specifically for that, § 97.219, Message forwarding system [5]:
- The originator is primarily accountable. The control operator of the station that originated a message is primarily accountable for any rule violation in it.
- Forwarding stations aren’t, if it’s inadvertent. The control operators of forwarding stations that inadvertently retransmit violating communications aren’t accountable for them, but must stop once they become aware of them.
- The first forwarding station has a choice. The first station that accepts a message into the system must either authenticate the identity of the station it accepted it from, or accept accountability for violations in what it retransmits.
The rule doesn’t make that protection depend on any particular message filtering, and it doesn’t make the BBS operator a censor. It puts the weight on the originator and on the first system to accept the message.
The ordinary content rules still apply to everything on a BBS. Under § 97.113, for example, amateur stations can’t carry communications in which the station licensee or control operator has a pecuniary interest. There’s a narrow exception for notifying other hams that amateur apparatus is for sale or trade, as long as that’s not done on a regular basis [6]. That’s why “for sale” bulletins on packet are for personal ham gear, not a business’s stock.
06 · What a BBS Isn’t
It isn’t private. BBS mail crosses the air in plain text. Anyone monitoring the frequency during forwarding or a user session can read it, and Part 97 prohibits encoding messages to obscure their meaning, as the first post covered. Personal mail is addressed to one person, not hidden from everyone else. (That doesn’t make it a “public record” in any legal sense, which is a separate question.)
It isn’t automatically off-grid. A BBS network can run without the internet, but only if each station along the path has its own power and an RF path to the next. Some networks also forward between systems over internet links, which then become part of the path.
It isn’t gone. Local BBSes faded once everyone had email, but packet BBS networks haven’t disappeared. Whether there’s one in reach of your station is a local question, and your area’s packet or traffic net will know.
07 · Primary References and Citations
- Larry Kenney, WB9LOZ, Introduction to Packet Radio, Part 7: Packet Message Addressing, qsl.net. The hierarchical address format, the W6PW example, and left-to-right matching against the forward file.
- KL7GNG, The AA4RE Packet Bulletin Board System, user guide for version 2.12, qsl.net/pbpg. How the BBS code matches the left-most item in the address first, with the KB6RAA example.
- Kantronics, KPC-3 Plus User’s Guide, revision H, kantronics.com. PBBS reverse forwarding and automatic forwarding to a community BBS, held messages, hierarchical addresses (
RI.USA.NOAM), and NTS traffic addressing. - Jean-Paul Roubelat, F6FBB, FBB Forwarding Protocol, f6fbb.org. Proposals, the
FSreply, block size, BID/MID, the MBL/RLI protocol, and the compressed protocol versions. - 47 CFR § 97.219, Message forwarding system, eCFR.
- 47 CFR § 97.113, Prohibited transmissions, eCFR. Paragraph (a)(3) and its exception for apparatus for sale or trade.
Key Takeaways
Each Hop Is Its Own Session
A BBS stores a message and forwards it over separate connected sessions, one neighbour at a time. Nothing needs to be reachable end to end, which is why packet mail works over slow and intermittent links.
Addresses Are Read From the Left
BBS software matches the most specific part of a hierarchical address first, the BBS call or local area, and falls back toward the state, country and continent. A message keeps moving even when the next BBS doesn’t know your local area.
The Originator Answers for the Message
Under § 97.219 the station that originates a message is primarily accountable for it. Forwarding stations aren’t accountable for what they pass on inadvertently, and the first station to accept a message must authenticate its source or answer for it.