home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / hamradio / nosintro.arj / NOSINT.TXT
Text File  |  1992-05-07  |  61KB  |  2,727 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.         Getting Started with TCP/IP on Packet Radio
  20.  
  21.  
  22.  
  23.  
  24.  
  25.         by John Ackermann, AG9V
  26.  
  27.         Miami Valley FM Association
  28.  
  29.         Dayton, Ohio
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.         20 April 1992
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.     Copyright 1992 by John R. Ackermann, Jr.
  60.  
  61.     This document may be freely distributed in unaltered form for non-
  62.  
  63.     commercial use only, provided this copyright notice is included.
  64.  
  65.  
  66.  
  67.                 *** Introduction ***
  68.  
  69.     
  70.  
  71.     This document is intended to help hams with some experience in 
  72.  
  73.     packet radio get started with the TCP/IP software written by KA9Q 
  74.  
  75.     and others.  It is not intended to take the place of the software's 
  76.  
  77.     reference manual, but rather to provide a quick-and-dirty 
  78.  
  79.     introduction to the capabilities of TCP/IP and the mysteries of 
  80.  
  81.     installing and using the software.
  82.  
  83.     
  84.  
  85.     There are several different versions of the KA9Q software floating 
  86.  
  87.     around.  It was originally written for MS-DOS computers, but has 
  88.  
  89.     been ported to Macintosh, Amiga, Atari and UNIX systems.  The 
  90.  
  91.     original program was called "NET" and its last formal version was 
  92.  
  93.     issued in April, 1989.  If someone talks about "890421.1 NET," 
  94.  
  95.     that's what they're referring to.
  96.  
  97.     
  98.  
  99.     Since 1989, work has concentrated on a rewritten program called 
  100.  
  101.     "NOS" (for Network Operating System, though confusingly the 
  102.  
  103.     executable program for PCs is usually still called "NET.EXE").  NOS 
  104.  
  105.     offers many new features that make using TCP/IP much more 
  106.  
  107.     effective; you should use it instead of NET.  However, NOS is a 
  108.  
  109.     growing and changing creature; since there are several different 
  110.  
  111.     versions, and they are being updated rapidly, I can't tell you 
  112.  
  113.     precisely where to find the latest, greatest version.  Your best bet 
  114.  
  115.     is to check with a local user.  If that doesn't work, there are 
  116.  
  117.     several telephone BBS systems that carry various flavors of NOS:
  118.  
  119.     
  120.  
  121.         N8EMR's Ham BBS    (614) 895-2553
  122.  
  123.         ChowdaNet    (401) 331-0334
  124.  
  125.         WB3FFV        (301) 335-0858
  126.  
  127.     
  128.  
  129.     The version I'm using, and which is reflected in this document, is 
  130.  
  131.     PA0GRI's adaptation of NOS version 061891, as modified and 
  132.  
  133.     distributed by N1BEE and available as "GRINOS" from the 
  134.  
  135.     ChowdaNet BBS.  I try not to dwell on features that are specific to 
  136.  
  137.     this version, but if something I say doesn't seem to match your 
  138.  
  139.     software, that's probably why.
  140.  
  141.     
  142.  
  143.     A last note before plunging in -- I said it before, and I'll say it 
  144.  
  145.     again:  this document barely scratches the surface of NOS.  Nearly 
  146.  
  147.     every command described here has options or parameters that I'm 
  148.  
  149.     ignoring.  My goal is to give you a feel for what TCP/IP does, and 
  150.  
  151.     to get you on the air with NOS; to get beyond the novice stage 
  152.  
  153.     you need to look at the reference manual and experiment with the 
  154.  
  155.     software.  Appendix A includes a list of organizations and 
  156.  
  157.     individuals that can provide further information about TCP/IP and 
  158.  
  159.     amateur radio.
  160.  
  161.  
  162.  
  163.             *** TCP/IP and Ham Radio ***
  164.  
  165.     
  166.  
  167.     TCP/IP is a set of communication protocols that have become a 
  168.  
  169.     standard in the computer networking world.  It is designed to link 
  170.  
  171.     different kinds of computer systems together over dissimilar 
  172.  
  173.     networks.  TCP/IP software runs on nearly every kind of computer 
  174.  
  175.     available, from IBM mainframes to PCs, Macs, Amigas, and Ataris.  
  176.  
  177.     The KA9Q software (from now on, I'll call it "NOS") is special 
  178.  
  179.     because it includes the features necessary to run TCP/IP over ham 
  180.  
  181.     packet radio.
  182.  
  183.     
  184.  
  185.     The TCP/IP protocol suite allows different kinds of computers to 
  186.  
  187.     talk to one another across networks.  The services it provides 
  188.  
  189.     include terminal sessions, file transfer, electronic mail, and data 
  190.  
  191.     routing services.  Computers running TCP/IP (referred to as 
  192.  
  193.     "hosts") can run some or all of these applications simultaneously; 
  194.  
  195.     it's entirely possible to sit at a PC computer running NOS and carry 
  196.  
  197.     on a keyboard-to-keyboard chat with one station, while another 
  198.  
  199.     retrieves a file from your hard disk and you send electronic mail to 
  200.  
  201.     a third.
  202.  
  203.     
  204.  
  205.     It's also comforting to know that when you run TCP/IP, you don't 
  206.  
  207.     give up the ability to carry on normal packet communications.  You 
  208.  
  209.     can use NOS just like a terminal program to establish connections 
  210.  
  211.     with your local BBS or to chat with friends who don't run NOS 
  212.  
  213.     (yet).
  214.  
  215.     
  216.  
  217.     If you've looked at the size of the NOS documentation, you're 
  218.  
  219.     probably asking yourself what the benefit is of mastering this fairly 
  220.  
  221.     complex stuff.  Well, NOS has several features that improve on 
  222.  
  223.     regular packet radio.  It has much more sophisticated file transfer 
  224.  
  225.     and electronic mail capabilities than our present PBBS systems 
  226.  
  227.     (and it's possible to feed PBBS messages into NOS in a way that 
  228.  
  229.     makes it much easier to use them).  It supports multiple 
  230.  
  231.     simultaneous connections.  It has new and better transport 
  232.  
  233.     methods that improve the reliability and throughput of slow and 
  234.  
  235.     congested channels.
  236.  
  237.     
  238.  
  239.     NOS also has the ability to route transmissions to distant stations 
  240.  
  241.     without the user needing to know every hop along the way; all 
  242.  
  243.     you need to do is get your data to a "gateway" station that knows 
  244.  
  245.     how to move it one hop closer to its destination.  New work being 
  246.  
  247.     done with NOS promises dynamic routing that automatically 
  248.  
  249.     adjusts to changes in the network.
  250.  
  251.     
  252.  
  253.     And, since it is directly adapted from the de facto standard system 
  254.  
  255.     of interconnecting computers, NOS offers the possibility of 
  256.  
  257.     sophisticated services far beyond anything available on regular 
  258.  
  259.     packet radio.  For example, in some areas ham TCP/IP users can 
  260.  
  261.     log into multi-user UNIX computer systems and run applications as 
  262.  
  263.     if they were directly connected to those machines.
  264.  
  265.  
  266.  
  267.                 *** What is TCP/IP? *** 
  268.  
  269.     
  270.  
  271.     As mentioned above, TCP/IP is actually a set of protocols for the 
  272.  
  273.     transfer of data across networks of computers.  Two of these 
  274.  
  275.     protocols underlie most of the others, and they give the set its 
  276.  
  277.     popular name:
  278.  
  279.     
  280.  
  281.     TCP    Transport Control Protocol, a "reliable stream service" 
  282.  
  283.         (which is a fancy way of saying it makes sure that all the 
  284.  
  285.         data sent to a remote host actually gets there), and
  286.  
  287.     
  288.  
  289.     IP    Internet Protocol, which sets the basic rules for 
  290.  
  291.         formatting packets of data to go out over a network.  
  292.  
  293.         TCP rides on top of IP.
  294.  
  295.     
  296.  
  297.     Now that you finally know what "TCP/IP" stands for, there are a 
  298.  
  299.     few concepts that are critical because they address a basic 
  300.  
  301.     problem in any communications system -- identifying the parties to 
  302.  
  303.     the conversation.  Simply using our ham callsigns to address 
  304.  
  305.     TCP/IP packets doesn't work for two reasons.  First, the protocols 
  306.  
  307.     work across many different networks, and have to have a 
  308.  
  309.     consistent address scheme.  Second, and as important, ham 
  310.  
  311.     callsigns don't contain enough information to allow TCP/IP's 
  312.  
  313.     sophisticated routing mechanisms to work.
  314.  
  315.     
  316.  
  317.     
  318.  
  319.     Names and Addresses
  320.  
  321.     
  322.  
  323.     The first important concept is the "IP Address."  Since these 
  324.  
  325.     protocols are used on lots of different computers, it is necessary to 
  326.  
  327.     use an addressing system that works with all of them, that 
  328.  
  329.     provides adequate routing information, and that doesn't take up a 
  330.  
  331.     lot of space.  The answer is to build addresses out of a four byte 
  332.  
  333.     sequence of integers, with each byte providing information about 
  334.  
  335.     the network and subnetwork(s) to which a host belongs.
  336.  
  337.     
  338.  
  339.     IP addresses are "hierarchical" because the four bytes have 
  340.  
  341.     decreasing significance from left to right.  By looking at the 
  342.  
  343.     leftmost byte(s) we can learn how to route a transmission to the 
  344.  
  345.     host represented by the rightmost byte(s).  We usually print these 
  346.  
  347.     addresses using the numeric value of each byte, separated by a 
  348.  
  349.     period, such as [44.70.12.34].  This is known as "dotted 
  350.  
  351.     notation."  The square brackets aren't strictly necessary, but they 
  352.  
  353.     are convenient to set off IP addresses; I'll use them that way in 
  354.  
  355.     this document.
  356.  
  357.     
  358.  
  359.     I won't go into all the semantics of hierarchical addressing here, 
  360.  
  361.     but as an example the address [44.70.12.34] breaks down as:
  362.  
  363.     
  364.  
  365.         44.    The network assigned to amateur radio TCP/IP.
  366.  
  367.         70.    The subnetwork for Ohio.
  368.  
  369.         12.    The Dayton/Cincinnati subnetwork.
  370.  
  371.         34    A specific system address within that area.
  372.  
  373.  
  374.  
  375.     IP addresses are assigned by coordinators who derive their 
  376.  
  377.     authority from a central registry.  The coordinator for the ham 
  378.  
  379.     radio net is Brian Kantor, WB6CYT.  He has delegated authority to 
  380.  
  381.     assign addresses to various state and national coordinators.  The 
  382.  
  383.     folks in Appendix A can help you find your local coordinator.
  384.  
  385.     
  386.  
  387.     The second important concept is the "hostname."  Obviously, IP 
  388.  
  389.     addresses aren't very intuitive.  English-like hostnames make 
  390.  
  391.     remembering addresses much easier, and TCP/IP programs, 
  392.  
  393.     including NOS, have means (discussed below) to map between IP 
  394.  
  395.     addresses and hostnames.  A "host" is any computer running 
  396.  
  397.     TCP/IP; even when you're using services from another computer, 
  398.  
  399.     your system is still a host.  When we talk about a "remote host," 
  400.  
  401.     we're talking about a machine that you're communicating with via 
  402.  
  403.     TCP/IP.
  404.  
  405.     
  406.  
  407.     The convention in ham radio TCP/IP is to use your callsign as your 
  408.  
  409.     hostname.  To help reduce confusion, we usually print hostnames 
  410.  
  411.     in lower case, and callsigns in capital letters -- my hostname is 
  412.  
  413.     "ag9v," and my call is "AG9V" (though NOS isn't case sensitive 
  414.  
  415.     and won't care if you don't do it this way).
  416.  
  417.     
  418.  
  419.     Closely related to the hostname is the "domain name."  A 
  420.  
  421.     "domain" is a group of machines that are logically (though not 
  422.  
  423.     necessarily physically) connected together.  Domain names are like 
  424.  
  425.     IP addresses; periods separate parts of the name, with each part 
  426.  
  427.     representing a different level in the domain hierarchy.  But the 
  428.  
  429.     domain name is ordered in reverse -- its highest-level portion is at 
  430.  
  431.     the right, the opposite of IP addresses.
  432.  
  433.     
  434.  
  435.     The ham network's domain is "ampr.org"; "org" (short for 
  436.  
  437.     "organizations") is the top level domain, and "ampr" (for AMateur 
  438.  
  439.     Packet Radio) is the second level domain, containing all ham 
  440.  
  441.     TCP/IP hosts.
  442.  
  443.     
  444.  
  445.     When you combine a hostname with a domain name, you get 
  446.  
  447.     something like "ag9v.ampr.org."  This is called a "Fully Qualified 
  448.  
  449.     Domain Name" ("FQDN" -- knowing this acronym allows you to 
  450.  
  451.     sound like a real expert).  If a host has multiple users, we can add 
  452.  
  453.     the user's login name at the beginning of the address, separated 
  454.  
  455.     from the FQDN by a "@" character.  This combination is 
  456.  
  457.     commonly known as an "Internet address" (the "Internet" is the 
  458.  
  459.     general term for all t
  460. he TCP/IP hosts that are interconnected) and 
  461.  
  462.     is the address form used for most electronic mail in the real world.  
  463.  
  464.     For example, if there is a user "jra" at ag9v, "jra@ag9v.ampr.org" 
  465.  
  466.     would be that user's full Internet address.
  467.  
  468.     
  469.  
  470.     There's one last twist.  Some services (such as Domain Name 
  471.  
  472.     Service, discussed below) need to know whether an address they 
  473.  
  474.     are processing is in fact an FQDN.  To do so, they look for a 
  475.  
  476.     trailing period at the end of the domain name.  Some versions of 
  477.  
  478.  
  479.     NOS ignore this issue, but the PA0GRI versions (such as GRINOS) 
  480.  
  481.     insist that you "anchor" all domain names with a period at the end 
  482.  
  483.     of the name.  In other words, GRINOS will barf if you issue the 
  484.  
  485.     command "hostname ag9v.ampr.org" but "hostname 
  486.  
  487.     ag9v.ampr.org." will make it happy.
  488.  
  489.  
  490.  
  491.     This may seem like an overly complicated scheme to simply allow 
  492.  
  493.     two hams to talk to each other, but we use it because the ham 
  494.  
  495.     radio TCP/IP network can be tied to the worldwide TCP/IP network 
  496.  
  497.     in a number of different ways, and using the full set of TCP/IP 
  498.  
  499.     address conventions makes it possible for traffic to flow between 
  500.  
  501.     the ham network and the real world.
  502.  
  503.     
  504.  
  505.     Leaving aside legal issues about third-party traffic, there's no 
  506.  
  507.     reason, for example, why electronic mail can't be automatically 
  508.  
  509.     routed through a "gateway" (a computer that interconnects two or 
  510.  
  511.     more networks) between a ham TCP/IP user and a non-ham who 
  512.  
  513.     has access to the Internet.  In fact, this service already exists in 
  514.  
  515.     some areas.
  516.  
  517.     
  518.  
  519.     The good news is that for traffic within the ham network, we only 
  520.  
  521.     need to worry about hostnames, and NOS's "domain suffix" 
  522.  
  523.     command will take care of adding the "ampr.org" extension for us; 
  524.  
  525.     we only need to deal with the full details of addressing if we want 
  526.  
  527.     to go outside the ham radio network.
  528.  
  529.     
  530.  
  531.     
  532.  
  533.     TCP/IP Services
  534.  
  535.     
  536.  
  537.     Now that we have those boring basics out of the way, the 
  538.  
  539.     protocols that use TCP/IP to provide real, useful services include:
  540.  
  541.     
  542.  
  543.     TELNET    The terminal emulation program.  In "real" networks, 
  544.  
  545.         telnet lets a user at one host remotely access a remote 
  546.  
  547.         host, just as if he was on a terminal directly connected 
  548.  
  549.         to that computer.  In NOS, the telnet function usually 
  550.  
  551.         connects you to a remote host's mailbox, which acts 
  552.  
  553.         very much like a personal PBBS.  The NOS telnet 
  554.  
  555.         command does allow you to remotely login to a host that 
  556.  
  557.         supports that function; in some areas UNIX computers 
  558.  
  559.         connected to the ham TCP/IP network provide that 
  560.  
  561.         service.
  562.  
  563.     
  564.  
  565.     FTP    File Transfer Protocol.  A means of transferring both 
  566.  
  567.         ASCII (text) and binary (program, data, or compressed) 
  568.  
  569.         files between hosts.
  570.  
  571.     
  572.  
  573.     SMTP    Simple Mail Transfer Protocol.  A (mostly) invisible way 
  574.  
  575.         of moving electronic mail from one host to another.  If 
  576.  
  577.         you create a message on your computer (using the BM 
  578.  
  579.         program, discussed below), SMTP will automatically 
  580.  
  581.         attempt to transfer it to the destination computer.
  582.  
  583.     
  584.  
  585.     POP    Post Office Protocol.  SMTP is neat, but it's really 
  586.  
  587.         designed to work with hosts that are available full time.  
  588.  
  589.         Most ham TCP/IP stations aren't.  POP is designed for 
  590.  
  591.         them; it allows incoming mail to be stored at a host that 
  592.  
  593.         acts as a "mail server;" when you come on the air, your 
  594.  
  595.         system automatically asks the server to send you your 
  596.  
  597.         mail.
  598.  
  599.  
  600.  
  601.     PING    Packet InterNet Groper.  A diagnostic that sends a packet 
  602.  
  603.         to a specified host; if the host is accessible to you and 
  604.  
  605.         on the air, it responds with another packet.  PING tells 
  606.  
  607.         you how long the round trip took.
  608.  
  609.     
  610.  
  611.     FINGER    A way of finding out information about the users at a 
  612.  
  613.         host.  The finger command can simply list all the users at 
  614.  
  615.         a host, or spit out information (like the "brag tape" of 
  616.  
  617.         RTTY days) about a specific user.
  618.  
  619.     
  620.  
  621.     ARP    Address Resolution Protocol.  IP addresses need to be 
  622.  
  623.         matched with the correct hardware address (in our case, 
  624.  
  625.         ham callsign) to allow packets to be sent to their 
  626.  
  627.         destination -- NOS doesn't know what callsign goes with 
  628.  
  629.         a given IP address.  ARP does this by sending out a 
  630.  
  631.         broadcast message when it needs to know the callsign 
  632.  
  633.         that matches an address.  The remote host (if it's on the 
  634.  
  635.         air) will answer and provide its hardware address.
  636.  
  637.     
  638.  
  639.     DNS    Domain Name Service.  Remembering IP addresses isn't 
  640.  
  641.         easy.  NOS can use a file called "DOMAIN.TXT" to 
  642.  
  643.         contain mappings between hostnames and IP addresses, 
  644.  
  645.         but that means you need to know the hostname and 
  646.  
  647.         address of any station you want to contact.  
  648.  
  649.         Alternatively, a remote host may agree to serve as a 
  650.  
  651.         "domain name server" that NOS can query when it needs 
  652.  
  653.         to know the address of a host.  Not all areas have a 
  654.  
  655.         name server available to the ham community, but in 
  656.  
  657.         those that do, life is a lot easier.
  658.  
  659.  
  660.  
  661.                 *** Installing NOS ***
  662.  
  663.     
  664.  
  665.     Frankly, there's no completely painless way to get NOS running on 
  666.  
  667.     your computer.  NOS is somewhat picky about the directories used 
  668.  
  669.     for its files, and there are a number of custom parameters that you 
  670.  
  671.     must set to teach the program about your environment and your 
  672.  
  673.     network.  Those parameters are contained in a configuration file 
  674.  
  675.     that most versions of NOS call "AUTOEXEC.NET" (PA0GRI 
  676.  
  677.     versions use "AUTOEXEC.NOS;" our references to 
  678.  
  679.     "AUTOEXEC.NET" mean whichever name is appropriate).
  680.  
  681.     
  682.  
  683.     
  684.  
  685.     Files and Directories
  686.  
  687.     
  688.  
  689.     You should create the following directories on your disk (NOS can 
  690.  
  691.     work from either a hard disk or a floppy; it's getting big enough, 
  692.  
  693.     though, that working from a 360K floppy can be tough):
  694.  
  695.     
  696.  
  697.     \spool                (holds NOS' working files)
  698.  
  699.     \spool\help            (help files for the mbox)
  700.  
  701.     \spool\mail            (mail messages go here)
  702.  
  703.     \spool\mqueue            (mail workfiles)
  704.  
  705.     \spool\rqueue            (incoming mail workfiles)
  706.  
  707.     \finger                (home for finger info files)
  708.  
  709.     \public                (file uploads/downloads)
  710.  
  711.     
  712.  
  713.     These files need to go in the root directory of your default disk (it 
  714.  
  715.     is possible to configure NOS to look for these files in other than 
  716.  
  717.     the root directory; see the reference manual for details):
  718.  
  719.     
  720.  
  721.     AUTOEXEC.NET            (the NOS configuration file) 
  722.  
  723.     FTPUSERS            (user ftp/mbox access)
  724.  
  725.     DOMAIN.TXT            (hostnames)
  726.  
  727.     BM.RC                (mail program configuration)
  728.  
  729.     ALIAS                (used by smtp and BM)
  730.  
  731.     
  732.  
  733.     NOS uses two executable files.  These can be installed anywhere 
  734.  
  735.     on your file path:
  736.  
  737.     
  738.  
  739.     NET.EXE, NOS.EXE, or GRINOS.EXE    (main executable)
  740.  
  741.     BM.EXE                (mailer program)
  742.  
  743.     
  744.  
  745.     
  746.  
  747.     Setting up AUTOEXEC.NET
  748.  
  749.     
  750.  
  751.     Once the directories are created and the files copied, you need to 
  752.  
  753.     edit the AUTOEXEC.NET file with a text editor to customize it.  A 
  754.  
  755.     sample file is included as Appendix B.  Some of the things you'll 
  756.  
  757.     have to put in the file are:
  758.  
  759.     
  760.  
  761.     Your hostname (usually your callsign in lower case):
  762.  
  763.         hostname ag9v.ampr.org.
  764.  
  765.     
  766.  
  767.     Your IP address:
  768.  
  769.         IP address [44.70.12.34]
  770.  
  771.  
  772.  
  773.     Your callsign (optionally including an SSID; local customs vary on 
  774.  
  775.     this):
  776.  
  777.         ax25 mycall AG9V
  778.  
  779.     
  780.  
  781.     "attach" commands to tell NOS how to talk to your hardware.  
  782.  
  783.     These can get quite hairy; Appendix C has the details.  For a TNC 
  784.  
  785.     on COM 1 at 4800 baud serial port speed, use:
  786.  
  787.         attach asy 0x3f8 4 ax25 ax0 1024 256 4800
  788.  
  789.     
  790.  
  791.     The "ax0" in the middle of the command is the "interface" name -- 
  792.  
  793.     you use it to identify this port to NOS when you set up routing 
  794.  
  795.     commands and the like.  You can use any (short) name you'd like, 
  796.  
  797.     but the convention for COM ports is to use ax0, ax1, etc.
  798.  
  799.     
  800.  
  801.     At least one routing command.  NOS needs to know where to 
  802.  
  803.     send packets.  A default route that sends all packets out the ax0 
  804.  
  805.     interface is:
  806.  
  807.         route add default ax0
  808.  
  809.     
  810.  
  811.     If you have a gateway for packets going outside the local area, 
  812.  
  813.     include a route like:
  814.  
  815.         route add [44.70.13.0]/24 ax0 ag9v
  816.  
  817.     
  818.  
  819.     This command would route packets addressed to any host with 
  820.  
  821.     "44.70.13" as the first three bytes of its address out the ax0 
  822.  
  823.     interface to ag9v, which presumably knows how to get these 
  824.  
  825.     packets to their destination.  The "/24" means that the first 24 bits 
  826.  
  827.     (three bytes) of the address are significant; NOS will ignore the 
  828.  
  829.     last byte when making routing decisions.
  830.  
  831.     
  832.  
  833.     If you have a domain name server, add a command near the 
  834.  
  835.     beginning of your configuration file identifying its IP address:
  836.  
  837.         domain addserver [44.70.12.34]
  838.  
  839.     
  840.  
  841.     If you have a local mail server that knows how to route messages 
  842.  
  843.     outside the area (see the discussion of electronic mail, below), add 
  844.  
  845.     a command identifying it:
  846.  
  847.         smtp gateway [44.70.12.34]
  848.  
  849.     
  850.  
  851.     
  852.  
  853.     Storing Name/Address Matches in DOMAIN.TXT
  854.  
  855.     
  856.  
  857.     If you don't have a local domain name server (DNS), you'll need to 
  858.  
  859.     create "DOMAIN.TXT" in the root directory, with one entry for 
  860.  
  861.     every hostname you want to communicate with.  Appendix D 
  862.  
  863.     shows how to set up this file.  If you don't have an entry for a 
  864.  
  865.     host in the file (or the name server doesn't know about it), you 
  866.  
  867.     can use the IP address instead of the hostname in NOS 
  868.  
  869.     commands.
  870.  
  871.     
  872.  
  873.     If you're using DNS, NOS will save the hostname/address matches 
  874.  
  875.     it gets from the server in DOMAIN.TXT, so you'll find that file 
  876.  
  877.     existing (and growing) even if you didn't create it.
  878.  
  879.  
  880.  
  881.     Giving the Finger
  882.  
  883.     
  884.  
  885.     If you want users to be able to learn about your station with the 
  886.  
  887.     finger command, you need to create a text file in the \finger 
  888.  
  889.     directory called <hostname>.txt (by the way, when we use angle 
  890.  
  891.     brackets like this, it means this is a value you'll need to insert 
  892.  
  893.     yourself -- minus the angles -- based on your own configuration).  
  894.  
  895.     You can use any ASCII text editor to create the file; it should 
  896.  
  897.     contain basic info about your system.  Don't go overboard... one 
  898.  
  899.     screen of text is plenty.
  900.  
  901.     
  902.  
  903.     You can also create additional files with information about specific 
  904.  
  905.     aspects of your system.  For example, you might have a list of the 
  906.  
  907.     files available for downloading on your system in a finger file called 
  908.  
  909.     "filelist.txt."  A remote host who issues the command "finger 
  910.  
  911.     filelist@<myhost>" will get that list.
  912.  
  913.     
  914.  
  915.     
  916.  
  917.     Some Boring but Necessary Technical Stuff
  918.  
  919.     
  920.  
  921.     Before we move on to the good stuff about how to make NOS do 
  922.  
  923.     magic, we need to talk about three related commands that you 
  924.  
  925.     may need to tweak depending on local custom and the quality of 
  926.  
  927.     the RF paths you're using.  Just as regular AX.25 uses the 
  928.  
  929.     "paclen" command to limit the size of packets, TCP/IP has 
  930.  
  931.     parameters defining how much data is moved in one chunk.  In 
  932.  
  933.     theory, the lnarger the datagram (TCP/IP's term for a single block of 
  934.  
  935.     data), the higher the efficiency, because the protocol headers add 
  936.  
  937.     a fixed amount of overhead; in larger datagrams the overhead is a 
  938.  
  939.     smaller percentage of the total data sent.
  940.  
  941.     
  942.  
  943.     However, some networks (such as NetRom) can't handle large 
  944.  
  945.     datagrams in one piece.  More importantly, the larger the 
  946.  
  947.     datagram, the longer it takes to transmit, and on a busy or flaky 
  948.  
  949.     path, the greater the likelihood that something will corrupt it along 
  950.  
  951.     the way.  And, it takes longer to resend a large packet than a 
  952.  
  953.     small one, so the cost of retries is greater.  Because of these 
  954.  
  955.     factors, a fast network with clear channels and solid paths can get 
  956.  
  957.     away with sending much larger datagrams than a slow, unreliable 
  958.  
  959.     one.
  960.  
  961.     
  962.  
  963.     NOS provides three parameters that deal with datagram sizes.  The 
  964.  
  965.     most important one is the "mtu" (the sixth value in the "attach 
  966.  
  967.     asy" command described above).  It is similar to paclen; it sets the 
  968.  
  969.     largest packet, including any headers, that can be sent on an 
  970.  
  971.     interface.  Datagrams larger than the mtu are fragmented into 
  972.  
  973.     multiple pieces, which seriously reduces efficiency.  Each interface 
  974.  
  975.     has its own mtu, set as part of its attach command.
  976.  
  977.     
  978.  
  979.     For 1200 baud channels that are shared with other packet users, 
  980.  
  981.     an mtu value of 256 is reasonable; in fact, since that is the largest 
  982.  
  983.     packet size most non-TCP/IP ham networks (like digipeaters and 
  984.  
  985.     NetRom) are designed to handle, 256 is the largest mtu you should 
  986.  
  987.     specify if any of your packets are going to travel via such a node.
  988.  
  989.  
  990.  
  991.     Faster networks may use higher values.  For good-quality channels 
  992.  
  993.     with fast data rates (9600 baud or above), it may be reasonable to 
  994.  
  995.     use an mtu ranging from 512 to 1500 (which matches the 
  996.  
  997.     standard mtu used by ethernet systems).
  998.  
  999.     
  1000.  
  1001.     The other two parameters that set datagram size are part of the 
  1002.  
  1003.     TCP protocol.  "tcp mss" (maximum segment size) is the largest 
  1004.  
  1005.     chunk of data that TCP will send in a single frame.  Because the 
  1006.  
  1007.     TCP and IP headers attached to each datagram total 40 bytes, mss 
  1008.  
  1009.     should be 40 bytes smaller than mtu; 216 is the correct value for 
  1010.  
  1011.     an mtu of 256.
  1012.  
  1013.     
  1014.  
  1015.     The "tcp window" parameter tells NOS how many datagrams it 
  1016.  
  1017.     can have outstanding at once -- if it is twice the value of mss, 
  1018.  
  1019.     NOS can receive two datagrams before sending an 
  1020.  
  1021.     acknowledgment.  This parameter is analogous to the "maxframe" 
  1022.  
  1023.     parameter in AX.25.  A large window improves efficiency because, 
  1024.  
  1025.     among other things, multiple acknowledgments can be sent in a 
  1026.  
  1027.     single packet.
  1028.  
  1029.     
  1030.  
  1031.     Although using a large window has major benefits on full duplex 
  1032.  
  1033.     networks, on typical ham networks best performance comes from 
  1034.  
  1035.     smaller windows ranging from one to three times the mss.  A good 
  1036.  
  1037.     starting point is to set the window equal to twice the value of mss 
  1038.  
  1039.     (432 for an mss of 216).
  1040.  
  1041.     
  1042.  
  1043.     In summary, good starting points are:
  1044.  
  1045.     
  1046.  
  1047.     1200 baud, shared channel:        9600 or faster, clear channel:
  1048.  
  1049.         mtu 256                    mtu 1500
  1050.  
  1051.         tcp mss 216                tcp mss 1460
  1052.  
  1053.         tcp window 432                tcp window 2920
  1054.  
  1055.     
  1056.  
  1057.     
  1058.  
  1059.     Even more than in other parts of this manual, this discussion 
  1060.  
  1061.     glosses over lots of subtleties.  Throughput can be drastically 
  1062.  
  1063.     affected by tuning these values, and both experimentation and 
  1064.  
  1065.     local consensus are necessary to come up with settings that work 
  1066.  
  1067.     well without stomping on other users of the channel.
  1068.  
  1069.  
  1070.  
  1071.                 *** Using NOS ***
  1072.  
  1073.     
  1074.  
  1075.     To run NOS, first make sure you have your TNC configured for 
  1076.  
  1077.     "KISS" mode (see Appendix F for details) and turned on.  Then, 
  1078.  
  1079.     type NET, NOS, or GRINOS (as appropriate).  In a few seconds, 
  1080.  
  1081.     you should see a "net>" prompt.  Any error messages that appear 
  1082.  
  1083.     first probably indicate a problem with one or more commands in 
  1084.  
  1085.     your AUTOEXEC.NET file.
  1086.  
  1087.     
  1088.  
  1089.     When you see the prompt, NOS is in "command mode."  When 
  1090.  
  1091.     you are communicating with another host, NOS is in "converse 
  1092.  
  1093.     mode."  To return to command mode from converse mode, press 
  1094.  
  1095.     the F10 function key (sometimes called the "escape" key, but not 
  1096.  
  1097.     to be confused with the "ESC" key on your keyboard).  All 
  1098.  
  1099.     commands typed at the NOS prompt need to be followed by the 
  1100.  
  1101.     return key.
  1102.  
  1103.     
  1104.  
  1105.     Typing "?" in command mode will display a list of commands.  
  1106.  
  1107.     Typing a command name followed by ? will display the valid 
  1108.  
  1109.     subcommands.  You can't really call it a help system, but it's 
  1110.  
  1111.     better than nothing.
  1112.  
  1113.     
  1114.  
  1115.     Some commands can be abbreviated to save typing; the degree of 
  1116.  
  1117.     abbreviation allowed depends on the command set of the NOS 
  1118.  
  1119.     version you're using.  Experimentation is the best way to see what 
  1120.  
  1121.     works and what doesn't.  One minor annoyance in GRINOS is that 
  1122.  
  1123.     commands are case sensitive -- "c ax0 n8acv" is fine,  but "C ax0 
  1124.  
  1125.     n8acv" isn't.  It's safest to do all your NOS keyboarding in lower 
  1126.  
  1127.     case -- apart from case sensitive commands, in the Email world, 
  1128.  
  1129.     typing in all upper case is considered shouting!
  1130.  
  1131.     
  1132.  
  1133.     You can issue several commands from within NOS to deal with 
  1134.  
  1135.     files and directories.  "pwd" displays your current working 
  1136.  
  1137.     directory, and "cd" allows you to change directories.  "dir" 
  1138.  
  1139.     displays files in the current directory.  "mkdir <dirname>" creates 
  1140.  
  1141.     a new directory, and "rmdir <dirname>" removes one.  "delete 
  1142.  
  1143.     <filename>" erases a file.  
  1144.  
  1145.     
  1146.  
  1147.     You can also "shell out" to DOS from within NOS by entering 
  1148.  
  1149.     either an exclamation mark (!) or the command "shell."  To return 
  1150.  
  1151.     to NOS, type "exit" at the DOS prompt.
  1152.  
  1153.     
  1154.  
  1155.     From command mode, you can start a number of different types of 
  1156.  
  1157.     sessions to communicate with remote hosts.  Each session has its 
  1158.  
  1159.     own display screen and you can switch between a session and 
  1160.  
  1161.     command mode, or between sessions.  The se command displays 
  1162.  
  1163.     the active sessions with identifying numbers.  To switch to a 
  1164.  
  1165.     session, you can type "se <session number>."  From command 
  1166.  
  1167.     mode, you can return to the current (most recently displayed) 
  1168.  
  1169.     session by entering a carriage return.
  1170.  
  1171.     
  1172.  
  1173.     You can capture incoming data from the current session to a disk 
  1174.  
  1175.     file by using the "record <filename>" command, and you can 
  1176.  
  1177.     read in a data file from disk with the "upload <filename>" 
  1178.  
  1179.     command.
  1180.  
  1181.  
  1182.  
  1183.     To close a session, press F10 to return to command mode and 
  1184.  
  1185.     enter "close <session number>."  If there's only one session 
  1186.  
  1187.     open, you can just enter "close."  You can also end the session by 
  1188.  
  1189.     issuing the appropriate exit or quit command at the remote host's 
  1190.  
  1191.     prompt.
  1192.  
  1193.     
  1194.  
  1195.     The most common NOS session types are probably "telnet," its 
  1196.  
  1197.     cousin "ttylink", "ftp," and a regular packet "connect" (technically 
  1198.  
  1199.     called an "ax25" session).  Telnet is used to "login" to a remote 
  1200.  
  1201.     host, ttylink is a kind of telnet specially designed for keyboard-to-
  1202.  
  1203.     keyboard communications, ftp handles file transfers, and ax25 
  1204.  
  1205.     sessions allow you to carry on normal packet activity.  We'll talk 
  1206.  
  1207.     about ax25 sessions first, since they give you a chance to test 
  1208.  
  1209.     your setup without having another TCP/IP station on the air.
  1210.  
  1211.     
  1212.  
  1213.     
  1214.  
  1215.     AX.25 Mode
  1216.  
  1217.     
  1218.  
  1219.     The "connect" command simply lets you do normal packet radio 
  1220.  
  1221.     stuff.  Establishing an ax25 connect through NOS is like using the 
  1222.  
  1223.     standard TNC commands with a few small differences.  First, since 
  1224.  
  1225.     NOS can support several interfaces, each with its own hardware, 
  1226.  
  1227.     you need to tell NOS which one to use.
  1228.  
  1229.     
  1230.  
  1231.     So, to connect to N8ACV on interface ax0, enter "connect ax0 
  1232.  
  1233.     N8ACV."  Once you get a "Connected" message, you'll be able to 
  1234.  
  1235.     type to the station at the other end just as you would with normal 
  1236.  
  1237.     packet.  In addition to closing the session as described above, you 
  1238.  
  1239.     can exit an ax25 session by typing "disconnect" at the command 
  1240.  
  1241.     mode prompt.  (Just as with a TNC, these commands can be 
  1242.  
  1243.     abbreviated; just how few of the letters are necessary will depend 
  1244.  
  1245.     on each implementation of NOS and the commands it supports).
  1246.  
  1247.     
  1248.  
  1249.     The other minor difference between the NOS connect command 
  1250.  
  1251.     and a regular TNC is that the word "via" is not used when 
  1252.  
  1253.     specifying digipeaters.  To connect to N8ACV through N8KZA on 
  1254.  
  1255.     interface ax0, you would enter "connect ax0 N8ACV N8KZA."
  1256.  
  1257.     
  1258.  
  1259.     
  1260.  
  1261.     Telnet
  1262.  
  1263.     
  1264.  
  1265.     The "telnet" command logs you in to a remote TCP/IP host; 
  1266.  
  1267.     depending on the capabilities of that host, you might find yourself 
  1268.  
  1269.     chatting directly with the user at the other end, connecting to the 
  1270.  
  1271.     NOS mailbox, "mbox" (which acts very much like a sophisticated 
  1272.  
  1273.     personal PBBS), or getting a UNIX "login:" prompt.  To establish a 
  1274.  
  1275.     telnet session, enter "telnet <hostname>" at the command 
  1276.  
  1277.     prompt.
  1278.  
  1279.     
  1280.  
  1281.     Some versions of NOS offer a new type of session that improves 
  1282.  
  1283.     on telnet for real-time keyboard-to-keyboard chats.  It's called 
  1284.  
  1285.     "ttylink," and it works just like telnet (for example, start a session 
  1286.  
  1287.     with "ttylink <hostname>") except that it connects you directly 
  1288.  
  1289.     to the remote host's chat mode, and uses a split-screen format to 
  1290.  
  1291.     make things less confusing as you type to each other.
  1292.  
  1293.  
  1294.  
  1295.     You'll get a message like "Telnet session 1 failed: Reset/Refused 
  1296.  
  1297.     errno 9" if the remote host doesn't support ttylink.  If the operator 
  1298.  
  1299.     at the other end isn't available to chat, you'll get a message like 
  1300.  
  1301.     "The system is unattended."  You'll still be able to type, but there 
  1302.  
  1303.     won't be anyone there to reply.  You can change the status on 
  1304.  
  1305.     your machine by setting the "attended" command to either on or 
  1306.  
  1307.     off.  You might want to put this command in your AUTOEXEC.NET 
  1308.  
  1309.     file to set your default status.  You exit from ttylink just as you 
  1310.  
  1311.     would from telnet.
  1312.  
  1313.     
  1314.  
  1315.     And now a note from Miss Manners:  you should never simply exit 
  1316.  
  1317.     from the NOS program when you have an open session.  Doing so 
  1318.  
  1319.     can cause great unpleasantness at the remote host.  Unless you're 
  1320.  
  1321.     in some sort of software or hardware lockup, or you know that the 
  1322.  
  1323.     station on the other end has gone away, always close sessions 
  1324.  
  1325.     and wait for confirmation before exiting the program.
  1326.  
  1327.     
  1328.  
  1329.     You should also be aware that your system may have started 
  1330.  
  1331.     sessions in the background, for example to transfer electronic mail, 
  1332.  
  1333.     or someone else may have started a session with your system.  
  1334.  
  1335.     You may not even know these sessions are running.  Pulling the 
  1336.  
  1337.     plug on them would be very impolite.  Before exiting NOS, you 
  1338.  
  1339.     should first use the se command to make sure there are no current 
  1340.  
  1341.     sessions running, and then the "tcp status" command to see if 
  1342.  
  1343.     there are any background connections established.  "tcp status" 
  1344.  
  1345.     will show you a long and confusing list of information; the 
  1346.  
  1347.     important stuff at the end is the list of sockets (which are services 
  1348.  
  1349.     your system can either offer or request on the network).  If 
  1350.  
  1351.     anything other than "Listening" appears in the Status column, that 
  1352.  
  1353.     means there's at least one remote host communicating with you.
  1354.  
  1355.     
  1356.  
  1357.     
  1358.  
  1359.     File Transfers
  1360.  
  1361.     
  1362.  
  1363.     You initiate a file transfer (ftp) session by entering "ftp 
  1364.  
  1365.     <hostname>" at the command prompt.  Once the session is 
  1366.  
  1367.     established, the remote host will prompt you for a user name and a 
  1368.  
  1369.     password.  If your hostname and password have been added to 
  1370.  
  1371.     the remote host's FTPUSERS file, you'll have the ability to 
  1372.  
  1373.     download and perhaps upload files in the directories permitted you.
  1374.  
  1375.     
  1376.  
  1377.     If you haven't arranged with the remote host for your own 
  1378.  
  1379.     account, you can try to login as "anonymous" or "guest;" many 
  1380.  
  1381.     systems support these user names and grant limited (usually 
  1382.  
  1383.     download-only) privileges to them.  If you login under one of these 
  1384.  
  1385.     accounts, you should enter your hostname as the password; that 
  1386.  
  1387.     allows the remote host to keep track of who's been using the 
  1388.  
  1389.     system.
  1390.  
  1391.     
  1392.  
  1393.     Once you've logged in, you'll see a new prompt: "ftp>."  This will 
  1394.  
  1395.     remind you that you're actually issuing commands to the remote 
  1396.  
  1397.     computer.  From the ftp> prompt, you can list the files in a 
  1398.  
  1399.     directory, change directories, upload files, or download files.
  1400.  
  1401.  
  1402.  
  1403.     To list files, enter "dir" at the ftp> prompt.  You will get a listing 
  1404.  
  1405.     that shows subdirectories (if any) and files together with their 
  1406.  
  1407.     dates and sizes.  To show the current directory name, type "pwd."  
  1408.  
  1409.     To change directories, issue the "cd <directory>" command.  
  1410.  
  1411.     Note that directories are displayed with a forward slash (/) instead 
  1412.  
  1413.     of the usual MS-DOS backslash (\).  That's because the UNIX 
  1414.  
  1415.     operating system, which is TCP/IP's natural home, uses forward 
  1416.  
  1417.     slashes.  If the remote host is running NOS, you can use either 
  1418.  
  1419.     character, but some other systems (particularly those running 
  1420.  
  1421.     UNIX) will recognize only the forward slash.
  1422.  
  1423.     
  1424.  
  1425.     Once you've found a file you want to upload or download, you 
  1426.  
  1427.     need to make a decision.  ftp can transfer the file either as an 
  1428.  
  1429.     "image" file, byte for byte, or as an "ascii" file, converting the line-
  1430.  
  1431.     end character as necessary to compensate for different operating 
  1432.  
  1433.     systems (UNIX uses only a linefeed character at the end of lines; 
  1434.  
  1435.     MS-DOS uses carriage return/linefeed).  Before beginning a file 
  1436.  
  1437.     transfer, enter "type i" for an image file, or "type a" for an ASCII 
  1438.  
  1439.     file, at the ftp> prompt.
  1440.  
  1441.     
  1442.  
  1443.     What are the consequences choosing the wrong transfer type?  
  1444.  
  1445.     Well, transferring a binary file as type "a" will almost certainly fail.  
  1446.  
  1447.     Transferring an ASCII file as type "i" will work, but you may find 
  1448.  
  1449.     that the line-ends are screwed up.  ASCII transfers are also quite a 
  1450.  
  1451.     bit slower than image, because each line needs to be processed 
  1452.  
  1453.     separately.
  1454.  
  1455.     
  1456.  
  1457.     To actually start a file transfer, use the command "put <local 
  1458.  
  1459.     filename> <remote filename>" to send a file, or "get <remote 
  1460.  
  1461.     filename> <local filename>" to receive one.  The file name can 
  1462.  
  1463.     include a full path if you desire; remember to use the proper path 
  1464.  
  1465.     separator character for the remote host.
  1466.  
  1467.     
  1468.  
  1469.     If you only specify one filename, ftp will assume that both the 
  1470.  
  1471.     local and remote hosts will use the same name.  This can be 
  1472.  
  1473.     dangerous if the remote host uses a different operating system 
  1474.  
  1475.     than you do, as it may have filenames that are illegal on your 
  1476.  
  1477.     system.
  1478.  
  1479.     
  1480.  
  1481.     If a file transfer goes awry, you can terminate it by going to 
  1482.  
  1483.     command mode via F10 and issuing the "abort" command.  To 
  1484.  
  1485.     end an ftp session, you can either type "quit" at the ftp> prompt 
  1486.  
  1487.     (the preferred way), or you can close the session from the net> 
  1488.  
  1489.     prompt.
  1490.  
  1491.     
  1492.  
  1493.     If you want others to be able to access files on your system, you'll 
  1494.  
  1495.     need to set up an FTPUSERS file in your root directory.  Appendix 
  1496.  
  1497.     E describes the contents of that file.
  1498.  
  1499.     
  1500.  
  1501.     Another message from Miss Manners:  transferring files via ftp is 
  1502.  
  1503.     reliable, but can be slooooow, particularly at 1200 baud.  Before 
  1504.  
  1505.     you start downloading a 250 kilobyte file, consider how busy the 
  1506.  
  1507.     channel is, and whether you want to tie things up for (perhaps) 
  1508.  
  1509.     several hours by your download.  NOS is polite and won't hog the 
  1510.  
  1511.     channel, but don't doubt that a large file transfer will slow things 
  1512.  
  1513.     down for everyone else.
  1514.  
  1515.  
  1516.  
  1517.     Other Protocols
  1518.  
  1519.     
  1520.  
  1521.     The "ping" protocol mentioned above is very useful to see if a 
  1522.  
  1523.     remote host is on the air.  Just enter the command "ping 
  1524.  
  1525.     <hostname>" at the NOS prompt.  If the host is available, you 
  1526.  
  1527.     will see a response indicating what the round-trip time was to that 
  1528.  
  1529.     host.  The time may be many seconds if you're going through 
  1530.  
  1531.     gateways, so be patient.
  1532.  
  1533.     
  1534.  
  1535.     The "finger" protocol lets you see information about a remote 
  1536.  
  1537.     host's users and services.  Entering "finger @<hostname>" (note 
  1538.  
  1539.     the slightly differegnt syntax -- the "@" symbol must immediately 
  1540.  
  1541.     precede the remote hostname) will display a list of the finger files 
  1542.  
  1543.     (described above) at that host.  Entering "finger 
  1544.  
  1545.     <user@hostname>" will display the text file for that user.
  1546.  
  1547.     
  1548.  
  1549.  
  1550.  
  1551.             *** Electronic Mail ***
  1552.  
  1553.     
  1554.  
  1555.     We've saved NOS's electronic mail capabilities for last because 
  1556.  
  1557.     they are a bit more involved than some other parts of the program.  
  1558.  
  1559.     You use two programs to handle mail:  BM (a "user mail agent," in 
  1560.  
  1561.     UNIX terms) to wregite and read messages, and NOS to send and 
  1562.  
  1563.     receive them.  First we'll talk about reading and writing messages, 
  1564.  
  1565.     and then about using NOS to transport them.
  1566.  
  1567.     
  1568.  
  1569.     
  1570.  
  1571.     Using BM.EXE to Read and Write Messages
  1572.  
  1573.     
  1574.  
  1575.     BM.EXE is a program that reads and writes mail message in the 
  1576.  
  1577.     format TCP/IP systems recognize.  Contrary to popular belief, 
  1578.  
  1579.     "BM" stands for "Bdale's Mailer" in honor of its creator, Bdale 
  1580.  
  1581.     Garbee.  You can run BM from the DOS prompt just like any other 
  1582.  
  1583.     program, from within NOS by shelling to DOS with ! or shell, or (in 
  1584.  
  1585.     GRINOS) by typing the mail command from the net> prompt.
  1586.  
  1587.     
  1588.  
  1589.     Before using BM, you need to create its configuration file, BM.RC, 
  1590.  
  1591.     which must live in the root directory of your disk.  An annotated 
  1592.  
  1593.     BM.RC file is included as Appendix G.  Only the first three 
  1594.  
  1595.     commands in the sample file are absolutely necessary to make BM 
  1596.  
  1597.     work.
  1598.  
  1599.     
  1600.  
  1601.     There's a bit of controversy in some areas over the proper name to 
  1602.  
  1603.     enter for "user" in BM.RC.  Some folks recommend using either 
  1604.  
  1605.     your first name, or your initials (for example, my address would be 
  1606.  
  1607.     "john@ag9v.ampr.org") while other suggest using the callsign 
  1608.  
  1609.     instead ("ag9v@ag9v.ampr.org").
  1610.  
  1611.     
  1612.  
  1613.     While using the callsign may seem more impersonal, it has major 
  1614.  
  1615.     advantages when mail is moving between TCP/IP and the packet 
  1616.  
  1617.     BBS system, or when using the POP server; we strongly 
  1618.  
  1619.     recommend that you use the "callsign@hostname" format unless 
  1620.  
  1621.     the locals object even more strongly.  Ite f's important to be 
  1622.  
  1623.     consistent within the area, so that everyone knows how to 
  1624.  
  1625.     address mail to everyone else.
  1626.  
  1627.     
  1628.  
  1629.     When you start BM, you'll see a prompt such as "ag9v>" 
  1630.  
  1631.     showing the default mailbox (based on the "user" entry in BM.RC).  
  1632.  
  1633.     As in NOS, you enter commands at the prompt, following them 
  1634.  
  1635.     with a carriage return.  Most BM commands are single letters, 
  1636.  
  1637.     optionally followed by a mail addressee or a message number (or 
  1638.  
  1639.     numbers).
  1640.  
  1641.     
  1642.  
  1643.     To send mail, use the command "m <addressee>."  The 
  1644.  
  1645.     addressee will normally be a user at a remote host; for example, 
  1646.  
  1647.     ag9v might send mail to k8gkh@k8gkh.  The single biggest 
  1648.  
  1649.     problem with BM is forgetting to include the hostname -- in other 
  1650.  
  1651.     words, sending mail to <user> rather than 
  1652.  
  1653.     <user>@<hostname>.   Without the hostname, BM will think 
  1654.  
  1655.     the user is on your local system, and the mail will end up being 
  1656.  
  1657.     stored in a mailbox under that user's name on your own system.  
  1658.  
  1659.     That doesn't work too well.
  1660.  
  1661.  
  1662.  
  1663.     One way to essolve that problem, and do some other interesting 
  1664.  
  1665.     things, is to create an ALIAS file in your root directory.  When you 
  1666.  
  1667.     send a message, BM will compare the addressee with the alias file, 
  1668.  
  1669.     and if it finds a match will replace the alias with a full address from 
  1670.  
  1671.     the file.  An alias can point to a list of addresses, so it's possible 
  1672.  
  1673.     to define an alias that will send a copy of the message to everyone 
  1674.  
  1675.     in your local group.  A sample alias file might look like:
  1676.  
  1677.     
  1678.  
  1679.     greg    k8gkh@k8gkh.ampsr.org
  1680.  
  1681.     bill    n8kza@n8kza.ampr.org
  1682.  
  1683.     club    k8gkh@k8gkh.ampr.org n8kza@n8kza.ampr.org
  1684.  
  1685.         n8acv@n8acv.ampr.org wb8gxb@wb8gxb.ampr.org
  1686.  
  1687.     
  1688.  
  1689.     The alias for "club" demonstrates two things:  a single alias can 
  1690.  
  1691.     expand to several addresses, and you can continue a long address 
  1692.  
  1693.     list on subsequent lines by indenting them with spaces or a tab 
  1694.  
  1695.     character.
  1696.  
  1697.     
  1698.  
  1699.     Now, if you send mail to "greg" it will automatically be expanded 
  1700.  
  1701.     to the full address, and by sending a message to "club" all four 
  1702.  
  1703. .amps    users will get a copy.
  1704.  
  1705.     
  1706.  
  1707.     By the way, you do not use a trailing dot after an FQDN (as 
  1708.  
  1709.     discussed above) in Email addressing; doing so will screw things 
  1710.  
  1711.     up.
  1712.  
  1713.     
  1714.  
  1715.     If you use BM's built-in editor to compose messages, remember 
  1716.  
  1717.     that it doesn't wrap lines; you have to hit the carriage return at the 
  1718.  
  1719.     end of each line.  Use the "l" command to list outbound mail; you 
  1720.  
  1721.     can kill an outbound message with the "k <msg#>" command, 
  1722.  
  1723.     using the message number obtained from the "l" command.
  1724.  
  1725.     
  1726.  
  1727.     Several commands are used to deal with incoming mail.  "h" 
  1728.  
  1729.     displays the headers (summary info) about messages in your 
  1730.  
  1731.     mailbox.  It is the basic command you should use to check your 
  1732.  
  1733.     incoming mail.  Each header displayed includes a message number 
  1734.  
  1735.     to use with the other message manipulation commands.  
  1736.  
  1737.     Commands given without a message number act on the current 
  1738.  
  1739.     message (the one marked with an ">" in the display from the "h" 
  1740.  
  1741.     command); if there's only one message, it is always the current 
  1742.  
  1743.     one.
  1744.  
  1745.     
  1746.  
  1747.     BM can support multiple users at a single host; a separate mailbox 
  1748.  
  1749.     is created for each user.  Unfortunately, BM has no way of 
  1750.  
  1751.     knowing if incoming mail addressed to <someuser>@<yourhost> is
  1752.  
  1753.     valid, so it will happily accept such mail and create a new mail-
  1754.  
  1755.     box for <someuser>.  You may never know it's there, unless you use
  1756.  
  1757.     the "n" command to display the list of mailboxes.  You can also use
  1758.  
  1759.     "n" to change to a different mailbox: "n <mbox>."
  1760.  
  1761.     
  1762.  
  1763.     The commonly useed commands (which may be followed by one or 
  1764.  
  1765.     more message numbers if appropriate) are:
  1766.  
  1767.  
  1768.  
  1769.     msg#    message number by itself will display that message and 
  1770.  
  1771.         set it as the current message.
  1772.  
  1773.     r    reply to a message.
  1774.  
  1775.     d    delete a message.
  1776.  
  1777.     s    save a message; if a file name follows the message 
  1778.  
  1779.         number(s), the message(s) will be saved in that file.  
  1780.  
  1781.         Otherwise, they'll be saved in the default mbox file.
  1782.  
  1783.     u    undelete a message previously marked for deletion.
  1784.  
  1785.     p    print a message on the local printer.
  1786.  
  1787.     w    save a message to a file without including headers.
  1788.  
  1789.     f    forward a message to another recipient.
  1790.  
  1791.     b    bounce a message.  Like forward, but keeps the original 
  1792.  
  1793.         sender information intact (i.e., the message will not 
  1794.  
  1795.         appear to have been sent by you).
  1796.  
  1797.     $    update the mailbox.  This deletes messages marked for 
  1798.  
  1799.         deletion and reads in any new mail that may have arrived 
  1800.  
  1801.         since you started BM.
  1802.  
  1803.     
  1804.  
  1805.     There are two commands that exit from BM:  "x" will exit without 
  1806.  
  1807.     updating the mailbox.  In other words, the same messages will be 
  1808.  
  1809.     there the next time you run the program.  "q" updates the mailbox 
  1810.  
  1811.     (like "$") and then exits.
  1812.  
  1813.     
  1814.  
  1815.     Outbound mail created by BM is stored in the \spool\mqueue 
  1816.  
  1817.     directory, where it waits patiently until one of NOS's servers 
  1818.  
  1819.     (SMTP or POP) attempts to send it to its destination.
  1820.  
  1821.     
  1822.  
  1823.     
  1824.  
  1825.     Moving Mail With NOS
  1826.  
  1827.     
  1828.  
  1829.     Now, to the mechanics of getting mail into and out of your 
  1830.  
  1831.     system.  All mail that you create is sent to its destination (or at 
  1832.  
  1833.     least to the next stop on the way) by the "smtp" server in NOS.  
  1834.  
  1835.     The "smtp timer" command (set in AUTOEXEC.NET) tells smtp 
  1836.  
  1837.     how often to scan the \spool\mqueue directory for outgoing mail.  
  1838.  
  1839.     When it finds some, it attempts to open an smtp session to the 
  1840.  
  1841.     remote host in the address and send the mail there.  There's no 
  1842.  
  1843.     default for the smtp timer value, so your AUTOEXEC.NET file 
  1844.  
  1845.     should include something like "smtp timer 600" (which scans for 
  1846.  
  1847.     mail every ten minutes).  You can manually force smtp to scan the 
  1848.  
  1849.     queue by issuing the "smtp kick" command from the net> prompt.
  1850.  
  1851.     
  1852.  
  1853.     If you have a local mail server with connections to the outside 
  1854.  
  1855.     world, you can use it to route mail for hosts that aren't in your 
  1856.  
  1857.     domain file with the "smtp gateway <hostid>" command.
  1858.  
  1859.     
  1860.  
  1861.     Incoming mail can arrive at your station when a remote host does 
  1862.  
  1863.     this and starts an smtp session with you.  But if you don't keep 
  1864.  
  1865.     your station up 24 hours a day, the remote host will be trying, and 
  1866.  
  1867.     trying, and trying, to connect with you until you finally show up.  
  1868.  
  1869.     A far better approach is to use "POP" -- the Post Office Protocol.  
  1870.  
  1871.     If your system runs POP, and someone in the area has agreed to 
  1872.  
  1873.     be a POP server, NOS will automatically contact that server when 
  1874.  
  1875.     you come on the air; the server will respond by sending the mail 
  1876.  
  1877.     waiting in your mailbox.  You can then read it with BM just as if it 
  1878.  
  1879.     had arrived via smtp.
  1880.  
  1881.  
  1882.  
  1883.     To use POP, the server must establish a mailbox and password for 
  1884.  
  1885.     you, and you need to add the appropriate commands to your 
  1886.  
  1887.     AUTOEXEC.NET file (see the annotated AUTOEXEC.NET file in 
  1888.  
  1889.     Appendix B).
  1890.  
  1891.     
  1892.  
  1893.     Remember that smtp or POP sessions may be running in the 
  1894.  
  1895.     background without your knowing about it.  Always check for 
  1896.  
  1897.     activity with the "tcp status" command before pulling the plug!
  1898.  
  1899.     
  1900.  
  1901.     Additionally, smtp creates lock files in \spool\mqueue when it tries 
  1902.  
  1903.     to send outgoing mail.  If NOS is killed before the mail transfer has 
  1904.  
  1905.     succeeded, these files (with the extension ".LCK") will be left 
  1906.  
  1907.     behind and if they are not manually removed, they will prevent 
  1908.  
  1909.     smtp from trying again to send those messages.  To prevent this, 
  1910.  
  1911.     you should always issue the command "erase \spool\mqueue\*.LCK"
  1912.  
  1913.     before starting NOS.  It's a good idea to launch NOS using a batch
  1914.  
  1915.     file that removes the locks before executing the program.
  1916.  
  1917.  
  1918.  
  1919.                 *** Conclusion ***
  1920.  
  1921.     
  1922.  
  1923.     This has been a whirlwind tour of TCP/IP.  Once you have the 
  1924.  
  1925.     software installed, it's not hard to use, and NOS truly opens the 
  1926.  
  1927.     door to enjoying packet radio in a whole new way.
  1928.  
  1929.     
  1930.  
  1931.     To learn the subtleties of NOS, you should do two things:  read 
  1932.  
  1933.     the reference manual for the version you're using, and experiment 
  1934.  
  1935.     with the program.  Once you know the ins and outs, please share 
  1936.  
  1937.     your knowledge with others.  The ham radio TCP/IP community is 
  1938.  
  1939.     still small, and we need all the Elmers we can get!
  1940.  
  1941.     
  1942.  
  1943.     
  1944.  
  1945.     John Ackermann   AG9V
  1946.  
  1947.     2371 Stewart Road
  1948.  
  1949.     Xenia, OH   45385
  1950.  
  1951.     
  1952.  
  1953.     TCP/IP:        ag9v@ag9v.ampr.org.  [44.70.12.34]
  1954.  
  1955.     PBBS:        AG9V@N8ACV.OH.US.NA
  1956.  
  1957.     Internet:    jra@lawday.daytonOH.ncr.com
  1958.  
  1959.     CompuServe:    72300,1160
  1960.  
  1961.     
  1962.  
  1963.  
  1964.  
  1965.     APPENDIX A
  1966.  
  1967.     Resources for NOS and TCP/IP
  1968.  
  1969.     
  1970.  
  1971.     (Note:  This is a very incomplete list; please feel free to provide 
  1972.  
  1973.     additional resources to add for the next edition!)
  1974.  
  1975.     
  1976.  
  1977.     TAPR
  1978.  
  1979.     P.O. Box 22888
  1980.  
  1981.     Tucson, AZ   85734
  1982.  
  1983.     
  1984.  
  1985.     The New England TCP Association
  1986.  
  1987.     3628 Acushnet Ave.
  1988.  
  1989.     New Bedford, MA   02745
  1990.  
  1991.  
  1992.  
  1993.     APPENDIX B
  1994.  
  1995.     Sa, ample AUTOEXEC.NOS File for GRINOS
  1996.  
  1997.     
  1998.  
  1999.     # AUTOEXEC.NET
  2000.  
  2001.     # This is a sample autoexec file for GRINOS version N1BEE 0.72.
  2002.  
  2003.     # It doesn't have all the fancy features one might hope for, but
  2004.  
  2005.     # the basics are there, with some hopefully useful comments.
  2006.  
  2007.     # Any line beginning with a "#" character is treated as a comment.  
  2008.  
  2009.     # To uncomment a line, delete the # character
  2010.  
  2011.     
  2012.  
  2013.     # These are a couple of things for NOS to use internally.
  2014.  
  2015.     mem eff on
  2016.  
  2017.     watchdog on
  2018.  
  2019.     nibufs 10
  2020.  
  2021.     
  2022.  
  2023.     # NOS needs to know three things about you:  your hostname, 
  2024.  
  2025.     # your  ham callsign, and your IP address.  By convention, the
  2026.  
  2027.     # hostname # is your callsign in lower case, followed by ".ampr.org".
  2028.  
  2029.     # The  callsign is generally used in upper case to distinguish it.
  2030.  
  2031.     # The IP address comes from a local area coordinator.  Note that 
  2032.  
  2033.     # there are a minimum of three places in this file where you need to
  2034.  
  2035.     # insert your IP address -- here, in the ifconfig command, and at the
  2036.  
  2037.     # end of each attach command.
  2038.  
  2039.     hostname nocall.ampr.org
  2040.  
  2041.     ax25 mycall NOCALL
  2042.  
  2043.     ip address [44.xx.xx.xx]
  2044.  
  2045.     
  2046.  
  2047.     # This should match your IP address
  2048.  
  2049.     ifconfig loopback ipaddress [44.xx.xx.xx]
  2050.  
  2051.     
  2052.  
  2053.     # This makes short forms of the hostname work.
  2054.  
  2055.     domain suffix ampr.org.
  2056.  
  2057.     
  2058.  
  2059.     # NOS needs to know how to convert hostnames to IP addresses.
  2060.  
  2061.     # You can do this manually via the "DOMAIN.TXT" file, or you can 
  2062.  
  2063.     # use a nameserver if one is available.  To enable the
  2064.  
  2065.     # nameserver, uncomment this line and plug in its correct 
  2066.  
  2067.     # address.
  2068.  
  2069.     #domain addserver [44.xx.xx.xx]
  2070.  
  2071.     
  2072.  
  2073.     # Some additional commands for the domain service.  Don't turn 
  2074.  
  2075.     # translate on unless you have a small domain file and/or a fast machine.
  2076.  
  2077.     domain verbose off
  2078.  
  2079.     domain cache size 40
  2080.  
  2081.     domain translate off
  2082.  
  2083.     
  2084.  
  2085.     # To use POP, uncomment these lines.  Fill in "pop mailhost" with 
  2086.  
  2087.     # the IP address of the station serving as your POP server.  Fill in the 
  2088.  
  2089.     # "pop# mailbox" name with your hostname, i.e., your call.  The "pop 
  2090.  
  2091.     # userdata" line needs to have your hostname, followed by a password
  2092.  
  2093.     # (as negotiated with your mail server).  "pop timer" sets
  2094.  
  2095.     # how often, in seconds, to query for mail.
  2096.  
  2097.     #pop mailhost [44.xx.xx.xx]
  2098.  
  2099.     #pop mailbox hostname
  2100.  
  2101.     #pop userdata hostname password
  2102.  
  2103.     #pop timer 1800
  2104.  
  2105.  
  2106.  
  2107.     # Attach commands are complex; these are samples for COM 1
  2108.  
  2109.     # and 2.  See Appendix C for details.  Uncomment the
  2110.  
  2111.     # appropriate line(s) for your hardware.
  2112.  
  2113.     # COM1 -- 256 byte MTU, 4800 baud serial link as ax0
  2114.  
  2115.     attach asy 0x3f8 4 ax25 ax0 2048 256 4800
  2116.  
  2117.     # COM2 -- 256 byte MTU, 4800 baud serial link as ax1
  2118.  
  2119.     #attach asy 0x2f8 3 ax25 ax1 2048 256 4800
  2120.  
  2121.     
  2122.  
  2123.     # This is the basic route, sending everything out ax0 
  2124.  
  2125.     route add default ax0 
  2126.  
  2127.     
  2128.  
  2129.     # These are tcp parameters you shouldn't need to mess with.
  2130.  
  2131.     ip ttl 16
  2132.  
  2133.     ip rtimer 240
  2134.  
  2135.     tcp irtt 3000
  2136.  
  2137.     
  2138.  
  2139.     # On a shared channel, you may want to change timertype to
  2140.  
  2141.     # exponential; that's more courteous, but will slow your 
  2142.  
  2143.     # retries down significantly.  mss and window should ordinarily be 
  2144.  
  2145.     # the same value, equal to the largest mtu set in the attach
  2146.  
  2147.     # command(s) above minus 40.  With the common mtu for 1200 baud
  2148.  
  2149.     # channels of 256, that means both mss and window should be 216.
  2150.  
  2151.     tcp timertype linear
  2152.  
  2153.     tcp bblimit 16
  2154.  
  2155.     tcp mss 216 
  2156.  
  2157.     tcp window 216
  2158.  
  2159.     
  2160.  
  2161.     # These set up AX.25 parameters
  2162.  
  2163.     ax25 digipeat off
  2164.  
  2165.     ax25 maxframe 1
  2166.  
  2167.     ax25 paclen 256
  2168.  
  2169.     ax25 retry 20
  2170.  
  2171.     ax25 window 4096
  2172.  
  2173.     ax25 blimit 15
  2174.  
  2175.     ax25 version 2
  2176.  
  2177.     
  2178.  
  2179.     # as with tcp timertype, you may want to set this to 
  2180.  
  2181.     # exponential on a shared channel.
  2182.  
  2183.     ax25 timertype linear
  2184.  
  2185.     
  2186.  
  2187.     # These are netrom setup commands.  Don't turn them on 
  2188.  
  2189.     # unless you need them, and you know what you're doing.  You
  2190.  
  2191.     # can really screw up the network by putting out netrom 
  2192.  
  2193.     # broadcasts that don't fit with the configuration of the 
  2194.  
  2195.     # "real" netrom nodes that can hear you.
  2196.  
  2197.     #attach netrom
  2198.  
  2199.     #netrom interface ax0 MYALIAS 192
  2200.  
  2201.     #netrom obsotimer 1800
  2202.  
  2203.     #netrom nodetimer 10800
  2204.  
  2205.     #netrom verbose yes
  2206.  
  2207.     #netrom bcnodes ax0
  2208.  
  2209.     #netrom ttl 8
  2210.  
  2211.  
  2212.  
  2213.     # These start the servers.
  2214.  
  2215.     start smtp
  2216.  
  2217.     start ftp
  2218.  
  2219.     start echo
  2220.  
  2221.     start discard
  2222.  
  2223.     start telnet
  2224.  
  2225.     start finger
  2226.  
  2227.     start ax25
  2228.  
  2229.     
  2230.  
  2231.     # Uncomment this line to enable logging.
  2232.  
  2233.     #log \spool\net.log
  2234.  
  2235.     
  2236.  
  2237.     # Default file type for ftp transfers.  Type image is for binary files; 
  2238.  
  2239.     type
  2240.  
  2241.     # ascii is for text; it's safest to set the default to image.
  2242.  
  2243.     ftype image
  2244.  
  2245.     
  2246.  
  2247.     # This makes telnet sessions to Unix systems work
  2248.  
  2249.     # line-by-line, rather than character-by-character.
  2250.  
  2251.     echo refuse
  2252.  
  2253.     
  2254.  
  2255.     # Tell smtp how often to scan for outgoing mail
  2256.  
  2257.     smtp timer 600
  2258.  
  2259.     smtp batch on 
  2260.  
  2261.     
  2262.  
  2263.     # GRINOS can send a string of commands to the TNC on startup.
  2264.  
  2265.     # You could use this to force the TNC into KISS mode.  Note that
  2266.  
  2267.     # you need to specify which interface to use.  This must be done
  2268.  
  2269.     # <after>defining the interface, and <before>any data is sent to
  2270.  
  2271.     # the TNC (for example, by the smtp and pop kick commands below).
  2272.  
  2273.     # These commands will do that for a TNC2:
  2274.  
  2275.     comm ax0 "kiss on"
  2276.  
  2277.     comm ax0 "reset"
  2278.  
  2279.     
  2280.  
  2281.     # kick the smtp and POP servers at startup.  Only uncomment the 
  2282.  
  2283.     # "pop kick" line if you've defined a POP server above.
  2284.  
  2285.     smtp kick
  2286.  
  2287.     #pop kick
  2288.  
  2289.     
  2290.  
  2291.     # GRINOS (but not other versions) can define the function 
  2292.  
  2293.     # keys with macros to make things a bit easier.  Here are a 
  2294.  
  2295.     # couple of examples.  Note that each command must end with 
  2296.  
  2297.     # a "\n" to signify a carriage return.  The numbers 
  2298.  
  2299.     # represent the keys; 59 - 68 for F1- F10 (though F10 can't
  2300.  
  2301.     # be redefined; it's always the escape key), 84 - 93 for 
  2302.  
  2303.     # shiftF1 - shift F10, 94 - 103 for ctrlF1 - ctrlF10, 104 -
  2304.  
  2305.     # 113 for altF1 - altF10.
  2306.  
  2307.     fkey 59 "tcp status\n"
  2308.  
  2309.     fkey 60 "mem status\n"
  2310.  
  2311.     fkey 61 "status\n"
  2312.  
  2313.     
  2314.  
  2315.     # THE END
  2316.  
  2317.  
  2318.  
  2319.     APPENDIX C
  2320.  
  2321.     Designing ATTACH Commands
  2322.  
  2323.     
  2324.  
  2325.     NOS supports a number of versions of the attach command to deal 
  2326.  
  2327.     with different hardware.  We'll discuss three of them here:  asy, 
  2328.  
  2329.     used for serial port connections; pi, used to connect to the Ottawa 
  2330.  
  2331.     PI card; and packet, used to interface to hardware supporting the 
  2332.  
  2333.     FTP, Inc., packet driver protocol.  As usual, this discussion covers 
  2334.  
  2335.     the basics; see the NOS reference manual for details on all the 
  2336.  
  2337.     many options.
  2338.  
  2339.     
  2340.  
  2341.     Hosts normally have a separate IP address for each interface.  If 
  2342.  
  2343.     you are running more than one interface, you can include that 
  2344.  
  2345.     interface's IP address (in [xx.xx.xx.xx] form) at the end of the 
  2346.  
  2347.     attach command.
  2348.  
  2349.     
  2350.  
  2351.     The asy version provides an interface to a standard PC serial port.  
  2352.  
  2353.     The syntax is:
  2354.  
  2355.     
  2356.  
  2357.     attach asy <ioaddr> <vector> <mode> <if> <bufsize> 
  2358.  
  2359.         <mtu> <speed>
  2360.  
  2361.     
  2362.  
  2363.     In English, these parameters are:
  2364.  
  2365.     
  2366.  
  2367.     ioaddr -- the address of the COM port being used.  
  2368.  
  2369.     COM1 is usually 0x3f8 and COM2 is usually 0x2f8.  
  2370.  
  2371.     COM3 and COM4 aren't standardized; using them will 
  2372.  
  2373.     require looking at the documentation for your serial card, 
  2374.  
  2375.     and probably some experimentation.
  2376.  
  2377.     
  2378.  
  2379.     vector -- the IRQ used by the hardware.  COM1 is usually 
  2380.  
  2381.     4, and COM2 is usually 3.  Again, COM3 and COM4 
  2382.  
  2383.     vary.
  2384.  
  2385.     
  2386.  
  2387.     mode -- this specifies the nature of the interface.  ax25 is 
  2388.  
  2389.     for a connection to a KISS TNC, slip for a hardwired 
  2390.  
  2391.     connection to another host, ppp for a dial-up connection, 
  2392.  
  2393.     and nrs is for attaching a NOS station to a NetRom node.
  2394.  
  2395.     
  2396.  
  2397.     if -- the interface name.  The convention is to use ax0, 
  2398.  
  2399.     ax1, etc., for KISS interfaces.
  2400.  
  2401.     
  2402.  
  2403.     bufsize -- the buffer for incoming data, in bytes.  Usually 
  2404.  
  2405.     a value of 1024 is more than sufficient for a 1200 baud 
  2406.  
  2407.     channel.
  2408.  
  2409.     
  2410.  
  2411.     mtu -- the maximum transmission unit size, in bytes.  See 
  2412.  
  2413.     the discussion in the main text on this subject.
  2414.  
  2415.     
  2416.  
  2417.     speed -- the speed of the serial (not radio) link, in baud.  
  2418.  
  2419.     The best setting for this will depend on the speed of your 
  2420.  
  2421.     computer, but generally two to four times the radio 
  2422.  
  2423.     speed is adequate.
  2424.  
  2425.     
  2426.  
  2427.     Some sample attach asy commands are:
  2428.  
  2429.  
  2430.  
  2431.         # COM1, KISS TNC as ax0, MTU 256, 4800 BAUD
  2432.  
  2433.         attach asy 0x3f8 4 ax25 ax0 1024 256 4800
  2434.  
  2435.     
  2436.  
  2437.         # COM2, KISS TNC as ax1, MTU 256, 2400 BAUD
  2438.  
  2439.         attach asy 0x2f8 3 ax25 ax1 1024 256 2400
  2440.  
  2441.     
  2442.  
  2443.         # SLIP link, COM1 as sl0, MTU 256, 9600 BAUD
  2444.  
  2445.         attach asy 0x3f8 4 slip sl0 1024 256 9600
  2446.  
  2447.     
  2448.  
  2449.     The Ottawa PI card is a plug-in board for PCs designed for high-
  2450.  
  2451.     speed performance.  It has two ports, one DMA driven for high 
  2452.  
  2453.     speed and the other interrupt driven.  The attach syntax is:
  2454.  
  2455.     
  2456.  
  2457.     attach pi <ioaddr> <vector> <DMA chn> <mode> <name> 
  2458.  
  2459.         <bufsize> <mtu> <speed a> <speed b>
  2460.  
  2461.     
  2462.  
  2463.     A sample attach command (using the PI's default jumper settings) 
  2464.  
  2465.     is:
  2466.  
  2467.     
  2468.  
  2469.         attach pi 380 7 1 ax25 pi0 1750 1024 0 1200
  2470.  
  2471.     
  2472.  
  2473.     In this example, the interface name for the DMA port is "pi0a" and 
  2474.  
  2475.     the second port is "pi0b".  Because the port a speed is 0, the PI 
  2476.  
  2477.     card expects the modem to provide its own clocking.  The PI 
  2478.  
  2479.     attach syntax is explained in the manual provided with the card.
  2480.  
  2481.     
  2482.  
  2483.     Finally, the packet interface is used to connect to ethernet cards 
  2484.  
  2485.     and other hardware that supports the FTP, Inc. "packet driver" 
  2486.  
  2487.     standard.  There's a packet driver for the PI card.  The syntax is:
  2488.  
  2489.     
  2490.  
  2491.         attach packet <ioaddr> <vector> <if> <bufsize> <mtu>
  2492.  
  2493.     
  2494.  
  2495.     In this case, ioaddr and vector need to match those used for the 
  2496.  
  2497.     packet TSR that supports the hardware.  bufsize is the number of 
  2498.  
  2499.     packets (not bytes) that may be outstanding.  For ethernet, the 
  2500.  
  2501.     standard mtu is 1500.
  2502.  
  2503.  
  2504.  
  2505.     APPENDIX D
  2506.  
  2507.     The DOMAIN.TXT File
  2508.  
  2509.     
  2510.  
  2511.     
  2512.  
  2513.     # The domain.txt file contains mappings between hostnames 
  2514.  
  2515.     # and IP addresses.  The file can be quite complex, but 
  2516.  
  2517.     # basic entries usually resemble this.
  2518.  
  2519.     
  2520.  
  2521.     # Fields are separated by tabs or spaces.
  2522.  
  2523.     
  2524.  
  2525.     # These are normal address records.  The first field is the 
  2526.  
  2527.     # hostname.  The second field is a "time to  live" value 
  2528.  
  2529.     # returned by the name server.  If you manually create an 
  2530.  
  2531.     # entry, you can leave this field  blank.  The third field 
  2532.  
  2533.     # is always "IN" to signify these are internet addresses.  
  2534.  
  2535.     # The fourth field is "A" to signify an address record.  The
  2536.  
  2537.     # last field is the address.
  2538.  
  2539.     
  2540.  
  2541.     k8gkh.ampr.org.9886    IN    A    44.70.12.31
  2542.  
  2543.     ag9v.ampr.org.    3584    IN    A    44.70.12.34
  2544.  
  2545.     
  2546.  
  2547.     # This is a "canonical name" (CNAME) record that maps an 
  2548.  
  2549.     # alias to an official hostname.
  2550.  
  2551.     
  2552.  
  2553.     server.ampr.org.    3599    IN    CNAME    ag9v.ampr.org.
  2554.  
  2555.  
  2556.  
  2557.     APPENDIX E
  2558.  
  2559.     Sample FTPUSERS File
  2560.  
  2561.     
  2562.  
  2563.     # This file establishes ftp user permissions.  Fields are 
  2564.  
  2565.     # separated by exactly one space.  The privileges value is a 
  2566.  
  2567.     # bitmask.  The only values significant for ftp are:
  2568.  
  2569.     
  2570.  
  2571.     # 1 - read only
  2572.  
  2573.     # 3 - read/write
  2574.  
  2575.     # 7 - read/write/overwrite/delete
  2576.  
  2577.     
  2578.  
  2579.     
  2580.  
  2581.     anonymous * /pub 1        # no password, read only in /pub
  2582.  
  2583.     friend foobar /pub 3        # read/write privileges in /pub
  2584.  
  2585.     spouse snoogums / 7        # read/write/delete everywhere
  2586.  
  2587.  
  2588.  
  2589.     APPENDIX F
  2590.  
  2591.     Making Your TNC Talk in KISS MODE
  2592.  
  2593.     
  2594.  
  2595.     Once NOS is installed and your configuration files set, you need to 
  2596.  
  2597.     do one more thing:  get your TNC talking to your computer in KISS 
  2598.  
  2599.     (Keep It Simple, Stupid) mode.  KISS is a special protocol that lets 
  2600.  
  2601.     your computer do the work of processing packets; the TNC does 
  2602.  
  2603.     only the very low-level packet assembly and disassembly 
  2604.  
  2605.     functions.  Nearly all TNCs support KISS in one way or another.
  2606.  
  2607.     
  2608.  
  2609.     Typically, you'll need to issue commands to the TNC to set the 
  2610.  
  2611.     serial line baud rate to the same speed as you've specified in the 
  2612.  
  2613.     attach command, to 8 bit data, and to no parity.  Then, issue the 
  2614.  
  2615.     KISS command (on a TNC2, kiss on), and the TNC's software 
  2616.  
  2617.     reset command.  After that, you won't be able to talk to your TNC 
  2618.  
  2619.     via the terminal program, but NOS will be able to.  (And don't 
  2620.  
  2621.     worry, you can easily return the TNC to normal mode if you want 
  2622.  
  2623.     to.)  Once you've done this, you're set to run NOS.
  2624.  
  2625.     
  2626.  
  2627.     One trick that grinos supports is the ability to send commands to 
  2628.  
  2629.     the TNC during startup.  The comm command will send a string of 
  2630.  
  2631.     text to the named interface.  For example, to force a Kantronics 
  2632.  
  2633.     DataEngine or KAM into KISS mode every time you start NOS, 
  2634.  
  2635.     include the following commands in AUTOEXEC.NOS (after you've 
  2636.  
  2637.     defined the interface with the attach command):
  2638.  
  2639.     
  2640.  
  2641.     comm ax0 "interface kiss"
  2642.  
  2643.     comm ax0 "reset"
  2644.  
  2645.     
  2646.  
  2647.     Note that surrounding the text with quote characters will preserve 
  2648.  
  2649.     spaces in the command.
  2650.  
  2651.  
  2652.  
  2653.     Appendix G
  2654.  
  2655.     A Sample BM.RC File
  2656.  
  2657.     
  2658.  
  2659.     # BM.rc
  2660.  
  2661.     
  2662.  
  2663.     # your hostname -- note that for mail we <don't> put a trailing 
  2664.  
  2665.     period at
  2666.  
  2667.     # the end of the FQDN.
  2668.  
  2669.     host ag9v.ampr.org
  2670.  
  2671.     
  2672.  
  2673.     # the user name (one host can receive mail for several users); 
  2674.  
  2675.     # usually your callsign
  2676.  
  2677.     user ag9v
  2678.  
  2679.     
  2680.  
  2681.     # your full name, for the message "From:" line
  2682.  
  2683.     fullname John Ackermann
  2684.  
  2685.     
  2686.  
  2687.     # if you want to have replies sent to another host, because, for 
  2688.  
  2689.     # example, you are using a POP server, this line specifies where
  2690.  
  2691.     # replies should go
  2692.  
  2693.     reply ag9v@ag9v.ampr.org
  2694.  
  2695.     
  2696.  
  2697.     # for faster screen writes on the pc, use direct video, not bios
  2698.  
  2699.     screen direct
  2700.  
  2701.     
  2702.  
  2703.     # if you want to use an editor different than BM's built-int one
  2704.  
  2705.     edit ed
  2706.  
  2707.     
  2708.  
  2709.     # put saved messages here; note "/" instead of "\"
  2710.  
  2711.     mbox c:/folder/mbox
  2712.  
  2713.     
  2714.  
  2715.     # save a copy of outbound mail here
  2716.  
  2717.     record c:/folder/outmail
  2718.  
  2719.     
  2720.  
  2721.     # folder for your mail
  2722.  
  2723.     folder c:/folder
  2724.  
  2725.     
  2726.  
  2727.     # maximum number of messages that can be pendi