{\rtf1\mac\deff2 {\fonttbl{\f0\fswiss Chicago;}{\f2\froman New York;}{\f3\fswiss Geneva;}{\f4\fmodern Monaco;}{\f5\fscript Venice;}{\f6\fdecor London;}{\f7\fdecor Athens;}{\f8\fdecor San Francisco;}{\f11\fnil Cairo;}{\f12\fnil Los Angeles;}
{\f13\fnil Zapf Dingbats;}{\f14\fnil Bookman;}{\f15\fnil N Helvetica Narrow;}{\f16\fnil Palatino;}{\f18\fnil Zapf Chancery;}{\f20\froman Times;}{\f21\fswiss Helvetica;}{\f22\fmodern Courier;}{\f23\ftech Symbol;}{\f24\fnil Mobile;}{\f33\fnil Avant Garde;}
{\f34\fnil New Century Schlbk;}{\f129\fnil GteLogoFont;}{\f249\fnil MacSymbols;}{\f3071\fnil StarTrekClassicMovies;}}{\colortbl\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;
\red255\green255\blue0;\red255\green255\blue255;}{\stylesheet{\s243\tqc\tx4320\tqr\tx8640 \f20\fs20 \sbasedon0\snext0 footer;}{\s244\tqc\tx4320\tqr\tx8640 \f20\fs20 \sbasedon0\snext0 header;}{\f20\fs20 \sbasedon222\snext0 Normal;}}
\widowctrl\ftnbj\linestart0 \sectd \linemod0\linex0\cols1\endnhere\titlepg {\footer \pard\plain \s243\tqc\tx4320\tqr\tx8640 \f20\fs20 {\b\f21 Getting Started with TCP/IP on Packet Radio\tab Page \chpgn \par
}}\pard\plain \tx1080\tx1800 \f20\fs20 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 \par
\par
}\pard \qj\tx1080\tx1800 {\plain \f21 \par
\par
\par
\par
\par
\par
\par
\par
\par
\par
\par
\par
\par
}\pard \qc\tx1080\tx1800 {\b\f21\fs36 Getting Started with TCP/IP on Packet Radio\par
}\pard \qc\tx1080\tx1800 {\plain \f21 \par
\par
by John Ackermann, AG9V\par
Miami Valley FM Association\par
Dayton, Ohio\par
\par
\par
\par
\par
\par
}\pard \qc\tx1080\tx1800 20{\plain \f21  }April{\plain \f21  }1992{\plain \f21 \par
}\pard \qc\tx1080\tx1800 {\plain \f21 \par
\par
\par
\par
\par
\par
\par
\par
\par
\par
\par
\par
\par
\par
\par
Copyright 1992 by John R. Ackermann, Jr.\par
}\pard \qc\tx1080\tx1800 {\plain \f21 This document may be freely distributed in unaltered form for non-commercial use only, provided this copyright notice is included.\par
}\pard \qc\tx1080\tx1800 {\plain \f21 \par
}\pard \qc\tx1080\tx1800 {\f21\fs18 Minor reformatting for printing on the Macintosh by Charlie Ross, NC1N.}{\plain \f21 \par
}\pard \tx1080\tx1800 {\b\i\f21\fs28\ul \sect }\sectd \pgnrestart\linemod0\linex0\cols1\endnhere {\footer \pard\plain \s243\tqc\tx4320\tqr\tx8640 \f20\fs20 {\b\f21 Getting Started with TCP/IP on Packet Radio\tab Page \chpgn \par
}}\pard\plain \tx1080\tx1800 \f20\fs20 {\b\i\f21\fs28\ul Introduction\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21
This document is intended to help hams with some experience in packet radio get started with the TCP/IP software written by KA9Q and others.  It is not intended to take the place of the software's reference manual, but rather to provide a quick-and-dirty i
ntroduction to the capabilities of TCP/IP and the mysteries of installing and using the software.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21
There are several different versions of the KA9Q software floating around.  It was originally written for MS-DOS computers, but has been ported to Macintosh, Amiga, Atari and UNIX systems.  The original program was called "}{\plain \b\f21 NET"}{\plain
\f21  and its last formal version was issued in April, 1989.  If someone talks about "}{\plain \b\f21 890421.1 NET}{\plain \f21 ," that's what they're referring to.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Since 1989, work has concentrated on a rewritten program called "}{\plain \b\f21 NOS"}{\plain \f21  (for }{\plain \b\f21 N}{\plain \f21 etwork }{\plain \b\f21 O}{\plain \f21 perating }{\plain \b\f21 S}{\plain \f21
ystem, though confusingly the executable program for PCs is usually still called "}{\plain \b\f21 NET.EXE}{\plain \f21
").  NOS offers many new features that make using TCP/IP much more effective; you should use it instead of NET.  However, NOS is a growing and changing creature; since there are several different versions, and they are being updated rapidly, I can't tell y
ou precisely where to find the latest, greatest version.  Your best bet is to check with a local user.  If that doesn't work, there are several telephone BBS systems that carry various flavors of NOS\:\par
}\pard \tx1080\tx1800 {\plain \f21 \par
\tab N8EMR's Ham BBS\tab (614) 895-2553\par
\tab ChowdaNet\tab \tab (401) 331-0334\par
\tab WB3FFV\tab \tab \tab (301) 335-0858\par
\par
}\pard \tx1080\tx1800 {\plain \f21 The version I'm using, and which is reflected in this document, is PA0GRI's adaptation of NOS version 061891, as modified and distributed by N1BEE and available as "}{\plain \b\f21 GRINOS}{\plain \f21
" from the ChowdaNet BBS.  I try not to dwell on features that are specific to this version, but if something I say doesn't seem to match your software, that's probably why.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 A last note before plunging in -- I said it before, and I'll say it again\:  this document barely s
cratches the surface of NOS.  Nearly every command described here has options or parameters that I'm ignoring.  My goal is to give you a feel for what TCP/IP does, and to get you on the air with NOS; to get beyond the novice stage you need to look at the r
eference manual and experiment with the software.  Appendix A includes a list of organizations and individuals that can provide further information about TCP/IP and amateur radio.\par
}\pard \tx1080\tx1800 {\plain \f21 \page }{\b\i\f21\fs28\ul TCP/IP and Ham Radio\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 TCP/IP is a set of communication protocols that have
become a standard in the computer networking world.  It is designed to link different kinds of computer systems together over dissimilar networks.  TCP/IP software runs on nearly every kind of computer available, from IBM mainframes to PCs, Macs, Amigas, a
nd Ataris.  The KA9Q software (from now on, I'll call it}{\plain \b\f21  }{\plain \f21 "}{\plain \b\f21 NOS}{\plain \f21 ") is special because it includes the features necessary to run TCP/IP over ham packet radio.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 The TCP/IP protocol suite allows different kinds of computers to talk to one another across networks
 The services it provides include terminal sessions, file transfer, electronic mail, and data routing services.  Computers running TCP/IP (referred to as "}{\plain \b\f21 hosts}{\plain \f21
") can run some or all of these applications simultaneously; it's entirely possible to sit at a PC computer running NOS and carry on a keyboard-to-keyboard chat with one station, while another retrieves a file from your hard disk and you send electronic ma
il to a third.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 It's also comforting to know that when you run TCP/IP, you }{\plain \f21\ul don't}{\plain \f21  give up the a
bility to carry on normal packet communications.  You can use NOS just like a terminal program to establish connections with your local BBS or to chat with friends who don't run NOS (yet).\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21
If you've looked at the size of the NOS documentation, you're probably asking yourself what the benefit is of mastering this fairly complex stuff.  Well, NOS has several features that improve on regular packet radio.  It has much more sophisticated file tr
ansfer and electronic mail capabilities than our present PBBS syst
ems (and it's possible to feed PBBS messages into NOS in a way that makes it much easier to use them).  It supports multiple simultaneous connections.  It has new and better transport methods that improve the reliability and throughput of slow and congeste
d channels.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 NOS also has the ability to route transmissions to distant stations without the user needing to know every hop along the way; all you need to do is get your data to a "}{\plain \b\f21 gateway}{\plain \f21
" station that knows how to move it one hop closer to its destination.  New work being done with NOS promises dynamic routing that automatically adjusts to changes in the network.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21
And, since it is directly adapted from the de facto standard system of interconnecting computers, NOS offers the possibility of sophisticated services far beyond anything available on regular packet radio.  For example, in some areas ham TCP/IP users can l
og into multi-user UNIX computer systems and run applications as if they were directly connected to those machines.\par
}\pard \tx1080\tx1800 {\b\i\f21\fs28\ul \page What is TCP/IP? \par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 As mentioned above, TCP/IP is actually a set of protocols for the transfer of data across networks of computers.  Two of these protocols underlie most of the others, and they give the set its popular name\:\par
}\pard \fi-1080\li1080\tx1080\tx1800 {\plain \b\f21 \par
}\pard \fi-1080\li1080\tx1080\tx1800 {\plain \b\f21 TCP}{\plain \f21 \tab }{\plain \b\f21 T}{\plain \f21 ransport }{\plain \b\f21 C}{\plain \f21 ontrol }{\plain \b\f21 P}{\plain \f21
rotocol, a "reliable stream service" (which is a fancy way of saying it makes sure that all the data sent to a remote host actually gets there), and\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \fi-1080\li1080\tx1080\tx1800 {\plain \b\f21 IP}{\plain \f21 \tab }{\plain \b\f21 I}{\plain \f21 nternet }{\plain \b\f21 P}{\plain \f21
rotocol, which sets the basic rules for formatting packets of data to go out over a network.  TCP rides on top of IP.\par
}\pard \li720\tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Now that you finally know what "}{\plain \b\f21 TCP/IP}{\plain \f21
" stands for, there are a few concepts that are critical because they address a basic problem in any communications system -- identifying the parties to the conversation.  Simply using our ham callsigns to address TCP/IP packets doesn't work for two reason
s.  First, the protocols work across many different networks, and have to have a consistent address scheme.  Second, and as important, ham callsigns don't contain enough information to allow TCP/IP's sophisticated routing mechanisms to work.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
\par
}{\plain \b\f21 Names and Addresses\par
}{\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 The first important concept is the "}{\plain \b\f21 IP Address.}{\plain \f21 " }{\plain \b\f21  }{\plain \f21
Since these protocols are used on lots of different computers, it is necessary to use an addressing system that works with all of them, that provides adequate routing information, and that doesn't take up a lot of space.  The answer is to build addresses o
ut of a four byte sequence of integers, with each byte providing information about the network and subnetwork(s) to which a host belongs.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 IP addresses are "}{\plain \b\f21 hierarchical}{\plain \f21
" because the four bytes have decreasing significance from left to right.  By looking at the leftmost byte(s) we can learn how to route a transmission to the host represented by the rightmost byte(s).  We usually print these addresses using the numeric val
ue of each byte, separated by a period, such as }{\plain \b\f21 [44.70.12.34]}{\plain \f21 .  This is known as "}{\plain \b\f21 dotted notation}{\plain \f21
"  The square brackets aren't strictly necessary, but they are convenient to set off IP addresses; I'll use them that way in this document.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 I won't go into all the semantics of hierarchical addressing here, but as an example the address [44.70.12.34] breaks down as\:\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \keepn\tx1080\tx1800 {\plain \f21 \tab 44.\tab The network assigned to amateur radio TCP/IP.\par
\tab 70.\tab The subnetwork for Ohio.\par
\tab 12.\tab The Dayton/Cincinnati subnetwork.\par
}\pard \tx1080\tx1800 {\plain \f21 \tab 34\tab A specific system address within that area.\par
\par
}\pard \tx1080\tx1800 {\plain \f21
IP addresses are assigned by coordinators who derive their authority from a central registry.  The coordinator for the ham radio net is Brian Kantor, WB6CYT.  He has delegated authority to assign addresses to various state and nat
ional coordinators.  The folks in Appendix A can help you find your local coordinator.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 The second important concept is the "}{\plain \b\f21 hostname}{\plain \f21
"  Obviously, IP addresses aren't very intuitive.  English-like hostnames make remembering addresses much easier, and TCP/IP programs, including NOS, have means (discussed below) to map between IP addresses and hostnames.  A "}{\plain \b\f21 host}
{\plain \f21 " is any computer running TCP/IP; even when you're using services from another computer, your system is still a host.  When we talk about a "}{\plain \b\f21 remote host}{\plain \f21
," we're talking about a machine that you're communicating with via TCP/IP.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 The convention in ham radio TCP/IP is to use your callsign as your hostname.  To help reduce confusion, we usually print hostnames in lower case, and callsigns in capital letters -- my hostname is "}{\plain \b\f21 ag9v}
{\plain \f21 ," and my call is "}{\plain \b\f21 AG9V}{\plain \f21 " (though NOS isn't case sensitive and won't care if you don't do it this way).\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Closely related to the hostname is the "}{\plain \b\f21 domain name}{\plain \f21 ."  A "}{\plain \b\f21 domain}{\plain \f21 " is a group of machines that are logically (though not neces
sarily physically) connected together.  Domain names are like IP addresses; periods separate parts of the name, with each part representing a different level in the domain hierarchy.  But the domain name is ordered in reverse -- its highest-level portion i
s at the right, the opposite of IP addresses.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 The ham network's domain is "}{\plain \b\f21 ampr.org}{\plain \f21 "; "}{\plain \b\f21 org}{\plain \f21 " (short for "organizations") is the top level domain, and "}{\plain \b\f21 ampr}{\plain \f21
" (for AMateur Packet Radio) is the second level domain, containing all ham TCP/IP hosts.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 When you combine a hostname with a domain name, you get something like "}{\plain \b\f21 ag9v.ampr.org}{\plain \f21 ."  This is called a "}{\plain \b\f21 Fully Qualified Domain Name}{\plain \f21 " ("}{\plain \b\f21 FQDN}
{\plain \f21 "}{\plain \b\f21  }{\plain \f21 -- knowing this acronym allows you to sound like a real expert).  If a host has multiple users, we can add the user's login name at the beginning of the address, separated from the FQDN by a "}{\plain \b\f21 @}
{\plain \f21 " character.  This combination is commonly known as an "}{\plain \b\f21 Internet address}{\plain \f21 " (the "}{\plain \b\f21 Internet}{\plain \f21
" is the general term for all the TCP/IP hosts that are interconnected) and is the address form used for most electronic mail in the real world.  For example, if there is a user "jra" at ag9v, "}{\plain \b\f21 [email protected]}{\plain \f21
" would be that user's full Internet address.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21
There's one last twist.  Some services (such as Domain Name Service, discussed below) need to know whether an address they are processing is in fact an FQDN.  To do so, they look for a trailing period at the end of the domain name.  Some versions of NOS ig
nore this issue, but the PA0GRI versions (such as GRINOS) insist that you "anchor" all domain names with a period at the end of the name.  In other words, GRINOS will barf if you issue the command "hostname ag9v.ampr.org" but "hostname ag9v.ampr.org}
{\plain \f21\ul .}{\plain \f21 " will make it happy.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21
This may seem like an overly complicated scheme to simply allow two hams to talk to each other, but we use it because the ham radio TCP/IP network can be tied to the worldwide TCP/IP network in a number of different ways, and using the full set of TCP/IP a
ddress conventions makes it possible for traffic to flow between the ham network and the real world.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Leaving aside legal issues about third-party traffic, there's no reason, for example, why electronic mail can't be automatically routed through a "}{\plain \b\f21 gateway}{\plain \f21
" (a computer that interconnects two or more networks) between a ham TCP/IP user and a non-ham who has access to the Internet.  In fact, this service already exists in some areas.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 The good news is that for traffic within the ham network, we only need to worry about hostnames, and NOS's "}{\plain \b\f21 domain suffix}{\plain \f21 " command will take care of addi
ng the "ampr.org" extension for us; we only need to deal with the full details of addressing if we want to go outside the ham radio network.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}{\plain \b\f21 \par
TCP/IP Services\par
}{\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Now that we have those boring basics out of the way, the protocols that use TCP/IP to provide real, useful services include\:\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \fi-1260\li1260 {\plain \b\f21 TELNET\tab }{\plain \f21
The terminal emulation program.  In "real" networks, telnet lets a user at one host remotely access a remote host, just as if he was on a terminal directly connected to that computer.  In NOS, the telnet function usuall
y connects you to a remote host's mailbox, which acts very much like a personal PBBS.  The NOS telnet command does allow you to remotely login to a host that supports that function; in some areas UNIX computers connected to the ham TCP/IP network provide t
hat service.\par
}\pard \fi-1260\li1260 {\plain \f21 \par
}\pard \fi-1260\li1260 {\plain \b\f21 FTP\tab F}{\plain \f21 ile }{\plain \b\f21 T}{\plain \f21 ransfer }{\plain \b\f21 P}{\plain \f21 rotocol.  A means of transferring both ASCII (text) and binary (program, data, or compressed) files between hosts.\par
}\pard \fi-1260\li1260 {\plain \f21 \par
}\pard \fi-1260\li1260 {\plain \b\f21 SMTP}{\plain \f21 \tab }{\plain \b\f21 S}{\plain \f21 imple }{\plain \b\f21 M}{\plain \f21 ail }{\plain \b\f21 T}{\plain \f21 ransfer}{\plain \b\f21  P}{\plain \f21
rotocol.  A (mostly) invisible way of moving electronic mail from one host to another.  If you create a message on your computer (using the BM program, discussed below), SMTP will automatically attempt to transfer it to the destination computer.\par
}\pard \fi-1260\li1260 {\plain \f21 \par
}\pard \fi-1260\li1260 {\plain \b\f21 POP}{\plain \f21 \tab }{\plain \b\f21 P}{\plain \f21 ost }{\plain \b\f21 O}{\plain \f21 ffice }{\plain \b\f21 P}{\plain \f21
rotocol.  SMTP is neat, but it's really designed to work with hosts that are available full time.  Most ham TCP/IP stations aren't.  POP is designed for them; it allows incoming mail to be stored at a host that acts as a "}{\plain \b\f21 mail server}
{\plain \f21 ;" when you come on the air, your system automatically asks the server to send you your mail.\par
}\pard \fi-1260\li1260 {\plain \f21 \par
}\pard \fi-1260\li1260 {\plain \b\f21 PING}{\plain \f21 \tab }{\plain \b\f21 P}{\plain \f21 acket}{\plain \b\f21  I}{\plain \f21 nter}{\plain \b\f21 N}{\plain \f21 et }{\plain \b\f21 G}{\plain \f21
roper.  A diagnostic that sends a packet to a specified host; if the host is accessible to you and on the air, it responds with another packet.  PING tells you how long the round trip took.\par
}\pard \fi-1260\li1260 {\plain \f21 \par
}\pard \fi-1260\li1260 {\plain \b\f21 FINGER}{\plain \f21 \tab
A way of finding out information about the users at a host.  The finger command can simply list all the users at a host, or spit out information (like the "brag tape" of RTTY days) about a specific user.\par
}\pard \fi-1260\li1260 {\plain \f21 \par
}\pard \fi-1260\li1260 {\plain \b\f21 ARP}{\plain \f21 \tab }{\plain \b\f21 A}{\plain \f21 ddress }{\plain \b\f21 R}{\plain \f21 esolution }{\plain \b\f21 P}{\plain \f21 rotocol.  IP addresses need to be matched with the correct hard
ware address (in our case, ham callsign) to allow packets to be sent to their destination -- NOS doesn't know what callsign goes with a given IP address.  ARP does this by sending out a broadcast message when it needs to know the callsign that matches an a
ddress.  The remote host (if it's on the air) will answer and provide its hardware address.\par
}\pard \fi-1260\li1260 {\plain \f21 \par
}\pard \fi-1260\li1260 {\plain \b\f21 DNS}{\plain \f21 \tab }{\plain \b\f21 D}{\plain \f21 omain}{\plain \b\f21  N}{\plain \f21 ame }{\plain \b\f21 S}{\plain \f21 ervice.  Remembering IP addresses isn't easy.  NOS can use a file called "}{\plain \b\f21
DOMAIN.TXT}{\plain \f21 " to contain mappings between hostnames and IP addresses, but that means you need to know the hostname and address of any station you want to contact.  Alternatively, a remote host may agree to serve as a "}{\plain \b\f21
domain name server}{\plain \f21 " that NOS can query when it needs to know the address of a host.  Not all areas have a name server available to the ham community, but in those that do, life is a lot easier.\par
}\pard \tx1080\tx1800 {\b\i\f21\fs28\ul \page Installing NOS\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Frankly, there's no completely painless way to get NOS running on your computer.  NOS is somewhat picky about the directories used for its files, and there a
re a number of custom parameters that you must set to teach the program about your environment and your network.  Those parameters are contained in a configuration file that most versions of NOS call "}{\plain \b\f21 AUTOEXEC.NET}{\plain \f21
" (PA0GRI versions use "}{\plain \b\f21 AUTOEXEC.NOS}{\plain \f21 ;" our references to "AUTOEXEC.NET"}{\plain \b\f21  }{\plain \f21 mean whichever name is appropriate}{\plain \b\f21 )}{\plain \f21 .\par
}\pard \tx1080\tx1800 {\plain \f21 \par
\par
}{\plain \b\f21 Files and Directories\par
}{\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 You should create the following directories on your disk (NOS can work from either a hard disk or a floppy; it's getting big enough, though, that working from a 360K floppy can be tough)\:\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \li1080\tx1080\tx1800 {\plain \b\f21 \\spool}{\plain \f21 \tab \tab \tab \tab (holds NOS' working files)\par
}{\plain \b\f21 \\spool\\help}{\plain \f21 \tab \tab \tab (help files for the mbox)\par
}{\plain \b\f21 \\spool\\mail}{\plain \f21 \tab \tab \tab (mail messages go here)\par
}{\plain \b\f21 \\spool\\mqueue}{\plain \f21 \tab \tab (mail workfiles)\par
}{\plain \b\f21 \\spool\\rqueue\tab \tab }{\plain \f21 (incoming mail workfiles)}{\plain \b\f21 \par
\\finger}{\plain \f21 \tab \tab \tab \tab (home for finger info files)\par
}{\plain \b\f21 \\public}{\plain \f21 \tab \tab \tab \tab (file uploads/downloads)\par
\par
}\pard \tx1080\tx1800 {\plain \f21 These files need to go in the root directory of your default disk (it is possible to configure NOS to look for these files in other than the root directory; see the reference manual for details)\:\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \li1080\tx1080\tx1800 {\plain \b\f21 AUTOEXEC.NET\tab }{\plain \f21 \tab (the NOS configuration file))\par
}{\plain \b\f21 FTPUSERS}{\plain \f21 \tab \tab \tab (user ftp/mbox access)\par
}{\plain \b\f21 DOMAIN.TXT}{\plain \f21 \tab \tab \tab (hostnames if not using DNS)\par
}{\plain \b\f21 BM.RC\tab }{\plain \f21 \tab \tab \tab (mail program configuration)\par
}\pard \li720\tx1080\tx1800 {\plain \f21 \tab }{\plain \b\f21 ALIAS}{\plain \f21 \tab \tab \tab \tab (used by smtp and BM)\par
\par
}\pard \tx1080\tx1800 {\plain \f21 NOS uses two executable files.  These can be installed anywhere on your file path\:\par
}\pard \li1080\tx1080\tx1800 {\plain \b\f21 \par
}\pard \li1080\tx1080\tx1800\tx6300 {\plain \b\f21 NET.EXE}{\plain \f21 ,}{\plain \b\f21  NOS.EXE}{\plain \f21 ,}{\plain \b\f21  or GRINOS.EXE}{\plain \f21 \tab (main executable file)\par
}{\plain \b\f21 BM.EXE}{\plain \f21 \tab (mailer program)\par
}\pard \tx1080\tx1800 {\plain \b\f21 \page Setting up AUTOEXEC.NET\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Once the directories are created and the files copied, you need to edit the AUTOEXEC.NET file with a text editor to customize it.  A sample file is included a
s Appendix B.  Some of the things you'll have to put in the file are\:\par
}\pard \tx1080\tx1800 {\plain \f21 \par
Your hostname (usually your callsign in lower case)\:\par
}{\plain \b\f21 \tab hostname ag9v.ampr.org.\par
\par
}\pard \fi-1080\li1080\tx1080\tx1800 {\plain \f21 Your IP address\:\par
}{\plain \b\f21 \tab IP address [44.70.12.34]\par
}{\plain \f21 \par
}\pard \fi-1080\li1080\tx1080\tx1800 {\plain \f21 Your callsign (optionally including an SSID; local customs vary on this)\:  }{\plain \b\f21 ax25 mycall AG9V\par
}\pard \fi-1080\li1080\tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 "attach" commands to tell NOS how to talk to your hardware.  These can get quite hairy; Appendix C has the details.  For a TNC on COM 1 at 4800 baud serial port speed, use\:\par
}\pard \fi1080\tx0\tx1080 {\plain \b\f21 attach asy 0x3f8 4 ax25 ax0 1024 256 4800\par
}\pard \tx0\tx1080 {\plain \f21 \par
}\pard \tx0\tx1080 {\plain \f21 The}{\plain \b\f21  }{\plain \f21 "}{\plain \b\f21 ax0}{\plain \f21 " in the middle of the command is the "}{\plain \b\f21 interface}{\plain \f21
" name -- you use it to identify this port to NOS when you set up routing commands and the like.  You can use any (short) name you'd like, but the convention for COM ports is to use ax0, ax1, etc.\par
}\pard \fi-1080\li1080\tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 At least one routing command.  NOS needs to know where to send packets.  A default route that sends all packets out the ax0 interface is\:\par
}\pard \tx1080\tx1800 {\plain \b\f21 \tab route add default ax0\par
}\pard \fi-1080\li1080\tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 If you have a gateway for packets going outside the local area, include a route like\:\par
}\pard \tx1080\tx1800 {\plain \b\f21 \tab route add [44.70.13.0]/24 ax0 ag9v}{\plain \f21 \par
}\pard \fi1080\tx0\tx1800 {\plain \f21 \par
}\pard \tx0\tx1800 {\plain \f21
This command would route packets addressed to any host with "44.70.13" as the first three bytes of its address out the ax0 interface to ag9v, which presumably knows how to get these packets to their destination.  The "/24" means that the first 24 bits (thr
ee bytes) of the address are significant; NOS will ignore the last byte when making routing decisions.\par
}\pard \fi-1080\li1080\tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 If you have a domain name server, add a command near the beginning of your configuration file identifying its IP address\:\par
}\pard \tx1080\tx1800 {\plain \b\f21 \tab domain addserver [44.70.12.34]\par
}\pard \fi-1080\li1080\tx1080\tx1800 {\plain \f21 \par
}\pard \keepn\tx1080\tx1800 {\plain \f21 If you have a local mail server that knows how to route messages outside the area (see the discussion of electronic mail, below), add a command identifying it\:\par
}\pard \tx1080\tx1800 {\plain \b\f21 \tab smtp gateway [44.70.12.34]}{\plain \f21 \par
}{\plain \b\f21 \par
\par
Storing Name/Address Matches in DOMAIN.TXT\par
}{\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 If you don't have a local domain name server (}{\plain \b\f21 DNS}{\plain \f21 ), you'll need to create "}{\plain \b\f21 DOMAIN.TXT}{\plain \f21
" in the root directory, with one entry for every hostname you want to communicate with.  Appendix D shows how to set up this file.  If you }{\plain \f21\ul don't}{\plain \f21  have an entry for a host i
n the file (or the name server doesn't know about it), you can use the IP address instead of the hostname in NOS commands.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 If you're using DNS, NOS will save the hostname/address matches it gets from the server in }{\plain \b\f21 DOMAIN.TXT}{\plain \f21 , so you'll find that file existing (and growing) even if you didn't create it.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
\par
}{\plain \b\f21 Giving the Finger\par
}{\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 If you want users to be able to learn about your station with the finger command, you need to create a text file in the }{\plain \b\f21 \\finger}{\plain \f21  directory called }{\plain \b\f21 <hostname>.txt }{\plain
\f21 (by the way, when we use a
ngle brackets like this, it means this is a value you'll need to insert yourself -- minus the angles -- based on your own configuration).  You can use any ASCII text editor to create the file; it should contain basic info about your system.  Don't go overb
oard... one screen of text is plenty.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 You can also create additional files with information about specific aspects of your system.  For example, you might have a list of the files available for downloading on your system in a finger file called "filelist.
txt."  A remote host who issues the command "}{\plain \b\f21 finger filelist@<myhost>}{\plain \f21 " will get that list.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
\par
}{\plain \b\f21 Some Boring but Necessary Technical Stuff\par
}{\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21
Before we move on to the good stuff about how to make NOS do magic, we need to talk about three related commands that you may need to tweak depending on local custom and the quality of the RF paths you're using.  Just as regular AX.25 uses the }{\plain
\b\f21 "paclen}{\plain \f21 " command to limit the size of packets, TCP/IP has parameters defining how much data is moved in one chunk.  In theory, the larger the }{\plain \b\f21 datagram}{\plain \f21
(TCP/IP's term for a single block of data), the higher the efficiency, because the protocol headers add a fixed amount of overhead; in larger datagrams the overhead is a smaller percentage of the total data sent.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21
However, some networks (such as NetRom) can't handle large datagrams in one piece.  More importantly, the larger the datagram, the longer it takes to transmit, and on a busy or flaky path, the greater the likelihood that something will corrupt it along the
way.  And, it takes lo
nger to resend a large packet than a small one, so the cost of retries is greater.  Because of these factors, a fast network with clear channels and solid paths can get away with sending much larger datagrams than a slow, unreliable one.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 NOS provides three parameters that deal with datagram sizes.  The most important one is the "}{\plain \b\f21 mtu" }{\plain \f21 (the sixth value in the "}{\plain \b\f21 attach asy}{\plain \f21
" command described above).  It is similar to }{\plain \b\f21 paclen}{\plain \f21 ; it sets the largest packet, including any headers, that can be sent on an interface.  Datagrams larger than the mtu are }{\plain \b\f21 fragmented}{\plain \f21
into multiple pieces, which seriously reduces efficiency.  Each interface has its own mtu, set as part of its attach command.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 For 1200 baud channels that are shared with other packet users, an mtu value of }{\plain \b\f21 256}{\plain \f21
is reasonable; in fact, since that is the largest packet size most non-TCP/IP ham networks (like digipeaters and NetRom) are designed to handle, 256 is the }{\plain \f21\ul largest}{\plain \f21
mtu you should specify if any of your packets are going to travel via such a node.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Faster n
etworks may use higher values.  For good-quality channels with fast data rates (9600 baud or above), it may be reasonable to use an mtu ranging from 512 to 1500 (which matches the standard mtu used by ethernet systems).\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 The other two parameters that set datagram size are part of the TCP protocol.  "}{\plain \b\f21 tcp mss}{\plain \f21
" (maximum segment size) is the largest chunk of data that TCP will send in a single frame.  Because the TCP and IP headers attached to each datagram total 40 bytes, mss should be 40 bytes smaller than mtu; }{\plain \b\f21 216}{\plain \f21
is the correct value for an mtu of 256.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 The "}{\plain \b\f21 tcp window}{\plain \f21
" parameter tells NOS how many datagrams it can have outstanding at once -- if it is twice the value of mss, NOS can receive two datagrams before sending an acknowledgment.  This parameter is analogous to the "}{\plain \b\f21 maxframe}{\plain \f21
" parameter in AX.25.  A large window improves efficiency because, among other things, multiple acknowledgments can be sent in a single packet.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Although using a large window has major benefits on full duplex networks, on typical h
am networks best performance comes from smaller windows ranging from one to three times the mss.  A good starting point is to set the window equal to twice the value of mss (}{\plain \b\f21 432}{\plain \f21  for an mss of 216).\par
}\pard \tx1080\tx1800 {\plain \f21 \par
In summary, good starting points are\:\par
\par
}\trowd \trgaph108\trleft717 \cellx2682\cellx5562\cellx8442\pard \intbl\tx1080\tx1800 {\plain \f21 \cell }\pard \qc\intbl\tx1080\tx1800 {\plain \b\f21 1200 baud\par
shared channel\cell 9600 baud or higher\par
clear channel\cell }\pard \intbl {\plain \f21 \row }\pard \intbl\tx1080\tx1800 {\plain \b\f21 mtu\cell }\pard \qc\intbl\tx1080\tx1800 {\plain \f21 256\cell 1500\cell }\pard \intbl {\plain \f21 \row }\pard \intbl\tx1080\tx1800 {\plain \b\f21 tcp mss\cell
}\pard \qc\intbl\tx1080\tx1800 {\plain \f21 216\cell 1460\cell }\pard \intbl {\plain \f21 \row }\pard \intbl\tx1080\tx1800 {\plain \b\f21 tcp window\cell }\pard \qc\intbl\tx1080\tx1800 {\plain \f21 432\cell 2920\cell }\pard \intbl {\plain \f21 \row
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Even more than in other parts of this manual, this discussion glosses over }{\plain \f21\ul lots}{\plain \f21  of subtleties.  Throughput can be drastically affected by tuning these values,
and both experimentation and local consensus are necessary to come up with settings that work well without stomping on other users of the channel.\par
}\pard \tx1080\tx1800 {\b\i\f21\fs28\ul \par
\par
}\pard \keepn\tx1080\tx1800 {\b\i\f21\fs28\ul Using NOS\par
}\pard \keepn\tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 To run NOS, first make sure you have your TNC configured for "}{\plain \b\f21 KISS}{\plain \f21 " mode (see Appendix F for details) and turned on.  Then, type }{\plain \b\f21 NET}{\plain \f21 ,}{\plain \b\f21  NOS}
{\plain \f21 , or }{\plain \b\f21 GRINOS}{\plain \f21  (as appropriate).  In a few seconds, you should see a "}{\plain \b\f21 net>}{\plain \f21
" prompt.  Any error messages that appear first probably indicate a problem with one or more commands in your AUTOEXEC.NET file.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 When you see the prompt, NOS is in "}{\plain \b\f21 command mode}{\plain \f21 ."  When you are communicating with another host, NOS is in "}{\plain \b\f21 converse mode}{\plain \f21
"  To return to command mode from converse mode, press the}{\plain \b\f21  F10}{\plain \f21  function key (sometimes called the "}{\plain \b\f21 escape}{\plain \f21
" key, but not to be confused with the "ESC" key on your keyboard).  All commands typed at the NOS prompt need to be followed by the return key.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Typing "}{\plain \b\f21 ?}{\plain \f21 " in command mode will display a list of commands.  Typing a command name followed by ? will display the valid subcommands.  You can't really c
all it a help system, but it's better than nothing.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21
Some commands can be abbreviated to save typing; the degree of abbreviation allowed depends on the command set of the NOS version you're using.  Experimentation is the best way to see what works and what doesn't.  One minor annoyance in GRINOS is that }
{\plain \b\f21 commands are case sensitive}{\plain \f21  -- "c ax0 n8acv" is fine,  but "C ax0 n8acv" isn't.  It's safest to do all your NOS keyboarding in lower case -- apart from case sensitive commands, in the Email world, typing in
all upper case is considered shouting!\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 You can issue several commands from within NOS to deal with files and directories.  "}{\plain \b\f21 pwd}{\plain \f21 " displays your current working directory, and "}{\plain \b\f21 cd}{\plain \f21
" allows you to change directories.  "}{\plain \b\f21 dir}{\plain \f21 " displays files in the current directory.  "}{\plain \b\f21 mkdir <dirname>" }{\plain \f21 creates a new directory, and "}{\plain \b\f21 rmdir <dirname>}{\plain \f21 " removes one.  "
}{\plain \b\f21 delete <filename>}{\plain \f21 " erases a file.  \par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 You can also "shell out" to DOS from within NOS by entering either an exclamation mark (}{\plain \b\f21 !}{\plain \f21 ) or the command "}{\plain \b\f21 shell}{\plain \f21 ."  To return to NOS, type "}{\plain \b\f21 exit
}{\plain \f21 " at the DOS prompt.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 From command mode, you can start a number of different types of }{\plain \b\f21 sessions }{\plain \f21
to communicate with remote hosts.  Each session has its own display screen and you can switch between a session and command mode, or between sessions.  The }{\plain \b\f21 se}{\plain \f21
command displays the active sessions with identifying numbers.  To switch to a session, you can type "}{\plain \b\f21 se <session number>}{\plain \f21
"  From command mode, you can return to the current (most recently displayed) session by entering a carriage return.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 You can capture incoming data from the current session to a disk file by using the "}{\plain \b\f21 record <filename>}{\plain \f21 " command, and you can read in a data file from disk with the "}{\plain \b\f21
upload <filename>}{\plain \f21 " command.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 To close a session, press F10 to return to command mode and enter "}{\plain \b\f21 close <session number>}{\plain \f21 ."  If there's only one session open, you can just enter "}{\plain \b\f21 close}{\plain \f21
"  You can also end the session by issuing the appropriate exit or quit command at the remote host's prompt.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 The most common NOS session types are probably "}{\plain \b\f21 telnet}{\plain \f21 ," its cousin "}{\plain \b\f21 ttylink"}{\plain \f21 , "}{\plain \b\f21 ftp}{\plain \f21 ," and a regular packet "}{\plain \b\f21
connect}{\plain \f21 " (technically called an "}{\plain \b\f21 ax25" }{\plain \f21
session).  Telnet is used to "login" to a remote host, ttylink is a kind of telnet specially designed for keyboard-to-keyboard communications, ftp handles file transfers, and ax25 sessions allow you to carry on normal packet activity.  We'll talk about ax2
5 sessions first, since they give you a chance to test your setup without having another TCP/IP station on the air.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
\par
}{\plain \b\f21 AX.25 Mode\par
}{\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 The "}{\plain \b\f21 connect}{\plain \f21 " command simply lets you do
normal packet radio stuff.  Establishing an ax25 connect through NOS is like using the standard TNC commands with a few small differences.  First, since NOS can support several interfaces, each with its own hardware, you need to tell NOS which one to use.
\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 So, to connect to N8ACV on interface ax0, enter "}{\plain \b\f21 connect ax0 N8ACV}{\plain \f21
"  Once you get a "Connected" message, you'll be able to type to the station at the other end just as you would with normal packet.  In addition to closing the session as described above, you can exit an ax25 session by typing "}{\plain \b\f21 disconnect
}{\plain \f21 " at the command mode prompt.  (Just as with a TNC, these commands can be abbreviated; just how few of the letters are necessary will depend on each implementation of NOS and the commands it supports).\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 The other minor difference between the NOS connect command and a regular TNC is that the word "}{\plain \b\f21 via}{\plain \f21 " is }{\plain \f21\ul not}{\plain \f21
used when specifying digipeaters.  To connect to N8ACV through N8KZA on interface ax0, you would enter "}{\plain \b\f21 connect ax0 N8ACV N8KZA."\par
}\pard \tx1080\tx1800 {\plain \f21 \par
\par
}{\plain \b\f21 Telnet\par
}{\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 The "}{\plain \b\f21 telnet}{\plain \f21 "
command logs you in to a remote TCP/IP host; depending on the capabilities of that host, you might find yourself chatting directly with the user at the other end, connecting to the NOS mailbox, "}{\plain \b\f21 mbox}{\plain \f21
" (which acts very much like a sophisticated personal PBBS), or getting a UNIX "login\:" prompt.  To establish a telnet session, enter "}{\plain \b\f21 telnet <hostname>}{\plain \f21 " at the command prompt.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Some versions of NOS offer a new type of session that improves on telnet for real-time keyboard-to-keyboard chats.  It's called "}{\plain \b\f21 ttylink}{\plain \f21
," and it works just like telnet (for example, start a session with}{\plain \b\f21  "ttylink <hostname>}{\plain \f21
") except that it connects you directly to the remote host's chat mode, and uses a split-screen format to make things less confusing as you type to each other.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 You'll get a message like "Telnet session 1 failed\:
Reset/Refused errno 9" if the remote host doesn't support ttylink.  If the operator at the other end isn't available to chat, you'll get a message like "The system is unattended."  You'll still be able to type,
but there won't be anyone there to reply.  You can change the status on your machine by setting the "}{\plain \b\f21 attended}{\plain \f21 " command to either }{\plain \b\f21 on}{\plain \f21  or }{\plain \b\f21 off}{\plain \f21
 You might want to put this command in your AUTOEXEC.NET file to set your default status.  You exit from ttylink just as you would from telnet.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 And now a note from Miss Manners\:  you should }{\plain \b\f21 never}{\plain \f21
simply exit from the NOS program when you have an open session.  Doing so can cause great unpleasantness at the remote host.  Unless you're in some sort of software or hardware lockup, or you }{\plain \b\f21 know}{\plain \f21
that the station on the other end has gone away, always close sessions and wait for confirmation before exiting the program.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21
You should also be aware that your system may have started sessions in the background, for example to transfer electronic mail, or someone else may have started a session with your system.  You may not even know these sessions are running.  Pulling the plu
g on them would be very impolite.  Before exiting NOS, you should first use the }{\plain \b\f21 se}{\plain \f21  command to make sure there are no current sessions running, and then the "}{\plain \b\f21 tcp status}{\plain \f21
" command to see if there are any background connections established.  "}{\plain \b\f21 tcp status"}{\plain \f21  will show you a long and confusing list of information; the important stuff at the end is the list of }{\plain \b\f21 sockets}{\plain \f21
(which are services your system can either offer or request on the network).  If anything other than "}{\plain \b\f21 Listening}{\plain \f21 " appears in the }{\plain \b\f21 Status}{\plain \f21
column, that means there's at least one remote host communicating with you.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
\par
}{\plain \b\f21 File Transfers\par
}{\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 You initiate a file transfer (ftp) session by entering "}{\plain \b\f21 ftp <hostname>}{\plain \f21
" at the command prompt.  Once the session is established, the remote host will prompt you for a user name and a password.  If your hostname and password have been added to the remote host's }{\plain \b\f21 FTPUSERS}{\plain \f21
file, you'll have the ability to download and perhaps upload files in the directories permitted you.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 If you haven't arranged with the remote host for your own account, you can try to login as "}{\plain \b\f21 anonymous}{\plain \f21 " or "}{\plain \b\f21 guest}{\plain \f21
;" many systems support these user names and grant limite
d (usually download-only) privileges to them.  If you login under one of these accounts, you should enter your hostname as the password; that allows the remote host to keep track of who's been using the system.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Once you've logged in, you'll see a new prompt\: "}{\plain \b\f21 ftp>}{\plain \f21
"  This will remind you that you're actually issuing commands to the remote computer.  From the ftp> prompt, you can list the files in a directory, change directories, upload files, or download files.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 To list files, enter "}{\plain \b\f21 dir}{\plain \f21 " at the ftp> promp
t.  You will get a listing that shows subdirectories (if any) and files together with their dates and sizes.  To show the current directory name, type "}{\plain \b\f21 pwd}{\plain \f21 ."  To change directories, issue the "}{\plain \b\f21 cd <directory>}
{\plain \f21 " command.  Note that directories are displayed with a forward slash (}{\plain \b\f21 /}{\plain \f21 ) instead of the usual MS-DOS backslash (}{\plain \b\f21 \\}{\plain \f21
).  That's because the UNIX operating system, which is TCP/IP's natural home, uses forward slashes.  If the remote host is running NOS, you can use either character, but some other systems (pa
rticularly those running UNIX) will recognize only the forward slash.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Once you've found a file you want to upload or download, you need to make a decision.  ftp can transfer the file either as an "}{\plain \b\f21 image}{\plain \f21 " file, byte for byte, or as an "}{\plain \b\f21 ascii}
{\plain \f21 " file, converting the line-end character as necessary to compensate for different operating systems (UNIX uses only a linefeed character at the end of lines; MS-DOS uses carriage return/linefeed).  Before beginning a file transfer, enter "}
{\plain \b\f21 type i}{\plain \f21 " for an image file, or "}{\plain \b\f21 type a}{\plain \f21 " for an ASCII file, at the ftp> prompt.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 What are the consequences choosing the wrong transfer type?  Well, transferring a binary file as type}{\plain \b\f21  "a}{\plain \f21 " will almost certainly fail.  Transferring an ASCII file as type}{\plain \b\f21  "i"
}{\plain \f21 will work, but you may find that the line-ends are screwed up.  ASCII transfers are also quite a bit slower than image, because each line needs to be processed separately.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 To actually start a file transfer, use the command "}{\plain \b\f21 put <local filename> <remote filename>}{\plain \f21 " to send a file, or "}{\plain \b\f21 get <remote filename> <local filename>}{\plain \f21
" to receive one.  The file name can include a full path if you desire; remember to use the proper path separator character for the remote host.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21
If you only specify one filename, ftp will assume that both the local and remote hosts will use the same name.  This can be dangerous if the remote host uses a different operating system than you do, as it may have filenames that are illegal on your system
\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 If a file transfer goes awry, you can terminate it by going to command mode via F10 and issuing the "}{\plain \b\f21 abort}{\plain \f21 " command.  To end an ftp session, you can either type "}{\plain \b\f21 quit}
{\plain \f21 " at the ftp> prompt (the preferred way), or you can close the session from the net> prompt.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 If you want others to be able to access files on your system, you'll need to set up an }{\plain \b\f21 FTPUSERS}{\plain \f21  file in your root directory.  Appendix E describes the contents of that file.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Another message from Miss Manners\:  transferring files via ftp is reliable, but can be slooooow, particularly at 1200 baud.  Before you start downloadi
ng a 250 kilobyte file, consider how busy the channel is, and whether you want to tie things up for (perhaps) several hours by your download.  NOS is polite and won't hog the channel, but don't doubt that a large file transfer will slow things down for eve
ryone else.\par
}\pard \tx1080\tx1800 {\plain \b\f21 \par
\par
}\pard \keepn\tx1080\tx1800 {\plain \b\f21 Other Protocols\par
}{\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 The "}{\plain \b\f21 ping}{\plain \f21 " protocol mentioned above is very useful to see if a remote host is on the air.  Just enter the command "}{\plain \b\f21 ping <hostname>}{\plain \f21
" at the NOS prompt.  If the host is available, you will see a response indicating what the round-trip time was to that host.  The time may be many seconds if you're going through gateways, so be patient.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 The "}{\plain \b\f21 finger}{\plain \f21 " protocol lets you see information about a remote host's users and services.  Entering "}{\plain \b\f21 finger @<hostname>}{\plain \f21
" (note the slightly different syntax -- the "}{\plain \b\f21 @}{\plain \f21 " symbol must immediately precede the remote hostname) will display a list of the finger files (described above) at that host.  Entering "}{\plain \b\f21 finger <user@hostname>}
{\plain \f21 " will display the text file for that user.\par
}\pard \tx1080\tx1800 {\b\i\f21\fs28\ul \page Electronic Mail\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 We've saved NOS's electronic mail capabilities for last because they are a bit more involved than some other parts of the program.  You use two programs to handle mail\:  }{\plain \b\f21 BM}{\plain \f21  (a "}{\plain
\b\f21 user}{\plain \f21  }{\plain \b\f21 mail agent}{\plain \f21 ," in UNIX terms) to write and read messages, and NOS to send and receive them.  First we'll talk about reading and writing messages, and then about using NOS to transport them.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
\par
}{\plain \b\f21 Using BM.EXE to Read and Write Messages\par
\par
}\pard \tx1080\tx1800 {\plain \b\f21 BM.EXE}{\plain \f21  is a program that reads and writes mail message in the format TCP/IP systems recognize.  Contrary to popul
ar belief, "BM" stands for "Bdale's Mailer" in honor of its creator, Bdale Garbee.  You can run BM from the DOS prompt just like any other program, from within NOS by shelling to DOS with}{\plain \b\f21  !}{\plain \f21  or }{\plain \b\f21 shell}{\plain
\f21 , or (in GRINOS) by typing the }{\plain \b\f21 mail}{\plain \f21  command from the net> prompt.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Before using BM, you need to create its configuration file, }{\plain \b\f21 BM.RC}{\plain \f21
, which must live in the root directory of your disk.  An annotated BM.RC file is included as Appendix G.  Only the first three commands in the sample file are absolutely necessary to make BM work.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 There's a bit of controversy in some areas over the proper name to enter for "}{\plain \b\f21 user}{\plain \f21
" in BM.RC.  Some folks recommend using either your first name, or your initials (for example, my address would be "[email protected]") while other suggest using the callsign instead ("[email protected]").\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 While using the callsign may seem more impersonal, it has }{\plain \b\f21 major}{\plain \f21  advantages when mail is moving between TCP/IP and the packet BBS system, or when using the }{\plain \b\f21 POP}{\plain \f21
server; we strongly recommend that you use the "callsign@hostname" format unless the locals object even more strongly.  It's important to be consistent within the area, so that everyone knows how to address mail to everyone else.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 When you start BM, you'll see a prompt such as "}{\plain \b\f21 ag9v>" }{\plain \f21 showing the default mailbox (based on the "}{\plain \b\f21 user}{\plain \f21
" entry in BM.RC).  As in NOS, you enter commands at the prompt, following them with a carriage return.  Most BM commands are single letters, optionally followed by a mail addressee or a message number (or numbers).\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 To send mail, use the command "}{\plain \b\f21 m <addressee>}{\plain \f21
"  The addressee will normally be a user at a remote host; for example, ag9v might send mail to k8gkh@k8gkh.  The single biggest problem with BM is }{\plain \b\f21 forgetting to include the hostname}{\plain \f21
-- in other words, sending mail to <user> rather than <user>@<hostname>.   Without the hostname, BM will think the user is on your local system, and the mail will end up being stored in a mailbox under that user's name on your own system.  That doesn't wo
rk too well.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 One way to solve that problem, and do some other interesting things, is to create an }{\plain \b\f21 ALIAS}{\plain \f21
file in your root directory.  When you send a message, BM will compare the addressee with the alias file, and if it finds a match will replace the alias with a full address from the file.  An alias can point to a list of addresses, so it's possible to def
ine an alias that will send a copy of the message to everyone in your local group.  A sample alias file might look like\:\par
}\pard \li1080\tx1080\tx1800 {\plain \f21 \par
greg\tab [email protected]\par
bill\tab [email protected]\par
club\tab [email protected] [email protected]\par
\tab [email protected] [email protected]\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 The alias for "club" demonstrates two things\:  a single alias can expand to several addresses, and you can continue a long address list on subsequent lines by indenting them with spaces or a tab character.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Now, if you send mail to "greg" it will automatically be expanded to the full address, and by sending a message to "club" all four users will get a copy.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 By the way, you do }{\plain \f21\ul not}{\plain \f21  use a trailing dot after an FQDN (as discussed above) in Email addressing; doing so will screw things up.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 If you use BM's built-in editor to compose messages, remember that it doesn't wrap lines; you have to hit the carriage return at the end of each line.  Use the "}{\plain \b\f21 l}{\plain \f21
" command to list outbound mail; you can kill an outbound message with the}{\plain \b\f21  "k <msg#>}{\plain \f21 " command, using the message number obtained from the "}{\plain \b\f21 l}{\plain \f21 " command.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Several commands are used to deal with incoming mail.  "}{\plain \b\f21 h}{\plain \f21 " displays the headers (summary info) about messages in your mailbox.  It is the b
asic command you should use to check your incoming mail.  Each header displayed includes a message number to use with the other message manipulation commands.  Commands given without a message number act on the current message (the one marked with an "}
{\plain \b\f21 >}{\plain \f21 " in the display from the "}{\plain \b\f21 h}{\plain \f21 " command); if there's only one message, it is always the current one.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 BM can support multiple users at a single host; a separate mailbox is created for each user.  Unfortunately, BM has no way of knowing if incoming mail addresse
d to <someuser>@<yourhost> is valid, so it will happily accept such mail and create a new mailbox for <someuser>.  You may never know it's there, unless you use the}{\plain \b\f21  "n}{\plain \f21
" command to display the list of mailboxes.  You can also use "}{\plain \b\f21 n}{\plain \f21 " to change to a different mailbox\: "}{\plain \b\f21 n <mbox>}{\plain \f21 ."\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 The commonly used commands (which may be followed by one or more message numbers if appropriate) are\:\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \fi-1080\li1080\tx1080\tx1800 {\plain \b\f21 msg#\tab }{\plain \f21 message number by itself will display that message and set it as the current message.\par
}\pard \tx1080\tx1800 {\plain \b\f21 r}{\plain \f21 \tab reply to a message.\par
}{\plain \b\f21 d}{\plain \f21 \tab delete a message.\par
}\pard \fi-1080\li1080\tx1080\tx1800 {\plain \b\f21 s}{\plain \f21 \tab save a message; if a file name follows the message number(s), the message(s) will be saved in that file.  Otherwise, they'll be saved in the default mbox file.\par
}\pard \fi-2160\li2160\tx1080\tx1800 {\plain \b\f21 u}{\plain \f21 \tab undelete a message previously marked for deletion.\par
}{\plain \b\f21 p}{\plain \f21 \tab print a message on the local printer.\par
}{\plain \b\f21 w}{\plain \f21 \tab save a message to a file without including headers.\par
}{\plain \b\f21 f}{\plain \f21 \tab forward a message to another recipient.\par
}\pard \fi-1080\li1080\tx1080\tx1800 {\plain \b\f21 b}{\plain \f21 \tab bounce a message.  Like forward, but keeps the original sender information intact (i.e., the message will not appear to have been sent by you).\par
}\pard \fi-1080\li1080\tx1080\tx1800 {\plain \b\f21 $}{\plain \f21 \tab update the mailbox.  This deletes messages marked for deletion and reads in any new mail that may have arrived since you started BM.\par
}\pard \fi-1080\li1080\tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 There are two commands that exit from BM\:  "}{\plain \b\f21 x}{\plain \f21 " will exit without updating the mailbox.  In other words, the same messages will be there the next time you run the program.  "}{\plain \b\f21
q}{\plain \f21 " updates the mailbox (like "$") and then exits.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Outbound mail created by BM is stored in the \\spool\\mqueue directory, where it waits patiently until one of NOS's servers (SMTP or POP) attempts to send it to its destination.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
\par
}{\plain \b\f21 Moving Mail With NOS\par
}{\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Now, to the mechanics of getting mail into and out of your system.  All mail that you create is sent to its destination (or at least to the next stop on the way) by the "}{\plain \b\f21 smtp}{\plain \f21
" server in NOS.  The "}{\plain \b\f21 smtp timer}{\plain \f21 " command (set in AUTOEXEC.NET) tells smtp how often to scan the \\spool\\
mqueue directory for outgoing mail.  When it finds some, it attempts to open an smtp session to the remote host in the address and send the mail there.  There's no default for the smtp timer value, so your AUTOEXEC.NET file should include something like "
}{\plain \b\f21 smtp timer 600}{\plain \f21 " (which scans for mail every ten minutes).  You can manually force smtp to scan the queue by issuing the "}{\plain \b\f21 smtp kick}{\plain \f21 " command from the net> prompt.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 If you have a local mail server with connections to the outside world, you can use it to route mail for hosts that aren't in your domain file with the "}{\plain \b\f21 smtp gateway <hostid>}{\plain \f21 " command.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Incoming mail can arrive at your station when a remote host does this and starts an smtp session with you
 But if you don't keep your station up 24 hours a day, the remote host will be trying, and trying, and trying, to connect with you until you finally show up.  A far better approach is to use}{\plain \b\f21  "POP}{\plain \f21 " -- the }{\plain \b\f21 P}
{\plain \f21 ost }{\plain \b\f21 O}{\plain \f21 ffice }{\plain \b\f21 P}{\plain \f21
rotocol.  If your system runs POP, and someone in the area has agreed to be a POP server, NOS will automatically contact that server when you come on the air; the server will respond by sending the mail waiting in your mailbox.  You can then read it with B
M just as if it had arrived via smtp.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 To use POP, the server must establish a mailbox and password for you, and you need to add the appropriate commands to your AUTOEXEC.NET file (see the annotated AUTOEXEC.NET file in Appendix B).\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Remember that smtp or POP sessions may be running in the background without your knowing about it.  Always check for activity with the}{\plain \b\f21  "tcp status}{\plain \f21 " command before pulling the plug!\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Additionally, smtp creates lock files in \\spool\\mqueue when it tries to send outgoing mail.  If NOS is killed before the mail transfe
r has succeeded, these files (with the extension ".LCK") will be left behind and if they are not manually removed, they will prevent smtp from trying again to send those messages.  To prevent this, you should always issue the command "erase \\spool\\
mqueue\\*.LCK" before starting NOS.  It's a good idea to launch NOS using a batch file that removes the locks before executing the program.\par
}\pard \tx1080\tx1800 {\b\i\f21\fs28 \page }{\b\i\f21\fs28\ul Conclusion\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 This has been a whirlwind tour of TCP/IP.  Once you have the software installed, it's not hard to use, and NOS truly opens the door to enjoying packet radio in a whole new way.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 To learn the subtleties of NOS, you should do two things\:
 read the reference manual for the version you're using, and experiment with the program.  Once you know the ins and outs, please share your knowledge with others.  The ham radio TCP/IP community is still small, and we need all the Elmers we can get!
\par
}\pard \tx1080\tx1800 {\plain \f21 \par
\par
John Ackermann   AG9V\par
2371 Stewart Road\par
Xenia, OH   45385\par
\par
TCP/IP\:\tab \tab [email protected].  [44.70.12.34]\par
PBBS\:\tab \tab [email protected]\par
Internet\:\tab \tab [email protected]\par
CompuServe\:\tab 72300,1160\par
}\pard \qc\tx1080\tx1800 {\plain \f21 \page }{\plain \b\f21 APPENDIX A\par
}\pard \qc\tx1080\tx1800 {\plain \b\f21 Resources for NOS and TCP/IP\par
}\pard \tx1080\tx1800 {\plain \b\f21 \par
}\pard \tx1080\tx1800 {\plain \b\f21 (Note\:  This is a very incomplete list; please feel free to provide additional resources to add for the next edition!)\par
}\pard \tx1080\tx1800 {\plain \b\f21 \par
TAPR\par
P.O. Box 22888\par
Tucson, AZ   85734\par
\par
The New England TCP Association\par
3628 Acushnet Ave.\par
New Bedford, MA   02745\par
\par
}\pard \qc\tx1080\tx1800 {\plain \b\f21 \page APPENDIX B\par
}\pard \qc\tx1080\tx1800 {\plain \b\f21 Sample AUTOEXEC.NOS File for GRINOS\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard {\plain \f21 # AUTOEXEC.NET\par
# This is a sample autoexec file for GRINOS version N1BEE 0.72.\par
# It doesn't have all the fancy features one might hope for, but\par
# the basics are there, with some hopefully useful comments.\par
# Any line beginning with a "#" character is treated as a comment.  To\par
# uncomment a line, delete the # character\par
\par
# These are a couple of things for NOS to use internally.\par
mem eff on\par
watchdog on\par
nibufs 10\par
\par
# NOS needs to know three things about you\:  your hostname, your \par
# ham callsign, and your IP address.  By convention, the hostname \par
# is your callsign in lower case, followed by ".ampr.org".  The \par
# callsign is generally used in upper case to distinguish it.\par
# The IP address comes from a local area coordinator.  Note that there are\par
# a minimum of three places in this file where you need to insert your IP\par
# address -- here, in the ifconfig command, and at the end of each attach\par
# command.\par
hostname nocall.ampr.org\par
ax25 mycall NOCALL\par
ip address [44.xx.xx.xx]\par
\par
# This should match your IP address\par
ifconfig loopback ipaddress [44.xx.xx.xx]\par
\par
# This makes short forms of the hostname work.\par
domain suffix ampr.org.\par
\par
# NOS needs to know how to convert hostnames to IP addresses.\par
# You can do this manually via the "DOMAIN.TXT" file, or you can \par
# use a nameserver if one is available.  To enable the\par
# nameserver, uncomment this line and plug in its correct \par
# address.\par
#domain addserver [44.xx.xx.xx]\par
\par
}\pard {\plain \f21 # Some additional commands for the domain service.  Don't turn translate\par
}\pard {\plain \f21 # on unless you have a small domain file and/or a fast machine.\par
domain verbose off\par
domain cache size 40\par
domain translate off\par
\par
}\pard {\plain \f21 \page # To use POP, uncomment these lines.  Fill in "pop mailhost" with the\par
}\pard {\plain \f21 # IP address of the station serving as your POP server.  Fill in the "pop\par
# mailbox" name with your hostname, i.e., your call.  The "pop userdata"\par
# line needs to have your hostname, followed by a password\par
# (as negotiated with your mail server).  "pop timer" sets\par
# how often, in seconds, to query for mail.\par
#pop mailhost [44.xx.xx.xx]\par
#pop mailbox hostname\par
#pop userdata hostname password\par
#pop timer 1800\par
\par
#.Attach commands are complex; these are samples for COM 1\par
# and 2.  See Appendix C for details.  Uncomment the\par
# appropriate line(s) for your hardware.\par
# COM1 -- 256 byte MTU, 4800 baud serial link as ax0\par
attach asy 0x3f8 4 ax25 ax0 2048 256 4800\par
# COM2 -- 256 byte MTU, 4800 baud serial link as ax1\par
#attach asy 0x2f8 3 ax25 ax1 2048 256 4800\par
\par
# This is the basic route, sending everything out ax0 \par
route add default ax0 \par
\par
# These are tcp parameters you shouldn't need to mess with.\par
ip ttl 16\par
ip rtimer 240\par
tcp irtt 3000\par
\par
# On a shared channel, you may want to change timertype to\par
# exponential; that's more courteous, but will slow your \par
# retries down significantly.  mss and window should ordinarily be the same\par
# value, equal to the largest mtu set in the attach command(s) above minus\par
# 40.  With the common mtu for 1200 baud channels of 256, that means\par
# both mss and window should be 216.\par
tcp timertype linear\par
tcp bblimit 16\par
tcp mss 216 \par
tcp window 216\par
\par
# These set up AX.25 parameters\par
ax25 digipeat off\par
ax25 maxframe 1\par
ax25 paclen 256\par
ax25 retry 20\par
ax25 window 4096\par
ax25 blimit 15\par
ax25 version 2\par
\par
}\pard {\plain \f21 \page # as with tcp timertype, you may want to set this to \par
}\pard {\plain \f21 # exponential on a shared channel.\par
ax25 timertype linear\par
\par
# These are netrom setup commands.  Don't turn them on \par
# unless you need them, and you know what you're doing.  You\par
# can really screw up the network by putting out netrom \par
# broadcasts that don't fit with the configuration of the \par
# "real" netrom nodes that can hear you.\par
#attach netrom\par
#netrom interface ax0 MYALIAS 192\par
#netrom obsotimer 1800\par
#netrom nodetimer 10800\par
#netrom verbose yes\par
#netrom bcnodes ax0\par
#netrom ttl 8\par
\par
# These start the servers.\par
start smtp\par
start ftp\par
start echo\par
start discard\par
start telnet\par
start finger\par
start ax25\par
\par
# Uncomment this line to enable logging.\par
#log \\spool\\net.log\par
\par
# Default file type for ftp transfers.  Type image is for binary files; type\par
# ascii is for text; it's safest to set the default to image.\par
ftype image\par
\par
# This makes telnet sessions to Unix systems work\par
# line-by-line, rather than character-by-character.\par
echo refuse\par
\par
# Tell smtp how often to scan for outgoing mail\par
smtp timer 600\par
smtp batch on \par
\par
# grinos can send a string of commands to the TNC on startup.  You could\par
# use this to force the TNC into KISS mode.  Note that you need to specify\par
# which interface to use.  This must be done <after>defining the interface,\par
# and <before>any data is sent to the TNC (for example, by the smtp and\par
# pop kick commands below) These commands will do that for a TNC2\:\par
comm ax0 "kiss on"\par
comm ax0 "reset"\par
\par
# kick the smtp and POP servers at startup.  Only uncomment the "pop\par
# kick" line if you've defined a POP server above.\par
smtp kick\par
#pop kick\par
\par
# GRINOS (but not other versions) can define the function \par
# keys with macros to make things a bit easier.  Here are a \par
# couple of examples.  Note that each command must end with \par
# a "\\n" to signify a carriage return.  The numbers \par
# represent the keys; 59 - 68 for F1- F10 (though F10 can't\par
# be redefined; it's always the escape key), 84 - 93 for \par
# shiftF1 - shift F10, 94 - 103 for ctrlF1 - ctrlF10, 104 -\par
# 113 for altF1 - altF10.\par
fkey 59 "tcp status\\n"\par
fkey 60 "mem status\\n"\par
fkey 61 "status\\n"\par
\par
}\pard \tx1080\tx1800 {\plain \f21 # THE END\par
}\pard \qc\tx1080\tx1800 {\plain \f21 \page }{\plain \b\f21 APPENDIX C\par
}\pard \qc\tx1080\tx1800 {\plain \b\f21 Designing ATTACH Commands\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 NOS supports a number of versions of the }{\plain \b\f21 attach}{\plain \f21  command to deal with different hardware.  We'll discuss three of them here\:  }{\plain \b\f21 asy}{\plain \f21
, used for serial port connections; }{\plain \b\f21 pi}{\plain \f21 , used to connect to the Ottawa PI card; and }{\plain \b\f21 packet}{\plain \f21
, used to interface to hardware supporting the FTP, Inc., packet driver protocol.  As usual, this discussion covers the basics; see the NOS reference manual for details on all the many options.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Hosts normally have a separate IP address for each interface.  If you are running more than one interface, you can include that interface's IP address (in [xx.xx.xx.xx] form) at the end of the attach command.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 The asy version provides an interface to a standard PC serial port.  The syntax is\:\par
}\pard \tx1080\tx1800 {\plain \b\f21 \par
}\pard \tx1080\tx1800 {\plain \b\f21 attach asy <ioaddr> <vector> <mode> <if> <bufsize> <mtu> \tab <speed>\par
}\pard \tx1080\tx1800 {\plain \f21 \par
In English, these parameters are\:\par
\par
}\pard \li1080\tx1080\tx1800 {\plain \b\f21 ioaddr}{\plain \f21  -- the address of the COM port being used.  COM1 is usually }{\plain \b\f21 0x3f8}{\plain \f21  and COM2 is usually }{\plain \b\f21 0x2f8}{\plain \f21 .  COM3 and COM4
aren't standardized; using them will require looking at the documentation for your serial card, and probably some experimentation.\par
}\pard \li1080\tx1080\tx1800 {\plain \f21 \par
}\pard \li1080\tx1080\tx1800 {\plain \b\f21 vector}{\plain \f21  -- the IRQ used by the hardware.  COM1 is usually }{\plain \b\f21 4}{\plain \f21 , and COM2 is usually}{\plain \b\f21  3}{\plain \f21 .  Again, COM3 and COM4 vary.\par
}\pard \li1080\tx1080\tx1800 {\plain \f21 \par
}\pard \li1080\tx1080\tx1800 {\plain \b\f21 mode}{\plain \f21  -- this specifies the nature of the interface.  }{\plain \b\f21 ax25}{\plain \f21  is for a connection to a KISS TNC, }{\plain \b\f21 slip}{\plain \f21
for a hardwired connection to another host, }{\plain \b\f21 ppp}{\plain \f21  for a dial-up connection, and }{\plain \b\f21 nrs}{\plain \f21  is for attaching a NOS station to a NetRom node.\par
}\pard \li1080\tx1080\tx1800 {\plain \f21 \par
}\pard \li1080\tx1080\tx1800 {\plain \b\f21 if}{\plain \f21  -- the interface name.  The convention is to use }{\plain \b\f21 ax0}{\plain \f21 , }{\plain \b\f21 ax1}{\plain \f21 , etc., for KISS interfaces.\par
}\pard \li1080\tx1080\tx1800 {\plain \f21 \par
}\pard \li1080\tx1080\tx1800 {\plain \b\f21 bufsize}{\plain \f21  -- the buffer for incoming data, in bytes.  Usually a value of }{\plain \b\f21 1024}{\plain \f21  is more than sufficient for a 1200 baud channel.\par
}\pard \li1080\tx1080\tx1800 {\plain \f21 \par
}\pard \li1080\tx1080\tx1800 {\plain \b\f21 mtu}{\plain \f21  -- the maximum transmission unit size, in bytes.  See the discussion in the main text on this subject.\par
}\pard \li1080\tx1080\tx1800 {\plain \f21 \par
}\pard \li1080\tx1080\tx1800 {\plain \b\f21 speed}{\plain \f21  -- the speed of the serial (not radio) link, in baud.  The best setting for this will depend on the speed of your computer, but generally two to four times the radio speed is adequate.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \keepn\tx1080\tx1800 {\plain \f21 Some sample }{\plain \b\f21 attach asy}{\plain \f21  commands are\:\par
\par
}\pard \tx1080\tx1800 {\plain \f21 \tab # COM1, KISS TNC as ax0, MTU 256, 4800 BAUD\par
}{\plain \b\f21 \tab attach asy 0x3f8 4 ax25 ax0 1024 256 4800\par
\par
\tab }{\plain \f21 # COM2, KISS TNC as ax1, MTU 256, 2400 BAUD\par
}{\plain \b\f21 \tab attach asy 0x2f8 3 ax25 ax1 1024 256 2400\par
}{\plain \f21 \par
\tab # SLIP link, COM1 as sl0, MTU 256, 9600 BAUD\par
}{\plain \b\f21 \tab attach asy 0x3f8 4 slip sl0 1024 256 9600\par
}{\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 The Ottawa PI card is a plug-in board for PCs designed for high-speed performance.  It has two ports, one DMA driven for high speed and the other interrupt driven.  The attach syntax is\:\par
}\pard \tx1080\tx1800 {\plain \b\f21 \par
}\pard \tx1080\tx1800 {\plain \b\f21 attach pi <ioaddr> <vector> <DMA chn> <mode> <name> \tab <bufsize> <mtu> <speed a> <speed b>\par
}\pard \tx1080\tx1800 {\plain \f21 \par
A sample attach command (using the PI's default jumper settings) is\:\par
}{\plain \b\f21 \par
attach pi 380 7 1 ax25 pi0 1750 1024 0 1200\par
}{\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21
In this example, the interface name for the DMA port is "pi0a" and the second port is "pi0b".  Because the port a speed is 0, the PI card expects the modem to provide its own clocking.  The PI attach syntax is explained in the manual provided with the card
\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Finally, the }{\plain \b\f21 packet}{\plain \f21  interface is used to connect to ethernet cards and other hardware that supports
the FTP, Inc. "packet driver" standard.  There's a packet driver for the PI card.  The syntax is\:\par
}\pard \tx1080\tx1800 {\plain \b\f21 \par
attach packet <ioaddr> <vector> <if> <bufsize> <mtu>\par
}{\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 In this case, }{\plain \b\f21 ioaddr}{\plain \f21  and }{\plain \b\f21 vector}{\plain \f21  need to match those used for the packet TSR that supports the hardware.  }{\plain \b\f21 bufsize}{\plain \f21
is the number of packets (not bytes) that may be outstanding.  For ethernet, the standard }{\plain \b\f21 mtu}{\plain \f21  is 1500.\par
}\pard \qc\tx1080\tx1800 {\plain \f21 \page }{\plain \b\f21 APPENDIX D\par
}\pard \qc\tx1080\tx1800 {\plain \b\f21 The DOMAIN.TXT File\par
}\pard \tx1080\tx1800 {\plain \f21 \par
\par
}\pard \tx2304\tx3456\tx4608\tx5760\tx6048\tqdec\tx7200 {\plain \f21 # The domain.txt file contains mappings between hostnames \par
# and IP addresses.  The file can be quite complex, but \par
# basic entries usually resemble this.\par
\par
# Fields are separated by tabs or spaces.\par
\par
# These are normal address records.  The first field is the \par
# hostname.  The second field is a "time to  live" value \par
# returned by the name server.  If you manually create an \par
# entry, you can leave this field  blank.  The third field \par
# is always "IN" to signify these are internet addresses.  \par
# The fourth field is "A" to signify an address record.  The\par
# last field is the address.\par
}\pard \tx2160\tx2880\tx4320\tx5400\tx6480\tqdec\tx7560 {\plain \f21 \par
k8gkh.ampr.org.\tab 3599886\tab IN\tab A\tab 44.70.12.31\par
ag9v.ampr.org.\tab 3585524\tab IN\tab A\tab 44.70.12.34\par
\par
# This is a "canonical name" (CNAME) record that maps an \par
# alias to an official hostname.\par
\par
server.ampr.org.\tab 3599886\tab IN\tab CNAME\tab ag9v.ampr.org.\par
}\pard \qc\tx1080\tx1800 {\plain \f21 \page }{\plain \b\f21 APPENDIX E\par
}\pard \qc\tx1080\tx1800 {\plain \b\f21 Sample FTPUSERS File\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard {\plain \f21 # This file establishes ftp user permissions.  Fields are \par
# separated by exactly one space.  The privileges value is a \par
# bitmask.  The only values significant for ftp are\:\par
\par
# 1 - read only\par
# 3 - read/write\par
# 7 - read/write/overwrite/delete\par
\par
\par
anonymous * /pub 1\tab \tab # no password, read only in /pub\par
friend foobar /pub 3\tab \tab # read/write privileges in /pub\par
}\pard \tx1080\tx1800 {\plain \f21 spouse snoogums / 7\tab \tab # read/write/delete everywhere\par
\par
\par
}\pard \qc\tx1080\tx1800 {\plain \f21 \page }{\plain \b\f21 APPENDIX F\par
}\pard \qc\tx1080\tx1800 {\plain \b\f21 Making Your TNC Talk in KISS MODE\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 Once NOS is installed and your configuration files set, you need to do one more thing\:  get your TNC talking to your computer in }{\plain \b\f21 KISS}{\plain \f21  (}{\plain \b\f21 K}{\plain \f21 eep }{\plain \b\f21 I}
{\plain \f21 t}{\plain \b\f21  S}{\plain \f21 imple, }{\plain \b\f21 S}{\plain \f21
tupid) mode.  KISS is a special protocol that lets your computer do the work of processing packets; the TNC does only the very low-level packet assembly and disassembly functions.  Nearly all TNCs support KISS in one way or another.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21
Typically, you'll need to issue commands to the TNC to set the serial line baud rate to the same speed as you've specified in the attach command, to 8 bit data, and to no parity.  Then, issue the KISS command (on a TNC2, }{\plain \b\f21 kiss on}{\plain
\f21 ), and the TNC's software reset command.  After that, you won't be able to talk to your TNC via the terminal program, but NOS will be able to.  (And don't worry, you can easily return the TNC to normal mode if you want to.)  Once you've done this
, you're set to run NOS.\par
}\pard \tx1080\tx1800 {\plain \f21 \par
}\pard \tx1080\tx1800 {\plain \f21 One trick that grinos supports is the ability to send commands to the TNC during startup.  The }{\plain \b\f21 comm}{\plain \f21
command will send a string of text to the named interface.  For example, to force a Kantronics DataEngine or KAM into KISS mode every time you start NOS, include the following commands in AUTOEXEC.NOS (}{\plain \b\f21 after}{\plain \f21
you've defined the interface with the attach command)\:\par
}\pard \tx1080\tx1800 {\plain \f21 \par
comm ax0 "interface kiss"\par
comm ax0 "reset"\par
\par
}\pard \tx1080\tx1800 {\plain \f21 Note that surrounding the text with quote characters will preserve spaces in the command.\par
}\pard \qc\tx1080\tx1800 {\plain \f21 \page }{\plain \b\f21 Appendix G\par
}\pard \qc\tx1080\tx1800 {\plain \b\f21 A Sample BM.RC File\par
}\pard \tx1080\tx1800 {\plain \f21 \par
# BM.rc\par
\par
# your hostname -- note that for mail we <don't> put a trailing period at\par
# the end of the FQDN.\par
}{\plain \b\f21 host ag9v.ampr.org\par
}{\plain \f21 \par
# the user name (one host can receive mail for several users); usually\par
# your callsign\par
}{\plain \b\f21 user ag9v\par
}{\plain \f21 \par
# your full name, for the message "From\:" line\par
}{\plain \b\f21 fullname John Ackermann\par
}{\plain \f21 \par
# if you want to have replies sent to another host, because, for example,\par
# you are using a POP server, this line specifies where replies should go\par
}{\plain \b\f21 reply [email protected]\par
}{\plain \f21 \par
# for faster screen writes on the pc, use direct video, not bios\par
}{\plain \b\f21 screen direct\par
}{\plain \f21 \par
# if you want to use an editor different than BM's built-in one\par
}{\plain \b\f21 edit ed\par
}{\plain \f21 \par
# put saved messages here; note "/" instead of "\\"\par
}{\plain \b\f21 mbox c\:/folder/mbox\par
}{\plain \f21 \par
# save a copy of outbound mail here\par
}{\plain \b\f21 record c\:/folder/outmail\par
}{\plain \f21 \par
# folder for your mail\par
}{\plain \b\f21 folder c\:/folder\par
}{\plain \f21 \par
# maximum number of messages that can be pending\par
}{\plain \b\f21 maxlet 200\par
}}