Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site wdl1.UUCP
Path: utzoo!linus!philabs!cmcl2!seismo!hao!hplabs!fortune!wdl1!jbn
From: jbn@wdl1.UUCP
Newsgroups: net.dcom
Subject: How and Why to build an Echo Host
Message-ID: <833@wdl1.UUCP>
Date: Thu, 7-Nov-85 01:14:27 EST
Article-I.D.: wdl1.833
Posted: Thu Nov  7 01:14:27 1985
Date-Received: Sat, 9-Nov-85 06:39:17 EST
Sender: notes@wdl1.UUCP
Organization: Ford Aerospace, Western Development Laboratories
Lines: 31
Nf-ID: #N:wdl1:11700028:000:1576
Nf-From: wdl1!jbn    Nov  6 19:50:00 1985


      		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