Bytes
Handling mismatched byte sizes in the Host-Host protocol
Postel, J., "Bytes", RFC 128, DOI 10.17487/RFC0128, April 1971, <https://www.rfc-editor.org/info/rfc128>.
@misc{rfc128,
series = {Request for Comments},
number = 128,
howpublished = {RFC 128},
publisher = {RFC Editor},
doi = {10.17487/RFC0128},
url = {https://www.rfc-editor.org/info/rfc128},
author = {J. Postel},
title = {{Bytes}},
pagetotal = 2,
year = 1971,
month = apr,
} RFC text
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
§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.