Next: 29.6 Session Objects
Up: 29.5 Loss Recovery Objects
Previous: 29.5.0.0.2 Repair Mechanisms
The agent, in concert with the request and repair objects,
collect statistics about their response to data loss [#!Floy95:Reliable!#].
Each call to the agent []request procedure marks a new period.
At the start of a new period,
[]mark-period../ns-2/srm.tclAgent/SRM::mark-period
computes the moving average of the number of duplicates in the last period.
Whenever the agent receives a first round request from another agent,
and it had sent a request in that round, then it considers the request
as a duplicate request, and increments the appropriate counters.
A request object does not consider duplicate requests if it did not
itself send a request in the first round.
If the agent has a repair object pending, then it does not consider
the arrival of duplicate requests for that packet.
The object methods
[]SRM/request::dup-request?../ns-2/srm.tcl
SRM/request::dup-request? and
[]SRM/repair::dup-request?../ns-2/srm.tcl
SRM/repair::dup-request?
encode these policies, and return 0 or 1 as required.
A request object also computes the elapsed time between
when the loss is detected to when it receives the first request.
The agent computes a moving average of this elapsed time.
The object computes the elapsed time (or delay) when it
cancels../ns-2/srm.tclSRM/request::cancel
its scheduled event for the first round.
The object invokes
Agent/SRM::update-ave../ns-2/srm.tclAgent/SRM::update-ave
to compute the moving average of the delay.
The agent keeps similar statistics of the duplicate repairs,
and the repair delay.
The agent stores the number of rounds taken for one loss recovery,
to ensure that subsequent loss recovery phases for that packet
that are not definitely not due to data loss
do not account for these statistics.
The agent stores the number of routes taken for a phase in
the array old_.
When a new loss recovery object is instantiated,
the object will use the agent's instance procedure
[]round?../ns-2/srm.tclAgent/SRM::round?
to determine the number of rounds in a previous loss recovery phase
for that packet.
Next: 29.6 Session Objects
Up: 29.5 Loss Recovery Objects
Previous: 29.5.0.0.2 Repair Mechanisms
2000-08-24