[Sumover-dev] [svn commit] r4271 - vic/branches/cc/cc
sumover-dev at cs.ucl.ac.uk
sumover-dev at cs.ucl.ac.uk
Thu Aug 14 14:44:28 BST 2008
Author: soohyunc
Date: Thu Aug 14 14:44:27 2008
New Revision: 4271
Modified:
vic/branches/cc/cc/tfwc_sndr.cpp
vic/branches/cc/cc/tfwc_sndr.h
Log:
o sampled RTT issue resolved
Modified: vic/branches/cc/cc/tfwc_sndr.cpp
==============================================================================
--- vic/branches/cc/cc/tfwc_sndr.cpp (original)
+++ vic/branches/cc/cc/tfwc_sndr.cpp Thu Aug 14 14:44:27 2008
@@ -119,29 +119,27 @@
else if (type == XR_BT_3) {
ntep_++; // number of ts echo packet received
ts_echo_ = ts_echo;
-
- tao_ = now_ - ts_echo_;
debug_msg(" ts echo: %d\n", ts_echo_);
+
+ tao_ = (double)(tfwc_sndr_now() - ts_echo_)/1000000;
// update RTT
update_rtt(tao_);
}
}
-void TfwcSndr::update_rtt(u_int32_t tao) {
+void TfwcSndr::update_rtt(double rtt_sample) {
- // double dtao = double(tao); // convert to a real number
- double dtao;
-
+ // calculate smoothed RTT
if (srtt_ < 0) {
// the first RTT observation
- srtt_ = dtao;
- rttvar_ = dtao/2.0;
- sqrtrtt_ = sqrt(dtao);
+ srtt_ = rtt_sample;
+ rttvar_ = rtt_sample/2.0;
+ sqrtrtt_ = sqrt(rtt_sample);
} else {
- srtt_ = df_ * srtt_ + (1 - df_) * dtao;
- rttvar_ = rttvar_ + beta_ * (fabs(srtt_ - dtao) - rttvar_);
- sqrtrtt_ = df_ * sqrtrtt_ + (1 - df_) * sqrt(dtao);
+ srtt_ = df_ * srtt_ + (1 - df_) * rtt_sample;
+ rttvar_ = rttvar_ + beta_ * (fabs(srtt_ - rtt_sample) - rttvar_);
+ sqrtrtt_ = df_ * sqrtrtt_ + (1 - df_) * sqrt(rtt_sample);
}
// update the current RTO
Modified: vic/branches/cc/cc/tfwc_sndr.h
==============================================================================
--- vic/branches/cc/cc/tfwc_sndr.h (original)
+++ vic/branches/cc/cc/tfwc_sndr.h Thu Aug 14 14:44:27 2008
@@ -116,10 +116,11 @@
u_int32_t ts_; // time stamp
u_int32_t ts_echo_; // echo time stamp from the receiver
u_int32_t *tsvec_; // timestamp vector
- u_int32_t tao_; // sampled RTT
+ double tao_; // sampled RTT
private:
// update RTT
- void update_rtt(u_int32_t tao); // update RTT
+ void update_rtt(double tao); // update RTT
+
u_int16_t last_ack_; // last packet seqno from ackvec
int ndtp_; // number of data packet sent
int nakp_; // number of ackvec packet received
More information about the Sumover-dev
mailing list