# HG changeset patch # User meillo@marmaro.de # Date 1233138419 -3600 # Node ID c42c49f332281817494b44a060f32afb318866a0 # Parent fa5fb3b77cc84afff31b950d4657e36bbb578402 moved a figure to a different place diff -r fa5fb3b77cc8 -r c42c49f33228 thesis/tex/5-Improvements.tex --- a/thesis/tex/5-Improvements.tex Wed Jan 28 11:26:32 2009 +0100 +++ b/thesis/tex/5-Improvements.tex Wed Jan 28 11:26:59 2009 +0100 @@ -405,14 +405,6 @@ Left is only communication between the receiver modules and \name{queue-in}, and between \name{queue-out} and the transport modules. Data is exchanged using \unix\ pipes and a simple protocol. Figure \ref{fig:ipc-protocol} shows a state diagram for the protocol. Solid lines indicate client actions, dashed lines indicate server responses. -\begin{figure}[hbt] - \begin{center} - \includegraphics[scale=0.75]{img/ipc-protocol.eps} - \end{center} - \caption{State diagram of the \NAME{IPC} protocol} - \label{fig:ipc-protocol} -\end{figure} - \paragraph{Timing} One dialog consists of exactly three phases: connection attempt, envelope and header transfer, and transfer of the message body. The order is always the same. The three phases are all initiated by the client process; after each phase the server process sends a success or error reply. Timeouts for each phase need to be implemented. @@ -421,6 +413,14 @@ The client indicates the end of each data transfer with a special terminator sequence. The appearance of this terminator sequence tells the server process that the data transfer is complete and makes the server send a reply. The server process takes responsibility of the data in sending a success reply. A failure reply immediately stops the dialog and resets both client and server to the state before the connection attempt. +\begin{figure} + \begin{center} + \includegraphics[scale=0.75]{img/ipc-protocol.eps} + \end{center} + \caption{State diagram of the \NAME{IPC} protocol} + \label{fig:ipc-protocol} +\end{figure} + \paragraph{Syntax} Data transfer is done by sending plain text data. \name{Line Feed}---the native line separator on \unix---is used as line separator. The terminator sequence used to indicate the end of the data transfer is the \NAME{ASCII} \name{null} character (`\texttt{\textbackslash0}'). Replies are one-digit numbers with `\texttt{0}' meaning success and any other number (`\texttt{1}'--`\texttt{9}') indicate failure.