Roommate lagging internet connection by watching videos from Chinese website. Can QoS fix issue?
Eu não li toda a sua história, mas com base na pergunta que você fez, a resposta geralmente é não muito . QoS pode, em algumas circunstâncias ideais, parcialmente resolver o problema se você estiver usando certos serviços de alta prioridade (como Voice over IP) e os pacotes estão devidamente marcados e seu provedor de upstream respeita QoS. Mas isso não ajudará se a prioridade dos seus pacotes e dos pacotes do seu companheiro de quarto for a mesma.
O que você quer é um tipo de Gerenciamento Ativo de Filas .
O que acontece quando seu colega de quarto assiste a um vídeo? Bem, uma enorme quantidade de dados é recebida pelo seu roteador / modem compartilhado. Para evitar a perda desses dados, que chegam tão rápido quanto o modem pode receber, ele cria um buffer interno cada vez maior no modem que enfileira todos os dados do pacote.
Ele tem que fazer isso porque está recebendo os pacotes IP fora de ordem e de vários lugares (seus downloads, downloads de companheiros de quarto, etc) e tem que remontar os pedaços juntos para formar pacotes TCP inteiros. Por isso, cria esse buffer enorme para evitar a perda de pacotes; caso contrário, com um buffer pequeno, alguns pacotes teriam que ser descartados, o que poderia resultar na necessidade de reenviar os dados.
Infelizmente, quando o buffer ultrapassa um certo tamanho, os benefícios de ter o buffer são compensados por seus inconvenientes. A principal desvantagem de um buffer "inchado" é que há uma enorme latência envolvida com o recebimento de um pacote.Latência significa que o aplicativo que envia ou recebe os dados tem que esperar um tempo extremamente longo para confirmar se foi enviado ou recebido adequadamente. Como os dados em soquetes TCP são "acked" pelo outro lado como uma forma de confirmar "OK, eu entendi!", A outra extremidade pode assumir após uma certa quantidade de latência que o pacote foi perdido e tente reenviar mesmo assim. Assim, o objetivo do buffer grande era evitar reenvios, mas, em sua tentativa de fazê-lo, ele causa reenvios Cada reenvio é apenas mais largura de banda consumida / desperdiçada, e mais latência.
O Active Queue Management, conceitualmente, é um tipo de solução que tenta inteligentemente limitar o tamanho dos buffers. Mantendo os buffers o menor possível, enquanto grande o suficiente para impedir que os dados most sejam perdidos devido à espera por pacotes fora de ordem, você pode evitar o buffer bloat . / p>
O que os pesquisadores tentam fazer há anos (e que só obtivemos sucesso parcial em maio de 2012) é projetar um algoritmo que implemente o AQM (Active Queue Management, gerenciamento de filas ativas) sem qualquer configuração ou ajuste manual do usuário. (porque isso seria demorado e chato). Apenas uma espécie de "marcador mágico" que equilibra corretamente os tamanhos das filas para minimizar a perda de pacotes e minimizar a latência ao mesmo tempo.
Até agora, a única coisa que descobrimos que é enormemente bem-sucedida em roteadores domésticos é o Gerenciamento Ativo de Filas de Controlled Delay (CoDel), que é uma adição recente ao kernel do Linux.
O CoDel é muito útil porque controla o atraso (latência) dos pacotes. Como isso é um pouco técnico demais para esta questão.
Alguns links no CoDel para que você possa ler:
artigos de Jim Gettys sobre codel
Editar : o QoS é apenas metade da solução. O QoS baseado em portas (por exemplo, dar prioridade aos seus pacotes) só o levará até certo ponto; ele não reduzirá o inchaço do buffer, e sua latência ainda será alta. Mas sua perda de pacotes pode cair um pouco.
CoDel combinado com QoS, a la CeroWRT no seu roteador, é realmente a melhor abordagem.