RFC 323

Formation of Network Measurement Group (NMG)

πŸ“… published March 1972, from ietf

Formation of Network Measurement Group (NMG) πŸ¦‹

Okay bestie, this is RFC 323 πŸŽ€ It's dated March 23, 1972, and it was written by Vint Cerf of UCLA-NMC, who was also the Chairman of NMG πŸ‘‘ It's numbered NIC 9630 in the NIC system. The original doesn't list a category or status, and it doesn't obsolete or update any other RFC.

The whole doc is about the NMG group's first meeting, which happened on March 17, 1972, at MIT project MAC πŸ’– Here's who was in the room:

A. Bhushan     - MIT/DMCG

V. Cerf        - UCLA/NMC, Chairman, NMG

S. Crocker     - ARPA/IPT

J. Forgie      - LL/TX-2

R. Metcalfe    - MIT/HARV/DMCG

M. Padlipsky   - MIT/MULTICS

J. Postel      - UCLA/NMC

J. Winett      - LL/67

The point of the meeting was to talk about the measurements they already had and the ones they were planning, for how the network and HOSTs behave 🧚 Let's go!! πŸ”₯


Okay so after what the doc calls a "ridiculously long discussion" (iconic 😭), they agreed to give links 159-191 to network measurement only. See RFC #317 for more. They also split them up like this:

         159-174  HOST DISCARD; co-operating HOSTS receiving messages on
                  these links will throw them away without generating an
                  error message.

         175-190  To be allocated as needed by V. Cerf - UCLA/NMC.

         191      To be used by IMPs to send measurement traffic
                  obtained from IMP statistics packages.

So basically, HOSTs that want to help with the HOST discard service should change their NCPs so they throw away every message that comes in on links 159-174. They shouldn't send an error back to the source HOST, because no connection is open on these links anyway πŸ™ˆ Literally no drama.

2. Process Discard 🧚

Even though nobody brought it up at the meeting, C. Kline at UCLA suggested a PROCESS DISCARD, also with some well-known socket number πŸ“ The goal is to study how Process-Process behavior works on the network. Main character energy for sure ✨

It would be super convenient if every co-operating HOST wrote a Process Discard program that just sits and waits for ICP on some standard socket number. Before anyone picks a number, though, there has to be a full survey of the well-known socket numbers at each HOST. Until then, no socket number gets proposed (see RFC #322) 🌸

3. NCP Statistics πŸ“Š

At the meeting it was clear that a few sites had already instrumented their NCPs, just out of curiosity πŸ‘€ Joel Winett at Lincoln Labs (360/67) is the big one here. He's tracking every connection that local TELNET users start, and he gathers these stats per connection:

  • a) Network connect time
  • b) NCP CPU time
  • c) Number of reads or writes on connection
  • d) Time stamps on:
    • first RFC, last RFC, first close, last close.
  • e) Number of messages and bits transmitted
  • f) Log of errors sent or received

MULTICS keeps summary stats too: how many regular (type 0) messages were sent and received, and how many irregular messages (anything that isn't type 0) were sent or received πŸ’œ

The NWG agreed to build a minimal NCP instrumentation procedure. It collects, for each HOST, data from a standard 24 hour period (for example, local midnight to local midnight) πŸŒ™ Here's what it grabs:

  • a. Total bits sent to HOST
  • b. Total bits received from HOST
  • c. Total messages sent to HOST
  • d. Total messages received from HOST and optionally
  • e. Average Round Trip delay on send connections to HOST

Only standard open connections (the ones that use the standard NCP protocol) count here. Measurement links and experimental NCP links don't, and link 0 is totally off the table πŸ™…β€β™€οΈ

There's also an optional measurement that gathers the distribution of message types over link 0 across ALL HOSTs, not broken down by HOST. It's meant to show how much control messages are being used, and ALLOC should be super prevalent πŸ¦‹

The stats from the last 24 hour sample period should be available from a process with a well-known (to be specified) socket number. It supports ICP and sends back one message in this format πŸ’–

                   16         16
               +----------+------------+
word 0         |  Day #   |  Time      |
               +----------+------------+
                  |            |
 1 - 365 (6 on leap year)      |______
                                      |
                                Time in minutes at which sample was
                                started.  Ranges from 0 (midnight) to 1439.

             8      8
          +--------+------+-------+----------+
word 1      | Source | Byte |   N   |  Format  |
            |   Host | Size |       |          |
            +--------+------+-------+----------+
                |       |       |       |_____________
     ___________|       |       |                     |
    |                   |       |                     |
Network                 |       |        +-----+-----+--+--+--+--+
Host number             |       |        |     |     |C |R |B |M |
                        |       |        +-----+-----+--+--+--+--+
                        |       |                     |  |  |  |
                        |       |                     |  |  | message
                        |    number of HOST           |  |  | statistics
                        |    related entries          |  |  |
                        |    in message               |  |  |__byte
                        |                             |  |  statistics
                        |                             |  |
            number of bits per                        |  |__average
            byte in byte statistics                   |  round-trip
                                                      |  time
                                                      |
                                                      |__control
                                                      message
                                                      distribution

The rest of the words depend on the Format byte setting, so here's how those are laid out πŸŽ€

                  <-------32--------->
                +---------------------+
                |   Foreign HOST #    |      always present
              / +---------------------+
              | |  messages received  |      if FORMAT bit M set
              | +---------------------+
              | |    Bytes received   |      if FORMAT bit B set
   N of these | +---------------------+
   entries    | |     message sent    |      if FORMAT bit M set
              | +---------------------+
              | |      Bytes sent     |      if FORMAT bit B set
              | +---------------------+
              \ |   Average delay     |      if FORMAT bit R set
                +---------------------+
                                             This is average RFNM
                                             delay in milliseconds

             8         24
          +-------+---------------+
          |  type |     Count     |     if FORMAT bit C set these
          +-------+---------------+     are link 0 control message
          |       |               |     distributions for the
          +-------+---------------+     sample period, cumulative
          |       |               |     over all HOSTs.  If a type is
          +-------+---------------+     not present, its count is
          |       |               |     assumed to be 0.
          +-------+---------------+
          |       |               |
          +-------+---------------+
          |       |               |
          +-------+---------------+
          |     . |       .       |
                .         .
                .         .
          +-------+---------------+
          |type   |    Count      |
          +-------+---------------+

The process that sends these stats keeps going until the whole sample has been sent, and then it closes both connections πŸ’… The process that asked for the connection in the first place should keep allocating space while it's available, until it gets a close request on the open connections. Then it answers with matching closes. The sending process shouldn't close until it has received a RFNM for the last message it wants to send 🫢

More coming in part 2, so stay tuned 🌈✨

6. Artificial traffic generator ✨

Okay so UCLA and Lincoln Labs both tried artificial traffic generators as a way to test network capacity 🧚. At Lincoln Labs, J. Forgie used the 360/67 to generate traffic from a normal user process. Depending on system load, he could keep traffic rates anywhere from 4800 bps to 38K bps πŸ’…. UCLA has had a generator for about a year and got transmission rates around 75K bps by using multiple links for parallel transmission πŸ”₯.

The NWG is obsessed with the idea of having these generators available at several HOSTs so they can artificially load the network 🫢. Ideally, generators could be started by a TELNET-like protocol and would let you specify:

  • a) Link #'s to send on
  • b) Destination: HOST's or IMP's discard
  • c) Inter-arrival time distribution for messages sent on each link (i.e. possibly different distribution for each link). Or at least average IAT for assumed exponential distribution. An average IAT of 0 would imply RFNM driven traffic
  • d) Message length distribution, or average, or fixed length for each link.

It would also be super helpful to accumulate average round-trip times and total bits sent for the duration of the experiment πŸ’œ.

At UCLA, the traffic generator lets you specify:

  • a) message header (includes link #)
  • b) message length (for each link) - distribution (can be constant for each link)
  • c) message inter-arrival time - distribution for each link
  • d) Duration of generation in seconds

We can also send imperative commands to the program to stop message generation prematurely πŸ›‘. Throughput and average response times (Round Trip delays) are automatically accumulated for each link and get published at the end of the experiment πŸ“Š.

A more sophisticated version will also let you specify the ICP socket number for the Process Discard experiments πŸŽ€. The idea is to have a bunch of artificial traffic generators at different sites and be able to start them up remotely from UCLA/NMC during a measurement experiment. More details of the desired generator will be published in another RFC πŸ“–.


7. Measurements at other sites 🌸

People at sites that aren't mentioned here may have done some measurement work too, and the NWG totally encourages them to publish their results πŸ™Œ. If anyone is interested in co-operating with the NWG on making NCP measurements (or what-have-you), please get in touch with:

        Vint Cerf
        UCLA-NMC Computer Science Department
        3804 Boelter Hall
        Los Angeles, California 90024

        (213) 825-4864
        (213) 825-2368
    [This RFC was put into machine readable form for entry]
[into the online RFC archives by HοΏ½lοΏ½ne Morin, ViagοΏ½nie, 12/99]
πŸ“¦ where this page comes from