Curso de Redes – Mensagens ICMP do tipo Source Quench – Controle de Fluxo Elementar
Mensagens ICMP Source Quench
Quando um dispositivo (de origem) envia um datagrama em uma rede, espera-se que esse datagrama atravesse a rede e chegue a seu destino, onde será processado convenientemente.
Quando o dispositivo de destino recebe datagramas em uma taxa de transmissão lenta, ele provavelmente consegue processá-los conforme os recebe, sem nenhum tipo de problema. Porém, é possível que a taxa de transmissão dos pacotes varie imensamente em uma rede, sendo que em muitos casos os datagramas são enviados em grandes quantidades de uma só vez, alternando picos de alto e baixo tráfego. Desta forma, em alguns momentos os pacotes chegam ao destino muito mais rapidamente do que em outros, e para lidar com essa situação cada dispositivo possui um buffer (memória temporária) onde os datagramas são mantidos por um período de tempo até que o dispositivo consiga processá-los.
Esse buffer, contudo, possui um tamanho limitado. Em determinadas situações o tráfego recebido pelo dispositivo pode ser tão alto que o buffer é totalmente preenchido, o que levará fatalmente ao descarte dos próximos datagramas recebidos, tornando o dispositivo congestionado. Isso pode ocorrer em uma série de situações, tais como quando o dispositivo recebe datagramas oriundos de múltiplas fontes simultaneamente, ou quando um dos dispositivos que estão se comunicando é muito mais rápido do que o outro. Algumas falhas de hardware também podem ocasionar esse problema.
Quando datagramas são descartados dessa forma, o dispositivo de origem não tem como saber o que está ocorrendo, pois o protocolo IP é não-confiável e sem confirmação. Desta forma, fica a cargo dos protocolos de camadas mais altas lidar com a situação – realizar o chamado “controle de fluxo” – ou então o próprio dispositivo congestionado deve fornecer um feedback para o dispositivo de origem, informando a respeito do problema de alto tráfego.
Isso pode ser realizado por meio do envio de mensagens ICMPv4 chamadas de “Source Quench“. Desta forma, o dispositivo congestionado indica ao dispositivo transmissor que ele está transmitindo rápido demais, e que é necessário diminuir a velocidade da transmissão de datagramas.
O formato de uma mensagem ICMPv4 do tipo Source Quench, identificadas pelo tipo 4, com o código 0, pode ser visto na figura a seguir:
As mensagens Source Quench informam ao dispositivo de origem que o destino está congestionado, porém sem fornecer nenhuma informação específica sobre o problema, além de não especificar o que se espera que o dispositivod e origem faça, além de simplesmente diminuir a taxa de transmissão de seus datagramas. Além disso, não há uma mensagem específica que informa ao dispositivo de origem que o congestionamento de datagramas terminou e que ele pode voltar a transmitir em sua velocidade original. Assim, o tratamento de uma mensagem do tipo Source Quench fica totalmente a cargo do dispositivo de origem dos datagramas, o qual ao receber essas mensagens irá diminuir sua velocidade de transmissão, e então tentará retomar lentamente sua taxa de transmissão original aos poucos, caso pare de recebê-las.
Devido a essa forma de funcionamento das mensagens Source Quench, o fluxo de controle fica geralmente a cargo da camada de transporte. O protocolo TCP possui um mecanismo de controle de fluxo muito mais efetivo do que as mensagens ICMP Source Quench.
E, para finalizar, um aspecto negativo das mensagens Source Quench: elas podem ser usadas com intuito malicioso, podendo ser empregadas para diminuir a velocidade de transmissão de um host deliberadamente. Por isso, é sempre preferível se basear no controle de fluxo TCP, em vez de usar as mensagens ICMP do tipo estudado.
Escreva um comentário