An open communication method between at least two sub-networks that have different routable network addressing schemes, the method comprising: receiving by a receiving node a packet for a specific application, the packet including an application identifier, where a generating node that generated the packet is configured to communicate using a first of said at least two sub-networks; determining by the receiving node that the packet is to be relayed to another of the at least two sub-network based upon the application identifier; determining by the receiving node if the receiving node is a broker node configured to communicate using at least two of the at least two sub-networks via corresponding routable network addressing schemes for each of the sub-networks; the method being characterised by: when the receiving node is not a broker node, relaying the packet from the receiving node to a broker node; and when the receiving node is a broker node: determining by the broker node, whether heterogeneous forwarding is needed; when heterogeneous forwarding is not needed, discarding the packet; when heterogeneous forwarding is needed, determining by the broker node, whether the packet was previously forwarded by another broker node; when the packet was previously forwarded by another broker node, discarding the packet; and when the packet was not previously forwarded by another broker node, forwarding the packet from the broker node to at least one node in the another of the at least two sub-networks. receiving by a receiving node a packet for a specific application, the packet including an application identifier, where a generating node that generated the packet is configured to communicate using a first of said at least two sub-networks; determining by the receiving node that the packet is to be relayed to another of the at least two sub-network based upon the application identifier; determining by the receiving node if the receiving node is a broker node configured to communicate using at least two of the at least two sub-networks via corresponding routable network addressing schemes for each of the sub-networks; the method being characterised by: when the receiving node is not a broker node, relaying the packet from the receiving node to a broker node; and when the receiving node is a broker node: determining by the broker node, whether heterogeneous forwarding is needed; when heterogeneous forwarding is not needed, discarding the packet; when heterogeneous forwarding is needed, determining by the broker node, whether the packet was previously forwarded by another broker node; when the packet was previously forwarded by another broker node, discarding the packet; and when the packet was not previously forwarded by another broker node, forwarding the packet from the broker node to at least one node in the another of the at least two sub-networks. when the receiving node is not a broker node, relaying the packet from the receiving node to a broker node; and when the receiving node is a broker node: determining by the broker node, whether heterogeneous forwarding is needed; when heterogeneous forwarding is not needed, discarding the packet; when heterogeneous forwarding is needed, determining by the broker node, whether the packet was previously forwarded by another broker node; when the packet was previously forwarded by another broker node, discarding the packet; and when the packet was not previously forwarded by another broker node, forwarding the packet from the broker node to at least one node in the another of the at least two sub-networks. determining by the broker node, whether heterogeneous forwarding is needed; when heterogeneous forwarding is not needed, discarding the packet; when heterogeneous forwarding is needed, determining by the broker node, whether the packet was previously forwarded by another broker node; when the packet was previously forwarded by another broker node, discarding the packet; and when the packet was not previously forwarded by another broker node, forwarding the packet from the broker node to at least one node in the another of the at least two sub-networks.