Os quadros de pausa são passados ​​para o host?

Os quadros de pausa são passados ​​para o host?

Recentemente vi um fórum Debian que mencionava que os quadros de pausa deveriam ser descartados pela camada MAC e, caso contrário, o driver deveria descartá-los. Isso é verdade? Como um host realmente reduz o tráfego se recebeu um quadro de pausa de um switch?

Estou tentando entender melhor o controle de fluxo Ethernet. Se a afirmação acima for verdadeira, o que realmente significa passado para o host?

Responder1

Existem três maneiras de lidar com o controle de fluxo:

  1. Se você estiver sobrecarregado, você joga dados no chão.
  2. Se você não puder fornecer serviço para uma solicitação de uma camada superior, normalmente porque sua fila local está cheia, você retornará um erro para essa camada superior.
  3. Você notifica proativamente as camadas superiores de que elas precisam desacelerar.

Na camada Ethernet, o método 3 é suportado através de quadros de pausa. Freqüentemente, as camadas superiores não suportam o método 3, mas, em vez disso, suportam o método 2. Quando uma camada tem uma camada abaixo dela que suporta o método 3, mas a camada acima dela suporta apenas o método 2, ela pode parar de passar dados para camadas inferiores temporariamente, causando método 2 para aplicar em camadas superiores.

Ou, para ser mais concreto, quando você recebe um quadro de pausa, você interrompe o mecanismo de envio e define um cronômetro para reiniciar o mecanismo de envio no momento apropriado. Enquanto o mecanismo de envio estiver parado, suas filas locais serão preenchidas com dados de camadas superiores. Se eles ficarem cheios, você retornará erros de "ocupado" para as camadas superiores e eles lidarão com isso da maneira apropriada.

Responder2

O controle de fluxo Ethernet, até agora, tem sido um experimento fracassado, porque muitas vezes causabloqueio de linhaproblemas. Os switches não devem enviar quadros de pausa aos hosts. Acredito que os switches Cisco não podem ser configurados para enviar quadros de pausa; ativar o controle de fluxo Ethernet em um switch Cisco apenas faz com que ele honre os quadros de pausa recebidos. Os hosts devem ignorar os quadros de pausa recebidos.

Se o switch não conseguir lidar com a transmissão, ele deverá derrubar o quadro. Camadas superiores, principalmente TCP, usam quadros descartados para saber quando ocorreu congestionamento e quando recuar. A falha na eliminação de quadros faz com que o Controle de Congestionamento TCP falhe, normalmente resultando embufferbloat.

informação relacionada