Tópicos

SCTP

SCTP surge na necessidade de um protocolo capaz de corrigir o problema do head-of-line blocking e suportar multihoming. Além disso, o TCP é vulnerável a uma série de ataques, como é o caso do SYN attack.

Head-of-line blocking é o facto de um pacote que esteja na frente da fila de saída bloquear outros que se encontram mais atrás, pelo simples facto de não poder ser enviado. Isto acontece, especialmente, quando um dado segmento é perdido e os outros não podem ser enviados.

Multihoming é a capacidade de um host poder ser identificado por diferentes interfaces. No caso do TCP, esta funcionalidade é usada como garantia de redundância e tolerância a faltas.

Endpoint Uma das partes envolvidas na comunicação, identificada por uma lista de vários IPs e uma porta.

Association Associação entre dois endpoints, identificada por um par de listas.

Vale ressaltar que cada uma das 64k possíveis streams correspondem à mesma conexão TCP e respetiva associação. Isto é, partilham o mesmo handshake inicial do SCTP e os mesmos recursos físicos. Toda a gestão é feita de forma lógica.

4-way handshake

Este handshake surge na necessidade de resolver o problema da possibilidade de um cliente não enviar o último ACK do TCP, deixando a conexão aberta para outros possíveis atacantes.

O cliente envia uma mensagem do tipo Init para o servidor; o servidor responde com uma mensagem do tipo Init ACK, que contém um determinado cookie com informação que apenas o servidor pode validar.

O cliente responde, então, com uma mensagem do tipo Cookie Echo, que pode já conter alguma informação relevante. O servidor verifica a validade da cookie e a conexão é estabelecida.

QUIC

A motivação para a criação deste protocolo surge um pouco na mesma ordem de ideias que o SCTP. De facto, este protocolo é o utilizado atualmente na versão 3 (a mais recente) do HTTP e está assente em cima do UDP + TLS.

É um protocolo orientado à conexão, guardando estado entre o cliente e o servidor. Isto permite, por exemplo, que um cliente alterne a sua ligação internet entre Wi-Fi e 5G sem que a conexão ao servidor seja perdida ou totalmente restabelecida. Isto pois, este protocolo baseia-se não em IPs, mas sim num identificador único da conexão.