Send "corrected" timestamps to better calculate RTT
This commit is contained in:
+5
-3
@@ -54,9 +54,11 @@ Packet Connection::new_packet( string &s_payload )
|
||||
{
|
||||
uint16_t outgoing_timestamp_reply = -1;
|
||||
|
||||
if ( timestamp() - saved_timestamp_received_at < 25 ) {
|
||||
/* we have a recent received timestamp */
|
||||
outgoing_timestamp_reply = saved_timestamp;
|
||||
uint64_t now = timestamp();
|
||||
|
||||
if ( now - saved_timestamp_received_at < 1000 ) { /* we have a recent received timestamp */
|
||||
/* send "corrected" timestamp advanced by how long we held it */
|
||||
outgoing_timestamp_reply = saved_timestamp + (now - saved_timestamp_received_at);
|
||||
saved_timestamp = -1;
|
||||
saved_timestamp_received_at = 0;
|
||||
}
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ TransportSender<MyState>::TransportSender( Connection *s_connection, MyState &in
|
||||
template <class MyState>
|
||||
unsigned int TransportSender<MyState>::send_interval( void )
|
||||
{
|
||||
int SEND_INTERVAL = lrint( ceil( (connection->get_SRTT() - ACK_DELAY) / 2.0 ) );
|
||||
int SEND_INTERVAL = lrint( ceil( connection->get_SRTT() / 2.0 ) );
|
||||
if ( SEND_INTERVAL < SEND_INTERVAL_MIN ) {
|
||||
SEND_INTERVAL = SEND_INTERVAL_MIN;
|
||||
} else if ( SEND_INTERVAL > SEND_INTERVAL_MAX ) {
|
||||
|
||||
Reference in New Issue
Block a user