PCjr Telnet Server Test

Michael B. Brutman mbbrutman-cctalk at brutman.com
Sat Sep 13 12:53:10 CDT 2008


My TCP/IP stack isn't very small either .. people have done TCP/IP in a 
much smaller space.

This particular application takes 68KB on disk and 132KB total, 
including heap allocations.  There is no UDP or DNS support compiled in, 
but I do have about 9KB of trace code compiled in.

In the 132KB of space I'm able to support 10 online clients, each with a 
2KB output buffer, a 512 byte receive buffer, and a few buffers (20 to 
30KB) floating around for incoming and outgoing TCP transmissions.

General features I do support:

- ARP including caching a few entries
- TCP sliding window, automatic retransmit, zero window probes, MSS 
negotiation, listen support, etc.
- Enough UDP to implement DNS resolving and DHCP
- A nice tracing mechanism that I can turn on and off via an environment 
variable or run-time variable, with selectable levels of tracing


Big things I know I'm missing:

- ICMP - it's on the todo list.
- IP fragments.  I don't take them, and I don't do them.  Too expensive 
for a little machine, and pretty rarely needed on a TCP socket.



So the memory requirements and function put it above uIP, but it's still 
small enough to cram into a low end 8088 class machine.

Many people have run TCP/IP on much less hardware.  I haven't looked at 
the uIP code, but the fact that Adam can run in on a C64 is enough to 
amaze me ..  It's not as full featured, but it's there!


Mike



More information about the cctech mailing list