O que acontece se um switch perder muitos pacotes consistentemente?

2

Eu estava apenas imaginando 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 backup alternativo no caso deste falhar.

    
por mohamed nur 28.05.2015 / 12:18

1 resposta

1

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 seguinte e como a rede como um todo é projetada para lidar com isso abaixo.

Mais uma vez, em curto responder a perda de pacotes é feito por clientes e não o switch. É de sua responsabilidade 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 (eles não param 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 comutador e saia diretamente. Este é o caminho mais rápido, mas isso nem sempre é possível.

Se você tiver vários clientes convergindo em uma conexão que não tem a largura de banda ou se está conectando através de uma largura de banda mais estreita para o destino, os pacotes não podem ser enviados tão rapidamente quanto chegam ao dispositivo.

Os pacotes adicionais vão se acumular nas filas usadas dentro do switch, na esperança de que fosse um estouro de pacotes e que haja menos pacotes antes que o cache seja preenchido completamente e possa "pegar" consigo mesmo.

Se o cache ficar cheio, isso significa que qualquer outro pacote que venha não tem onde ser armazenado e é onde os pacotes são descartados - eles são simplesmente descartados até que haja espaço suficiente na fila.

Exemplo

Um exemplo do mundo real disso seria um servidor de arquivos em um escritório. Digamos que você tenha conexões 48x100Mbps e 2x conexões de 1Gbps (onde as 48 são para clientes e as 2 gigabits são vinculadas ao servidor). Se não houvesse mais ninguém tentando se comunicar com o servidor, um cliente poderia felizmente utilizar sua conexão completa de 100 mbps (com overheads, é claro). Mas assim que mais de 20 quiserem acessar o servidor de arquivos que já tem 2gbit e a 21ª pessoa não será capaz de 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 comutador - normalmente, FIFO (First In First Out) quando nenhuma configuração como QoS estiver configurada. Quando esse buffer fica cheio (muitos pacotes), os pacotes são completamente descartados e os clientes percebem e fazem algo a respeito.

O resultado típico resultaria em available_bandwidth / (number_of_clients * bandwidth_of_clients) como uma taxa de transferência média. Onde a taxa que cada cliente recebe é proporcional à sua velocidade de conexão ao switch. Isso não é tanto uma decisão de projeto determinista quanto é 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?

O software / hardware que está se comunicando deve identificar que os pacotes estão sendo descartados e a taxa de implementação limitada para reduzir a quantidade de dados que estão sendo enviados. Dito isto, é claro, se os dados são UDP (normalmente em aplicações em tempo real), não há mensagens ACK, por isso não saberá limitar a taxa.

A limitação de taxa geralmente é como todo o tráfego determina a taxa mais rápida que ele pode enviar. Por exemplo, você pode ter uma conexão de 1Gbit a um roteador em uma rede simples, mas apenas uma velocidade de upload de 20Mbit e quando você tentar enviar mais do que seus pacotes serão descartados, o PC não receberá um ACK e será imposto um limite de taxa corresponde à velocidade máxima que pode atingir em toda a rede (internet incluída) até o destino.

No TCP, o algoritmo de Nagle é usado para impor essa limitação de taxa, mas em uma conexão UDP o resultado provavelmente estar diminuindo a qualidade (para coisas como um fluxo de vídeo) ou simplesmente falhando, mas a falha em receber dados suficientes teria que vir explicitamente do destino, e não pela falta de um reconhecimento.

    
por 28.05.2015 / 12:25