RFC 294

The Use of "Set Data Type" Transaction in File Transfer Protocol

πŸ“… published January 1972, from ietf

The Use of 'Set Data Type' Transaction in File Transfer Protocol πŸŽ€

  • RFC: 294 🌸
  • Network Working Group: dated 25 January 1972 πŸ“…
  • Author: Abhay Bhushan, MIT 🧚
  • NIC number: 8304
  • Categories: D.4, D.5, and D.7 πŸ’…
  • Updates: RFC 265 ✨

As mentioned in RFC 265, the opcode of '00' is set aside for the clarify the use of 'set data type' in file transfer operations. πŸ¦‹

In many systems, like Multics at MIT, there's no way to tell what kind of data (ASCII or numeric) is stored in a file πŸ™ˆ The handling is context dependent, so it depends on the situation. ASCII characters are stored as four 9-bit characters per 36-bit word, right justified with left most bit as zero. πŸ–₯️ Multics already has efficient conversion programs that turn its ASCII into Network ASCII, so it would be super useful for a user to tell the Multics server to convert data into Network ASCII during retrieve operations. πŸ”₯ The suggestion is to use the 'set data type' transaction for this. πŸ’–

The 'set data type' transaction that comes right before a retrieve request should be read by a server as the user wanting to receive their data in that form. If the server can't convert the data into the desired form, it should return a 'set data type' of

[ This RFC was put into machine readable form for entry ] [ into the online RFC archives by BBN Corp. under the ] [ direction of Alex McKenzie. 12/96 ]

The following examples should clarify the use of 'set data type' transactions. 🌈

1.

          USER                                             SERVER
          ----                                             ------
                    Set data type '02' (Network ASCII)
                    ------------------------------------->
                    Store File X
                    ------------------------------------->
                    File X (in Network ASCII)
                    ------------------------------------->
                    End of File
                    ------------------------------------->
                    Acknowledge
                    <-------------------------------------

                    Retrieve File X
                    ------------------------------------->
                    File X in Network ASCII
                    <-------------------------------------
                    End of File
                    <-------------------------------------

2.

          USER                                             SERVER
          ----                                             ------
                    Set data type'03' (EBCDIC)
                    ------------------------------------->
                    Retrieve File Y
                    ------------------------------------->
                    Set data type '00' ("bit-stream")
                    <-------------------------------------
                    File Y as stored (no conversion)
                    <-------------------------------------
                    End of File
                    <-------------------------------------

                    Set data type '02' (Network ASCII)
                    ------------------------------------->
                    Retrieve File Z
                    ------------------------------------->
                    File Z in Network ASCII
                    <-------------------------------------
                    End of File
                    <-------------------------------------

That's the whole vibe, bestie! πŸ’œ

πŸ“¦ where this page comes from