Controle de fluxo no sentido genérico refere-se a mecanismos que permitem o aumento ou a diminuição do tráfego através de um determinado link de dados por um transmissor baseado em algum tipo de sinal (implícito ou explícito) capturado do receptor.
Nos dias em que a comunicação serial era mais comum, usamos o controle de fluxo de hardware (RTS / CTS) para permitir que os pontos finais do link serial sinalizassem quando eram ou não capazes de receber dados. Um DCE (um modem, por exemplo) pode ter buffers que podem ser invadidos pela estação de envio. Quando este dispositivo ultrapassasse um certo limite de buffer, ele diminuiria a linha de sinal apropriada e a estação de envio responderia pausando sua transferência de dados até que o DCE indicasse que o problema de congestionamento imediato havia sido eliminado. Um mecanismo similar também foi implementado dentro da banda (isto é, como parte dos dados que estão sendo transmitidos) conhecido como XON / XOFF - mesmas idéias que RTS / CTS mas implementadas como caracteres especiais de controle ao invés de linhas dedicadas de hardware.
Mais recentemente (cerca de 15 anos atrás, mais ou menos) mecanismos semelhantes foram introduzidos na Ethernet no padrão IEEE 802.3x. Isso introduziu um quadro chamado "pausa". Como no caso de série, um determinado receptor pode emitir tal quadro quando não puder aceitar mais tráfego. Este é um mecanismo de camada MAC (ou seja, camada 2) que foi implementado em um bom número de dispositivos, mas cujo uso e implementação reais foram bastante limitados. O problema com o 802.3x é que quando um quadro PAUSE é emitido, o tráfego all é mantido, independentemente da importância do tráfego. Mais recentemente, tem havido padrões mais recentes (coletivamente conhecidos como DCB) que permitem controles mais refinados (ou seja, pausar o tráfego por CoS), além de recursos complementares para definir diferentes classes de tráfego e como eles mapeiam esses valores de CoS. . Outros exemplos de extensões à rede L2 para controle de fluxo ativo incluem créditos de buffer no Fibre Channel e os mecanismos de feedback encontrados no ABR ATM.
O controle de fluxo real não é realmente aplicável na camada 3, que está amplamente relacionada à acessibilidade e ao endereçamento. Existem mecanismos na camada 4, no entanto - notadamente janelas TCP - que permitem que os remetentes reduzam a transmissão com base nas condições da rede. A operação e as advertências da janela TCP merecem sua própria pergunta / postagem, pois há uma enorme quantidade de literatura sobre o assunto. Outro mecanismo que foi especificado mas não extensivamente implementado / usado para TCP é ECN (notificação de congestionamento explícita) que potencialmente permite uma abordagem mais pró-ativa para limitar a largura de banda do transmissor (vs confiando em pacotes perdidos para janelas TCP).
Além do rigoroso controle de fluxo, há também mecanismos para moldar, derrubar seletivamente e policiar o tráfego em uma base por remetente (ou seja, L2 / L3 e alguns mecanismos de QoS L4), mas estes não são precisamente controle de fluxo, pelo menos em a definição usual do termo.