Master Dissertation

SCTP performance test - 100Mbps network with variable loss

Scenario: COP as server, SOLDIER as client, Ethernet 100Mbps with variable packet loss. Messages of 500 bytes.

Throughput - variation of packet loss

Protocol0%0,1%1%3%10%
TCPM90596788465787623396878
SCTP60773568345703046438852

Packet loss in %, throughput in kbps (1kbps = 1000 bits/s).

With moderate losses (1% to 3%), SCTP could surpass TCPM, possibly helped by the bidirectional data flow created by this test, which allowed the stronger SCTP SACK to perform the best.

In latency test, the lack of continuous bidirectional traffic prevented SACK from working properly.

Latency - variation of packet loss

Protocol0%0,1%1%3%10%
TCPM281,0483,95190,014418,567097,0
SCTP318,51920,024662,082718,0671100,5

Packet loss in %, latency in µs

Among all tests, this was the worst SCTP result, due to a combination of factors:

In the first test, that supplied data for dissertation and the above graphic, adjusting the minium RTO did not suffice: traffic began fast but ended stalling and converging to a very low speed.

In a second test, run after dissertation concluded, adjust of minimum RTO solved the problem and SCTP showed performance close to TCPM in lossy network scenarios. This weakens the hypothesis of Linux TCP congestion control being inherently better than LK-SCTP's.

Still, some doubt remainders about an eventual instability of SCTP congestion control (which would change its behaviour randomly), or about some mistake committed during our first tests.

If SCTP congestion control has no bugs, still the LK-SCTP implementation should consider lowering default RTO parameters, since most users never try to do any network tuning, would simply blame LK-SCTP, or SCTP itself, when faced with low performances.

blog comments powered by Disqus