-1

I currently have the problem, that when a LOT of RTP streams (>800) go to one server the max. speed is onlynabout 70-80 Mbit (on a Gigabit LAN - all Hardware components are Gigabit components) 130 byte payload - with large payload everything is fine (700 Mbit+ in local network).

I am looking for some explanations for this behaviour (Header Overhead is one) and for guides/know-how on how to optimize network components (NICs, swichtes, ...) for RTP and/or a small packages sizes.

Would be great if someone can help - I will post my findings here as well.

Thx a lot

pinas
  • 171
  • 1
  • 1
  • 5
  • You kind of didn't tell us what your question is about. What software are you using? What hardware are you using? How are you measuring? What does your CPU load look like? – David Schwartz Nov 01 '14 at 23:16

2 Answers2

1

The Freeswitch Wiki gives several tips, including reducing RX and TX buffers to avoid bufferbloat, and tring different TCP congestion control algorithms.

Over at protocols.com there are a lot of good general tips, and the thing you can probably do the most is send larger packets less often to reduce overhead.

I don't know much about RTP, but if you are using TCP then either experiment turning off options you don't need, or switch to UDP. I'm not usually a fan of disabling TCP Timestamps but this may be one of the times it's valid.

QoS RTP all through your network so it gets priority. Inspect the traffic as little as possible, if you can do L2 QoS that might theoretically be quicker than L3 QoS as there are less layers involved, though switches are made to do all that in hardware so it's unlikely the switches will be the bottleneck.

suprjami
  • 3,476
  • 20
  • 29
0

The extra bits of capacity needed on the wire for headers is often not the limiting factor. There is a different reason why small packets is inefficient.

Each node that will be forwarding the packet will do some per packet processing in order to find out which interface it is to be forwarded on and possibly update checksums.

This means the hardware will have a limitation not only in the number of bits per second, but also in the number of packets per second. Dividing those two numbers by each other will give you the packet size at which the two factors will give you the same limit.

This number will usually be much higher than a few hundred bytes. As long as the full wire bandwidth can be utilized with large packets less attention is payed to performance with small packets. This is in part due to marketing focusing on bits per second rather than packets per second.

kasperd
  • 29,894
  • 16
  • 72
  • 122