![]() |
Watt-32 tcp/ip Homepage |
This page contains my port of Waterloo tcp/ip (WatTCP). Watt-32 is an enhanced version of Erick Engelke's WatTCP. The latest version is dated November 1999 with features integrated into Watt-32.
Watt-32 is a library for making networked TCP/IP programs in the language of C and C++. Both 16-bit real-mode and 32-bit protected-mode is supported. Watt-32 requires a packet-driver (PKTDRVR) to access the data-link layer (ether-PPP, SLIP or Ethernet. Token-Ring is untested).
The name Watt-32 was chosen to signal the emphasis on 32-bit platforms (Allthough 16-bit compiler are also supported). What, besides embedded systems, is DOS good for these days if not running high-performance 32-bit programs. And the embedded market is booming; with the price of PC-104/EtherNet cards, Watt-32 could be used in a lot of fancy boxes. How about an IP-telephone, MP3 home-player or an Internet Radio.
These are some of the new functions in Watt-32:
Other planned (or not-yet-working) things include TCP features like RTT cache, window scaling, SACK (selective acknowledge), time-stamping, PAWS (protect against wrapped segments) and better retransmit strategy. Support for IPv6 is started but not fully working yet.
Promiscous mode SOCK_PACKET support for the BSD-socket API. A spin-off from my tcpdump/libpcap project might produce a protected-mode packet-driver API for djgpp/Pharlap/Watcom targets (driver for 3Com's 3C509 is working okay).
A RTP/RTCP module for Realtime (voice/video) applications is planned. PPP-over-Ethernet (PPPoE) encapsulation for xDSL users is underway (contributions are welcome).
Watt-32 supports these compilers and environments:
watt32b 2.2 dev.rel.1 5.3M -- Binaries watt32s 2.2 dev.rel.1 1312k -- Source watt32d 2.1 dev.rel.1 876k -- Docs/RFCs
The binary distribution contains some tools in addition to the one in the original Waterloo package:
archie: | Searches Archie (Prospero) servers for files and directories. Regular expressions is supported. Original design by Clifford Neuman for the Prospero Project, changes by George Ferguson and me. |
dig: | Domain Information Groper; send domain name query packets to name servers. Lists Resource Records, Zone information, SOA, MX-records etc. Developed by: Paul Vixie (DEC), Steve Hotz and Paul Mockapetris (USC-ISI). |
DOS-VNC: | Virtual Network Console allows remote control of Unix or Windows machines from DOS. This port is currently for djgpp only (using Allegro graphics library). Original version by AT&T. Ported to DOS by Marinos J. Yannikos and me. |
fping: | Fast parallell Ping. A tool to quickly ping N number of hosts to determine their reachability without flooding the network. Original version by Roland J. Schemers - Stanford University. |
host: | Send domain name query packets to name servers. Similar to dig, but with tons of options. Original version by Eric Wassenaar. |
ICMP-push: | Another expert tool for sending all kinds of ICMP-packets. Not all of which are fiendly... Done by Slayer. |
MathOpd: | A fast, lightweight, non-forking HTTP server. HTTP/1.0 and HTTP/1.1 compliant, virtual server and CGI support. The server also has a mailing list. Done by Michiel Boland. |
netcat: | A tool for reading and writing arbitrary data using UDP/TCP. Handy for redirecting stdin/stdout across the network. Note:Little tested with Watt-32. Created by hobbit@avian.org. |
NetIO: | A djgpp tool for measuring read/write speed across network. Win32 and OS/2 executables included for comparision and testing other end of connection. Some test results for the Watt-32 version is here. Created by Kai Uwe Rommel. |
NetKalahari: | A simple text-based networked game. It uses PDcurses and is currently only ported to djgpp. Created by Theo Wilhelm and others. |
nslookup: | An interactive DNS tool (similar to host and dig. Originally by Andrew Cherenson (UC Berkeley) and Paul Vixie (DEC). |
popmail: | Simple mail retriever and sender (POP3/SMTP). Can use APOP authentication to login to POP3 server (doesn't send you password in plain-text). Walter A. Nolan wrote it, I added APOP, ISO-8859 charset etc. |
rdate: | Obtain (and set) the time from a time server (UDP or TCP). Originally by Andy Tefft and Richard Henderson. Ported to Watt-32 by Ken Yap. |
syslogd: | Syslog Daemon for logging events/messages from Unix clients. Logs to disk or line-printer. Also synchronizes time with NTP broadcasts sent on LAN. Ported to Watt-32 by Ken Yap. |
suck: | Pulls newsgroups from a NNTP news-server. Accompanying tools sorts and posts articles. Original Authors Tim Smith, Sven Goldt and Robert A. Yetman. |
talk: | A chat client with colour (conio), aliases, old/new BSD-talk protocol, answer mode and logging. Ported to WatTCP by Michael Ringe |
ttcp: | A benchmarking tool for determining TCP and UDP performance between 2 systems. Someone at US Army Ballistics Research Lab (BRL) did this eons ago, but it's still a nice tool. Ported to Watt-32 by Ken Yap. |
vrfy: | Verifies validity of email addresses. Requires MX host to support the VRFY or EXPN commands. Original version by Eric Wassenaar. |
wget: | A very nice utility to retrieve files from servers using HTTP or FTP. By Hrvoje Niksic. |
If your serious about WatTCP or Watt-32 developement, I strongly advice a purchase of the WATTCP Programmers Manual available here.
Comments, Watt-32 bug-fixes and contributions are welcome.
E-mail giva@bgnett.no for comments or
preferably join the Watt-32 mailing list
at URL below.
Watt-32 change.log file is here.
You are visitor number since Feb 9 1999.
Subscribe to the Watt-32
mailing list.