Data Packets

The agent does not generate any data messages. The user has to specify an external agent to generate traffic. The []recv method must distinguish between locally originated data that must be sent to the multicast group, and data received from multicast group that must be processed. Therefore, the application agent must set the packet's destination address to zero.

For locally originated data, the agent adds the appropriate SRM headers, sets the destination address to the multicast group, and forwards the packet to its target.

On receiving a data message from the group, [sender, msgid]recv_data../ns-2/srm.ccSRMAgent::recv_data will update its state marking message sender, msgid received, and possibly trigger requests if it detects losses. In addition, if the message was an older message received out of order, then there must be a pending request or repair that must be cleared. In that case, the compiled object invokes the OTcl instance procedure, [sender, msgid]recv-data../ns-2/srm.tclAgent/SRM::recv-data37.2.

Currently, there is no provision for the receivers to actually receive any application data. The agent does not also store any of the user data. It only generates repair messages of the appropriate size, defined by the instance variable packetSize_. However, the agent assumes that any application data is placed in the data portion of the packet, pointed to by packet-accessdata().

Tom Henderson 2011-11-05