TCP/IP Server Program
The network server program TCPIP.SAV provides the software
interface between the Ethernet device handler and the
client/server programs in the TCP/IP Package. The network
server program handles the processing of various network packets
and services (TCP, IP, UDP, BOOTP, ARP, RARP, and DOMAIN name
lookup).
The TCPIP.SAV program may be started interactively (usually
for diagnostic purposes) with the following options:
TCPIP [?] [-f filename]
? List this Help Text and Exit TCPIP
f filename Configuration File
The startup command file TCPIP.COM deassigns all devices and
then assigns the network server device EN to be the DEQNA/DELQA
device EQ or the DEUNA/DELUA device EU. Four EN units are used
by TCPIP, three are used to receive IP(EN0:), ARP(EN1:), and
RARP(EN2:) packets and one is used to transmit(EN3:) all packet
types.
deassign
dismount ld0:
dismount ld1:
dismount ld2:
dismount ld3:
dismount ld4:
dismount ld5:
dismount ld6:
dismount ld7:
mount ld7: dl1:tsxtcp.dsk
assign ld7: TCP:
assign eq0: en0:
assign eq1: en1:
assign eq2: en2:
assign eq3: en3:
run/single TCP:tcpip
^1 ^2 ^3 ^4 ^5 ^6
The TCPIP program is usually started at TSX-Plus startup using
the file DETACH.TSX:
detach sy:tcpip.com
The TCPIP.SAV program requires the configuration file
TCP:TCPIP.CFG which defines all the parameters required to con-
figure the network server. Typical configuration parameters are
detailed in the following configuration file:
#
# Example host file for TCP/IP server
#
# This file is free form
# Separators are any char <32, 'space' and '='
# Comments are preceeded by #
#
# The form is keyword=value for each parameter.
# The first set of parameters refer to the whole program's defaults.
# These parameter values can be in any order.
# Following this are the individual machine specs.
# If the first machine is name "default", then it contains default
# values for the rest of the machines.
#
# These options are specified for this host machine:
#
# myname=____.____.____ # my internet name
# myip=___.___.___.___ # host machines's IP number
# =BOOTP # to use BOOTP to get host info
# =RARP # to use RARP to get IP number
# netmask=___.___.___.___ # subnetting mask
# domain=____.____ # default domain for lookup
# nndomto=____ # timeout for domain lookups
# nnretry=____ # number of retries for lookup
# nnarpto=____ # timeout for ARPs
# nndto=____ # timeout for data layer
# nnpkt=____ # TCPIP upper limit packets per transq
# # nnpkt=1, requires ACK for each packet
# nnwin=____ # TCPIP upper limit window size
# nnseg=____ # TCPIP upper limit input segment size
# nnmtu=____ # TCPIP upper limit output transfer size
# service=___,___,_____ # TCPIP services specification
# task=___,___,_____ # TCPIP task specification
# logsession=__________ # TCPIP session logging filespec
#
#
# These are the options which may be specified for each
# individual machine specification:
#
# name=____ # name of session (required)
# host=____ # full name of host computer
# hostip=___.___.___.___ # IP number of host
# port=____ # specify initial connection port
# nameserver=____ # name server level
# gateway=____ # gateway level
# retrans=____ # initial retransmit timeout
# contime=____ # opening connection timeout
# mwin=____ # advertized window size for this host
# mseg=____ # maximum advertized input segment size
# mtu=____ # maximum output transfer size
# delete=backspace # value to use for character deletion
# crmap=4.3BSDCRNUL # for 4.3BSD null CR
# duplex=half # for half duplex TELNET connections
# copyfrom=____ # copy parameters from this name
#
myname=machine.domain.name
myip=192.3.2.100 # required, this machine's IP number
netmask=255.255.255.0 # subnetting mask
domain="domain.name" # domain name search path
# affects machines on your local network
nnwin=2920 # limit advertized window (nnwin == mwin)
nndomto=5 # domain timeout
nnretry=4 # number of retries
nnarpto=2 # arp timeout in seconds
nnpkt=2 # send only 2 packet(s) per transq
# The following line specifies the TCPIP logging file
# which will contain information for each session
# started: TELNET / RTELNT / FTP / RFTP / CNCT / RCNCT /
# MAIL / RSMTP
# RPOP3 / MAILER / MMAIL
# RLPD / LPRINT / LPQRM / LLPQRM
# NTSND
# RHTTP
# RGOPH
# logsession=LOG:tcpip.log[100]
# The following are services supported by TCPIP.
# Each entry contains the listen port, maximum number of
# sessions and the name of the command file to initiate
# the service.
service=21,2,TCP:rftp.srv # remote ftp server
service=23,2,TCP:rtelnt.srv # remote telnet server
service=25,2,TCP:rsmtp.srv # remote smtp server
service=27,2,TCP:rcnct.srv # remote cnct server
service=70,2,TCP:rgoph.srv # remote gopher server
service=80,4,TCP:rhttp.srv # remote http server
service=110,2,TCP:rpop3.srv # remote pop3 server (task: -t 1)
service=515,2,TCP:rlpd.srv # remote lpd server (task: -t 2)
# The following specify the tasks that may be initiated by TCPIP.
# Each entry contains the taskid number, timer interval in seconds
# (zero means not an automatically started task), and the name
# of the command file to initiate the service. These tasks donot
# have to be related to TCPIP programs, however a TCPIP program
# can use the TASKCLASS to start a specific task. The selected
# task will be scheduled by TCPIP and only one (1) copy of the
# the task will be allowed to run. Additional requests to start
# the task will be queued as a single request to rerun the task
# at the completion of the currently executing task.
task=1,0,TCP:mailer.srv # mmail / pop3 mail delivery agent
task=2,0,TCP:lprint.srv # rlpd / llpqrm printing delivery agent
#
# Following are individual machine specifications
# Gateways are used in the order that they appear in the file
# Nameservers rotate, #1, #2, #3, #1, #2 when a request fails
#
# The machine named "default" contains the fields which are
# automatically filled in for later hosts
#
name=default # Session name, "default" is a reserved name
# Not a real machine, default parameters only
delete=delete # Assume mostly non-UNIX connections
# The following entries affect the tuning of
# TCP connections to this host.
# They should be set by the network administrator who is familiar
# with the requirements of your specific network.
contime=12 # timeout in seconds to try connection
# before returning error to user
retrans=5 # starting retransmit time out in seconds
mtu=1460 # maximum transmit unit in bytes
# outgoing packet size, MAX=1460
mseg=1460 # largest segment we can receive
# whatever the hardware can take, MAX=1460
mwin=2920 # most bytes we can receive without ACK
# =TCP window size, MAX=3047
# larger isn't always better
#
# Below this line, most of the communication parameters are obtained
# from the "default" host entry.
# Machine names, IP addresses, and special communication parameters
# are present when needed.
#
name=mygateway hostip=192.3.2.2
gateway=1
name=nameserver hostip=192.3.2.1
nameserver=1
name=alpha host=alpha.domain.name
hostip=192.3.2.200
#
# If during TCPIP startup you get the error Sreadhosts() error 2,
# you probably have exceeded the memory limits of the machine.
#
# (1) reduce the number of machine definitions above
# (2) or donot use session logging
#
# Sesion logging and Debugging should not be simultaneously enabled.
#
The network server needs to know the ip address(number) of
the machine to which it is connecting. If the TCPIP.CFG file
does not contain the named machines' ip number then it will make
a request to the specified name server to obtain the machines ip
number. If a name server is not specified then the connection
cannot be made using the machines name (place the machines name
and ip address in the configuration file). If the ip address is
given as the input to the client program rather than the name
then a domain name lookup is not required.
All changes to the configuration file will take effect at the
next startup of TCPIP.SAV.
Socket Monitoring Program
The SKTMON program provides a diagnostic tool for observing
the state of all TCPIP connections. SKTMON displays the current
state of network connections by showing the global regions
through which the TCPIP network server program and the
client/server programs communicate. The program shows in detail
the various network packets, the incoming and outgoing data
streams, and the status of the network ethernet driver.
The startup command file contains an assignment to allow
SKTMON to access the status of the device driver:
assign eq0: en0:
run/single TCP:sktmon 0 ^1
Password Utility Program
A password file (eg PASWRD.FIL) must be built if the lo-
cal/remote MAIL services are to be used or if remote network ac-
cess (ie remote FTP, TELNET, CNCT or printing services) must be
restricted. It is suggested that a seperate password directory
be created to hold the files PASWRD.SAV and PASWRD.FIL. This
directory need be no larger than about 200 blocks. The maximum
number of user/password specifications is limited by the program
memory size to about 50. The PASWRD.FIL contains 1 block for
each user/password specification. The PASWRD.COM command file
should be updated to reflect the location of the password files.
A seperate directory allows the exclusion of its access by
remote FTP sessions, local users or remote telnet sessions with
appropriate TSX-PLUS access rights may still access the password
files.
Copy the file PASWRD.SAV (and optionally the supplied pass-
word file PASWRD.FIL) to the created directory. Modify the
PASWRD.COM file to access this subdirectory.
Initiating PASWRD.SAV with a file specification will open an
existing file or create the file if no existing file is found.
The PASWRD program screens will indicate all the options and the
file USRBLK.H illustrates the formats for the directory/sub-
directory/file specifications required by the password program.
NOTE
The password for any added user must also be speci-
fied, any user not requiring a password (ie an
'anonymous' account) must have this password entered
as a null string by typing only a carriage return for
the password.
To use the created password file be sure the program startup
command files have specified the correct path to the password
file.
NOTE
The directory/subdirectory/file access rights are only
used by the remote FTP server. Logins via TELNET or
CNCT rely upon any security features enabled in
TSX-PLUS and not by the PASWRD.FIL specifications.
Abort TCP/IP Server
ABRTCP is a program which attempts to gracefully abort the
TCPIP system. All TCP/IP connections are closed, all
client(s)/server(s) are requested to abort, and the TCPIP server
closes. The program is invoked from the command file
ABRTCP.COM: as:
run/single TCP:abrtcp
Abort Specific Job
ABRTJB is a program which attempts to gracefully abort a
specific TCP/IP client/server program. The program is invoked
from the command file ABRTJB.COM:
run/single TCP:abrtjb
^1 ^2 ^3 ^4 ^5 ^6
and may request from 1 to 6 jobs be aborted. The job aborts are
sent to the TCPIP server program which closes any open connec-
tions associated with the job and sends an abort request to the
specified job. This program will not abort the TCPIP server
program.