37.2 Architecture and Internals
The SRM agent implementation splits the protocol functions
into packet handling, loss recovery, and session message activity.
- Packet handling consists of forwarding application data messages,
sending and receipt of control messages.
These activities are executed by C++ methods.
- Error detection is done in C++ due to receipt of messages.
However, the loss recovery is entirely done through
instance procedures in OTcl.
- The sending and processing of messages is accomplished in C++;
the policy about when these messages should be sent is decided
by instance procedures in OTcl.
We first describe the C++
processing due to receipt of messagesSectionsec:receipt.
Loss recovery and the sending of session messages involves
timer based processing.
The agent uses a separate SRM../ns-2/srm.tcl
to perform the timer based functions.
For each loss, an agent may do either request or repair processing.
Each agent will instantiate a separate loss recovery object
for every loss, as is appropriate for the processing that it has to do.
In the following section
we describe the basic timer based functions and
the loss recovery mechanismsSectionsec:recovery.
Finally, each agent uses one timer based function
for sending periodic session messagesSectionsec:session.
Tom Henderson
2011-11-05