Não tenho certeza de entender seu gráfico na sua pergunta, mas até onde eu entendi, você precisa encaminhar o pacote multicast através do TCP? Uma solução orientada a ferramentas pode envolver socat
:
Por exemplo, o canal multicast é 224.1.0.1:6666.
No host do servidor (IP = SS.SS.SS.SS):
$socat -v UDP4-RECVFROM:6666,ip-add-membership=224.1.0.1:CC.CC.CC.CC,fork TCP:destination.hostname:4444
No host do cliente (IP = CC.CC.CC.CC):
$socat -v TCP-LISTEN:4444,fork UDP4-DATAGRAM:224.1.0.1:6666,range=SS.SS.SS.SS/24
Eu deixo você verificar como ajustar os parâmetros com o manual socat
. É bastante simples quando você conhece o MULTICAST GROUP e os endereços IP da sua interface de rede. : -)