home *** CD-ROM | disk | FTP | other *** search
/ Eagle Eye CD-ROM BBS Network / eagle-eye-cdrom-bbs-network.iso / ham_etc / starttcp.txt < prev    next >
Text File  |  1992-01-29  |  48KB  |  754 lines

  1.  
  2.             Getting Started with TCP/IP on Packet Radio
  3.                                by John Ackermann, AG9V
  4.                              Miami Valley FM Association
  5.                                     Dayton, Ohio
  6.                                    3 November 1991
  7.                       Copyright 1991 by John R. Ackermann, Jr.
  8.               This document may be freely distributed in unaltered form
  9.              for non-commercial use only, provided this copyright notice
  10.                                     is included.
  11.  
  12.             Introduction
  13.  
  14.             This document is intended to help hams with some experience
  15.             in packet radio get started with the TCP/IP software written
  16.             by KA9Q and others.  It is not intended to take the place of
  17.             the software's reference manual, but rather to provide a
  18.             quick-and-dirty introduction to the capabilities of TCP/IP
  19.             and the mysteries of installing and using the software.
  20.             There are several different versions of the KA9Q software
  21.             floating around.  It was originally written for MS-DOS
  22.             computers, but has been ported to Macintosh, Amiga, and Unix
  23.             systems.  The original program was called NET and its last
  24.             formal version was issued in April, 1989.  If someone talks
  25.             about 890421.1 NET, that's what they're referring to.
  26.             Since 1989, work has concentrated on a rewritten program
  27.             called NOS (for Network Operating System).  NOS offers many
  28.             new features that make using TCP/IP much more effective.
  29.             However, it is a growing and changing creature, and keeping
  30.             up with it is difficult.  We recommend that you use NOS
  31.             instead of NET, but we can't tell you precisely where to
  32.             find the latest version.  Your best bet is to check with a
  33.             local user.  If you can't find a copy there, there are
  34.             several telephone BBS systems that carry the software, but
  35.             be prepared to find a bewildering array of versions and
  36.             flavors:
  37.                     N8EMR's Ham BBS  (614) 895-2553
  38.                     ChowdaNet        (401) 331-0334
  39.                     WB3FFV           (301) 335-0858
  40.             This document is based on the MS-DOS version of NOS,
  41.             specifically the PA0GRI adaptation of the June 18, 1991
  42.             version of NOS as modified and distributed by N1BEE (what a
  43.             mouthful!) and available as GRINOS from the ChowdaNet BBS.
  44.             The discussion tries to stay away from features that are
  45.             specific to that version, but if something we say doesn't
  46.             seem to make sense with your version of the software, that's
  47.             probably why.
  48.             A last note before we plunge in -- we said it before, and
  49.             we'll say it again:  this document barely scratches the
  50.             surface of NOS.  Nearly every command described here has
  51.             options or parameters that we're ignoring.  Our goal is to
  52.             give you a feel for what TCP/IP does, and to get you on the
  53.             air with NOS; to get beyond the novice stage you need to
  54.             look at the reference manual and experiment with the
  55.             software.
  56.  
  57.             TCP/IP and Ham Radio
  58.    
  59.             TCP/IP is a set of communication protocols that have become
  60.             a standard in the computer networking world.  It is designed
  61.             to link different kinds of computer systems together over
  62.             dissimilar networks.  TCP/IP software runs on nearly every
  63.             kind of computer available, from IBM mainframes to PCs,
  64.             Macs, and Amigas.  The KA9Q software (from now on, we'll
  65.             call it NOS) is special because it includes the features
  66.             necessary to run TCP/IP over ham packet radio.
  67.             The TCP/IP protocols allow different kinds of computers to
  68.             talk to one another across networks.  The services it
  69.             provides include terminal sessions, file transfer,
  70.             electronic mail, and data routing services.  Computers
  71.             running TCP/IP (referred to as hosts) can run some or all of
  72.             these applications simultaneously; it's entirely possible to
  73.             sit at a PC computer running NOS and carry on a keyboard-to-
  74.             keyboard chat with one station, while another retrieves a
  75.             file from your hard disk and you send electronic mail to a
  76.             third.
  77.             It's also comforting to know that when you run TCP/IP, you
  78.             don't give up the ability to carry on normal packet
  79.             communications.  You can use NOS just like a terminal
  80.             program to establish connections with your local BBS, etc.
  81.             If you've looked at the size of the NOS documentation,
  82.             you're probably asking yourself what the benefit is of
  83.             mastering this fairly complex stuff.  Well, NOS has several
  84.             features that improve on regular packet radio.  It has much
  85.             more sophisticated file transfer and electronic mail
  86.             capabilities than our present PBBS systems (and it's
  87.             possible to feed PBBS messages into NOS in a way that makes
  88.             it much easier to use them).  It supports multiple
  89.             simultaneous connections.  It has new and better methods of
  90.             dealing with slow and congested channels that improve the
  91.             reliability and throughput of packet traffic.
  92.             And, since it is directly adapted from the de facto standard
  93.             system of interconnecting computers, it offers the
  94.             possibility of sophisticated services far beyond anything
  95.             available on regular packet radio.  For example, in some
  96.             areas ham TCP/IP users can log into multiuser Unix computer
  97.             systems and run applications as if they were directly
  98.             connected to those machines.
  99.  
  100.             What is TCP/IP?
  101.             As mentioned above, TCP/IP is actually a set of protocols
  102.             for the transfer of data across networks of computers.  Two
  103.             of these protocols underlie most of the others, and they
  104.             give the set its popular name:
  105.             TCP     Transport Control Protocol, a "reliable stream
  106.                     service" (which is a fancy way of saying it makes
  107.                     sure that all the data sent to a remote host gets
  108.                     there).
  109.              IP      Internet Protocol, which sets the basic rules for
  110.                     formatting packets of data to go out over a network.
  111.                     TCP rides on top of IP.
  112.             Now you finally know what TCP/IP stands for, there are a few
  113.             concepts that are critical to understand because they
  114.             address the basic problem of any communications system --
  115.             identifying the parties to the conversation.
  116.             The first is the IP Address.  Since these protocols are used
  117.             on lots of different kinds of computers, it was necessary to
  118.             come up with an addressing system that worked with all of
  119.             them, and that didn't take up a lot of space.  The answer
  120.             was to make addresses used by TCP/IP systems out of a four
  121.             byte sequence.  We usually print these addresses using the
  122.             numeric value of each byte, separated by a period, such as
  123.            [44.70.12.34].  This is known as "dotted notation."  The
  124.             square brackets aren't necessary, but they are convenient to
  125.             set off ip addresses; we'll use them in all our references.
  126.             The four bytes are of decreasing significance from left to
  127.             right (the first byte represents the largest network, and
  128.             the last byte represents an individual system) and can
  129.             represent networks and subnetworks of computers.  We won't
  130.             go into all the semantics here, but as an example
  131.             [44.70.12.34] breaks down as:
  132.                     44.  The network assigned to amateur radio TCP/IP.
  133.                     70.  The subnetwork for Ohio.
  134.                     12.  The Dayton/Cincinnati area.
  135.                     34   a specific system address within that area.
  136.             The second important concept is the hostname.  Obviously, ip
  137.             addresses aren't very intuitive.  English-like hostnames
  138.             make remembering addresses much easier, and NOS has the
  139.             ability to translate a hostname into the matching ip address
  140.             automatically.  A host is any computer running TCP/IP; even
  141.             when you're using services from another computer, your
  142.             system is still a host.  The convention in ham radio TCP/IP
  143.             is to use your callsign as your hostname.  To help reduce
  144.             confusion, we usually print hostnames in lower case, and
  145.  
  146.             callsigns in capital letters -- my hostname is ag9v, and my
  147.             call is AG9V (though NOS isn't case sensitive and won't care
  148.             if you don't do it this way).  When we talk about a remote
  149.             host, we're talking about a machine that you're
  150.             communicating with via TCP/IP.
  151.             Closely related to the hostname is the domain name.  A
  152.             domain is a group of machines that are logically (though not
  153.             necessarily physically) connected together.  The domain name
  154.             for the ham radio network is ampr.org. (the trailing period
  155.             is part of the name).  Domain names are like ip addresses;
  156.             the periods separate parts of the name, with each part
  157.             representing a different level in the hierarchy.  But the
  158.             domain name is ordered in reverse --its significance is
  159.             right to left, the opposite of ip addresses.
  160.             For the ham network, org (short for "organizations") is the
  161.             "top level domain."  ampr is the second level domain,
  162.             containing all ham TCP/IP hosts.  The period at the end of
  163.             the domain indicates that there is no higher domain level
  164.             (note that some versions of NOS don't care about the
  165.             trailing period; the PA0GRI versions do).  There could be
  166.             more than two domains between a host and the top of the
  167.             domain tree, but in the ham radio network we don't usually
  168.             add more levels.
  169.             When you combine a hostname with a domain name, you get
  170.             something like ag9v.ampr.org.  This is called a Fully
  171.             Qualified Domain Name (FQDN -- knowing this acronym allows
  172.             you to sound like a real expert).  There's a command in NOS
  173.             called domain suffix that will tell the program to
  174.             automatically add the domain name to hostnames that you
  175.             type.
  176.             If a host has multiple users, we can add the user's login
  177.             name at the beginning of the address, separated from the
  178.             FQDN by a "@" character.  This combination is commonly known
  179.             as an Internet address (the Internet is the general term for
  180.             all the TCP/IP hosts that are interconnected in the
  181.             commercial, educational, and military domains) and is the
  182.             address form used for most electronic mail in the real
  183.             world.  For example, if there is a user "jra" at ag9v,
  184.             jra@ag9v.ampr.org. would be that user's full Internet
  185.             address.
  186.             Now that we have those boring basics out of the way, some of
  187.             the protocols that use TCP/IP to provide real, useful
  188.             services include:
  189.             TELNET  The terminal emulation program.  In "real" networks,
  190.                     telnet lets a user at one host remotely access a
  191.                     remote host, just as if he was on a terminal
  192.                     directly connected to that computer.  In NOS, the
  193.                     telnet function usually connects you to a remote
  194.                     host's mailbox, which acts very much like a personal
  195.                     PBBS.  The NOS telnet command does allow you to
  196.                     remotely login to a host that supports that
  197.                     function; in some areas Unix computers connected to
  198.                     the ham TCP/IP network provide that service.
  199.             FTP     File Transfer Protocol.  A means of transferring
  200.                     both ASCII (text) and binary (program, data, or
  201.                     compressed) files between hosts.
  202.             SMTP    Simple Mail Transfer Protocol.  A (mostly) invisible
  203.                     way of moving electronic mail from one host to
  204.                     another.  If you create a message on your computer
  205.                     (using the BM program, discussed below), SMTP will
  206.                     attempt to transfer it to the destination computer
  207.                     in the background.
  208.             POP     Post Office Protocol.  SMTP is neat, but it's really
  209.                     designed to work with hosts that are available full
  210.                     time.  Most ham TCP/IP stations aren't.  POP is
  211.                     designed for them; it allows your incoming mail to
  212.                     be stored at a host that acts as a mail server; when
  213.                     you come on the air, your system automatically asks
  214.                     the server to send you your mail.
  215.             A couple of other protocols are also useful (or at least
  216.             handy to use as buzzwords):
  217.             PING    Packet InterNet Groper.  A diagnostic that sends a
  218.                     packet to a specified host; if the host is
  219.                     accessible to you and on the air, it responds with
  220.                     another packet.  PING tells you how long the round
  221.                     trip took.
  222.             FINGER  A way of finding out information about the users at
  223.                     a host.  The finger command can simply list all the
  224.                     users at a host, or spit out information (like the
  225.                     "brag tape" of old) about a specific user.
  226.             ARP     Address Resolution Protocol.  IP addresses need to
  227.                     be matched with the correct hardware address (in our
  228.                     case, ham callsign) to allow packets to be sent to
  229.                     their destination.  ARP does this by sending out a
  230.                     broadcast message when it needs to know the callsign
  231.                     that matches an address.  The proper host (if it's
  232.                     on the air) will answer as the "owner" of that
  233.                     address and provide its hardware address.
  234.             DNS     Domain Name Service.  Remembering IP addresses isn't
  235.                     easy.  NOS can use a file called domain.txt to
  236.                     contain mappings between hostnames and IP addresses,
  237.                     but that means you need to know the hostname and
  238.                     address of any station you want to contact.
  239.                     Alternatively, a remote host may agree to serve as a
  240.             domain name server that NOS can query when it needs
  241.                     to know the address of a host.  Not all areas have a
  242.                     name server available to the ham community, but in
  243.                     those that do, life is a lot easier.
  244.   
  245.             Installing NOS
  246.             
  247.         Frankly, there's no completely painless way to get NOS
  248.             running on your computer.  NOS is somewhat picky about the
  249.             directories used for its files, and there are a number of
  250.             custom parameters that you must set to teach the program
  251.             about your environment and your network.  Those parameters
  252.             are contained in a configuration file that most versions of
  253.             NOS call autoexec.net (PA0GRI versions call it autoexec.nos;
  254.             our references to autoexec.net mean either variety).
  255.             You should create the following directories on your disk
  256.             (NOS can work from either a hard disk or a floppy; it's
  257.             getting big enough, though, that working from a 360K floppy
  258.             can be tough):
  259.                     /spool                (holds NOS' working files)
  260.                          /spool/help      (help files for the mbox)
  261.                          /spool/mail      (mail messages go here)
  262.                          /spool/mqueue    (mail workfiles)
  263.                          /spool/rqueue    (incoming mail workfiles)
  264.                     /finger               (home for finger info files)
  265.                     /public               (file uploads/downloads)
  266.             Three files need to go in the root directory of your default
  267.             disk:
  268.                     autoexec.net          (the NOS configuration file))
  269.                     ftpusers              (user ftp/mbox access)
  270.                     domain.txt            (hostname file)
  271.                     bm.rc                 (mail program configuration)
  272.               NOS uses two executable files.  These can be installed
  273.             anywhere on your file path:
  274.                     nos.exe (grinos.exe)  (main executable file)
  275.                     bm.exe                (mailer program)
  276.             Once the directories are created and the files copied, you
  277.             need to edit the autoexec.net file with a text editor to
  278.             customize it.  A sample file is included as Appendix A.
  279.             Some of the things you'll have to put in the file are:
  280.             *       Your hostname (usually your callsign in lower case):
  281.                     hostname ag9v.
  282.             *       Your IP address.  This is assigned by an area
  283.                     coordinator; to find out who your coordinator is,
  284.                     contact a local IPer, or Brian Kantor, WB6CYT, who
  285.                     is the international coordinator for ham IP address
  286.                     assignments:  ip address [44.70.12.34].
  287.  
  288.             *       Your callsign.  This can include an SSID if you
  289.                     want; local customs vary on this:  ax25 mycall AG9V.
  290.             *       "attach" commands to tell NOS how to talk to your
  291.                     hardware.  These can get quite hairy; Appendix B
  292.                     describes some commonly used versions.  A common
  293.                     one, for a TNC on COM 1 at 4800 baud, would be:
  294.                     attach asy 0x3f8 4 ax25 ax0 1024 256 4800.
  295.                     The "ax0" in the middle of the command is the
  296.                     interface name -- you use it to identify this port
  297.                     to NOS when you set up routing commands and the
  298.                     like.  You can use any (short) name you'd like, but
  299.                     the convention for COM ports is to use ax0, ax1,
  300.                     etc.
  301.             *       At least one routing command.  NOS needs to know
  302.                     where to send packets.  A default route that sends
  303.                     all packets out the ax0 interface is:  route add
  304.                     default ax0.
  305.             *       If you have a gateway that can route packets outside
  306.                     the local area, include a route like:  route add
  307.                     [44.70.13.0]/24 ax0 ag9v.
  308.                     This command would route packets addressed to any
  309.                     host with "44.70.13" as the first three bytes of its
  310.                     address out the ax0 interface to ag9v, which
  311.                     presumably knows how to get these packets to their
  312.                     destination.  The "/24" means that the first 24 bits
  313.                     (three bytes) of the address are significant; NOS
  314.                     will ignore the last byte when making routing
  315.                     decisions.
  316.             *       If you have a domain name server, add a command near
  317.                     the beginning of your configuration file identifying
  318.                     its IP address:  domain addserver [44.70.12.34].
  319.             If you want users to be able to learn about your station
  320.             with the finger command, you need to create a text file in
  321.             the /finger directory called <hostname>.txt.  You can use
  322.             any ASCII text editor to create the file; it should contain
  323.             basic info about your system.  Don't go overboard... a
  324.             screen full of text is plenty.
  325.             You can also create additional files with information about
  326.             specific aspects of your system.  For example, I might have
  327.             a list of the files available for downloading on my system
  328.             in a finger file called "filelist.txt."  A remote host who
  329.             issues the command finger filelist@ag9v will get that list.
  330.  
  331.             You may need to customize other parts of NOS; a review of
  332.             Appendix A will show you the most common configuration
  333.             commands.
  334.             Once NOS is installed and your configuration files set, you
  335.             need to do one more thing:  get your TNC talking to your
  336.             computer in KISS (Keep It Simple, Stupid) mode.  KISS is a
  337.             special protocol that lets your computer do the work of
  338.             processing packets; the TNC does only the very low-level
  339.             packet assembly and disassembly functions.  Nearly all TNCs
  340.             support KISS in one way or another.
  341.             Typically, you'll need to issue commands to the TNC to set
  342.             the serial line baud rate to the same speed as you've
  343.             specified in the attach command, to 8 bit data, and to no
  344.             parity.  Then, issue the KISS command (on a TNC2, kiss on),
  345.             and the TNC's software reset command.  After that, you won't
  346.             be able to talk to your TNC via the terminal program, but
  347.             NOS will be able to.  (And don't worry, you can easily
  348.             return the TNC to normal mode if you want to.)  Once you've
  349.             done this, you're set to run NOS.
  350.         
  351.         Using NOS
  352.             To run NOS, first make sure you have your TNC configured for
  353.             KISS mode and turned on.  Then, type nos (or grinos for the
  354.             PA0GRI version).  In a few seconds, you should see a net>
  355.             prompt.  Any error messages that appear first probably
  356.             indicate a problem with your autoexec.net file.
  357.             When you see the prompt, NOS is in command mode.  When you
  358.             are communicating with another host, NOS is in converse
  359.             mode.  To get back to command mode from converse mode, press
  360.             the F10 function key (sometimes called the escape key).  All
  361.             commands typed at the NOS prompt need to be followed by the
  362.             return key.
  363.             Typing ? in command mode will display a list of commands.
  364.             Typing a command name followed by ? will display the valid
  365.             subcommands.  You can't really call it a help system, but
  366.             it's better than nothing.
  367.             You can issue several commands from within NOS to deal with
  368.             files and directories.  pwd displays your current working
  369.             directory, and cd allows you to change directories.  dir
  370.             displays files in the current directory.  mkdir <dirname>
  371.             creates a new directory, and rmdir <dirname> removes one.
  372.             Delete <filename> erases a file.
  373.             You can also "shell out" to DOS from within NOS by entering
  374.             either an exclamation mark (!) or the command shell.  To
  375.             return to NOS, type exit at the DOS prompt.
  376.             From command mode, you can start a number of different types
  377.             of sessions.  Each session has its own display screen and
  378.             you can switch between a session and command mode, or
  379.             between sessions.  The se command displays the active
  380.             sessions with identifying numbers.  To switch to a session,
  381.             you can type se <session number>.  From command mode, you
  382.             can return to the current (most recently displayed) session
  383.             by entering a carriage return.
  384.             You can capture incoming data from the current session to a
  385.             disk file by using the record <filename> command, and you
  386.             can read in a data file from disk with the upload <filename>
  387.             command.
  388.             The most common NOS session types are probably telnet, its
  389.             cousin ttylink, ftp, and a regular packet  connect
  390.             (technically called an ax25 session).  Telnet is used to
  391.             "login" to a remote host, ttylink is a kind of telnet
  392.             specially designed for keyboard-to-keyboard communications,
  393.             and ftp handles file transfers.
  394.  
  395.             The connect command simply lets you do normal packet radio
  396.             stuff.  Establishing an ax25 connect through NOS is just
  397.             like using the standard TNC commands with a few small
  398.             differences.  First, since NOS can support several
  399.             interfaces, each with its own hardware, you need to tell NOS
  400.             which one to use.
  401.             So, to connect to N8ACV on interface ax0, enter connect ax0
  402.             N8ACV.  Once you get a Connected message, you'll be able to
  403.             type to the station at the other end just like you would
  404.             with normal packet.  To disconnect, press F10 to go back to
  405.             command mode and type disconnect at the prompt.  (Just as
  406.             with a TNC, these commands can be abbreviated; just how few
  407.             of the letters are necessary will depend on each
  408.             implementation of NOS and the commands it supports).
  409.             The other minor difference between the NOS connect command
  410.             and a regular TNC is that the word via is not used when
  411.             specifying digipeaters.  To connect to N8ACV through N8KZA
  412.             on interface ax0, you would enter connect ax0 N8ACV N8KZA.
  413.             The telnet command logs you in to a remote TCP/IP host;
  414.             depending on the capabilities of that host, you might find
  415.             yourself chatting directly with the user at the other end,
  416.             connected to mbox (which acts very much like a sophisticated
  417.             personal PBBS), or getting a Unix "login:" prompt.  To
  418.             establish a telnet session, enter telnet <hostname> at the
  419.             command prompt.  To close a session, press F10 to return to
  420.             command mode and enter close <session number>.  If there's
  421.             only one session open, you can just enter close.  You can
  422.             also end the session by issuing the appropriate exit or quit
  423.             command at the remote host's prompt.
  424.             Some versions of NOS offer a new type of session that
  425.             improves on telnet for real-time keyboard-to-keyboard chats.
  426.             It's called ttylink, and works just like telnet (for
  427.             example, start a session with ttylink <hostname>) except
  428.             that it connects you directly to the remote host's chat
  429.             mode, and uses a split-screen format to make things less
  430.             confusing as you type to each other.
  431.             You'll get a message like "Telnet session 1 failed:
  432.             Reset/Refused errno 9" if the remote host doesn't support
  433.             ttylink.  If the operator at the other end isn't available
  434.             to chat, you'll get a message like "The system is
  435.             unattended."  You'll still be able to type, but there won't
  436.             be anyone there to reply.  You can change the status on your
  437.             machine by setting the attended command either on or off.
  438.             You might want to put this command in your autoexec.net file
  439.             to set your default status.  You exit from ttylink just as
  440.             you would from telnet.
  441.  
  442.             And now a note from Miss Manners:  you should never simply
  443.             exit NOS when you have an open session.  Doing so can cause
  444.             great unpleasantness at the remote host.  Unless you're in
  445.             some sort of software or hardware lockup, or you know that
  446.             the station on the other end has gone away, always close
  447.             sessions and wait for confirmation before exiting the
  448.             program.
  449.             You should also be aware that your system may have started
  450.             sessions in the background, for example to transfer
  451.             electronic mail, or someone else may have started a session
  452.             with your system.  You may not even know these sessions are
  453.             running.  Pulling the plug on them would be very impolite.
  454.             Before exiting NOS, you should first use the se command to
  455.             make sure there are no current sessions running, and then
  456.             the tcp status command to see if there are any background
  457.             connections established.  tcp status will show you a long
  458.             and confusing list of information; the important stuff at
  459.             the end is the list of sockets (which are services your
  460.             system can either offer or request on the network).  If
  461.             anything other than Listening appears in the Status column,
  462.             that means there's at least one remote host communicating
  463.             with you.
  464.             Now, on to the file transfer protocol, ftp.  You initiate an
  465.             ftp session just like a telnet one -- by entering ftp
  466.             <hostname> at the command prompt.  Once the session is
  467.             established, the remote host will prompt you for a user name
  468.             and a password.  If your hostname and password have been
  469.             added to the remote host's ftpusers file, you'll have the
  470.             ability to download and perhaps upload files in the
  471.             directories permitted you.
  472.             If you haven't arranged with the remote host for your own
  473.             account, you can try to login as anonymous or guest; many
  474.             systems support these user names and grant limited (usually
  475.             download-only) privileges to them.  If you login under one
  476.             of these accounts, you should enter your hostname as the
  477.             password; that allows the remote host to keep track of who's
  478.             been using the system.
  479.             Once you've logged in, you'll see a new prompt: <ftp>.  This
  480.             will remind you that you're actually issuing commands to the
  481.             remote computer.  From the ftp> prompt, you can list the
  482.             files in a directory, change directories, upload files, or
  483.             download files.
  484.             To list files, enter dir at the ftp> prompt.  You will get a
  485.             listing that shows subdirectories (if any) and files
  486.             together with their dates and sizes.  To show the current
  487.             directory name, type pwd.  To change directories, issue the
  488.             cd <directory> command.  Note that directories are displayed
  489.  
  490.             with a forward slash (/) instead of the usual MS-DOS
  491.             backslash (\).  That's because the Unix operating system,
  492.             which is TCP/IP's natural home, uses forward slashes.  If
  493.             the remote host is running NOS, you can use either
  494.             character, but some other systems (particularly those
  495.             running Unix) will recognize only the forward slash.
  496.             Once you've found a file you want to upload or download, you
  497.             need to make a decision.  ftp can download the file either
  498.             as an image file, byte for byte, or as an ASCII file,
  499.             converting the line-end character as necessary to compensate
  500.             for different operating systems (Unix uses only a linefeed
  501.             character at the end of lines; MS-DOS uses carriage
  502.             return/linefeed).  Before beginning a file transfer, enter
  503.             either type i for an image file, or type a for an ASCII
  504.             file, at the ftp> prompt.
  505.             What are the consequences choosing the wrong type?  Well,
  506.             transferring a binary file as type a will almost certainly
  507.             fail.  Transferring an ASCII file as type i will work, but
  508.             you may find that the line-ends are screwed up.  ASCII
  509.             transfers are also quite a bit slower than image, because
  510.             each line needs to be processed separately.
  511.             To actually start a file transfer, use the command put
  512.             <local filename> <remote filename> to send a file, or get
  513.             <remote filename> <local filename> to receive a file.  The
  514.             file name can include a full path if you desire.  If you
  515.             only specify one filename, ftp will assume that both the
  516.             local and remote hosts will use the same name.  This can be
  517.             dangerous if the remote host uses a different operating
  518.             system than you do, as it may have filenames that are
  519.             illegal on your system.
  520.             If a file transfer goes awry, you can terminate it by going
  521.             to command mode via F10 and issuing the abort command.  To
  522.             end an ftp session, you can either type quit at the ftp>
  523.             prompt (the preferred way), or you can close the session
  524.             from the net> prompt.
  525.             If you want others to be able to access files on your
  526.             system, you'll need to set up an ftpusers file in your root
  527.             directory.  Appendix C describes the contents of that file.
  528.             Another message from Miss Manners:  transferring files via
  529.             ftp is reliable, but can be slooooow, particularly at 1200
  530.             baud.  Before you start downloading a 250 kilobyte file,
  531.             consider how busy the channel is, and whether you want to
  532.             tie things up for (perhaps) several hours by your download.
  533.             NOS is polite and won't hog the channel, but don't doubt
  534.             that a large file transfer will slow things down for
  535.             everyone else.
  536.   
  537.             The ping protocol mentioned above is very useful to see if a
  538.             remote host is on the air.  Just enter the command ping
  539.             <hostname> at the NOS prompt.  If the host is available, you
  540.             will see a response indicating what the round-trip time was
  541.             to that host.  The time may be many seconds if you're going
  542.             through gateways, so be patient.
  543.             The finger protocol lets you see information about a remote
  544.             host's users and services.  Entering finger @<hostname>
  545.             (note the slightly different syntax -- the "@" symbol must
  546.             immediately precede the remote hostname) will display a list
  547.             of the users (actually, finger files as described above) at
  548.             that host.  Entering finger <user@hostname> will display the
  549.             text file for that user.
  550.             Before we move on, a warning.  One of the packet BBS
  551.             programs, msys, includes support for TCP/IP.  Unfortunately,
  552.             the implementation in the current version is not good.  If
  553.             you plan to talk with an msys station, be prepared for lots
  554.             of strange problems -- and don't believe them when they tell
  555.             you that you are polluting the channel.
  556.  
  557.             Electronic Mail
  558.  
  559.             We've saved NOS's electronic mail capabilities for last
  560.             because they are a bit more involved than some other parts
  561.             of the program.  This is because you use two programs to
  562.             handle mail:  bm to write and read messages, and NOS to send
  563.             and receive them.  First we'll talk about reading and
  564.             writing messages, and then about using NOS to transport
  565.             them.
  566.             bm.exe is a program that reads and writes mail message in
  567.             the format TCP/IP systems recognize.  Contrary to popular
  568.             belief, "bm" stands for "Bdale's Mailer" in honor of its
  569.             creator, Bdale Garbee.  You can run bm in one of three ways:
  570.             from the DOS prompt just like any other program, from within
  571.             NOS by shelling to DOS with ! or shell, or (in grinos) by
  572.             typing the mail command from the net> prompt.
  573.             Before using bm, you need to create its configuration file,
  574.             bm.rc, which must live in the root directory of your disk.
  575.             There are quite a few commands you can include in bm.rc, but
  576.             only a few are necessary to make the system work.  A
  577.             workable bm.rc is quite short, so here's an annotated
  578.             version of one (comments follow the "#" signs):
  579.             
  580.                 # bm.rc
  581.                     # your hostname
  582.                     host ag9v.ampr.org.
  583.                     # the user name; usually your callsign
  584.                     user ag9v
  585.                     # your full name, for the message "From:" line
  586.                     fullname John Ackermann
  587.                     # if you want to have replies sent to another host,
  588.                     # because, for example, you are using a pop server,
  589.                     # this line specifies where replies should go
  590.                     reply ag9v@ag9v.ampr.org
  591.                     # for faster screen writes on the pc, use direct
  592.                     # video, not bios
  593.                     screen direct
  594.                     # if you want to use an editor different than bm's
  595.                     # built-in one
  596.                     edit ed
  597.                     # put saved messages here; note use of "/" instead
  598.                     # of "\"
  599.                     mbox c:/folder/mbox
  600.                     # save a copy of outbound mail here
  601.                     record c:/folder/outmail
  602.                     # folder for your mail
  603.                     folder c:/folder
  604.                     # maximum number of messages that can be pending
  605.                     maxlet 200
  606.  
  607.             Only the first three of these commands are absolutely
  608.             necessary to make bm work.
  609.             There's a bit of controversy in some areas over the proper
  610.             name to enter for user.  Some folks recommend using either
  611.             your first name, or your initials (for example, my address
  612.             would be "john@ag9v.ampr.org") while other suggest using the
  613.             callsign instead ("ag9v@ag9v.ampr.org").
  614.             While using the callsign may seem more impersonal, it has
  615.             major advantages when mail is moving between TCP/IP and the
  616.             packet BBS system, or when using the pop server; we strongly
  617.             recommend that you use the callsign@hostname format unless
  618.             local objection is even stronger.  It's important to be
  619.             consistent within the area, so that everyone knows how to
  620.             address mail to everyone else.
  621.             When you start bm, you'll see a prompt such as ag9v> showing
  622.             the default mailbox (based on the user entry in bm.rc).  As
  623.             in NOS, you enter commands at the prompt, following them
  624.             with a carriage return.  Most bm commands are single
  625.             letters, optionally followed by a mail addressee, or a
  626.             message number (or numbers).
  627.             To send mail, use the command m <addressee>.  The addressee
  628.             will normally be a user at a remote host; for example, ag9v
  629.             might send mail to k8gkh@k8gkh.  The single biggest problem
  630.             with bm is remembering to include the hostname -- in other
  631.             words, sending mail to <user> rather than <user>@<hostname>.
  632.             Without the hostname, bm will think the user is on your
  633.             local system, and the mail will end up being stored in a
  634.             mailbox under that user's name on your own system.  That
  635.             doesn't work too well.
  636.             One way to solve that problem, and do some other interesting
  637.             things, is to create an alias file in your root directory.
  638.             When you send a message, bm will compare the addressee with
  639.             the alias file, and if it finds a match will replace the
  640.             alias with a full address from the file.  An alias can point
  641.             to a list of addresses, so it's possible to define an alias
  642.             that will send a copy of the message to everyone in your
  643.             local group.
  644.           A sample alias file might look like:
  645.                     greg k8gkh@k8gkh.ampr.org.
  646.                     bill n8kza@n8kza.ampr.org.
  647.                     # note that one alias can expand to more than one
  648.                     # address.  An alias can extend to additional lines
  649.                     # by indenting subsequent lines with a tab or space.
  650.                     club k8gkh@k8gkh.ampr.org. n8kza@n8kza.ampr.org.
  651.                          n8acv@n8acv.ampr.org. wb8gxb@wb8gxb.ampr.org.
  652.  
  653.             Now, if you send mail to "greg," it will automatically be
  654.             expanded to the full address, and by sending a message to
  655.             "club," all four users will get a copy.
  656.             If you use bm's built-in editor to compose messages,
  657.             remember that it doesn't wrap lines; you have to hit the
  658.             carriage return at the end of each line.  You can list
  659.             outbound mail with the l command; you can kill an outbound
  660.             message with the k <msg#> command (the message number is
  661.             obtained from the output of the l command).
  662.             Several commands are used to deal with incoming mail.  h
  663.             displays the headers (summary info) about messages in your
  664.             mailbox.  It is the basic command you should use to check
  665.             your incoming mail.  Each message header displayed will have
  666.             a number to use with the other message manipulation
  667.             commands.  Commands given without a message number act on
  668.             the current message (the one displayed with a > by it in the
  669.             display from the h command; if there's only one message, it
  670.             is always the current one).
  671.             The commonly used commands (which may be followed by one or
  672.             more message numbers if appropriate) are:
  673.             msg#    message number by itself will display that message
  674.                     and set it as the current message.
  675.             r       reply to a message.
  676.             d       delete a message.
  677.             s       save a message; if a file name follows the message
  678.                     number(s), the message(s) will be saved in that
  679.                     file.  Otherwise, they'll be saved in the default
  680.                     mbox file.
  681.             u       undelete a message previously marked for deletion.
  682.             p       print a message on the local printer.
  683.             w       save a message to a file without including headers.
  684.             f       forward a message to another recipient.
  685.             b       bounce a message.  Like forward, but keeps the
  686.                     original sender information intact (i.e., the
  687.                     message will not appear to have been sent by you).
  688.             $       update the mailbox.  This deletes messages marked
  689.                     for deletion and reads in any new mail that may have
  690.                     arrived since you started bm.
  691.             There are two commands that exit from bm:  x will exit
  692.             without updating the mailbox.  In other words, the same
  693.             messages will be there the next time you run the program.  q
  694.             updates the mailbox (like $) and then exits.
  695.             Now, to the mechanics of getting mail into and out of your
  696.             system.  All mail that you create is sent to its destination
  697.             (or at least to the next stop on the way) by the smtp server
  698.             in NOS.  The smtp timer command (set in autoexec.net) tells
  699.  
  700.             smtp how often to scan the /spool/mqueue directory for
  701.             outgoing mail.  When it finds some, it attempts to open an
  702.             smtp session to the remote host in the address and send the
  703.             mail there.  There's no default for the smtp timer value, so
  704.             your autoexec.net file should include something like smtp
  705.             timer 600 (which scans for mail every ten minutes).  You can
  706.             manually force smtp to scan the queue by issuing the smtp
  707.             kick command from the net> prompt.
  708.             Incoming mail can arrive at your station when a remote host
  709.             does this and starts an smtp session with you.  But if you
  710.             don't keep your station up 24 hours a day, the remote host
  711.             will be trying, and trying, and trying, to connect with you
  712.             until you finally show up.  A far better approach is to use
  713.             pop -- the Post Office Protocol.  If your system runs pop,
  714.             and a full-time remote host in the area has agreed to be a
  715.             pop server, NOS will automatically tell the pop server when
  716.             you come on the air, and the server will respond by sending
  717.             you all the mail waiting in your mailbox.
  718.             Running pop requires the remote host acting as a pop server
  719.             to establish a mailbox and password for you, and you need to
  720.             add the appropriate commands to your autoexec.net file.
  721.             Those commands are:
  722.                     # the ip address of the server
  723.                     pop mailhost <ipaddr>
  724.                     # your mailbox name at the server
  725.                     pop mailbox <name>
  726.                     # login info
  727.                     pop userdata <name> <password>
  728.                     # how often to check for mail
  729.                     pop timer <seconds>
  730.                     # do a one-shot mail check now
  731.                     pop kick
  732.             With these commands, your system will automatically check
  733.             for mail when you start up, and then periodically while
  734.             you're on the air.
  735.             Remember that smtp or pop sessions may be running in the
  736.             background without your knowing about it.  Always check for
  737.             activity with the tcp status command before pulling the
  738.             plug!
  739.  
  740.             Conclusion
  741.             This has been a whirlwind tour of TCP/IP.  Once you have the
  742.             software installed, using it is really quite simple.  And it
  743.             opens the door to using packet radio in a whole new way.
  744.             To learn the subtleties of NOS, you should do two things:
  745.             read the reference manual for the version you're using, and
  746.             experiment with the program.  Once you know the ins and
  747.             outs, please share your knowledge with others.  The ham
  748.             radio TCP/IP community is still small, and we need all the
  749.             Elmers we can get!
  750.             John  Ackermann   AG9V
  751.             TCP/IP:      ag9v.ampr.org.  [44.70.12.34]
  752.             PBBS:        AG9V@N8ACV.OH.US.NA
  753.             Internet:    jra@lawday.daytonOH.ncr.com
  754.