A tubulação de dados de Ethernet para serial e de volta para Ethernet não chega ao destino

A tubulação de dados de Ethernet para serial e de volta para Ethernet não chega ao destino

CONCEITO VISUALIZADO

Estou tentando estabelecer uma comunicação bidirecional onde pacotes Ethernet UDP entram em um sistema Linux (suponha um Raspberry pi) da interface eth0 e canalizados para o hardware UART do sistema, depois lidos pelo segundo sistema Linux, canalizados para a interface eth0 e transmitido novamente como pacotes UDP para um sensor e vice-versa.

Em outras palavras, estou tentando converter pacotes UDP em serial e novamente em UDP sem problemas.

Consegui fazer com que os pacotes UDP do PC chegassem ao segundo sistema Linux, mas eles não chegam ao sensor que é seu destino final.

Configuração: O PC está na mesma sub-rede do primeiro sistema Linux e envia pacotes constantemente no endereço de broadcast, porta 33000.

No primeiro sistema Linux usei o netcat para canalizar dados de eth0 para UART usando estes comandos:stty -F /dev/ttyS0para definir a taxa de transmissão do uart e entãonc -ul 172.31.255.255 33000 >/dev/ttyS0 </dev/ttyS0para canalizar dados de eth0 para ttyS0 (uart). Os dados são transmitidos com sucesso para o segundo sistema Linux, onde posso imprimir as cargas. Mas a partir daí os problemas aparecem.

No segundo sistema Linux usei os mesmos comandos do primeiro:stty -F /dev/ttyS0enc -ul 172.31.255.255 33000 >/dev/ttyS0 </dev/ttyS0. O problema é que os pacotes não chegam ao destino final que é o sensor. Eu monitoro o tráfego na interface eth0 do segundo sistema Linux com wireshark e nenhum pacote UDP é transmitido.

Estranhamente, com esta configuração, os pacotes do PC (porta 33000) não chegam ao sensor, MAS, se eu mudar a porta de escuta para 10021 (em ambos os sistemas Linux), então o caminho estará aberto para os pacotes do sensor e eles alcançam com sucesso o PC (software).

Estou pensando que isso pode ter a ver com as funções de servidor/cliente. O PC (através do software especial do sensor) inicia a comunicação com o sensor enviando pacotes SYN em 33000 e aguarda uma resposta. Esses pacotes não chegam ao sensor, mas o sensor envia dados de telemetria na porta 10021 e esses pacotes chegam com sucesso ao software (PC).

Qualquer ideia é bem-vinda.

informação relacionada