Revision 5 as of 2006-12-19 21:02:38

Clear message

This document describes a protocol for a distributed-server communication system, tentatively called FMTP (Flexible Message Transfer Protocol).

The types of messaging this protocol could support include:

Architecture

Objects

Route negotiation

Messages

Public Objects

Abuse Prevention

Threads, or object relation

Example conversation (in plain english)

  1. Poe.net checks its cache for lost@lenore.org, but does not find it.

  2. Poe.net looks up the MX record for lenore.org, and finds mail.lenore.org
  3. Poe.net looks up fmtpkey.lenore.org, and caches the public key
  4. Poe.net connects to mail.lenore.org
    • Poe: Hi, I'm poe.net. Here's my hash.
    • Lenore checks its cache for a poe.net public key, but does not find it.
    • Lenore looks up fmtpkey.poe.net, and gets the public key.
    • Lenore verifies the hash
    • Lenore: Nice to meet you, poe.net. I am lenore.org. Here's my hash.
    • Poe verifies the hash
    • Poe: Do you know lost@lenore.org?

    • Lenore: This is lost@lenore.org. Connect to lost.lenore.org, port 8000 tcp

  5. Poe now has lost@lenore.org, and attempts to connect to lost.lenore.org

  6. Poe cannot reach lost.lenore.org, so reconnects to mail.lenore.org
    • Perhaps connections could be left open, either for a time period or until a connection limit is reached.
  7. Lenore uses an existing logged-in connection from lost@lenore.org