Existem três maneiras de lidar com o controle de fluxo:
- Se você está sobrecarregado, você coloca os dados no chão.
- Se você não puder fornecer o serviço para uma solicitação de uma camada superior, geralmente porque sua fila local está cheia, você retorna um erro para essa camada superior.
- Você notifica proativamente as camadas superiores que elas precisam diminuir.
Na camada Ethernet, o método 3 é suportado através de quadros de pausa. Muitas vezes, camadas mais altas 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 temporariamente para camadas inferiores, causando o método 2 para aplicar em camadas superiores.
Ou, para colocar de forma mais concreta, quando você recebe um quadro de pausa, interrompe o mecanismo de envio e configura um cronômetro para reiniciar o mecanismo de envio no tempo apropriado. Enquanto o mecanismo de envio estiver parado, 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.