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:

Mensagem ICMPv4 do tipo Source Quench

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.

Anterior: Mensagens ICMP do tipo Destino Inalcançável

Próximo: Mensagens ICMP do tipo Tempo Excedido

Sobre Fábio dos Reis (1329 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*