GENWiki

Premier IT Outsourcing and Support Services within the UK

User Tools

Site Tools


rfc:ien:ien39
                                                             17 May 78

INTERNET Notebook

IEN: 39 J. Postel Section: 2.5.3.4.2 ISI

                                                           17 May 1978
                  NSW Data Representation (NSWB8)

Data transmitted between NSW processes is encoded into a standard form. This standard form, called NSWB8, is based on a few atomic data types and a list data type.

Data Structure Types and Encoding

 EMPTY
    TYPE (1 byte) = 1
    VALUE (none) empty
 BOOLEAN
    TYPE (1 byte) = 2
    VALUE (1 byte) boolean
    FALSE=0
    TRUE=1
 INDEX
    TYPE (1 byte) = 3
    VALUE (2 bytes) index
       The value represents a positive integer in the range 0 through
       2**16 - 1.
       The most significant byte is first.
 INTEGER
    TYPE (1 byte) = 4
    VALUE (4 bytes) two's complement integer
       The most significant byte is first.  [If we don't use (2**32-1)
       it will be easier on one's complement machines.]

Postel [page 1]

                                                             17 May 78

INTERNET Notebook NSW Data Representation (NSWB8)

 BITSTR
    TYPE (1 byte) = 5
    COUNT (2 bytes)
    VALUE (count bits) left adjusted in (count+7)/8 bytes
 CHARSTR
    TYPE (1 byte) = 6
    COUNT (2 bytes)
    VALUE (count bytes) ASCII text
 LIST
    TYPE (1 byte) = 7
    COUNT (2 bytes)
    Count Data Structures
 PAD
    TYPE (1 byte) = 9
    VALUE (none)
       Any PAD elements should be completely ignored.  They are not to
       be counted (for example as elements of a LIST).  The concept of
       a PAD element has been useful in forming data structures,
       especially when the structure cannot be built sequentially.
 The first byte of a data structure is a type code.  The following
 bytes depend on the type code.  The type code zero is reserved.  The
 type code 8 is reserved for possible use as REPEAT (data compression)
 element.

Postel [page 2]

                                                             17 May 78

INTERNET Notebook NSW Data Representation (NSWB8)

Data Structure Format

 element
  • —–*

empty * 1 *

  • —–*

1

  • —–*——–*

boolean * 2 * 0 or 1 * 0 for FALSE or 1 for TRUE

  • —–*——–*

1 1

  • —–*——-*

index * 3 * index * small nonnegative integer

  • —–*——-*

1 2

  • —–*——–*

integer * 4 *integer * two's complement integer

  • —–*——–*

1 4

  • —–*——-*——*

bitstr * 5 * count * bits *

  • —–*——-*——*

1 2 count (count+7)/8 bytes)

  • —–*——-*——*

charstr * 6 * count * text * Network ASCII

  • —–*——-*——*

1 2 count

  • —–*——-*——————*

list * 7 * count * count-structures *

  • —–*——-*——————*

1 2

Postel [page 3]

                                                             17 May 78

INTERNET Notebook NSW Data Representation (NSWB8)

Examples

 Empty
  • —–*
  • 1 *
  • —–*
 Boolean "TRUE"
  • —–*—–*
  • 2 * 1 *
  • —–*—–*
 Index "7"
  • —–*—–*—–*
  • 3 * 0 * 7 *
  • —–*—–*—–*
 Integer "-3"
  • —–*—–*—–*—–*—–*
  • 4 * 255 * 255 * 255 * 253 *
  • —–*—–*—–*—–*—–*
 Bit string "10001111101011"
  • —–*—–*—–*—–*—–*
  • 5 * 0 * 14 * 143 * 172 *
  • —–*—–*—–*—–*—–*
 Character string "ABCDE"
  • —–*—–*—–*—–*—–*—–*—–*—–*
  • 6 * 0 * 5 * A * B * C * D * E *
  • —–*—–*—–*—–*—–*—–*—–*—–*

Postel [page 4]

                                                             17 May 78

INTERNET Notebook NSW Data Representation (NSWB8)

 List of a character string "ABC" and a boolean "FALSE".
  • —–*—–*—–*—–*—–*—–*
  • 7 * 0 * 2 * 6 * 0 * 3 *
  • —–*—–*—–*—–*—–*—–*
  • —–*—–*—–*—–*—–*
  • A * B * C * 2 * 0 *
  • —–*—–*—–*—–*—–*

Postel [page 5]

/home/gen.uk/domains/wiki.gen.uk/public_html/data/pages/rfc/ien/ien39.txt · Last modified: 2001/06/25 18:41 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki