DevSecOps

22 abr, 2013

Falando de redes de baixa latência – Parte 01

Publicidade

Olá, pessoal! Este artigo sobre redes de alta performance e baixa latência está dividido em três partes, para facilitar a compreensão.

Para melhor entendimento, vamos explicar o que significa “latência”: o tempo que uma mensagem leva para  atravessar  de um ponto ao outro. Em um computador de rede é uma expressão sobre quanto tempo leva para que um pacote de dados vá de um ponto designado para o outro. Por vezes, é medida como o tempo necessário para que um pacote seja devolvido ao remetente.

Latência depende da velocidade do meio de transmissão (por exemplo, fios de cobre, fibra óptica ou ondas de rádio), e os atrasos na transmissão dependem do meio de dispositivos ao longo do caminho (por exemplo, routers, switches e modems).

A latência é uma medida fundamental de desempenho da rede, pois mede a quantidade de tempo entre o início de uma ação e seu término e a avaliação de seu rendimento é feita com base no número total de ações que ocorrem em um determinado período de tempo.

O envio de dados em pacotes grandes tem um rendimento maior do que o envio dos mesmos dados em pequenos pacotes, tanto por causa do menor número de cabeçalhos dos pacotes, quanto por causa de inicialização reduzida e latência de enfileiramento. Se os dados são transmitidos (isto é, enviados em fluxo contínuo), a latência de propagação tem pouco efeito sobre o rendimento, mas se o sistema espera por um reconhecimento depois de cada pacote antes de enviar o seguinte, a latência de propagação resultante irá reduzir o rendimento.

A latência é também uma consideração importante no que diz respeito a outros aspectos de redes, em particular no qual o tempo real a resposta é necessária. Por exemplo, em alguns jogos na Internet, uma alta latência (também chamado lag) pode aumentar a dificuldade de determinar qual o jogador realizou uma primeira ação (como atirar um adversário ou responder a uma pergunta). Ao jogar em computadores baseados em latências maiores do que 100 milissegundos, torna-se difícil para os jogadores obter o feedback quase instantâneo que eles exigem.

Os comandos de ping e traceroute são amplamente utilizados para identificar problemas de latência em redes.

As principais características de rede que podem influenciar o tempo de resposta de uma transação são banda e latência. Banda é a quantidade de informação que a rede pode transportar por unidade de tempo e latência é o tempo que uma unidade de informação leva pra transitar pela rede de um ponto a outro.

Numa rede local, trabalhamos com bandas da ordem de 100Mb/s à 1000Mb/s e latências da ordem de 1ms. Quando trabalhamos com a Internet, tratamos de bandas da ordem de 1Mb/s a 10Mb/s e latências da ordem de 100ms. Usando a logica, a banda que temos pra acessar a Internet é 100 vezes menor que a banda de uma rede local e a latência é 100 vezes maior.

Essas duas características influenciam as transações de um sistema de modos diferentes. Imagine que, ao fazer uma requisição para baixar um arquivo, você precisasse fazer uma requisição para cada bloco de 1MB de dados,  um arquivo de 1GB teria que ser solicitado em 1000 pedaços. Imagine também que cada pedaço tivesse que ser recebido antes que o próximo pudesse ser solicitado. Nesse caso, a latência passa a ser mais importante. Se numa rede local este arquivo pode ser baixado em dois minutos, numa rede com a mesma banda mas com uma latência de 100ms, como ocorre na Internet, a transferência do arquivo levaria 100 segundos a mais, devido ao tempo necessário para cada uma das 1000 solicitações de 100ms cada.

Tendo isso em mente, é importante analisar o padrão de comunicação do sistema pra determinarmos se a lentidão quando o acesso é via Internet e é determinado pela redução de banda ou pelo aumento da latência da rede. Se o padrão de comunicação for determinado por poucas requisições com grande transferência de dados, então, o aumento na banda pode melhorar a situação. Mas se o padrão for determinado por muitas requisições pequenas, então o aumento de banda não deverá ter efeito significativo.

Durante as últimas décadas, empresas e instituições aumentaram significativamente a geração, processamento e armazenamento de dados digitais. A exigência por um elevado nível de disponibilidade e eficiência de redes se tornou uma necessidade para grandes empresas.

Como consequência desta demanda, aplicações sensíveis a atraso tornam-se um desafio para a transmissão e exigem redução da latência total ao longo de toda a infraestrutura de rede. Soluções baseadas em transporte óptico ou elétrico contribuem com duas fontes de atraso, decorrentes da propagação. O atraso originado pela fibra ou cabo UTP é resultado da distância  ao longo da rota, onde o aumento da distância contribui para maiores tempos de transmissão da informação no meio físico.

A baixa  latência é atualmente interessante nos mercados de capitais, particularmente quando a negociação é baseada em algoritmos – utilizados para processar atualizações do mercado e virar ordens de compra ou venda em milissegundos e atualmente até mesmo em nano segundos.

Estas redes de baixa latência são utilizadas pelas instituições financeiras para se conectar a bolsas e redes de comunicações eletrônicas para executar transações financeiras. A latência é medida com base em três componentes: o tempo que leva para as informações para chegarem ao comerciante; algoritmos do comerciante para analisar a informação e  a ação gerada para alcançar o intercâmbio.

A baixa latência também está sendo discutida na comunidade de publicidade, como uma alternativa de respostas rápidas às demandas nesta área, uma vez que um tweet pode fazer a toda a diferença para uma agência.

Nos próximos artigos desta série irei abordar o algoritmo que os protocolos de baixa latência atuam e também o Time Stamping.

Até a próxima.