Project

General

Profile

Feature #4362

Updated by Anonymous almost 7 years ago

Routers should be able to detect congestion by measuring their queue (either backlog size, or queuing delay). 

 This congestion measurement should then be used to signal consumers by putting congestion marks into packets (#3797). 

 In our Hackathon project we figured out, that we can use the **ioctl** command TIOCOUTQ to receive the buffer backlog size of all three socket types: TCP, UDP, and unix sockets. 

 The current design includes: 

 - Check if buffer is above *THRESHOLD* THRESHOLD = MAX_BUF_SIZE / 3 (defaults to 200KB / 3) 
 - Use some default *INTERVAL* as rough estimation of RTT (default: 100ms) 
 - If buffer > THRESHOLD for at least one INTERVAL -> Insert first congestion mark into packet.  
 - As long as the buffer stays above THRESHOLD: threshold: Mark the following packets in a decreasing interval, described in the CoDel paper (start at INTERVAL 100ms then decrease by inverse sqrt(drops) )  

Back