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
|
<pre>Network Working Group G. Deloche
Request for Comment: 7 University of California at Los Angeles
NIC: 4693 May 1969
<span class="h1">Host-Imp Interface</span>
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 <a href="./rfc7">RFC 7</a> was hand-written, and only partially illegible
copies exist. <a href="./rfc7">RFC 7</a> was later typed int NLS by the Augmentation
Research Center (ARC) at SRI. The following is the best
reconstruction we could do. RFC Editor.]
<span class="grey">Deloche [Page 1]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-2" ></span>
<span class="grey"><a href="./rfc7">RFC 7</a> Host-IMP Interface May 1969</span>
<span class="h2"><a class="selflink" id="appendix-I" href="#appendix-I">I</a>. Introduction</span>
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.
<span class="grey">Deloche [Page 2]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-3" ></span>
<span class="grey"><a href="./rfc7">RFC 7</a> Host-IMP Interface May 1969</span>
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.
<span class="grey">Deloche [Page 3]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-4" ></span>
<span class="grey"><a href="./rfc7">RFC 7</a> Host-IMP Interface May 1969</span>
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.
<span class="grey">Deloche [Page 4]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-5" ></span>
<span class="grey"><a href="./rfc7">RFC 7</a> Host-IMP Interface May 1969</span>
[<a id="ref-Length">Length</a>] 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
<span class="grey">Deloche [Page 5]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-6" ></span>
<span class="grey"><a href="./rfc7">RFC 7</a> Host-IMP Interface May 1969</span>
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)
<span class="grey">Deloche [Page 6]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-7" ></span>
<span class="grey"><a href="./rfc7">RFC 7</a> Host-IMP Interface May 1969</span>
+------------------+
| | | |
| | | 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]
</pre>
|