STiNG versus STiK2 versus iConnect versus MiNTnet versus MagiCNet
This debate will discuss the advantages and disadvantages of each of the three popular TCP/IP stacks for TOS and MiNT. This is meant to be a comprehensive article that delves into the inner workings of these stacks as best as I can mentally do. Also discussed are plain eyesight observations about functionality and effectiveness.
STiNG is a rather exceptional stack originally written primarily by Peter Rottengatter, and later taken over by Ronald Andersson. An update hasn't been seen for a long time, nor has any source code. Another day, another whining session. ;) But why is this stack exceptional? It's very simple. It's a clear cut, proper design that is rich in features not seen in a STiK compatible stack. Driver support is very nice, including several ethernet devices. It runs on any TOS or GEM environment and it is no doubt, the defacto standard in GEM and TOS internet programming. Nearly every major internet suite uses STiK (STiNG), period. STiNG has a client server architecture making no accessory or dialer program necessary to use precious ram on an older constrained ST. Memory usage of the TSR and actual Stack is a minimum. If you want to use CAB, under MagiC, on 4 megs of RAM, this in fact your only option besides STiK2. STiNG has a CPX based configuration, giving you minimal exposure to text files, making it a dream for even the biggest novice to setup.
What's wrong with it?
Not a whole lot. My main arguments are that it isn't a unix like stack making porting unix software to a vconsole/MiNT setup using STiNG rather than MiNTnet is rather impossible. While that was never STiNG's intent, it would be nice. There are quite a few stories of STiNG magically corrupting downloads and uploads, I've seen it myself. STiNG's PPP support is prone to problems as well.
I've used STiNG on multiple machines such as Mega ST4, Mega STe, TT030, and Falcon030. The PPP support never worked right on the ST and STe. I got maybe 200 CPS if I was lucky. Nobody ever had an answer. Downloaded files always came in corrupted. A problem that magically fixed itself if I happened to use iConnect. Getting STiNG to make an initial null modem PPP connection never quite worked right for me. At times I coudl get it, at times I could not. Certainly worhtless compared to the success I've had using standard unix PPPd.
STiK2 is very simple. It is a revised version of STiK. The underlying and important code is very mature. I can achieve high speed transfers, semi-reliable PPP connections. It's certainly easier all in all than STiNG. And more attention was paid to where it needs to be paid to... How well it works.
What's wrong with it?
The front end interface for STiK2 is called qdial. It is completely obvious that it was thrown together in maybe a week to provide some sort of interface to stik2. STiK2 does not seem to be modular at all. CPX based configuration is worth a laugh. For a GEM stack, it is lacking to say the least.
What can I say about this stack? It works, it works well, and once you get connected you can browse pages in CAB.... That's about it. Unless you managed to pay for Emailer and Fiffi, or even iFusion just so you can run your STiK apps. iConnect uses FAR more RAM than STiNG or STiK2 making it essentially worthless for using CAB on 4 megs. The ideas of this stack and the stack itself are very good. It uses proper and advanced gem and AES features, but alas it would have been more helpful to implement the features it provides into STiNG or Stik2. The Atari does not need another unsupported TCP/IP stack.
If you are actually intelligent enough to setup a MiNT system with vconsoles, you are pretty used to a text based configuration. MiNTnet uses standard unix ifconfig, pppd, etc. Programs can easily be ported to it. MiNTnet is FAST. On my 115200 serial link to my falcon (YES 115200 ACTUALLY WORKS WITH MINTNET!!!!) I can get around 10Kb/sec reliably. The link stays up for days. On every reboot the link magically renegotiates. No bs. Want STiK support? Easy, just run gluestick and whala, you have MiNTnet and STiK compatibility, marvelous. And the price is a very hefty free.
A MiNT system with MiNTnet, and simple console apps will suck up your 4 megs of memory and then some. To have a remotely useable system, you need to have at LEAST 8 megs of RAM, and even then you are EXTREMELY constricted. MiNT in all my experiences has been sloooooww, but it is a mixed blessing, as the features/slowness combination has coerced me into purchasing a CT60 from Randolphe Czuba.
MagiCNet is an attempt to port MiNTnet to MagiC. It seems to be in it's early stages yet, and I could not get it to work. Symlinks must be created on U:, vfat must be turned on U: every time. The scripts just don't run right, and GEM PPPD really has not worked for me at all. I have read all documentation and spent weeks trying to get it to work on my Falcon. It isn't happening.
When this matures, it will no doubt be a wonderful solution for MagiC. And I say, when.
But what about CAB?
I do not feel like it is too much to ask for a browser or stack to download images in the background and decode them at the same time. It's bad enough that we have to download the images at such slow speeds but the download AND processing must be done separately. On STiK, and iConnect this is the way things are done. There is no advanced multitasking of the cab.ovl and it just stinks.
And then I tried MiNTnet and the MiNTnet specific cab.ovl. The images and all downloads are processed in the background. Speed is up front double, but even faster considering the download times are increased due to my exceptional connection. Browsing pages with CAB under MiNT net was a dream come true for me.
MiNTnet is a clear winner in every aspect. It's well written and well though out. MiNT features are heavily utilized. The cost? It's ram hungry and simply not a viable option for older slower 4 meg 8MHz machines. Sure you can load up MiNT, N.Aes, and CAB on your 4 megs of RAM, but have fun when CAB runs out of ram 30 seconds later.
Alas the next best alternative is STiK2. Even with all of it's configuration nightmares, it works and has been to date the best MagiC solution for me.
Update: For all comments, corrections, disagreements and agreements, please use this link to go to the appropriate comments forum.