SSBBSS NETWORK  •  NODE 01  •  SSBBSS.ORG GUEST  •  LOGIN

> LESSON 2 OF 4

FIDONET TECHNICAL PROTOCOLS

The Technical Layer

FidoNet's governance — Policy 4, Zone Mail Hour, the nodelist hierarchy — describes how the network is organised as a human institution. The technical layer describes how messages actually move between nodes. At the Adept level, three components are essential: the EMSI handshake, the Binkp protocol, and SquishMail.

EMSI: The Session Handshake

EMSI (Electronic Mail Standards Initiative) is the protocol used to establish a FidoNet mailer session. When two FidoNet nodes connect — whether over dial-up or TCP/IP — EMSI is the handshake that:

  1. Identifies each system to the other (addresses, system names, SysOp names)
  2. Exchanges capability information (what session protocols this mailer supports)
  3. Negotiates what will be transmitted during this session

Before EMSI, FidoNet used older handshake protocols including the Bark protocol and the FTSC-0001 handshake. EMSI replaced these with a structured format that carries richer system information and supports more sophisticated session negotiation.

An EMSI handshake produces a detailed picture of both endpoints before a single byte of mail is transferred. Both mailers know each other's addresses, capabilities, and what files are being offered. The session then proceeds with both parties in agreement about what will happen.

Binkp: FidoNet Mail over TCP/IP

Binkp is a FidoNet mail transfer protocol designed specifically for TCP/IP networks.

As FidoNet nodes migrated from dial-up modem connections to internet connectivity, the traditional protocols — which assumed serial connections and modem handshakes — became awkward adaptations. Binkp was purpose-built for the TCP/IP environment:

  • Reliable mail exchange over a standard TCP connection
  • Efficient batching: multiple files transferred in a single session
  • Error detection and retransmission: corrupted data is detected and re-sent
  • EMSI-compatible session negotiation

Binkp is now the standard for FidoNet nodes connecting over the internet. A modern FidoNet node running on a Linux VPS uses Binkp to exchange mail with its uplink hub, over port 24554 by default.

The dial-up era protocols — Binkley, Opus, and their contemporaries — are preserved in historical documentation, but Binkp is what a FidoNet SysOp configures today.

SquishMail: The Message Base That Survived

SquishMail (universally called Squish) was written by Scott Dudley. It contributed two things that shaped FidoNet-capable BBS software for decades:

The Squish Message Base Format (SQBASE)

The Squish format is a linked-list message storage system supporting efficient random access and large message bases without the limitations of earlier formats. A Squish message base can hold millions of messages, support high-speed indexing, and pack new messages without rewriting the entire base.

The SQBASE format was adopted by a wide range of BBS platforms. Synchronet, Maximus, and others included native Squish support. When you read FidoNet echomail on a modern BBS, you may well be reading it from a Squish message base.

The Combined Tosser/Scanner

Squish also provided a combined mail tosser and scanner:

  • The tosser reads incoming FidoNet packets (compressed archives containing formatted message bundles) and distributes the messages to the correct local message areas
  • The scanner does the reverse: reads new messages from local areas and packages them into outbound FidoNet packets for delivery

Before combined tosser/scanners, these functions were separate programs that needed careful coordination. Squish unified them, and the design influenced every subsequent FidoNet mail processor.

The FidoNet Packet Format

FidoNet mail travels in packets — binary files following the Type 2 (and later Type 2+) format. Each packet contains:

  • A header identifying sender and receiver addresses
  • One or more message bundles, each containing message header data and body text

The mailer wraps outgoing packets in a ZIP archive (typically) before transmission; the receiving tosser unpacks the archive and processes the packets. This layered format — archive → packet → bundle → message — gave FidoNet its characteristic robustness: partial transmissions could be identified and retransmitted cleanly.