RFC 42
Message Data Types
RFC 42: Message Data Types π
Network Working Group π Request for Comments: 42
okay so bestie, this one is from 31 March 1970 and it was written by E.I. Ancona at M.I.T. Lincoln Laboratory π§ the original doesn't list a category, and it doesn't say it obsoletes or updates anything, so there's no lineage info to add. it's just the OG message-types proposal, and it's giving foundational β¨
Proposal β¨
okay the main idea is super simple: we reserve the first eight bits of every normal message for a message data type. π¦ adopting this does NOT mean everyone agrees on which data types to use. it only sets up the rule that those first eight bits are not for user data. that's the whole vibe π
Discussion πΈ
here's a little picture of how the pieces fit together π
Socket Port
| | | ____________
| V V / \
V / \
|=| /==| |
-------(+)->|Y|-->< | |
|=| \==| |
| PROCESS |
| |
|=| /==| |
-------(-)->|X|<--< | |
|=| \==| |
\ /
\____________/
it's important to set up message conventions early, bestie π otherwise every pair of programs on the network ends up with its own random conventions and it becomes a total mess π
as network usage grows, network languages might show up to describe both the syntax and the semantics of messages π₯ but even before that happens, a simple move is to describe messages with a message type that both sender and receiver know how to read π«Ά
also, the currently running programs still have to keep working with this convention π so the plan is to write two system programs, called X and Y (we're going with "for lack of better names" energy π ). they'll put in the type info and test it, and they'll take it back out. basically they do transformations on the data, like changing character sets or number formats. and as the network grows, X and Y could get table driven, with the table set by the user β¨
Standard Types and Local Types π
we want two kinds of message data types: standard and local π
X and Y can't be expected to transform between every possible data representation and the representation of whatever machine they're running on π and adding a new representation shouldn't force a change to X or Y either. so only a fixed number of message types get meaning across the whole network. those are the standard types π
there are two classes of local types: MYLOCAL and YOURLOCAL π
MYLOCAL nmeans: this is type n in the sending host's set of types.YOURLOCAL nmeans: this is type n in the receiving host's set of types.
Conventions π§
one way to set up standard and local types is to make standard type 0 YOURLOCAL and standard type 1 MYLOCAL π¦ in those cases, the second byte holds the local type number.
local type 0 means user-specified, which is the iconic "contents unchanged and unchecked" move β¨ installations define their own local type numbers, and those are normally available from the Network Information Center π
so initially, every message sent to currently running programs is type 0, n, and every message received from them is type 1, n, where n is the local type number of the installation's character set π
Examples of Possible Standard Types πΈ
0. YOURLOCAL
1. MYLOCAL
2. U.S. Ascii
3. EBCDIC
4. Mod 33 TTY Ascii
5. Load table driven translator table #n. If, in the
future, the X and Y transformation boxes are table
driven, this gives the table. The table number n is
stored in the second byte of the message.
6. Use table driven translator table #n.
7. Network standard graphics message.
Examples of Local Types π
1. Local Character sets, e.g., Lincoln writer, DEC Ascii,
etc.
2. Graphics local messages, e.g., TX-2 Apex display
executive calls, GSAM.
π the original RFC was put into machine readable form for entry into the online RFC archives by Robbie Bennet, 11/98.
π¦ where this page comes from
- ietf: rfc42 1970-03
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms