18
$\begingroup$

The PDF Draft LunaNet Interoperability Specification, LN-IS Baseline V001 September 2, 2021 (found at https://esc.gsfc.nasa.gov/projects/TEMPO?tab=lunanet) has found its way to the popular press.

4.2 LNSP-User Proximity Interfaces

Table 10 provides a summary of the different interfaces for transmitting AOS (Advanced Orbiting Systems) frames across proximity links. PFS5 and PRS5 are designed to allow for the implementation of one-to-many interfaces, such as a forward link broadcast and a user to multiple provider return.

In "Table 10 - LNSP–User Proximity Link Layer Service Interfaces" the coding and frame size columns contain the word "octets" and this term is not present anywhere else in the document, not even in the "Detailed Signal Definitions" section.

There is substantial discussion of codings and high priority messages will be "notionally formatted in Concise Binary Object Representation (CBOR) formatting to allow for increased processing and transfer speeds between LunaSAR users and LunaNet users."

Is "octet" just a fancy word for "byte" or is there a more rigorous, specific or technical definition?

Question: What is an "octet" in the context of NASA's LunaNET Interoperability Standard? ("internet on the Moon")


Related material and goodreads:

$\endgroup$
2
  • 1
    $\begingroup$ For a moment, I thought that you were asking about oktas (which might be relevant for a communication protocol for communicating between Earth and the Moon, if cloud cover risks interfering with the signals being transmitted). en.wikipedia.org/wiki/Okta $\endgroup$
    – nick012000
    Oct 18, 2021 at 8:28
  • 2
    $\begingroup$ Octet is a common term for an 8-bit byte. It is used in other communications standards such as IEEE 802.3, etc. $\endgroup$
    – user4574
    Oct 19, 2021 at 4:28

3 Answers 3

36
$\begingroup$

Is "octet" just a fancy word for "byte"

No, they mean very different things.

A "byte" is the smallest unit of addressable memory of a specific CPU architecture. That latter part right there is what makes using bytes utterly unsuitable for any sorts of interoperability specifications: the size of a byte depends on which CPU architecture you are talking about.

In mainstream computing, we had CPU architectures with 6, 7, 9, 10, 12, and 18 bits per byte. At the moment, most mainstream CPU architectures have 8 bits per byte.

However, even today, there are modern CPU architectures with 16 and 24 bit bytes, and there are architectures where the smallest unit of addressable memory is 1 bit, so we can either define those as having 1-bit-bytes or as having no bytes at all. There are architectures where the smallest unit of addressable memory is a word, so we can either define those as having 32/64-bit-bytes or as having no bytes at all. And there are architectures where the width of the memory unit being addressed is a parameter of the operation, ranging from 1 to wordsize, so we can either define those as having variable-width bytes or as having no bytes at all.

On the other hand, an octet is …

or is there a more rigorous, specific or technical definition?

… actually really, really simple. In fact, it is not even a particularly specific and/or technical definition.

It just uses the literal English meaning of the word, i.e. "a group of 8 things", where in this particular case, the "things" are bits. I.e. an octet is nothing more than what the word already naturally suggests: a group of 8 bits.

Really, all this is that the term "an octet of bits" is shortened to "octet" when it is clear from the context that we are talking about bits.

Question: What is an "octet" in the context of NASA's LunaNET Interoperability Standard? ("internet on the Moon")

A group of 8 bits, both within the context of NASA's LunaNET Interoperability Standard and in the wider IT domain. In particular, all Internet standards and RFCs use "octet", so it feels appropriate for "Lunar Internet" to do the same.

Interestingly, in some countries, the term "octet" is not only used in technical jargon, but is used by the general public as well. E.g. in French, Canadian French, and Romanian, it is uncommon to refer to "bytes". If you were to buy e.g. RAM or a hard disk, its size would be specified in Gio or Go, and nobody would think twice about it.

$\endgroup$
7
49
$\begingroup$

An octet is an 8-bit byte. Historically, "byte" wasn't always 8 bits (and still isn't, with some architectures having different byte sizes today); "octet" is unambiguous and widely used in Internet RFCs.

$\endgroup$
6
  • 20
    $\begingroup$ It's not history, BTW. There are still CPU architectures with 16 and 24 bit bytes, and there are architectures where the smallest unit of addressable memory is 1 bit, so we can either define those as having 1-bit-bytes or as having no bytes at all. There are architectures where the smallest unit of addressable memory is a word, so we can either define those as having 32/64-bit-bytes or as having no bytes at all. And there are architectures where the width of the memory unit being addresses is a parameter of the operation, ranging from 1 to wordsize, so we can either define those as having … $\endgroup$ Oct 17, 2021 at 7:47
  • 3
    $\begingroup$ … variable-width bytes or as having no bytes at all. Stuff gets weird outside of Intel and AMD real fast! $\endgroup$ Oct 17, 2021 at 7:48
  • 1
    $\begingroup$ @JörgWMittag I can’t find any info on “1-bit byte’’ / bit-addressable systems - can you link to an example? $\endgroup$
    – Dai
    Oct 18, 2021 at 19:34
  • 1
    $\begingroup$ en.wikipedia.org/wiki/1-bit_computing >Examples include the Goodyear MPP and the Connection Machine. By using a 1-bit architecture for the individual processors a very large array (e.g. the Connection Machine had 65,536 processors) could be constructed with the chip technology available at the time. In this case the slow computation of a 1-bit processor was traded off against the large number of processors. $\endgroup$ Oct 18, 2021 at 20:06
  • $\begingroup$ bit-addressable machine: There were some cool graphics processors back in the day. I don't recall the part number, but recall that the arcade game "Hard Drivin'" used one. I got to visit the manufacturer and did a product review, if anyone has copies of magazines from the '80's... $\endgroup$
    – JDługosz
    Oct 19, 2021 at 23:38
6
$\begingroup$

In English, the name byte, symbol B, is used as a synonym for octet. However, byte has been used for numbers of bits other than eight. To avoid the risk of confusion, it is strongly recommended that the name byte and the symbol B be used only for eight-bit bytes.

[The document proceeds to use "octet (or byte)" throughout.]

IEC 80000-13

Historically, byte meant "addressable unit of memory" aka "cell size" aka "minimum addressable unit" (MAU) and there were a variety of exotic "byte" sizes. Even still there are still some with alternative addressing, like Cray X1 which has a 64-bit MAU.

In any case, the "byte = MAU" definition ceased a long, long time ago, and now "byte = 8 bits," regardless of CPU or storage media. A "2,000,000 byte JPEG" is a legitimate, portable measurement of information size, whether in memory, on disk, or written on paper.

However, octet is usually considered the more formal/technical word, so you'll frequently see it used in those contexts.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.