home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-01-07 | 112.6 KB | 2,876 lines |
-
-
-
-
- 1. Introduction
-
- TCP/IP is the common name for a set of protocols developed to allow
- cooperating computers to share resources across a network. A protocol is
- simply a set of conventions or rules which must be adhered to by the
- communicating computers on a network to ensure that the information being
- exchanged is received and interpreted correctly. In the amateur radio
- software implementation of TCP/IP networking, the command set of the TNC is
- replaced with a very basic set of commands and the protocols run in the user's
- computer. This opens up the real power of computer-to-computer networking via
- packet radio.
-
- TCP/IP provides multiple connections (sessions), ASCII (text) and binary
- (executable programs and encoded text) file transfer, electronic mail, and
- keyboard-to-keyboard services. It was originally designed for the Department
- of Defense to connect unlike mainframe computers in the military, government,
- research institutions, private industry, and universities so that all could
- share resources on a common network. TCP/IP was originally designed so that
- it could be used with packet radio networks and it has since been modified so
- that it is both usable on amateur radio networks and complies with FCC rules
- on amateur radio digital transmissions.
-
- While there are many commands in a TCP/IP software package, it is still
- easy to use. The user first sends a few software commands to the TNC to
- substitute its limited command set with an even simpler command set (called
- "KISS," for "keep it simple stupid") and transfers control to the TCP/IP
- software in the user's computer. The user can then engage in TCP/IP
- communications, or, since the software package has the capability of
- communicating in normal AX.25 packet, the user can operate with AX.25 packet
- bulletin boards, keyboard connects, digipeaters, or NET/ROM nodes.
-
- TCP/IP has several advantages over normal AX.25 packet. At its lower
- levels, its strategies for retransmission of packets, exponential backoff in
- the face of channel congestion, handling of lost and duplicated packets, and
- packetization of data to be transmitted often lead to better overall channel
- throughput. It is designed to be a multi-connect, store-and-forward system.
- With TCP/IP, your local switch (similar to a node on AX.25) will hold your
- mail, check every so often to see if your system is active and when it sees
- you on the air, will send your mail to a sub-directory on your computer's disk
- drive. Mail can also be forwarded from an AX.25 PBBS. There is never a
- "station busy" reply on TCP/IP, since the software provides for multiple
- sessions, with the switch passing out mail to connected stations much like a
- dealer dealer cards, while handling a file transfer at the same time. There
- is even a method to give emergency traffic a higher priority in the queue.
-
- The most accurate name for the set of protocols we are describing is the
- "Internet protocol suite." This is a layered family of protocols. TCP
- (transmission control protocol) and IP (internet protocol) are two of the lower
- level protocols. While the end-user of the suite does not often interact with
- the TCP or IP protocols, they are the best known of the protocols, and it has
- become common to use the term TCP/IP to refer to the whole family. It is
- probably not worth fighting this habit.
-
- This document is a beginner's guide to use of the KA9Q Internet Software
- Package on the amateur radio packet network (AMPRNET). The KA9Q package is the
-
-
- - 2 -
-
-
- result of several years of development by Phil Karn, KA9Q, and his "merry band
- of implementors." The "TCP group" has grown to include hundreds of individuals
- worldwide, many of whom have contributed ideas to this software. The software
- resulting from this collaboration is extremely versatile. It was written for
- the IBM PC and clones, but has been ported to the Apple Macintosh, Atari ST,
- Commodore Amiga, and to several versions of UNIX machines. It has drivers for
- several hardware interfaces, allowing communication on wire networks as well as
- packet radio networks.
-
- The KA9Q Internet Package, in particular the program NET, provides the
- following services:
-
- telnet The telnet protocol, as implemented in the KA9Q software, allows
- users to communicate by a keyboard connection. The end result is
- the same as doing an AX.25 connection in most cases, but you
- take advantage of the attributes of TCP/IP.
-
- mail The simple mail transfer protocol (SMTP) provides services for
- sending and receiving mail. The sending, receiving, and
- forwarding computers can run unattended during this transfer, so
- it is not necessary to log into a PBBS to pick up your mail. A
- separate program, Bdale's Mailer (BM), first written by Bdale
- Garbee, N3EUA, is available to compose and read mail messages.
- It is also documented in this guide.
-
- file transfer The file transfer protocol (FTP) allows a user on any computer
- to get files from another computer, or to send files to another
- computer. Security is handled by requiring the user to specify
- a user name and password for the other computer.
-
- ax25 services Regular AX.25 services are also provided, so that NET can be
- used for all of your packet radio activities. You can connect
- to a friend who is not running TCP/IP and conduct a keyboard
- chat. In addition, NET provides an AX.25 mailbox, allowing
- your friends to send you mail and to initiate a keyboard chat.
-
- NET/ROM NET also allows your packet system to serve as a NET/ROM node,
- although this will not be documented in this guide.
-
- An advantage to the TCP/IP protocols and software is that the routing of
- packets through several systems to the eventual destination is simpler for the
- user than that required in AX.25 or NET/ROM forwarding. You do not need to
- know the full route to the destination. Rather, you set up a routing table to
- the stations that you can communicate with directly. If all other systems set
- up accurate routing tables, your packets will be forwarded properly to the
- desired destination.
-
- There are many other TCP/IP services that may be made available for use on
- packet radio in the future. The routing tables can be set up and kept up-to-
- date automatically, without requiring the user to edit the table. When multi-
- tasking computers become commonplace hobbyist machines, you will be able to
- remotely login to these systems to execute programs on them. Network file
- systems may become available, so that you can store your files on a remote disk
- and access them through the packet radio network. Most of these potential
-
-
-
-
-
-
-
-
-
- - 3 -
-
-
- services will require higher baud rate networks, as a 1200 baud radio link is
- just too slow to support them.
-
- 1.1. Objectives of This Guide
-
- The objectives of this guide are intentionally limited. The guide is
- intended to encourage more hams to use the KA9Q NET software on the amateur
- packet radio network (AMPRNET) and thus, it is aimed at beginners. It
- provides information on installing and using version 890421.1 of NET and
- version 3.3.1 of BM on an IBM PC or clone, with a serial interface to a TNC
- running the KISS (Keep It Simple, Stupid) firmware.
-
- Installation and use of the software on other machines is similar to that
- on the PC, but no attempt has been made in this guide to deal with the software
- on these other machines.
-
- This guide only documents the subset of the NET commands that are of most
- use to a beginning end-user of the software and the packet network. Short
- descriptions of all of the top-level NET commands are given in Appendix B.
- Further details are available in the manual "The KA9Q Internet Software
- Package," updated for the 890421.1 revision, dated May 8, 1989, by Bdale
- Garbee, N3EUA. This manual is often available on-line on the packet radio
- network as userman.doc, or in a compressed form, such as userman.arc or
- userman.zip. It should be consulted for details which are beyond the scope of
- this guide.
-
- 1.2. Acknowledgements
-
- Much of the material in this guide was taken from "The KA9Q Internet
- Software Package," with permission from the author, Bdale Garbee. Thanks go to
- Shayne Hughes, N6SPE, who helped me with the "software archeology," as we read
- the source code and experimented with the programs to find out how they worked.
- Thanks also go to Jim Pearce, N6ESV, and Chuck Bland, N6DBT, who provided many
- useful comments on the manuscript.
-
- I would appreciate receiving any comments you have about this guide. I
- can be contacted at the following addresses:
-
- AX.25 PBBS: N6GF@WA6NWE.#NOCAL.CA
- Internet: ford@iris.ucdavis.edu
- U.S. Mail: 226 Diablo Ave., Davis, CA 95616
-
-
- 2. Necessary Resources
-
- The purpose of this section of the guide is to describe the necessary
- resources you must have available to be able to set up an amateur packet radio
- system running TCP/IP. The hardware requirements of TCP/IP are nearly the same
- as any AX.25 packet station, although this guide assumes that the host computer
- is a PC or clone.
-
- 2.1. Computer
-
- The computer required to run the version of NET described in this guide
- is an IBM PC or clone running the MS-DOS or PC-DOS operating system (to be
- referred
-
-
-
-
- - 4 -
-
-
- to simply as DOS for the remainder of this guide). The PC can range from the
- original PC (8086) to the XT, AT (286), 386, or 486 machines. This computer
- must have at least one serial port and a floppy disk drive. A hard disk is
- preferred, but is not absolutely necessary.
-
- It is assumed that the reader of this guide is familiar with the basics
- of DOS. You should be able to set up directories, manage files, and have
- available and know how to use a text editor.
-
- 2.2. TNC
-
- The TNC (terminal node controller) used for TCP/IP must run the KISS
- firmware. This includes the TAPR TNC-1, TNC-2 and clones produced by several
- manufacturers, equipped with a ROM running KISS. For the TNC-2 or clones,
- version 1.1.6 of the firmware, or later, is required. Most of the more recent
- TNCs also run the KISS firmware.
-
- Attach your TNC to your PC serial port using an RS-232C cable, following
- your TNC manufacturer's instructions. Set the baud rate between the computer
- and the TNC as recommended in the TNC instructions. Verify that the TNC works
- properly in the AX.25 mode, again following the TNC instructions, and then
- enter the commands to run KISS.
-
- For the TNC-2 and clones, at the "cmd:" prompt, first type "KISS ON" and
- you will receive the message "KISS WAS OFF" and another "cmd:" prompt. Type
- "RESTART" and you should note that the CON and STA LEDs will flash three times
- to indicate you have entered the KISS mode. This command set will then have
- effect for subsequent power on/off cycles. To return to normal operation,
- enter the command "param ax0 255" at the "net>" prompt when you are running
- the KA9Q TCP/IP software package.
-
- For Kantronics TNCs, typing "KISSMODE ON" while in command mode, followed
- by "RESET," will put the TNC in KISS mode. Turning the TNC off and then on
- will cause the TNC to return to command mode. If you first turn KISSMODE ON
- and then PERM the value in EEPROM, when the TNC is turned on, it will
- automatically be in KISS mode.
-
- For other TNCs, follow the manufacturers instructions to enter the KISS
- mode.
-
- 2.3. Radio
-
- The majority of the TCP/IP packet operations are on 2 meters, so you will
- need a 2m FM transceiver. The radio requirements for TCP/IP are the same as
- those for AX.25 packet. Follow the directions in your TNC manual to interface
- the transceiver to the TNC.
-
- In most areas, TCP/IP packet operations are found in the frequency ranges
- 144.91-145.09 MHz and 145.71-145.79 MHz. You will have to ask around to find
- out what frequency is being used in your area. One way to find the TCP/IP
- operation is to operate your TNC in the AX.25 mode and monitor the frequencies
- with "MONITOR ON." The TCP/IP frequency is the one that causes the most
- "garbage" to be displayed on your screen, although NET/ROM nodes also cause
- this problem as well. The reason for this is that AX.25 TNCs do not decode
- the
-
-
-
-
-
- - 5 -
-
-
- TCP/IP or NET/ROM control information.
-
- 2.4. IP Address
-
- IP addresses are 32 bit numbers that uniquely identify a given machine
- (or "host") running the TCP/IP protocol suite. All of the possible 32 bit
- numbers are coordinated by an entity known as the Network Information Center,
- or NIC. Amateur Radio operators are fortunate in that a "Class A Subnet"
- consisting of 24 bits of address, in the range 44.X.X.X, has been reserved for
- our use. By general consensus, Brian Kantor, WB6CYT, of San Diego, CA, now
- serves as the top level administrator of the 44.X.X.X address space, and
- assigns blocks of addresses to regional coordinators from around the world.
-
- You need to have a unique address before you can link in with the rest of
- the networked world. The best way to get one is to ask around the local packet
- community and find out who your local address coordinator is. Your local
- coordinator will then assign you an address from the block for your area.
-
- If you have not yet obtained your IP address and want to get on the air
- immediately, you may temporarily use [44.128.0.*], with '*' replaced by a
- number between 1 and 255. Try to be sure that no one else in your area is
- using the same number.
-
- Brian Kantor can be reached as brian@ucsd.edu on the Internet if you have
- access to this wire network and need help locating your local address
- coordinator.
-
- 2.5. KA9Q Software
-
- The KA9Q TCP/IP program NET and the mailer BM are likely to found to be
- available in your local area. You should inquire about availability on your
- local packet BBS. This would not only provide you with the software, but also
- contact with someone who has used the software and could help you with its
- installation and use. Further, since the source code to these programs is
- available, many local versions are available and it is often to your advantage
- to use these local versions.
-
- If you fail to locate the software locally, the Tucson Amateur Packet
- Radio association (TAPR) now provides floppy copies of the software on 360K PC
- floppies, and can provide KISS ROMs for various TNC's, at a nominal charge for
- duplication and shipping. Contact TAPR for more information.
-
- TAPR
- PO Box 12925
- Tucson, AZ 85732
- (602) 749-9479
-
-
- The programs NET and BM must be installed and configured on your
- computer. The easiest way to deal with this is to edit the sample
- configuration files that are included in most distributions of the software.
- Local distributions also include configuration information appropriate for
- your local network, so it is to your advantage to acquire the software
- locally. If your distribution does not include the sample files, detailed
- information on installation and
-
-
-
-
- - 6 -
-
-
- configuration is given in Appendix A of this guide. The information in this
- appendix can also be used to understand the commands given in the sample files.
-
- A new version of the KA9Q Internet Package is now under development. It
- is called "NOS" and is a major rewrite of the NET program. When an official
- release of this software is made, it is likely that most packet systems will
- convert to the new software.
-
- 3. Definitions, Conventions, and Notation
-
- In this section, some terms used in TCP/IP networking are defined and the
- conventions and notation used in the guide are explained.
-
- Each system on the amateur packet radio network is referred to as a
- "node" or "host," terms that are derived from wire networks. Since each
- TCP/IP node includes a computer, the term "machine" is also used
- interchangeably with "node" and "host." As a user, you employ a "local host"
- and you communicate with a "remote host." The local host requests services
- from the remote host, and as a result, the remote host is known as a "server"
- and the local host is a "client." Actually, servers are provided for each of
- the supported protocols.
-
- Some hosts are set up not for use by an end user, but rather to forward
- other packets, similar to the function of an AX.25 digipeater, and to serve as
- a file repository. These systems are generally operated 24 hours a day and
- are known as "switches" or "gateways." Some of these systems are set up to
- serve as mail gateways to and from AX.25 PBBS systems. Note, however, that
- end user hosts can also be used to forward TCP/IP packets.
-
- Each host on the AMPRNET must be identified by an IP address, a 32 bit
- number that uniquely identifies a given machine. Hosts are also known by a
- symbolic name which is linked to the IP address in the configuration file,
- HOSTS.NET.
-
- 3.1. Conventions Used in this Guide
-
- The conventions used in this guide are described below. The intent was
- to produce this guide in the form of a simple ASCII (plain text) file that
- could be distributed through the AMPRNET. Thus, it was not possible to use
- bold or italic fonts, changes in point size, or underlining to clarify
- meaning.
-
- parameter Literal argument. A character string such as "parameter," with
- no surrounding brackets, is a required portion of a command and
- is to be typed exactly as shown.
-
- <parameter> Variable argument. A command argument enclosed by arrow
- brackets, such as "<parameter>," is a variable. An appropriate
- value for the variable must be used in the command. Appropriate
- values to be substituted are described as needed in this guide.
-
- [parameter] Optional argument. A command argument enclosed by square
- brackets, such as "[parameter]," is an optional argument. The
- effect of including, or not including, this argument in a
- command is described in this guide.
-
-
-
-
-
- - 7 -
-
-
- [<parameter>] Optional variable argument. A command argument enclosed by
- first by arrow brackets and then by square brackets, such as
- "[<parameter>]," is an optional variable argument.
-
- | "OR" operator. Command arguments separated by "|" mean that
- either one or the other argument is to be used. For example,
- "<host>|clear" means that you are to either enter the variable
- <host> or the literal argument "clear."
-
- 3.2. Notation Used in this Guide
-
- The following is the notation to be used in describing the commands in
- this guide.
-
- <ip_addr> The numeric IP address of a host in dotted decimal notation
- enclosed by brackets, e.g. [44.2.0.100].
-
- <host_name> The symbolic name of a host.
-
- <host> Denotes a host, switch, or gateway, which may be specified either
- as a symbolic name (<host_name>), or as a numeric IP address
- (<ip_addr>). The mappings between IP addresses and symbolic names
- are defined in the file "HOSTS.NET" described in section A.4 of
- Appendix A.
-
- <callsign> An amateur callsign, either in upper or lower case.
-
- <directory> The name of an existing directory on the host computer. Directory
- references can either be relative to the current directory, or
- absolute, beginning at the root (\). To refer to the parent
- directory, ".." can be used.
-
- <file> The name of a file, e.g. HOSTS.NET.
-
- <value> An integer number.
-
- <cr> A carriage return, usually marked "Return" on most keyboards.
- Note that all commands given in this guide must be followed by a
- carriage return, although the <cr> notation will not be used in
- this case. <cr> is only used when the "command" needed is a
- carriage return on an otherwise empty line.
-
- <F10> The command key labeled "F10" or "f10" at the top or left side of
- the keyboard.
-
- 4. NET
-
- The program that implements the Internet protocols is NET.EXE. In this
- section, information on executing NET, its command and converse modes,
- escaping back to DOS, NET utility commands, managing multiple sessions and
- exiting NET are provided. Information on the major NET commands is given in
- later sections.
-
-
-
-
-
-
- - 8 -
-
-
- 4.1. Executing NET
-
- NET is usually invoked by simply typing the following at a DOS prompt:
-
- net
-
- If the software has been installed correctly, NET attempts to open the
- configuration file "AUTOEXEC.NET" in the root directory of the current drive.
- This file is described in section A.3 of Appendix A. You should then be
- presented with a banner including revision information and a copyright
- statement, followed by a prompt of "net>." If you don't get this, something is
- wrong. Check your installation to see if you missed something. If you still
- have troubles, find a NET user and ask for help.
-
- NET can also be invoked by typing:
-
- net <file>
-
- NET will first attempt to open <file> as an alternate configuration file, which
- is read instead of AUTOEXEC.NET.
-
- 4.2. Command and Converse Modes
-
- The program may be in one of two modes: command mode or converse mode.
- In command mode, the prompt "net>" is displayed and any of the NET commands
- described in this guide may be entered. In converse mode, keyboard input is
- processed according to the "current session," which may be either a telnet,
- ftp, or AX.25 connection. In a telnet or AX.25 session, keyboard input is
- sent to the remote host and any output from the remote host is displayed on
- the console. In an ftp session, only ftp converse mode commands may be
- entered. In these sessions, the user remains in converse mode until either
- the session is terminated (described in the sections of this guide dealing
- with telnet, ftp, or AX.25) or by escaping back to command mode, as described
- below.
-
- The user may escape back to command mode from converse mode by pressing
- <F10>. The command mode prompt "net>" will be displayed and any of the NET
- commands may be entered. The session that the user "escaped" from will remain
- active. By entering <cr> at a "net>" prompt, the user will return to converse
- mode in the "current session." Multiple sessions can be handled by NET. For
- more information on multiple sessions, see section 4.5 below.
-
- 4.3. Executing DOS Commands
-
- While running NET, you may need to execute some DOS commands or to run a
- program such as BM. This can be done by suspending NET execution and then
- returning to NET when you are finished. To suspend NET, enter at a "net>"
- prompt:
-
- !
-
- You will be returned to your DOS prompt and you can execute any DOS command.
- Note that this will suspend all NET sessions. To return to NET, enter at an
- DOS prompt:
-
-
-
-
-
-
- - 9 -
-
-
-
- exit
-
- You will be returned to the "net>" prompt.
-
- Note that the command "shell" is the same as the "!" command.
-
- 4.4. Utility Commands
-
- NET provides several utility commands to provide help information, manage
- directories, and to start and stop the servers. These commands are useful in a
- variety of sessions.
-
- 4.4.1. help
-
- Displays a list of the main NET commands. The command "?" is equivalent
- to "help." Note that several commands are listed that are not described in
- this guide. Concise descriptions of the commands listed by help are given in
- Appendix B.
-
- 4.4.2. pwd
-
- Displays the name of the current directory on the local machine.
-
- 4.4.3. cd <directory>
-
- Changes the current directory to <directory>, which must be an existing
- directory on the local machine. The directory specified can be relative to the
- current directory, or absolute, with the name beginning at the root (\).
-
- 4.4.4. dir [<directory>]
-
- List the contents of the specified directory on the console. If no
- argument is given, the current directory is listed.
-
- 4.4.5. start <server>
-
- Starts the specified Internet server, allowing remote connection
- requests. Servers include: finger, ftp, remote, smtp, and telnet. Normally
- these servers are started in the AUTOEXEC.NET file. However, you may not want
- to start all of the servers automatically. For example, you may not want to
- start telnet until you know you will be available at the keyboard to respond.
- You can then enter "start telnet" from the "net>" prompt to activate the
- telnet server.
-
- 4.4.6. stop <server>
-
- Stops the specified Internet server, rejecting any further remote connect
- requests. Existing connections are allowed to complete normally. For example,
- you could enter "stop telnet" if you expect to be unavailable to respond to a
- telnet request. Then, when anyone tries to telnet to you, they will get the
- message "Closed (Reset)." This is not the most informative message, but
- possibly better than waiting endlessly to see if you will respond to the telnet
- request.
-
-
-
-
-
- - 10 -
-
-
- 4.5. Managing Multiple Sessions
-
- The NET program can handle multiple sessions. For example, you can have
- an ftp file transfer running at the same time as a telnet session. However,
- you should limit your use of multiple sessions on a 1200 baud radio channel,
- as you will cause considerable congestion.
-
- To start a second session, escape from the first session to the "net>"
- prompt by pressing <F10>. Start the second session as you would normally (as
- described in the sections of this guide dealing with telnet, ftp, or AX.25).
-
- To monitor the multiple sessions, use the "session" command from the
- "net>" prompt. The syntax for this command is:
-
- session [<session #>]
-
-
- Without arguments, "session" displays a list of current sessions,
- including session number, remote TCP or AX.25 address and the address of the
- TCP or AX.25 control block. An asterisk (*) is shown next to the "current"
- session; entering <cr> at this point will put you in converse mode with that
- session. Entering a session number as an argument to the session command will
- put you in converse mode with that session. If the telnet server is enabled,
- the user is notified of an incoming request and a session number is
- automatically assigned. The user may then select the session normally to
- converse with the remote user as though the session had been locally
- initiated. An example of a session list:
-
- # &CB Type Rcv-Q State Remote socket
- 0 8ac14 FTP 69 Established eyolo:ftp
- *1 8b3d4 AX25 0 Connected n6spe-1
-
-
- 4.6. Abbreviating NET Command Names
-
- Many of the NET command names can be abbreviated. However, the valid
- abbreviations have not been documented. Further, there are some cases where
- the abbreviated (or lengthened) name will appear to be accepted as a valid
- command name, but the command will not execute properly. Thus, it will be
- left to the user to experiment with the abbreviations. It is recommended that
- you use the command names given in this guide, as they have been tested and
- found to work as described.
-
- 4.7. Exiting NET
-
- Before you exit NET, you should check to see if you have any sessions
- active. This is done with the "tcp status" command, described in section
- 10.1.1.
-
- When you are sure you want to exit the NET program and return to DOS,
- enter at a "net>" prompt:
-
- exit
-
-
-
-
-
-
- - 11 -
-
-
- 5. Telnet
-
- The telnet command allows you to initiate a keyboard connection using the
- telnet protocol. The end result is the same as doing an AX.25 connect in most
- cases, but you'll be taking advantage of the attributes of the TCP/IP
- protocols, as described in the introduction.
-
- 5.1. Initiating a Telnet Session
-
- The command to initiate a telnet session with the specified host and enter
- telnet converse mode is:
-
- telnet <host>
-
- For example:
-
- telnet n3eua (talk to N3EUA, address in HOSTS.NET)
- telnet [44.32.0.4] (use the numeric address directly)
-
-
- If the connection is made, you can type back and forth just as if you
- were connected with a normal TNC. When you're done, use the <F10> key to
- escape back to command mode, and then type 'close' to close the connection, as
- described in section 5.4 below.
-
- 5.2. Accepting a Telnet Session
-
- If a remote host requests a telnet session, a message similar to the
- following will be displayed on your console:
-
- Incoming Telnet session 0 from 44.2.0.96:1026
-
- If you are in command mode, enter <cr> at a "net>" prompt and you will enter
- converse mode for the telnet session. If you are in converse mode, use the
- <F10> key to escape back to command mode, use the "session" command to list
- the active sessions, and then use the "session <session#>" command to enter
- converse mode on the desired telnet session.
-
- 5.3. File Upload and Download
-
- The telnet session can be recorded to a file, or an ASCII file can be
- uploaded instead of entering the information at the keyboard.
-
- 5.3.1. record <file>|off
-
- Opens <file> and appends to it all data received or sent on the current
- telnet session. If you are in telnet converse mode and want to initiate
- recording, you will need to use the <F10> key to escape back to command mode
- to issue the record command. The message "Recording into <file>" will be
- displayed and another "net>" prompt will be issued. Enter <cr> on a blank
- line and you will return to the telnet converse mode with recording activated.
- The command "record off" stops recording and closes the file.
-
-
-
-
-
-
- - 12 -
-
-
- 5.3.2. upload <file>
-
- Opens <file> (must be an ASCII, file, not a binary file) and sends it on
- the current telnet session as though it were typed on the terminal. If you
- are in telnet converse mode and want to initiate uploading, you will need to
- use the <F10> key to escape back to command mode to issue the upload command.
- The uploading is initiated, but the file contents are not displayed on the
- screen during the uploading. When the uploading is complete, the message
- "Uploading off" is displayed. Enter <cr> on a blank line at the "net>" prompt
- and you will return to the telnet converse mode.
-
- 5.4. Closing a Telnet Session
-
- To close a telnet session, the following command is used:
-
- close [<session #>]
-
-
- If you are in telnet converse mode, you will have to press <F10> to
- escape to the "net>" prompt to issue this command. If you are running only
- one session, entering close without arguments will close the session. If you
- have multiple sessions, entering close without arguments will initiate a close
- on the current session. If you are running multiple sessions, the "session"
- command will display a list of these sessions. Entering close with a session
- number argument will initiate a close on the specified session. Only one of
- the hosts involved in the telnet session needs to initiate the close.
- "Disconnect" is functionally the same command as "close."
-
- 6. Mail
-
- One of the most useful features of TCP/IP is electronic mail. Mail can
- be delivered to your unattended machine and you can read it at your leisure.
- There is no need to log into a PBBS to pick up your messages. Your messages
- can also be temporarily stored on your local switch and be delivered to your
- machine when you run NET.
-
- Mail messages are composed and read and the mailbox is managed with the
- program BM. NET, using the protocol SMTP (simple mail transport protocol)
- sends and receives the mail. This section concentrates primarily on BM, but a
- few comments on SMTP are given in subsection 6.5.
-
- The BM.EXE mail user interface program was created by Bdale Garbee, N3EUA,
- and despite popular belief, "BM" really stands for "Bdale's Mailer." It was
- later extended by Gerard van der Grinten, PA0GRI, and Dave Trulli, NN2Z.
-
- 6.1. Executing BM
-
- BM must be executed from a DOS prompt. If you are currently running NET,
- you will have to escape to a DOS subshell by entering "!" or "shell." You will
- be returned to your DOS prompt and you can execute BM. Note that this will
- suspend all NET sessions. When you are finished with BM, to return to NET,
- enter "exit" at a DOS prompt and you will be returned to the "net>" prompt.
-
- BM is normally invoked by simply typing the following from a DOS prompt:
-
-
-
- - 13 -
-
-
- bm
-
- BM will first read the mail configuration file, BM.RC, described in section A.5
- of Appendix A, and then will read the default mailbox defined in this
- configuration file. Using the BM main menu commands described in section 6.2,
- you can then compose or read mail messages or manage your mailbox.
-
- BM may also be invoked in two other ways. The first is:
-
- bm -u <mailbox> | -f <file>
-
- With the argument "-u <mailbox>," you can specify which mailbox to read,
- overriding the default from BM.RC. With the argument "-f <file>," BM will
- read the messages from <file> instead of a mailbox. This is useful if you
- have saved previously received messages to a file, using the "s" command
- described in section 6.2.6.
-
- When you invoke BM, a banner will be displayed, followed by two lines of
- copyright information and then the mail header information, as described in
- section 6.2.1 below. Finally, there is a line reminding you to "Type ? for
- help" and then a prompt, consisting of your user name in quotes followed by an
- arrow (>).
-
- If you are only interested in composing a mail message, you can invoke BM
- as:
-
- bm <recip1> .. .. <recipN>
-
- The arguments <recip1> to <recipN> are the mail addresses of your desired
- recipients. Information on mail addresses is given in section 6.4. You will
- be prompted to give a message subject and then to enter your message. When
- you have finished composing your message, you will be returned to your DOS
- prompt.
-
- 6.2. BM Main Menu Commands
-
- All BM main menu commands are single letters followed by optional
- arguments.
-
- A <msglist> is a space-delimited list of message numbers, for example:
-
- 1 3 4 5
-
- The message numbers are given in the message headers.
-
- 6.2.1. h
-
- Display message headers. The message headers contain the message number,
- the status indicating whether it has been read or deleted, the sender, size,
- date, and subject. For example:
-
- Mailbox \spool\mail\n6gf.txt - 3 messages, 1 new
-
- DY 1 n6dbt@n6dbt 02 Apr 16:31 666 Friday Night Pat Sajak
- Y 2 N6SPE@n6spe.ampr.org 02 Apr 17:40 576 Re: eyolo
-
-
-
- - 14 -
-
-
- > N 3 N6SPE@n6spe.ampr.org 02 Apr 17:42 942 Re: NET log
-
- In the first line above, "D" indicates that the message has been marked for
- deletion and "Y" indicates that it has been read. The message number is 1, the
- sender is n6dbt@n6dbt, it was sent on April 2 at 16:31, is 666 characters long
- and the subject is "Friday Night Pat Sajak." In the third line above, ">"
- indicates that this is the current message and "N" means that it has not yet
- been read.
-
- 6.2.2. ?
-
- Display a help menu for BM commands.
-
- 6.2.3. [<msg#>]
-
- Entering a message number from the header listing will cause the message
- text to be displayed. If a carriage return is entered on a blank line, the
- current message will be displayed.
-
- 6.2.4. d [<msglist>]
-
- Mark messages for deletion. With no argument, the current message
- (indicated by ">" in the first column of the message header) is marked for
- deletion. Messages marked for deletion are removed when exiting BM via the 'q'
- command, when changing to an alternate mailbox with the 'n' command, or when
- updating with the '$' command.
-
- 6.2.5. u [<msglist>]
-
- Undelete a message that is marked for deletion. The status of a message
- can be determined by looking at the status field of the message using the 'h'
- command.
-
- 6.2.6. s [<msglist>] [<file>]
-
- The 's' command is used to save messages in a file. If no file name is
- given the default from the mbox variable in BM.RC is used. If no message
- number is supplied then the current message is saved. If <file> does not
- exist, it will be created. If <file> does exist, the messages will be
- appended to this file. The messages are stored in the same format as a
- mailbox file with all mail headers left intact. This file can later be read
- into BM by invoking BM with the "-f <file>" argument.
-
- 6.2.7. w [<msglist>] <file>
-
- The "w" command is used to save messages in a file. Only the message body
- is saved. All mail headers are removed. If no message number is supplied then
- the current message is saved.
-
- 6.2.8. p [<msglist>]
-
- The "p" command is used to send messages to the printer. This command
- uses the DOS device PRN for output. If no message number is supplied then the
- current message is printed.
-
-
-
-
- - 15 -
-
-
- 6.2.9. m [<recipient_list>]
-
- The "m" command is used to compose a message to be mailed to the list of
- recipients, specified by mail addresses or aliases, which are described in
- section 6.4. All local recipient addresses (those which don't contain an '@')
- are checked for possible aliases in the ALIAS file, described in section A.7 of
- Appendix A. Each alias that is found, is expanded into its list of addresses.
- If no recipient list is supplied with the "m" command, you will be prompted for
- a recipient list.
-
- When you are composing a message, several commands are available such as
- invoking an editor or reading in text from other messages or files, as
- described in section 6.3. To end a message enter a line containing a single
- period.
-
- It is important to remember that the input line buffer has a 128 character
- limit. You should format your text by entering a carriage return at the end of
- each line. Typing excessively long lines may cause data loss due to truncation
- when passing the message through other hosts. Keeping lines less than 80
- characters is always a good idea.
-
- 6.2.10. r [<msg#>]
-
- Reply to a message. Reply reads the header information in order to
- construct a reply to the sender. The destination information is taken from the
- "From:" or the "Reply-To:" header, if included. If no message number is
- supplied the current message is used.
-
- 6.2.11. f [<msg#>]
-
- The 'f' command is used to forward a mail message to another recipient.
- If no message number is supplied the current message is used. The user is
- prompted for the recipients and a subject. The mail header is added to the
- message text while retaining the complete original message in the body. Also
- see the ~m command.
-
- 6.2.12. b [<msg#>]
-
- Bounce a message. Bounce is similar to forwarding but instead of your
- user information, the original sender information is maintained. If no
- message number is supplied the current message is used.
-
- 6.2.13. n [<mailbox>]
-
- Display or change the mailbox. The 'n' command with no arguments will
- display a list of mailboxes containing mail. If an argument is supplied, then
- the current mailbox is closed and a new mailbox is opened.
-
- 6.2.14. l
-
- List outbound messages. The job number, the sender, and the destination
- for each message is displayed. A status of "L" will appear if the SMTP sender
- has the file locked, meaning the message has begun to be sent to its
- destination. If you find that a message has been in the locked state for a
- long period of time, the corresponding SMTP session may be "stuck." See
- section 10.1
-
-
-
- - 16 -
-
-
- for a description of how to monitor the status of SMTP sessions and to reset
- them if they get stuck.
-
- 6.2.15. k [<msglist>]
-
- Remove an outbound message from the send queue. A message can be removed
- from the send queue by specifying the job number obtained by the l command.
- If the message is locked you will be warned that you may be removing a file
- that is currently being sent by SMTP. It is best not to remove locked
- messages. They are better handled with the "tcp reset" command, described in
- section 10.1.2.
-
- 6.2.16. $
-
- Update the mailbox, deleting messages marked for deletion. If you have a
- large number of messages in your mailbox and are cleaning it up by marking
- unwanted messages for deletion, updating the mailbox will shorten the header
- list.
-
- 6.2.17. x
-
- Exit to DOS without changing the data in the mailbox. Messages marked for
- deletion will NOT be deleted.
-
- 6.2.18. q
-
- Quit to DOS updating the mailbox. Messages marked for deletion WILL be
- deleted.
-
- 6.3. Text Input Commands
-
- The following commands are available while composing a message. The tilde
- character (~) must be entered as the first character on a line.
-
- ~r <file> Read <file> into the message buffer.
-
- ~m <msg#> Read <msg#> into the message buffer.
-
- ~p Display the text in the message buffer.
-
- ~e Invoke the editor defined in BM.RC with a temporary file
- containing the text in the message buffer.
-
- ~q Abort the current message. No data is sent.
-
- ~~ Insert a single tilde character into the message.
-
- ~? Display the help menu of tilde escape commands.
-
- 6.4. Mail Addresses
-
- Mail is addressed to a recipient, which is either a user name defined in a
- BM.RC file (described in section A.5 of Appendix A) or an "alias," which is an
- alternative name for one or more users. Aliases are defined in the ALIAS file,
- described in section A.7 of Appendix A. These recipients can be on the local
-
-
-
-
- - 17 -
-
-
- host or a remote host.
-
- Mail addressing varies from simple to mildly confusing. The simplest form
- is:
-
- <recipient>[@<host>]
-
- If @<host> is not included, BM will search to see if <recipient> is in the
- ALIAS file on the local host. If it is, it will be expanded to the recipient
- list given for the alias. If <recipient> is not given in the alias file, the
- message will be sent to <recipient> on the local host (this is probably not
- what you intended, unless you have more than one user on your host).
-
- If the address <recipient>@<host> is used, the message will be sent to
- <host>, where <recipient> is first looked up in the ALIAS file on <host>. If
- <recipient> is found to be an alias, it will be expanded to the recipient list
- given for the alias, and the message will be forwarded to these recipients. If
- <recipient> is not found in the alias file, the message will be delivered to
- <recipient> on <host>.
-
- Host names can be found in your HOSTS.NET file, described in section A.4
- of Appendix A. Valid mail user names for a given host can be found using the
- finger command, as described in section 9.2, if the finger files have been set
- up on the this host. If an ALIAS file has been distributed for your area,
- mail addresses and aliases will be found there. Otherwise, you will have to
- contact the intended recipient and ask for his or her address.
-
- If the remote host of the recipient is not on the air when you try to send
- the message, it will remain in your mail queue until some time when both hosts
- are on the air at the time you attempt to send the message. To avoid this
- delay, switches have been set up in many areas which run 24 hours a day and can
- be used for mail forwarding. If the switch your recipient communicates with is
- <switch> (a host name), then the mail can be addressed as:
-
- <recipient>%<host>@<switch>
-
- Your mail will be transferred to <switch> and then forwarded to
- <recipient>@<host>, using the stored route to <host>.
-
- 6.5. SMTP
-
- NET sends and receives mail using the simple mail transport protocol
- (SMTP). This is handled automatically by NET, although, you may want to "kick"
- out your outgoing mail manually, as described below.
-
- When mail is received, SMTP displays the message:
-
- New mail arrived for <user>
-
- where <user> is the addressee of the received mail.
-
- If you have included the "smtp timer" command in your AUTOEXEC.NET file,
- SMTP will check your outbound mail queue at the time interval you have set to
- determine if there is any new outgoing mail that should be sent. If you
- haven't
-
-
-
- - 18 -
-
-
- included this command, or you want to send out your mail before the next timer
- interval, you can manually "kick" out your outgoing mail, as described below.
-
- 6.5.1. smtp kick
-
- This command will review the outgoing mail queue and attempt to deliver
- any pending mail. This command allows the user to "kick" the mail system
- manually. This command can be entered at a "net>" prompt after you have
- composed mail messages.
-
- 7. File Transfer
-
- The ftp command provides for the transfer of files using the file
- transport protocol. It enables you to do the following:
-
- Transfer text and binary files between local and remote host
- List directories on a remote host
- Delete files on a remote host
- Create and remove directories on a remote host
-
-
- The remote host can be unattended and the ftp server on that host will
- provide the requested services.
-
- File access privileges are defined in the FTPUSERS file, described in
- section A.8 of Appendix A. This file defines user login names, passwords,
- directories to be accessed and file access privileges. It is a common
- convention to allow arbitrary users limited access to files under the special
- user names "anonymous" or "guest."
-
- 7.1. Ftp Command
-
- The command ftp is used to initiate an ftp session. It is invoked as:
-
- ftp <host>
-
- where <host> is the desired remote host. If the session is established, you
- will enter converse mode on the new ftp session. When in converse mode with an
- ftp server, only the ftp commands described below will be valid. This will
- remain true until the ftp "quit" command is issued, ending the ftp session, and
- returning you to the "net>" prompt.
-
- When the connection between the two machines is opened, you'll get a
- banner from the remote machine, followed by a prompt for your user name and
- then your password. If you've negotiated with the person at the remote
- machine to have a special user name and password set up for you in his or her
- FTPUSERS file, use that. If not, use one of the special user names,
- "anonymous" or "guest," and in this case, use your call sign as your password.
- Your password is recorded in the log file on the remote host, allowing the
- manager of that host to keep track of ftp activity.
-
- 7.2. Ftp Converse Mode Commands
-
- The following are the ftp commands that are valid in ftp converse mode,
-
-
-
-
- - 19 -
-
-
- which you enter after your password is accepted.
-
- 7.2.1. dir [<file>|<directory> [<localfile>]]
-
- Without arguments, "dir" requests that a full directory listing of the
- remote server's current directory be sent to your display. If one argument is
- given, it is interpreted as a specific file or sub-directory on the remote
- file system that is to be listed. If two arguments are given, the second is
- taken as the local file into which the directory listing should be written
- (instead of being sent to the display). The full listing gives the file
- names, sizes, and creation dates. You should request a directory listing when
- you first log into an unfamiliar machine. There will often be a file named
- "README" or "whathere.txt" that will give some information about the files
- available on the remote machine. This file can then be acquired with a "get"
- command (described below), and read on your machine to learn more about the
- files available on the remote host.
-
- 7.2.2. ls [<file>|<directory> [<localfile>]]
-
- ls is identical to the "dir" command except that an abbreviated directory
- listing is provided. This listing gives only the file names.
-
- 7.2.3. pwd
-
- Displays the name of the current directory on the remote host.
-
- 7.2.4. cd <directory>
-
- Changes the current directory on the remote host to the directory
- indicated by <directory>, which must be an existing directory on the remote
- host. The directory specified can be relative to the current directory, or
- absolute, with the name beginning at the root (\).
-
- 7.2.5. get <remote_file> [<local_file>]
-
- Asks the remote host to send the file specified in the first argument and
- to write the file on the local machine. The second argument, if given, will be
- the name of the file on the local machine; otherwise it will have the same name
- as on the remote host. See the "type" command below if the file requested is
- other than an ASCII file. If the file is over 10,000 characters in size, you
- should only start the transfer when the radio channel is relatively quiet. Use
- the "abort" command below if you want to terminate the transfer before it has
- been completed.
-
- 7.2.6. put <local_file> [<remote_file>]
-
- Asks the local host to send the file specified in the first argument and
- to write the file on the remote machine. The second argument, if given, will
- be the name of the file on the remote host; otherwise it will have the same
- name as on the local machine. You must have write privilege on the remote
- host to use this command. Use the "abort" command below if you want to
- terminate the transfer before it has been completed. See the "type" command
- below if the file to be sent is other than an ASCII file.
-
-
-
-
- - 20 -
-
-
- 7.2.7. quit
-
- Terminates the ftp session and returns you to the "net>" prompt.
-
- 7.2.8. abort
-
- Aborts a get, put, dir or ls operation in progress. This is the only
- acceptable command when these operations are in progress; all other commands
- will result in an error message. Abort is valid only when a transfer is in
- progress. When a get or put operation is aborted, a partial copy of the
- transferred file will be left on the destination machine, which must be removed
- manually if it is unwanted. This is also true for a dir or ls operation when
- the directory listing is written as a local file.
-
- 7.2.9. type [a|i]
-
- Tells both the local and remote hosts the type of file that is to be
- transferred. Without arguments, the current mode is displayed. The default is
- "a", which means ASCII (i.e., a text file). In "i" mode, which means IMAGE,
- files are sent exactly as they appear in the file system. This mode must be
- used when exchanging raw binary files (executables, compressed archives, etc).
- The file type must be set before a "get" or "put" command is initiated. The
- file type remains in effect until it is changed by a subsequent "type" command.
-
- 7.2.10. dele <remote_file>
-
- Deletes a file on the remote machine. You must have delete privilege on
- the remote host to use this command.
-
- 7.2.11. mkdir <remote_directory>
-
- Creates a directory with the name <remote_directory> on the remote
- machine. You must have write privilege on the remote host to use this
- command.
-
- 7.2.12. rmdir <remote_directory>
-
- Deletes <remote_directory> on the remote machine. The remote directory
- must be empty before you can remove it. You must have delete privilege on the
- remote host to use this command.
-
- 7.3. Ftp Example
-
- In the ftp example below, the user initiates an ftp session with the
- remote host "eyolo," logs in as the user "anonymous," requests a directory
- listing, changes to subdirectory, gets a binary file and terminates the
- session. The text given in parentheses to the right of the commands indicate
- what has been typed by the user.
-
- net> ftp eyolo (ftp eyolo)
- SYN sent
- Established
- 220 eyolo.ampr.org FTP version 89042.1 ready at Mon Mar 26 16:16:54 1990
- Enter user name: anonymous (anonymous)
- 331 Enter PASS command
-
-
-
-
- - 21 -
-
-
- Password: n6gf (n6gf)
- 230 Logged in
- dir (dir)
- 200 Port command okay
- 150 opening data connection for LIST \public
- docs\ 16:42 3/02/90 lists\ 16:40 3/02/90
- programs\ 14:40 3/02/90 utility\ 16:42 3/02/90
- whathere.txt 1,755 18:22 3/21/90
- 5 files. 6,959,104 bytes free. Disk size 10,584,064 bytes.
- Get complete, 265 bytes received
- 226 File sent OK
- cd programs (cd programs)
- 257 "\public\programs" is current directory
- dir (dir)
- 200 Port command okay
- 150 Opening data connection for LIST \public\programs
- bm.exe 41,225 17:55 2/25/90 net.exe 174,454 17:43 2/25/90
- 2 files. 6,959,104 bytes free. Disk size 10,584,064 bytes.
- Get complete, 135 bytes received
- 226 File sent OK
- type i (type i)
- 200 Type OK
- get bm.exe (get bm.exe)
- 200 Port command okay
- 150 opening data connection for RETR bm.exe
- Get complete 41225 bytes received
- 226 File sent OK
- quit (quit)
- 221 Goodbye!
- Close wait
- Last ACK
- Closed (Normal)
- net>
-
-
- The user's callsign was used as the password, which is shown in this
- example. However, the password is not echoed to the screen by the software.
- Note that there are no prompts for ftp in the converse mode. After you
- receive the message "230 Logged in" you can issue ftp commands. The display
- generated by the "dir" command in this example shows that the user was logged
- into the \public directory. The listing shows that there is one file, named
- "whathere.txt," of size 1755 bytes, created at 18:40 on 3/21/90. There are
- also four subdirectories, indicated by "\" at the end of their names: "docs\,"
- "lists\," "programs\," and "utility\," all created on 3/2/90. The dir output
- is finished with the "226 File sent OK" message and the user can then issue
- another ftp command. The command "cd programs" is issued to change to the
- subdirectory programs. A dir command on this subdirectory shows that there
- are two files, "bm.exe" and "net.exe." These are executable programs since
- the file name extensions are "exe" and therefore, they are binary files. The
- "type i" command is issued so that a binary file can be transferred. The
- "get" command is issued and there will be a delay as the "bm.exe" file is
- retrieved. This is also finished when the message "226 File sent OK" is
- received.
-
-
-
-
-
- - 22 -
-
-
- 8. AX.25 Services
-
- NET provides AX.25 services, better known as the standard packet radio
- protocol that you probably used before you switched to TCP/IP. This allows
- you to use NET to move to another frequency and check into the local AX.25
- PBBS, or to initiate a keyboard session with a friend who hasn't been
- convinced to switch to TCP/IP yet. In addition, there is an AX.25 mailbox,
- allowing that same friend to connect to your system and initiate a keyboard
- session, or to send a message to anyone reachable on TCP/IP.
-
- 8.1. Initiating an AX.25 Connection
-
- The connect command is used to initiate an AX.25 connection. The syntax
- is:
-
- connect ax0 <callsign> [<digipeater> ... ]
-
- This initiates an AX.25 session to the specified call sign. Up to 7 optional
- digipeaters may be given; note that the word "via" is NOT needed. Data sent on
- this session goes out in conventional AX.25 packets with no upper layer
- protocol. The de-facto presentation standard format is used, in that each
- packet holds one line of text, terminated by a carriage return. Two examples
- are:
-
- connect ax0 n3eua (connect direct to N3EUA)
- connect ax0 n3eua n1fed n0ccz (conn to N3EUA via N1FED and N0CCZ)
-
- If all is well, you should get "Conn Pending" and then "Connected" messages.
- At this point, you're connected just like using a plain old TNC.
-
- When you're ready to disconnect, use the <F10> key to escape from the
- session back to the 'net>' prompt, and then type 'disconnect', as described in
- section 8.3.
-
- 8.2. File Upload and Download
-
- AX.25 sessions can be recorded to a file and a file can be uploaded in
- place of typing the information on the keyboard.
-
- 8.2.1. record <file>|off
-
- Opens <file> and appends to it all data received or sent on the current
- AX.25 session. If you are in AX.25 converse mode and want to initiate
- recording, you will need to use the <F10> key to escape back to command mode
- to issue the record command. The message "Recording into <file>" will be
- displayed and another "net>" prompt will be issued. Enter <cr> on a blank
- line and you will return to the AX.25 converse mode with recording activated.
- The command "record off" stops recording and closes the file.
-
- 8.2.2. upload <file>
-
- Opens <file> and sends it on the current AX.25 session as though it were
- typed on the terminal. If you are in AX.25 converse mode and want to initiate
- uploading, you will need to use the <F10> key to escape back to command mode to
-
-
-
- - 23 -
-
-
- issue the upload command. The uploading is initiated, but the file contents
- are not displayed on the screen during the uploading. When the uploading is
- complete, the message "Uploading off" is displayed. Enter <cr> on a blank
- line at the "net>" prompt and you will return to the AX.25 converse mode.
-
- 8.3. Terminating an AX.25 Connection
-
- To terminate an AX.25 connection, use the following command:
-
- disconnect [<session #>]
-
-
- If you are in AX.25 converse mode, press <F10> to escape back to the
- "net>" prompt to issue this command. If you are running only one session,
- entering disconnect without arguments will terminate the connection. If you
- have multiple sessions, entering disconnect without arguments will initiate a
- close on the current session. If you are running multiple sessions, the
- "session" command will display a list of these sessions. Entering disconnect
- with a session number argument will initiate a close on the specified session.
- After entering disconnect, you should get "Disc pending" and then
- "Disconnected" messages. Note that "disconnect" is the same as the "close"
- command and that the two command names can be used fully interchangeably.
-
- 8.4. AX.25 Mailbox
-
- If your AUTOEXEC.NET file (described in section A.3 of Appendix A)
- contains the command "mbox on," then your AX.25 mailbox will be accessed when
- someone running the standard AX.25 packet protocol connects to you. When the
- connection is made, the remote user must first enter <cr> and then a banner
- and prompt similar to the following will be displayed:
-
- Welcome to the n6gf.ampr.org TCP/IP Mailbox
- (C)hat, (S)end, (B)ye >
-
-
- If the user chooses (C)hat, an AX.25 keyboard connection with your system
- is requested. A message similar to the following will be displayed on your
- console:
-
- Incoming AX25 session 0 from N6QGG
-
- If you are in command mode, enter <cr> at a "net>" prompt and you will enter
- converse mode for the AX.25 keyboard session. If you are in converse mode, use
- the <F10> key to escape back to command mode, use the "session" command to list
- the active sessions, and then use the "session <session#>" command to enter
- converse mode on the desired AX.25 session. When you are finished with the
- chat, you can use the <F10> key to escape from the session back to the 'net>'
- prompt, and then type 'disconnect', as described above. Alternatively, the
- AX.25 user who initiated the session can terminate it by disconnecting in the
- standard way.
-
- The syntax for the (S)end command is:
-
- S <recipient>[@host] [< from_addr ] [$bulletin_id]
-
-
-
- - 24 -
-
-
- With one argument, this will send a message to the specified mail address.
- See sections 6.2.9 and 6.4 for a description of mail addresses. The user will
- be prompted for a subject, then asked to enter the message. Instructions are
- given for ending the message with ^Z or /EX beginning a line, the same as that
- for AX.25 PBBS's. With two arguments, the user can send a message into the
- TCP/IP network, using the addressing scheme described in Section 6.4 of this
- guide. The third and fourth arguments are primarily for use in PBBS
- forwarding and will not be described here. After sending a message, the
- mailbox command prompt will be displayed to the user again. Entering B (for
- Bye) will terminate the mailbox session.
-
- 9. Monitoring Activity
-
- Several commands are available to monitor activity on the packet radio
- channel and to acquire information about a remote host.
-
- 9.1. ax25 heard [on|off|clear]
-
- Works like the "mheard" function in many TNC's. The command "ax heard,"
- with no parameters displays the list of callsigns heard and with options "on"
- and "off" you control whether the list is updated or not. With the option
- "clear," you clear the list of callsigns. If you are interested in monitoring
- the channel with this command, include "ax25 heard on" in your AUTOEXEC.NET
- file, as described in section A.3.20 of Appendix A.
-
- An example listing:
-
- Heard list: Sat Mar 31 15:09:23 1990
-
- KB6RIH ARP NETROM IP Sat Mar 31 15:08:07 1990
- KA6FUB-3 NETROM Sat Mar 31 15:04:57 1990
- HIGH Sat Mar 31 14:25:06 1990
- N6VV-15 Sat Mar 31 14:05:16 1990
- N6SPE-1 ARP IP Sat Mar 31 12:49:30 1990
- N6QWS (via HIGH) Sat Mar 31 12:36:59 1990
- N6QGG Sat Mar 31 12:20:51 1990
-
- KB6RIH is running NET, using the address resolution protocol (ARP), NETROM, and
- the internet protocol (IP). KA6FUB-3 is a NETROM node. HIGH is an AX.25
- digipeater. N6VV-15 was being forwarded through the KA6FUB-3 NETROM node. The
- only clue from this listing that this was a NETROM forward is the SSID (-15) on
- N6VV's callsign. N6SPE-1 is also running NET, using ARP and IP. N6QWS was
- heard digipeated through HIGH. Finally, N6QGG was heard direct on AX.25.
-
- 9.2. finger
-
- This command allows you to "finger" information files on your host or on a
- remote host. Finger files are described in section A.9 of Appendix A.
-
- The syntax for the finger command is:
-
- finger [<finger_file>][@<host>]
-
- where <finger_file> is the name of the finger information file you wish to
- query
-
-
-
-
- - 25 -
-
-
- and <host> is the name of the remote host where the file resides.
-
- If you issue the command in the following form:
-
- finger <finger_file>
-
- you can query information from a finger file on the local host, namely your
- own system. This is useful for testing finger on a system that you know is
- running.
-
- The command in the following form:
-
- finger @<host>
-
- is used to acquire the names of the finger files available on <host>. This
- command returns a list of all finger files on the remote computer.
-
- Finally, issuing the command as:
-
- finger <finger_file>@<host>
-
- will display <finger_file> from <host>.
-
- When you have been fingered by a remote host, a message similar to the
- following will be displayed:
-
- You're being fingered by 44.2.0.98:1001!
-
-
- 9.3. ping
-
- This command is used to see if a remote host is on the air and if so, to
- determine the quality of the path between the local and remote host. The
- syntax for this command is:
-
- ping [<host>|clear] [<interval>]
-
-
- When the command is issued in the form:
-
- ping <host>
-
- the remote host given in the argument is queried once. If it returns an echo,
- the IP number of the host and the round trip time required are displayed. For
- example:
-
- 44.2.0.96: echo reply id 0 seq 30522, 5508 ms
-
- In this case, the round trip to remote host [44.2.0.96] took 5508 ms, or about
- 5.5 seconds. If no echo is received, due to the host being off the air, a poor
- path to the host, or a packet collision, nothing is displayed.
-
- Issuing the command in the form:
-
- ping <host> <interval>
-
-
- - 26 -
-
-
- sets up a repetitive test, where the remote host is queried at a time interval
- given by the number in the second argument, interpreted in seconds. Repetitive
- queries can be set up for several hosts at once, by issuing a command for each
- host. Users should be careful not to overdo this testing, as the ping queries
- will add to channel congestion. The current results are displayed with the
- third form of the ping command, and the repetitive queries continue until the
- "ping clear" command is issued.
-
- Entering the command "ping," without an argument, displays a table of the
- current results of the repetitive queries, listing the IP numbers of the remote
- hosts, number of ping queries sent, number of ping echoes received, percent of
- queries echoed, average round trip time and the ping interval time. For
- example:
-
- Host Sent Rcvd % Avg RTT Interval
- 44.2.0.96 18 17 94 6596 60
- 44.2.0.98 18 18 100 3209 60
-
-
- Finally, issuing the command in the form:
-
- ping clear
-
- cancels the repetitive ping requests and clears the table of ping query
- results.
-
- 9.4. trace
-
- The trace command is used to monitor the activity on the channel. The
- syntax of this command is:
-
- trace [ax0 [<flags>]|allmode|cmdmode]
-
-
- The flags enable or disable tracing and determine the amount of
- information displayed. Without arguments, trace gives a list of all defined
- interfaces and their tracing status. This guide only considers the use of a
- single interface, "ax0." The flags are given as a hexadecimal number which is
- interpreted as follows:
-
- TIO
- |||--- Enable tracing of output packets if 1, disable if 0
- ||---- Enable tracing of input packets if 1, disable if 0
- |----- Controls type of tracing:
-
- 0 - Protocol headers are decoded, but data is not displayed
- 1 - Protocol headers are decoded, and data (but not the
- headers themselves) are displayed as ASCII characters,
- 64 characters/line. Unprintable characters are displayed
- as periods.
- 2 - Protocol headers are decoded, and the entire packet
- (headers AND data) is also displayed in hexadecimal
- and ASCII, 16 characters per line.
-
-
-
-
- - 27 -
-
-
- There is an additional option for tracing that allows you to select
- whether traced packets are always displayed, or only displayed when you are in
- command mode. Having tracing only happen in command mode sometimes provides
- the right mix between "knowing what's going on," and "keeping the garbage off
- the screen" while you're typing. To select tracing all the time (the default
- mode), use 'trace allmode'. To restrict tracing to command mode, use 'trace
- cmdmode'.
-
- For example, to trace the activity on interface ax0, with an ASCII
- display:
-
- trace ax0 111
-
- To turn off this tracing:
-
- trace ax0 000
-
-
- 10. Advanced Topics
-
- While this document is intended to be a guide for beginners, there are a
- few advanced topics of interest to many users that should be mentioned. The
- presentation of these topics is concise and the reader should consult "The KA9Q
- Internet Software Package," by Bdale Garbee, for details.
-
- Note that the commands included in the NET configuration file,
- AUTOEXEC.NET, and described in Appendix A, can also be used interactively.
- Further, these commands, when issued without their variable arguments, will
- report the current values of these arguments. For example, the "route"
- command, issued without arguments, will display the current routing table.
- These commands, issued with arguments, can be used to alter the configuration
- of NET while it is running. For example, "route add," described in section
- A.3.8., can be used to add entries to the routing table, possibly to
- experiment with alternative routes. To drop routes that are found to be
- unreliable, the following command can be used:
-
- route drop <dest_host>
-
- where <dest_host> is the IP address or host name for the destination of your
- packets. Note that if you find better routing methods with this
- experimentation, you will have to edit the "route add" commands in your
- AUTOEXEC.NET file for this routing table to be in effect the next time you run
- NET.
-
- 10.1. TCP
-
- The TCP command can be used to monitor and control session status at a
- lower level than provided elsewhere in the KA9Q software package.
-
- 10.1.1. tcp status [<tcb_addr>]
-
- Issued without the optional argument, this command displays the status
- table for TCP sessions. For example:
-
- conout 102 conin 109 reset out 5 runt 0 chksum err 3 bdcasts 0
- &TCB Rcv-Q Snd-Q Local socket Remote socket State
-
-
-
- - 28 -
-
-
- 2e90e444 0 0 44.2.100:79 0.0.0.0 Listen (S)
- 2e90e59c 0 0 44.2.100:25 0.0.0.0 Listen (S)
- 2e90e790 0 0 44.2.100:23 0.0.0.0 Listen (S)
- 2e90eafc 0 335 44.2.100:1001 44.2.0.32:25 Established
- 2e90e4fc 0 0 44.2.100:21 0.0.0.0 Listen (S)
-
-
- The first line gives some TCP-level statistics, including the number of
- outbound and inbound connections to your host. The table below gives a
- summary of all existing TCP connections. "&TCB" is the TCP address, "Rcv-Q"
- and "Snd-Q" are the numbers of characters in the receiving and sending queues,
- "Local socket" and "Remote socket" give the IP address and port of the local
- and remote host, "State" gives the state of the session. Note that the remote
- socket IP address is given as 0.0.0.0 for the listening servers. Each session
- is assigned to a port. The server ports are 79 for finger, 25 for SMTP, 23
- for Telnet, and 21 for FTP. In this example, there is an established outbound
- SMTP session, assigned to port 1001 on the local host, connected to the SMTP
- server on port 25 of the host with IP address 44.2.0.32. 335 characters are
- in the queue ready to be transmitted.
-
- Issuing the command with the argument <tcb_addr>, taken from the "&TCB"
- column in the table, will provide a more detailed table of information on the
- specified TCP connection. Of particular interest is the last line of the
- table, which provides information about the retry timer. This is the timer
- that determines when a packet retransmission will be attempted. It is
- expressed in the form "running time/threshold time," both given in
- milliseconds. When the running time reaches the threshold, the pending packet
- will be retransmitted. If receipt of this packet is not acknowledged, the
- threshold time will be increased and the running timer will be restarted.
- When the channel becomes congested, the threshold time becomes very large, and
- the data throughput drops substantially. This is known as the "exponential
- backoff" strategy of TCP/IP.
-
- You should display the TCP status before you exit NET. This will let you
- know if there are any active connections. For example, you should not exit NET
- if someone is running an FTP session with your host. Except for the clatter of
- your disk drive, you would not be aware of an active FTP session unless you
- check the TCP status. If there are some active sessions, it is best to leave
- NET running so that your TCP/IP node stays on the air. If you think you have
- "stuck" sessions in which there is no active packet transmission, see section
- 10.1.3 for information on resetting these sessions.
-
- 10.1.2. tcp kick <tcp_addr>
-
- If there is data on the send queue of the TCP connection indicated by the
- argument <tcb_addr>, taken from the table generated by the "tcp status"
- command, this will force an immediate retransmission. This can be attempted
- if the connection appears to be "stuck." This can happen if the route is
- unreliable, or if there is considerable channel congestion. This command
- should be used sparingly, as it adds to channel congestion and defeats the TCP
- strategies to deal with this congestion.
-
- 10.1.3. tcp reset <tcp_addr>
-
- Resets the TCP connection indicated by the argument <tcp_addr>, taken from
-
-
-
- - 29 -
-
-
-
- the table generated by the "tcp status" command. This effectively terminates
- the connection. While this command should not be used indiscriminantly, there
- are situations in which it is useful, primarily when a TCP connection has
- gotten "stuck." The three common situations in which a TCP connection can get
- stuck are: remote host has crashed, propagation path of the route to the
- remote host has deteriorated, and there is extreme congestion on the channel.
- In each of these situations, tcp status for the corresponding TCP connection
- will show an increasingly large threshold time.
-
- If you are in a telnet session or an AX.25 connection, you will find that
- you will wait nearly forever for a response from the remote host. If you want
- to give up on the session, escape to NET and close (or disconnect) the session.
- If there is no response from the remote host, the session can remain half open
- and should be reset using the tcp reset command.
-
- Similarly, an FTP session can also become stuck. If you are in the midst
- of a file transfer (get or put operation), use the FTP converse command
- "abort" to terminate the transfer. Then the "quit" command will initiate a
- close on the session. If there is no response from the remote host, the half
- open session should be reset using tcp reset.
-
- Another situation in which this command is appropriate for use is the
- "stuck" SMTP session. As discussed in section 6.2.14, when a mail message has
- begun to be sent, it is "locked." If the route to the destination host is
- unreliable, the exponential backoff strategy of TCP can cause the transfer to
- be delayed almost indefinitely. If you want to terminate the transfer, so
- that you can try again at another time, or using a different route, you can
- reset the corresponding TCP session. When this is done, the associated mail
- message is unlocked and can be resent, or killed from BM if you want to give
- up on the message entirely.
-
-
-
-
-
-
-
-
-
- - 30 -
-
-
- Appendix A. Installation of NET and BM
-
- As with most software, some effort is needed to get NET and BM installed
- and properly configured on your system. This requires setting up the proper
- directory structure and editing some configuration files. While there are a
- number of details to attend to, none of this is very difficult.
-
- The configuration files discussed below must be edited with a text editor.
- Any editor will do, as long as it writes ASCII (simple text) files. A word
- processing program will work as well, as long as you have it write an ASCII
- output file.
-
- A.1. Installation Overview
-
- It will be assumed that you have received a disk (or disks) containing at
- least the files NET.EXE and BM.EXE. You may also have the files AUTOEXEC.NET,
- HOSTS.NET, FTPUSERS, and ALIAS, although if these were not included on your
- distribution, don't panic, as you will be able to create them with an editor.
-
- Here are the steps you will have to take to install the KA9Q Internet
- Package, where the root directory (\) is preferably on your C: hard disk drive,
- or otherwise on your A: floppy disk drive:
-
- 1. Copy NET.EXE and BM.EXE to the root directory.
- 2. Create the directory structure described in section A.2.
- 3. Create the file AUTOEXEC.NET in the root directory and edit as
- described in section A.3.
- 4. Create the file HOSTS.NET in the root directory and edit as
- described in section A.4.
- 5. Create the file BM.RC in the root directory and edit as described
- in section A.5.
- 6. Edit your AUTOEXEC.BAT file in the root directory to add the time
- zone environment variable, as described in section A.6.
- 7. Create the ALIAS file in the root directory and edit as described in
- section A.7.
- 8. Create the FTPUSERS file in the root directory and edit as described
- in section A.8.
- 9. Create the finger file(s) in the directory \finger and edit as
- described in section A.9.
-
-
- A.2. File Structure
-
- Most of the required files will be kept in the root directory of your
- primary disk drive, but several other directories must also be set up.
-
- \spool The NET log file (described in section A.3.21) is normally
- stored in this directory.
-
- \spool\mail This directory holds the individual mailboxes for each user name
- on your system. The extension .txt is added to the user name to
- form the mailbox name. Mail received by the SMTP server is
- appended to the mailbox file.
-
-
-
-
- - 31 -
-
-
- \spool\mqueue The directory holds the outbound mail jobs. Each job consists
- of 2 files: an xxx.txt and xxx.wrk file, where xxx is a unique
- numerical prefix. When the job is being sent, an xxx.lck file
- is also created. The file sequence.seq is used to keep track
- of the last message number. The mail transport protocol, SMTP,
- and the mail program, BM, manage the files in this directory.
-
- \public This directory holds the files available for anonymous ftp,
- described in section A.8.
-
- \finger This directory holds the finger files, described in sections 9.2
- and A.9.
-
- The files that will reside in the root directory include:
-
- NET.EXE
- BM.EXE
- AUTOEXEC.NET
- HOSTS.NET
- BM.RC
- ALIAS
- FTPUSERS
-
-
- A.3. NET Configuration File -- AUTOEXEC.NET
-
- The AUTOEXEC.NET file, created in the root directory, has a function
- similar to that of the AUTOEXEC.BAT file in DOS, hence the name. When NET is
- executed, it reads AUTOEXEC.NET and executes all of the commands as if they
- had been typed in to the program from the keyboard. This provides an easy
- mechanism for setting up the initial system configuration, including setting
- the IP address, hostname, AX.25 parameters, routing table, servers to start,
- and protocol variables. This file is to be located in the root directory of
- the current disk drive on your system.
-
- An example AUTOEXEC.NET file is usually distributed with the NET software.
- This file is fully commented and explains how the example file should be edited
- for your use. If this file is not available, use a text editor to create the
- file, following the instructions given in the subsections below. It is
- suggested that you put the commands into AUTOEXEC.NET in the order given below.
-
- A.3.1. #
-
- Commands starting with the hash mark (#) are ignored. This is mainly
- useful for comments in the AUTOEXEC.NET file. The comments can appear anywhere
- in the file.
-
- A.3.2. hostname <host_name>
-
- Sets the local host's name (an ASCII string, NOT an IP address). This is
- usually chosen to be <call>.ampr.org, where <call> is your amateur call sign.
- The suffix 'ampr.org' is officially recognized as meaning an 'AMateur Packet
- Radio' station. Your hostname will show up in mail headers and in the greeting
- messages from the SMTP (mail), FTP (file transfer), and AX.25 mailbox servers.
-
-
-
- - 32 -
-
-
- For example:
-
- hostname n6gf.ampr.org
-
-
- A.3.3 ax25 mycall <callsign>[-<value>]
-
- Set the local AX.25 address. It does the same thing that 'MYCALL' does in
- your AX.25 TNC. The standard format is used, e.g., KA9Q or WB6RQN-5. The
- optional dash (-) and <value> following the callsign is the SSID (substation
- ID), used when it is necessary to distinguish between two or more packet
- stations with the same callsign. The SSID will be 0 unless explicitly set to
- another value, which must be a decimal number from 0 to 15. This command must
- be given before any attach command using the AX.25 mode is given. For example:
-
- ax25 mycall n6gf
-
-
- A.3.4 ip address <ip_addr>
-
- Sets the local IP address. See section 2.4 for information on acquiring
- an IP address. For example:
-
- ip address [44.2.0.100]
-
-
- A.3.5. attach
-
- The attach command configures and attaches a hardware interface to the
- system. While many interfaces can be handled by NET, in this guide, only a
- single serial interface to a TNC running the KISS protocol will be considered.
- The general form of the command for our purposes is:
-
- attach asy <I/O address> <vector> ax25 ax0 <bufsize> <mtu> <baud>
-
-
- "asy" refers to a standard PC asynchronous interface. Other hardware
- interfaces are supported by NET, but will not be covered in this guide.
-
- <I/O address> is the base address of the control registers for the serial
- interface.
-
- <vector> is the interrupt vector number. Both the I/O address and the
- vector must be in hexadecimal. (You may put "0x" in front of these two values
- if you wish, but note that they will be interpreted in hex even if you don't
- use it).
-
- "ax25" forms IP datagrams to correspond to the AX.25 packet protocol.
- Other modes are supported by NET, but will not be covered in this guide.
-
- "ax0" is the name by which the interface will be known to the various
- commands, such as "connect," "route" and "trace".
-
- For asynchronous ports, <bufsize> specifies the size of the ring buffer in
-
-
-
- - 33 -
-
-
- bytes to be statically allocated to the receiver; incoming bursts larger than
- this may (but not necessarily) cause data to be lost. The suggested value is
- 1024.
-
- <mtu> is the maximum transmission unit size, in bytes. Datagrams larger
- than this limit will be fragmented at the IP layer into smaller pieces. The
- suggested value is 256.
-
- <baud> is the baud rate of the serial communication between the computer
- and the TNC. It must be chosen to be the same value as the baud rate selected
- on the TNC, as discussed in section 2.3. The suggested value is 4800 for an
- XT, and 9600 for an AT.
-
- Example 1 -- Attach the PC serial card normally known as "com1" (the first
- controller) to operate in AX.25 mode at 4800 baud with a KISS TNC.
-
- attach asy 0x3f8 4 ax25 ax0 1024 256 4800
-
-
- Example 2 -- Attach the secondary PC serial card ("com2") to operate in
- AX.25 mode at 4800 baud with a KISS TNC.
-
- attach asy 0x2f8 3 ax25 ax0 1024 256 4800
-
-
- A.3.6. ip ttl <value>
-
- Sets the default time-to-live value placed in each outgoing IP datagram.
- This limits the number of switch hops the datagram will be allowed to take.
- The idea is to bound the lifetime of the packet should it become caught in a
- routing loop, so the value should be somewhat larger than the diameter of the
- loop. A suggested value is 16. For example:
-
- ip ttl 16
-
-
- A.3.7. param ax0 <value1> <value2>
-
- Param invokes a device-specific control routine. On a KISS TNC interface,
- this sends control packets to the TNC. Data values are treated as decimal.
- This command is used to change TNC parameters such as TXDELAY, TXTAIL, PERSIST,
- and SLOTTIME. This command is TNC-specific, so you must read the documentation
- for the KISS implementation for your TNC. Most KISS implementations include
- good default values, so you shouldn't have to use this feature, but if things
- don't work, you can use the "param" command to try tweaking the TNC.
-
- On a TNC-2, <value1>=1 will set TXDELAY (the time after key down when
- packet information is transmitted) to <value2> X 0.01 seconds. To set TXDELAY
- to 0.5 seconds:
-
- param ax0 1 50
-
- On Kantronics TNCs, <value1>=1 sets TXDELAY to <value2> X 0.01 seconds, as with
- the TNC-2. For <value1>=2, PERSIST is set to <value2>. For <value1>=3,
-
-
-
- - 34 -
-
-
- SLOTTIME is set to <value2> X 0.01 seconds. The default values for these
- parameters are generally acceptable, so it is usually not necessary to include
- these commands in AUTOEXEC.NET.
-
- A.3.8. route add
-
- The "route add" command adds an entry to the routing table, defining how
- your outgoing packets should be routed. Routing can be a complicated issue, so
- it would be best for you to get some help on this from an experienced local
- TCP/IP user.
-
- The command syntax is:
-
- route add <dest_host>[/bits]|default ax0 [<gateway_host>]
-
-
- Basically what you are trying to do is to route your packets directly to
- those hosts that you can "hear" and route your packets to the remaining hosts
- through hosts that can serve as gateways (similar to AX.25 digipeaters). The
- destination host for your packets is <dest_host>, which is either an IP
- address or a host name, as defined in the file HOSTS.NET, described in section
- A.4. The gateway is <gateway_host>, also an IP address or host name. Note
- that it is not necessary to specify the entire sequence of hosts from your
- system to the destination, but rather only the destination and the first stop
- on the way. If the routing table on the other hosts has been set up properly,
- your packets will get to the desired destination. Thus, everyone has to
- cooperate in keeping the packets moving.
-
- In my area, N6RQR is over 40 miles away, but he is up in the foothills
- above me and has a good station, so I can communicate with him directly. His
- IP address is [44.2.0.54], so I route packets directly to him with the
- statement:
-
- route add [44.2.0.54] ax0
-
-
- The option "/bits" can be used to avoid having to include a route add
- statement for each and every host you can communicate with directly. To
- understand this, more details on IP addresses are needed. The IP address is a
- 32-bit number, with four 8-bit numbers separated with periods (.). Each 8-bit
- number can range from 0 to 255. The optional "/bits" suffix to the
- destination host id specifies how many leading bits in the host IP address are
- to be considered significant in the routing comparisons. If not specified, 32
- bits (i.e., full significance) is assumed. With this option, a single routing
- table entry may refer to many hosts all sharing a common bit string prefix in
- their IP addresses. For example, [44.0.0.0]/8 would match all addresses in
- the form [44.*.*.*], where '*' is any number between 0 and 255; the remaining
- 24 bits are "don't-cares". When an IP address to be routed matches more than
- one entry in the routing table, the entry with largest "bits" parameter (i.e.,
- the "best" match) is used. This allows individual hosts or blocks of hosts to
- be exceptions to a more general rule for a larger block of hosts.
-
- The "/bits" option can be used to route packets directly to all the hams
- on TCP/IP in my town. We have been assigned IP addresses in the range
- [44.2.0.96] to [44.2.0.111], so our addresses agree in the first 24 bits.
- Further, 96
-
-
- - 35 -
-
-
- decimal is 01100000 binary and 111 decimal is 01101111 binary. Thus, our
- addresses agree in an additional 4 bits, for a total of 28 bits. The command
- used is:
-
- route add [44.2.0.96]/28 ax0
-
-
- Hams in a neighboring region have been assigned IP addresses of the form
- [44.4.*.*]. N6RQR can forward packets to them, so we use him as a gateway with
- the command:
-
- route add [44.4.0.0]/16 ax0 n6rqr
-
-
- The special destination "default" is used to route datagrams to addresses
- not in the routing table; it is equivalent to specifying a /bits suffix of /0
- to any destination host. Care must be taken with default entries since two
- nodes with default entries pointing at each other will route packets to
- unknown addresses back and forth in a loop until their time-to-live (TTL)
- fields expire. (Routing loops for specific addresses can also be created, but
- this is less likely to occur accidentally).
-
- In my area, we route packets to all other destinations through our local
- switch, which has the host name "eyolo." The command used is:
-
- route add default ax0 eyolo
-
-
- A.3.9. smtp timer <value>
-
- Sets the interval to <value>, in seconds, between scans of the outbound
- mail queue to determine if there is any new outgoing mail which should be
- sent. For example, "smtp timer 600" will cause the system to check for
- outgoing mail every 10 minutes and attempt to deliver anything it finds. For
- an end-user system that is not normally intended as a mail forwarder, you do
- not want to set the interval to be too short, as you will be frequently
- accessing disk needlessly. An interval of 30 minutes (<value>=1800) is
- probably reasonable. You can also "kick" out the mail manually, as described
- in section 6.5.1. The suggested command is:
-
- smtp timer 1800
-
-
- A.3.10. smtp gateway <host>
-
- Defines the host to be used as a "smart" mail relay. Any mail sent to a
- host not defined in the file "HOSTS.NET" will instead be sent to the gateway
- for forwarding. You will have to ask locally if there is a host that is used
- as a mail gateway. If so, include this command in AUTOEXEC.NET.
-
- A.3.11. tcp mss <value>
-
- Set the TCP maximum segment size in bytes that will be sent on all
- outgoing TCP connect requests (SYN segments). This tells the remote end the
- size of the
-
-
- - 36 -
-
-
- largest segment (packet) it may send. An mss of 216 will force folks to send
- you packets of 256 characters or less (counting the overhead). Suggested
- command:
-
- tcp mss 216
-
-
- A.3.12. tcp window <value>
-
- Sets the window parameter, which establishes the maximum number of bytes
- that may be outstanding before your system expects an ack. If the window is
- twice as big as mss, for example, there will be two active packets on the
- channel at any given time. Large values of window are a problem on the air.
- Keep mss <= window <= 2*mss. Suggested command:
-
- tcp window 432
-
-
- A.3.13. start <server>
-
- Starts the specified Internet server, allowing remote connection requests.
- Suggested commands:
-
- start ftp
- start telnet
- start smtp
- start finger
-
-
- A.3.14. ax25 digipeat [on|off]
-
- Controls whether AX.25 packets addressed to this station as a digipeater
- will be repeated or not. If you want to operate as a digipeater (for those
- poor souls not operating TCP/IP), include the following command:
-
- ax25 digipeat on
-
-
- A.3.15. ax25 heard [on|off]
-
- Controls whether the list of call signs heard is updated or not.
- Suggested command:
-
- ax25 heard on
-
-
- A.3.16. ax25 maxframe <value>
-
- Establishes the maximum number of frames that will be allowed to remain
- unacknowledged at one time on AX.25 connections. This number cannot be greater
- than 7. Suggested command:
-
- ax25 maxframe 1
-
-
-
-
- - 37 -
-
-
- A.3.17. ax25 paclen <value>
-
- Limits the AX.25 packet length. This parameter should be less than or
- equal to the <mtu> defined in the attach command. Suggested command:
-
- ax25 paclen 256
-
-
- A.3.18. ax25 retry <value>
-
- Limits the number of successive unsuccessful retransmission attempts on
- AX.25 connections. If this limit is exceeded, link re-establishment is
- attempted. If this fails "retry" times, then the connection is abandoned and
- all queued data is deleted. Suggested command:
-
- ax25 retry 10
-
-
- A.3.19. ax25 window <value>
-
- Sets the number of bytes that can be pending on an AX.25 receive queue.
- Suggested command:
-
- ax25 window 2048
-
-
- A.3.20. mbox [on|off]
-
- Establishes whether or not the AX.25 mailbox is on. The mailbox allows
- AX.25 packet users to leave a message for you or to establish a keyboard
- conversation. Suggested command:
-
- mbox on
-
-
- A.3.21. log <file>
-
- Defines the name of the file for server session log entries. Don't
- include this command if you don't want to keep a log. The suggested command
- is:
-
- log \spool\net.log
-
- You should read this file occasionally and then discard it, as it can grow to
- be quite large.
-
- A.4. The Hosts File -- HOSTS.NET
-
- The file HOSTS.NET, created in the root directory, provides a mapping
- between an IP addresses and symbolic hostnames. It is used by NET to look up a
- hostname to figure out the correct IP address to use. These hostsnames may be
- used in establishing a TCP/IP connection, e.g. it is not necessary to enter
- 'telnet [44.2.0.98]', but merely 'telnet n6spe'. It is kept in the root
- directory
-
-
-
-
- - 38 -
-
-
- At a minimimum each entry should contain the IP address and callsign.
- Subsequent aliases in the same entry should be separated by a single space.
- Each entry (IP address) represents a separate and distinct computer address.
-
- The form of an entry:
-
- <ip_addr> <host_name1> <host_name2> ...
-
- Note that this is the one case where the IP address does not have to be
- enclosed in brackets. A host can have more than one symbolic name. A Tab is
- recommended between the IP address and host name.
-
- Here are some examples of HOSTS.NET entries:
-
- 44.2.0.98 n6spe shayne
- 44.2.0.100 n6gf
- 44.96.0.2 wb2sef xt.wb2sef
-
-
- Note that the domain name .AMPR.ORG has been assigned for amateur radio.
- By default, we assume that the hostname is the user's callsign in the case
- where a user has one system online, and so <callsign>.AMPR.ORG is the implied
- official hostname. If you have more than one machine on the air, distinguish
- them by prefixing a familiar name followed by a period, as in "winfree.n3eua"
- or "at.n0ccz".
-
- Note that the use of a callsign as a host name has nothing to do with the
- "mycall" parameter. It is convenient to use the callsign as a hostname, and
- required to use the callsign for "mycall" to properly identify a station
- according to FCC rules.
-
- If there is an established group of TCP/IP users in your area, they
- probably maintain an up-to-date HOSTS.NET table that is made available by an
- ftp file transfer.
-
- A.5. Mail Configuration File -- BM.RC
-
- The BM.RC file, created in the root directory, provides BM with the
- configuration needed for the operation of the mailer.
-
- The format for each line in the BM.RC file is:
-
- <variable> <value>
-
- The variables described below are valid in the BM.RC file.
-
- A.5.1. host <host_name>
-
- Sets the local hostname for use in the mail headers. This is a required
- field. This should match the hostname definition in AUTOEXEC.NET.
-
- A.5.2. user <username>
-
- Defines the user name of the person who is sending mail. This is also
- used
-
-
- - 39 -
-
-
- as the default mailbox for reading mail. On the AMPRNET this is usually set to
- your call. There is a DOS limit of 8 characters for the user name.
-
- A.5.3. edit <directory>\<editor>
-
- Defines the name of your favorite editor which can be used to construct
- and edit the text of outgoing messages. <editor> is the name of the editor
- and <directory> is the name of the directory where it is stored on the host
- computer. The use of edit is optional.
-
- A.5.4. fullname <your full name>
-
- Provides your full name to the mailer for use in the comment portion of
- the "From:" header line. The use of fullname is optional.
-
- A.5.5. reply <return address>
-
- Defines the address where you wish to receive replies to messages sent.
- This option is useful if you are operating your pc on a local area network and
- would like your mail replies sent to a more "well known host," for exampe, your
- local switch. The address specified by reply is used to generate a "Reply-To:"
- header in outbound mail. The "Reply-To:" header overrides the "From:" header
- which is the address normally used to reply to mail. This field is optional.
-
- A.5.6. mbox <file>
-
- Specifies the default file to be used for the "save" command, for saving
- received messages. This file is in the same format as a mailbox and may later
- be viewed using the -f option of BM. If this option is not used then the
- default file name is set to mbox.
-
- A.5.7. record <file>
-
- If defined, a copy of each message sent will be saved in <file>.
-
- A.5.8. folder <directory>
-
- If defined folder contains the directory used by the save command. If not
- defined, files will be saved in the current directory.
-
- A.5.9. smtp <directory>
-
- Defines the directory containing the mailbox files. The default directory
- is \spool\mail on the current drive.
-
- A.5.10. Example BM.RC File
-
- Here is an example of a BM.RC file:
-
-
-
-
-
-
-
-
-
- - 40 -
-
-
-
- host n6gf.ampr.org
- user n6gf
- reply n6gf%n6gf@eyolo
- edit \bin\vi
- fullname Gary Ford
- mbox rcv.txt
- folder \ford\packet
- smtp \spool\mail
-
-
- A.6. Time Zone Environment Variable
-
- The time zone used in mail headers is obtained from the DOS environment
- variable TZ. An example TZ setting is:
-
- set TZ=EDT4
-
- It should be added to your AUTOEXEC.BAT file. The first 3 characters are the
- time zone and the fourth character is the number of hours from GMT time. If TZ
- is not set, GMT is assumed.
-
- A.7. The Alias File -- ALIAS
-
- The ALIAS file, created in the root directory, provides an easy way to
- maintain mailing lists. It allows you to send mail to an easily-remembered
- name, instead of a complicated address. An alias can be any string of
- characters not containing the "@" symbol. The format for an entry in the alias
- file is:
-
- <alias> <recip1> <recip2> <recip3>
- <TAB> <recip4> ...
-
- Note that a long list of aliases can be continued on an additional line by
- placing a tab or space in the first position of the continuation line.
-
- Some example aliases are:
-
- spe n6spe%n6spe@eyolo
- dave nn2z@nn2z
- # mail to local eyolo users
- ey-gang n6gf%n6gf@eyolo n6spe%n6spe@eyolo
-
- In the above example, when specifying ey-gang as the recipient, BM will expand
- the alias into the list of recipients from the alias file.
-
- An alias may not contain another alias from the same file. However, an
- alias may contain a recipient name that is an alias on the local host or a
- remote host. For example, if the host "eyolo" contains the following alias in
- addition to the aliases above:
-
- # gang mail
- gang se-gang@sesac nc-gang@ncsac ey-gang@eyolo
-
-
-
-
- - 41 -
-
-
- then mail addressed to "gang" will be forwarded to the alias "se-gang" at the
- host "sesac," to the alias "nc-gang" at the host "ncsac" and to the alias "ey-
- gang" on "eyolo" itself. The mail forwarded to "ey-gang" will then be
- forwarded again, as indicated by the example alias above for "ey-gang."
-
- The use of an ALIAS file is optional. If you are just getting started
- with TCP/IP, you might want to wait until you are more familiar with mail
- addressing before you establish this file. More information on mail
- addressing is given in section 6.4.
-
- Your local TCP/IP user group may maintain an alias file, so you should
- inquire as to its availability.
-
- A.8. The FTP Users File -- FTPUSERS
-
- Since MS-DOS was designed as a single-user operating system, it provides
- no access control; all files can be read, written or deleted by the local
- user. It is usually undesirable to give such open access to a system to
- remote network users. The FTP server therefore provides its own access
- control mechanism.
-
- The file "FTPUSERS," created in the root directory, is used to control
- remote FTP access. The default is NO access; if this file does not exist, the
- FTP server will be unusable. A remote user must first "log in" to the system,
- giving a valid name and password listed in FTPUSERS, before he or she can
- transfer files.
-
- Each entry in FTPUSERS consists of a single line of the form
-
- <username> <password> <directory1> <perm1> <directory2> <perm2> ...
-
- There must be exactly one space between each field. Comment lines are begun
- with "#" in column one. <username> is the user's assigned login name.
- "password" is the required password. Note that this is transmitted in plain
- text; therefore it is not a good idea to give general write permission to the
- root directory. A password of "*" (a single asterisk) means that any password
- is acceptable.
-
- <directoryN> is the name of a directory that may be accessed by the remote
- user. The remote user will also have access to the subdirectories of this
- directory. The directory name must be absolute, i.e. it must begin from the
- root directory (\).
-
- <permN> is a decimal number granting permission for read, write, and
- overwrite and delete operations for <directoryN> and its subdirectories. For
- a permission of 1, the user is allowed to read a file subject to the directory
- access restrictions. A permission of 2 allows a user to write a new file if
- it does not overwrite an existing file. A permission of 4 allows a user to
- write a file even if it overwrites an existing file, and in addition he or she
- may delete files. Again, all operations are allowed subject to the directory
- access restrictions. Permissions may be combined by adding permission values.
- For example, 3 (= 2 + 1) means that the user is given read and create
- permission, but not overwrite/delete permission. Similarly, 7 (= 3 + 2 + 1)
- means that the user is given read, write, overwrite and delete privileges.
-
-
-
-
- - 42 -
-
-
- It is a standard convention to keep a repository of downloadable files in
- the directory \public and to allow users to logon with the username
- "anonymous" with no password to access these files. In some areas, the public
- access username is "guest." Every system providing an FTP server is
- encouraged to provide restricted access to "anonymous" and "guest" users. The
- appropriate FTPUSERS entries allowing the users "anonymous" and "guest" to
- read files under \public and subdirectories, but not to write, overwrite or
- delete any files are:
-
- anonymous * \public 1
- guest * \public 1
-
- If you want to allow these users to write files as well, but not to overwrite
- or delete files, change the permission to 3.
-
- You might want to give a friend access to both his or her own directory as
- well as the public access directory. For example:
-
- n6spe test \users\n6spe 7 \public 3
-
- This gives user "n6spe," with password "test," read, write, overwrite and
- delete privileges for files under \users\n6spe and read and write privileges
- for files under \public; he may not access files in other directories.
-
- A.9. Finger Files
-
- Finger files are information files having the name <file>.txt, stored in
- the \finger directory. It is common practice to set up a file for each of the
- users on the host. Thus, if n6gf is a user, he should have an information file
- named "n6gf.txt." This file is edited with a text editor and should include
- information about the user such as his or her full name, address, and phone
- number. Additionally, information about the packet system, such as computer,
- TCP/IP software, TNC, radio, and antenna could be included. Using the finger
- command, as described in section 9.2, the remote user can access the names of
- the finger files and then have them displayed on his or her console. Thus, you
- could have a separate information file for your system and include general
- information about the files available for downloading and your usual hours of
- operation. There is no specified format for these files. They will be
- displayed on the remote host just as they appear in the file.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 43 -
-
-
- Appendix B. NET Command Descriptions
-
- Given below are all of the commands listed by the "help" command in NET,
- with concise descriptions of these commands. If the command is described in
- more detail in this guide, the section(s) in which it is referenced is given
- in parentheses. An asterisk (*) after the section reference indicates that
- not all of the subcommands have been described in this guide.
-
- ! Suspend NET, return to DOS. (4.3)
-
- arp Address Resolution Protocol. Connects IP addresses with callsigns.
-
- attach Configure and attach a hardware interface. (A.3.5)*
-
- ax25 AX.25 (normal packet) services. (4.2, 8., 9.1, A.3.3, A.3.14-A.3.19)
-
- cd Change directory. (4.4.3)
-
- close Close a session. (5.4, 8.3)
-
- connect AX.25 connect request. (8.1)
-
- dir List contents of a directory. (4.4.4)
-
- disconnect Close a session (alias for close). (5.4, 8.3)
-
- echo Controls telnet keyboard echo.
-
- eol Controls telnet end of line behavior.
-
- escape Controls command-mode escape command (not available on PC).
-
- exit Exit NET and return to DOS. (4.3, 4.7)
-
- finger Finger information files on remote host. (9.2, A.9)
-
- forward Forward traffic to another hardware interface.
-
- ftp File Transfer Protocol. (4.2, 7.)
-
- help List NET commands. (4.4.1)
-
- hostname Display or set hostname. (A.3.2)
-
- kick Force an immediate retransmission on a session.
-
- log Controls logging of server sessions. (A.3.21)
-
- ip Internet Protocol. (A.3.4, A.3.6)*
-
- memstat Displays internal free memory list.
-
- mbox AX.25 mailbox. (8.4, A.3.20)
-
-
-
-
-
-
-
-
-
-
- - 44 -
-
-
- mode Controls transmission mode on AX.25 interfaces.
-
- mulport Controls routing of data between interfaces.
-
- netrom Controls NET/ROM services.
-
- nrstat Displays NET/ROM statistics.
-
- param Invokes a device-specific control routine. (A.3.7)*
-
- ping Query a remote host. (9.3)
-
- pwd Display name of current directory. (4.4.2)
-
- record Record telnet or AX.25 session to a disk file. (5.3.1, 8.2.1)
-
- reset Reset a session.
-
- route Controls the routing table. (10., A.3.8)
-
- session Controls sessions selection. (4.5, 5.2, 8.4)
-
- shell Suspend NET, return to DOS. Alias for ! (4.3)
-
- smtp Simple Mail Transport Protocol. (6.5, A.3.9, A.3.10)*
-
- start Start a server. (4.4.5, A.3.13)
-
- stop Stop a server. (4.4.6)
-
- tcp Transport Control Protocol. (10.1, A.3.11, A.3.12)
-
- telnet Telnet keyboard-to-keyboard protocol. (4.2, 5.)
-
- trace Monitor packet traffic. (9.4)
-
- udp User datagram protocol.
-
- upload Upload ASCII file to telnet or AX.25 session. (5.3.1, 8.2.2)
-
- ? List NET commands. Alias for help. (4.4.1)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Beginner's Guide to TCP/IP on the Amateur Packet
- Radio Network Using the KA9Q Internet Software
-
- Version 1.0
- May 9, 1990
-
- Documenting
- NET 890421.1
- BM 3.3.1
-
-
-
-
-
-
-
-
-
-
- by
-
- Gary E. Ford, N6GF
-
-
-
-
-
-
-
- Copyright 1990 by Gary E. Ford.
- All Rights Reserved.
-
- This Document may be reproduced in whole
- or in part for any non-commercial purpose,
- as long as credit is given to the author.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Beginner's Guide to TCP/IP on the Amateur Packet
- Radio Network Using the KA9Q Internet Software
-
- Contents
-
- Page
- 1. Introduction.................................................. 1
- 1.1 Objectives of This Guide.................................. 3
- 1.2 Acknowledgements.......................................... 3
-
- 2. Necessary Resources........................................... 3
- 2.1 Computer.................................................. 3
- 2.2 TNC....................................................... 4
- 2.3 Radio..................................................... 4
- 2.4 IP Address................................................ 5
- 2.5 KA9Q Software............................................. 5
-
- 3. Definitions, Conventions, and Notation........................ 6
- 3.1 Conventions Used in this Guide............................ 6
- 3.2 Notation Used in this Guide............................... 7
-
- 4. NET........................................................... 7
- 4.1 Executing NET............................................. 8
- 4.2 Command and Converse Modes................................ 8
- 4.3 Executing DOS Commands.................................... 8
- 4.4 Utility Commands.......................................... 9
- 4.5 Managing Multiple Sessions................................10
- 4.6 Abbreviating NET Command Names............................10
- 4.7 Exiting NET...............................................10
-
- 5. Telnet........................................................11
- 5.1 Initiating a Telnet Session...............................11
- 5.2 Accepting a Telnet Session................................11
- 5.3 File Upload and Download..................................11
- 5.4 Closing a Telnet Session..................................12
-
- 6. Mail..........................................................12
- 6.1 Executing BM..............................................12
- 6.2 BM Main Menu Commands.....................................13
- 6.3 Text Input Commands.......................................16
- 6.4 Mail Addresses............................................16
- 6.5 SMTP......................................................17
-
- 7. File Transfer.................................................18
- 7.1 Ftp Command...............................................18
- 7.2 Ftp Converse Mode Commands................................18
- 7.3 Ftp Example...............................................20
-
- 8. AX.25 Services................................................22
- 8.1 Initiating an AX.25 Connection............................22
- 8.2 File Upload and Download..................................22
- 8.3 Terminating an AX.25 Connection...........................23
- 8.4 AX.25 mailbox.............................................23
-
-
-
-
-
-
-
-
-
-
-
-
-
- 9. Monitoring Activity............................................24
- 9.1 ax25 heard................................................24
- 9.2 finger....................................................24
- 9.3 ping......................................................25
- 9.4 trace.....................................................26
-
- 10. Advanced Topics...............................................27
- 10.1 TCP......................................................27
-
- Appendix A. Installation of NET and BM...........................30
- A.1 Installation Overview.....................................30
- A.2 File Structure............................................30
- A.3 NET Configuration File -- AUTOEXEC.NET....................31
- A.4 The Hosts File -- HOSTS.NET...............................37
- A.5 Mail Configuration File -- BM.RC..........................38
- A.6 Time Zone Environment Variable............................40
- A.7 The Alias File -- ALIAS...................................40
- A.8 The FTP Users File -- FTPUSERS............................41
- A.9 Finger Files..............................................42
-
- Appendix B. NET Command Descriptions.............................43
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-