Project

General

Profile

Actions

Feature #4362

closed

Feature #1624: Design and Implement Congestion Control

Congestion detection by observing socket queues

Added by Anonymous about 7 years ago. Updated almost 7 years ago.

Status:
Closed
Priority:
High
Assignee:
Category:
Faces
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:

Description

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 = 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: Mark the following packets in a decreasing interval, described in the CoDel paper (start at INTERVAL then decrease by inverse sqrt(drops) )

Files

retreat_cc_final_2017.pdf (249 KB) retreat_cc_final_2017.pdf Anonymous, 12/18/2017 02:45 PM

Related issues 1 (0 open1 closed)

Related to NFD - Bug #4407: Large queuing delay in stream-based facesClosed

Actions
Actions

Also available in: Atom PDF