% $RCSfile: confounder.tex,v $
%
% $Revision: 1.1 $
% $Date: 1995/07/28 21:15:40 $
%

\protspec{CONFOUNDER}{CONFOUNDER}
\index{confounder}
\label{CONFOUNDER}

\input cryptDist

\topic{SPECIFICATION}

\noindent
The CONFOUNDER protocol prepends a 4 byte pseudo-random number to the
front of each outgoing packet.  It pops (and discards) 4 bytes from
the front of each incoming packet.


\topic{REALM}

CONFOUNDER is in the ASYNC realm.


\topic{PARTICIPANTS}

CONFOUNDER passes participants to the lower protocols without manipulating them.


\topic{CONTROL OPERATIONS}

CONFOUNDER recognizes the following control operations; all others are passed
unchanged to the lower protocol or session.

GETMAXPACKET and GETOPTPACKET:  The packet size returned by the lower
protocol/session is diminished by 4, and passed upward.

IP\_PSEUDOHDR:  This control operation turns on the IP pseudoheader
length-fixup flag, either for a session or the entire protocol.
The control operation is also passed to the lower session or protocol.
See IP (page~\pageref{IP}) for an explanation of this kludge.


\topic{CONFIGURATION}

CONFOUNDER expects to be configured on top of a transport protocol.
The transport protocol must
preserve packet boundaries (i.e. CONFOUNDER will not work on top of TCP).

Example of a graph.comp file:
\begin{verbatim}
---------------------------------
@;
name=simeth/0;
name=eth protocols=simeth/0;
name=arp protocols=eth;
name=vnet protocols=eth,arp;
name=ip protocols=vnet;
name=confounder protocols=ip;
name=udp protocols=confounder;
@;
prottbl = ../../../etc/prottbl.nonstd;
---------------------------------
\end{verbatim}


\topic{RESTRICTIONS}

CONFOUNDER always generates the same sequence of pseudo-random numbers.


\topic{AUTHORS}

\noindent Hilarie Orman and Richard Schroeppel

