Existem três maneiras de lidar com o controle de fluxo:
- Se você está sobrecarregado, você descarta dados no chão.
- Se você não puder fornecer o 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.
- Você notifica proativamente as camadas superiores que precisam diminuir a velocidade.
Na camada Ethernet, o método 3 é suportado através de quadros de pausa. Muitas vezes camadas superiores não suportam o método 3, mas suportam o método 2. Quando uma camada tem uma camada abaixo que suporta o método 3, mas a camada acima só suporta o método 2, ela pode parar de passar dados para camadas inferiores temporariamente, causando o método 2 para aplicar em camadas mais altas.
Ou, para colocar de forma mais concreta, quando você recebe um quadro de pausa, interrompe o mecanismo de envio e define um cronômetro para reiniciar o mecanismo de envio no tempo apropriado. Enquanto o mecanismo de envio é interrompido, suas filas locais serão preenchidas com dados das camadas superiores. Se eles ficarem cheios, você retorna erros "ocupados" para as camadas superiores e eles lidam com isso, no entanto, é apropriado.