summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc871.txt
blob: b42321463f477ad6d44475e9a11c518b36e11b00 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
---------^L


     < INC-PROJECT, MAP-PERSPECTIVE.NLS.14, >, 12-Aug-83 11:34 AMW
     ;;;;^L
     
     



     RFC 871                                            September 1982
                                                                M82-47







               A PERSPECTIVE ON THE ARPANET REFERENCE MODEL
     



     
     

     













                              M.A. PADLIPSKY
                           THE MITRE CORPORATION
                          Bedford, Massachusetts^L
     
     



                                 Abstract
     

     

          The paper, by one of its developers, describes the
     conceptual framework in which the ARPANET intercomputer
     networking protocol suite, including the DoD standard
     Transmission Control Protocol (TCP) and Internet Protocol (IP),
     were designed.  It also compares and contrasts several aspects of
     the ARPANET Reference Model (ARM) with the more widely publicized
     International Standards Organization's Reference Model for Open
     System Interconnection (ISORM).








































                                     i^L
          
     
     
     
              "A PERSPECTIVE ON THE ARPANET REFERENCE MODEL"

                              M. A. Padlipsky
     
     
     

                               Introduction

          Despite the fact that "the ARPANET" stands as the
     proof-of-concept of intercomputer networking and, as discussed in
     more detail below, introduced such fundamental notions as
     Layering and Virtualizing to the literature, the wide
     availability of material which appeals to the International
     Standards Organization's Reference Model for Open System
     Interconnection (ISORM) has prompted many new- comers to the
     field to overlook the fact that, even though it was largely
     tacit, the designers of the ARPANET protocol suite have had a
     reference model of their own all the long.  That is, since well
     before ISO even took an interest in "networking", workers in the
     ARPA-sponsored research community have been going about their
     business of doing research and development in intercomputer
     networking with a particular frame of reference in mind.  They
     have, unfortunately, either been so busy with their work or were
     perhaps somehow unsuited temperamentally to do learned papers on
     abstract topics when there are interesting things to be said on
     specific topics, that it is only in very recent times that there
     has been much awareness in the research community of the impact
     of the ISORM on the lay mind.  When the author is asked to review
     solemn memoranda comparing such things as the ARPANET treatment
     of "internetting" with that of CCITT employing the ISORM "as the
     frame of reference," however, the time has clearly come to
     attempt to enunciate the ARPANET Reference Model (ARM)
     publicly--for such comparisons are painfully close to comparing
     an orange with an apple using redness and smoothness as the
     dominant criteria, given the philosophical closeness of the CCITT
     and ISO models and their mutual disparities from the ARPANET
     model.

          This paper, then, is primarily intended as a perspective on
     the ARM.  (Secondarily, it is intended to point out some of the
     differences between the ARM and the ISORM. For a perspective on
     this subtheme, please see Note [1])  It can't be "the official"
     version because the ARPANET Network Working Group (NWG), which
     was the collective source of the ARM, hasn't had an official
     general meeting since October, 1971, and can scarcely be
     resurrected to haggle over it.  It does, at least, represent with
     some degree of fidelity the views of a number of NWG members as
     those views were expressed in NWG general meetings, NWG protocol
     design committee meetings, and private conversations over the
     intervening years. (Members of the current ARPA Internet Working
     Group, which applied


                                     1^L
     RFC 871                                            September 1982


     and adapted the original model to a broader arena than had
     initially been contemplated, were also consulted.)  That might
     not sound so impressive as a pronunciamento from an international
     standards organization, but the reader should be somewhat
     consoled by the consideration that not only are the views
     expressed here purported to be those of the primary workers in
     the field, but also at least one Englishman helped out in the
     review process.

                     Historical/Philosophical Context

          Although rigorous historians of science might quibble as to
     whether they were "invented" by a particular group, it is  an
     historical fact that many now widely-accepted, fundamental
     concepts of intercomputer networking were original to the ARPANET
     Network Working Group. [2]  Before attempting to appreciate the
     implications of that assertion, let's attempt to define its two
     key terms and then cite the concepts it alludes to:

          By "intercomputer networking"  we mean the attachment of
     multiple, usually general-purpose computer systems--in the sense
     of Operating Systems of potentially different manufacture (i.e.,
     "Heterogeneous Operating Systems")--to some communications
     network, or communications networks somehow interconnected, for
     the purpose of achieving resource sharing amongst the
     participating operating systems, usually called Hosts.  (By
     "resource sharing" we mean the  potential ability for programs on
     each of the Hosts to interoperate with programs on the other
     Hosts and for data housed on each of the Hosts to be made
     available to the other Hosts in a more general and flexible
     fashion than merely enabling users on each of the Hosts to be
     able to login to the other Hosts as if they were local; that is,
     we expect to do more than mere "remote access" to intercomputer
     networked Hosts.)  By "the ARPANET Network Working Group," we
     mean those system programmers and computer scientists from
     numerous Defense Advanced Research Projects Agency-sponsored
     installations whose home operating systems were intended to
     become early Hosts on the ARPANET.  (By "the ARPANET" we mean,
     depending on context, either that communications network
     sponsored by DARPA which served as proof-of-concept for the
     communications technology known as "packet switching," or,
     consistent with common usage, the intercomputer network which was
     evolved by the NWG that uses that communications network--or
     "comm subnet"--as its inter-Host data transmission medium.)

          The concepts of particular interest are as follows:  By
     analogy to the use of the term in traditional communications, the
     NWG decided that the key to the mechanization of the
     resource-sharing goal (which in turn had been posited in their
     informal charter)





                                     2^L
     RFC 871                                            September 1982


     would be "protocols" that Hosts would interpret both in
     communicating with the comm subnet and in communicating with each
     other.  Because the active entities in Hosts (the programs in
     execution) were widely referred to in Computer Science as
     "processes," it seemed clear that the mechanization of resource
     sharing had to involve interprocess communication; protocols that
     enabled and employed interprocess communication became, almost
     axiomatically, the path to the goal.  Perhaps because the
     limitations of mere remote access were perceived early on, or
     perhaps simply by analogy to the similar usage with regard to
     distinguishing between physical tape drives and tape drives
     associated with some conventionally-defined function like the
     System Input stream or the System Output stream in batch
     operating systems, the discernible communications paths (or
     "channels") through the desired interprocess communication
     mechanism became known as "logical connections"--the intent of
     the term being to indicate that the physical path didn't matter
     but the designator (number) of the logical connection could have
     an assigned meaning, just like logical tape drive numbers.
     Because "modularity" was an important issue in Computer Science
     at the time, and because the separation of Hosts and Interface
     Message Processors (IMP's) was a given, the NWG realized that the
     protocols it designed should be "layered," in the sense that a
     given set of related functions (e.g., the interprocess
     communication mechanism, or "primitives," as realized in a
     Host-to-Host protocol) should not take special cognizance of the
     detailed internal mechanics of another set of related functions
     (e.g., the comm subnet attachment mechanism, as realized in a
     Host-Comm Subnet Processor protocol), and that, indeed, protocols
     may be viewed as existing in a hierarchy.

          With the notion of achieving resource sharing via layered
     protocols for interprocess communication over logical connections
     fairly firmly in place, the NWG turned to how best to achieve the
     first step of intercomputer networking:  allowing a distant user
     to login to a Host as if local--but with the clear understanding
     that the mechanisms employed were to be generalizable to other
     types of resource sharing.  Here we come to the final fundamental
     concept contributed by the NWG, for it was observed that if n
     different types of Host (i.e., different operating systems) had
     to be made aware of the physical characteristics of m different
     types of terminal in order to exercise physical control over
     them--or even if n different kinds of Host had to become aware of
     the native terminals supported by m other kinds of Hosts if
     physical control were to remain local--there would be an
     administratively intractable "n x m problem."  So the notion of
     creating a "virtual terminal" arose, probably by analogy to
     "virtual memory" in the sense of something that "wasn't really
     there" but could be used as if it






                                     3^L
     RFC 871                                            September 1982


     were; that is, a common intermediate representation (CIR) of
     terminal characteristics was defined in order to allow the Host
     to which a terminal was physically attached to map the particular
     characteristics of the terminal into a CIR, so that the Host
     being logged into, knowing the CIR as part of the relevant
     protocol, could map out of it into a form already acceptable to
     the native operating system.  And when it came time to develop a
     File Transfer Protocol, the same virtualizing or CIR trick was
     clearly just as useful as for a terminal oriented protocol, so
     virtualizing became part of the axiom set too.

          The NWG, then, at least pioneered and probably invented the
     notion of doing intercomputer networking/resource sharing via
     hierarchical, layered protocols for interprocess communication
     over logical connections of common intermediate representations/
     virtualizations.  Meanwhile, outside of the ARPA research
     community, "the ARPANET" was perceived to be a major
     technological advance. "Networking" became the "in" thing.  And
     along with popular success came the call for standards; in
     particular, standards based on a widely-publicized "Reference
     Model for Open System Interconnection" promulgated by the
     International Standards Organization.  Not too surprisingly, Open
     System Interconnection looks a lot like resource sharing, the
     ISORM posits a layered protocol hierarchy, "connections" occur
     frequently, and emerging higher level protocols tend to
     virtualize; after all, one expects standards to reflect the state
     of the art in question.  But even if the ISORM, suitably refined,
     does prove to be the wave of the future, this author feels that
     the ARM is by no means a whitecap, and deserves explication--both
     in its role as the ISORM's "roots" and as the basis of a
     still-viable alternative protocol suite.

                              Axiomatization

          Let's begin with the axioms of the ARPANET Reference Model.
     Indeed, let's begin by recalling what an axiom is, in common
     usage: a principle the truth of which is deemed self-evident.
     Given that definition, it's not too surprising that axioms rarely
     get stated or examined in non-mathematical discourse.  It turns
     out, however, that the axiomatization of the ARM--as best we can
     recall and reconstruct it--is not only germane to the enunciation
     of the ARM, but is also a source of instructive contrasts with
     our view of the axiomatization of the ISORM.  (See [1] again.)

     Resource Sharing

          The fundamental axiom of the ARM is that intercomputer
     networking protocols (as distinct from communications network







                                     4^L
     RFC 871                                            September 1982


     protocols) are to enable heterogeneous computer operating systems
     ("Hosts") to achieve resource sharing.  Indeed, the session at
     the 1970 SJCC in which the ARPANET entered the open literature
     was entitled "Resource Sharing Computer Networks".

          Of course, as self-evident truths, axioms rarely receive
     much scrutiny.  Just what resource sharing is isn't easy to pin
     down--nor, for that matter, is just what Open System
     Interconnection is. But it must have something to do with the
     ability of the programs and data of the several Hosts to be used
     by and with programs and data on other of the Hosts in some sort
     of cooperative fashion.  It must, that is, confer more
     functionality upon the human user than merely the ability to log
     in/on to a Host miles away ("remote access").

          A striking property of this axiom is that it renders
     protocol suites such as "X.25"/"X.28"/ "X.29" rather
     uninteresting for our purposes, for they appear to have as their
     fundamental axiom the ability to achieve remote access only.  (It
     might even be a valid rule of thumb that any "network" which
     physically interfaces to Hosts via devices that resemble milking
     machines--that is, which attach as if they were just a group of
     locally-known types of terminals--isn't a resource sharing
     network.)

          Reference [3] addresses the resource sharing vs. remote
     access topic in more detail.

     Interprocess Communication

          The second axiom of the ARM is that resource sharing will be
     achieved via an interprocess communication mechanism of some
     sort.  Again, the concept isn't particularly well-defined in the
     "networking" literature.  Here, however, there's some
     justification, for the concept is fairly well known in the
     Operating Systems branch of the Computer Science literature,
     which was the field most of the NWG members came from.
     Unfortunately, because intercomputer networking involves
     communications devices of several sorts, many whose primary field
     is Communications became involved with "networking" but were not
     in a position to appreciate the implications of the axiom.

          A process may be viewed as the active element of a Host, or
     as an address space in execution, or as a "job", or as a "task",
     or as a "control point"--or, actually, as any one (or more) of at
     least 29 definitions from at least 28 reputable computer
     scientists.  What's important for present purposes isn't the
     precise definition (even if there were one), but the fact that
     the axiom's presence dictates the absence of at least one other
     axiom at the same level of





                                     5^L
     RFC 871                                            September 1982


     abstraction.  That is, we might have chosen to attempt to achieve
     resource sharing through an explicitly interprocedure
     communication oriented mechanism of some sort--wherein the
     entities being enabled to communicate were subroutines, or pieces
     of address spaces--but we didn't.  Whether this was because
     somebody realized that you could do interprocedure communication
     (or achieve a "virtual address space" or "distributed operating
     system" or some such formulation) on top of an interprocess
     communication mechanism (IPC), or whether "it just seemed
     obvious" to do IPC doesn't matter very much.  What matters is
     that the axiom was chosen, assumes a fair degree of familiarity
     with Operating Systems, doesn't assume extremely close coupling
     of Hosts, and has led to a working protocol suite which does
     achieve resource sharing--and certainly does appear to be an
     axiom the ISORM tacitly accepted, along with resource sharing.

     Logical Connections

          The next axiom has to do with whether and how to demultiplex
     IPC "channels", "routes", "paths", "ports", or "sockets".  That
     is, if you're doing interprocess communication (IPC), you still
     have to decide whether a process can communicate with more than
     one other process, and, if so, how to distinguish between the bit
     streams. (Indeed, even choosing streams rather than blocks is a
     decision.) Although it isn't treated particularly explicitly in
     the literature, it seems clear that the ARM axiom is to do IPC
     over logical connections, in the following sense:  Just as batch
     oriented operating systems found it useful to allow processes
     (usually thought of as jobs--or even "programs") to be insulated
     from the details of which particular physical tape drives were
     working well enough at a particular moment to spin the System
     Input and Output reels, and created the view that a reference to
     a "logical tape number" would always get to the right physical
     drive for the defined purpose, so too the ARM's IPC mechanism
     creates logical connections between processes.  That is, the IPC
     addressing mechanism has semantics as well as syntax.

          "Socket" n on any participating Host will be defined as the
     "Well-Known Socket" (W-KS) where a particular service (as
     mechanized by a program which follows, or "interprets", a
     particular  protocol [4]) is found.  (Note that the W-KS is
     defined for the "side" of a connection where a given service
     resides; the user side will, in  order to be able to demultiplex
     its network-using processes, of course assign different numbers
     to its "sides" of connections to a given W-KS.  Also, the serving
     side takes cognizance of the using side's Host designation as
     well as the proferred socket, so it too can demultiplex.)
     Clearly, you want free sockets as well as Well-Known ones, and we
     have them.  Indeed, at each level of the ARM






                                     6^L
     RFC 871                                            September 1982


     hierarchy the addressing entities are divided into assigned and
     unassigned sets, and the distinction has proven to be quite
     useful to networking researchers in that it confers upon them the
     ability to experiment with new functions without interfering with
     running mechanisms.

          On this axiom, the ISORM differs from the ARM.  ISORM
     "peer-peer" connections (or "associations") appear to be used
     only for demultiplexing, with the number assigned by the receive
     side rather than the send side.  That is, a separate protocol is
     intro- duced to establish that a particular "transport"
     connection will be used in the present "session" for some
     particular service.  At the risk of editorializing, logical
     connections seem much cleaner than "virtual" connections (using
     virtual in the sense of something that "isn't really there" but
     can be used as if it were, by analogy to virtual memory, as noted
     above, and in deference to the X.25 term "virtual circuit", which
     appears to have dictated the receiver-assigned posture the ISORM
     takes at its higher levels.) Although the ISORM view "works", the
     W-KS approach avoids the introduction of an extra protocol.

     Layering

          The next axiom is perhaps the best-known, and almost
     certainly the worst-understood.  As best we can reconstruct
     things, the NWG was much taken with the Computer Science buzzword
     of the times, "modularity".  "Everybody knew" modularity was a
     Good Thing.  In addition, we were given a head start because the
     IMP's weren't under our direct control anyway, but could possibly
     change at some future date, and we didn't want to be "locked in"
     to the then-current IMP-Host protocol.  So it was enunciated that
     protocols which were to be members of the ARM suite (ARMS, for
     future reference, although at the time nobody used "ARM", much
     less "ARMS") were to be layered.  It was widely agreed that this
     meant a given protocol's control information (i.e., the control
     information exchanged by counterpart protocol interpreters, or
     "peer entities" in ISORM terms) should be treated strictly as
     data by a protocol "below" it, so that you could invoke a
     protocol interpreter (PI) through a known interface, but if
     either protocol changed there would not be any dependencies in
     the other on the former details of the one, and as long as the
     interface didn't change you wouldn't have to change the PI of the
     protocol which hadn't changed.

          All well and good, if somewhat cryptic.  The important point
     for present purposes, however, isn't a seemingly-rigorous
     definition of Layering, but an appreciation of what the axiom
     meant in the evolution of the ARM.  What it meant was that we
     tried to come up






                                     7^L
     RFC 871                                            September 1982


     with protocols that represented reasonable "packagings" of
     functionality.  For reasons that are probably unknowable, but
     about which some conjectures will be offered subsequently, the
     ARM and the ISORM agree strongly on the presence of Layering in
     their respective axiomatizations but differ strikingly as to what
     packagings of functionality are considered appropriate.  To
     anticipate a bit, the ARM concerns itself with three layers and
     only one of them is mandatorily traversed;  whereas the ISORM,
     again as everybody knows, has, because of emerging "sub-layers",
     what must be viewed as at least seven layers, and many who have
     studied it believe that all of the layers must be traversed on
     each transmission/reception of data.

          Perhaps the most significant point of all about Layering is
     that the most frequently-voiced charge at NWG protocol committee
     design meetings was, "That violates Layering!" even though nobody
     had an appreciably-clearer view of what Layering meant than has
     been presented here, yet the ARMS exists.  We can only guess what
     goes on in the design meetings for protocols to become members of
     the ISORM suite (ISORMS), but it doesn't seem likely that having
     more layers could possibly decrease the number of arguments....

          Indeed, it's probably fair to say that the ARM view of
     Layering is to treat layers as quite broad functional groupings
     (Network Interface, Host-Host, and Process-Level, or
     Applications), the constituents of which are to be modular.
     E.g., in the Host-Host layer of the current ARMS, the Internet
     Protocol, IP, packages internet addressing--among other
     things--for both the Transmission Control Protocol, TCP, which
     packages reliable interprocess communication, and UDP--the less
     well-known User Datagram Protocol--which packages only
     demultiplexable interprocess communication ... and for any other
     IPC packaging which should prove desirable.  The ISORM view, on
     the other hand, fundamentally treats layers as rather narrow
     functional groupings, attempting to force modularity by requiring
     additional layers for additional functions (although the
     "classes" view of the proposed ECMA-sponsored ISORM Transport
     protocol tends to mimic the relations between TCP, UDP, and IP).

          It is, by the way, forcing this view of modularity by
     multiplying layers rather than by trusting the designers of a
     given protocol to make it usable by other protocols within its
     own layer that we suspect to be a major cause of the divergence
     between the ISORM and the ARM, but, as indicated, the issue
     almost certainly is not susceptible of proof.  (The less
     structured view of modularity will be returned to in the next
     major section.)  At any rate, the notion that "N-entities" must
     communicate with one another by means of "N-1 entities" does seem
     to us to take the ISORM out of its






                                     8^L
     RFC 871                                            September 1982


     intended sphere of description into the realm of prescription,
     where we believe it should not be, if for no other reason than
     that for a reference model to serve a prescriptive role levies
     unrealizable requirements of precision, and of familiarity with
     all styles of operating systems, on its expositors.  In other
     words, as it is currently presented, the ISORM hierarchy of
     protocols turns out to be a rather strict hierarchy, with
     required, "chain of command" implications akin to the Elizabethan
     World Picture's Great Chain of Being some readers might recall if
     they've studied Shakespeare, whereas in the ARM a cat can even
     invoke a king, much less look at one.

     Common Intermediate Representations

          The next axiom to be considered might well not be an axiom
     in a strict sense of the term, for it is susceptible of "proof"
     in some sense.  That is, when it came time to design the first
     Process-Level (roughly equivalent to ISORM Level 5.3 [5] through
     7) ARMS protocol, it did seem self-evident that a "virtual
     terminal" was a sound conceptual model--but it can also be
     demonstrated that it is.  The argument, customarily shorthanded
     as "the N X M Problem", was sketched above; it goes as follows:
     If you want to let users at remote terminals log in/on to Hosts
     (and you do--resource sharing doesn't preclude remote access, it
     subsumes it), you have a problem with Hosts' native terminal
     control software or "access methods", which only "know about"
     certain kinds/brands/types of terminals, but there are many more
     terminals out there than any Host has internalized (even those
     whose operating systems take a generic view of I/O and don't
     allow applications programs to "expect" particular terminals).

          You don't want to make N different types of Host/Operating
     System have to become aware of M different types of terminal.
     You don't want to limit access to users who are at one particular
     type of terminal even if all your Hosts happen to have one in
     common.  Therefore, you define a common intermediate
     representation (CIR) of the properties of terminals--or create a
     Network Virtual Terminal (NVT), where "virtual" is used by
     analogy to "virtual memory" in the sense of something that isn't
     necessarily really present physically but can be used as if it
     were.  Each Host adds one terminal to its set of supported types,
     the NVT--where adding means translating/mapping from the CIR to
     something acceptable to the rest of the programs on your system
     when receiving terminal-oriented traffic "from the net", and
     translating/mapping to the CIR from whatever your acceptable
     native representation was when sending terminal-oriented traffic
     "to the net".  (And the system to  which the terminal is
     physically attached does the same things.)







                                     9^L
     RFC 871                                            September 1982


          "Virtualizing" worked so well for the protocol in question
     ("Telnet", for TELetypewriter NETwork) that when it came time to
     design a File Transfer Protocol (FTP), it was employed again--in
     two ways, as it happens.  (It also worked so well that in some
     circles, "Telnet" is used as a generic term for "Virtual Terminal
     Protocol", just like "Kleenex" for "disposable handkerchief".)
     The second way in which FTP (another generic-specific) used
     Common Intermediate Representations is well-known: you can make
     your FTP protocol interpreters (PI's) use certain "virtual" file
     types in ARMS FTP's and in proposed ISORMS FTP's.  The first way
     a CIR was used deserved more publicity, though:  We decided to
     have a command-oriented FTP, in the sense of making it possible
     for users to cause files to be deleted from remote directories,
     for example, as well as simply getting a file added to a remote
     directory.  (We also wanted to be able to designate some files to
     be treated as input to the receiving Hosts' native "mail" system,
     if it had one.)  Therefore, we needed an agreed-upon
     representation of the commands--not only spelling the names, but
     also defining the character set, indicating the ends of lines,
     and so on.  In less time than it takes to write about, we
     realized we already had such a CIR: "Telnet".

          So we "used Telnet", or at any rate the NVT aspects of that
     protocol, as the "Presentation" protocol for the control aspects
     of FTP--but we didn't conclude from that that Telnet was a lower
     layer than FTP.  Rather, we applied the principles of modularity
     to make use of a mechanism for more than one purpose--and we
     didn't presume to know enough about the internals of everybody
     else's Host to dictate how the program(s) that conferred the FTP
     functionality interfaced with the program(s) that conferred the
     Telnet functionality.  That is, on some operating systems it
     makes sense to let FTP get at the NVT CIR by means of closed
     subroutine calls, on others through native IPC, and on still
     others by open subroutine calls (in the sense of replicating the
     code that does the NVT mapping within the FTP PI).  Such
     decisions are best left to the system programmers of the several
     Hosts.  Although the ISORM takes a similar view in principle, in
     practice many ISORM advocates take the model prescriptively
     rather than descriptively and construe it to require that PI's at
     a given level must communicate with each other via an "N-1
     entity" even within the same Host.  (Still other ISORMites
     construe the model as dictating "monolithic" layers--i.e., single
     protocols per level--but this view seems to be abating.)

          One other consideration about virtualizing bears mention:
     it's a good servant but a bad master.  That is, when you're
     dealing with the amount of traffic that traverses a
     terminal-oriented logical (or even virtual) connection, you don't
     worry much about how many CPU cycles you're "wasting" on mapping
     into and out of the NVT CIR; but





                                    10^L
     RFC 871                                            September 1982


     when you're dealing with files that can be millions of bits long,
     you probably should worry--for those CPU cycles are in a fairly
     real sense the resources you're making sharable.  Therefore, when
     it comes to (generic) FTP's, even though we've seen it in one or
     two ISORM L6 proposals, having only a virtual file conceptual
     model is not wise.  You'd rather let one side or the other map
     directly between native representations where possible, to
     eliminate the overhead for going into and out of the CIR--for
     long enough files, anyway, and provided one side or the other is
     both willing and able to do the mapping to the intended
     recipient's native representation.

     Efficiency

          The last point leads nicely into an axiom that is rarely
     acknowledged explicitly, but does belong in the ARM list of
     axioms: Efficiency is a concern, in several ways.  In the first
     place, protocol mechanisms are meant to follow the design
     principle of Parsimony, or Least Mechanism; witness the argument
     immediately above about making FTP's be able to avoid the double
     mapping of a Virtual File approach when they can.  In the second
     place, witness the argument further above about leaving
     implementation decisions to implementers.  In the author's
     opinion, the worst mistake in the ISORM isn't defining seven (or
     more) layers, but decreeing that "N-entities" must communicate
     via "N-1 entities" in a fashion which supports the interpretation
     that it applies intra-Host as well as inter-Host.  If you picture
     the ISORM as a highrise apartment building, you are constrained
     to climb down the stairs and then back up to visit a neighbor
     whose apartment is on your own floor.  This might be good
     exercise, but CPU's don't need aerobics as far as we know.

          Recalling that this paper is only secondarily about ARM
     "vs." ISORM, let's duly note that in the ARM there is a concern
     for efficiency from the perspective of participating Hosts'
     resources (e.g., CPU cycles and, it shouldn't be overlooked,
     "core") expended on interpreting protocols, and pass on to the
     final axiom without digressing to one or two proposed specific
     ISORM mechanisms which seem to be extremely inefficient.

     Equity

          The least known of the ARM axioms has to do with a concern
     over whether particular protocol mechanisms would entail undue
     perturbation of native mechanisms if implemented in particular
     Hosts.  That is, however reluctantly, the ARMS designers were
     willing to listen to claims that "you can't implement that in my
     system" when particular tactics were proposed and, however







                                    11^L
     RFC 871                                            September 1982


     grudgingly, retreat from a mechanism that seemed perfectly
     natural on their home systems to one which didn't seriously
     discommode a colleague's home system.  A tacit design principle
     based on equity was employed.  The classic example had to do with
     "electronic mail", where a desire to avoid charging for incoming
     mail led some FTP designers to think that the optionally
     mandatory "login" commands of the protocol shouldn't be mandatory
     after all.  But the commands were needed by some operating
     systems to actuate not only accounting mechanisms but
     authentication mechanisms as well, and the process which
     "fielded" FTP connections was too privileged (and too busy) to
     contain the FTP PI as well.  So (to make a complex story
     cryptic), a common name and password were advertised for a "free"
     account for incoming mail, and the login commands remained
     mandatory (in the sense that any Host could require their
     issuance before it participated in FTP).

          Rather than attempt to clarify the example, let's get to its
     moral:  The point is that how well protocol mechanisms integrate
     with particular operating systems can be extremely subtle, so in
     order to be equitable to participating systems, you must either
     have your designers be sophisticated implementers or subject your
     designs to review by sophisticated implementers (and grant veto
     power to them in some sense).

          It is important to note that, in the author's view, the
     ISORM not only does not reflect application of the Principle of
     Equity, but it also fails to take any explicit cognizance of the
     necessity of properly integrating its protocol interpreters into
     continuing operating systems.  Probably motivated by Equity
     considerations, ARMS protocols, on the other hand, represent the
     result of intense implementation discussion and testing.

                               Articulation

          Given the foregoing discussion of its axioms, and a reminder
     that we find it impossible in light of the existence of dozens of
     definitions of so fundamental a notion as "process" to believe in
     rigorous definitions, the ARPANET Reference Model is not going to
     require much space to articulate.  Indeed, given further the
     observation that we believe reference models are supposed to be
     descriptive rather than prescriptive, the articulation of the ARM
     can be almost terse.

          In order to achieve efficient, equitable resource sharing
     among dissimilar operating systems, a layered set of interprocess
     communication oriented protocols is posited which typically
     employ common intermediate representations over logical
     connections.  Three






                                    12^L
     RFC 871                                            September 1982


     layers are distinguished, each of which may contain a number of
     protocols.

          The Network Interface layer contains those protocols which
     are presented as interfaces by communications subnetwork
     processors ("CSNP"; e.g., packet switches, bus interface units,
     etc.)  The CSNP's are assumed to have their own protocol or
     protocols among themselves, which are not directly germane to the
     model.  In particular, no assumption is made that CSNP's of
     different types can be directly interfaced to one another; that
     is, "internetting" will be accomplished by Gateways, which are
     special purpose systems that attach to CSNP's as if they were
     Hosts (see also "Gateways" below). The most significant property
     of the Network Interface layer is that bits presented to it by an
     attached Host will probably be transported by the underlying
     CSNP's to an addressed Host (or Hosts) (i.e., "reliable" comm
     subnets are not posited--although they are, of course, allowed).
     A Network layer protocol interpreter ("module") is normally
     invoked by a Host-Host protocol PI, but may be invoked by a
     Process Level/Applications protocol PI, or even by a Host process
     interpreting no formal protocol whatsoever.

          The Host-Host layer contains those protocols which confer
     interprocess communication functionality.  In the current
     "internet" version of the ARM, the most significant property of
     such protocols is the ability to direct such IPC to processes on
     Hosts attached to "proximate networks" (i.e., to CSNP's of
     various autonomous communications subnetworks) other than that of
     the Host at hand, in addition to those on a given proximate net.
     (You can, by the way, get into some marvelous technicoaesthetic
     arguments over whether there should be a separate Internet layer;
     for present purposes, we assume that the Principle of Parsimony
     dominates.)  Another significant property of Host-Host protocols,
     although not a required one, is the ability to do such IPC over
     logical connections. Reliability, flow control, and the ability
     to deal with "out-of-band signals" are other properties of
     Host-Host protocols which may be present.  (See also "TCP/IP
     Design Goals and Constraints", below.) A Host-Host PI is normally
     invoked by a Process Level/Applications PI, but may also be
     invoked by a Host process interpreting no formal protocol
     whatsoever.  Also, a Host need not support more than a single,
     possibly notional, process (that is, the code running in an
     "intelligent terminal" might not be viewed by its user--or even
     its creator--as a formal "process", but it stands as a de facto
     one).

          The Process Level/Applications layer contains those
     protocols which perform specific resource sharing and remote
     access functions such as allowing users to log in/on to foreign
     Hosts, transferring files, exchanging messages, and the like.
     Protocols in this layer




                                    13^L
     RFC 871                                            September 1982


     will often employ common intermediate representations, or
     "virtual- izations", to perform their functions, but this is not
     a necessary condition.  They are also at liberty to use the
     functions performed by other protocols within the same layer,
     invoked in whatever fashion is appropriate within a given
     operating system context.

          Orthogonal to the layering, but consistent with it, is the
     notion that a "Host-Front End" protocol (H-FP), or "Host-Outboard
     Processing Environment" protocol, may be employed to offload
     Network and Host-Host layer PI's from Hosts, to Outboard
     Processing Environments (e.g., to "Network Front Ends", or to
     BIU's, where the actual PI's reside, to be invoked by the H-FP as
     a distributed processing mechanism), as well as portions of
     Process Level/Applications protocols' functionality.  The most
     significant property of an H-FP attached Host is that it be
     functionally identical to a Host with inboard PI's in operation,
     when viewed from another Host. (That is, Hosts which outboard
     PI's will be attached to in a flexible fashion via an explicit
     protocol, rather than in a rigid fashion via the emulation of
     devices already known to the operating system in question.)

          Whether inboard or outboard of the Host, it is explicitly
     assumed that PI's will be appropriately integrated into the
     containing operating systems.  The Network and Host-Host layers
     are, that is, effectively system programs (although this
     observation should not be construed as implying that any of their
     PI's must of necessity be implemented in a particular operating
     system's "hard-core supervisor" or equivalent) and their PI's
     must be able to behave as such.

                               Visualization

          Figures 1 and 2 (adapted from [6]) present, respectively, an
     abstract rendition of the ARPANET Reference Model and a
     particular version of a protocol suite designed to that model.
     Just as one learns in Geometry that one cannot "prove" anything
     from the figures in the text, they are intended only to
     supplement the prose description above.  (At least they bear no
     resemblance to highrise apartment houses.)

                    TCP/IP Design Goals and Constraints

          The foregoing description of the ARM, in the interests of
     conciseness, deferred detailed discussion of two rather relevant
     topics:  just what TCP and IP (the Transmission Control Protocol
     and the Internet Protocol) are "about", and just what role
     Gateways are







                                    14^L
     RFC 871                                            September 1982


     expected to play in the model.  We turn to those topics now,
     under separate headings.

          As has been stated, with the success of the ARPANET [7] as
     both a proof-of-concept of intercomputer resource sharing via a
     packet-switched communications subnetwork and a (still)
     functional resource sharing network, a number of other bodies,
     research and commercial, developed "their own networks."  Often
     just the communications subnetwork was intended, with the goal
     being to achieve remote access to attached Hosts rather than
     resource sharing among them, but nonetheless new networks
     abounded.  Hosts attached to the original ARPANET or to DoD nets
     meant to be transferences of ARPANET technology should, it was
     perceived in the research community, be able to do resource
     sharing (i.e., interpret common high level protocols) with Hosts
     attached to these other networks. Thus, the first discernible
     goal of what was to become TCP/IP was to develop a protocol to
     achieve "internetting".

          At roughly the same time--actually probably chronologically
     prior, but not logically prior--the research community came to
     understand that the original ARPANET Host-Host Protocol or AH-HP
     (often miscalled NCP because it was the most visible component of
     the Network Control Program of the early literature) was somewhat
     flawed, particularly in the area of "robustness."  The comm
     subnet was not only relied upon to deliver messages accurately
     and in order, but it was even expected to manage the transfer of
     bits from Hosts to and from its nodal processors over a hardware
     interface and "link protocol" that did no error checking.  So,
     although the ARPANET-as-subnet has proven to be quite good in
     managing those sorts of things, surely if internetting were to be
     achieved over subnets potentially much less robust than the
     ARPANET subnet, the second discernible goal must be the
     reliability of the Host-to-Host protocol.  That is, irrespective
     of the properties of the communications subnetworks involved in
     internetting, TCP is to furnish its users--whether they be
     processes interpreting formal protocols or simply processes
     communicating in an ad hoc fashion--with the ability to
     communicate as if their respective containing Hosts were attached
     to the best comm subnet possible (e.g., a hardwired connection).

          The mechanizations considered to achieve reliability and
     even those for internetting were alien enough to AH-HP's style,
     though, and the efficiency of several of AH-HP's native
     mechanisms (particularly Flow Control and the notion of a Control
     Link) had been questioned often enough, that a good Host-Host
     protocol could not be a simple extension of AH-HP.  Thus, along
     with the desire for reliability came a necessity to furnish a
     good Host-Host protocol, a






                                    15^L
     RFC 871                                            September 1982


     design goal easy to overlook.  This is a rather subtle issue in
     that it brings into play a wealth of prior art.  For present
     purposes, in practical terms it means that the "good" ideas
     (according to the technical intuition of the designers) of
     AH-HP--such as sockets, logical connections, Well-Known Sockets,
     and in general the interprocess communication premise--are
     retained in TCP without much discussion, while the "bad" ideas
     are equally tacitly jettisoned in favor of ones deemed either
     more appropriate in their own right or more consistent with the
     other two goals.

          It could be argued that other goals are discernible, but the
     three cited--which may be restated and compressed as a desire to
     offer a good Host-Host protocol to achieve reliable
     internetting--are challenging enough, when thought about hard for
     a few years, to justify a document of even more than this one's
     length.  What of the implied and/or accepted design constraints,
     though?

          The first discernible design constraint borders on the
     obvious: Just as the original ARPANET popularized
     packet-switching (and, unfortunately to a lesser extent, resource
     sharing), its literature popularized the notion of "Layering."
     Mechanistically, layering is easy to describe:  the control
     information of a given protocol must be treated strictly as data
     by the next "lower" protocol (with processes "at the top," and
     the/a transmission medium "at the bottom"), as discussed earlier.
     Philosophically, the notion is sufficiently subtle that even
     today researchers of good will still argue over what "proper"
     layering implies, also as discussed earlier.  For present
     purposes, however, it suffices to observe the following:
     Layering is a useful concept.  The precise set of functions
     offered by a given layer is open to debate, as is the precise
     number of layers necessary for a complete protocol suite to
     achieve resource sharing.  (Most researchers from the ARPANET
     "world" tend to think of only three layers--the process,
     applications, or user level; the Host-Host level; and the network
     level--though if pressed they acknowledge that "the IMPs must
     have a protocol too."  Adherents of the International Standards
     Organization's "Open System Interconnection" program--which
     appears to be how they spell resource sharing--claim that seven
     is the right number of levels--though if pressed they acknowledge
     that "one or two of them have sublevels."  And adherents of the
     Consultative Committee for International Telephony and Telegraphy
     don't seem particularly concerned with resource sharing to begin
     with.)  At any rate, TCP and IP are constrained to operate in a
     (or possibly in more than one) layered protocol hierarchy.
     Indeed, although it is not the sole reason, this fact is the
     primary rationale for separating the internetting mechanization
     into a discrete protocol (the Internet Protocol: IP).  In other
     words, although designed




                                    16^L
     RFC 871                                            September 1982


     "for" the ARM, TCP and IP are actually so layered as to be useful
     even outside the ARM.

          It should be noted that as a direct consequence of the
     Layering constraint, TCP must be capable of operating "above" a
     functionally- equivalent protocol other than IP (e.g., an
     interface protocol directly into a proximate comm subnet, if
     internetting is not being done), and IP must be capable of
     supporting user protocols other than TCP (e.g., a non-reliable
     "Real-Time" protocol).

          Resisting the temptation to attempt to do justice to the
     complexities of Layering, we move on to a second design
     constraint, which also borders on the obvious:  Only minimal
     assumptions can be made about the properties of the various
     communications subnetworks in play.  (The "network" composed of
     the concatenation of such subnets is sometimes called "a
     catenet," though more often--and less picturesquely--merely "an
     internet.")  After all, the main goal is to let processes on
     Hosts attached to, essentially, "any old (or new) net"
     communicate, and to limit that communication to processes on
     Hosts attached to comm subnets that, say, do positive
     acknowledgments of message delivery would be remiss. [8]

          Given this constraint, by the way, it is quite natural to
     see the more clearly Host-to-Host functions vested in TCP and the
     more clearly Host-to-catenet functions vested in IP.  It is,
     however, a misconception to believe that IP was designed in the
     expectation that comm subnets "should" present only the "lowest
     common denominator" of functionality; rather, IP furnishes TCP
     with what amounts to an abstraction (some would say a
     virtualization--in the ARPANET Telnet Protocol sense of
     virtualizing as meaning mapping from/to a common intermediate
     representation to/from a given native representation) of the
     properties of "any" comm subnet including, it should be noted,
     even one which presents an X.25 interface.  That is, IP allows
     for the application to a given transmission of whatever generic
     properties its proximate subnet offers equivalents for; its
     design neither depends upon nor ignores the presence of any
     property other than the ability to try to get some packet of bits
     to some destination, which surely is an irreducible minimum for
     the functionality of anything one would be willing to call a
     network.

          Finally, we take note of a design constraint rarely
     enunciated in the literature, but still a potent factor in the
     design process: Probably again stemming from the popularity of
     the original ARPANET, as manifested in the number of types of
     Hosts (i.e., operating systems) attached to it, minimal
     assumptions are made about the nature or even the "power" of the
     Hosts which could implement TCP/IP.  Clearly, some notion of
     process is necessary if there is to



                                    17^L
     RFC 871                                            September 1982


     be interprocess communication, but even here the entire Host
     might constitute a single process from the perspective of the
     catenet. Less clearly, but rather importantly, Hosts must either
     "be able to tell time" or at least be able to "fake" that
     ability; this is in order to achieve the reliability goal, which
     leads to a necessity for Hosts to retransmit messages (which may
     have gotten lost or damaged in the catenet), which in turn leads
     to a necessity to know when to retransmit.  It should be noted,
     however, that this does not preclude a (presumably quite modestly
     endowed) Host's simply going into a controlled loop between
     transmissions and retransmitting after enough megapasses through
     the loop have been made--if, of course, the acknowledgment of
     receipt of the transmission in question has not already arrived
     "in the meantime."

          To conclude with a formulation somewhere between the concise
     and the terse, TCP/IP are to constitute a means for processes on
     Hosts about which minimal assumptions are made to do reliable
     interprocess communication in a layered protocol suite over a
     catenet consisting of communications subnetworks about which
     minimal assumptions are made.  Though it nearly goes without
     saying, we would probably be remiss not to conclude by observing
     that that's a lot harder to do than to say.

                                 Gateways

          One other aspect of the ARPANET Reference Model bears
     separate mention.  Even though it is an exceedingly fine point as
     to whether it's actually "part" of the Model or merely a sine qua
     non contextual assumption, the role of Gateways is of
     considerable importance to the functioning of the Internet
     Protocol, IP.

          As noted, the defining characteristic of a Gateway is that
     it attaches to two or more proximate comm subnets as if it were a
     Host. That is, from "the network's" point of view, Gateways are
     not distinguished from Hosts; rather, "normal" traffic will go to
     them, addressed according to the proximate net's interface
     protocol. However, the most important property of Gateways is
     that they interpret a full version of IP which deals with
     internet routing (Host IP interpreters are permitted to take a
     static view of routing, sending datagrams which are destined for
     Hosts not directly attached to the proximate net to a known
     Gateway, or Gateways, addressed on the proximate net), as well of
     course, as with fragmentation of datagrams which, although of
     permissible size on one of their proximate nets, are too large
     for the next proximate net (which contains either the target Host
     or still another Gateway).







                                    18^L
     RFC 871                                            September 1982


          Aside from their role in routing, another property of
     Gateways is also of significance:  Gateways do not deal with
     protocols above IP.  That is, it is an explicit assumption of the
     ARM that the catenet will be "protocol compatible", in the sense
     that no attempt will be made to translate or map between
     dissimilar Host-Host protocols (e.g., TCP and AH-HP) or
     dissimilar Process-level protocols (e.g., ARPANET FTP and EDN
     FTP) at the Gateways.  The justifications for this position are
     somewhat complex; the interested reader is encouraged to see
     Reference [10].  For present purposes, however, it should suffice
     to note that the case against translating/mapping Gateways is a
     sound one, and that, as with the ARMS protocols, the great
     practical virtue of what are sometimes called "IP Gateways" is
     that they are in place and running.

                        "Architectural" Highlights

          As was implied earlier, one of the problems with viewing a
     reference model prescriptively rather than descriptively is that
     the articulation of the model must be more precise than appears
     to be humanly possible.  That the ISORM, in striving for
     superhuman precision, fails to achieve it is not grounds for
     censure.  However, by reaching a degree of apparent precision
     that has enticed at least some of its readers to attempt to use
     it in a prescriptive fashion, the ISORM has introduced a number
     of ambiguities which have been attributed as well to the ARM by
     relative laymen in intercomputer networking whose initial
     exposure to the field was the ISORM. Therefore, we conclude this
     not-very-rigorous paper with a highly informal treatment of
     various points of confusion stemming from attempting to apply the
     ISORM to the ARM.

          (It should be noted, by the way, that one of the most
     striking ambiguities about the ISORM is just what role X.25 plays
     in it:  We have been informed by a few ISORMites that X.25 "is"
     Levels 1-3, and we accepted that as factual until we were told
     during the review process of the present paper that "that's not
     what we believe in the U.K."  What follows, then, is predicated
     on the assumption that the earlier reports were probably but not
     definitely accurate--and if it turns out to be in time to help
     prevent ISO from embracing X.25 exclusively by pointing out some
     of the problems entailed, so much the better.)

     "Customized Parking Garages"

          The typical picture of the ISORM shows what looks like two
     highrises with what looks like two parking garages between them.
     (That is, seven layers of protocol per "Data Terminal Equipment",
     three layers per "Data Circuit Terminating Equipment".)  The
     problem





                                    19^L
     RFC 871                                            September 1982


     is that only one "style" of parking garage--i.e., one which
     presents an X.25 interface--is commonly understood to be
     available to stand beside an ISORM DTE by those who believe that
     ISO has adopted X.25 as its L1-3.  In the ARM, on the other hand,
     no constraints are levied on the Communications Subnetwork
     Processors.  Thus, satellite communications, "Packet Radios",
     "Ethernets" and the like are all accommodated by the ARM.

          Also, the sort of Outboard Processing Environment mentioned
     earlier in which networking protocols are interpreted on behalf
     of the Host in a distributed processing fashion is quite
     comfortably accommodated by the ARM.  This is not to say that one
     couldn't develop an OPE for/to the ISORM, but rather that doing
     so does not appear to us to be natural to it, for at least two
     reasons:  1. The Session Level associates sockets with processes,
     hence it belongs "inboard".  The Presentation Level involves
     considerable bit-diddling, hence it belongs "outboard".  The
     Presentation Level is, unfortunately, above the Session Level.
     This seems to indicate that outboard processing wasn't taken into
     account by the formulators of the ISORM.  2. Although some
     ISORMites have claimed that "X.25 can be used as a Host-Front End
     Protocol", it doesn't look like one to us, even if the ability to
     do end-to-end things via what is nominally the Network interface
     is somewhat suggestive. (Those who believe that you need a
     protocol as strong as TCP below X.25 to support the virtual
     circuit illusion might argue that you've actually outboarded the
     Host-Host layer, but both the X.25 spec and the ISORM appeal to
     protocols above X.25 for full L II functionality.)  Perhaps, with
     sufficient ingenuity, one might use X.25 to convey an H-FP, but
     it seems clear it isn't meant to be one in and of itself.

     "Plenty of Roads"

          Based upon several pictures presented at conferences and in
     articles, DCE's in the X.25-based ISORM appear to many to be
     required to present X.25 interfaces to each other as well as to
     their DTE's.  Metaphorically, the parking garages have single
     bridges between them.  In the ARM, the CSNP-CSNP protocol is
     explicitly outside the model, thus there can be as many "roads"
     as needed between the ARM equivalent to ISORM parking garages.
     This also allays fears about the ability to take advantage of
     alternate routing in X.25 subnets or in X.75 internets (because
     both X.25 and X.75 are "hop-by-hop" oriented, and would not seem
     to allow for alternate routing without revision).











                                    20^L
     RFC 871                                            September 1982


     "Multiple Apartments Per Floor"

          As noted, the ISORM's strictures on inter-entity
     communication within each "highrise" are equivalent to having to
     climb downstairs and then back up to visit another apartment on
     your own floor.  The ARM explicitly expects PI's within a layer
     to interface directly with one another when appropriate,
     metaphorically giving the effect of multiple apartments on each
     floor off a common hallway.  (Also, for those who believe the
     ISORM implies only one protocol/apartment per layer/story, again
     the ARM is more flexible.)

     "Elevators"

          The ISORM is widely construed as requiring each layer to be
     traversed on every transmission (although there are rumors of the
     forthcoming introduction of "null layers"), giving the effect of
     having to climb all seven stories' worth of stairs every time you
     enter the highrise.  In the ARM, only Layer I, the Network
     Interface layer, must be traversed; protocols in Layers II and/or
     III need not come into play, giving the effect of being able to
     take an elevator rather than climb the stairs.

     "Straight Clotheslines"

          Because they appear to have to go down to L3 for their
     initiation, the ISORM's Session and Transport connections are, to
     us, metaphorically tangled clotheslines; the ARM's logical
     connections are straight (and go from the second floor to the
     second floor without needing a pole that gets in the way of the
     folks on the third floor--if that doesn't make a weak metaphor
     totally feeble.)

     "Townhouse Styles Available"

          Should ISORM Level 6 and 7 protocols eventuate which are
     desirable, the "two-story townhouse style apartments" they
     represent can be erected on an ARM L I - L II (Network Interface
     and Host-Host Layers) "foundation".  With some clever carpentry,
     even ISORM L5 might be cobbled in.

     "Manned Customs Sheds"

          Although it's straining the architectural metaphor quite
     hard, one of the unfortunate implications of the ISORM's failure
     to address operating system integration issues is that the notion
     of "Expedited Data" exchanges between "peer entities" might only
     amount to an SST flight to a foreign land where there's no one on
     duty at






                                    21^L
     RFC 871                                            September 1982


     the Customs Shed (and the door to the rest of the airport is
     locked from the other side).  By clearly designating the
     Host-Host (L II) mechanism(s) which are to be used by Layer III
     (Process-Level/ Applications) protocols to convey "out-of-band
     signals", the ARM gives the effect of keeping the Customs Sheds
     manned at all times. (It should be noted, by the way, that we
     acknowledge the difficulty of addressing system integration
     issues without biasing the discussion toward particular systems;
     we feel, however, that not trying to do so is far worse than
     trying and failing to avoid all parochialism.)

     "Ready For Immediate Occupancy"

          The ARM protocol suite has been implemented on a number of
     different operating systems.  The ISORM protocol suite
     "officially" offers at most (and not in the U.K., it should be
     recalled) only the highly constraining functionality of X.25 as
     L1-L3; L4-L7 are still in the design and agreement processes,
     after which they must presumably be subjected to stringent
     checkout in multiple implementations before becoming useful
     standards.  The metaphorical highrises, then, are years away from
     being fit for occupancy, even if one is willing to accept the
     taste of the interior decorators who seem to insist on building
     in numerous features of dubious utility and making you take fully
     furnished apartments whether you like it or not; the ARM
     buildings, on the other hand, offer stoves and refrigerators, but
     there's plenty of room for your own furniture-- and they're ready
     for immediate occupancy.

                                Conclusion

          The architectural metaphor might have been overly extended
     as it was, but it could have been drawn out even further to point
     up more issues on which the ARM appears to us to be superior to
     the ISORM, if our primary concern were which is "better".  In
     fairness, the one issue it omitted which many would take to be in
     the ISORM's favor is that "vendor support" of interpreters of the
     ISORM protocols will eventually amount to a desirable
     "prefabrication", while the building of the ARM PI's is believed
     to be labor-intensive.  That would indeed be a good point, if it
     were well-founded. Unfortunately for its proponents, however,
     close scrutiny of the vendor support idea suggests that it is
     largely illusory (vide [11]), especially in light of the amount
     of time it will take for the international standardization
     process to run its course, and the likelihood that specification
     ambiguities and optional features will handicap interoperability.
     Rather than extend the present paper even further, then, it seems
     fair to conclude that with the possible exception of "vendor
     support" (with which exception we take






                                    22^L
     RFC 871                                            September 1982


     exception, for it should be noted that a number of vendors are
     already offering support for TCP/IP), the ARPANET Reference Model
     and the protocols designed in conformance with it are at least
     worthy of consideration by anybody who's planning to do real
     inter- computer networking in the next several years--especially
     if they have operating systems with counterparts on the present
     ARPANET, so that most if not all of the labor intensive part has
     been taken care of already--irrespective of one's views on how
     good the ISORM protocols eventually will be.

                              Acknowledgments

          Although it has seldom been more germane to observe that
     "any remaining shortcomings are the author's responsibility",
     this paper has benefited tremendously from the close scrutiny and
     constructive comments of several distinguished members of both
     the research community and the (DoD) Protocol Standards Technical
     Panel.  The author is not only extremely grateful to, but is also
     extremely pleased to acknowledge his indebtedness to the
     following individuals (cited in alphabetical order):  Mr. Trevor
     Benjamin, Royal Signals and Radar Establishment (U.K.); Mr.
     Edward Cain, Chairman of the PSTP; Dr. Vinton Cerf, DARPA/IPTO
     (at the time this was written); Dr. David Clark, M.I.T.
     Laboratory for Computer Science (formerly Project MAC); and Dr.
     Jonathan Postel, U.S.C. Information Sciences Institute.
     Posterity may or may not thank them for their role in turning an
     act of personal catharsis into a fair semblance of a "real"
     paper, but the author emphatically does.

     Notes and References

     [1]  It almost goes without saying that the subtheme is certainly
          not intended to be a definitive statement of the relative
          merits of the two approaches, although, as will be seen, the
          ARM comes out ahead, in our view.  But then, the reader
          might well say, what else should I expect from a paper
          written by one of the developers of the ARM?  To attempt to
          dispel thoughts of prejudgment, the author would observe
          that although he is indeed an Old Network Boy of the
          ARPANET, he was not a member of the TCP/IP (the keystone of
          the current ARM) design team, and that he began looking into
          ARM "vs." ISORM from the position of "a plague on both your
          houses".  That he has concluded that the differences between
          TCP/IP-based ARM intercomputer networking and X.25-based
          ISORM intercomputer networking are like day and night may be
          taken as indicative of something, but that he also holds
          that the day is at least partly cloudy and the night is not
          altogether moonless should at least meliorate fears of
          prejudice.  That is, of course the






                                    23^L
     RFC 871                                            September 1982


          ISORM has its merits and the ARM its demerits neither of
          which are dealt with here.  But "A Perspective" really means
          "My Perspective", and the author really is more concerned in
          this context with exposition of the ARM than with twitting
          the ISORM, even if he couldn't resist including the
          comparisons subtheme because of the one-sidedness of the
          ISORM publicity he has perceived of late.

     [2]  Source material for this section was primarily drawn from
          the author's personal experience as a member the NWG and
          from numerous conversations with Dr. Jonathan B. Postel,
          long-time Chairman of the NWG and participant in the design
          meetings prior to the author's involvement.  (See also
          Acknowledgments.)

     [3]  Padlipsky, M. A. "The Elements of Networking Style", M81-41,
          The MITRE Corporation, Bedford, MA, October 1981

     [4]  Yes, the notion of using "protocols" might well count as an
          axiom in its own right, but, no, we're not going to pretend
          to be that rigorous.

     [5]  That is, about three tenths of the possible span of
          "Session" functionality, which has to do with making up for
          the lack of Well-Known Sockets, isn't subsumed by the ARM
          Process-Level protocols, but the rest is, or could be.

     [6]  Davidson, J., et al., "The ARPANET Telnet Protocol: Its
          Purpose, Principles, Implementation, and Impact on Host
          Operating System Design,"  Proc Fifth Data Communications
          Symposium, ACM/IEEE, Snowbird, Utah, September, 1977.

     [7]  See Proceedings of the 1970 SJCC, "Resource Sharing Computer
          Networks" session, and Proceedings of the 1972 SJCC, "The
          ARPA Network" session for the standard open literature
          references to the early ARPANET.  Other source material for
          this chapter is drawn from the author's personal
          conversations with TCP/IP's principal developers; see also
          Acknowledgments.

     [8]  A strong case can be made for desiring that the comm subnets
          make a "datagram" (or "connectionless") mode of interface
          available, based upon the desire to support such
          functionality as Packetized Speech, broadcast addressing,
          and mobile subscribers, among other things.  For a more
          complete description of this point of view, see [9].  For
          present








                                    24^L
     RFC 871                                            September 1982


          purposes, we do not cite the presentation of a datagram mode
          interface as a design constraint because it is
          possible--albeit undesirable--to operate IP "on top of" a
          comm subnet which does not present such an interface.

     [9]  Cerf, V. G. and R. E. Lyons, "Military Requirements for
          Packet-Switched Networks and for Their Protocol
          Standardization" Proc EASCON 1982.

     [10] Padlipsky, M. A., "Gateways, Architectures and Heffalumps",
          M82-51, The MITRE Corporation, Bedford, MA, September 1982.

     [11] ---------- "The Illusion of Vendor Support", M82-49, The
          MITRE Corporation, Bedford, MA, September 1982.

     NOTE:  Figure 1: ARM in the Abstract, and Figure 2: ARMS,
     Somewhat Particularized, may be obtained by writing to:  Mike
     Padlipsky, MITRE Corporation, P.O. Box 208, Bedford,
     Massachusetts 01730, or sending computer mail to
     Padlipsky@USC-ISIA.

     

































                                    25^L