3

Assume two peers Alice and Bob connected over a IP network. Alice and Bob are exchanging packets of lossy compressed data which are generated and to be consumes in real time (think a VoIP or video chat application). The service is designed to cope with as little bandwidth available, but relies on low latencies. Alice and Bob would mark their connection with an apropriate QoS profile.

Alice and Bob want use a variable bitrate compression and would like to consume all of the leftover bandwidth available for the connection between them, but would voluntarily reduce the consumed bitrate depending on the state of the network. However they'd like to retain a stable link, i.e. avoid interruptions in their decoded data stream caused by congestion and the delay until the bandwidth got adjusted. However it is perfectly possible for them to loose a few packets.

TL;DR: Alice and Bob want to implement a VoIP protocol from scratch, and are curious about bandwidth and congestion control.

What papers and resources do you suggest for Alice and Bob to read? Mainly in the area of bandwidth estimation and congestion control.

Charles
  • 50,943
  • 13
  • 104
  • 142
datenwolf
  • 159,371
  • 13
  • 185
  • 298

1 Answers1

1

Start here:

Google this: TCP congestion avoidance algorithm

and this: rfc2581 and this: tcp slow start and this: tcp fast recovery

That is assuming you are using TCP.

You can get ideas for solving your problem from those articles. Maybe check out iproute2 or traffic generators that can also be used to introduce latency. The code might open up some ideas for you.

I hope that this helps.

  • Thanks, I know about those. But congestion control is actually not the problem. My problem is related to QoS and adaptive bandwidth control, and more importantly the interaction with other users of the available bandwidth. So say I ramp up the consumed bandwidth on my side: This – datenwolf Mar 23 '12 at 11:22