Site menu Dissertação de Mestrado

Dissertação de Mestrado

Teste de performance SCTP - interface de loopback

Cenário: computador SOLDIER em loopback

Vazão em função do tamanho da mensagem

Protocolo10100100010000
Unix8900938707186022452172
UnixM498043640218084438726
TCP116441153206435221030614
TCPM180216030128220265872
SCTP138415842108626228040
SCTP estilo UDP133415584109066228040
SCTP estilo UDP v.213441316098902282236

Tamanho da mensagem em bytes, vazões em kbps (1kbps = 1000 bits/s).

O desempenho do TCP é muito maior que SCTP, o que não é uma surpresa, pois SCTP tem muito mais overhead: separação de mensagens, CRC-32c, cópias memória-memória para processamento, duas trocas de contexto por mensagem.

Porém quando se usa TCPM e UNIXM, o desempenho de ambos fica muito parecido com SCTP. A separação de mensagens tem um peso surpreendentemente alto.

Os testes com soquetes UNIX foram incluídos apenas por completeza. Interessante notar que o TCP é mais rápido que soquete UNIX para pequenas mensagens!

Um teste não mostrado nesta tabela é o SCTP sem checksum CRC-32c. Normalmente reputado como grande responsável pelo desempenho inferior do SCTP, o desligamento do CRC-32c melhora a vazão em apenas 10-15%.

Latência em função do tamanho da mensagem

Protocolo10100100010000
UnixM18,518,527,0104,0
TCPM26,528,534,0112,5
SCTP52,052,572,5265,5
SCTP estilo UDP52,554,573,5267,0
SCTP estilo UDP v.252,055,575,0266,0

Tamanho da mensagem em bytes, latência em µs

Com as diversas latências serializadas, o SCTP foi duas vezes mais lento que o TCPM. A biblioteca lksctp-tools não tem culpa nenhuma do problema; a latência adicional reside mesmo no kernel.

O uso de API estilo TCP ou UDP não influencia sensivelmente na performance do SCTP.

Vazão e latência em função do número de fluxos

Foram utilizadas mensagens de 100 bytes de tamanho. Como mostram os gráficos, vazão e latência são os mesmos independentemente do número de fluxos utilizados na associação SCTP.