KPETERSEN@SIMTEL20.ARPA (11/09/85)
From: John Nagle <hao!hplabs!fortune!wdl1!jbn@seismo.CSS.GOV> How to Build an Echo Host, and Why One useful device for the network software implementor working without access to a big network is an echo host. An echo host (in the IP world) receives datagrams, interchanges the source and destination IP addresses, recomputes the IP checksum, and sends them out again. This is a useful device to have around. It's a mirror. If you try to make a connection to it, you end up with a connection to yourself. You can exercise protocols with only one copy of your development system yet actually generate traffic over the network hardware. Especially useful are echo hosts that introduce errors and delays. With these, one can find out if your transport protocol really works. There are several echo hosts on the ARPANET; they all have names with "ECHO" in them. You can TELNET or FTP to them, but you end up connected back to yourself. Some of them are far away, and allow testing over satellite links. Some fragment IP datagrams. Some have limited bandwidth. These are good for exercising an implementation. It is left as an exercise to the reader to implement echo host software for the IBM PC, starting from the MIT package. Such a device would be excellent for testing out TCP implementations to make sure that the hard cases really work, especially if error insertion (change one bit in every Nth packet), delay (hold all packets N seconds before returning), and congestion (if more than N packets are in the delay queue, send back a Source Quench and/or drop one) are provided. John Nagle