Getting connected with AmiTCP

Karl Jeacle
August 1994
Just Amiga Monthly Issue 47

In 1993, a group of students from the Helsinki University of
Technology, caused great excitement in the Amiga Internet community
by announcing a free implementation of TCP/IP for the Amiga which
they had built as a part of a software engineering course. Until
then, the only available Amiga implementation of the Internet
protocol suite was Commodore's somewhat incomplete and costly AS225
software.

The confused Internet Protocol Suite

TCP/IP is the name commonly given to the Internet suite of communication
protocols --- simply, the software that lets all the machines
connected to the Internet talk to each other. The name TCP/IP is
somewhat of a misnomer, as IP (Internet Protocol) is the basic
building block of Internet communications. Built above IP, are two
protocols, TCP (Transmission Control Protocol), a connection oriented
protocol, and UDP (User Datagram protocol), a connectionless protocol.
As TCP is the most commonly used protocol, people tend to refer to
the whole collection as TCP/IP.

The most simple explanation of TCP and UDP is based on the analogy
between the telephone and postal systems. Using TCP is like using
the telephone, while UDP is similar to posting a letter.

When you open a connection to another machine using TCP, it's like
dialing someone's telephone number. You have a permanent connection
to the other party for the duration of your call. The connection
is reliable, and all the data gets through in the correct order.
Is is connection oriented.

Using UDP, on the other hand, is like sending someone a letter. You
write the destination on the cover and somehow, the letter finds
is way through. It may get lost, it may arrive out of order relative
to other letters you have sent to the same address, or it might
even get damaged. Each letter you send may take a different route
to the same destination. It is connectionless.

Internet Applications

So, all this is great. But what use is AmiTCP? What does it do?
Well, basically, it's the software that will connect your Amiga
directly to the Internet. This is, of course, assuming that you can
get an IP feed to your Amiga, which is admittedly an unfortunately
large assumption.

But let's say you have got IP connectivity, what applications can
you run? Well, thanks to the AmiTCP authors and many other Amiga
Internet programmers, all of the classic Internet applications are
available on the Amiga. Some of the more popular being:

Telnet  -       The Internet's remote login program. Using telnet lets
               you use a machine remotely. It's as though you're sitting
               typing on the keyboard of the remote machine. AmiTCP can be
               set up to allow someone on the other side of the world to
               telnet to your Amiga and get up an AmigaDOS shell.

FTP     -       File Transfer Protocol. The standard way of transferring
               files around the Internet. Connect to FTP archives and 
               transfer files between the remote site and your Amiga.

Gopher  -       Allows you to browse Internet resources using menus. Mostly
               text based tool that lets you transparently navigate a
               route through information servers on the Internet by
               continuously selecting menu items.

Mosaic  -       A browser for the World Wide Web hypermedia document system.
               Imagine AmigaGuide documents with embedded images, audio,
               and links pointing to pages not just on your local hard
               disk, but to pages on other machines around the Internet.
               The most user-friendly and exciting tool for surfing the
               Internet.

NFS     -       Sun Microsystems' Network File System. I never get tired
               of this. Mount remote disks on your local system. Picture
               it: you hear about a new file in the Aminet archives, and
               you want a copy. You know that Washington University in St. 
               Louis keeps a copy of the archives and their Internet 
               address is wuarchive.wustl.edu. So, you type: 

                       mount wuarchive.wustl.edu:/aminet My_Aminet:

               and hey presto, an icon called My_Aminet appears on your
               workbench. A hard disk thousands of miles away is now
               virtually connected to your Amiga. Just double-click, and
               drag-and-drop to take a copy of the file you want.

And, of course, you can now have Email and Usenet news sent directly
to and from your Amiga. Implementations of protocols like SMTP
(Simple Mail Transfer Protocol) and POP (Post Office Protocol) are
available. Other systems like Whois, Talk, IRC, WAIS, Veronica, and
so on, are all either available or accessible indirectly through
the applications listed above.

The Layered Approach

The most common place to find IP running is over a Local Area
Network, usually Token Ring or Ethernet. However, since you can't
really run an ethernet cable from your IP provider to your Amiga
at home, you'll have to make do with a modem i.e. serial communications.

