TCP/IP on the PC, Tips and Tricks, part 2


B-8. Why is NFS so slow compared with FTP?

NFS usually runs over RPC via UDP, rather than utilizing TCP. NFS only acknowledges a write request when the disk completes; there are no sliding windows as in TCP. This makes NFS fairly inefficient.

Frances K. Selkirk (fks@vaxeline.ftp.com ) notes:

There are NFS implementations that use TCP. They are only faster over WANs. UDP is faster over most normally functioning LANs. The lockstep paradigm is inherent to NFS, but some implementations provide the ability to violate it - a speed win when the net is reliable, a loss when it is not.

Whatever the transport, NFS will have more overhead than TCP, because it is trying to transparently imitate an OS, and has to do a lot of shuffling and translating.

B-9. How do I get KA9Q to support PPP?

Here is a sample ppp configuration file:

# Set the host name
#
hostname aboba.slip.netcom.com
ip address [192.187.134.3]
#
#
#
# Configure COM3 on Interrupt 5, at 38400 bps with
# MTU = 1008
#
attach asy 0x3e8 5 ppp pp0 8092 1008 38400
dialer pp0 dialer.ppp
ifconfig pp0 netmask 255.255.255.252
ppp pp0 trace 2
ppp pp0 quick
ppp pp0 lcp open
ppp pp0 ipcp open
#
#
#
route add default pp0
# route all packets over pp0 by default (pp0 is the route to
# the Internet)
#
# Time To Live is the maximum number of hops a packet can take
# before it is thrown away.  This command prevents an inadvertent
# infinite loop from occuring with packets in the network.
#
ip ttl 400
#
#-------------------------------------------------
#
# The Maximum Segment Size is the largest single transmission that
# you care to receive.  An mss of 216 will force folks to send you
# packets of 256 characters or less (counting the overhead). 
#
tcp mss 1048
#
#-------------------------------------------------
#
# The Window parameter establishes the maximum number of bytes that
# may be outstanding before your system expects an ack.  If 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 provide
# improved throughput on full-duplex links, but are a problem on the
# air.  Keep window between mss and 2 * mss if you're on the air. 
#
#
tcp window 6888
#
#-------------------------------------------------
#
# This entry will open net.log in the \spool directory and will
# record the server activity of your system.  If you don't want a log,
# comment out this line; if you do, make sure you have a \spool
# directory!
#
log \spool\net.log
#
#-------------------------------------------------
#
# Each of the servers (services you will provide) must be turned
# on before they will be active.  The following entries turn all
# of them on.  To turn any function off use the command "stop" after
# NET gets fired up, or just comment out the line here.
#
start ftp
start echo
start discard
#start telnet
start smtp
#
isat on
#
domain addserver 192.100.81.101
domain addserver 192.100.81.105
smtp gateway 140.174.7.1
#
#
#  Display Name and IP Address
#
hostname
ip address
#
# THE END

In file dialer.ppp:

control down
wait 1000
control up
wait 1000
wait 2000
send "at\r"
wait 3000 "OK"
send "atdt8659004\r"
wait 60000 "login: "
send "userID\r"
wait 5000 "word:"
wait 1000
send "password\r"

B-10. How do I get KA9Q to support SLIP dialin?

If you are willing to settle for little or no security, there is not much you have to change to allow a KA9Q system to receive calls, as opposed to originating them. These should include:

  1. Setting the system to autoanswer, via use of the ATS0=1 command to the modem.
  2. Setting up a trace on the router end, to figure out if it's working. This is done via the command:

    TRACE interface 1011, where interface = sl0 for SLIP, or another value such as LAN or ether0 for the Ethernet interface. It's probably a good idea to put a trace on all interfaces until the system is shaken down.

Note that without addition of a special dialing script, this setup is completely insecure!

B-11. Where can I get information on running Novell and TCP/IP concurrently?

The bit.listserv.novell group (NOVELL@SUVM) regularly posts a FAQ which includes information on concurrent use of TCP/IP and Novell IPX.

