NS-3 based Named Data Networking (NDN) simulator
ndnSIM: NDN, CCN, CCNx, content centric networks
API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
ndn-rtt-mean-deviation.h
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 //
3 // Copyright (c) 2006 Georgia Tech Research Corporation
4 // (c) 2013 University of Arizona
5 // (c) 2013 University of California, Los Angeles
6 //
7 // This program is free software; you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License version 2 as
9 // published by the Free Software Foundation;
10 //
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
15 //
16 // You should have received a copy of the GNU General Public License
17 // along with this program; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 //
20 // Author: Rajib Bhattacharjea<raj.b@gatech.edu>
21 // Cheng Yi <yic@email.arizona.edu>
22 // Alexander Afanasyev <alexander.afanasyev@ucla.edu>
23 //
24 
25 // Georgia Tech Network Simulator - Round Trip Time Estimation Class
26 // George F. Riley. Georgia Tech, Spring 2002
27 
28 
29 #ifndef NDN_RTT_MEAN_DEVIATION_H
30 #define NDN_RTT_MEAN_DEVIATION_H
31 
32 #include <ns3/ndnSIM/utils/ndn-rtt-estimator.h>
33 
34 namespace ns3 {
35 namespace ndn {
36 
48 public:
49  static TypeId GetTypeId (void);
50 
53 
54  virtual TypeId GetInstanceTypeId (void) const;
55 
56  void SentSeq (SequenceNumber32 seq, uint32_t size);
57  Time AckSeq (SequenceNumber32 ackSeq);
58  void Measurement (Time measure);
59  Time RetransmitTimeout ();
60  Ptr<RttEstimator> Copy () const;
61  void Reset ();
62  void Gain (double g);
63 
64 private:
65  double m_gain; // Filter gain
66  double m_gain2; // Filter gain
67  Time m_variance; // Current variance
68 };
69 
70 } // namespace ndn
71 } // namespace ns3
72 
73 #endif // NDN_RTT_MEAN_DEVIATION
void Measurement(Time measure)
Add a new measurement to the estimator.
Time RetransmitTimeout()
Returns the estimated RTO.
Time AckSeq(SequenceNumber32 ackSeq)
Note that a particular ack sequence has been received.
void SentSeq(SequenceNumber32 seq, uint32_t size)
Note that a particular sequence has been sent.
void Reset()
Resets the estimation to its initial state.
The modified version of "Mean--Deviation" RTT estimator, as discussed by Van Jacobson that better sui...
Base class for all RTT Estimators.