NOTE: there's allready a program called slurp, so I've changed the name to
slirp.  But don't panic, it's still pronounced the same.

NOTE: This is an ALPHA release!  There WILL be bugs, so don't put your whole
organisation's IP connectivity through it! (yet) :)

If you want to help, read the file TODO and send me patches when they're
done :)

What is SLiRP?
--------------

SLiRP is a SLIP/CSLIP emulator which allows a normal user with a shell
account on a UNIX system to act like a SLIP/CSLIP account.


Some of the features of SLiRP
-----------------------------

* It's free

* It comes with source

* The TCP/IP code is based on 4.4BSD which is widely regarded as a very
  stable and complete implementation.  This means it does all the things
  expected of TCP implementations. eg: slow start, congestion avoidance,
  exponential backoff, round-trip-time calculation, delayed ACKs, Nagle
  algorithm, incoming and outgoing IP fragments, etc. etc. The TCP/IP code 
  was actually taken from the excellent FreeBSD 2.0 sources.  Infact, I went
  out of my way to do as little modification to it as possible.  Most things
  that I regarded as unnecessary (eg: the rfc1323 performance enhancments)
  were simply commented out, so if you want to experiment with them, you can.

* Because SLiRP is basically the 4.4BSD TCP/IP code in userland, you can
  easily experiment with the theories of TCP, it's performance etc. without
  having to recompile and reboot a kernel.

* SLiRP can redirect ports, so, for example, even though you don't have a real
  address on the Internet (as with all SLIP-emulators) people can still ftp,
  telnet, etc. into your home machine.

* Redirection doesn't require a seperately compiled program, like term does
  (with tredir).  It can be done with either a configuration file, or telnet
  while SLiRP is running.

* Since nothing needs to be compiled on the client side, it works with any OS
  that can talk SLIP/CSLIP (though, there are programs which you can compile
  on the client end if you want, just to make life easier)


Planned features:

* PPP (I'm gonna steal FreeBSD 2.0's implementation, so it shouldn't take
  too long :)

* Compression over a telnet session (One of the reasons I still occasionally
  use term)

* trsh-like program, which lets you run multiple shells on the remote-host
  without the need to login multiple times (done)

* tupload-like program, which will let you download/upload files without the
  need to login via ftp.


A little more about SLiRP
-------------------------

Here's a little comparison to put SLiRP in perspective:

... Advantages of SLiRP over term:

* Only needs compilation on one side of the link (the remote side)

* No need to "port" (termify) software

* Can be used by non-UNIX users (DOS/Win/Mac/etc.)

* Is more secure

* Is easier to use by multiple users (since you're using the kernel's
  networking code, which is already multi-user (well, should be...))

... Advantages of term over SLiRP:

* Compression (this is planned in SLiRP.  Infact, I plan to "borrow" the
  compression code from term :)

* Term has more complete emulation (see below)

* Tupload (working on it)


How to contact the author
-------------------------

If you have any suggestions, additions, patches, questions, comments, liquor
you can e-mail me at 
		danjo@blitzen.canberra.edu.au (preffered)
		danjo@freedom.wit.com (usually forwarded to the above)
		u923168@student.canberra.edu.au (if the above fail).

You can ftp SLiRP updates and patches from
		ftp://blitzen.canberra.edu.au/pub/slirp
		ftp://freedom.wit.com/misc4/danjo/SLiRP

There's also a WWW page (under construction) at
http://blitzen.canberra.edu.au/~danjo/.  I'll put the latest information on
SLiRP on this WWW page, so please check this page before e-mailing me.  (Of
course, if you need SLiRP to work to be able to use
Mosaic/Netscape/whatever, then you better e-mail me instead)
