summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc7.txt
blob: 2c8914c8945d893ca35ed291e59f127f7fd799a1 (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
Network Working Group                                         G. Deloche
Request for Comment: 7           University of California at Los Angeles
NIC: 4693                                                       May 1969


                           Host-Imp Interface



      G. Deloche      -->  Prof. J. Estrin
                           Prof. L. Kleinrock
                           Prof. B Bussel
                           D. Mandell
                           S. Crocker
                           L. Bonamy


   Object: Arpa Network - Specification Outlines for Host-IMP (HI)
   Interface Programs.



                                  Outline

   I.  Introduction

   II.  Scope of the software organization.
           II-1    Network program
           II-2    Handler program

   III.  Questions





   [The original of RFC 7 was hand-written, and only partially illegible
   copies exist.  RFC 7 was later typed int NLS by the Augmentation
   Research Center (ARC) at SRI.  The following is the best
   reconstruction we could do.  RFC Editor.]











Deloche                                                         [Page 1]
^L
RFC 7                      Host-IMP Interface                   May 1969


I.  Introduction

   This paper is concerned with the preliminary software design of the
   Host IMP interface.  Its main purpose is on the one hand to define
   functions that will be implemented, and on the other hand to provide
   a base for discussions and ...(unreadable).

   This study is based upon a study of the BBN Report No. 763.

II.  Scope of the software organization.

   The system is based upon two main programs: the Handler program that
   drives the channel hardware unit, and the Network program which
   carries out the user's transmission requests.

   As the communication is full duplex, each of these programs can be
   viewed as divided into two parts: one is concerned with the output
   data, the other with the input. (See Fig. 1)

   These two programs exchange data through a pool of buffers, and
   logical information through an interface table.

   In the following we only focus on the output part of each program
   (See Fig. 2).  The input part would be very similar.

II-1.   Network program.

II-1-1. Multiplex function.

   This program multiplexes the outgoing messages (and distributes the
   incoming messages).  The multiplexing consists in stacking up all the
   user's (or caller, or party) requests and filling up the pool of
   buffers so as to keep the handler busy emitting.

   Multiplexing (and distribution) is based on the link identification
   numbers.  (Link = logical connection between two users).  The
   multiplexing problem is closely related to the interface between a
   user's program and the network program, that is in
   fact...(unreadable) operating system (See below: Questions).

II-1-2.  Output message processing.

   When a user's program wants to send out text it should indicate the
   following information (through a macro, or as call parameters): text
   location, text length in bytes, and destination.






Deloche                                                         [Page 2]
^L
RFC 7                      Host-IMP Interface                   May 1969


   Using these data the Network program:

      *  prepares a 16 bit Host heading (1 bit: trace, 2 bits: spares, 8
         bits: link identification no., 5 bits: destination host)

      *  inserts a 16 bits marking between the header and the text so as
         to start the text at a word boundary.  This marking consists of
         a one preceding the first bit of the text and, in turn,
         preceded by fifteen zeros to fill up the gap.

      *  checks the length of the user's text - if it exceeds 1006 bytes

          +-                                                     -+
          |8080 (max host message length) - 32 (heading + marking)|
          |-------------------------------------------------------|
          |                8 (byte = 8 bits)                      |
          +-                                                     -+

   the program breaks down the text into a sequence of messages whose
   maximum length is 1006 bytes - Each of these messages is preceded by
   a heading as explained above.

   Remark: in that case one of the heading space bits could be used for
   indicating that several messages belong to the same text.

      *  _transcodes_ the EBCDIC characters constituting the messages
         into ASCII characters.

      *  _fills_ the buffers of the pool with the content of the
         messages.

      *  _updates_ the content of the interface table and moves the
         filling pointers (see below).

II-2.  Handler program.

   This program is initiated either by the network program, or by the
   I/O interrupt.

   This program will be very short.  It will be coded in master mode
   (privileged instructions) and should be integrated in the I/O
   supervisor of the operating system.









Deloche                                                         [Page 3]
^L
RFC 7                      Host-IMP Interface                   May 1969


   This program:

      *  _controls_ the channel hardware unit.  It initiates the
         emission, eventually provides data chaining between the
         buffers, tests the different device status upon receiving an
         interrupt.

      *  _empties_ the buffers that are filled up by the network
         program.

      *  _explores_ and _updates_ the interface table (see below).

      *  can eventually insure a control transmission procedure with the
         IMP (See Questions).

II-3  Buffers and Interface Table.

II-3-1  Buffers.

   They should be large enough for containing the maximum host message
   text + heading and marking (1006 + 4 = 1010 bytes).

   Consequently the buffer size could be chosen equal to 256 words (1024
   bytes).  As for the buffer number it will determine the link
   utilization frequency -

II-3-2  Interface table.

   It is through this table that the network program informs the handler
   with the location and length of the emitting data.

   This table could be a ring table with 2 pointers: one for filling,
   the other for extracting.  They are respectively updated by the
   network and the handler program.

















Deloche                                                         [Page 4]
^L
RFC 7                      Host-IMP Interface                   May 1969


                      [Length] of the message
                           contained
                           in the buffer
                               ^
                               |
           +--------------+----------+
           | Buffer addr. | nb bytes |
           +--------------+----------+
           |              |          | <== Filling pointer
           +--------------+----------+         |
           |                         |         V
           |                         |
           //                        //
           |                         |
           |                         |
           |                         |
           +--------------+----------+
           | Buffer addr. | nb bytes | <== eEtracting pointer
           +--------------+----------+         |
           | Buffer addr. | nb bytes |         V
           +--------------+----------+



III.  Questions.

III-1.  Why is there not a simple control procedure between the HOST and
        the IMP?  What happens if a message, issued from the HOST,
        reaches the IMP with an error due to the transmission?

   From the BBN specifications it appears that this error will be
   transmitted as far [as] the receiving HOST.

   In that case must an HOST-HOST control procedure be provided?

III-2.  Where will the special channel hardware unit be connected
        (MIOP/SIOP)?

   How will this device be notified of an outgoing message end in order
   to start the padding?

   (The program will provide to the MIOP SIOP the number of bytes of the
   outgoing message, and will receive back an interrupt when the last
   byte is sent out.  Is it that signal which will be also sent to the
   special device?)

   Vice versa how does the Handler know the length of the incoming
   message?  From the contents of the previous one or should this



Deloche                                                         [Page 5]
^L
RFC 7                      Host-IMP Interface                   May 1969


   program always ready to receive a message of maximum length?  (Then
   an interrupt should be triggered when the real end is detected by the
   hardware).

III-3.  When does the Gordo documentation will be available in order to
        design the user-network program interface.  What are the
        mechanisms for program initiations, transferring parameters from
        one program to another, etc...






                           HOST (Sigma 7) <--|/|--> Outside world
   Users                                     |/|
    |                                        |/|
    |                                        |/|   Special  Standard
    V                                        |/|      |       |
         +--------------+   +------------+   |/|      V   |   V
    o----|              |   |            |   |/|   +------+------+
         |   Output     |-->|   Output   |-->|/|-->|      |      |-->IMP
    . . .|              |   |            |   |/|   |             |
         |              |   |            |   |/|   |      |      |
    o----| (Multiplex)  |   |            |   |/|   |             |
         |_ _ _ _ _ _ _ |   |_ _ _ _ _ _ |   |/|   | _ _ _| _ _ _|
    o----|              |   |            |   |/|   |      |      |
         |   Input      |<--|    Input   |<--|/|<--|             |<--IMP
    . . .|              |   |            |   |/|   |      |      |
         |              |   |            |   |/|   |             |
    o----|(Distribution)|   |            |   |/|   +------|------+
         |              |   |            |   |/|       HARDWARE
         +--------------+   +------------+   |/|       Interface
             NETWORK          HANDLER        |/|
             Program          Program        |/|
                                             |/|    (Fig. 1)















Deloche                                                         [Page 6]
^L
RFC 7                      Host-IMP Interface                   May 1969


                                                   +------------------+
                                                   | | |              |
                                                   | | | interface    |
                                                   | | |              |
                                                   |                  |
                                                   | ====> Data       |
                                                   |                  |
                                                   | ----- Logical    |
                                                   |       information|
                                                   +------------------+

                      + - - - - - - - - - - - - - -+
                      |                            |
                              interface table
                      |        +----------+        |               | |
        | |              +---->|          |<----+                  | |
        | |           |  |     +----------+     |  |   interrupt   | |
        | |           ^  |                      |     +----<-------| |
        | |           |  |    +-          -+    |  |  |            | |
        | |           |  V    |  _________ |    V  V  V            | |
   o----| |-+  +---------+-+  | |         ||  +-+--+--+---+        | |
        | |  \ |+---------+|  | |_________||  |+---------+|        | |
        | |   \||         ||  |            |  ||         ||        | |
        | |    +|         ||  | - - - - - -|  ||         ||        | |
        | |    ||         ||  |            |  ||         ||        | |
    - - - - - -|| NETWORK ||=>-  _________ -=>|| HANDLER ||=======>| |
        | |    +| Progr.  ||  | |         ||  || Progr.  ||        | |
        | |   /||         ||  | |_________||  ||         ||        | |
        | |  / |+---------+|  |            |  |+---------+|        | |
   o----| |-+  +-----------+  |  _________ |  +----+------+        | |
   ^    | |                   | |         ||       |               | |
   |    | |                   | |_________||       +--->---------->| |
   |     ^                    +-    ^     -+         Commands      | |
   Users |                          |                              | |
         |                    Pool of buffers                      | |
       User's                                                       ^
      Interface                                                     |
                                                              Hardware
                                                             Interface

                           (Fig. 2)




         [ This RFC was put into machine readable form for entry ]
   [ into the online RFC archives by Bob German & Lorrie Shiota 1/02 ]




Deloche                                                         [Page 7]
^L