Files
openfsd/docs/about.md
Reese Norris 7556e5491a docs: rewrite FSD protocol docs for openfsd and modern VATSIM
Align about, protocol, CAPS, auth token, enumerations, and VATSIM auth
pages with current wire behavior, openfsd notes, and clearer structure.
2026-07-17 14:11:28 -04:00

2.4 KiB
Raw Blame History

About

The FSD protocol functions primarily as a message forwarder. Aside from a few direct clientserver interactions (login, METAR, capability advertisement, range fan-out, auth challenges), its main purpose is to relay messages between flight-simulator clients via a centralized server. This architecture is not peer-to-peer; all communication is routed through the central server.

FSD is a plaintext protocol that can be intercepted and analyzed with tools such as Wireshark. By default it operates on TCP port 6809, and its functionality can be tested with telnet:

telnet <FSD server address> 6809

Various implementations of FSD exist, each with unique protocol nuances. This site documents the modern VATSIM dialect. openfsd-specific behavior is called out where the server intentionally differs or is incomplete.

Wire conventions

  • FSD messages are plaintext lines ending with CR/LF (\r\n, 0x0d0a).
  • Effective character set on the wire is ISO/IEC 8859-1 (“Latin alphabet no. 1”).
  • Each message begins with a short packet identifier, followed by colon (:) delimited fields.
  • Numerical values are base-10 (or occasionally base-16) ASCII; no raw binary payload.
  • Clients are identified by plaintext aviation callsigns (e.g. N7938C, KSFO_TWR).
  • Most packets include From and To (source and recipient). To may be a callsign, SERVER, or a special group token (see Special Recipients).

Example: Server Identification ($DI)

$DISERVER:CLIENT:VATSIM FSD V3.43:d95f57db664f\r\n
Hexadecimal representation
00000000  24 44 49 53 45 52 56 45  52 3a 43 4c 49 45 4e 54   $DISERVE R:CLIENT
00000010  3a 56 41 54 53 49 4d 20  46 53 44 20 56 33 2e 34   :VATSIM  FSD V3.4
00000020  33 3a 64 39 35 66 35 37  64 62 36 36 34 66 0d 0a   3:d95f57 db664f..
Explanation
Piece Value Notes
Packet type $DI Server identification
From SERVER Reserved callsign for the server
To CLIENT Placeholder used before the client callsign is known
Version string VATSIM FSD V3.43 Human-readable server software version (format varies by server)
Initial challenge d95f57db664f Random hex data for VATSIM Auth
Terminator \r\n 0x0d 0x0a

Full packet catalog: Protocol.