TCP/IP intregrated with COFFIN 0.54, and onwards

AmiTCP is a internet protocol by Karl Jeacle

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.