A method for managing communication in a data network, the data network comprising a plurality of hosts, each host being a data processing system, the data network comprising a plurality of channels (204a, 204b), the channels (204a, 204b) connecting the hosts in the data network, the data network comprising a monitor host, the monitor host being elected from the plurality of hosts, the method comprising the steps of: a. determining states of the plurality of channels (204a, 204b) and the plurality of hosts for a given channel (204a, 204b) of the plurality of channels (204a, 204b) by observing the states of the plurality of channels (204a, 204b) by each of the plurality of hosts and by comparing the observed states with the states as reported by the monitor host by each of the plurality of hosts, wherein the step of determining the states of the plurality of channels (204a, 204b) and the plurality of hosts for a given channel (204a, 204b) of the plurality of channels (204a, 204b) comprises the step of broadcasting at least one host state packet to the plurality of hosts, the step being performed by a set of hosts, each of the set of hosts being the host that identified at least one discrepancy between the observed states and reported states of the plurality of channels (204a, 204b); b. updating the plurality of hosts with the determined states by broadcasting a system state packet to the plurality of hosts by the monitor host, the system state packet comprising information on the determined states of the plurality of channels (204a, 204b) and the plurality of hosts for a given channel (204a, 204b) of the plurality of channels (204a, 204b); and c. coordinating usage of the plurality of channels (204a, 204b) for communication in the data network by notifying internal processes running within each of the plurality of hosts about the updated states by each of the plurality of hosts, wherein the internal processes identify an alternate channel (204a, 204b) of the plurality of channels (204a, 204b) on the basis of the updated states of the plurality of channels (204a, 204b) and the plurality of hosts for a given channel (204a, 204b), if a channel (204a, 204b) fails, and by coordinating a change in the usage of the plurality of channels (204a, 204b) by each of the plurality of hosts, the coordination being based upon the updated states of the plurality of channels (204a, 204b) and the plurality of hosts for a given channel (204a, 204b) of the plurality of channels (204a, 204b), the step being performed by the plurality of hosts. a. determining states of the plurality of channels (204a, 204b) and the plurality of hosts for a given channel (204a, 204b) of the plurality of channels (204a, 204b) by observing the states of the plurality of channels (204a, 204b) by each of the plurality of hosts and by comparing the observed states with the states as reported by the monitor host by each of the plurality of hosts, wherein the step of determining the states of the plurality of channels (204a, 204b) and the plurality of hosts for a given channel (204a, 204b) of the plurality of channels (204a, 204b) comprises the step of broadcasting at least one host state packet to the plurality of hosts, the step being performed by a set of hosts, each of the set of hosts being the host that identified at least one discrepancy between the observed states and reported states of the plurality of channels (204a, 204b); b. updating the plurality of hosts with the determined states by broadcasting a system state packet to the plurality of hosts by the monitor host, the system state packet comprising information on the determined states of the plurality of channels (204a, 204b) and the plurality of hosts for a given channel (204a, 204b) of the plurality of channels (204a, 204b); and c. coordinating usage of the plurality of channels (204a, 204b) for communication in the data network by notifying internal processes running within each of the plurality of hosts about the updated states by each of the plurality of hosts, wherein the internal processes identify an alternate channel (204a, 204b) of the plurality of channels (204a, 204b) on the basis of the updated states of the plurality of channels (204a, 204b) and the plurality of hosts for a given channel (204a, 204b), if a channel (204a, 204b) fails, and by coordinating a change in the usage of the plurality of channels (204a, 204b) by each of the plurality of hosts, the coordination being based upon the updated states of the plurality of channels (204a, 204b) and the plurality of hosts for a given channel (204a, 204b) of the plurality of channels (204a, 204b), the step being performed by the plurality of hosts.