Camada QUIC: o futuro das comunicações em rede

Os servidores de produção mais consideráveis que funcionam com 4D aceitam mais de mil ligações simultâneas, e este número continua a crescer. Como consequência, o desempenho torna-se um foco cada vez mais importante das nossas equipes. O protocolo QUIC, utilizado pela nova versão da norma HTTP, foi especificamente construído para aumentar a velocidade e a fiabilidade. Como estamos sempre à procura de tecnologias excitantes, estamos trabalhando na substituição do nosso protocolo de rede de baixo nível pelo protocolo QUIC.

Para a v20, pode mudar para esta camada de rede e verificar se ela melhora o seu desempenho. Isto ainda está em teste beta, pois precisamos do seu feedback antes de o utilizarmos como a nossa camada de rede padrão. Como tal, só poderá utilizá-lo em versões beta de 4D.

O QUIC, que significa Quick UDP Internet Connections, foi iniciado pelo Google há uma década. Foi oficialmente padronizado pela IETF em Maio de 2021 e adoptado como o protocolo para ligações HTTP/3.

 

Ao longo dos tempos, o 4D utilizou um par de diferentes camadas de rede. A primeira, a que geralmente chamamos “Legado”, utilizava demasiado CPU quando ociosa. A camada ServerNet resolveu este pequeno problema e trouxe características como o suporte para o modo de descanso do computador, mas continua a pedir uma ligação constante, o que não é ideal em redes instáveis. Com estas duas camadas, atingimos o teto; não há muito espaço para melhorias.

Ao contrário das camadas anteriores a trabalhar sobre TCP, a QUIC utiliza o protocolo UDP para transportar os seus pacotes. Ele permite uma recuperação mais rápida em caso de perda de pacotes, congestionamento, e vários problemas de rede. E os nossos testes preliminares mostram que o QUIC cumpre as suas promessas: quando o ping fica elevado, o QUIC consegue ser mais rápido que as nossas outras camadas de rede, e em caso de perda de pacotes, o ganho de velocidade é incrível. Fomos positivamente surpreendidos pela estabilidade geral do protocolo e pretendemos tornar esta camada de rede a mais estável que você já conheceu.

Durante o teste beta da v20, pode ativar esta camada através da Página de Compatibilidade das Configurações da Estrutura. Não se esqueça que, como o QUIC funciona em UDP, precisa dos seus routers e firewalls para aceitar ligações UDP. Um segundo ponto importante é que tanto o servidor de aplicações como o servidor de bases de dados irão agora ouvir na mesma porta (19813 por padrão), graças à forma como o QUIC agrupa todas as comunicações de rede num só socket em vez de abrir um socket por processo como antes. Além disso, as comunicações QUIC são necessariamente encriptadas com TLS. Não hesite em testá-lo na sua infraestrutura. Utilizaremos o seu feedback para o melhorar.

Entretanto, se tiver perguntas ou comentários, não hesite em trazê-los para os fóruns 4D.

Nicolas Brachfogel
• Proprietário do produto e Desenvolvedor Senior -Nicolas Brachfogel entrou a 4D em 2017 como Senior Developer (4D Server e Networking). Como Product Owner para gerenciar o lançamento de Apple Silicon, está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais, além de garantir que as implementações de funcionalidade cumpram com as necessidades do cliente. Diplomado pelo Instituto Superior de Informática Aplicada (INSIA), Nicolas começou sua carreira como desenvolvedor de software em 2001. Depois de vários anos codificando em Java e C++, passou a especializar-se no desenvolvimento cliente-servidor para empresas de videogames. Como desenvolvedor/arquiteto de servidores, trabalhou com sucesso nas arquiteturas de servidores de muitos jogos (Dofus Arena, Drakerz, Trivial Pursuit Go!)