Commit | Line | Data |
---|---|---|
1f4ae402 ES |
1 | .TL |
2 | Network System Manual | |
3 | .AU | |
4 | Eric Schmidt | |
5 | .SH | |
6 | Introduction | |
7 | .LP | |
8 | This documentation should be read by people responsible for | |
9 | maintaining the network (and the systems it runs on). | |
10 | It is divided into the following sections: | |
11 | .DS | |
12 | Maintaining the Network | |
13 | Setting up the Network | |
14 | Future Plans | |
15 | For Berkeley | |
16 | Bugs | |
17 | .DE | |
18 | Besides the commands described in the net introduction, | |
19 | there are a number of network-internal commands and | |
20 | statistics files. | |
21 | .SH | |
22 | Maintaining the Network | |
23 | .IP 1. | |
24 | Check the network: | |
25 | .RS | |
26 | .IP a) | |
27 | See if the network daemons are running with the command | |
28 | .DS | |
29 | % ps ax | grep net | |
30 | .DE | |
31 | If not running, see below. | |
32 | .IP b) | |
33 | Check the network queue to see how long commands have been waiting to | |
34 | be sent. | |
35 | .RE | |
36 | .IP 2. | |
37 | To restart the network daemons, try | |
38 | .RS | |
39 | .IP a) | |
40 | See if they are running, as above. | |
41 | .IP b) | |
42 | If so, there should be two net daemon processes per machine connection\(em | |
43 | ``kill \-9'' the child named ``netdaemon'' and the parent ``netstart'' will start | |
44 | a new one. | |
45 | .IP c) | |
46 | If there are no ``netstart's'' or ``netdaemon's'', executing | |
47 | .DS | |
48 | % /usr/net/bin/start | |
49 | .DE | |
50 | will start up all the daemons on your machine. | |
51 | .IP d) | |
52 | To have two ``netdaemons'' pointing to the same machine is to invite disaster. | |
53 | What happens is that a few small requests get through, | |
54 | and then the error rate goes up by a factor of a hundred. | |
55 | The first thing to do when you see this is to check the | |
56 | number of net daemons. | |
57 | .LP | |
58 | (All this must be done as super-user). | |
59 | .RE | |
60 | .IP 3. | |
61 | There are files /usr/net/plogfile? with a log for each | |
62 | directly-connected machine. | |
63 | Example: | |
64 | .DS | |
65 | % tail /usr/net/plogfiley | |
66 | .DE | |
67 | will tell you in a cryptic form what the network | |
68 | has done on the Cory machine. | |
69 | This is a good file to inspect to see if transmissions | |
70 | are failing, etc. | |
71 | It is readable only by ``schmidt'' and ``root'' (and ``staff'' on Cory). | |
72 | .IP | |
73 | Basically, ``sends'' begin ``^S'' and end ``^T''. | |
74 | If a send fails for some reason, ``^F'' is printed instead of ``^T''. | |
75 | ``^R'' is printed when a receive begins. | |
76 | ``RCV'' is entered when the command is received and executed. | |
77 | ``^P'' indicates a pass through. | |
78 | .IP | |
79 | The file /usr/net/netstat?, one per directly-connected machine, | |
80 | have various statistics about the usage of the network, and | |
81 | the system load. | |
82 | .IP 4. | |
83 | The overloading on various machines is causing high error rates. | |
84 | If these rates persist, the network can overload to the point | |
85 | where the queues are immense and nothing gets through. | |
86 | The only thing that can be done at this point is to remove the files (using | |
87 | .I netrm | |
88 | as super-user) and adjust the delay times in the `initfile'. | |
89 | .IP 5. | |
90 | If free space is a scarce commodity, truncate logfile and plogfile?, | |
91 | and check /usr/net/send? and /usr/net/rcv. | |
92 | If there are any files there which are quite old, | |
93 | use your judgement to remove them. | |
94 | .IP 6. | |
95 | Net news should be provided periodically | |
96 | (usually in `/usr/help' or `/usr/news'). | |
97 | .SH | |
98 | Setting up the Network | |
99 | .IP 1. | |
100 | Hardware | |
101 | .RS | |
102 | .PP | |
103 | For another machine to join the network, there must be some hardware link, | |
104 | such as tty lines, special character-oriented | |
105 | hardware, or DMA lines between the two machines. | |
106 | The software does not require the link to be reliable or fast. | |
107 | The best way to start is with slow-speed TTY lines | |
108 | (say 1200 baud) which demonstrate the network's usefulness at low cost. | |
109 | The highest transfer speed on a TTY link is about | |
110 | one-half the link speed (at best), | |
111 | because of processing time, the 3 \(-> 4 character | |
112 | expansion from 8 bits to 6, and the responses. | |
113 | .RE | |
114 | .IP 2. | |
115 | Software | |
116 | .RS | |
117 | .PP | |
118 | There is a subdirectory ``src/net'' | |
119 | with all the network source files and a ``makefile''. | |
120 | The file ``READ_ME'' has information about | |
121 | the different conditional compilation | |
122 | option available, and table entries which must be made in the `.c' files. | |
123 | .PP | |
124 | Assuming the options have been specified in the makefile, the command | |
125 | .DS | |
126 | % make all | |
127 | .DE | |
128 | will make all the necessary files. | |
129 | Then the command | |
130 | .DS | |
131 | % make install DESTDIR= | |
132 | .DE | |
133 | will install the user commands and service programs. | |
134 | The directories are specified as options in the makefile. | |
135 | Finally, | |
136 | .DS | |
137 | % make clean | |
138 | .DE | |
139 | removes all the `.o' and executable files. | |
140 | .PP | |
141 | There are also other little-used programs, made by ``make othernet''. | |
142 | Included are programs to send and receive packets and files, and a program | |
143 | to simulate TTY lines using pipes. | |
144 | It should not be necessary to run these. | |
145 | .RE | |
146 | .IP 3. | |
147 | Directories and Files. | |
148 | .RS | |
149 | .PP | |
150 | The central directory is `/usr/net', | |
151 | which has subdirectories `bin', `rcv', and `send?', where | |
152 | the `?' represents the one-letter codes of the directly-connected machines. | |
153 | For various reasons, the support programs | |
154 | .I | |
155 | (netdaemon, netstart, mmail, mwrite, | |
156 | .R | |
157 | etc.) must be in `bin'. | |
158 | The user programs may be anywhere but the pathnames in "Paths.h" | |
159 | must be reset correctly. | |
160 | .PP | |
161 | The logfiles are `logfile' and `plogfile?', | |
162 | one for each directly-connected machine. | |
163 | If not present in `/usr/net', they are not created. | |
164 | .PP | |
165 | The file `bin/start' should start up all the net daemons on the current machine. | |
166 | This file is normally executed by `/etc/rc'. | |
167 | The file `initfile' has a format similar to `.netrc' | |
168 | but is read by the net daemons when they are started. | |
169 | It has the network device names, speed and various tuning parameters. | |
170 | The complete list is in the source file `sub.c'. | |
171 | It is generally possible to change almost anything about the network | |
172 | through the `initfile' and restarting the daemon. | |
173 | .PP | |
174 | The program `bin/netstart' is a simple program to | |
175 | start up a net daemon, and if it should abort for any reason, restart it. | |
176 | .PP | |
177 | There must be an account `network', which executes | |
178 | all responses and the free commands. | |
179 | Its login directory should be `/usr/net/network' and | |
180 | login shell should be `nsh' in that directory. | |
181 | The list of free commands can be changed in `nsh.c'. | |
182 | .PP | |
183 | The `cat' command must be in `/bin' (used by | |
184 | .I netcp). | |
185 | .PP | |
186 | At Berkeley, we follow the convention that the TTY | |
187 | special files are named `/dev/net-X', where `X' | |
188 | is the remote machine name. | |
189 | .PP | |
190 | The | |
191 | .UX | |
192 | mail program should be modified to recognize | |
193 | remote names and to fork a ``sendmail'' command. | |
194 | If possible, a `\-r' option should be added (see `mmail.c'). | |
195 | .RE | |
196 | .SH | |
197 | Future Plans | |
198 | .PP | |
199 | It is important to understand the scope of this network; | |
200 | what it is and what it is not. | |
201 | Since it is ``batched'', there are a lot of things it cannot do. | |
202 | Our experience is that remote file copying, mailing and printing between | |
203 | .UX | |
204 | machines are adequate for our immediate needs. | |
205 | .PP | |
206 | In the future, we will concentrate on improving | |
207 | the hardware and speeding up the network, rather than major user-interface | |
208 | changes. | |
209 | .PP | |
210 | This is a list of the things that have been planned for the future | |
211 | for the network. | |
212 | .IP 1. | |
213 | Use Bill Joy's retrofit library to simulate the version 7 system calls. | |
214 | This would reduce the dependence on conditional compilation for V6 code. | |
215 | .IP 2. | |
216 | The file length restriction is a major inconvenience. | |
217 | One way to allow large files would be to | |
218 | send large files (over 100,000 chars) only when there are no smaller ones. | |
219 | This would be non-preemptive, but might be workable. | |
220 | Another way would be to have two hardware links, | |
221 | and two sets of daemons, one for large files and one for small ones. | |
222 | .IP 3. | |
223 | Bob Fabry has suggested generalizing the machine name to | |
224 | be user-definable as a login/machine pair, to | |
225 | make it easier for people with multiple accounts on multiple machines. | |
226 | .IP 4. | |
227 | It is possible to share binaries between all | |
228 | the similar machine configurations (e.g. the Comp. Center machines). | |
229 | This involves ``patching'' the local machine in the binary. | |
230 | .IP 5. | |
231 | Ed Gould suggested that the notion of ``default'' machine | |
232 | was too restrictive\(em | |
233 | that an appropriate default for, say, ``netlpr'' was a | |
234 | nearby machine with a quality printer, whereas the default for ``net'' | |
235 | should be the logical most useful machine. | |
236 | .IP 6. | |
237 | Security \(em | |
238 | I have just recently bullet-proofed the network | |
239 | so `root' commands are very restricted. | |
240 | However, the presence of passwords in the `.netrc' files | |
241 | poses a hazard to other machines when one machine is broken into. | |
242 | As long as the root password is not in a file, the root is safe. | |
243 | I am fairly convinced there is no way using encryption | |
244 | to handle the `.netrc' files. | |
245 | The introductory documentation is very explicit about | |
246 | the threat these passwords pose. | |
247 | .IP 7. | |
248 | Certain other more exotic requests are unlikely | |
249 | to get done until things change: | |
250 | .RS | |
251 | .IP a) | |
252 | Having the same user-id's across machines. | |
253 | .IP b) | |
254 | Adding an option to ``net'' to wait until a response has been received. | |
255 | .IP c) | |
256 | There should be a net status command which would | |
257 | give things like load averages, the number of users, etc. | |
258 | .IP d) | |
259 | The notion of a local queue is not general enough\(em | |
260 | .I netq | |
261 | should print out relevant queues on other machines. | |
262 | .IP e) | |
263 | Files on intermediate machines can't be \fInetrm\fP'ed. | |
264 | .RE | |
265 | .SH | |
266 | For Berkeley | |
267 | .IP 1. | |
268 | The root-ownership of | |
269 | .I netlpr | |
270 | queue files is a problem. | |
271 | No easy solution to this problem is known at this time. | |
272 | .IP 2. | |
273 | There are hooks in for the B, INGRES, and Q | |
274 | machines, and I would love to have them added to the network. | |
275 | .IP 3. | |
276 | I'd like to see the following things happen: | |
277 | .RS | |
278 | .LP | |
279 | A driver for the network links to avoid character | |
280 | processing, which would make 9600-baud practical. | |
281 | On the Computer Center machines, this could be accomplished | |
282 | using a high speed link through the Bussiplexor. | |
283 | .LP | |
284 | It has also been suggested that all the mail programs | |
285 | look at a file to see if they should forward | |
286 | this message to an account on another machine. | |
287 | This would allow people to get all their mail on one machine. | |
288 | .RE | |
289 | .SH | |
290 | Bugs | |
291 | .IP 1. | |
292 | Extra files beginning with `df...' are created in the `send?' | |
293 | directories, with no control files (`cf...'). | |
294 | They should be removed periodically. | |
295 | .I netrm | |
296 | will remove them. | |
297 | .IP 2. | |
298 | .I Netcp | |
299 | creates files with filenames as login names. | |
300 | They will never be sent and subsequent requests | |
301 | will be blocked. | |
302 | Their net queue files should be removed. | |
303 | .IP 3. | |
304 | In general, some requests can block the queue until removed. | |
305 | Shorter requests will get through, and longer ones will not. | |
306 | Again, their net queue files should be removed. |