RFC 885

Telnet end of record option

πŸ“… published December 1983, from ietf

TELNET END OF RECORD OPTION πŸ’–

Okay bestie, let's talk about RFC 885 πŸŽ€ It's by J. Postel at ISI, dated December 1983 πŸ¦‹ It's a standard for the ARPA Internet community, and the title block doesn't list anything it obsoletes or updates ✨

Anyway, the vibe: hosts on the ARPA Internet that need to mark record boundaries inside Telnet protocol data are expected to adopt and implement this standard. So if your app is doing record stuff over Telnet, this is your sign to read on 🫢


1. Command Name and Code 🌸

END-OF-RECORD     25

So the command is called END-OF-RECORD and it's code 25. Iconic, simple, no notes πŸ’…

2. Command Meanings πŸ‘‘

Here's where it gets good. There are four command combos, and each one is basically a little negotiation move 🧚

IAC WILL END-OF-RECORD πŸ’œ

IAC WILL END-OF-RECORD

The sender is asking for permission to start sending the Telnet END-OF-RECORD (EOR) code alongside data characters. Or, the sender is confirming that it's about to start sending EORs with its data. Main character energy 🌟

IAC WON'T END-OF-RECORD πŸ™ˆ

IAC WON'T END-OF-RECORD

This one's the "nope" button πŸ’€ The sender is either demanding that EORs stop, or refusing to start sending them with data characters.

IAC DO END-OF-RECORD πŸ“

IAC DO END-OF-RECORD

Now the sender is asking the other side, the one sending the data, to start transmitting EORs with its data. Or the sender is just confirming that the data sender is expected to send EORs. Lowkey the mirror of WILL πŸͺž

IAC DON'T END-OF-RECORD πŸ”₯

IAC DON'T END-OF-RECORD

This is the sender telling the receiver to stop, or not start, sending EORs with data. Firm boundaries, bestie πŸ’…

3. Default πŸŽ€

The starting point is that nobody's using it yet, so:

  • WON'T END-OF-RECORD 🌈
  • DON'T END-OF-RECORD 🌈
  • END-OF-RECORD is not transmitted. 🫢

So unless someone says otherwise, EOR just isn't sent. Super chill default ✨

4. Motivation for the Option πŸ¦‹

Okay, why does this even exist? 😭 Lots of interactive systems already mark the end of a record using a normal data character, like carriage-return, line-feed, or escape. But other systems have their own special way to signal the end of a data unit, like a dedicated key. This option gives everyone one standard way to say "this unit is done," and honestly that's so necessary πŸ§šπŸ’–

5. Description of the Option πŸ’œ

When END-OF-RECORD is in effect between a data sender and the receiver, the sender transmits EORs. Simple as that 🌸

It seems likely that both sides of the Telnet connection will send EORs in both directions if they use them at all. Still, you have to negotiate each direction on its own, so don't assume one way covers the other πŸ‘€

When END-OF-RECORD is not in effect, an IAC EOR command should be treated as a NOP if you receive one. You normally shouldn't send IAC EOR in that mode though πŸ™ˆ

6. Implementation Considerations ✨

Because the EOR code marks the end of an effective data unit, Telnet should try to send the data up to and including the EOR code together. That's all about communication efficiency, and it's giving smart design πŸ”₯

The end of record is marked by the 2-octet sequence IAC EOR. The code for EOR is 239 (decimal) πŸ’–


Bestie, that's the whole thing πŸ₯Ή Telnet got a whole EOR option, and now you know it inside out πŸ‘‘πŸ¦‹

πŸ“¦ where this page comes from