9 Apr 1995
The Internet started as a research tool, and university students had a lot of fun loading it up with interesting topics. Although there has been much attention recently to the business possibilities of the Information Highway, it is much easier to find a discussion about brewing beer at home than one about amortizing capital equipment. IBM is now planning to bundle Internet access on home computers in much the same way that it preloaded Prodigy on earlier machines.
It may still be difficult in some parts of the country to find a local phone number that provides Internet access. However, the various network services are working to address this problem. A COM port is standard on every new computer. Unlike old terminal services, an Internet connection tool will setup the modem and may even come preconfigured with the phone number. IBM's "one button connect" to the Internet from OS/2 is an example.
When a user selects the Windows Terminal accessory and connects to a remote service like America Online, then the modem simply transfers ordinary ASCII characters in both directions. A connection to the Internet transfers blocks of binary data that may represent files, images, or queries. This requires that the data have a structure, and that the exchange follow some protocol. Two options are available:
SLIP -- Serial Line IP is an old, simple method that performs only the bare essentials in carrying Internet data over a phone line. It was designed as a "hack" in the original sense of that term. It isn't pretty, but it does the job and will do until something better comes along. SLIP only supports Internet data, and it contains no connection or control messages. SLIP started on most Unix systems and is widely supported by the boxes that connect modems to corporate LANs.
PPP - Point to Point Protocol is a standard developed after years of work by an Internet committee. It supports Internet protocols, but it also has definitions for DECNET, Appletalk, Novell IPX, NETBEUI, and general LAN bridging. PPP also has protocols to exchange configuration information, negotiate options, and provide more secure access.
Every machine on the Internet, even one connected by a dial-up phone line, needs an IP address to send and receive messages. The box at the central site knows what address is associated with the phone line, and it must transmit this information during the initial connection. Since SLIP has no control protocol, the initial part of a SLIP connection is usually handled as an ordinary Terminal session. After connecting, the remote computer is sent strings of the form "Enter your Userid:", "Enter your Password:", and "You have been assigned IP address 18.104.22.168." In some cases these go to a window on the screen and the user types in the responses and configures the address. In most cases, however, the text of the exchange is configured and the questions are answered and information extracted by the program.
Some central devices support both SLIP and PPP. They start a terminal session, request a userid and password, and then accept commands. The "> SLIP" and "> PPP" commands select the protocol that will be used for the rest of the connection. Another device may start up in PPP immediately when it answers the phone. There are defined control messages to request and transmit a userid and password as a PPP binary packet.SLIP is pretty much the same everywhere. However, the PPP standard is new enough that interoperability is still being worked out. An individual package may work with some PPP systems but not others. It is helpful to have several packages available.
Publicity about the Internet has generated a surge in demand for low cost, turnkey personal solutions. One example is Internet in a Box, a product of Spry . With a suggested retail price of $150, it is designed to provide the protocol and a basic set of Internet navigation tools and manuals in a package that can sell through computer superstores and other retail outlets. It comes preconfigured with the phone number of network access vendors. There is full vendor supplied documentation. Unfortunately, those who have tested the package report that it is not an accurate implimentation of the WINSOCK interface. Thus other programs not written by Spry do not run with this code.
For less than $80 one can acquire a copy of IBM's Personal OS/2 3.0 "Warp" package. It also provides SLIP connectivity (PPP with be available shortly) and a basic set of network navigation tools. It provides a "one button connect" through the Advantis network, a joint venture of IBM and Sears. It has EMail, FTP, Gopher, News, and Web clients. It supports the WINSOCK interface and works with freeware and shareware. Oh yes, and it also provides a new operating system.
Two other solutions deserve special consideration:
SAMPLER is a free subset of the larger Netmanage product set. Normally, SAMPLER is on a diskette included in the back of books with titles like Internet for Morons found on the shelves at Barnes and Noble. The idea is to interest the customer in purchasing the full Netmanage product later on. SAMPLER is also available through the network from ftp.netmanag.com as /pub/demos/sampler/sampler.exe. It supports both SLIP and PPP connections. If there are bugs in the free sampler, Netmanage will probably suggest that the user upgrade to the full product. Trumpet WINSOCK was written by Peter Tattam of Trumpet Software International in Australia. Unlike the Spry and Netmanage packages, Trumpet WINSOCK is not a teaser for some larger bundle of software. The only other product from Trumpet is a Network News Reader that you can take or leave as you choose. Trumpet WINSOCK is a low cost, quality product with a good reputation. More importantly, it is the universal first choice for testing among authors of other products. So even if Trumpet has bugs, they tend to be identified and fixed before any new program appears to trigger them.
If each of the Internet packages has its own set of bugs, and if some of them are free, then it makes sense to plan, at least as a fallback, to install more than one package. Then if a problem develops with some application, hang up the phone and try again with a different version of Internet support.
It takes a while to dial the phone, connect, set the right speed, and logon to the central network. It would be intolerable to have to repeat the process for every new file transfer or Gopher search. There are two possible solutions:
The Netmanage and Trumpet packages cannot operate correctly if Microsoft or another vendor has installed its own WINSOCK module in the \WINDOWS directory (though this can be corrected by renaming or deleting the Microsoft WINSOCK.DLL). Although the two packages cannot run at the same time, they can both be installed on the same machine and can run alternately.
Netmanage loads all its files in the x:\NETMANAG directory and it builds a Program Group with items for the control program (CUSTOM.EXE) and a few applications. Trumpet doesn't have a SETUP utility, so the user unpacks the Trumpet files into any directory of choice and builds a Program Item for the TCPMAN control program. Neither Netmanage nor Trumpet installs anything in the WINDOWS directory itself.
[Select this to view Windows Program Manager definition of TCPMAN]
Here are the parameters for the Program Item associated with the icon that starts TCPMAN. Note that the Working Directory is \WINSOCK. When a Windows application goes looking for any DLL, it looks first in the Windows control blocks to see if the DLL was already loaded by another program. If so, it shares the loaded copy. If not, it then looks in the Working Directory configured for the program. If the DLL is not there, then the PATH is searched.
So, the user has to establish the phone connection by clicking on the control program. If the user clicks on the TCPMAN icon, then TCPMAN starts with a Working Directory of \WINSOCK and loads the Trumpet version of WINSOCK.DLL from that library. All subsequent Internet applications find the DLL already loaded and use it. When the user is done with the network, TCPMAN hangs up the phone and exits. At that point, the WINSOCK.DLL is also unloaded from memory.
However, if the user clicks instead on the icon for Netmanage's CUSTOM program, then it runs with \NETMANAG as the Working Directory, and it loads the Netmanage version of WINSOCK.DLL. Again, all the Internet applications use the version of WINSOCK already loaded, and when the control program hangs up the phone, the DLL is unloaded.So, as long as the user is careful and does not use a version of Internet support that packs everything in the \WINDOWS directory, then it is possible to switch between versions of the SLIP/PPP support simply by shutting one down and starting the other. This may be too complicated to suggest to ordinary end users, but the network support people need to know that this is possible when they are trying to track down or circumvent problems in various application programs.
Trumpet WINSOCK is developed in Australia. Trumpet has been known, on a bad day, to jump three release numbers in 24 hours. The canonical source of Trumpet files is ftp.trumpet.com.au. Unfortunately, the Internet connection to down under is not usually unreliable. The specialized source of Trumpet files in the US is probably biochemistry.cwru.edu (Case Western Reserve University). This machine is available for ftp at night and on weekends. At other times, it can be reached by Gopher protocol, but you have to go through the top menu to find the files. PCLT offers a reference that will download a fairly current release, but cannot promise to update this immediately after every change.
Click here to fetch the 2.0A release file (copy it to disk).
When there is an update to the 2.0A release, it will go here.
Unzip these files into a directory. The name C:\WINSOCK is suggested unless there is a better choice. Then build a program item for TCPMAN.EXE. Then click the icon to launch TCPMAN. The following Window appears the first time you run the program, and subsequently when you choose the Setup option under the File menu.
Modem access is selected by clicking one of the two boxes labeled Internal SLIP or Internal PPP. The SLIP Port selects the COM line for both SLIP and PPP (in this case, COM2). The line speed here is set to 38400 bits per second. The MTU (Maximum Transmission Unit) is set to a value determined by the network administrators of the service to which you are connecting (the value of 1006 is determined by the CISCO ASM switch that answers the phone at Yale).
When a machine connects through a modem, the entire universe is at the other end of the phone line. Fields that would normally apply to LAN routing, such as the Netmask and Default Gateway, are not meaningful. It is possible for a IP address to be reserved and assigned to this particular remote machine. Normally, however, a pool of IP addresses will be managed and one will be dynamically assigned for the duration of this phone call. The field labeled IP address can be filled in for the dedicated address case, or it can be left 0.0.0.0 when the number is dynamically assigned.
The other fields will be filled in with values determined by the local network conventions. At Yale, the primary name server is 22.214.171.124, so it has been filled in above. The default suffix for a Yale C& IS user is cis.yale.edu. This provides an short form for local hosts. With this suffix value, someone typing in the name "pclt" as a host name will have it extended to "pclt.cis.yale.edu" before it is sent to the name server.
When TCPMAN is loaded and the SLIP connection is enabled, it reads a file called LOGIN.CMD to get modem commands to establish a connection. This file may have to be changed to reflect differences in:
A sample used at Yale is shown below. Comment lines begin with "#". The "output" command writes something to the modem. The "input" command reads data from the modem until a target string has been received or a time-out period has ended. The string "\13" in the script means the "Return" character.
output atz\13 Issue "ATZ" command to modem
input 10 OK\n Wait up to 10 seconds for "OK" reply
output at& c1\13 Issue "AT& C1" command
input 10 OK\n Wait up to 10 seconds for OK reply
output atdt432xxxx\13 Dial the phone, local Yale number
input 60 CONNECT Wait 60 seconds for CONNECT
wait 10 dcd Wait 10 seconds for RS-232 signal
output \13 Send a Return to kick things
input 30 Username: The server asks for a userid
output xxxxxx\13 Fill this in with assigned name
input 30 Password: The box asks for a Password
output yyyyyyyy\13 Fill this in with assigned value
input 30 > Read to "> " command prompt
output slip\13 The command is "SLIP".
# To use PPP, replace "SLIP" with "PPP" in the previous line, and end the
# script here. The IP address for PPP is sent in binary packets
input 30 Your IP address is Read to beginning of sentence
address 30 The next bit is the assigned IP addr
input 30 \n Flush trailing gunk
display \n Type message to Window
display Connected. Your IP address is \i.\n
The three highlighted fields may require editing. The phone number is five digits from within Yale seven digits as a local call from a standard phone, eight digits (dial "9" first) as a local call from another company, ten digits as a standard long distance call (dial "1-203"), more if you are particular about your long distance carrier (dial "1-0-ATT- 0"). From a hotel room, long distance may begin with an "8". From a phone with "Call Waiting", starting the number with "*70," will prevent the line from dropping when anyone dials in.
Internet access requires proof of identity. If the userid and password have any greater importance, it may not be a good idea to leave them in a file on disk. This example shows them edited into the script as xxxxxx and yyyyyy.
There is an alternate security method, but it can only be used if all remote users connect using PPP. Pulling down the File Menu in TCPMAN presents a PPP Options item. It can be used to configured the userid and password so that they will be presented as a PPP-protocol level exchange (much as PPP feeds back the IP address without a script). For this option to be used, the server that answers the phone must be configured to go immediately into PPP mode and to challenge the remote system with binary packets. For example, a Windows NT 3.5 RAS server will accept an incoming call from a remote machine running Trumpet WINSOCK using this protocol. If this option is used, then the login.cmd script only sets the modem up and dials the phone. Everything else is handled invisibly.
After entering the configuration parameters, TCPMAN presents a message window with a standard menu bar. One of the menu items is the Dialer. It presents a pulldown list with the options: Login, Bye, Other, Options, Manual login, Edit Scripts. [Select this to view the pulldown menu]
Selecting Manual Login turns TCPMAN into a simple "terminal" so that you can type the modem commands to dial the phone and any commands needed to pass the security at the communications switch. Selecting Edit Scripts will bring up the Windows Notepad editor to change the Login commands. Selecting Login itself runs that script to dial the phone and pass the switch automatically.
The default behavior of Trumpet Winsock is to wait for the user to manually trigger one of the scripts. However, by selecting the Options item in the Dialler pulldown menu, the Login process can be triggered automatically.
[Select to view window with Dialer Options] Select the Radio Button for Automatic login and logout on demand. Then any time TCPMAN is loaded, explicitly or in response to some other Internet application, the LOGIN.CMD script will be run.
SAMPLER is distributed on diskette. If it is obtained as a ZIP file through the network, unpack it to a directory on disk or diskette. It installs in the standard manner for Windows programs. From the Program Manager, select File, Run, and point to the SETUP.EXE program in the distribution directory.
Sampler creates a program group with items for CUSTOM, FTP, Telnet, and a few other items. Configuration is done through the CUSTOM program.
The pulldown menu leads the user through a sequence of individual questions about the COM port, type of modem (and its commands), remote phone number, and so on. The Login... item allows the user to specific a userid, password, and command. The syntax for the login script is much simpler than for Trumpet. The SLIP.INI file contains a sequence of definitions of the form:
SCRIPT=name: $u$r word: $p$r > $c$r -I
The "$r" stands for a Carriage Return. The "$u", "$p", and "$c" are the userid, password, and command configured in the Login... menu item dialog. Essentially, the script says to wait for a long string ending in "name:" (actually Username:) and then reply with the userid and a Carriage Return. Wait for a bunch of stuff ending in "word:" (actually Password:) and then reply with the password and CR. Then wait for a command prompt "> " and issue the configured command. Then bail out. Different host systems need to be configured simply with different version of the prompt ("name:" might be replaced with "login" or "logon" or any of a dozen other prompts to solicit the userid). The SLIP.INI file has bunches of possible examples.
Once the system is configured, the Connect menu item displays a short ad for the full Netmanage product and then dials the phone and establishes the connection. To watch the logon process, click on the Log... menu item at the end of the Setup pulldown.
Continue Back PCLT
Copyright 1995 PC Lube and Tune -- Windows on the World -- H. Gilbert