RFC 128 UNKNOWN PROTOCOLS · DATA TRANSFER

Bytes

Handling mismatched byte sizes in the Host-Host protocol

On rfc-editor.org ↗
PUBLISHED
April 1971
AUTHORS
J. Postel
STREAM
Legacy
DOI
10.17487/RFC0128

RFC text

Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                          J. Postel
Request for Comments: 128                                           UCLA
Category: C.2, D.                                       Computer Science
NIC #5844                                                     21 April 71
Obsoletes: none
Updates: none


                                 BYTES

   It is somewhat unclear what to do with the Byte size parameter now
   allowed by the 2nd level protocol.  I can conceive of an
   implementation in which the 3rd level programs never see this
   parameter.  Crocker implies in RFC 123 that control of this parameter
   is given to the 3rd level programs and that both sender and receiver
   may specify values of the byte size to the NCP.

   There are at least two interpretations if the sender and receiver
   specify different byte sizes.

   I.  The first is that the connection is illegal.

   II.  The second is that the NCP must parse the data stream on receipt
       from the network and into a buffer according to be byte size of
       the sender, and subsequently parse the data stream on transfer
       from the buffer to the receiver.  In this second case there are
       two sub cases.

       A. One is to consider bits as the basic unit.

          For example, if the sender specified byte size = 5 and the
          receiver specified byte size = 3 then

          Receiver                   NCP                    Sender
          -+---+---+---+---+      +--------+      +-----+-----+---
           |000|001|010|011| <--- | Buffer | <--- |00000|10100|11
          -+---+---+---+---+      +--------+      +-----+-----+---


       B. The other is to consider bytes as the significant unit and pad
          (on the right or left?) or truncate to make things fit, or
          other transformation.

   At UCLA-Computer Science we are contemplating allowing sender and
   receiver to specify different byte sizes and consider bits as the
   basic unit (Case II.A.).  This does not rule out our considering the
   second subcase (Case II.B.).  We may allow 3rd level programs to
   specify a library or user supplied routine to perform the
   transformation between sender and receiver bytes.  Perhaps these
   transformation routines would be written in the Data Reconfiguration
   Language.

         [ This RFC was put into machine readable form for entry ]
            [ into the online RFC archives by Duncan de Waal 03/98 ]

AI ELI5

On this page
PROBLEMThe Host-Host protocol allows the sender and receiver to each specify their preferred byte size, but it is unclear what should happen when they specify different sizes.
MECHANISMThree possible interpretations exist: the connection is illegal, the NCP buffers and re-parses data treating bits as the basic unit, or the NCP performs byte-level transformations.
AN UNRESOLVED QUESTIONUCLA-Computer Science proposed treating bits as the basic unit and allowing third-level programs to specify custom transformation routines for byte-level conversion when needed.

§1The Byte Size Question

The second-level Host-Host protocol allows both the sender and receiver to specify a preferred byte size for data transfer. The RFC points out that the protocol documentation is unclear about what should happen when these two specifications differ. There are at least two fundamentally different interpretations of this situation.

The network protocol lets both sides say how big they want their data chunks. But what happens if they disagree?

§2Interpretation One: Illegal Connection

One interpretation is that a connection where sender and receiver specify different byte sizes is simply illegal and should not be allowed. Under this view, both sides must agree on byte size before the connection can be established.

One answer: if they want different sizes, just say no to the connection.

§3Interpretation Two: NCP Transformation

The second interpretation is that the NCP must handle the mismatch by buffering and re-parsing the data stream. For example, if the sender uses 5-bit bytes and the receiver uses 3-bit bytes, the NCP receives data in 5-bit chunks, buffers them, then transfers them to the receiver in 3-bit chunks. This requires treating the data stream as a sequence of individual bits.

An alternative approach is to treat bytes as the significant unit and apply transformations: padding, truncating, or other conversions to make the data fit. UCLA-Computer Science considered using custom transformation routines specified by third-level programs, possibly written in the Data Reconfiguration Language.

Another answer: the network computer in the middle unpacks the sender's chunks and repacks them to fit the receiver's preferences.

§4References