
Eu estava me perguntando o que acontece se um switch perder muitos pacotes. A razão pela qual estou perguntando é porque tenho um switch que está constantemente sobrecarregado. Isso é causado por indivíduos que baixam arquivos pesados na rede. Eu tenho um switch de backup caso este falhe.
Responder1
A resposta curta é “não muito”. Em termos do que realmente acontece no switch, os pacotes são perdidos – e é isso. O switch não se importa além de registrar o fato de que eles foram perdidos.
Você descobrirá exatamente o que causa a perda de pacotes na seção a seguir e como a rede como um todo foi projetada para lidar com isso.
Novamente, resumindo, a resposta à perda de pacotes é feita pelos clientes e não pelo switch. A responsabilidade é deles e o único controle que o switch tem sobre ele é através da configuração de suas filas e com recursos como QoS que apenas priorizam o tráfego (não impedem a perda de pacotes).
O que está acontecendo no switch?
Os switches usam filas para permitir uma pequena quantidade de buffer entre os pacotes que entram e saem deles. Eles são como um cache e possuem muitos recursos semelhantes. Normalmente, você deseja que o pacote entre no switch e saia direto. Este é o caminho mais rápido, mas nem sempre é possível.
Se você tiver vários clientes convergindo em uma conexão sem largura de banda ou se estiver se conectando através de uma largura de banda mais estreita até o destino, os pacotes não poderão ser enviados tão rápido quanto entram no dispositivo.
Os pacotes adicionais se acumularão nas filas usadas dentro do switch na esperança de que tenha sido um estouro de pacotes e que haja menos pacotes antes que o cache fique completamente cheio e ele possa se “alcançar”.
Se o cache ficar cheio, isso significa que quaisquer outros pacotes que chegam não têm onde serem armazenados e é aqui que os pacotes são descartados - eles são simplesmente descartados até que haja espaço suficiente na fila.
Exemplo
Um exemplo real disso seria um servidor de arquivos em um escritório. Digamos que você tenha conexões de 48x100Mbps e 2x conexões de 1Gbps (onde 48 são para clientes e 2 gigabits estão vinculados ao servidor). Se não houvesse mais ninguém tentando se comunicar com o servidor, o cliente poderia utilizar com prazer sua conexão completa de 100 Mbps (com despesas gerais, é claro). Mas assim que mais de 20 quiserem acessar o servidor de arquivos que já tem 2gbit e a 21ª pessoa não conseguirá fazer isso.
Os pacotes começarão a ser adicionados à fila por ordem de chegada e liberados usando a configuração de priorização configurada no switch - normalmente, First In First Out (FIFO) quando nenhuma configuração como QoS estiver definida. Quando esse buffer fica cheio (muitos pacotes), os pacotes são completamente descartados e cabe aos clientes perceber e fazer algo a respeito.
O resultado típico resultaria em available_bandwidth / (number_of_clients * bandwidth_of_clients)
um rendimento médio. Onde a taxa que cada cliente obtém é proporcional à velocidade de conexão com o switch. Esta não é tanto uma decisão determinística de design, mas sim o resultado da probabilidade de um pacote vir de qualquer uma das portas assim que o espaço em uma fila estiver disponível.
O que acontece com o tráfego de rede?
A comunicação de software/hardware deve identificar que os pacotes estão sendo descartados e implementar limitação de taxa para reduzir a quantidade de dados que tentam ser enviados. Dito isto, é claro, se os dados forem UDP (normalmente em aplicativos em tempo real), não haverá nenhuma mensagem ACK, portanto, não será possível limitar a taxa.
A limitação de taxa geralmente é como todo o tráfego determina a taxa mais rápida com a qual pode ser enviado. Por exemplo, você pode ter uma conexão de 1 Gbit a um roteador em uma rede simples, mas apenas uma velocidade de upload de 20 Mbit e quando você tentar enviar mais do que isso, seus pacotes serão descartados, o PC não receberá um ACK e a limitação de taxa será imposta. corresponde à velocidade máxima que pode atingir em toda a rede (internet incluída) até o destino.
No TCP oAlgoritmo de Nagleé usado para impor essa limitação de taxa, mas em uma conexão UDP o resultado provavelmente seria uma diminuição da qualidade (para coisas como um fluxo de vídeo) ou simplesmente uma falha, mas a falha em receber dados suficientes teria que vir explicitamente do destino, em vez de pela falta de reconhecimento.