B-12. What Novell TCP/IP NLMs are out there and how do I get them to work?

There are publicly distributable FTP daemon and BOOTP NLMs for NetWare v3.11. Some have noted that these NLMs tend to crash the server after a few hours.

B-13. How do I get a telecommunications package supporting Int 14h to work?

Int 14h support is becoming increasing common, with vendors such as Mustang (QMODEM Pro) having included this feature.

Aside from commercial stacks (such as FTP's PC/TCP), try the TCPPORT program in WATTCP, available via ftp dorm.rutgers.edu, get /pub/msdos/wattcp/apps.zip.

B-14. How do I get SLIP working with NDIS products such as Windows For Workgroup TCP/IP?

Rumour has it that there is a serial NDIS driver available called NBR11. This is available via ftp complab.gtri.gatech.edu, cd /pub/lanman/ndis.

B-15. How do I get Windows For Workgroups to work alongside Novell?

ODINSUP from Novell is an NDIS over ODI shim. This allows you to run software requiring ODI drivers, as well as software requiring NDIS drivers. Since IPX and TCP/IP are different protocols, you will not need to run PKTMUX.

Available via ftp.novell.com, cd /netwire/novfiles/client.kit/doswin/files/WSDOS1.EXE.

B-16. NCSA Telnet doesn't reassemble fragments. What should I do?

Yell at the folks at NCSA to fix the problem, and to notify all the people who are using the same TCP/IP code to insert the fix in their software as well. This problem is really common, and very annoying, and affects NCSA Telnet as well as PC Gopher III, and POPmail. One possible workaround is to set the MTU to 576, but this will not always work.

C-1. What publicly distributable TCP/IP stacks are there that I can use to develop my own applications?

In writing an application, you can use device drivers provided by particular vendors, or you can opt for an Application Binary Interface (ABI) that supports multiple TCP/IP protocol stacks, such as Winsock. For a given version of Windows, Winsock is an ABI for both Windows 3.x and Windows NT (via the NT Win16 subsystem).

Device drivers are included with PC-NFS and Beame & Whiteside's BW-TCP. Free examples of ABIs are the WATTCP API, the NCSA API (public domain), the Trumpet ABI from Peter Tattum, and the NuPOP ABI.

As Mark Towfiq notes, all major TCP/IP vendors will be implementing Windows Sockets:

Company                         BETA    FINAL
---------------------------------------------
3Com Corp                       Q1 '93  Q2 '93
Beame & Whiteside               Q3 '93  Shipping
Distinct Corp                   Q3 '92  Shipping
FTP Software                    Q4 '92  Shipping
Frontier Technologies           Q3 '92  Shipping
IBM                             Q4 '92  Shipping
JSB Corporation                 Q4 '92  Q4 '92
Lan Design                      Q4 '92  Q1 '93
Microdyne                       Q4 '92  Q1 '93
Microsoft (Windows NT 32-bit)   Q3 '92  Shipping
Microsoft (Windows NT 16-bit)   Q4 '92  Shipping
Microsoft (Windows 3.x 16-bit)  Q4 '92  Shipping
NetManage                       Q4 '92  Shipping
Network Research                ?       ?
Novell                          ?       ?
Sun Microsystems                Q4 '92  First Half '93
Ungermann Bass                  ?       ?
Walker Richer Quinn             Q4 '92  Q1 '93
Wollongong                      Q4 '92  Q1 '93

Source: Martin Hall (martinh@jsbus.com), available via ftp sunsite.unc.edu, get/pub/micro/pc-stuff/ms-windows/winsock/vendors.

C-2. Where can I get a copy of the Windows Sockets FAQ?

A separate developer-oriented FAQ file about Windows Sockets created by Mark Towfiq is available on SunSite.UNC.EDU:/pub/micro/pc-stuff/ms-windows/winsock/FAQ and Microdyne.COM:/pub/winsock/FAQ

An alternative source for the FAQ is rhino.microsoft.com.


Bernard Aboba, aboba@internaut.com, last modified: 3/18/94