NIC NCP experiment
Statistics on network message patterns from 100 hours of NCP operation.
Deutsch, L.P., "NIC NCP experiment", RFC 550, DOI 10.17487/RFC0550, August 1973, <https://www.rfc-editor.org/info/rfc550>.
@misc{rfc550,
series = {Request for Comments},
number = 550,
howpublished = {RFC 550},
publisher = {RFC Editor},
doi = {10.17487/RFC0550},
url = {https://www.rfc-editor.org/info/rfc550},
author = {L.P. Deutsch},
title = {{NIC NCP experiment}},
pagetotal = 2,
year = 1973,
month = aug,
} RFC text
Network Working Group L.P. Deutsch
RFC # 550 PARC-MAXC
NIC # 17796 August 24, 1973
NIC NCP EXPERIMENT
For the past couple of weeks, the NIC NCP has been keeping statistics on
total incoming messages, incoming host-host control opcodes, and size of
outgoing messages. The results have been rather enlightening and, I
think, should be carefully considered by future implementors of NCPs for
servers. The statistics will be presented in a rather qualitative
fashion, since they were reset each time the system came up, but they
represent a total of about 100 hours of uptime, most of it during the
working day.
The total numbers of incoming and outgoing messages were almost
identical. There were about 5% more outgoing. There were slightly over
half as many incoming control opcodes processed as incoming messages; on
the assumption that no incoming control message had more than one
opcode, slightly over half the incoming messages were control messages.
The Opcode statistics were somewhat variable. In all cases the ALL
opcode accounted for the great majority, from a low of about 50% on
weekends to a high of 98% on a busy weekday. Almost all of the
remainder were NOPs. No other opcode ever accounted for more than 5%.
The output message statistics were taken as log2(message size): this
included 1 word of buffer header, 1 word of IMP header, and l word of
host header. As might be expected, 95% of all outgoing messages had l to
4 PDP-10 words (36-bit) of data. However, if one multiplies the count
for each bucket by the average message site for the bucket, the result
is that only 75% of all outgoing data was in the smallest message size:
the remaining data was spread out fairly evenly between the other
buckets.
I would draw the following conclusions from these statistics. First,
half the messages on the network appear to be ALLs. This suggests that
NCPs should give some thought to processing control messages
efficiently. Second, 95% of the messages are very short. This suggests
that elaborate buffering and queuing schemes are not likely to be
valuable, since the hypothetical gain in efficient use of the IMP is
probably swamped by the overhead within the host. Third, a sufficiently
large fraction of all data is in large messages (presumably file
transfers) that it is also necessary to deal with this situation
efficiently, e.g. a NCP which always sent l-character messages would not
be satisfactory.
The ARPANET has been in vigorous operation for a year or two, and many
NCPs have been written during this time (including a rewrite of the
TENEX NCP, which probably handles more traffic than all other NCPs
combined); to my knowledge, no one has bothered to gather these
statistics before. The total time invested in putting these
measurements into the NIC system was about half an hour (10
instructions). I find it regrettable that even those of us presumably
engaged in "computer science" have not found it necessary to confirm our
hypotheses about network operation by experiment an to improve our
theories on the basis of evidence.
[ This RFC was put into machine readable form for entry ]
[ into the online RFC archives by Alex McKenzie with ]
[ support from GTE, formerly BBN Corp. 10/99 ]
AI ELI5
On this page
§1Gathering the Data
RFC 550 reports on statistics gathered by the NIC's Network Control Program (NCP) implementation over approximately 100 hours of operation, mostly during working hours. The NCP is the software that controls how a Host communicates over the ARPANET. L.P. Deutsch at PARC documented counts of incoming messages, incoming host-host control opcodes (the instruction codes in control messages), and the sizes of outgoing messages. While the statistics were reset each time the system came up, the data represents a substantial period of real network operation and usage patterns.
The NIC computer kept track of every message it received and sent for about 100 hours. The author notes it only took about half an hour of programming to collect this data, but no one had bothered to measure this before.
§2Key Findings
The data revealed several surprising patterns. The total numbers of incoming and outgoing messages were almost identical, with only about 5% more outgoing messages than incoming. Control opcodes accounted for slightly over half of all incoming messages. The ALL opcode (a basic control operation) dominated the control opcode statistics, accounting for anywhere from about 50% of opcodes on weekends to as much as 98% on busy weekdays. Almost all other opcodes were NOPs (no operations). No other opcode ever accounted for more than 5% of traffic. Message size statistics showed that 95% of all outgoing messages contained only 1 to 4 PDP-10 words (36-bit words) of data. However, when considering the total amount of data transmitted, only 75% came from messages of the smallest size, with the remaining data spread fairly evenly across larger message sizes, suggesting that file transfers and data operations did use larger messages.
Control messages (checking that things are working) make up half of all messages. Almost all control messages are the simple ALL type. Most messages are tiny (1-4 words), but when you add up the total data, some of it comes in bigger chunks for file transfers.
§3Lessons for NCP Design
The author draws three major conclusions from this data. First, because half of all messages are control messages of the ALL type, NCP implementations should focus on processing control messages efficiently. Second, since 95% of messages are very short, elaborate buffering and queuing schemes are unlikely to provide significant benefits, because any gains in efficient IMP use would be swamped by overhead within the Host itself. Third, because a sufficiently large fraction of data comes in large messages (presumably file transfers), NCPs must also handle large transfers efficiently. An NCP that always sent single-character messages, for example, would not be satisfactory. The author notes that even those engaged in computer science had not previously found it necessary to confirm their hypotheses about network operation by experiment, and found it regrettable that these basic measurements had not been gathered earlier.
NCP designers should make control message handling fast, but don't need fancy buffering tricks for small messages. They do need to handle file transfers efficiently too. The author thinks it is sad that no one measured this before.