next up previous contents index
Next: 29.6 Session Objects Up: 29.5 Loss Recovery Objects Previous: 29.5.0.0.2 Repair Mechanisms

29.5.0.0.3 Mechanisms for Statistics

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 up previous contents index
Next: 29.6 Session Objects Up: 29.5 Loss Recovery Objects Previous: 29.5.0.0.2 Repair Mechanisms

2000-08-24