Como estimar latência e largura de banda?
Autor: Hilton Garcia Fernandes | Publicado: 2010-07-30T11:56:00-07:00

Hilton Garcia FernandesEste é mais um texto sobre latência e largura de banda de redes de computadores do blog Tecnologias sem Fio [1], iniciado com o texto Latência e largura de banda [2], que apresentou os conceitos de acordo com o modelo matemático  linear, que é relativamente simples.Em De onde vem a latência da rede ? [3], também neste blog, foram listados os fenômenos da rede que dão origem a uma demora constante em sua resposta. Neste texto vão ser comentadas as formas de se estimar os parâmetros latência e largura de banda. Estimar significa que os parâmetros são oscilantes, devido a variações de capacidade da rede. Além disso, é preciso escolher forma de medir os tempos de passagens de mensagem rede -- pois existem muitas formas de usar a rede: leitura e escrita de e-mail, navegação pela Web etc.Formulação do problemaQualquer usuário de uma rede, como a Internet [4], sabe que a disponibilidade da rede podem variar.   Sendo assim, os valores que se calcula são estimativas; similares às médias, por exemplo. Além disso, também há o problema de como obter a medida: apesar de ser intuitivo falar nos conceitos, existem muitas formas de se usar uma rede, sendo a Internet apenas uma delas. Por isto, escolhe-se um conjunto limitado de atividades que permita calcular medida; em termos usuais em computação, escolhe-se um benchmark [5].Apresentação conceitual do benchmark usadoPara medir o tempo de passagem de uma mensagem de um computador A para um outro B, seria preciso que o B informasse em que momento recebeu a mensagem. Para isso teria que enviar uma outra mensagem. Infelizmente, há um problema de sincronização dos relógios dos computadores A e B: como as redes são rápidas, uma mensagem leva pouquíssimo tempo e, os relógios teriam que estar ajustados com muita precisão, o que pode não ser fácil fazer. Outra solução é que A envie uma mensagem e aguarde a resposta de B a ela. Assim, terá toda temporização do processo é feita em um único computador. Este é o objetivo do benchmark chamado ping-pong  [6].Ele pode ser representado pelo diagrama a seguir, sugerido por [7]Para que o computador A envie a mensagem para B, será necessário que a mensagem atravesse camadas de rede, como comentado em [3]. Isto é simbolizado pelo declive d1. A mensagem passa então pela rede durante o tempo t1, quando é recebida por B.  As informações da mensagem então atravessam as camadas de rede, agora no sentido inverso, da camada física para aquela de aplicação, durante o tempo s1. Recebida a mensagem por B, ela é imediatamente enviada de volta para A. Precisa então atravessar camadas de rede, agora daquela de aplicação para a física, o que é feito durante o tempo d2.  E agora a mensagem é transmitida de B para A durante um tempo t2. Quando chega em A, atravessa novamente camadas de rede, durante tempo s2, quando é finalmente recebida pelo programa de benchmark.O tempo T&acute; que A mede do envio à recepção da mensagem é a somatória de todos os tempos:Se condições de rede forem as mesmas, e os computadores A e B forem razoavelmente similares, t1 = t2 = t. E, do mesmo modo, é razoável supor que os tempos de descida à rede são iguais: d1 = d2 = d. E, ainda, que os tempos de subida da camada física até a de aplicação são iguais também: s1 = s2 = s.  Assim, o tempo total se torna:Considera-se agora os tempos de descida d e subida s  de camadas da rede  como sendo um único tempo p de percorrer camadas de rede; ou seja: p = d + s. Assim, tem-se a fórmulaEsta fórmula faz lembrar que o tempo medido em A é  realmente o dobro do tempo de transmissão de uma mensagem de A para B apenas, sem o retorno: apenas o ping, sem o pong.É claro que o tempo T vai ser maior quanto maior for o número de bytes transmitidos; exatamente o que ocorre com t. Contudo, p vai ser o mesmo, independente do tamanho da mensagem. Assim, voltando ao modelo linearÉ fácil ver que: &alpha;, a constante de custo, é equivalente a p, o tempo em que  mensagem "sobe" e "desce" a hierarquia de camadas de rede, da camada física àquela de aplicação e vice-versa; t, o tempo em que a mensagem foi transmitida, é função do número de bytes a ser transmitidos --- equivale no caso a &beta;n; o tempo total de transmissão T de uma mensagem com n bytes é mesmo função apenas de n e, por isso, é representado como T(n).De fato, usando métodos estatísticos é possível estimar &alpha; e &beta;. A estatística mostra que é praticamente total o ajuste do modelo linear às medidas de rede obtidas por benchmarks como o ping-pong.Estas conclusões são discutidas a seguir.Calculando parâmetros através de estatísticaA estimativa dos parâmetros &alpha; é &beta; é feita através de regressão linear [8]. Em poucas palavras, isto implica em minimizar o erro da aproximação do modelo linear aos tempos medidos de T.  São feitas muitas medidas de tempos, para mensagens de diferentes tamanhos: Em notação mais formal, são feitas m medidas de tempos para vários tamanhos de mensagem, que serão chamadas Ti e ni. (Uma das técnicas para minimizar a variabilidade minimizar os erros de medida é fazer várias medidas de tempo para um mesmo tamanho de mensagem.)A técnica básica para essa estimativa se chama método dos mínimos quadrados (MMQ) [9]. Trata-se de minimizar o erro quadrático, o somatório de cada diferença entre o medido e o calculado. Isto é expresso pela fórmula:onde Ti são os tempos medidos; para cada cada um deles um correspondente tamanho de mensagem ni. Assim, o tempo T1 foi obtido quando se usou mensagem de tamanho n1 etc.A estatística fornece ferramentas para validar, ou não, a aproximação -- principalmente se os ajustes não foram muito bons, por exemplo devido a oscilações de tráfego na rede.  A ferramenta chamada ANOVA [10] permite avaliar se a aproximação foi tão ruim que o parâmetros &beta; pode ser considerado  nulos. Ou seja: não há nenhuma relação entre o tempo T de transmissão da mensagem e n, o tamanho dela em bytes. O teste t de Student [11] permite avaliar individualmente a qualidade dos parâmetros. Isto é: o quanto &alpha; e &beta; ajudam a explicar o comportamento de T em função de valores de n.R [12] é um Software Livre [13] para estatística muito completo, de excelente qualidade, que tem esses recursos já implementados.Referências[1] Tecnologias sem fiohttps://tecnologiassemfio.blogspot.com/Visitado em 30/07/2010[2] Latência e largura de bandahttp://tecnologiassemfio.blogspot.com/2010/07/latencia-e-largura-de-banda.htmlVisitado em 30/07/2010[3] De onde vem a latência da rede ?http://tecnologiassemfio.blogspot.com/2010/07/de-onde-vem-latencia-da-rede.htmlVisitado em 30/07/2010[4] Internethttps://secure.wikimedia.org/wikipedia/pt/wiki/InternetVisitado em 28/07/2010[5] Benchmark (computação)https://secure.wikimedia.org/wikipedia/pt/wiki/Benchmark_%28computa%C3%A7%C3%A3o%29Visitado em 28/07/2010[6] What does ping pong benchmark mean?http://icl.cs.utk.edu/hpcc/faq/index.html#132Visitado em 28/07/2010[7]  Benchmarking of Multicast Communication Servicesftp://ftp.cse.msu.edu/pub/acs/reports/msu-cps-acs-103.ps.gzVisitado em 28/07/2010[8]  Regressão linearhttps://secure.wikimedia.org/wikipedia/pt/wiki/Regress%C3%A3o_linearVisitado em 28/07/2010[9]  Método dos mínimos quadradoshttps://secure.wikimedia.org/wikipedia/pt/wiki/MmqVisitado em 28/07/2010[10]  Regressão e ANOVAhttp://www.fm.usp.br/dim/regressao/rquadrado.phpVisitado em 29/07/2010[11]  Teste t de Studenthttp://www.exatec.unisinos.br/~gonzalez/valor/inferenc/testes/testet.htmlVisitado em 29/07/2010[12]  The R Project for Statistical Computinghttp://www.r-project.org/Visitado em 29/07/2010[13]  Software livrehttps://secure.wikimedia.org/wikipedia/pt/wiki/Software_livreVisitado em 29/07/2010