1. A message delivery system for delivering messages over a network, wherein the messages are carried over the network in packets, comprising: a plurality of server hosts, each server host running applications for originating and receiving messages, and comprising a messaging layer for framing and formatting messages originating from the applications, a network interface connected to the network, and a network stack that transmits the framed and formatted messages to a predetermined multicast group of server hosts on the network via the network interface; a plurality of switches interconnecting said server hosts and forming the network, wherein at least some of said switches on the edge of the network serving as ingress/egress switches are connected via links to the network interfaces of the respective server hosts; and distributed filtering/matching modules associated with but distinct from the respective server hosts and being deployed on said links; and wherein each filtering/matching module is configured to: a) register interests associated with the applications on the server host with which the filtering/matching module is associated; b) inspect packets received over the network for the server host with which the filtering/matching module is associated to match messages carried by the packets with the registered interests; c) remove any unmatched messages from the packets; and d) transform a multicast address in a header of a matched packet to a point-to-point address of the host server with which the filtering/matching module is associated and transform a destination port in the message to permit the network stack in the host server which the filtering/matching module is associated to determine a matching application to send the packet to; and e) forward packets carrying any matched messages to the server host with the filtering/matching module is associated for delivery to the applications having registered interests matching the messages.