My "unknown" theorem is about Client Server.
By the time the Client A user starts typing to Client B, it is between "known" to "known" end points.
Before you log in, or set up the telephone call, it is between "unknown" to "known" endpoints.
A server cannot initiate the connection to the client. So the Client Server protocols are typically request - respond. I could call this Doug Rice's "Unknown" theorem.
This diagram is important to me.
If A connects to B so B "knows" how to get back to A, and D connects to C. A can connect to C, to get to D
Consider the protocols over different time frames.
If you consider the protocol over the next microseconds, milli seconds, seconds, tens of seconds, classify if it is Client Server or Peer to Peer?
Also consider the spacial / geographic distant. UK PSTN Telephony used STD or Area codes.
endpoint A | endpoint B | endpoint C | endpoint D |
unknown | known | known | unknown |
Unknown to known must be Client Server
Peer to Peer need "known" to "known"
By the time the user starts typing, it is between "known" to "known" end points.
Before you log in, or set up the telephone call, it is between "unknown" to "known" endpoints.
The early history of BAUDOT from the 1870's is really interesting, as Time Division Multiplexing was used to share a telegraph wire.
http://www.computer-timeline.com/timeline/emile-baudot/ has some background.
https://www.rtty.com/England/fiveunits.htm and https://en.wikipedia.org/wiki/Time-division_multiplexing.
Sam Hallis has this: http://www.samhallas.co.uk/repository/telegraph/b6_baudot_multiplex.pdf -
http://www.samhallas.co.uk/telhist1/telehist2.htm - worth a read
multiplexer showing sync ring
Enough of that!
Starting a web page about modems with pictures from railway signalling may seem odd, but there is an analogy.
A user of a computer terminal connecting to a remote computer wants their typing to reach the remote computer, so there is a need for signalling between the terminal, and modems and remote computer.
The user wants to be happy that their typing is going to get to the far end and remote computer. It goes via many cables and boxes. The cables may be come disconnected and the modem boxes need to be powered up.
This signal allows the signal box communicate with the train. When it is horizontal, the train has to stop.
RS-232 has signals like: DTR , DSR and RTS and CTS.
The signal man uses the signal box levers to set the signals using rods and wires.
This picture of the block instrument allows the signal box ahead to report if the line ahead is blocked, clear, or "Train on Line"
A user of the terminal wants to know if the connection is "blocked", or "clear to type" or if typing has arrived at the computer.
[computer: [computer program]--[API]--[UART]--]--[RS232 cable]--[ DB25 connector ]--[modem]--[telephone system]--[modem]--[UART]--[computer program]
A user of the terminal is like the train driver, they want to hold back their typing until the connection is ready to accept their typing.
They may want to hold back their typing, if their typing is backing up. - "train on Line"
Examples My Unknown Theorem examples