To run IP over serial lines, you need SLIP (Serial Line Internet
Protocol) or CSLIP (Compressed\footnote{CSLIP compresses the IP
headers, not the data it's carrying.} SLIP). More recently, the
smarter PPP (Point-to-Point Protocol) has become popular.

All of these are available for AmiTCP in the form of SANA-II drivers.
SANA is a Network Device Driver Specification written by Commodore
which provides an Amiga software interface between networking
hardware and network protocol stacks such as AmiTCP. What it means
for you is that AmiTCP can run IP over any type of network for which
there exists a SANA-II driver. A quick look in my devs:networks
directory shows drivers for Ethernet, Token Ring, Hydra, SLIP, CSLIP
and PPP.

This layering is illustrated in Figure 1. Applications are built
using AmiTCP's API (Application Programmers Interface) and don't
care what goes on beneath them. Similarly, AmiTCP doesn't care what
kind of hardware it's using, it just talks to the SANA-II interface
of the device you specify. The SANA-II devices talk almost directly
to the devices they abstract.

http://www.jeacle.ie/pub/articles/amitcp/amitcp1.gif

A hypothetical network

In an attempt to help you understand the kind of information you
need before you set up AmiTCP and indeed to just give you an overall
picture of what we're talking about, here's a not-so-contrived
example of a hypothetical network.

Let's say the setup shown in Figure 2 belongs to an Irish group
called CUGI. Their domain name is cugi.ie and they have a "Class
C" internet (or IP) address of 192.103.112.0 assigned to their
network. The class C address means that the 192.103.112 part of
their internet address is fixed, but they are free to use the final
part to assign numbers to machines on their network (up to 255
machines). Every machine on the Internet has a unique address.

http://www.jeacle.ie/pub/articles/amitcp/amitcp2.gif

Their network consists of several PCs, Macs, Suns, and of course,
Amigas. One Amiga is directly connected to the ethernet using a CBM
A2065 card, and the other is remotely connected via modem.

Their connection to the Internet is via a Cisco Router which routes
IP packets to and from the outside world to and from the different
machines on their ethernet. The router is known as their Internet
gateway.

To convert between Internet names (such as pc.cugi.ie) and IP
addresses (such as 192.103.112.3) one of their Suns (Sun2) is running
a nameserver which other machines can query.

Their remote Amiga is running AmiTCP using the SANA-II cslip.device.
The CSLIP destination address for AmiTCP's configuration is
192.103.112.5. Sun1 which has a modem attached is running a public
domain version of CSLIP. There is an account on Sun1 called
"csliplogin" which instead of running a shell for a user, runs
CSLIP. AmiTCP on Amiga2 has an AREXX script which dials Sun1 and
logs into this account before starting AmiTCP.

A program called ARP (Address Resolution Protocol) is run on Sun1
which intercepts any ethernet packets addressed to Amiga2 and
redirects them down the serial line.

The AmiTCP package

AmiTCP comes in three archives: the binaries, the documentation and
the source code. The documentation is quite extensive, and a full
description of the AmiTCP programming interface is given (essentially,
a BSD Socket emulation library).

The binary archive has everything you need to install AmiTCP. A
standard CBM Install script is provided, and after several releases
of the software is now pretty good. It can be quite daunting though,
if you're not certain what you want. Default domains, gateways and
nameservers may not mean too much to the neophyte. You'll probably
find yourself installing the package several times over as you
figure out exactly what you're doing.

The install script creates all the necessary config files for AmiTCP,
and once you understand the structure of these files, you won't
need to go near the install script again.

Applications included with AmiTCP are the basic Telnet, FTP and
Finger. Numerous other tools such as netstat, route, ping, and arp
are included for configuring and troubleshooting your IP link.

In addition to these standard networking utilities from the Unix
world is an Amiga specific application called NetFS. This is similar
to Sun's NFS system mentioned earlier, except it's custom built for
Amigas. It won't interwork with machines running NFS.

Alternatives to AmiTCP

Just one other TCP/IP implementation is available for the Amiga ---
Commodore's AS225 networking software. Only version 1.0 is available,
as 2.0 although finished and in use by developers, was never shipped.

Version 1.0 is apparently a reasonably complete IP implementation
with regular tools such as Telnet, FTP, etc. It also has client NFS
i.e. you can mount remote disks, but you can't allow remote machines
to mount your disks. Version 2.0 is said to be much more complete
with many bug fixes and server NFS support.

The disadvantage to buying AS225 at this stage is that AmiTCP is
becoming the most popular way to write TCP/IP applications for the
Amiga. Since, AmiTCP uses a different API to AS225, additional work
is involved in supporting both systems. Some programs however, such
as AMosaic, do support both, but many tools are being written
exclusively for use with AmiTCP.

Conclusion

Some of the software I've mentioned may still be in beta-testing
when you read this article, but it really is out there. AmiTCP
itself is currently at version 2.3, and 3.0 is expected soon.

One problem with AmiTCP is installation. Getting it up and running
isn't quite a black art, but having SnoopDOS handy, does help.
Hopefully version 3.0 will be a little easier to install but
unfortunately, without having an understanding of how IP works,
troubleshooting software like this is always going to be difficult.

If you're looking for IP for your Amiga, or have a few machines
you'd like to network together, AmiTCP could be for you. While it
might cause a few headaches, it's good fun to set up, and you'll
probably learn a thing or two about networking in the process.