Suponha que eu tenha o aplicativo TX que transmite o multicast UDP para 239.0.0.1:1234
. E eu tenho o aplicativo RX que une o multicast ( 239.0.0.1:1234
) e recebe esse multicast ( 239.0.0.1:1234
).
Eu tenho este aplicativo RX em execução em máquinas diferentes e também na mesma máquina onde o aplicativo TX está sendo executado.
Aplicativo RX em execução em máquinas diferentes (diferente da máquina em que o TX está em execução), veja as perdas de pacotes regularmente. Além disso, o pacote que está perdendo é o mesmo em todas as outras máquinas. Mas, no aplicativo RX em execução na máquina em que o aplicativo TX também está em execução, nunca veja qualquer perda de pacote. Eu estou tentando resolver este problema de perda de pacotes (pelo menos minimizar, porque eu recebo perdas de pacotes regulares, aumentando com o tempo, em rede de 1 Gbps onde o aplicativo TX transmite em torno de apenas 100 Mbps).
Minha pergunta é: Quando o aplicativo RX está sendo executado na máquina, que é a mesma máquina onde o aplicativo TX está sendo executado, então, como os pacotes de multidifusão se cruzam. Os pacotes são roteados para o RX dentro da mesma máquina após a pilha IP ? Os pacotes são roteados para o RX dentro da mesma máquina depois das disciplinas de enfileiramento ? Os pacotes são roteados para o RX dentro da mesma máquina após o enfileiramento de hardware da NIC ? Os pacotes vão para o roteador / switch e depois voltam para a mesma máquina ?
Tags networking routing linux multicast