The widely used uIP TCP/IP stack is a very small implementation of the TCP/IP protocols, designed for memory constrained networked embedded systems. Version 1.0 adds a number of features such as a new socket-like API, rudimentary IPv6 support, and a DHCP client, as well as fixes corner-case bugs in TCP that have been found through many years of real-world testing.
for AROS…
Actually, it’s probably intended for all the 8/16/32 bit systems Contiki OS is ported to, and any other low-resource/embedded systems that require networking.
What I find impressive is the rudimentary IPv6 support, considering the 8 bit systems it should work on.
For someone that knows something about OS & compiler internals, but not much of anything about networking stacks, how useable is this as a learning device. Could it be useful in a 32b environment or are there better stacks to look at that are not too big?
If you don’t code embedded OS, you don’t need uIP – there are many other TCP/IP stacks. uIP has to overcome many limitations of 8 bit CPUs, so the code uses a lot of global variables. I’m not saying it’s bad, but you should choose the right tool depending on the target CPU and memory size.
Whatever it is, it has to be ten times faster and at least 100 times more stable than Windows’ TCP/IP Stack. MS Should have considered licensing one of the freely available stacks under a proprietary licenese and using it instead of its own.
Windows used to use networking code (from FreeBSD I think), but the last I heard it was all replaced now.
Yes. In early NTs (AFAIK last one was NT4.0) there was TCPIP stack based on FreeBSD code, but Microsoft replaced it all in 2k. Other FreeBSD code was in command-line FTP client and in other places of network tools, AFAIK.
Edited 2006-06-13 17:37