Os pacotes de rede não têm um campo "usuário", portanto, o máximo que você pode fazer é identificar os pacotes de um usuário no host onde esses pacotes são originados e priorizá-los nesse host. Isso não mudará nada sobre como esses pacotes são tratados no resto da rede.
Alternativamente, se você controlar a rede (ou parte da rede), você pode usar a identificação acima para marcar o pacote de alguma outra forma, e então priorizar os pacotes marcados na (parte da) rede que você controla.
Dê uma olhada no controle de tráfego ( tc
) e na reescrita de pacotes ( iptables
).
Modificar o comportamento do TCP com base no usuário (por exemplo, colocando o usuário em um namespace de rede e modificando as configurações de TCP nesse namespace) provavelmente não funcionará: Se a rede já estiver congestionada, os pacotes serão descartados e esgotados. buffers causam latência em todos os lugares, enviar pacotes de forma mais agressiva só vai piorar tudo para todos.
Mas você é livre para experimentar em sua rede local, é claro.
E se a aplicação prática que você tinha em mente não é qualidade de serviço em sua própria rede local, mas algo como "estou compartilhando um apartamento com outros caras, e sou muito egoísta e quero assistir Vídeos do Youtube sem esperar, enquanto está tudo bem se os outros caras esperarem ": Isso não vai funcionar. Você não está fornecendo conteúdo útil para outra pessoa, o que você poderia priorizar, você está baixando conteúdo, e o afunilamento está no lado do ISP da linha DSL (ou qualquer outra) entre o ISP e seu flat. E o ISP controla este lado e decide como priorizar os pacotes, então nada do que você fizer mudará nada sobre isso.