README.TXT
资源名称:wattcp.rar [点击查看]
上传用户:better800
上传日期:2022-06-13
资源大小:1853k
文件大小:28k
源码类别:
TCP/IP协议栈
开发平台:
DOS
- WATTCP
- Installation Notes
- by Erick Engelke
- Introduction Introduction
- TCP/IP is not a program, it is a set of protocols which have
- been implemented on many machines. All machines running an
- implementation of TCP/IP and connected to the world wide
- Internet are capable of communicating with each other.
- There are several popular non-commercial TCP/IP
- implementations for MS-DOS computers. Each offers special
- features but with varied drawbacks. I don't believe there
- is a clear choice of one implementation for all needs, but
- users are free to pick the best or most useful applications
- from each offering.
- These notes describe the various applications available
- today. Please remember that the applications are free
- software, you may use them and pass them on to others, but
- there is no warranty and the support is very limited. You
- also may not sell the included programs.
- Installation Installation
- WATTCP only works if you have a packet driver, a
- special program which allows your network interface card to
- talk with the WATTCP applications.
- Thanks to some very generous people, particularly Russell
- Nelson, you probably will not have to buy a packet driver.
- If you are using Ethernet hardware you can probably find
- free packet drivers for your cards via anonymous ftp to
- www.crynwr.com.
- ____________________ ___________
- WATTCP only supports Class 1 drivers. Officially
- these are called Ethernet class drivers, but many other
- types of networks have drivers which make them emulate
- Ethernet hardware. For example, any Novell system using IPX
- or any IBM compatible Token Ring network can be made to act
- like Ethernet. Even serial lines (SLIP) emulate Ethernet if
- you use Michael Martineau's ETHERSLIP driver available by
- anonymous ftp from owl.nstn.ns.ca in in.coming/etherslip. ______________ ___________________
- To start using WATTCP software you will need to get it
- configured. There are two options, using BOOTP or a
- configuration file.
- If you think you may have a BOOTP server on your local
- subnet, copy the file TCPINFO.EXE into a new subdirectory
- and run the command TCPINFO. It may take a few seconds.
- After a maximum of 30 seconds, TCPINFO should tell you if it
- could get configured via BOOTP. If it could not, or BOOTP
- is too slow, you will have to use a configuration file.
- You will probably want a configuration file anyways, as it
- allows some extra things which are not inherent in BOOTP.
- WATTCP lets you use a config file, and pick up extra
- things from BOOTP.
- If you don't really know what you are doing, continue on
- with this section and make a config file.
- First you will need some important information from you
- local TCP/IP guru. Do not merely guess, these values must
- be correct or you may do some damage and get yourself on the
- death threat list from your local network people.
- IP address (eg. 4.1.2.23)
- my_ip = ______.______.______.______
- local subnet mask (eg. 255.255.254.0, never 255.255.255.255)
- netmask = ______.______.______.______
- local gateway (eg. 4.1.2.1)
- gateway = ______.______.______.______
- primary name server (eg. 129.97.128.1)
- nameserver = ______.______.______.______
- alternate name servers (up to 9 more if so desired)
- just keep repeating this line with new addresses.
- nameserver = ______.______.______.______
- name domains list, (eg. UWaterloo.ca or edu)
- d o m a i n s l i s t =
- __________________________________________________
- These values must be placed in a file called WATTCP.CFG.
- Below is a sample copy, remember, do not use my values, get
- the correct ones!
- print="using sample configuration" # sample comment
- print="contact local network guru for more details"
- my_ip=129.97.176.99
- netmask=255.255.254.0 # sample comment
- nameserver=129.97.128.24 ; sample comment
- nameserver=129.97.128.196 # alt nameserver
- nameserver=129.97.128.1 # 3rd nameserver
- gateway=129.97.176.1
- domainslist="uwaterloo.ca"
- The rules are simple, directive=value.
- If quotes are not used in the value field, the value will be
- terminated by the start of a comment or by a newline, and
- all white space (spaces and tabs) are removed.
- If you specify quotes around the value, only a second set of
- quotes or a newline will end the value field and comments
- must be preceded by an end quote mark. Whitespace is
- preserved inside quotes.
- Place the WATTCP.CFG file in the same subdirectory as the
- TCP application programs. If the file is not found there
- the programs automatically look for the file in the current
- subdirectory of the current disk. Failing that, a message
- will be displayed but the program will not necessarily
- abort.
- You may override the above directory choices by explicitly
- setting the path in an environment variable.
- eg. set wattcp.cfg=n:internet
- The environment variable is checked first, and if it is
- defined that configuration file is used. This is
- particularly useful on installations where the software is
- located on a fileserver, but individual workstations will
- need separate configuration files.
- Testing Testing
- First, to ensure that you entered all the parameters
- correctly, run TCPINFO. It will list all system constants.
- If one or more of them seem incorrect, check your spelling
- in the WATTCP.CFG file.
- Next we will test the PING command to see that everything
- works and asks another computer if it is up. The first
- argument to PING is the name of the other computer. The
- second argument is the number of retries. Since your guru
- supplied the ip address of a gateway, we will first try
- that.
- ping 129.97.128.1 5 don't use 129.97.128.1,
- use your gateway's IP
- address
- This will generate five attempts. You should have more than
- 0 % success. Otherwise your gateway is down or your ip
- address or gateway is wrong.
- If you had success, try pinging the ip address of your
- nameserver.
- eg. ping 129.97.128.196 5
- Now check your nameserver by trying to resolve the name of a
- local machine. Near me is a machine named 'cupid'.
- ping cupid 5
- If that did not work, your various nameserver entries are
- incorrect, your gateway or network mask is incorrect, your
- nameservers did not want to provide name service, or you did
- not specify a valid name.
- These tests will help your guru figure out what might be
- wrong.
- Applications Applications
- TCPINFO TCPINFO
- Displays the current Ethernet/TCP configuration. It is
- useful for testing spelling and contents of files and
- for determining ethernet addresses.
- PING PING
- PING [-d|/d] [-s|/s] hostname [attempts]
- You have already seen PING described briefly in the
- installation section. PING will not generate more than
- one request per second, it also attempts to block
- broadcast attempts.
- PING can be used in a debugging mode (-d or /d).
- eg. PING -d 129.97.128.1
- If you do not specify the number of attempts to be
- made, only one attempt will be made.
- eg. PING 129.97.128.196
- Specifying /s will ping the other machine once per
- second for a very long time.
- eg. PING -s 129.97.128.196
- COOKIE COOKIE
- COOKIE [host]
- eg. COOKIE
- COOKIE conehead.uwaterloo.ca
- Print a witty saying from one of the cookie servers.
- DAYTIME DAYTIME
- Print the time of day using TCP
- DAYTIME host
- eg. DAYTIME 129.97.128.1
- DAYTIME watmath.uwaterloo.ca
- If the host supports TCP based DAYTIME text services,
- the time of day will be displayed as a text string.
- See also NTIME
- FINGER FINGER
- Determine user or system information
- FINGER [user]@host
- eg. FINGER erick@engmail.uwaterloo.ca
- FINGER @engmail.uwaterloo.ca
- Finger returns the remote computer's information on a
- particular user.
- If no user is specified, FINGER will return the names
- of currently logged users on that machine.
- LPR LPR
- Spool print jobs
- LPQ LPQ
- Query the print queue
- Run these commands with no arguments for the exact
- syntax. Check to see that the appropriate host
- privileges are extended to the pc.
- An explanation beyond this is beyond the scope of
- this brief document, see your local UNIX guru with
- HOSTS.LPR or whatever s/he feels is
- appropriate.
- NTIME NTIME
- Set DOS time from the Network.
- NTIME host [addminutes]
- NTIME contacts the host and requests the current time.
- Computers are supposed to respond with the number of
- seconds since Jan 1, 1900 GMT. Many simply return the
- current time adjusted to the daylight savings time and
- time zone. I allow you to specify addminutes if you
- need to add or subtract a certain number of minutes to
- the returned time.
- I was considering using a DST conversion algorithm but
- have not yet done so.
- TCPPORT TCPPORT
- Treat the serial port as a TCP connection
- TCPPORT host port "program options"
- Host is the name or ip address of the remote computer
- and port is the TCP port number on that computer.
- You may specify the terminal emulation desired by
- setting the environment variable
- set tcpterm=termtype
- eg. set tcpterm=vt102
- See the section on TCPPORT below
- REXEC REXEC
- Execute the following command on a remote host
- REXEC host [user [pass]] cmd
- The "cmd" command will be executed on the remote
- computer. If you fail to specify either the password
- or the userid, you will be prompted for them.
- eg. rexec hq.iraq "ls -l"
- rexec hq.iraq saddam "ls -l"
- rexec hq.iraq saddam white_flag_of_victory "ls"
- REXEC does not do terminal interpretation, you may wish
- to have NANSI.SYS loaded to provide the necessary
- emulation. WATTCP REXEC is good when you wish to
- redirect output to a file.
- Other WATTCP Programs Other WATTCP Programs
- The above programs are relatively simple demonstrations of
- the capabilities of the WATTCP TCP/IP kernal. Advanced
- programs are usually distributed separately as they tend to
- be updated in a different schedule from the kernal
- libraries.
- MSKERMIT 3.11 MSKERMIT 3.11
- One of the first popular uses for WATTCP was its
- ability to make communication programs such as MSKERMIT
- act like TELNET facilities. So overwhelming was the
- number of requests that MSKERMIT 3.11 now includes a
- derivative of the WATTCP kernal and the TCPPORT
- application.
- TELNETD TELNETD
- The next most popular use is easily TELNETD, a program
- which allows you to TELNET into your pc and control it
- using any TELNET program on any computer platform.
- TELNETD can be found via anonymous ftp to
- dark.uwaterloo.ca in pub/wattcp/telnetd.zip.
- Using Communications Programs with TCPPORT Using Communications Programs with TCPPORT
- You may wish to use a terminal communication program rather
- than TELNET. WATTCP makes this very easy to do with
- its TCPPORT program. Now that TCPPORT is built into
- MSKermit I don't really have a good example, but here goes:
- Start by creating a configuration file which tells your com
- program to use the BIOS ports rather than hardware. Then
- create a batch file which looks like:
- TNCOMM.BAT
- echo off
- tcpport %1 23 "c:comm"
- Here I was assuming you kept comm.exe in the root of C: and
- tcpport could be found somewhere in the path. Now you can
- easily TELNET to any host by typing:
- TNCOMM host
- eg. TNCOMM 129.97.128.1
- or TNCOMM watmath.uwaterloo.ca
- After you log off, WATTCP returns the characters
- forming [??Host closed connection??] or some similar
- message. You simply need to exit your com program. Exiting
- kermit without logging off will simply close the connection
- and typically log you off.
- You may select a specific terminal emulation which TCPPORT
- should try to run by setting the tcpterm environment
- variable before running tcpterm:
- eg. set tcpterm=vt102
- Advanced WATTCP.CFG Options Advanced WATTCP.CFG Options
- This section is useful once you have determined that
- WATTCP actually works for you.
- Including Sub-Config Files
- You may wish to use a combination of generic WATTCP.CFG
- file and a smaller sub-config file which will be
- located on the user's private subdirectory. Any
- command which can be placed in the main config file may
- also be placed (or replaced) in the sub-command file.
- eg.
- include = c:local.cfg
- After the subcommand file is parsed, Wattcp returns to
- the main config file. The depth of this system is
- limited by the number of file handles and the stack
- size.
- If the subcommand file cannot be found, an error
- message will be printed. To allow for the possible,
- but not-essential existance of a file (i.e., include it
- if it is there, but don't complain otherwise) you may
- simply prepend the filename with a question mark.
- eg.
- include = ?c:local.cfg
- IP Addresses
- Most network administrators would prefer to not have
- many copies of the configuration file, but rather a
- single file from which everyone can be easily
- configured.
- As demonstrated above, WATTCP normally accepts
- the ip number from within the WATTCP.CFG file.
- BOOTP
- Many sites prefer to use BOOTP, a standard protocol
- which requests the user's ip address and other
- information from a BOOTP server.
- To use BOOTP, you must specify the name 'bootp':
- my_ip = bootp
- in the config file. This will broadcast the request on
- the local subnet. You may specify a specific BOOTP
- server which need not be on the same subnet, by using:
- bootp = host
- eg. bootp = 129.97.128.1
- The default timeout value is 30 seconds. You may
- change that by using:
- bootpto = seconds
- eg. bootpto = 50
- If no WATTCP.CFG file is found, WATTCP programs
- always resort to BOOTP.
- ETHERNET to IP Table
- Another option currently exists, I allow multiple IP
- numbers in WATTCP.CFG with each one being tied to a
- particular Ethernet address. If your Ethernet address
- is found in list, your IP address will be assigned.
- ETHIP=ethaddr,ipaddr
- eg. ETHIP=00:01:2F:BC:44:33,128.252.35.4
- In this case, the machine with Ethernet address
- 00:01:2F:BC:44:33 would be assigned the ip address
- 128.252.35.4. Note that Ethernet addresses are
- hexadecimal with intermediate colons, ip addresses are
- dotted decimal, and I use a comma to separate the two.
- Also, since WATTCP removes white space, you may
- place a space between any of the fields if you don't
- use quotes, and you may end the line with a comment
- describing where the station lives or to whom it
- belongs.
- You can quickly find the Ethernet address of a station
- by running the TCPINFO command.
- Subnets
- The Internet is comprised of many, many subnets. There
- are several protocols normally used to help computers
- reach computers on other subnets.
- Most PC based TCP kernals depend on routing tables to
- manage the possible routes, so I elected to use that
- strategy.
- A routing table exists in memory with a current
- capacity for 12 different routes. Each route must
- specify a gateway, an optional destination subnet, and
- then an optional subnet mask.
- gateway = gate_ip [, subnet [, subnet_mask ]]
- eg. gateway = 129.97.176.1 # default
- eg. gateway = 129.97.176.2, 129.97.0.0, 255.255,0,0
- The first example shows how a default gateway is
- created. A default gateway is used if no other choices
- exist.
- The second example shows how to specify a gateway for a
- particular subnet. In this example, whenever the 'top'
- 16 bits are 129.97, that gateway will be used.
- Yes, you need not always specify the mask, but it is
- necessary for class B subnets, so I simply suggest that
- you always do specify the mask.
- You may specify the same gateway several times with
- different routes.
- Non-contiguous subnet bits are supported.
- To check your configuration and to see the precedence
- of gateways, run TCPINFO.EXE.
- Host Name
- Some applications will wish to know your PC's name, a
- short textual name. This may be set with the
- WATTCP.CFG line:
- hostname = name
- eg. hostname = mole
- Notice that you do not specify the domain, that is
- found from the domain string.
- Timeouts
- Most WATTCP programs have a specified timeout
- value between activity before a timeout error occurs.
- For example, the maximum response time to an open
- request before the connection is given up should be
- reasonably long so that distant connections will be
- usable, but short enough that the user will not believe
- the computer has hung.
- Applications may specify their own timeout value, but
- if they chose to use the system default (all my
- applications do), the default value may be set from the
- WATTCP.CFG file.
- SOCKDELAY=seconds
- eg. SOCKDELAY=40
- The default value is 30 seconds. A smaller value is
- unwise, but larger values may be necessary for
- particularly bad connections.
- Maximum Segment Size
- If you understand MSS and know what you would like, you
- can change it:
- MSS=bytes
- eg. MSS=512
- Cookie Server
- You may specify a cookie server in the WATTCP.CFG file
- with the line:
- cookie = server
- eg. cookie = 129.97.128.1
- eg. cookie = sunee.uwaterloo.ca
- Up to 10 separate cookie servers may be added. TCPINFO
- will list them all. BOOTP will also add cookie
- servers.
- BOOTP Features and Limitations
- BOOTP is not the greatest method of configuration. In
- fact there is currently a committee looking at
- implementing its successor.
- WATTCP programs will automatically get many
- configuration parameters from the BOOTP server if those
- values are returned:
- IP address
- subnetmask
- gateway (only one will be added)
- nameservers (all supplied will be added)
- cookieservers (all supplied will be added)
- hostname
- The domain name cannot be specified currently. Of the
- gateways, only one is recorded by WATTCP as they
- do not indicate subnets or anything else useful.
- Notes: Notes:
- The most up-to-date versions of these files, their sources,
- and new programs are available on dark.uwaterloo.ca by
- anonymous FTP. Check out pub/wattcp.
- All executables there are copyrighted but are freely
- available for use and non-commercial distribution.
- The library files which do the actual tcp communications are
- also there. They too are copyrighted, but may be used in
- commercial and non-commercial work. You are free to do as
- you choose. If you intend to program with this package, I
- would highly recommend the developers manual described
- below.
- The programmers manual includes examples, a full reference
- of the approximately 50 functions, notes on conversions from
- UNIX. The cost is $50 ($US if you live in USA, $Cdn if you
- live in Canada. $50 US for anywhere else.
- see: http://www.supro.com
- Erick Engelke
- Erick@development.watstar.uwaterloo.ca
- Waterloo TCP Architect
- July 8, 1992