Telnet end of record option
Extracted elements (10)
The option was created because many interactive systems use normal data characters (e.g., carriage-return, line-feed, escape) to mark end of record, while others use special keys. This option provides a standard, unambiguous mechanism for communicating data unit boundaries over Telnet.
Use of EORs must be negotiated independently for each direction of the Telnet connection; it is probable both parties will use EORs if either does, but this is not required.
IAC DO END-OF-RECORD requests that the remote data sender start transmitting EOR codes, or confirms that EOR transmission is expected.
IAC DON'T END-OF-RECORD demands that the receiver stop or not start transmitting EORs with data.
IAC WILL END-OF-RECORD is sent by a party requesting permission to transmit EOR codes, or confirming it will begin doing so when transmitting data characters.
IAC WON'T END-OF-RECORD demands that the sender stop or refuse to begin transmitting EOR codes with data characters.
When END-OF-RECORD option is not in effect, a received IAC EOR command SHOULD be treated as a NOP, though IAC EOR SHOULD NOT normally be sent in this mode.
The END-OF-RECORD option is assigned command code 25. It is negotiated using standard Telnet WILL/WON'T/DO/DON'T option negotiation.
Default state is WON'T END-OF-RECORD / DON'T END-OF-RECORD, meaning EOR is not transmitted unless explicitly negotiated via WILL/DO exchange.
The end of record is indicated by the 2-octet sequence IAC EOR, where the EOR code is 239 (decimal, 0xEF). Implementations SHOULD send data up to and including the EOR code together to promote communication efficiency.