in simple laymans
nodes have a mempool.
when they receive or create a new tx, they put it into their mempool and send it out.
when a node sends a TX to someone else, who sends it to someone else, who sends it to someone else, and so on until one of those people have a connection to any of the original nodes, it doesnt cause the original node to automatically re-transmit the same transaction simply because it received it by someone else.. other wise it would trigger a endless loop.
they notice its already in the mempool and just leave it.
in short if the transaction is not already in the mempool its sent out. if it is in the mempool(already sent) its not re-sent out
Thanks, still not sure if I wholly understand
A sends to B
B sends to C
C sends to D
D sends to A, B, C - no way to prevent this except for C
but they ignore the transaction, because it is already in the mempool? I was looking for something cleaner