diff --git a/network.cpp b/network.cpp index b1b4406..fa6b6be 100644 --- a/network.cpp +++ b/network.cpp @@ -210,20 +210,18 @@ string Connection::recv( void ) assert( now >= p.timestamp_reply ); double R = now - p.timestamp_reply; - if ( R > 5000 ) { /* cap large values, e.g. server was Ctrl-Zed */ - R = 5000; - } + if ( R < 5000 ) { /* ignore large values, e.g. server was Ctrl-Zed */ + if ( !RTT_hit ) { /* first measurement */ + SRTT = R; + RTTVAR = R / 2; + RTT_hit = true; + } else { + const double alpha = 1.0 / 8.0; + const double beta = 1.0 / 4.0; - if ( !RTT_hit ) { /* first measurement */ - SRTT = R; - RTTVAR = R / 2; - RTT_hit = true; - } else { - const double alpha = 1.0 / 8.0; - const double beta = 1.0 / 4.0; - - RTTVAR = (1 - beta) * RTTVAR + ( beta * fabs( SRTT - R ) ); - SRTT = (1 - alpha) * SRTT + ( alpha * R ); + RTTVAR = (1 - beta) * RTTVAR + ( beta * fabs( SRTT - R ) ); + SRTT = (1 - alpha) * SRTT + ( alpha * R ); + } } } diff --git a/networktransport.hpp b/networktransport.hpp index fc34736..ca5bcb2 100644 --- a/networktransport.hpp +++ b/networktransport.hpp @@ -48,9 +48,9 @@ namespace Network { class Transport { private: - static const int SEND_INTERVAL = 20; /* ms between frames */ + static const int SEND_INTERVAL = 50; /* ms between frames */ static const int ACK_INTERVAL = 1000; /* ms between empty acks */ - static const int HEADER_LEN = 100; + static const int HEADER_LEN = 120; /* helper methods for tick() */ void update_assumed_receiver_state( void );