Uninformed: Informative Information for the Uninformed

Vol 8» 2007.Sep



Control Messages

Figure [*] below describes the format of SteganRTP control messages. Control messages are used to send non-user data to the remote SteganRTP application to convey operational information such as requesting a message resend or indicating that a file is about to be sent and providing that file's context information. Control messages consist of one or more stacked TLV structures and are not required to be 32-bit aligned.

Figure: SteganRTP control message format.
\begin{figure}\begin{center}
\begin{verbatim}0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 ...
...-+-+-+-+-+-+-+-+-+-+-+-+ \vert
! !
. .\end{verbatim}
\end{center}\end{figure}

The 8-bit Control Type field indicates the type of control data contained in the TLV structure whereas the 8-bit Length field indicates the size, in bytes, of the Value field. The Value field contains the control data of the indicated type.

Control Message Types

The currently defined control message types are listed in Table [*] below.


Table: SteganRTP Control Message Types
ID Type
0 Reserved
1 Echo Request
2 Echo Reply
3 Resend
4 Start File
5 End File


Type 1: Echo Request

The Echo Request control message is used to prompt the remote SteganRTP application for a response, allowing the local application making the request to determine if the remote application is still present and communicating. This message is sent when a session inactivity timeout limit is approaching. Figure [*] below describes the format of an Echo Request control message.

Figure: SteganRTP Echo Request control message.
\begin{figure}\begin{center}
\begin{verbatim}0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 ...
...-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\end{verbatim}
\end{center}\end{figure}

The Control Type field's value is 1, indicating that it is an Echo Request control message, and the Length field's value is 2, indicating the 2-byte control message payload. The control message payload consists of an 8-bit Seq field which contains a standard incrementing sequence number specific to Echo Requests, and an 8-bit Echo Request Payload, which contains a random bit-string. The Seq value is used to correlate sent Echo Request messages with received Echo Reply messages and the Payload field received in an Echo Reply message must match the random bit-string sent in its corresponding Echo Request message.

Type 2: Echo Reply

The Echo Reply control message is used to respond to the remote SteganRTP application's Echo Request message. The format of the Echo Reply message is identical to the Echo Request message as described in [*] above, however the Control Type field's value is 2 rather than 1.

Type 3: Resend

The Resend control message is used to request the resending of a specified message by the remote SteganRTP application, allowing the local application to request missing or corrupted messages. This message is sent when the application begins to receive messages which contain sequence numbers beyond the next sequence number that is expected. Figure [*] below describes the format of a Resend control message.

Figure: SteganRTP Resend control message.
\begin{figure}\begin{center}
\begin{verbatim}0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 ...
...-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\end{verbatim}
\end{center}\end{figure}

The Control Type field's value is 3, indicating that it is a Resend control message, and the Length field's value is 2, indicating the 2-byte control message payload. The control message payload consists of a 16-bit Requested Seq Number field which indicates the sequence number of the message to be resent.

Type 4: Start File

The Start File control message is used to indicate to the remote application that that local application will begin sending file data for a new file transfer. This message is sent when the user executes the command to transfer a file. Figure [*] below describes the format of a Start File control message.

Figure: SteganRTP Start File control message.
\begin{figure}\begin{center}
\begin{verbatim}0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 ...
...+-+ \vert
\vert Filename \vert
! !
. .\end{verbatim}
\end{center}\end{figure}

The Control Type field's value is 4, indicating that it is a Start File control message, and the Length field's value is 1 plus the string length, in bytes, of the filename of the file being sent, indicating the total size of the control message payload. The control message payload consists of an 8-bit File ID field which indicates the sending application's unique ID value for the file, and the Filename field is the name of the file being sent in ASCII.

Type 5: End File

The End File control message is used to indicate to the remote application that that local application is finished sending file data for a particular file transfer. This message is sent when the local application has finished sending all data related to the open file descriptor being used to send data from a file. Figure [*] below describes the format of a End File control message.

Figure: SteganRTP End File control message.
\begin{figure}\begin{center}
\begin{verbatim}0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 ...
...-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\end{verbatim}
\end{center}\end{figure}

The Control Type field's value is 5, indicating that it is a End File control message, and the Length field's value is 1, indicating the 1-byte control message payload. The control message payload consists of an 8-bit File ID field which indicates the sending application's unique ID value for the file who's transfer is now complete.