WO2006062866A2

A method and system for managing communication in a data network

Abstract

A method and system for managing communication in a data network which involves monitoring the communication channels at the host level. The hosts are updated with the monitoring information following which they take a coordinated decision in cases of failure of a channel. The data network comprises a plurality of hosts, which are connected to each other through a plurality of channels. A monitor host is elected out of the plurality of hosts to periodically broadcast a system state packet to the plurality of hosts. The system state packet contains information about the state of the plurality of channels and the plurality of hosts for a given channel. Each of the plurality of hosts compares the observed state of channels, as observed by it, with the reported state as reported in the system state packet. Where a host identifies a discrepancy between the observed state and the reported state, it broadcasts a host state packet, updating the monitor host about the observed state. The monitor host, on the basis of the information contained in the host state packet, updates the system state packet and broadcasts the updated system state packet to the plurality of hosts. Based on the updated system state packets, each of the plurality of hosts may select an alternate optimal channel for communication in case a channel fails.

Term

No projected expiry on record.

  1. Priority
  2. Filed
  3. Published
  4. Today

20 claims: 20 independent, 0 dependent

  1. 1
    What is claimed is:1. 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, the channels 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 and the plurality of hosts for a given channel, the step being performed by the monitor host in coordination with the other hosts in the data network;b. updating the plurality of hosts with the determined state, the step being performed by the monitor host in coordination with the other hosts in the data network;and c. coordinating usage of the plurality of channels for communication in the data network, the coordination being based upon the updated state of the plurality of channels and the plurality of hosts for a given channel, the step being performed by the plurality of hosts.
  2. 2
    The method as recited in claim 1 wherein the step of determining the state of the plurality of channels and the plurality of hosts for a given channel comprises the steps of:a. observing the state of the plurality of channels, the step being performed by each of the plurality of hosts;b. comparing the observed state with the state as reported by the monitor host, the step being performed by each of the plurality of hosts;and c. broadcasting a 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 state and reported state of the plurality of channels.
  3. 3
    The method as recited in claim 2 wherein the step of observing the states of the plurality of channels comprises the steps of:a. waiting for a system state packet on the plurality of channels, the system state packet containing information regarding the state of the plurality of channels and the plurality of hosts for a given channel;b. updating the observed state of a channel to be down if a host fails to receive the system state packet on the channel;and c. updating the observed state of a channel to be up if the host receives the system state packet on the channel.
  4. 4
    The method as recited in claim 1 wherein the step of updating the plurality of hosts comprises the steps of:a. updating a system state packet on the basis of information contained in host state packets, each of the host state packet being sent by a set of hosts, each of the set of hosts being the host that identified at least one discrepancy between the observed state as observed by itself and the reported state as reported by the monitor host, the step being performed by each of the plurality of hosts;and b. broadcasting the system state packet to the plurality of hosts, the system state packet comprising the information on the state of the plurality of channels and the plurality of hosts for a given channel, the step being performed by the monitor host.
  5. 5
    The method as recited in claim 4 wherein the step of broadcasting the system state packet to the plurality of hosts comprises the steps of:a. assigning values to a plurality of parameters in the system state packet, the plurality of parameters defining the state of the plurality of channels and the plurality of hosts for a given channel;and b. sending the system state packet at a predefined frequency for periodic broadcasting of the system state packet .
  6. 6
    The method as recited in claim 1 wherein the step of coordinating usage of the plurality of channels comprises the steps of:a. notifying internal processes running within each of the plurality of hosts about the updated information, the step being performed by each of the plurality of hosts;and b. coordinating a change in the usage of the plurality of channels, the step being performed by each of the plurality of hosts.
  7. 7
    The method as recited in claim 6 wherein the step of coordinating the change in the usage of channels comprises the steps of:a. identifying an optimal channel;and b. changing over to the optimal channel in case the currently used channel is different from the identified optimal channel.
  8. 8
    A method for identifying an alternate channel with minimal latency in a data network, the data network comprising a plurality of hosts, each of the plurality of hosts being a data processing unit, the data network comprising a plurality of channels, the channels connecting the hosts in the data network, the latency resulting from an uninformed failure of a communication channel, the data network comprising a monitor host, the monitor host being elected from the plurality of hosts, the method comprising the steps of:a. identifying failure of a channel, the step being performed by the monitor host in coordination with the plurality of hosts;b. updating the plurality of hosts regarding the failure of the channel, the step being performed by the monitor host in coordination with the plurality of hosts;and c. coordinating usage of the channels on the basis of the updated information, the step being performed by each of the plurality of hosts.
  9. 9
    The method as recited in claim 8 wherein the step of identifying the failure of a channel comprises the steps of:a. waiting for a system state packet on each of the plurality of channels, the step being performed by each of the plurality of hosts;b. updating observed state of a channel to be down if the system state packet is not received on the channel, the step being performed by each of the plurality of hosts;and c. comparing the observed state of the plurality of channels with the reported state as reported in the system state packet, the step being performed by each of the plurality of hosts;
  10. 10
    The method as recited in the claim 8 wherein the step of updating the plurality of hosts comprises the steps of:a. broadcasting a host state packet, the host state packet comprising the details of the failure of a channel, the step being performed by a set of hosts, each of the set of the hosts being the host that identified at least one discrepancy between the reported state and the observed state;b. updating a system state packet by including the information about the failure of the channel, the step being performed by the monitor host;and c. broadcasting the system state packet to the plurality of hosts, the step being performed by the monitor host.
  11. 11
    The method as recited in claim 8 wherein the step of coordinating usage of the channels comprises the steps of:a. determining an alternate channel on the basis of updated information about the failure of the channel, the step being performed by each of the plurality of hosts;and b. changing over to the determined alternate channel, the step being performed by each of the plurality of hosts.
  12. 12
    A method for electing a monitor host 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, the channels connecting the hosts in the data network, the function of the monitor host being broadcasting a system state packet to the plurality of hosts, the system state packet comprising priority and address of the monitor host, the method comprising the steps of:a. waiting for a system state packet from the plurality of channels, the step being performed by each host belonging to a set of hosts, each of the set of hosts having a non-zero value of priority;b. declaring itself as the monitor host if a host belonging to the set of hosts fails to receive the system state packet from any of the plurality of channels, the step being performed by each of the host belonging to the set of hosts;c. broadcasting a system state packet to the plurality of hosts, the step being performed by each of declared monitor hosts;and d. assessing the claim for the position of monitor host, the step being performed by each of the host belonging to the set of hosts.
  13. 13
    The method as recited in claim 12, wherein the step of assessing the claim for the position of monitor host comprises the steps of:a. comparing the value of its priority and address with the values of priority and addresses of other declared monitor hosts, the step being performed by each of the declared monitor hosts;b. electing itself the monitor host if its assigned priority has a lower numeric value than the priority contained in the received system state packets, the step being performed by each declared monitor host;and c. electing itself the monitor host if its assigned priority is equal to the priority contained in the received system state packet, and its address is lower than the address of the sender of the received system state packet, the step being performed by each declared monitor host.
  14. 14
    A system 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, the channels connecting the plurality of hosts in the data network, the system comprising:a. a state determination module for determining the state of the plurality of channels and the plurality of hosts for a given channel;b. a system updating module for updating the plurality of hosts with the state of the plurality of channels and the plurality of hosts for a given channel;and c. a coordination module for coordinating the usage of channels, the coordination being based on the updated information provided by the system updating module.
  15. 15
    The system as recited in claim 14, wherein the state determination module comprises:a. storage means for storing state of the plurality of channels and the plurality of hosts for a given channel;b. a receiving module for receiving the system state packets, the system state packets being sent by the monitor host;c. a local updating module for updating the state of the plurality of channels and the state of the hosts for a given channel;d. a trigger module for comparing the reported states as reported in the system state packet with the observed states as observed by the host;e. a host state packet module for preparing and broadcasting the host state packet to the plurality of hosts;and f. a timing module for notifying internal processes about the timelines for sending and receiving various data packets.
  16. 16
    The system as recited in claim 14 wherein the system updating module comprises:a. a system state packet module for preparing system state packet;and b. a broadcasting module for broadcasting the system state packets to the plurality of hosts.
  17. 17
    The system as recited in claim 14 wherein the coordination module comprises:a. an optimization module for selecting an optimal channel in case of failure of a channel;b. a changeover module for enabling a change in the channel usage;and c. a notification module for notifying internal processes within each host about the change in the states of the plurality of channels and the plurality of hosts for a given channel.
  18. 18
    The system as recited in claim 14 further comprising an election module for electing a monitor host in the data network.
  19. 19
    The system as recited in claim 18 wherein the election module comprises:a. a retrieving module for retrieving the priority and address of the monitor host;and b. an assessment module for assessing the claim of the host to be the monitor host.
  20. 20
    A computer program product for use with a computer, the computer program product comprising a computer usable medium having a computer readable program code embodied therein for managing communication in a data network, the data network comprising a plurality of hosts, each of the plurality of hosts being a data processing unit, the data network comprising a plurality of channels, the channels connecting the plurality of hosts in the data network, the computer program product performing the steps of:a. determining states of the plurality of channels and the plurality of hosts for a given channel;b. updating the plurality of hosts with the determined state;and c. coordinating usage of the plurality of channels for communication in the data network, the coordination being based upon the updated state of the plurality of channels and the plurality of hosts for a given channel. 21. A computer program product for use with a computer, the computer program product comprising a computer usable medium having a computer readable program code embodied therein for electing a monitor host in a data network, the data network comprising a plurality of hosts, each of the plurality of hosts being a data processing unit, the function of the monitor host being broadcasting system state packet, the data network comprising a plurality of channels, the channels connecting the plurality of hosts, the computer program product performing the steps of: a. waiting for a system state packet from the plurality of channels;b. declaring itself as monitor host if a host belonging to the set of hosts fails to receive the system state packet from any of the plurality of channels;c. broadcasting a system state packet to the plurality of hosts;and d. assessing the claim for the position of monitor host.
Independent claims20