Monday 21 August 2017

Exponential moving average rtt


Como funciona o trabalho de estimativa do tempo de viagem de ida e volta (RTT) do TCP Como é diferente a implementação em todos os sistemas operacionais As estimativas TCP RTT usando uma média móvel ponderada exponencial (desculpe, não consigo descobrir como formatar Hiperlink no celular)) com base no RTT observado durante a transmissão. Basicamente, quando TCP envia um pacote, ele inicia um timer, que será tempo limite quando ele atinge o valor calculado TimeoutInterval. Por simplicidade, apenas um temporizador é usado, apesar do fato de que vários segmentos podem estar em trânsito ao mesmo tempo (isso é chamado pipelining). Para qualquer pacote, há um número de seqüência. Quando o remetente TCP recebe um ACK para o pacote, ele pára o temporizador o tempo decorrido é salvo como SampleRTT e fornece um instantâneo de condições de rede. Como esse valor pode flutuar com o tempo, o EWMA é calculado usando o EstimatedRTT anterior e o SampleRTT recém-adquirido pela equação: EstimatedRTT 0.875 EstimatedRTT 0.125 SampleRTT Para uma explicação dos valores usados, consulte RFC 6298. O uso de um EWMA significa que o A importância relativa de uma dada amostra cai exponencialmente à medida que mais são adicionadas. Em inglês, amostras mais recentes são consideradas mais importantes porque representam uma estimativa mais recente. Além da média, a variabilidade ou desvio do RTT é estimada por DevRTT 0,75 DevRTT 0,25 SampleRTT - EstimatedRTT Dadas essas médias, precisamos decidir sobre um tempo limite para definir. Obviamente, o tempo limite deve ser, pelo menos, EstimatedRTT, com uma margem adicional para a variância. Se DevRTT é pequeno, o RTT é bastante constante, portanto, a margem pode ser pequena. Se a variância for maior, devemos permitir uma maior margem de erro. Portanto TimeoutInterval EstimatedRTT 4 DevRTT RFC 6298 recomenda um TimeoutInterval inicial de um segundo. Quando ocorre um tempo limite, o valor de TimeoutInterval é duplicado para evitar outro tempo limite para o mesmo pacote. Isso fornece algum controle de congestionamento também - quanto mais tempo limite ocorrer, mais TCP esperará antes da retransmissão. Uma vez que o pacote problemático passa, TimeoutInterval é restaurado para seu último valor calculado. EstimatedRTT não é computado para pacotes que são retransmitidos, portanto, esta duplicação não afeta o valor. Assuma que o rtt estimado de acordo com o são realmente perdidos. Suponha que o RTT estimado (de acordo com a média móvel ponderada exponencial) seja igual à média real (conjunto) de RTT, isto é, o valor médio estimado de TRT de RTT ESampleRTT. A) Suponha que o tempo limite é definido como 2 (duas) vezes o RTT estimado (como na versão original do TCP), isto é, TimeOut 2 x EstimatedRTT. B) As versões atualmente usadas do TCP estimam tanto a média como o desvio médio como discutimos na classe (o desvio médio é a distância absoluta média das amostras de RTT do RTT estimado ) E define o tempo limite para a média estimada (TIR estimada) mais 4 (quatro) vezes o desvio estimado (devRTT), ou seja, TimeOut Esta pré-visualização tem seções intencionalmente desfocadas. Inscreva-se para ver a versão completa. EstimatedRTT 4 x devRTT. Suponha que a conexão TCP usa esse novo método, eo RTT estimado eo desvio são iguais aos seus verdadeiros valores (ensemble), ou seja, EstimatedRTT ESampleRTT e devRTT ESampleRTT-EstimatedRTT. Considere o algoritmo de estimação de RTT para definir a retransmissão TimeOut usada pelo TCP como discutimos na classe: EstimatedRTT new larr (1 - alfa) EstimatedRTT alfa antiga SampleRTT DevRTT new larr (1 - beta) DevRTT antigo beta EstimatedRTT antigo - AmostraRTT TimeOut larr EstimadoRTT novo gama DevRTT novo Um dos requisitos deste algoritmo, embora não explicitamente afirmado, é que o TimeOut deve ser pelo menos igual ao RTT medido mais recente, ou seja, TimeOut Este é o fim da pré-visualização. Registre-se para acessar o restante do documento. Estimado rtt de acordo com a ponderada exponencial RTT estimado (de acordo com a média ponderada ponderada exponencial) é igual à média real (conjunto) de RTT, ou seja, estimado RTT valor médio de RTT ESampleRTT. I) (7 pts) Suponha que o tempo limite seja definido como 2 (duas) vezes o RTT estimado (como na versão original do TCP), ou seja, TimeOut 2 x EstimatedRTT. As frações dos pacotes serão assumidas perdidas pelo emissor TCP ii) (7 pts) As versões atualmente usadas do TCP estimam tanto a média quanto o desvio médio como discutimos na classe (o desvio médio é a distância absoluta média de amostras de RTT A partir do RTT estimado), e define o tempo limite para a média estimada (TIR estimada) mais 3 (três) vezes o desvio estimado (devRTT), ou seja, TimeOut EstimatedRTT 3 x devRTT. Suponha que a conexão TCP usa esse novo método, eo RTT estimado eo desvio são iguais aos seus verdadeiros valores (ensemble), ou seja, EstimatedRTT ESampleRTT e devRTT ESampleRTT-EstimatedRTT. Que fração dos pacotes será assumida perdida pelo TCP remetente b) (8 pts) Suponha que R rcv. A taxa à qual os bits estão chegando a um buffer de recepção TCP, é dada na figura seguinte como uma função do tempo. O processo de aplicação no receptor está removendo bits do buffer de recebimento na taxa constante de 200 Kbits / segundo (2 x 10 6 bits / s). Suponha que o buffer de recepção está inicialmente vazio em t 0 e tem um tamanho fixo de 50.000 Bytes. Considerando o algoritmo de controle de fluxo TCP, qual é o valor da Janela de Recebimento anunciada pelo receptor em t 2 seg R rcv 0 tempo, seg 1 2 400 Kbits / seg 300 Kbits / seg Este é o fim da visualização. Inscreva-se para acessar o restante do documento. Clique para editar os detalhes do documento Compartilhe este link com um amigo: Denuncie este documento Informe Documentos Mais Populares para CS 421 midterm1spring2005 Bilkent University CS 421 - Primavera 2012 CS 421: Redes de Computadores MIDTERM I 31 de março de 2005 120 minutos Nome: Estudante Nº: SPRI Midterm1spring2006 Bilkent University CS 421 - Primavera 2012 CS 421: Redes de Computadores MIDTERM I 23 de março de 2006 120 minutos Nome: Número de Estudante: SPRI midterm1spring2007 Bilkent University CS 421 - Nome: Stud finalfall2007 Universidade de Bilkent CS 421 - Primavera de 2012 CS 421: REDES DE COMPUTADORES FIM 2007 FINAL 9 de janeiro de 2008 150 minutos Nome: Estudante N finalspring2009 Bilkent University CS 421 - Minutos Nome: Estudante No midtermspring2010 Bilkent University CS 421 - Primavera 2012 CS 421: Redes de Computadores PRIMAVERA 2010 MIDTERM 30 de março de 2010 120 minutos Nome: StudenMoving média e modelos de suavização exponencial Como um primeiro passo para ir além de modelos de média, Modelos de tendência linear, padrões e tendências não sazonais podem ser extrapolados usando um modelo de média móvel ou suavização. A suposição básica por trás dos modelos de média e suavização é que a série temporal é localmente estacionária com uma média lentamente variável. Assim, tomamos uma média móvel (local) para estimar o valor atual da média e então usamos isso como a previsão para o futuro próximo. Isto pode ser considerado como um compromisso entre o modelo médio e o modelo aleatório-andar-sem-deriva. A mesma estratégia pode ser usada para estimar e extrapolar uma tendência local. Uma média móvel é muitas vezes chamado de uma versão quotsmoothedquot da série original, porque a média de curto prazo tem o efeito de suavizar os solavancos na série original. Ajustando o grau de suavização (a largura da média móvel), podemos esperar encontrar algum tipo de equilíbrio ótimo entre o desempenho dos modelos de caminhada média e aleatória. O tipo mais simples de modelo de média é o. Média Móvel Simples (igualmente ponderada): A previsão para o valor de Y no tempo t1 que é feita no tempo t é igual à média simples das observações m mais recentes: (Aqui e em outro lugar usarei o símbolo 8220Y-hat8221 para ficar Para uma previsão da série temporal Y feita o mais cedo possível antes de um determinado modelo). Esta média é centrada no período t (m1) / 2, o que implica que a estimativa da média local tende a ficar para trás Valor real da média local em cerca de (m1) / 2 períodos. Dessa forma, dizemos que a idade média dos dados na média móvel simples é (m1) / 2 relativa ao período para o qual a previsão é calculada: é a quantidade de tempo em que as previsões tenderão a ficar atrás dos pontos de inflexão na dados. Por exemplo, se você estiver calculando a média dos últimos 5 valores, as previsões serão cerca de 3 períodos atrasados ​​em responder a pontos de viragem. Observe que se m1, o modelo de média móvel simples (SMA) é equivalente ao modelo de caminhada aleatória (sem crescimento). Se m é muito grande (comparável ao comprimento do período de estimação), o modelo SMA é equivalente ao modelo médio. Como com qualquer parâmetro de um modelo de previsão, é costume ajustar o valor de k para obter o melhor quotfitquot aos dados, isto é, os erros de previsão mais pequenos em média. Aqui está um exemplo de uma série que parece apresentar flutuações aleatórias em torno de uma média de variação lenta. Primeiro, vamos tentar ajustá-lo com um modelo de caminhada aleatória, o que equivale a uma média móvel simples de um termo: O modelo de caminhada aleatória responde muito rapidamente às mudanças na série, mas ao fazê-lo ele escolhe grande parte do quotnoisequot no Dados (as flutuações aleatórias), bem como o quotsignalquot (a média local). Se, em vez disso, tentarmos uma média móvel simples de 5 termos, obtemos um conjunto de previsões mais suaves: A média móvel simples de 5 períodos produz erros significativamente menores do que o modelo de caminhada aleatória neste caso. A idade média dos dados nessa previsão é de 3 ((51) / 2), de modo que ela tende a ficar atrás de pontos de viragem em cerca de três períodos. (Por exemplo, uma desaceleração parece ter ocorrido no período 21, mas as previsões não virar até vários períodos mais tarde.) Observe que as previsões de longo prazo do modelo SMA são uma linha reta horizontal, assim como na caminhada aleatória modelo. Assim, o modelo SMA assume que não há tendência nos dados. No entanto, enquanto as previsões do modelo de caminhada aleatória são simplesmente iguais ao último valor observado, as previsões do modelo SMA são iguais a uma média ponderada de valores recentes. Os limites de confiança calculados pela Statgraphics para as previsões de longo prazo da média móvel simples não se alargam à medida que o horizonte de previsão aumenta. Isto obviamente não é correto Infelizmente, não há nenhuma teoria estatística subjacente que nos diga como os intervalos de confiança devem se ampliar para este modelo. No entanto, não é muito difícil calcular estimativas empíricas dos limites de confiança para as previsões de longo prazo. Por exemplo, você poderia configurar uma planilha na qual o modelo SMA seria usado para prever 2 passos à frente, 3 passos à frente, etc. dentro da amostra de dados históricos. Você poderia então calcular os desvios padrão da amostra dos erros em cada horizonte de previsão e, em seguida, construir intervalos de confiança para previsões de longo prazo adicionando e subtraindo múltiplos do desvio padrão apropriado. Se tentarmos uma média móvel simples de 9 termos, obtemos previsões ainda mais suaves e mais de um efeito retardado: A idade média é agora de 5 períodos ((91) / 2). Se tomarmos uma média móvel de 19 períodos, a idade média aumenta para 10: Observe que, na verdade, as previsões estão agora atrasadas por pontos de inflexão em cerca de 10 períodos. Qual a quantidade de suavização é melhor para esta série Aqui está uma tabela que compara suas estatísticas de erro, incluindo também uma média de 3-termo: Modelo C, a média móvel de 5-termo, rende o menor valor de RMSE por uma pequena margem sobre o 3 E médias de 9-termo, e suas outras estatísticas são quase idênticas. Assim, entre modelos com estatísticas de erro muito semelhantes, podemos escolher se preferiríamos um pouco mais de resposta ou um pouco mais de suavidade nas previsões. O modelo de média móvel simples descrito acima tem a propriedade indesejável de tratar as últimas k observações igualmente e completamente ignora todas as observações anteriores. (Voltar ao início da página.) Marrons Simples Exponencial Suavização (exponencialmente ponderada média móvel) Intuitivamente, os dados passados ​​devem ser descontados de forma mais gradual - por exemplo, a observação mais recente deve ter um pouco mais de peso que a segunda mais recente, ea segunda mais recente deve ter um pouco mais de peso que a 3ª mais recente, e em breve. O modelo de suavização exponencial simples (SES) realiza isso. Vamos 945 denotar uma constante quotsmoothingquot (um número entre 0 e 1). Uma maneira de escrever o modelo é definir uma série L que represente o nível atual (isto é, o valor médio local) da série, conforme estimado a partir dos dados até o presente. O valor de L no tempo t é calculado recursivamente a partir de seu próprio valor anterior como este: Assim, o valor suavizado atual é uma interpolação entre o valor suavizado anterior e a observação atual, onde 945 controla a proximidade do valor interpolado para o mais recente observação. A previsão para o próximo período é simplesmente o valor suavizado atual: Equivalentemente, podemos expressar a próxima previsão diretamente em termos de previsões anteriores e observações anteriores, em qualquer das seguintes versões equivalentes. Na primeira versão, a previsão é uma interpolação entre previsão anterior e observação anterior: Na segunda versão, a próxima previsão é obtida ajustando a previsão anterior na direção do erro anterior por uma fração 945. é o erro feito em Tempo t. Na terceira versão, a previsão é uma média móvel exponencialmente ponderada (ou seja, descontada) com o fator de desconto 1- 945: A versão de interpolação da fórmula de previsão é a mais simples de usar se você estiver implementando o modelo em uma planilha: Célula única e contém referências de células que apontam para a previsão anterior, a observação anterior ea célula onde o valor de 945 é armazenado. Observe que, se 945 1, o modelo SES é equivalente a um modelo de caminhada aleatória (sem crescimento). Se 945 0, o modelo SES é equivalente ao modelo médio, assumindo que o primeiro valor suavizado é definido igual à média. A idade média dos dados na previsão de suavização exponencial simples é de 1/945 em relação ao período para o qual a previsão é calculada. (Isso não é suposto ser óbvio, mas pode ser facilmente demonstrado pela avaliação de uma série infinita.) Assim, a previsão média móvel simples tende a ficar aquém dos pontos de inflexão em cerca de 1/945 períodos. Por exemplo, quando 945 0,5 o atraso é 2 períodos quando 945 0,2 o atraso é 5 períodos quando 945 0,1 o atraso é de 10 períodos, e assim por diante. Para uma dada idade média (isto é, a quantidade de atraso), a previsão de suavização exponencial simples (SES) é um pouco superior à previsão de média móvel simples (SMA) porque coloca relativamente mais peso na observação mais recente - i. e. É ligeiramente mais quotresponsivequot às mudanças que ocorrem no passado recente. Por exemplo, um modelo SMA com 9 termos e um modelo SES com 945 0,2 têm uma idade média de 5 para os dados nas suas previsões, mas o modelo SES coloca mais peso nos últimos 3 valores do que o modelo SMA e no modelo SMA. Outra vantagem importante do modelo SES sobre o modelo SMA é que o modelo SES usa um parâmetro de suavização que é continuamente variável, de modo que pode ser facilmente otimizado Usando um algoritmo quotsolverquot para minimizar o erro quadrático médio. O valor óptimo de 945 no modelo SES para esta série revela-se 0.2961, como mostrado aqui: A idade média dos dados nesta previsão é de 1 / 0.2961 3.4 períodos, que é semelhante ao de um 6-termo simples de movimento média. As previsões a longo prazo do modelo SES são uma linha reta horizontal. Como no modelo SMA eo modelo de caminhada aleatória sem crescimento. No entanto, note que os intervalos de confiança calculados por Statgraphics agora divergem de uma forma razoavelmente aparente, e que eles são substancialmente mais estreitos do que os intervalos de confiança para o modelo de caminhada aleatória. O modelo SES assume que a série é um tanto mais previsível do que o modelo de caminhada aleatória. Um modelo SES é na verdade um caso especial de um modelo ARIMA. De modo que a teoria estatística dos modelos ARIMA fornece uma base sólida para o cálculo de intervalos de confiança para o modelo SES. Em particular, um modelo SES é um modelo ARIMA com uma diferença não sazonal, um termo MA (1) e nenhum termo constante. Também conhecido como um modelo quimétrico ARIMA (0,1,1) sem constantequot. O coeficiente MA (1) no modelo ARIMA corresponde à quantidade 1-945 no modelo SES. Por exemplo, se você ajustar um modelo ARIMA (0,1,1) sem constante à série aqui analisada, o coeficiente MA estimado (1) resulta ser 0,7029, que é quase exatamente um menos 0,2961. É possível adicionar a hipótese de uma tendência linear constante não-zero para um modelo SES. Para isso, basta especificar um modelo ARIMA com uma diferença não sazonal e um termo MA (1) com uma constante, ou seja, um modelo ARIMA (0,1,1) com constante. As previsões a longo prazo terão então uma tendência que é igual à tendência média observada ao longo de todo o período de estimação. Você não pode fazer isso em conjunto com o ajuste sazonal, porque as opções de ajuste sazonal são desativadas quando o tipo de modelo é definido como ARIMA. No entanto, você pode adicionar uma tendência exponencial de longo prazo constante a um modelo de suavização exponencial simples (com ou sem ajuste sazonal) usando a opção de ajuste de inflação no procedimento de Previsão. A taxa adequada de inflação (crescimento percentual) por período pode ser estimada como o coeficiente de declive num modelo de tendência linear ajustado aos dados em conjunção com uma transformação de logaritmo natural, ou pode basear-se noutras informações independentes relativas às perspectivas de crescimento a longo prazo . (Retornar ao início da página.) Browns Linear (ie double) Suavização exponencial Os modelos SMA e SES assumem que não há nenhuma tendência de qualquer tipo nos dados (que geralmente é OK ou pelo menos não muito ruim para 1- Antecipadamente quando os dados são relativamente ruidosos) e podem ser modificados para incorporar uma tendência linear constante como mostrado acima. O que acontece com as tendências a curto prazo Se uma série exibe uma taxa variável de crescimento ou um padrão cíclico que se destaque claramente contra o ruído, e se houver uma necessidade de prever mais de um período à frente, a estimativa de uma tendência local também pode ser um problema. O modelo de suavização exponencial simples pode ser generalizado para obter um modelo de suavização exponencial linear (LES) que calcula estimativas locais de nível e tendência. O modelo de tendência de variação de tempo mais simples é o modelo de alisamento exponencial linear de Browns, que usa duas séries suavizadas diferentes que são centradas em diferentes pontos no tempo. A fórmula de previsão é baseada em uma extrapolação de uma linha através dos dois centros. (Uma versão mais sofisticada deste modelo, Holt8217s, é discutida abaixo.) A forma algébrica do modelo de suavização exponencial linear de Brown8217s, como a do modelo de suavização exponencial simples, pode ser expressa em um número de formas diferentes mas equivalentes. A forma quotstandard deste modelo é usualmente expressa da seguinte maneira: Seja S a série de suavização simples obtida pela aplicação de suavização exponencial simples à série Y. Ou seja, o valor de S no período t é dado por: (Lembre-se que, sob simples Exponencial, esta seria a previsão para Y no período t1.) Então deixe Squot denotar a série duplamente-alisada obtida aplicando a suavização exponencial simples (usando o mesmo 945) à série S: Finalmente, a previsão para Y tk. Para qualquer kgt1, é dada por: Isto produz e 1 0 (isto é, enganar um pouco e deixar a primeira previsão igual à primeira observação real) e e 2 Y 2 8211 Y 1. Após o que as previsões são geradas usando a equação acima. Isto produz os mesmos valores ajustados que a fórmula baseada em S e S se estes últimos foram iniciados utilizando S 1 S 1 Y 1. Esta versão do modelo é usada na próxima página que ilustra uma combinação de suavização exponencial com ajuste sazonal. Holt8217s Linear Exponential Smoothing Brown8217s O modelo LES calcula estimativas locais de nível e tendência ao suavizar os dados recentes, mas o fato de que ele faz isso com um único parâmetro de suavização coloca uma restrição nos padrões de dados que é capaz de ajustar: o nível ea tendência Não são permitidos variar em taxas independentes. Holt8217s modelo LES aborda esta questão, incluindo duas constantes de alisamento, um para o nível e um para a tendência. Em qualquer momento t, como no modelo Brown8217s, existe uma estimativa L t do nível local e uma estimativa T t da tendência local. Aqui eles são calculados recursivamente a partir do valor de Y observado no tempo t e as estimativas anteriores do nível e tendência por duas equações que aplicam alisamento exponencial para eles separadamente. Se o nível estimado ea tendência no tempo t-1 são L t82091 e T t-1. Respectivamente, então a previsão para Y tshy que teria sido feita no tempo t-1 é igual a L t-1 T t-1. Quando o valor real é observado, a estimativa atualizada do nível é computada recursivamente pela interpolação entre Y tshy e sua previsão, L t-1 T t-1, usando pesos de 945 e 1-945. A mudança no nível estimado, Nomeadamente L t 8209 L t82091. Pode ser interpretado como uma medida ruidosa da tendência no tempo t. A estimativa actualizada da tendência é então calculada recursivamente pela interpolação entre L t 8209 L t82091 e a estimativa anterior da tendência, T t-1. Usando pesos de 946 e 1-946: A interpretação da constante de alisamento de tendência 946 é análoga à da constante de alisamento de nível 945. Modelos com valores pequenos de 946 assumem que a tendência muda apenas muito lentamente ao longo do tempo, enquanto modelos com Maior 946 supor que está mudando mais rapidamente. Um modelo com um 946 grande acredita que o futuro distante é muito incerto, porque os erros na tendência-estimativa tornam-se completamente importantes ao prever mais de um período adiante. As constantes de suavização 945 e 946 podem ser estimadas da maneira usual, minimizando o erro quadrático médio das previsões de 1 passo à frente. Quando isso é feito em Statgraphics, as estimativas se tornam 945 0,3048 e 946 0,008. O valor muito pequeno de 946 significa que o modelo assume muito pouca mudança na tendência de um período para o outro, então basicamente este modelo está tentando estimar uma tendência de longo prazo. Por analogia com a noção de idade média dos dados que é usada na estimativa do nível local da série, a idade média dos dados que é usada na estimativa da tendência local é proporcional a 1/946, embora não exatamente igual a isto. Neste caso, isto é 1 / 0.006 125. Este número é muito preciso, na medida em que a precisão da estimativa de 946 é realmente de 3 decimais, mas é da mesma ordem geral de magnitude que o tamanho da amostra de 100 , Assim que este modelo está calculando a média sobre bastante muita história em estimar a tendência. O gráfico de previsão abaixo mostra que o modelo LES estima uma tendência local ligeiramente maior no final da série do que a tendência constante estimada no modelo SEStrend. Além disso, o valor estimado de 945 é quase idêntico ao obtido pelo ajuste do modelo SES com ou sem tendência, de modo que este é quase o mesmo modelo. Agora, eles parecem previsões razoáveis ​​para um modelo que é suposto estar estimando uma tendência local Se você 8220eyeball8221 esse enredo, parece que a tendência local virou para baixo no final da série O que aconteceu Os parâmetros deste modelo Foram estimados minimizando o erro quadrático das previsões de um passo à frente, e não as previsões a mais longo prazo, caso em que a tendência não faz muita diferença. Se tudo o que você está olhando são 1-passo-frente erros, você não está vendo a imagem maior de tendências sobre (digamos) 10 ou 20 períodos. A fim de obter este modelo mais em sintonia com a nossa extrapolação do globo ocular dos dados, podemos ajustar manualmente a tendência de suavização constante para que ele usa uma linha de base mais curto para a estimativa de tendência. Por exemplo, se escolhemos definir 946 0,1, então a idade média dos dados usados ​​na estimativa da tendência local é de 10 períodos, o que significa que estamos fazendo uma média da tendência ao longo dos últimos 20 períodos aproximadamente. Here8217s o que o lote de previsão parece se ajustarmos 946 0.1 mantendo 945 0.3. Isso parece intuitivamente razoável para esta série, embora seja provavelmente perigoso para extrapolar esta tendência mais de 10 períodos no futuro. E sobre as estatísticas de erro Aqui está uma comparação de modelos para os dois modelos mostrados acima, bem como três modelos SES. O valor ótimo de 945 para o modelo SES é de aproximadamente 0,3, mas resultados semelhantes (com ligeiramente mais ou menos responsividade, respectivamente) são obtidos com 0,5 e 0,2. (A) Holts linear exp. Alisamento com alfa 0,3048 e beta 0,008 (B) Holts linear exp. Alisamento com alfa 0,3 e beta 0,1 (C) Alisamento exponencial simples com alfa 0,5 (D) Alisamento exponencial simples com alfa 0,3 (E) Alisamento exponencial simples com alfa 0,2 Suas estatísticas são quase idênticas, então realmente não podemos fazer a escolha com base De erros de previsão de 1 passo à frente dentro da amostra de dados. Temos de recorrer a outras considerações. Se acreditarmos firmemente que faz sentido basear a estimativa de tendência atual sobre o que aconteceu nos últimos 20 períodos, podemos fazer um caso para o modelo LES com 945 0,3 e 946 0,1. Se quisermos ser agnósticos quanto à existência de uma tendência local, então um dos modelos SES pode ser mais fácil de explicar e também fornecerá mais previsões de médio-caminho para os próximos 5 ou 10 períodos. Evidências empíricas sugerem que, se os dados já tiverem sido ajustados (se necessário) para a inflação, então pode ser imprudente extrapolar os resultados lineares de curto prazo Muito para o futuro. As tendências evidentes hoje podem afrouxar no futuro devido às causas variadas tais como a obsolescência do produto, a competição aumentada, e os abrandamentos cíclicos ou as ascensões em uma indústria. Por esta razão, a suavização exponencial simples geralmente desempenha melhor fora da amostra do que poderia ser esperado, apesar da sua extrapolação de tendência horizontal quotnaivequot. Modificações de tendência amortecida do modelo de suavização exponencial linear também são freqüentemente usadas na prática para introduzir uma nota de conservadorismo em suas projeções de tendência. O modelo LES com tendência a amortecimento pode ser implementado como um caso especial de um modelo ARIMA, em particular, um modelo ARIMA (1,1,2). É possível calcular intervalos de confiança em torno de previsões de longo prazo produzidas por modelos exponenciais de suavização, considerando-os como casos especiais de modelos ARIMA. A largura dos intervalos de confiança depende de (i) o erro RMS do modelo, (ii) o tipo de suavização (simples ou linear) (iii) o valor (S) da (s) constante (s) de suavização e (iv) o número de períodos que você está prevendo. Em geral, os intervalos se espalham mais rapidamente à medida que o 945 se torna maior no modelo SES e eles se espalham muito mais rápido quando se usa linear ao invés de alisamento simples. Este tópico é discutido mais adiante na seção de modelos ARIMA das notas. (Retornar ao início da página.) Medição passiva de tempos de viagem de ida e volta de TCP Uma análise detalhada das medidas de RTT com TCP Stephen D. Strowes, Boundary Inc. Medir e monitorar a rede O RTT (tempo de ida e volta) é importante por várias razões: Operadores de rede e usuários finais para entender o desempenho da rede e ajudar a otimizar seu ambiente, e ajuda as empresas a entender a capacidade de resposta de seus serviços para seções de sua base de usuários. A medição da rede RTT também é importante para as pilhas TCP (Transmission Control Protocol) para ajudar a otimizar o uso da largura de banda. As pilhas TCP nos hosts finais otimizam para obter alto desempenho, passivamente medindo RTTs de rede usando opções de carimbo de hora de TCP amplamente implantadas em cabeçalhos TCP. Essas informações, se utilizadas, trazem algumas vantagens operacionais distintas para serviços e aplicativos: os hosts não precisam lançar solicitações de eco ICMP (Internet Control Message Protocol) fora da banda, nem precisam incorporar informações de tempo na aplicação tráfego. Em vez disso, os hosts podem medir passivamente o RTT representativo da latência de rede de caminho completo experimentada pelo tráfego TCP. Entender o atraso da rede é fundamental para compreender alguns aspectos importantes do desempenho da rede. O tempo necessário para percorrer a rede entre dois hosts afeta o desempenho dos serviços e afeta a largura de banda efetiva disponível para os hosts finais. Medir essas informações passivamente nos servidores pode ajudar a fornecer uma indicação de gratificação da resposta do serviço na perspectiva dos clientes e oferece simultaneamente uma métrica de distância de rede para clientes que é mais útil do que a geolocalização baseada em IP grosseira e muitas vezes imprecisa. Medir RTT para muitos hosts ou clientes não é trivial. Uma solução é sondagem ativa, na forma de solicitações de eco ICMP e respostas (ou seja, ping), mas isso incorre em carga de rede adicional. Em alguns casos, o tráfego ICMP é privatizado, descartado completamente ou roteado em um caminho diferente do tráfego TCP. Quando nada disso é verdade, ainda há a possibilidade de que RTT está sendo medido para um NAT (Network Address Translator) e não para o host final troca de dados. Outra solução possível para a medição da rede RTT é medir a responsividade da camada de aplicação. Isso, no entanto, implica uma medida ad hoc específica de aplicativo realizada incorporando IDs ou timestamps no TCP bytestream, o que pode dar uma medida enganosa e inflada para a rede RTT, dependendo das condições da rede (mais sobre isso mais tarde). Nenhuma destas soluções é totalmente satisfatória porque nem é garantido para medir a rede RTT que afeta o tráfego de aplicativos. As informações de carimbo de data / hora transportadas em cabeçalhos TCP, entretanto, oferecem outra solução: é efetivamente uma medição RTT de camada de rede que passa pela maioria das caixas intermediárias, como NATs e firewalls e mede o RTT de caminho completo entre os dois hosts em uma conexão. Essas informações fornecem a única solução de estimação RTT não-personalizada disponível para os hosts finais. Ferramentas como tcptrace podem calcular RTT usando este estado, mas qualquer software que pode inspecionar cabeçalhos de pacotes (normalmente realizado via libpcap) ou interrogar o sistema local para tal estado do kernel pode coletar passivamente RTTs de rede para todas as conexões ativas. As principais diferenças entre essas medições e como diferentes condições de rede as afetam não são óbvias. O objetivo deste artigo é discutir e demonstrar as medidas passivas de RTT possíveis usando o tráfego TCP. O TCP de fundo oferece um bytestream confiável para as aplicações que usá-lo aplicativos enviar quantidades arbitrárias de dados ea camada TCP envia isso como uma série de segmentos com números de seqüência e comprimentos de carga útil indicando o pedaço do bytestream cada segmento representa. Para obter um fluxo de bytes ordenado, o TCP retransmite os segmentos se faltarem entre a origem e o destino (ou, se uma confirmação para um segmento recebido desaparecer entre o destino ea origem). Para melhorar o desempenho em todas as condições da rede, a pilha TCP mede RTT entre ele e o outro host em cada conexão para permitir que ele otimize seu RTO (tempo limite de retransmissão) adequadamente e otimizar o tempo necessário para recuperar de um evento de perda. A especificação TCP original não continha nenhum mecanismo de cálculo de RTT dedicado e dedicado. Em vez disso, pilhas TCP tentou calcular RTTs observando o tempo em que um número de seqüência foi enviado e correlacionando que com um correspondente confirmação. O cálculo de RTTs utilizando este mecanismo na presença de perda de pacotes, no entanto, torna a medição precisa impossível. 13 timestamps TCP foram definidos para permitir este cálculo de forma independente em ambas as extremidades de uma conexão enquanto os dados estão sendo trocados entre os dois hosts. TCP timestamps oferecem um mecanismo para calcular RTT que é independente de números de seqüência e reconhecimentos. O algoritmo para calcular RTT de um fluxo de TCP entre dois anfitriões, documentado em RFC 1323, 3 é usado geralmente por ambos os anfitriões de extremidade em uma conexão para refinar o RTO para melhorar o desempenho de TCP na presença da perda. O mecanismo é habilitado por padrão em sistemas operacionais modernos e raramente é bloqueado por firewalls e, portanto, aparece na maioria dos fluxos TCP a opção TCP Timestamp é conhecido por ser amplamente implantado na natureza. 5 RTT é calculado continuamente para cada conexão enquanto os dados são trocados nessas conexões. O TCP calcula RTT para pacotes trocados numa base por ligação e calcula a média móvel exponencial destas medições, referida como SRTT (RTT suavizado). A pilha TCP também mantém a variação no RTT medido, o RTTVAR. O SRTT que a pilha TCP calcula para uma conexão determina o valor RTO. Dadas as variáveis ​​G, que é a granularidade do relógio do sistema, e K. Que é definido como 4, 8 o RTO é calculado da seguinte forma: RTO SRTT máx (G, K RTTVAR) O RTO é usado para otimizar o tempo que a pilha TCP espera, tendo transmitido um segmento TCP, para um reconhecimento correspondente antes de tentar novamente o Enviar operação. Medições precisas de RTT entre dois hosts permitem que o TCP ajuste seu RTO com precisão para cada conexão ativa. Entender o estado contido nos cabeçalhos TCP transportados na maior parte do tráfego TCP pode ajudar os projetistas de aplicativos ou operadores de rede a entender os RTTs de rede experimentados pelo tráfego de aplicativos. Muitas aplicações com restrições em tempo real utilizam TCP para transportar o seu tráfego, o que é aceitável dentro de certos limites. 1 É útil entender como a semântica bytestream pode afetar o desempenho em tempo real. Os carimbos de data / hora do TCP são campos opcionais no cabeçalho TCP, portanto, embora sejam extremamente úteis e transportados na maioria dos tráfegos, eles não são estritamente necessários para que o TCP funcione. Os valores são mantidos em dois campos de cabeçalho de 4 bytes: TSval (Timestamp Value) e TSecr (Timestamp Echo Reply). Cada host envolvido em uma conexão emite timestamps TSval para o outro host sempre que um segmento TCP é transmitido e aguarda o TSecr correspondente em retorno. A diferença de tempo medida entre a primeira emissão de um TSval e recebê-lo em um TSecr é a pilha TCP melhor adivinhar como RTT. O carimbo de data / hora aqui é um valor arbitrário que aumenta a granularidade do relógio do sistema local, não é um carimbo de data / hora que pode ser interpretado de forma independente, como o número de segundos desde a época. A título de exemplo, na figura 1 o tempo progride de cima para baixo, e as linhas horizontais indicam incremento em tempo real (por exemplo, em milissegundos). Dois hosts, A e B, têm uma conexão aberta e estão trocando pacotes. Na realidade, os dois hosts têm relógios diferentes, mas por simplicidade assumem que estão perfeitamente sincronizados. O exemplo funciona da seguinte forma: Host A emite um segmento TCP que contém as opções de carimbo de data / hora TSval 1, TSecr 0 TSecr é definido como 0 porque nenhum TSval de B foi observado em A isso geralmente indica que A está abrindo uma conexão para B. Host B Recebe este timestamp no tempo 1 no tempo 2, o host B emite um segmento TCP de volta para A, que contém os valores TSval 2, TSecr TSvalA 1 Estes são recebidos no host A no tempo 3. Dado este valor ecoado e o tempo atual, o host A sabe que RTT nesta instância é de aproximadamente 2 ms. Subseqüentemente, os dois segmentos seguintes que A emitem ambos carregam os valores TSval 3, TSecr TSvalB 2 O primeiro deles é recebido no host B no tempo 4, então o host B também pode calcular um RTT de 2 ms. Dado os dois ecos do mesmo carimbo de data / hora recebido, a duração mínima é assumida como sendo a mais próxima do atraso de rede real se o atraso de rede muda, as futuras centrais medirão isto. O envio contínuo de valores para o outro host e observando o tempo mínimo até que a resposta de eco contendo esse valor seja recebida permite que cada host final determine o RTT entre ele e o outro host em uma conexão. A ressalva é que para um TSval ser considerado útil, o segmento TCP deve estar transportando dados da aplicação. Os segmentos TCP podem carregar legitimamente uma carga útil de zero bytes, mais comumente ao reconhecer um segmento de dados, ou quando os keepalives TCP estão ativados. Ao exigir que TSvals válidos venham apenas de segmentos TCP transportando dados, o algoritmo é menos provável para medir quebras na comunicação entre os hosts, onde a troca de dados pausa por um tempo, em seguida, reinicia usando o último TSval recebido como o TSecr. Isto também implica que, num fluxo TCP no qual os dados são trocados exclusivamente numa direcção, apenas um dos anfitriões será capaz de calcular RTT. Normalmente, no entanto, alguma vibração de camada de aplicação ocorre em ambas as direções. Finalmente, o cálculo do RTT pode ser executado em qualquer host que esteja encaminhando o tráfego, e não apenas os hosts finais, portanto RTTs de caminho completo em todas as conexões dentro de uma rede podem ser calculados a partir de seu host de gateway, por exemplo. Tudo o que é necessário para calcular RTTs precisos é que ambas as direções de uma conexão passam pelo host de monitoramento. Se este é o caso, muitas vezes se baseia na arquitetura de rede, mas sabe-se que os caminhos na Internet normalmente não são simétricos. 2 Executando este algoritmo em um nó de gateway para uma rede através da qual todo o tráfego passa, no entanto, permite que o cálculo RTT ocorra passivamente em todas as conexões a partir de apenas um local. Demonstrando medições de RTT A rede é um recurso compartilhado, e vários fatores podem afetar o cálculo do TCP RTT. Esta seção abrange amplamente alguns desses fatores e demonstra onde o cálculo do TCP RTT difere do RTT percebido pelas aplicações. O objetivo é demonstrar a paridade com as estimativas de RTT de ICMPs, assumindo que tudo o mais é igual, e como a perda de pacotes eo buffering excessivo afetam essas medidas em relação à latência percebida na camada de aplicação. Para demonstrar a responsividade das medições RTT, os fluxos de tráfego foram simulados em um ambiente virtualizado. O ambiente é simples: dois hosts Linux foram configurados em sub-redes diferentes, e um terceiro host Linux, com encaminhamento de pacotes ativado, foi configurado com duas interfaces de rede, uma para cada sub-rede. Este anfitrião de encaminhamento é utilizado para variar as características de rede observadas entre os dois anfitriões finais, utilizando a ferramenta tc (controlo de tráfego). As características de rede não são modificadas nos hosts finais, portanto, suas pilhas TCP não estão diretamente cientes da configuração para cada experiência. Para cada experimento, um atraso de saída de 50 ms é definido em cada interface no host de encaminhamento, resultando em um RTT de 100 ms entre os dois hosts finais. Cada experimento dura 180 segundos. A taxa de dados máxima é definida para 10 Mbps. Nesses hosts finais, os seguintes componentes estão sendo executados: bull Ping está sendo executado em ambos os hosts, então cada host está enviando solicitações de eco ICMP para o outro uma vez por segundo. Isto mede o valor RTT de ICMP para estabelecer um RTT de terra-verdade entre os anfitriões. Bull Um par de programas simples de cliente / servidor está sendo executado, onde o cliente envia um timestamp local sobre uma conexão TCP uma vez a cada segundo para o servidor e o servidor repete o timestamp de volta para o cliente o cliente calcula a diferença sempre que lê a resposta Fora do bytestream. O aplicativo cliente executa dois segmentos: um para envio e outro para recebimento. Isso mede o RTT percebido pela camada de aplicação. Bull Também executando em ambos os hosts finais é um leitor pcap (captura de pacotes) que observa os valores de timestamp TCP transportados nos cabeçalhos TCP para o tráfego gerado pelo programa cliente / servidor a partir do qual calcula RTT, fornecendo o último valor RTT uma vez a cada segundo . O valor exportado para essas experiências é o RTT e não o SRTT, uma vez que o objetivo aqui é examinar RTT real e não uma aproximação. Isso calcula RTT passivamente de timestamps TCP. Nenhum outro tráfego é trocado entre hosts, exceto durante a demonstração de bufferbloat. Os exemplos a seguir demonstram: 1. A capacidade de monitorar a alteração do RTT com precisão, modificando a latência da rede. 2. O impacto da perda de pacotes. 3. O impacto de buffers oversized (comumente referido como bufferbloat). Algoritmo de Nagles Antes de descrever estas experiências detalhadamente, vamos dar uma olhada no algoritmo de Nagles, 6 que é habilitado por padrão em muitas pilhas TCP. Sua finalidade é reduzir o número de pequenos, cabeçalho-pesado datagramas transferidos pela rede. Ele opera atrasando a transmissão de novos dados se a quantidade de dados disponíveis para enviar for menor que o MSS (tamanho máximo do segmento), que é o segmento mais longo permitido devido à unidade de transmissão máxima no caminho e se houver dados enviados anteriormente Ainda aguardando reconhecimento. Nagles algoritmo pode causar atrasos desnecessários para aplicativos de tempo crítico em execução sobre TCP. Assim, porque a suposição é que tais aplicações serão executadas sobre TCP nos experimentos apresentados aqui, o algoritmo Nagles é desativado. Isto é conseguido no cliente e servidor definindo a opção de socket TCPNODELAY em todos os sockets em utilização. Experiência 1: Alteração das Condições de Rede Ao calcular RTTs, é crítico que as medições reflitam com precisão as condições atuais. O objetivo desta experiência é simplesmente demonstrar a capacidade de resposta de nossas métricas para condições que mudam de maneira previsível. Nesta experiência, o RTT de base (100 ms) é inicialmente ajustado e, em seguida, uma latência adicional (50 ms) é adicionada e deduzida alternativamente a partir dessa base RTT, incrementando o atraso em ambas as interfaces no servidor de encaminhamento em 25 ms. Nenhuma taxa de sinistralidade é especificada no caminho e nenhum tráfego adicional é enviado entre os dois hosts. Observe que, uma vez que o cálculo RTT do TCP é totalmente passivo, ele não observa variação no RTT se nenhum dado está sendo trocado. Na presença de tráfego, no entanto, é benéfico que a medição RTT atualizar rapidamente. Os resultados desta experiência são mostrados na figura 2. As medições tomadas em todas as camadas indicam uma distribuição bimodal, que é precisamente o que deveria ser esperado sem outras condições de rede que afectam o tráfego. As três formas de medições tomadas são todas efetivamente equivalentes, com o RTT médio medido durante os experimentos variando não mais do que 1 por cento. Experiência 2: perda de pacotes A perda de pacotes em uma rede afeta a confiabilidade, a capacidade de resposta e a taxa de transferência. Ele pode ser causado por muitos fatores, incluindo links ruidosos que corrompem dados, hardware de encaminhamento com falha ou falhas transitórias durante a reconfiguração de roteamento. Assumindo que a infra-estrutura de rede não é defeituosa eo roteamento é estável, a perda é muitas vezes causada pelo congestionamento da rede quando os fluxos de dados convergentes causam um gargalo, forçando os buffers a transbordar no encaminhamento de hardware e, portanto, pacotes a serem descartados. A perda pode ocorrer no caminho direto ou inverso de uma conexão TCP, sendo a única indicação para a pilha TCP a ausência de um ACK recebido. TCP oferece aplicações um bytestream ordenado. Assim, quando a perda ocorre e um segmento tem que ser retransmitido, os segmentos que já chegaram mas que aparecem mais tarde no bytestream devem aguardar a entrega do segmento em falta para que o bytestream possa ser remontado em ordem. Conhecido como bloqueio de head-of-line, isso pode ser prejudicial para o desempenho de aplicativos rodando sobre TCP, especialmente se a latência é alta. Reconhecimentos seletivos, se ativados, permitem que um host para indicar com precisão qual subconjunto de segmentos desapareceram no caminho direto e, portanto, qual subconjunto para retransmitir. Isso ajuda a melhorar o número de segmentos em vôo quando a perda ocorreu. Nesta experiência, a perda de pacotes foi ativada no host de encaminhamento a taxas de perda de 5, 10, 15 e 20 por cento, com o objetivo de demonstrar que os segmentos TCP ainda são trocados e os RTTs estimados pela TCP são mais tolerantes à perda do que os RTTs Medida pela aplicação. Os resultados dessa experiência são mostrados na figura 3. Os pontos representam valores médios, mostrando os percentis 5 e 95. Nestes testes, uma perda de pacotes de 5% foi capaz de introduzir um atraso de meio segundo para a aplicação, mesmo que o valor médio seja próximo do RTT real de 100 ms a média medida para RTT de camada de aplicação com perda de 5% é 196,4 Ms, 92,4 ms superior à média medida para TCP RTT. Os meios medidos aumentam rapidamente: 400,3 ms para perda de 10%, 1,2 s para perda de 15% e 17,7 para perda de 20%. Os valores médios mostrados na figura 3 para RTT de camada de aplicação seguem um padrão semelhante e neste exemplo manifestam-se em RTT medianos de camada de aplicação medidos em cerca de 12 segundos com perda de pacotes de 20%. O TCP RTT, no entanto, está sempre próximo da distância verdadeira de 100 ms, embora as trocas de pacotes atrasadas possam inflar esta medida, o maior desvio médio observado nestes testes entre TCP RTT e ICMP RTT foi um aumento de 57,7 ms no RTT medido na Camada TCP. O efeito da perda de pacotes pode ser devastador para a capacidade de resposta das aplicações TCP, mas é claro que a medição passiva de RTTs de nível de rede é ainda viável e distinta da latência percebida experimentada por aplicações que podem ser introduzidas pela semântica de entrega TCPs em ordem . Experiência 3: Bufferbloat Mal-entendidos sobre a relação entre a prevenção de perdas eo desempenho da rede levaram a buffering excessivo sendo introduzido para encaminhamento e roteamento de hardware como uma estratégia de evitar perda. Muitas vezes (mas não exclusivamente), isso afeta o CPE de commodities (equipamentos de instalações do cliente) e, portanto, afeta diretamente os usuários finais. O buffering excessivo, no entanto, funciona contra o algoritmo de detecção de perda do TCPs, aumentando o atraso e, assim, atrasando o tempo necessário para que uma pilha TCP identifique perda e atraso, isto é, o atraso adicional introduzido por grandes buffers pode interromper o mecanismo de controle de congestionamento TCPs. Bufferbloat é um fenômeno bem conhecido 7 onde o buffer mais profundo em um caminho de rede entre dois hosts é eventualmente preenchido pelo TCP. Ostensivamente, os projetistas de sistemas aumentam o tamanho do buffer para reduzir a perda, mas os buffers mais profundos aumentam o tempo real gasto pelos pacotes para percorrer um caminho, aumentando o RTT e atrasando o tempo necessário para que o TCP determine quando um evento de perda ocorreu. A perda é o driver para o algoritmo de controle de congestionamento de TCPs, de modo que aumentar o tamanho do buffer é realmente contraproducente. Para demonstrar bufferbloat nesta experiência, tc fila tamanhos foram sistematicamente aumentou de 10 KB, para 100 KB, em seguida, 200 KB, em seguida, finalmente 300 KB sobre o encaminhamento host, e netcat foi usado para criar uma alta largura de banda fluxo entre cada um dos final Hosts antes de iniciar o aplicativo cliente / servidor. A intenção do fluxo de alta largura de banda era preencher as filas mais longas no host de encaminhamento, demonstrando que o tempo de drenagem afeta a capacidade de resposta da aplicação. Os resultados da experiência são mostrados nas figuras 4 e 5. A figura 4 mostra a dispersão das medições de RTT à medida que os tamanhos de tampão foram aumentados. O teste de 300 KB na figura 5 mostra medidas RTT muito semelhantes de ambos os hospedeiros nas medições ICMP, na camada TCP, e na camada de aplicação a média e os valores médios para todas as camadas nestas experiências estavam todos dentro de 2 ms um do outro. Todas as medidas RTT são infladas pela mesma quantidade porque o tamanho excessivo do buffer aumenta efetivamente o comprimento do caminho da camada de rede. Dado que o aplicativo de teste emite apenas um punhado de pacotes uma vez por segundo, o padrão de dente de serra é indicativo dos dados de netcat preenchendo uma fila, em seguida, TCP aguardando a fila para drenar antes de enviar mais dados de netcats, formando um padrão estourado. Estas filas preenchidas afectam negativamente a entrega de todo o outro tráfego e aumentam as aplicações de teste RTTs, que variam de 100 ms a cerca de 250 ms, como resultado. O problema bufferbloat está sendo ativamente trabalhado. Mecanismos como SACK (Reconhecimento Seletivo), DSACK (Duplicate SACK) e ECN (Explicit Congestion Notification), quando ativado, todos ajudam a aliviar bufferbloat. Além disso, estratégias de gerenciamento de filas ativas como o Codel foram aceitas nos kernels Linux principais. Em resumo, é claro que para minimizar os atrasos causados ​​pelo bloqueio de cabeçalho na TCP, a perda de pacotes deve ser mantida ao mínimo. Dado que devemos esperar perda de pacotes como um driver primário do algoritmo de controle de congestionamento de TCPs, devemos também ter cuidado para minimizar o buffer de rede e evitar os atrasos incorridos pelo bufferbloat. O último requisito, em particular, é útil ter em mente ao provisionar redes para dados de tempo crítico que devem ser entregues de forma confiável. Trabalho relacionado O problema principal ao usar o TCP para aplicativos sensíveis ao tempo é que o TCP oferece um bytestream confiável. Este requisito é distinto de outros aspectos fundamentais do TCP, como o controle de congestionamento eo controle de fluxo. TCP não é adequado para todas as aplicações, no entanto. Eli Brosh et ai. Discutem com mais detalhes o comportamento do TCP na presença de atraso e certos limites de aceitabilidade para o desempenho da aplicação. 1 UDP 9 é o protocolo de transporte mais comumente usado após o TCP é um protocolo orientado a datagrama sem controle de congestionamento, controle de fluxo ou mecanismos de ordenação de mensagens. Ele efetivamente aumenta a camada de IP com números de porta de camada UDP. Sem a restrição de ordenação de mensagens, ela não é afetada pelo problema de bloqueio de cabeçalho que pode afetar as conexões TCP. UDP sozinho não é adequado para muitas aplicações, no entanto, porque a confiabilidade é muitas vezes um requisito, eo controle de congestionamento é importante para permitir a partilha justa dos recursos da rede. Muitas aplicações escolhem protocolos de camada em cima de UDP, tais como RTP (Real Time Protocol) em conjunto com RTCP (Real Time Control Protocol), 10 principalmente destinados a transportar tempo sensível tráfego em tempo real capaz de lidar com pequenas quantidades de perda. Estes protocolos atender as aplicações, tais como VoIP que não exigem 100 por cento de confiabilidade e encontrar atraso incorridos pela cabeça de linha de bloqueio prejudicial. O RTCP permite o controle de congestionamento grosseiro e permite que aplicativos em tempo real modifiquem seu uso escolhendo configurações de qualidade diferentes para o fluxo ao vivo, mas o controle de congestionamento não é construído em si. O DCCP 4 é um protocolo de camada de transporte orientado a mensagens, de melhor esforço que não impõe ordens estritas na entrega de dados, não trata a retransmissão de datagramas, mas executa o controle de congestionamento para conservar recursos de rede. DCCP é útil para um conjunto semelhante de aplicações como RTP e RTCP, mas a adição de controle de congestionamento sem potencial de datagrama duplicação é importante, permitindo RTP para executar sobre DCCP com menos preocupações para o consumo de recursos de rede. O SCTP 11 é também um protocolo de transporte orientado a mensagens, em que cada mensagem é entregue ao pedido em ordem. O pedido de mensagem estrita, no entanto, é opcional e, portanto, o transporte pode ser mais responsivo para o tráfego de aplicativos. SCTP também atende a confiabilidade parcial. Note que o bufferbloat é endêmico e outros protocolos de transporte são afetados da mesma forma que o TCP, mas relaxar restrições estritas de ordenação na camada de transporte é uma abordagem para melhorar o desempenho, removendo o tempo de resposta adicional incorrido quando o fluxo é bloqueado esperando por falta dados. AQM (active queue management) techniques 7 are being deployed in new Linux kernels to help further alleviate bufferbloat without modification to applications. Conclusion TCP is the most commonly used transport-layer protocol today, and it meets the requirements that many applications desire: it offers a reliable bytestream and handles concerns of retransmissions and congestion avoidance. TCPs semantics can mean that there is a large discrepancy between the RTT measured at the transport layer and the RTT measured by the application reading the bytestream. Thus, TCP is not always the best transport for time-critical applications, but the TCP RTT measurement mechanism that is enabled in most TCP stacks today achieves measurements very close to the ICMP ground truth and performs substantially better than a similar echo-based protocol embedded within the TCP bytestream. Related Articles Gettys, J. Nichols, K. 2011. Bufferbloat: Dark Buffers in the Internet queue. acm. org/detail. cfmid2071893 . References 1. Brosh, E. Baset, S. Misra, V. Rubenstein, D. Schulzrinne, H. 2010. The delay-friendliness of TCP for realtime traffic. IEEE/ACM Transactions on Networking 18 (5): 478-491. 2. He, Y. Faloutsos, M. Krishnamurthy, S. and Huffaker, B. 2005. On routing asymmetry in the Internet. In Proceedings of IEEE Global Telecommunications Conference (GLOBECOM) . 3. Jacobson, V. Braden, R. Borman, D. 1992. TCP extensions for high performance. RFC 1323. 4. Kohler, E. Handley, M. Floyd, S. 2006. Datagram Congestion Control Protocol. RFC 4340. 5. Kuumlhlewind, M. Neuner, S. and Trammell, B. 2013. On the state of ECN and TCP options on the Internet. In Passive and Active Measurement . M. Roughan and R. Chang, eds. Lecture Notes in Computer Science 7799: 135-144. Springer Berlin Heidelberg. 6. Nagle, J. 1984. Congestion control in IP/TCP internetworks. RFC 896. 8. Paxson, V. Allman, M. Chu, J. Sargent, M. 2011. Computing TCPs retransmission timer. RFC 6298. 9. Postel. J. 1980. User Datagram Protocol. RFC 768. 10. Schulzrinne, H. Casner, S. Frederick, R. Jacobson, V. 2003. RTP: a transport protocol for realtime applications. RFC 3550. 11. Stewart, R. 2007. Stream Control Transmission Protocol. RFC 4960. 12. Stewart, R. Ramalho, M. Xie, Q. Tuexen, M. Conrad, P. 2004. Stream Control Transmission Protocol (SCTP) partial reliability extension. RFC 3758. 13. Zhang, L. 1986. Why TCP timers dont work well. In Proceedings of SIGCOMM (August). Stephen Strowes is a senior engineer at Boundary Inc. where he works on network measurement metrics and tools. He has previously studied scalable inter-domain routing protocols, NAT traversal protocols, and peer-to-peer protocols for realtime content. copy 2013 ACM 0001-0782/13/10 15.00 Originally published in Queue vol. 11, no. 8 8212 see this item in the ACM Digital Library Amin Vahdat, David Clark, Jennifer Rexford - A Purpose-built Global Network: Googles Move to SDN A discussion with Amin Vahdat, David Clark, and Jennifer Rexford Harlan Stenn - Securing the Network Time Protocol Crackers discover how to use NTP as a weapon for abuse. Peter Bailis, Kyle Kingsbury - The Network is Reliable An informal survey of real-world communications failures Christoph Paasch, Olivier Bonaventure - Multipath TCP Decoupled from IP, TCP is at last able to support multihomed hosts. Comments Anupama Thu, 03 Jul 2014 07:48:11 UTC Thank You so much for such an amazing document on TCPtrace and RTT. Its one of my best sources to learn about RTT. As I am currently working on it, came across a situation in which I need to calculate RTT in microseconds. It would be really great if you could clear my doubt on this. So Is there a way to change the precision of RTT in tcptrace If so, how is it possible Olivier Bonaventure Tue, 29 Oct 2013 13:51:29 UTC Getting the ground truth about delay measurements in todays Internet is difficult. In a real network, many factors influence the measured delay. One of these factors is the utilization of load-balancing techniques such as Equal Cost Multipath (ECMP) to spread the load on routers among different paths. Most deployments of ECMP rely on a hash function computed on the source and destination addresses and the source and destination ports of the packet. When there are several equal cost paths to the same destination, the routers will load balance the packets over these paths by ensuring that all packets from a given TCP connection follow the same path. When these routers process ICMP packets generated by ping, the load-balancing algorithm does not work in the same way and successive ping packets may follow different paths through the network. Some of these paths may have very different delays. If you plan to perform delay measurements with ping, Id encourage you to read the paper From Paris to Tokyo: On the Suitability of ping to Measure Latency written by Cristel Pelsser, Luca Cittadini, Stefano Vissicchio and Randy Bush and presented last week and the Internet Measurements Conference. It highlight several important difficulties when using ping to measure delays. copy 2016 ACM, Inc. All Rights Reserved.

No comments:

Post a Comment