Vous êtes sur la page 1sur 33

Aplicabilidade e

desempenho do protocolo
de transporte SCTP
(Stream Control
Transmission Protocol)
Aluno: Elvis Pftzenreuter
Orientador: Prof. Luis Fernando Friedrich
Mas, para que outro protocolo
de transporte?
TCP: transmisso confivel de bytes
UDP: transmisso no confivel de datagramas
Transmisso confivel de mensagens atmicas?
Modulao da confiabilidade?
Vrios canais ou fluxos por conexo?
IP / IPv6
TCP UDP ???
Enlace
Histria do SCTP
Comit SIGTRAN foi encarregado de procurar um
transporte para SS7
MDTP (Multinetwork Datagram Transmission
Protocol): protocolo sobre UDP que atendia os
requisitos do SIGTRAN
Evoluiu at tornar-se o SCTP, que foi promovido a
protocolo de transporte
IP / IPv6
UDP
MDTP
IP / IPv6
UDP
SCTP
IP / IPv6
SCTP
Associaes e fluxos (streams)
Associao SCTP: anloga conexo TCP
Fluxos: canais unidirecionais para envio de
mensagens (at 65.536 por direo)
Nmero de fluxos negociado na criao da
associao
Terminal
Terminal
Fluxos
Mensagens atmicas
Transmitidas e recebidas de forma indivisvel pelas
aplicaes
Podem ser maiores que um datagrama (se a
implementao permitir)
Aplicao pode ignorar as fronteiras das
mensagens
A ordem de entrega das mensagens respeitada
apenas dentro de cada fluxo (evita HOL Blocking)
Fluxos
Msg #1 Msg #2 Msg #3 Msg #4
Msg #1 Msg #2 Msg #3
perdida
Msg #3 Msg #3
aguardam retransmisso
msg #1
Confiabilidade parcial
Mensagens fora de ordem ou urgentes
Mensagens com prazo de validade
E as mensagens no confirmadas?
Extenso PR-SCTP (Partial Reliability SCTP):
baseia-se no prazo de validade
Todas podem conviver no mesmo fluxo
Msg #1 Msg #2 urgente Msg #3
perdida
Aguarda
retransmiss
o
#1
Entregue
assim que
chegar
Multicaminhos
Computador multi-homed: ligado por dois ou mais
caminhos a uma rede ou inter-rede TCP/IP
Fail-over automtico, pode ser assimtrico
Balanceamento de carga (extenso RivuS)
Redundncia de rede barata na Internet, sem
precisar ser um AS (Autonomous System)
Terminal
Terminal
Inter-rede
(e.g. Internet)
Outros detalhes do SCTP
Abertura da associao sem estado meio-aberto,
imune a ataques blind spoof e SYN flood
Checksum de 32 bits (CRC32c)
Controle de congestionamento igual a TCP
Estruturas TLV ao invs de bitmaps e campos fixos
API BSD Sockets: estilo TCP e estilo UDP
Tipo Comprimento Valor
Tipo (8b) Flags (8b) Valor - alinhado em 32 bits Comprimento (16b)
Objetivos deste trabalho
Achar oportunidades de uso do SCTP
em lugar de TCP e UDP, para protocolos
de aplicao preexistentes
Testes de desempenho bruto
Testes de desempenho com protocolos
e aplicaes reais (HTTP, SMB, RTP)
Oferecer exemplos de uso da API
Sockets com SCTP (softwares novos ou
adaptados)
Feedback aos mantenedores
Aplicabilidade do SCTP
Em lugar de TCP
Mensagens indivisveis
Mltiplas conexes ou fluxos paralelos
Segurana melhorada
Multicaminhos
Em lugar de UDP
SCTP no possui *cast
Multimdia em tempo real (onde TCP tem
sido aplicado)
Desempenho SCTP x TCP
Implementaes utilizadas: SCTP e TCP presentes
no kernel Linux 2.6.9 padro
Validade dos testes
Testes de latncia e vazo, com todas as garantias
TCPM e UNIXM: protocolos de aplicao para
simples separao de mensagens em TCP e UNIX
Byte 0xEE Mensagem til byte 0xFF
Protocolo de aplicao TCPM
IP / IPv6
TCP SCTP
TCPM
Testes aplicados nestes pontos
Loopback - vazo
Varivel: tamanho da mensagem
TCP: desempenho muito superior a
SCTP (9x a 4x)
CRC-32c (no o grande problema)
Separao de mensagens
Cpias memria-memria
Trocas de contexto
Comparao injusta
Sobrecarga TLV
TCPM: vazo semelhante a UNIXM e
SCTP
Loopback latncia
Varivel: tamanho da mensagem
Latncia SCTP 2x maior que TCPM
Serializao das diversas latncias
Biblioteca lksctp-tools no culpada
Latncia reside no kernel
100Mbps
Varivel: tamanho da mensagem
Vazo do SCTP abaixo de TCP e TCPM
(at 10x para mensagem de 10 bytes)
Chunk bundling imperfeito
Diferena estreita conforme aumenta o
tamanho da mensagem (1000 bytes em
diante)
Latncia do SCTP 25% maior que TCPM
(parcialmente mascarada pela rede)
Prximos testes usam mensagens de 500 bytes
100Mbps, perda 0% a 10%
Vazo do SCTP maior que TCPM para
perdas >1%
SACK do SCTP foi eficiente
Latncia do SCTP pssima para perdas
>1%
RTO mnimo e RTO inicial muito altos
(1000ms) (podem ser mudados)
Controle de congestionamento clssico
Novo teste sugere que bastaria tuning
Continua sob suspeita
Verificar melhorias do TCP
10Mbps
latncia de 5ms a 300ms
Vazo do SCTP 15% menor que TCPM
Vazo de ambos cai, e a diferena
estreita, conforme aumenta a latncia de
rede
Causa: buffer de recepo no ajustado
Latncia TCPM essencialmente igual a
SCTP (seguem o RTT)
10Mbps
latncia 5ms a 300ms
perda 1%
Vazo SCTP 27% menor que TCP
Latncia SCTP 2x maior que TCP
Ambas as diferenas estreitam conforme
aumenta a latncia de rede
Buffer de recepo no ajustado
RTO mnimo padro muito alto (j
citado)
1Mbps latncia 50ms
Latncia 50ms +/- 25ms correlao 50%
Duplicao 1%
Perdas variveis no shaping 1Mbps
Sem perdas constantes
Vazo SCTP 8% menor
Latncia SCTP 9% maior
RTO mnimo padro SCTP muito alto
Teste com perda constante 0,1%: no
provoca mudana significativa
11Mbps wireless ad-hoc
Dois segmentos de rede no caminho
802.11 e Ethernet
Vazo combinada real: 3Mbps
Qualidade do sinal propositadamente ruim
Vazo SCTP 25% menor
Latncia SCTP 22% maior
Dois clientes 100Mbps
Clientes fortes contra servidor fraco
Vazo: SCTP dividiu igualmente a vazo
entre os 2 clientes e nas 2 direes
TCP teve problemas, vazo combinada caiu
Latncia com 2 clientes
Aumentou 30% em SCTP
Aumentou 15% em TCPM
Causa: servidor fraco e ocupado,
sobrecarga SCTP inerentemente maior
Multicaminhos 10/11Mbps
Teste de funcionamento e no de
performance
Caminho primrio ligado/desligado a
cada 10 segundos
SCTP precisou de tuning para funcionar
idealmente neste ambiente
path_max_retrans baixado de 5 para 1
Concluses at aqui
Vazo e latncia do SCTP
inerentemente piores
Busca da maior vazo possvel sugere
TCP
Migrao para SCTP apenas na presena
de outras vantagens
Colaborao do CRC-32c na latncia
RTO mnimo padro, e inicial padro, de
1000ms
Controle de congestionamento
intolerante a perdas constantes?
Testes com HTTP
Softwares: thttpd e httperf
Sugesto de adaptao do HTTP ao
SCTP, com uso de um par de fluxos por
arquivo
Idia derivada da adaptao do SSL ao
SCTP
Uso de diversos fluxos SCTP entrega
maior performance
Custos de abertura/fechamento
HOL blocking
Questes pendentes nas adaptaes
Testes com SMB
Softwares: Samba e smbclient
Simples uso de SCTP em lugar de TCP
sem nenhuma mudana no protocolo ou
na implementao
Expectativa de melhoria de performance
Realidade: performance SCTP abaixo do
TCP, congruente com os testes de
vazo/latncia
Adaptao mais profunda seria
necessria
Testes com RTP
Software: POC verso 0.3.7
Transporte de MP3 sobre UDP
RFC 2250, RFC 3119, FEC
Confiabilidade parcial SCTP
Prazo de validade, sem ordem
PRSCTP
SCTP ampliou consideravelmente a
resistncia a problemas de rede sem
aumentar a sobrecarga
Confiabilidade parcial exige colaborao
da aplicao para total aproveitamento
Outros testes publicados
KANG & FIELDS (2003)
Transferncia usando vrios fluxos para
aumentar vazo total
RAJAMANI et al. (2002)
Implementao KAME/BSD
HTTP
Resultados em geral concordantes com este
trabalho
Tambm pode-se usar mensagens fora de ordem
para aumentar a vazo
Proposta de KANG & FIELDS no se aplica a
protocolos de aplicao baseados em TCP
Concluses
SCTP entrega as promessas
Muito prximo da qualidade necessria
para uso generalizado
No panacia
Nenhuma fratura exposta na verso do
LK-SCTP testada
Falhas detectadas podem ser resolvidas
a curto/mdio prazo
Vantagens provadas em protocolos reais
(HTTP, RTP)
T H E E N D