Temos um servidor apache que hospeda arquivos de firmware para alguns dispositivos incorporados. Esses arquivos não são muito grandes, apenas cerca de 160kb. Os dispositivos incorporados usam uma conexão móvel EDGE para se conectar a esse servidor e fazer o download de uma atualização quando necessário. O problema que estamos tendo é que existe um bug de software em alguns desses dispositivos que causa alta perda de pacotes. Se a conexão de rede for realmente boa, os dispositivos conseguirão baixar o arquivo e atualizar. O problema é que na maioria dos casos isso não acontece.
Eu não acho que a perda de pacotes é causada pela rede porque o download sempre começa bem. Após cerca de 4KB, quando o dispositivo começa a gravar os dados para flash e a conexão diminui para um rastreamento e nunca se recupera. Normalmente, essa lentidão deve ser temporária, uma vez que os dados são salvos, a velocidade de download deve melhorar.
Olhando para os pacotes de tráfego de rede ainda estão sendo enviados por ambos os lados, mas há perdas e o servidor gasta a maior parte do tempo aguardando confirmação.
Eu queria saber se existe alguma maneira de forçar o servidor a reenviar os pacotes com mais freqüência. Eu tentei mudar o controle de congestionamento tcp para Westwood, mas isso não ajuda. Existe alguma configuração no servidor da web (qualquer servidor da web) que possa fazer isso? Ou talvez uma maneira de escrever nossa própria para esse propósito? Esta é apenas uma solução temporária até que atualizemos os dispositivos com bugs.
Tags web-server tcp mobile-devices