WO2009132448A1 - A self-healing severable communication network and nodes - Google Patents

A self-healing severable communication network and nodes Download PDF

Info

Publication number
WO2009132448A1
WO2009132448A1 PCT/CA2009/000574 CA2009000574W WO2009132448A1 WO 2009132448 A1 WO2009132448 A1 WO 2009132448A1 CA 2009000574 W CA2009000574 W CA 2009000574W WO 2009132448 A1 WO2009132448 A1 WO 2009132448A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
nodes
data
master node
determining
Prior art date
Application number
PCT/CA2009/000574
Other languages
French (fr)
Inventor
Peter Walter Baranowski
Original Assignee
Active Control Technology Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Active Control Technology Inc. filed Critical Active Control Technology Inc.
Publication of WO2009132448A1 publication Critical patent/WO2009132448A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/04Arrangements for maintaining operational condition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Definitions

  • the present specification relates generally to telecommunications and more specifically relates to a self-healing severable communication network and nodes therefor.
  • a first aspect of the specification provides a method for replicating a master node in a communication network comprising a plurality of nodes, including the master node, the master node for providing communication services to the plurality of nodes, each of the plurality of nodes storing master node replication data for enabling a node to replicate the master node, each of the plurality of nodes for relaying data within the communication network from at least one wireless communication device, the method implementable in at least one of the plurality of nodes, the method comprising: determining if communications with the master node are severed; and, if so, determining if the at least one node has priority in a remaining portion of the plurality of nodes; and if so, processing the master node replication data such that the at least one node replicates the master node by providing the communication services to the remaining portion of the plurality of nodes.
  • the master node can comprises a grounded master node in communication with an external communication network.
  • Determining if communications with the master node are severed can comprise determining that communications have been severed with a neighbouring node. Determining that communications have been severed with a neighbouring node can comprise failing to receive a periodic data transmission from the neighbouring node.
  • the method can further comprise updating topology data stored at the at least one of the plurality of nodes in response to failing to receive the periodic data transmission, and determining if the at least one node has priority in the remaining portion of the plurality of nodes can be based on the topology data after the updating has occurred.
  • the master node replication data can comprise the topology data.
  • the periodic data transmission can comprise data representative of the topology data.
  • Determining if communications with the master node are severed can comprise determining that the topology of the communications network has changed by comparing first data representative of first topology data stored at the at least one of the plurality of nodes with second data received from a neighbouring node, the second data representative of second topology data stored in the neighbouring node.
  • the method can further comprise: requesting the second topology data from the neighbouring node if the first data differs from the second data; receiving the second topology data; and updating the first topology data based on the second topology data.
  • Determining if communications with the master node are severed can comprise transmitting a message to the master node and determining if a reply from the master node is received.
  • Determining if the at least one node has priority in a remaining portion of the plurality of nodes can comprise comparing an identifier of the at least one node to a list of identifiers of the remaining portion of nodes, the list of identifiers comprising a priority of each of the remaining portion of nodes.
  • the method can further comprise determining if communications with at least one of the master node and another master node have been re-established and, in response, stopping providing the communication services to the remaining portion of the plurality of nodes such that the at least one of the plurality of nodes assumes a relay mode in which data from neighbouring nodes is relayed to at least one of the master node and the another master node.
  • the method can further comprise determining a topology of the communication network by: periodically transmitting first data representative of topology data stored at the at least one node with at least one neighbouring node; periodically receiving second data representative of topology data stored at the at least one neighbouring node; comparing the first data with the second data, and if the first data differs from the second data: requesting the topology data stored at the at least one neighbouring node; and updating the topology data stored at the at least one node based on the topology data received from the at least one neighbouring node.
  • the communication services can comprise at least one of dynamic host configuration protocol services, telephone services, internet protocol based services, push to talk services, software update services, TFTP services, and location services.
  • a second aspect of the specification provides a node connectable to a communication network comprising a plurality of nodes, one of the plurality of nodes comprising a master node for providing communication services to the plurality of nodes.
  • the node comprises at least one radio for communicating with the plurality of nodes and at least one wireless communication device.
  • the node further comprises a memory connected to the processor for storing master node replication data for enabling a node to replicate the master node.
  • the node further comprises a processor connected to the at least one radio and the memory, the processor enabled to execute a supervisory process.
  • the supervisory process comprises: determining if communications with the master node are severed; and, if so determining if the node has priority in a remaining portion of the plurality of nodes; and if so processing the master node replication data such that the node replicates the master node by providing the communication services to the remaining portion of the plurality of nodes.
  • Determining if communications with the master node are severed can comprise determining that communications have been severed with a neighbouring node. Determining that communications have been severed with a neighbouring node can comprise failing to receive a periodic data transmission from the neighbouring node.
  • the supervisory process can further comprise updating topology data stored at the node in response to failing to receive the periodic data transmission, and determining if the node has priority in the remaining portion of the plurality of nodes is based on the topology data after the updating has occurred.
  • the master node replication data can comprise the topology data.
  • the periodic data transmission can comprise data representative of the topology data.
  • Determining if communications with the master node are severed can comprise determining that the topology of the communications network has changed by comparing first data representative of first topology data stored at the node with second data received from a neighbouring node, the second data representative of second topology data stored in the neighbouring node.
  • the supervisory process can further comprise: requesting the second topology data from the neighbouring node if the first data differs from the second data; receiving the second topology data; and updating the first topology data based on the second topology data.
  • Determining if communications with the master node are severed can comprise transmitting a message to the master node and determining if a reply from the master node is received.
  • Determining if the node has priority in a remaining portion of the plurality of nodes can comprise comparing an identifier of the node to a list of identifiers of the remaining portion of nodes, the list of identifiers comprising a priority of each of the remaining portion of nodes.
  • the supervisory process can further comprise determining if communications with at least one of the master node and another master node have been re-established and, in response, stopping providing the communication services to the remaining portion of the plurality of nodes such that the node assumes a relay mode in which data from neighbouring nodes is relayed to at least one of the master node and the another master node.
  • the supervisory process can further comprise determining a topology of the communication network by: periodically transmitting first data representative of topology data stored at the node with at least one neighbouring node; periodically receiving second data representative of topology data stored at the at least one neighbouring node; comparing the first data with the second data, and if the first data differs from the second data: requesting the topology data stored at the at least one neighbouring node; and updating the topology data stored at the node based on the topology data received from the at least one neighbouring node.
  • the communication services can comprise at least one of dynamic host configuration protocol services, telephone services, internet protocol based services, push to talk services, software update services, TFTP services, and location services.
  • a third aspect of the specification provides a communication network comprising at least one wireless communication device.
  • the communication network further comprises a plurality of nodes enabled to communicate with the at last one wireless communication device and to relay data within the communication network.
  • the communication network further comprises at least one master node for providing communication services to the plurality of nodes.
  • Each of the plurality of nodes stores master node replication data for enabling a node to replicate the master node.
  • Each node of the plurality of nodes enabled to execute a supervisory process comprising: determining if communications with the master node are severed; and, if so, determining if the node has priority in a remaining portion of the plurality of nodes; and if so, processing the master node replication data such that the node replicates the master node by providing the communication services to the remaining portion of the plurality of nodes.
  • a fourth aspect of the specification provides a node in a communication network connectable to a plurality of other nodes.
  • the node comprises a processor.
  • the node further comprises at least one radio connected to the processor; the at least one radio for connecting to the other nodes.
  • the processor is configured to execute a supervisory process; a registry process and a file transfer process; each of the processes configured to carry or host voice communications through the node and to dynamically adjust operation of the node between carrying or hosting voice communications via one or more other ones of the nodes.
  • FIG. 1 depicts a mine with a mesh network of nodes installed therein, according to non-limiting embodiments
  • FIG. 2 depicts a communication network, according to non-limiting embodiments
  • FIG. 3 depicts a node, according to non-limiting embodiments
  • FIG. 4 depicts a client device, according to non-limiting embodiments
  • Fig. 5 depicts nodes in communication via upstream and downstream channels, according to non-limiting embodiments
  • Fig. 6 depicts a method for replicating a master node, according to non-limiting embodiments
  • Fig. 7 depicts a communication network in which nodes broadcast data representative of topology data, according to non-limiting embodiments
  • Fig. 8 depicts a topology of a communication network, including priority of nodes in the communication network, according to non-limiting embodiments;
  • Fig. 9 depicts a communication network in which a nodes has been damaged and/or destroyed, according to non-limiting embodiments;
  • Figs. 10 to 13 depict a communication network in which a nodes has been damaged and/or destroyed, into which a new node has been inserted, according to non-limiting embodiments;
  • Fig. 14 depicts a communication network in which nodes ping other nodes to determine priority within the communication network, according to non-limiting embodiments
  • Fig. 15 depicts a node, according to non-limiting embodiments.
  • Fig. 16 depicts a method for replicating a master node, according to non-limiting embodiments.
  • Fig. 17 depicts a node, according to non-limiting embodiments.
  • a room and pillar coal mine is indicated generally at 50.
  • Mine 50 is characterized by a coal seam 52 that has been mined so as to leave a plurality of pillars 54-1, 54-2,..., 54-26. (Generically, pillar 54, and collectively, pillars 54).
  • the portions of seam 52 that are not pillars 54 but which have yet to be mined are referred to as coal faces and are labelled at 58-1, 58-2, ... 58-7.
  • Mine 50 is also characterized by a plurality of rooms around each pillar 54.
  • Each room also known as an "entry” of a "cross-cut”
  • each pillar 54 has a width of about 40-100 feet.
  • Mine 50 can be suitable for long- wall and/or retreat mining whereby each pillar 54 is removed, allowing the roof to collapse, and further adding to the risk of harm for mining personnel.
  • Mine 50 is also characterized by at least one entrance 62 where miners, other personnel and equipment can enter and exit mine 50 and through which coal extracted from mine 50 can be removed.
  • Mine 50 is also characterized by a plurality of barriers 66-1, 66-2, 66-12 which can be used to isolate certain rooms from each other. Barriers 66 can be arranged so as to isolate corridors of rooms. For example, barriers 66-3, 66-7, 66-9 and 66-11 define one side of a corridor 70 while barriers 66-4, 66-8, 66-10 and 66-12 define the opposite side of corridor 70.
  • Corridor 70 can, for example, be reserved for a conveyor belt that brings coal from face 587-7 to entrance 62.
  • ventilation equipment in mine 50 can be configured so as to direct dirty air flow out of entrance 62 and thereby urge clean air into the remainder of mine 50.
  • Barriers 66 can either be fixed stoppings, or can also be so-called "man-doors” that permit personnel to open and pass through those doors if desired. In mine 50, barriers 66-5 and barriers 66-6 are man doors, whereas the remaining barriers 66 are all stoppings.
  • a communication network 72 is also deployed throughout mine 50.
  • Communication network 72 is shown schematically in Figure 2, while the components of network 72 are shown in both Figures 1 and 2.
  • Network 72 comprises a plurality of nodes 74 (74-1, 74- 2...74-n%), or access points, mounted to various points throughout mine 50, for example to pillars 54.
  • Network 72 also comprises at least one client device 78-1 that is configured to wirelessly communicate with those nodes 74 that are within range of device 78-1.
  • Mine 50 also includes at least one base station 82 which is configured to wirelessly communicate with those nodes 74 within range of base station 82.
  • Base station 82 is connected to a head end 86 via a link 90, which can be wired or wireless as desired.
  • Base station 82 can be implemented as a node 74 that connects to head end 86.
  • head end 86 can comprise a local operations centre, but can be in communication with a remote operations centre via a network.
  • Head end 86 houses a server 94 that connects to base station 82 via link 90.
  • Server 94 is configured to permit a user U to interact with communication network 72 via a terminal 98 and a telephony device 102.
  • Terminal 98 permits user U to provide text based input and to view visual output from server 94, while telephony device 102 permits user U to conduct voice telephone calls via server 94.
  • telephony device 102 permits user U to conduct voice telephone calls via server 94.
  • server 94 can also be connected to network 106, such as the Internet, to permit users who are remote to server 94 to interact with server 94 in the same manner as user U.
  • communication network 72 is generally enabled for communication services, including but not limited to voice and/or data services.
  • the base station 82 generally acts as a master node within the plurality of nodes 74, a master node for providing the communication services to the plurality of nodes 74.
  • a master node can be referred to as a root node.
  • the server 94 can also generally be referred to as a grounded master node (or a grounded root) as the server 94 "grounds" the communication network 72 to the network 106.
  • the server 94 can also generally be referred to as a "head-end" as it represents the head of communication network 72.
  • the communication network 72 comprises a mesh network, with each node 74 and the server 94 comprising a node in the mesh.
  • Figure 7 depicts nodes 74 and server 94 as nodes in a mesh network, according to non-limiting embodiments.
  • base station 82, of Figure 1 is represented as a grounded master node 74-0.
  • nodes 74 can communicate via a WiFi network backbone.
  • communications network 72 can comprise a plurality of master nodes and/or a plurality of grounded master nodes, and it is understood that each acts as a managed switch within a rapid spanning tree protocol to optimize network routing.
  • Node 74 includes a plurality of internal components including central processing unit (“CPU”) 110 that interconnects, via a bus, to a radio 114, a network interface card (“NIC") 116, random access memory (“RAM”) 118 (or other volatile storage device), and a read only memory (“ROM”) 122 (or other non- volatile storage device).
  • CPU central processing unit
  • NIC network interface card
  • RAM random access memory
  • ROM read only memory
  • Node 74 stores master node replication data (MNRD), for example at RAM 1 18, MNRD comprising data that enables node 74 to provide master node services to other nodes 74 upon processing MNRD.
  • MNRD master node replication data
  • MNRD can comprise topology data, as described below with respect to lists Ll and L2.
  • node 74 upon processing MNRD, performs the functionality of grounded master node 74-0 (i.e. server 94), and specifically providing communication services to the plurality of nodes 74.
  • grounded master node 74-0 i.e. server 94
  • node 74 becomes a master node.
  • the node 74 can be provisioned with MNRD prior to deployment within communication network 72.
  • node 74 can further act a grounded master node if it is determined that node 74 is connected to an external communication network such as network 106.
  • a node 74 can operate in one of three modes:
  • Relay mode in which node 74 acts to relay data to a grounded master node 74.
  • Master mode in which node 74 acts as a master node to provide communication services to other nodes 74; as described below, a node 74 in relay mode can enter master mode after communications are severed from a node 74 in grounded master mode, described hereafter.
  • a node 74 acts as a master node in the absence of communications with an external communications network (such as network 106)
  • such a node 74 can also be referred to as a floating master node.
  • Grounded master mode in which node 74 acts as a grounded master node to provide communication services to other nodes 74 and further relay data to an external communication network.
  • Node 74 can enter grounded master mode if node 74 is in master mode and it is further determined that node 74 is connected to an external communication network.
  • Node 74 also stores a list Ll, for example at RAM 118, list Ll comprising a topology of communication network 72, including a priority of each node 74 in the communication network 72.
  • list Ll comprises only data associated with node 74.
  • Population of list Ll with data associated with other nodes in communication network 72 occurs when nodes 74 are deployed.
  • list Ll has the non-limiting format of Table 1 , for a node 74-n, with the following content upon initialization:
  • list Ll in present embodiments is provided in the format of fields arranged in rows and columns, with one node 74 per row, and columns indicating the characteristics of each node 74
  • the format of list Ll is generally non-limiting and can be in any suitable format.
  • List Ll generally comprises an identifier ("Identifier" field) of node 74, including but not limited to a MAC address and/or any other suitable identifier.
  • the identifier can be provisioned at node 74 prior to deployment in communication network 72.
  • node 74 can be enabled to determine the identifier, for example by processing identifying data stored at node 74, and populate List Ll with the identifier.
  • the identifier comprises "74-n".
  • List Ll further comprises an indication of priority of node 74 in communication network 72.
  • the indication of priority comprises a "Priority Field", though in other embodiments, priority may be indicated in any suitable manner, including but not limited to an order in which nodes 74 are listed in Ll.
  • the initial priority can be provisioned at the node 74 prior to deployment in communication network 72, and can be based on any suitable means of determining priority of a node 74 in the communications network 74.
  • priority is based on a tree topology, in which a central 'root' node (the top or zeroth level of the hierarchy, or priority "0") is connected to one or more other nodes that are one level lower in the hierarchy (i.e., the first level, or priority "1 "), with a point-to-point link between each of the first level nodes and the top level central 'root' node.
  • Each of the first level nodes that are connected to the top level central 'root' node will also have one or more other nodes that are one level lower in the hierarchy (i.e., the second level, or priority "2") connected to it, also with a point-to-point link, the top level central 'root' node being the only node that has no other node above it in the hierarchy.
  • communication network 72 can comprise more than one top level central 'root' node, with any suitable protocol used to determine a best path for a given packet (for example rapid spanning tree protocol (RSTP)).
  • RSTP rapid spanning tree protocol
  • node 74 is initially not aware of its position in the topology of communications network 72, it is assumed that node 74 has a priority of "0". In other words, it is initially assumed that node 74 is to act as a master node, though upon initialization node 74 may not have yet processed MNRD. Indeed, in some embodiments, the default state of node 74 is relay status, until it is determined whether or not node 74 is indeed a master node.
  • the priority level can also be thought of the number of hops that data transmitted from node 74 must take to reach a master node.
  • List Ll Upon Initialization, the number of hops is "0" as the initial assumption is that node 74 is a master node.
  • node 74 is enabled to determine whether it is a grounded master node by detecting a connection to an external communication network (e.g. network 106) via NIC 166.
  • list Ll further comprises an indication of whether or not node 74 is a grounded master node (i.e. connected to a network external to communications network 72, such as network 106) via the field "GM Node".
  • GM Node a grounded master node
  • the list Ll i.e. list LIo stored at grounded master node 74-0
  • Table 2 can comprise the contents of Table 2:
  • Node 74 can determine its place in the topology by comparing the identifying data stored at node 74 (e.g. the MAC address) and comparing the identifying data to the list Ll.
  • List Ll further comprise an indication of the address of node 74 in the field "Address".
  • Address an indication of the address of node 74 in the field "Address”.
  • nodes 74 have not yet been issued addresses. Rather, this occurs during initialization by a master node and/or a grounded master node as described below. Hence, in List Ll, upon initialization the address field is empty.
  • Each node 74-1, 74-2... stores a corresponding list LI i, L I 2 ...
  • the list Ll can be populated via method 600, described below. Furthermore, non-limiting example of the list Ll are provided below.
  • node 74 can also house a rechargeable power supply. Furthermore, the internal components of node 74 can be housed within a ruggedized, spark- proof housing which meets mining regulations so that the power supply within node 74 has a reduced risk of igniting flammable gases that may be present within mine 50. Such ruggedization is referred to as making the node 74 "intrinsically safe" as connected to the electrical service main running within mine 50. However, in an emergency condition node 74 can be configured to continue operating by virtue of the rechargeable power supply, which can be constantly maintained at full charge by virtue of connection to the electrical service main specified by MHSA and/or other regulatory agency and/or body.
  • Each access point 54 also has a battery that is configured to permit the access point 54 to operate for a suitable amount time, which can, in some embodiments, be specified by a regulatory body. For example the battery can permit the access point to operate for at least 24 hours.
  • Each access point 54 can be connected to a step down transformer to provide suitable AC power, DC power, or both, as desired.
  • node 74 also comprises a plurality of directional antennas 126-1, 126-2, 126-3, 126-4. Accordingly, node 74 also comprises a plurality of radios within radio 114, one radio to control each antenna, though in some embodiments a smaller number of radios may be provided, with at least one of the radios controlling at least two antennas. However, node 74 can comprise a suitable number of radios, each radio controlling any suitable number of antennas. Furthermore, node 74 is configured to communicate on two different channels: one channel for upstream communications to other nodes 74 towards server 94 (i.e. the head-end)), and another channel for downstream communications to other nodes 74 away from the server 94.
  • server 94 i.e. the head-end
  • each upstream/downstream pair of antennas 126 can be configured to communicate on unique channels.
  • Each antenna 126 is controlled by radio 114, and each antenna 126 is configured to both receive and transmit wireless communications and thereby permit each node 74 to communicate with each other and/or base station 82 provided they are in range of each other.
  • node 74 also comprises a plurality of wired interface connections 130-1, 130-2.
  • Each interface port 130 is controlled by NIC 166, and each port 130 is configured to interact with peripheral devices that are locally attached to port 130.
  • each interface port 130 can be based on the Ethernet standard, but in other embodiments interface connections 130 can be based on universal serial bus ("USB"), RS-232, Fibre-Optics, Firewire and the like and/or combinations thereof.
  • USB universal serial bus
  • Peripheral devices that are contemplated for connection to node 74 include substantially permanent connections such as web cameras, video cameras, gas sensors, temperature sensors, process logic controllers, humidity sensors, or other sensors, loud speakers and/or temporary connections including lap top computers, personal digital assistants, printers, bar code scanners, and/or device 78 itself in the event that device 78 becomes unable to communicate wirelessly with node 74.
  • ROM 122 thus maintains a persistent copy of software and other programming instructions to operate node 74 that implement the various communication and other functions for which node 74 is configured. It is also contemplated that the contents of ROM
  • MNRD and List Ll can be stored in ROM 122, or in any other suitable memory.
  • ROM 122 can store a List L2, as described below.
  • each antenna 126 can be mechanically separate from the main chassis of node 74, and attachable electrically via an intrinsically safe cable and its associated connectors to the main chassis.
  • Each antenna 126 can thus be mounted to a pillar 54 or other suitable location within mine 50 and oriented in a direction so as to create and/or be within a coverage area of another antenna 126 on another node 74.
  • the detachable nature of each antenna 126 also permits an antenna 126 to be located on one side of a barrier 66, while the chassis of the node 74 is located on the opposite side of the barrier 66.
  • antenna 126-2 is located on one side of a barrier 66, while the chassis of node 74 is located on the opposite side of a barrier 66. Since, in general, barriers 66 are not air-tight, and cable can be readily run through gaps or drilled openings within barrier 66.
  • each node 74 can communicate via a packet based protocol, such as internet protocol (IP).
  • IP internet protocol
  • each node 14 can be connected to satellite phones, PBXs, the Public Switched Telephone Network ("PSTN"), or the like, making it possible for isolated locations such as prospecting camps to have a fully digital communications and data network linked to "the outside world", presuming access to an external network.
  • nodes 74 can be further enabled to provide Push-to-talk communications and, in some embodiments, extension-to-extension calling.
  • the node 74 oversees and provides the various communication services to the other nodes 74 it is in communication with.
  • client device 78 is shown in greater detail.
  • client device 78 can be based on the functionality of a wireless personal digital assistant (PDA) such as Polycom/SpectralinkTM 8030 WiFi Phone from Polycom Inc., EkahauTM T301 Tag from Ekahau Inc., IPaqTM from Hewlett Packard, TREOTM, from Palm Inc., BlackberryTM from Research in Motion Inc, or any other suitable PDA.
  • PDA wireless personal digital assistant
  • Device 78 is also presented in a ruggedized, intrinsically safe, spark-proof casing to withstand the physical demands of a mining environment while also reducing the likelihood of electrical components within device 78 igniting gases within mine 50.
  • the internal components of device 78 thus include a CPU 134 which interconnects a keyboard 138 and a microphone 142 (and/or other input devices) with a display 146 and a speaker 150 (and/or other output devices).
  • CPU 134 also interconnects the foregoing components with RAM 154, ROM 158, a radio 162 and an NIC 166.
  • Radio 162 in turn, connects to an antenna 170, while NIC 166 connects to an interface port 174.
  • Radio 162 and antenna 170 are configured to communicate wirelessly with each node 74 that is within range of device 78.
  • NIC 166 and interface port 174 can be based on USB, Firewire, Fibre-optics, RS-232, RS-485, or wireless media including BluetoothTM or ZigBee. Multiple NICs can be included, similar to NIC 166, that communicate using different ones of the aforementioned protocols. It should be understood that in variations, device 78 need not include all of the features discussed above.
  • each client device 78 includes software and hardware that configures device 78 for communication and as a locating device (e.g. via the Ekahua T301 tag).
  • Device 78 can communicate with each node using the IEEE 802.1 lb,g (or its variants) standard.
  • Software permits each client device 78 to function as a walkie-talkie and/or a VoIP telephone.
  • locating software can enable the user to see exactly where the user is located within mine 50, and to see the location of other client devices 78 in his vicinity. Other tools built in such as messaging and spreadsheets can be included as desired.
  • the client device 78 comprises an RFlD tag that is attached to a piece of mining equipment, or safety room or self-rescue/ breathing equipment such that the client device 78 can be located in said mine. Further, the client device 78 includes inventory tracking software.
  • nodes 74 and device 78 are shown, whereby communications between device 78 and base station 82 is effected via nodes 74.
  • each node 74 is configured to communicate over multiple wireless channels, and each antenna 126 is dynamically configurable to operate over either channel.
  • each antenna 126 can be physically mounted in a direction to create a coverage region that overlaps with another antenna 126 on another node 74.
  • node 74-1 is shown as bi-directionally communicating with base station 82 via a first, upstream channel 180.
  • Node 74-1 is also shown bi-directionally communicating with node 74-5 and node 74-6 via a second, downstream channel 184.
  • node 74-5 and node 74-6 are also shown bi-directionally communicating with device 78 via downstream channel 184.
  • antennas 126 can be directional to provide better gain in a given direction.
  • Upstream channel 180 and downstream channel 184 are orthogonal to each other and therefore non-interfering.
  • upstream channel 180 is carried at a frequency of 5.8 Gigahertz while downstream channel 184 is carried at a frequency of 5.8 Gigahertz, 2.4 Gigahertz, or other frequency as required and based on the IEEE 802.11b (and/or its variants) protocol.
  • any suitable ISM (industrial, scientific and medical) and/or unlicensed frequency can be used for communications.
  • Figure 6 depicts a method 600 replicating a master node in communication network 72.
  • Method 600 can be implemented in at least one of the plurality of nodes 600.
  • method 600 is performed using communication network 72.
  • communication network 72 and/or method 600 can be varied, and need not work exactly as discussed herein in conjunction with each other, and that such variations are within the scope of present embodiments.
  • each node 74 performs method 600 while deployed within communication network 72.
  • Method 600 furthermore enables nodes 74 to determine the topology of communication network 72 (i.e. populate/update list Ll) which in turn enables each node 74 to determine the mode in which each node 74 is to be operating.
  • method 600 enables each node 74 to update list Ll and in turn determine the mode in which each node is to be operating in response to the change in topology.
  • method 600 is used to replicate a master node and/or determine the topology of a telecommunication network, and include:
  • Scenario 1 Initialization of communication network 72.
  • Scenario 2 Loss of a node 74 within communication network 72.
  • Scenario 3 Insertion of a node 74 within communication network 72.
  • Scenario 1 Initialization of Communication Network 72
  • method 600 is used to determine the topology of communication network 72 when communication network 72 is initialized.
  • each node 74 comprises list Ll as shown in Table 1.
  • a node 74-n (e.g. node 74-4 in Figure 7), generates data Dl n by processing list Ll n (see Figure 7) stored at node 74-n.
  • data Dl is generally representative of list Ll and is determined by processing list Ll using any suitable function, F, such as a hash function, a cyclic redundancy check (CRC), a message digest algorithm, and the like.
  • F a hash function
  • CRC cyclic redundancy check
  • message digest algorithm and the like.
  • Dl is also generally of a smaller size, with respect to both memory and consumption of bandwidth than list Ll. Furthermore, Dl can be used to determine if list Ll n is the same or different from another list Ll m stored at a different node 74 (e.g. node 74-3) by comparing Dl n to Dl m generated at a different node 74. [0091] At step 615, Dl n is broadcast via radios 114 and antenna(s) 126, via the upstream channel 180 and the downstream channel 184, and is received by any nodes 74 within broadcast range. Dl n is generally broadcast periodically, for example once a given number of seconds and/or minutes.
  • Dl n can be broadcast on a layer above the radio layer, according to the OSI (Open Systems Interconnection) model of communications networks.
  • OSI Open Systems Interconnection
  • step 620 it is determined if data Dl m is received from another node 74-m (e.g. node 74-3), which is also performing method 600, and hence Dl m is generated at node 74-m from list Ll m and broadcast by node 74-m at step 615 of method 600. It is further assumed in these instances that nodes 74-n and 74-m are within broadcast range of each other.
  • another node 74-m e.g. node 74-3
  • Dl m is generated at node 74-m from list Ll m and broadcast by node 74-m at step 615 of method 600. It is further assumed in these instances that nodes 74-n and 74-m are within broadcast range of each other.
  • step 620 it can be determined that Dl n , is not received, for example, if node 74-n is alone in communications network 72 and/or not in broadcast range of other nodes 74-m. Indeed, as Dl m is also broadcast periodically, node 74-n generally expects to receive at least one Dl m periodically. Hence, a determination that if Dl n , is not received can be made if Dl n , is not received within a given time period. Such a situation is pertinent in Scenario 2, described below.
  • Dl n is compared to Dl m .
  • list Ll n will be similar to list Ll n , but list Ll m will contain data relevant to the node 74-m.
  • Table 2 provides a non-limiting example of list Ll n , upon initialization:
  • list Ll n differs from list Ll n in that the identifier "74-m" identifies the node 74-m (e.g. a MAC address).
  • Dl n differs from Dl n .
  • list Ll n is requested and received from node 74-m.
  • list Ll n is updated using list Ll m such that the data from Ll m is added to list Ll n .
  • list node 74-n and node 74-m respectively, as having a priority of "0"
  • the priority of nodes 74 can be resolved at step 635 using any suitable priority-resolution technique.
  • the node 74-n and node 74-m having the higher numbered identifier can initially have priority until further information about the topology of communication network 72 is acquired.
  • the data from list Ll m is added to list Ll n with the priority of node 74-m changed to "1" (i.e. number of hops from node 74-m to node 74-n) as node 74-m has a lower numbered identifier than the node 74-n.
  • the data is listed in any suitable order, such as priority order, as shown in Table 4:
  • list Ll m is updated in a similar manner using data from list Ll n , assuming that node 74-m has received Dl n and made a similar comparison at step 620, which resulted in node 74-n providing list Ll n to node 74-m.
  • Table 5 shows list Ll n , in these embodiments:
  • step 640 it is determined if the topology of communication network 72 is still evolving, for example via a counter that counts the number of times Dl n is equal to Dl m at step 625; if the counter reaches a given number of times, then it is determined at step 680 that the topology is no longer evolving. As subsequent steps in the method 600 can cause at least one of nodes 74 to assume master node status, step 640 may be implemented to prevent this from occurring until the topology of communication network 72 is understood (e.g. Ll stops changing).
  • nodes 74 can unnecessarily switch back and forth between master node status and relay status, which generally waste resources such as batteries.
  • Dl n is again calculated using the updated list Ll n at step 610, and Dl n is again broadcast at step 615; similarly, within node 74-m, Dl n , is again calculated using the updated list Ll m at step 610, and Dl m is again broadcast at step 615, to be received at step 620 at node 74-n.
  • Ll n is processed to determine the priority of node
  • node 74-n If node 74-n does not have top priority then, at step 650, node 74-n enters relay mode, if it not already in relay mode, to relay data to the highest priority node 74 in list Ll n -
  • node 74-n processes MNRD such that, at step 660, node 74-n enters master mode, if it is not already in master mode, to act as a master node by providing communication services to the other nodes 74 in list Ll n .
  • node 74-n is connected to an external network, such as network 106. If so, node 74-n enters grounded master mode, if it is not already in grounded master mode to relay data, as required, to the external network. [00109] Furthermore, once node 74-n enters master node and/or grounded master mode, node 74-n, at steps 660 and/or step 675, node 74-n can issue network addresses to other nodes in the communication network 72. In some embodiments, the network addresses can be assigned via Dynamic Host Configuration Protocol (DHCP). The network addresses can be delivered via the communication network 72 via data specifically transmitted to each node 74 via the communication network 72. Alternatively, the addresses can be delivered by updating list Ll 0 at the grounded node 74-0 and relying on the exchange of data Dl n and Dl m at each node 74 to propagate the network addresses throughout the communication network 72.
  • DHCP Dynamic Host Configuration Protocol
  • node 74-3 will assume relay mode, while node 74-4 will assume master mode, unless step 640 is implemented. In these embodiments, both of nodes 74-3 and 74-4 will maintain their default relay mode until the topology of communication network 72 stops changing.
  • node 74-n again generates Dl n at step 610 using the updated Ll n .
  • list Ll 4 can acquire the data associated with node 74-0, even though they are not in direct communication by again exchanging data with node 74-3, once list Ll 3 contains the data associated with node 74-0 as at this point Dl 3 will not equal Dl 4 (i.e. step 625).
  • node 74-0 is a grounded master node, it takes priority over all other nodes 74 in the communication network 72, such that list Ll 0 , Ll 3 and list Ll 4 assumes the contents of Table 6.
  • RSTP can be used to route traffic to the appropriate grounded master node.
  • Table 6 comprises:
  • Method 600 will then continue to occur at all nodes 74, with each list Ll continuing to be updated by exchanging lists Ll with other nodes 74 within broadcast range until the priority of each node is established with respect to the grounded master node 74-0, and until list Ll is the same at all nodes 74.
  • list Ll represents the paths which data from a node 74 that is low on list Ll can take to reach the grounded master node 74-0.
  • more than one path may be available; in some of these embodiments, the priority of a node 74 can default to the shortest path (i.e. fewest number of hops), while in other embodiments, the priority of a node 74 can be based on quality of service (i.e. the path with the strongest signal strengths between nodes 74).
  • Figure 8 depicts the topology of communication network 72, according to non-limiting embodiments, after list Ll has stopped changing and each node 74 lists all of the nodes 74 (i.e. step 625 produces a positive result after a given number of times through method 600).
  • Solid lines between nodes 74 are understood to be wireless links via at least one of upstream channel 180 and downstream channel 184.
  • Figure 8 also depicts the priority of each node 74.
  • Such a topology results, at least in part, from the physical arrangement of nodes 74 in mine 50 depicted in Figure 1.
  • Non-limiting embodiments of a corresponding list Ll which represents the topology depicted in Figure 8 can be represented as in Table 7:
  • the topology of the communications network 72 is indicated by both the priority of each node 74 and the order nodes 74 are listed.
  • a node 74 is in communication with more than one downstream node (i.e. a branch)
  • a first branch, and all nodes in the first branch can be listed prior to a second branch (i.e.
  • nodes 74-2, 74-1, 74-6, 74-7, 74-5, 74-10 are listed prior to the nodes74-3, 74-8, 74-4, 74-9, 74-14, 74-13, 74-12, 74-11, with each of nodes 74-2 and 74-3 having a priority of "1" and in each of nodes 74-2 and 74-3 in communication with node 74-0).
  • list Ll provides the topology and priority level of each node 74, each node 74 can determine the topology of communication network 72 by processing list Ll.
  • each node 74 can further comprise a list L2 which can comprise a table identifying neighbour nodes, the master node(s), all the nodes 74 which can be communicated with and the hop counts to each one of them.
  • list L2 can be similar to list Ll ; however list L2 can be more explicitly configured as a definition of the topology of communication network 72 from the point of view of a given node 74 storing a given list L2.
  • list L2 stored at node 74-4 can comprise:
  • each node 74 can store an identifier of the grounded master node (or alternatively, in the absence of external communications, a floating master node) with which it is in communication.
  • node 74-4 can store an identifier of node 74-0 and data identifying node 74-0 as a grounded master.
  • list L2 can comprise data indicating the neighbour nodes to node 74-4.
  • list L2 can be populated and updated in a manner similar to the population of list Ll, as described above, and further described below. [00122] In some embodiments, once the list Ll is the same at all nodes 74, each node 74-n continues to generate and broadcast Dl n , though data Dl m from nodes 74 other than neighbours of node 74-n, as indicated in list Ll, can be ignored.
  • any node 74 can communicate with any other node 74 (i.e. data can be relayed between any two nodes 74), such that miners can communicate with each in mine 50 via client device 78.
  • Method 600 continues to repeat within each node 74. Indeed, unless a change occurs in the topology of the communication network 72, as in Scenarios 2 and 3, as described below, such that a change occurs to list Ll at one of nodes 74, each node 74 will cycle through steps 615, 620 and 625. As such, the broadcast of Dl by each node at step 620 serves as a "heartbeat" indicator of the health of the communication network 72
  • Scenario 2 Loss of a node 74 within communication network 72
  • nodes 74 upstream of node 74-x remain in communication with the grounded master node 74-0 and hence communication services are unaffected by the loss of node 74-x.
  • data can no longer be relayed to nodes 74 downstream of node 74-x.
  • Method 600 will now be considered in light of this scenario when node 74-x is an upstream node and when node 74-x is a downstream node.
  • Figure 9 is similar to Figure 8, with like elements having like numbers. However, in Figure 9, node 74-4 is assumed to have been damaged or destroyed. Consider method 600 occurring in node 74-9, downstream from node
  • node 74-9 broadcasts data Dl 9 to node 74-4 (no longer functioning) and node 74-14.
  • node 74-9 determines that Dl 4 is not being received.
  • node 74-9 updates list Ll 9 to remove the node 74-4, and all nodes 74 to which communication is no longer possible. For example, as node 74-9 can no longer communicate with nodes 74-0, 74-2, 74-3, 74-4, 74-1, 74-5, 74-10, 74-6, and 74-7, these nodes are removed from list Ll 9 , as in Table 8:
  • node 74-9 assumes master node status at steps 655 and 660, by processing MNRD.
  • node 74-9 may re n umber priorities based on node 74-9 having top priority, as in Table 9:
  • nod 74-9 may also re-issue network addresses.
  • node 74-14 broadcasts data Dl 14 to node 74-9.
  • Dl 9 is received, but at step 625 it is determined that Dh 4 is not equal to Dl 9 as list Ll 9 has now changed as in Table 9, while list LI j 4 is still as in Table 7.
  • list Ll 9 is requested and received from node 74-9.
  • node 74-14 updates list Ll i 4 to remove the node 74-4, and all nodes 74 to which communication is no longer possible.
  • list L 1 14 is now similar to Table 9.
  • node 74-3 broadcasts data Dl 3 to node 74-4 (no longer functioning), node 74-0 and node 74-8.
  • node 74-3 determines that Dl 4 is not being received.
  • node 74-3 updates list Ll 3 to remove the node 74-4, and all nodes 74 to which communication is no longer possible. For example, as node 74-9 can no longer communicate with nodes 74-9, 74-14, 74-13, 74-12, and 74-11, these nodes are removed from list Ll 3 , as in Table 10:
  • step 650 the priority of node 74-3 is determined, and as node 74-3 does not have top priority in list Ll, node 74-3 maintains its relay status at step 655.
  • node 74-0 broadcasts data Dl 0 to node 74-3.
  • Dl 3 is received, but at step 625 it is determined that Dl 0 is not equal to Dl 3 as list Ll 3 has now changed as in Table 10, while list Ll 0 is still as in Table 7.
  • list Ll 3 is requested and received from node 74-3.
  • node 74-0 updates list Ll 0 to remove the node 74-4, and all nodes 74 to which communication is no longer possible.
  • list Ll 14 is now similar to Table 8.
  • Updates to list Ll at nodes 74-2, 74-1, 74-5, 74-10, 74-6 and 74-7 occur in manner similar to the update of list 74-14, such that the lists Ll at each of these nodes 74 are similar to Table 8.
  • nodes 74 in the communication network 72 are damaged or destroyed, groups of nodes 74 which remain in communication can organize themselves in a manner similar to that described above. For example, if node 74-13 is destroyed, nodes 74-9 and 74-13 will maintain communications, with node 74-9 acting as a master node. Similarly, nodes 74-12 and 74-11 will maintain communications, with node 74-as acting as a master node as node 74-12 has priority in list Ll 12 , similar to list LI 9 depicted in Table 9.
  • communication services can be provided to a group of nodes 74 that have been isolated from the grounded master node 74-0, but causing one node to replicate a master node.
  • client devices 78 that are in communication with the isolated group of nodes 74 are enabled to communicate with each other, even when communications outside mine 50 are not possible.
  • one node 74 may be isolated from all the other nodes 74; in these embodiments, the one node 74 can provide communication services for itself, such that client devices 78 in range of the one node 74 are enabled to communicate.
  • Scenario 3 Insertion of a node 74 within communication network 72
  • FIG. 10 is substantially similar to Figure 9, with like elements having like numbers, however in Figure 10 node 74-4 is assumed to have been damaged/destroyed, or in any event is not broadcasting data Dl 4 . Hence nodes 74-9, 74-14, 74-13, 74-12 and 74-11 are isolated from the other nodes 74, including the grounded master node 74-0. Hence, list Ll at nodes 74-9, 74-14, 74-13, 74-12 and 74-11 being similar to list Ll 9 in Table 9, and list Ll at the remaining nodes 74 is similar to list Ll 0 in Table 10.
  • node 104 comprises a list Ll io 4 as in Table 11 :
  • node 74-11 receives data DI i 04 , for the first time.
  • DI i O4 can include a "HELLO" message when making contact with node 74- 11 for the first time.
  • node 74-11 compares Dl 11 to Dl 104 . As they are different, at steps 630 and 640, Ll 104 is requested/received and LI n is updated, as in Table 12:
  • step 650 the priority of node 74-11 is determined, and as node 74-11 does not have tope priority, node 74-11 maintains relay mode at step 655.
  • Node 74-11 will then re-generate data DI n at step 610 and broadcast it at step 615.
  • data DI n is received at node 74-12, and list LI i 2 is updated, as in Table 12.
  • the data in Table 12 then propagates down the line of nodes 74 to node 74-9, where list Ll 9 is updated, as in Table 12.
  • Node 74-9 then checks its priority in updated list Ll 9 and determines that it no longer has top priority.
  • node 74-9 enters relay mode at step 650, though MNRD is still stored for later processing, if necessary.
  • node 104 has maintained the existing network addresses, and issued itself the network address 10.50.11.00. In other embodiments, however, node 104 may issue new network addresses to all nodes 74 for which it is acting as the grounded master node.
  • node 74-11 becomes the master node, providing communication services to the other nodes 74 in the group from node 74-9 to node 74-11.
  • TABLE 13 List Ll in nodes 74-9 to node 104 after node 104 is inserted between nodes 74-11 and 74-12.
  • node 104 if node 104 is removed from communication network 72, there is a priority conflict between nodes 74-11 and 74-12, as each has a priority of "1 " in Table 13.
  • any suitable priority-resolution technique can be used to resolve the conflict, for example the node 74 having the higher numbered identifier can assume top priority, such that list Ll is updated as in Table 14:
  • TABLE 13 List Ll in nodes 74-9 to node 74-12 after node 104 is removed from between nodes 74-11 and 74-12.
  • node 74-12 then enters master mode to provide communication services to nodes 74-9 to 74-11.
  • node 104' has been inserted into mine 50 between nodes 74-3 and 74-9, for example by drilling into mine 50 and inserting an antenna into mine 50, or by replacing damaged/destroyed node 74-4.
  • Node 104' is similar to node 104, however node 104' is not acting as grounded master node. In these embodiments, node 104' effectively bridges node 74-3 to nodes 74-9...74-11, which had been operating in isolation from the other nodes 74.
  • the list Ll is updated as in Table 7, but including data associated with node 104 in place of data associated with node 74-4.
  • Grounded master node 74-0 again provides communication services to all nodes 74 and node 104'.
  • node 104" has been inserted into mine 50 between nodes 74-3 and 74-9, for example by drilling into mine 50 and inserting an antenna into mine 50, or by replacing damaged/destroyed node 74-4.
  • node 104 effectively bridges node 74-3 to nodes 74-9...74-11, which had been operating in isolation from the other nodes 74.
  • Table 14 the list Ll is updated as in Table 14:
  • node 74-0 and node 104 there is a priority conflict as there are now two grounded master nodes in the communication system 72: node 74-0 and node 104.
  • a priority conflict can be resolved using any suitable priority resolution technique, as described above, for example using RSTP.
  • each of nodes 74-0 and 104 can stay in grounded master mode, effectively creating two subnetworks within communication system 72: i.e. nodes 104, 74-9 to 74-11 form a first subnetwork; and the remaining nodes 74, including node 74-0, form a second subnetwork.
  • node 104 relays data from the first subnetwork to one of the communications network 107 or the second subnetwork. Such a relay is dependent on whether the data is addressed to the second subnetwork (i.e. a node 74 in the second subnetwork) or to an external address.
  • FIG. 14 depicts a communication network 1472 according to non-limiting embodiments, communications network 1472 generally similar to communications network 72, except as described below.
  • Communication network 1472 comprises nodes 14, similar to nodes 74, except that nodes 14 implement a method 1600 for replicating a master node, method 1600 described below.
  • Communication network 1472 includes a grounded master node 14-0.
  • each node 14 comprises a list L14 in which the priority of network addresses in the list dictate the priority of the associated node 14.
  • a non-limiting embodiments of list Ll 4 is shown in Table 15:
  • the grounded master node 14-0 is has highest priority in list L14 as grounded master node 14-0 is listed first in list L 14.
  • each node 14 is also assigned an address index to indicate priority of each node 14 in communications network 1472. In general it is understood that that lower the address index, the higher the priority.
  • priority can be assigned based on the order of an identifier of each node 14, in the event that network addresses are dynamic (as in DHCP).
  • list L14 can be pre-populated in nodes 14 prior to deployment in communication network 1472.
  • list L14 can be determined when communication system 1472 is initialized, based on the shortest path for data to be relayed between nodes to the grounded master node 14-0 and/or quality of service between nodes 14.
  • communication network 1472 comprises a mesh network, and furthermore each node 14 is enabled to ping every other node 14, and in return receive a response.
  • node 14-3 is depicted as pinging node 14-1 via a request R-31 and receiving a ping P-31, and pinging node 14-14 via a request R- 314 and receiving a ping P-314, though it is understood that node 14-3 can ping all other nodes 14.
  • Requests and pings can be transmitted and received via any suitable upstream channel 180 and/or downstream channel 184.
  • ping is used to indicate an interrogation of one node 14 by another node 14, it is understood that the term "ping” is not limited to the use of ICMP (Internet Control Message Protocol) packets to interrogate other nodes 14 in a network. Rather it is understood that any suitable protocol, including but not limited to proprietary protocols, can be used for interrogations between nodes 14.
  • ICMP Internet Control Message Protocol
  • nodes 14 decide which one will become the master node to take over communication services. The selection process can be configured so that node 14 with the lowest MAC address (or other unique identifier) assumes master mode. Should a telecom process fail while a node 14 is the master node, another node 14 can take over take over communication services. Once the connection to grounded master node 14-0 is restored, node 14 will relinquish control to grounded master node 14-0.
  • Figure 15 depicts a block diagram of node 14, including interactions other nodes 14, according to non-limiting embodiments, though in other embodiments, node 14 is similar to node 74 as depicted in Figure 3.
  • Node 14 is enabled for packet routing and providing a set of telecommunication services, as well as providing a supervisory/master node process 1600. As a whole, nodes 14 provide robust SIP based communication services in a wireless WIFI Mesh network.
  • node 14 comprises a first Ethernet port (“Ethernet Port 1 ”) and a second Ethernet port (“Ethernet Port 2), which can include antennae, radio(s) etc., as required, similar to node 74.
  • Node 14 also comprises a processing unit 1505, similar to CPU 110, which is enabled to implement various processes at node 14, the including but not limited to IP routing processes (elements 1510 and 1511) for routing IP Packets for TFTP 1515 and Remote Access 1516 processes via Ethernet Port 1 and Ethernet Port 2, as desired.
  • Processing unit 1505 is also enabled to implement the master node process 1600, described below with reference to Figure 16, the master node process 1600 enabled to interact with a SIP (Session Initiation Protocol) Registry 1520 and IP routing process 1510.
  • the master node process 1600 is further enabled to send start and stop signals to the SIP registry 1520, and to send control routing signals to the IP routing process.
  • Node 14 further comprises a VoIP server 1534.
  • VoIP server 1534 can comprise a Spectralink Voice Priority Server.
  • Ethernet Port 2 can be used to convey packets between VoIP server 1534 and IP Routing process 1510.
  • Processing unit 1505 is further enabled for conveying packets between the TFTP process 1515 and the IP routing process 1510, and between the remote access process 1511 and the IP routing process 1511. Processing unit 1505 is further enabled for conveying packets to other nodes 14, including grounded master node 14-0.
  • a node 14 assumes master mode, and Alias IP is bound to Ethernet Port 1, otherwise the Alias IP is removed from Ethernet Port 1 making the SIP Registry and VoIP services not available from this device on the network.
  • Maintenance IP is used to service node 14 and provide an IP for nodes 14 to communicate with one another.
  • Node 14 further comprises a memory 1570 for storing list L14.
  • Memory 1570 can comprise RAM and/or ROM
  • the master node process 1600 is responsible for several core operations:
  • node 14 if node 14 is to be a master node, to setup up an alias Internet Protocol ("IP”) Address, start SIP Registry 1520, and setup up routing to allow local SIP and VoIP traffic;
  • IP Internet Protocol
  • node 14 should no longer be a master node, then unbind the alias IP, stop SIP Registry 1520 and remove routing rules so that local SIP and SVP traffic ceases; [00193] e) Continually ping all other telecom processors (i.e. nodes 14) and head-end (i.e. grounded master node 14-0) at predetermined interval;
  • SIP Registry is to provide SIP registry functions including:
  • the VoIP Server 1534 provides the following functionality:
  • SIP Registry 1520 can be generically considered a registry process and need not be limited to SIP Registry.
  • the TFTP (Trivial File Transfer Protocol) process 1516 is responsible for:
  • TFTP Process can be generically considered a file transfer process and need not be limited to TFTP.
  • nodes 74 can also communicate similar to nodes 14, and can further run IP routing processes, SIP registry processes, TFTP processes remote access processes and/or VoIP processes.
  • Figure 16 depicts method for replicating a master node in communications network 1472, according to non-limiting embodiments.
  • Method 900 can be implemented in at least one of the plurality of nodes 900.
  • method 900 is performed using communication network 1472.
  • the following discussion of method 900 will lead to a further understanding of communication network 1472 and its various components.
  • communication network 1472 and/or method 900 can be varied, and need not work exactly as discussed herein in conjunction with each other, and that such variations are within the scope of present embodiments.
  • a present node 14 processes list 14 to determine the address other nodes 14 in communications network 1472, and determine the topology of communication network 1472.
  • present node 14 can be any node 14 in communication network
  • node 14 For each address and/or identifier in list 14 (step 1606), node 14 pings each other node 14, in the order the nodes 14 are listed in list L 14. At step 1614, it is determined if the pinged node 14 responded. If so, at step 1620, if the address index (i.e. order node is listed in list L 14) is lower than a current index stored, for example, in memory 1570, then the index of the pinged node replaces the current index. However, if the node pinged at step 1610 is the first node in list L 14, then at step 1620 no comparison can be made and the address index of the first node 14 in list Ll 4 is stored at step 1620 without making a comparison at step 1614.
  • the address index i.e. order node is listed in list L 14
  • the priority of a node 14 in list L14 is indicated by the address and/or identifier.
  • the address and/or identifier of the pinged node 14 is higher than an address and/or identifier stored in the memory 1570, then the address and/or identifier of the pinged node 14 replaces the stored address and/or identifier in the memory 1570.
  • step 1624 it is determined if the end of list L14 has been reached. If not, then steps 1606-1620 are repeated until the end of list L14 has been reached.
  • step 1630 a determination is made as which is lower, the last address index stored at step 1620, or the address index of the present node 14. If the lowest address index of the two is that of the present node 14, then the present node 14 has the highest priority in the communications network 1472 and the present node 14 enters master mode. In other words, communications with the grounded master node 14-0 have been severed and the present node 14 has the highest priority in the nodes 14 which remain.
  • the present node 14 can first pause of a predetermined amount of time. The pause can be introduced to allow another node 14 to assume relay mode (e.g. as in steps 1654-1666, described below).
  • the present node 14 enables Alias IP on Ethernet Port 1.
  • the present node starts the SIP registration process using SIP registry 1520 to either issue network addresses to the other nodes 14, or register their current network addresses, in order to provide SIP services at step 1648 by running routing rules.
  • Running routing rules at step 1648 further enables VoIP services using VoIP Server 1534 as well as
  • Method 1600 then repeats from step 1606.
  • step 1630 if the lowest address index is not that of the present node 14, at step 1652 a determination is made as to whether the present node 14 is a master node. If not, then method 1600 then repeats from step 1606.
  • the present node 14 assumes relay mode as the present node is no longer the highest priority node 14 in list 14. Hence, after an optional pause of a predetermined amount of time (step 1654), which allows another node 14 to assume master mode, Alias IP is disabled on Ethernet Port 1 (step 1658), the SIP registry process is stopped (step 1662) and routing rules are run (step 1666) to disable SIP and VoIP services.
  • Method 1600 then repeats from step 1606.
  • list L14 is updated to remove nodes 14 to which communication is no longer possible and/or add new nodes 14 to which communication has become possible.
  • Method 1600 can be applied to the situations depicted in Figures 9 to 13, such that a node 14 of suitable priority can be enabled to provide communication services to other nodes 14 if communication with grounded master node 14-0 and/or a master node is no longer possible. Similarly, a node 14 can assume relay mode, if in master mode, if a node 14 of higher priority becomes available.
  • FIG. 17 depicts a block diagram of another embodiment of a node 1714, including interactions other nodes 1714, according to non- limiting embodiments.
  • Node 1714 is similar to node 14 depicted in Figure 15, with like elements having like elements, however preceded by a "17" rather than a "15": for example processing unit 1705 is similar to processing unit 1505.
  • node 1714 further comprises a voice priority server (VPS) 1735, which generally replaces VOIP server 1534 of node 14 depicted in Figure 15.
  • VPS 1735 can be configured to provide any suitable voice services as desired.
  • Node 1714 further comprises a software update module 1736 and a DHCP (Dynamic Host Configuration Protocol) services module 1737 for providing automatic software updating services and DHCP services, respectively.
  • DHCP Dynamic Host Configuration Protocol
  • nodes 14, 74, 104, 104', 104", and 1714 may be implemented using pre-programmed hardware or firmware elements (e.g., application specific integrated circuits (ASICs), electrically erasable programmable read-only memories (EEPROMs), etc.), or other related components.
  • ASICs application specific integrated circuits
  • EEPROMs electrically erasable programmable read-only memories
  • the functionality of the nodes 14, 74, 104, 104', 104" and 1714 may be achieved using a computing apparatus that has access to a code memory (not shown) which stores computer-readable program code for operation of the computing apparatus.
  • the computer-readable program code could be stored on a computer readable storage medium which is fixed, tangible and readable directly by these components, (e.g., removable diskette, CD-ROM, ROM, fixed disk, USB drive).
  • the computer- readable program code could be stored remotely but transmittable to these components via a modem or other interface device connected to a network (including, without limitation, the Internet) over a transmission medium.
  • the transmission medium may be either a non- wireless medium (e.g., optical and/or digital and/or analog communications lines) or a wireless medium (e.g., microwave, infrared, free-space optical or other transmission schemes) or a combination thereof.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

A self-healing severable communication network, nodes therefor and a method implementable in said nodes are provided. The communication network comprises a master node and a plurality of nodes, the master node for providing communication services to the plurality of nodes, each of the plurality of nodes storing master node replication data for enabling a node to replicate the master node, each of the plurality of nodes for relaying data within the communication network from at least one wireless communication device. Each node within the communication network is enabled to cause self heal when communication between nodes is severed by: determining if communications with the master node are severed; and, if so, determining the node has priority in a remaining portion of the plurality of nodes; and if so, processing the master node replication data such that the at least one node replicates the master node by providing the communication services to the remaining portion of the plurality of nodes.

Description

A SELF-HEALING SEVERABLE
COMMUNICATION NETWORK AND NODES
FIELD
[0001] The present specification relates generally to telecommunications and more specifically relates to a self-healing severable communication network and nodes therefor.
BACKGROUND
[0002] Mining and certain other environments are not conducive to robust communications. Communication infrastructure is often expensive and intolerant of hostile industrial environments where heavy machinery operates and frequent migration of communication equipment is required to maintain coverage. To date, the mining industry has been heavily relying on a technology called "leaky-feeder." Leaky-feeder borrows technology from the cable industry to provide RF based communication using a long RF cable. The RF cable "leaks" RF signal along its path to two-way radios within close proximity. The leaky-feeder cable infrastructure is relatively expensive, requires intermediate amplifiers and is rarely reused after retreating from a section of the mine. The communication quality is average and propagation of the signal is limited to the entry where the leaky- feeder cable is strung. Furthermore, in the event that a rock- fall, for example in a coal mine, damages a portion of the leaky feeder cable infrastructure, communications downstream of the rock-fall are severed, leaving stranded miners unable to communicate.
SUMMARY
[0003] A first aspect of the specification provides a method for replicating a master node in a communication network comprising a plurality of nodes, including the master node, the master node for providing communication services to the plurality of nodes, each of the plurality of nodes storing master node replication data for enabling a node to replicate the master node, each of the plurality of nodes for relaying data within the communication network from at least one wireless communication device, the method implementable in at least one of the plurality of nodes, the method comprising: determining if communications with the master node are severed; and, if so, determining if the at least one node has priority in a remaining portion of the plurality of nodes; and if so, processing the master node replication data such that the at least one node replicates the master node by providing the communication services to the remaining portion of the plurality of nodes.
[0004] The master node can comprises a grounded master node in communication with an external communication network.
[0005] Determining if communications with the master node are severed can comprise determining that communications have been severed with a neighbouring node. Determining that communications have been severed with a neighbouring node can comprise failing to receive a periodic data transmission from the neighbouring node.
[0006] The method can further comprise updating topology data stored at the at least one of the plurality of nodes in response to failing to receive the periodic data transmission, and determining if the at least one node has priority in the remaining portion of the plurality of nodes can be based on the topology data after the updating has occurred. The master node replication data can comprise the topology data. The periodic data transmission can comprise data representative of the topology data.
[0007] Determining if communications with the master node are severed can comprise determining that the topology of the communications network has changed by comparing first data representative of first topology data stored at the at least one of the plurality of nodes with second data received from a neighbouring node, the second data representative of second topology data stored in the neighbouring node. The method can further comprise: requesting the second topology data from the neighbouring node if the first data differs from the second data; receiving the second topology data; and updating the first topology data based on the second topology data.
[0008] Determining if communications with the master node are severed can comprise transmitting a message to the master node and determining if a reply from the master node is received. [0009] Determining if the at least one node has priority in a remaining portion of the plurality of nodes can comprise comparing an identifier of the at least one node to a list of identifiers of the remaining portion of nodes, the list of identifiers comprising a priority of each of the remaining portion of nodes.
[0010] The method can further comprise determining if communications with at least one of the master node and another master node have been re-established and, in response, stopping providing the communication services to the remaining portion of the plurality of nodes such that the at least one of the plurality of nodes assumes a relay mode in which data from neighbouring nodes is relayed to at least one of the master node and the another master node.
[0011] The method can further comprise determining a topology of the communication network by: periodically transmitting first data representative of topology data stored at the at least one node with at least one neighbouring node; periodically receiving second data representative of topology data stored at the at least one neighbouring node; comparing the first data with the second data, and if the first data differs from the second data: requesting the topology data stored at the at least one neighbouring node; and updating the topology data stored at the at least one node based on the topology data received from the at least one neighbouring node.
[0012] The communication services can comprise at least one of dynamic host configuration protocol services, telephone services, internet protocol based services, push to talk services, software update services, TFTP services, and location services.
[0013] A second aspect of the specification provides a node connectable to a communication network comprising a plurality of nodes, one of the plurality of nodes comprising a master node for providing communication services to the plurality of nodes. The node comprises at least one radio for communicating with the plurality of nodes and at least one wireless communication device. The node further comprises a memory connected to the processor for storing master node replication data for enabling a node to replicate the master node. The node further comprises a processor connected to the at least one radio and the memory, the processor enabled to execute a supervisory process. The supervisory process comprises: determining if communications with the master node are severed; and, if so determining if the node has priority in a remaining portion of the plurality of nodes; and if so processing the master node replication data such that the node replicates the master node by providing the communication services to the remaining portion of the plurality of nodes.
[0014] Determining if communications with the master node are severed can comprise determining that communications have been severed with a neighbouring node. Determining that communications have been severed with a neighbouring node can comprise failing to receive a periodic data transmission from the neighbouring node. The supervisory process can further comprise updating topology data stored at the node in response to failing to receive the periodic data transmission, and determining if the node has priority in the remaining portion of the plurality of nodes is based on the topology data after the updating has occurred. The master node replication data can comprise the topology data. The periodic data transmission can comprise data representative of the topology data.
[0015] Determining if communications with the master node are severed can comprise determining that the topology of the communications network has changed by comparing first data representative of first topology data stored at the node with second data received from a neighbouring node, the second data representative of second topology data stored in the neighbouring node. The supervisory process can further comprise: requesting the second topology data from the neighbouring node if the first data differs from the second data; receiving the second topology data; and updating the first topology data based on the second topology data.
[0016] Determining if communications with the master node are severed can comprise transmitting a message to the master node and determining if a reply from the master node is received.
[0017] Determining if the node has priority in a remaining portion of the plurality of nodes can comprise comparing an identifier of the node to a list of identifiers of the remaining portion of nodes, the list of identifiers comprising a priority of each of the remaining portion of nodes.
[0018] The supervisory process can further comprise determining if communications with at least one of the master node and another master node have been re-established and, in response, stopping providing the communication services to the remaining portion of the plurality of nodes such that the node assumes a relay mode in which data from neighbouring nodes is relayed to at least one of the master node and the another master node.
[0019] The supervisory process can further comprise determining a topology of the communication network by: periodically transmitting first data representative of topology data stored at the node with at least one neighbouring node; periodically receiving second data representative of topology data stored at the at least one neighbouring node; comparing the first data with the second data, and if the first data differs from the second data: requesting the topology data stored at the at least one neighbouring node; and updating the topology data stored at the node based on the topology data received from the at least one neighbouring node.
[0020] The communication services can comprise at least one of dynamic host configuration protocol services, telephone services, internet protocol based services, push to talk services, software update services, TFTP services, and location services.
[0021] A third aspect of the specification provides a communication network comprising at least one wireless communication device. The communication network further comprises a plurality of nodes enabled to communicate with the at last one wireless communication device and to relay data within the communication network. The communication network further comprises at least one master node for providing communication services to the plurality of nodes. Each of the plurality of nodes stores master node replication data for enabling a node to replicate the master node. Each node of the plurality of nodes enabled to execute a supervisory process comprising: determining if communications with the master node are severed; and, if so, determining if the node has priority in a remaining portion of the plurality of nodes; and if so, processing the master node replication data such that the node replicates the master node by providing the communication services to the remaining portion of the plurality of nodes.
[0022] A fourth aspect of the specification provides a node in a communication network connectable to a plurality of other nodes. The node comprises a processor. The node further comprises at least one radio connected to the processor; the at least one radio for connecting to the other nodes. The processor is configured to execute a supervisory process; a registry process and a file transfer process; each of the processes configured to carry or host voice communications through the node and to dynamically adjust operation of the node between carrying or hosting voice communications via one or more other ones of the nodes.
BRIEF DESCRIPTIONS OF THE DRAWINGS [0023] Embodiments are described with reference to the following figures, in which:
[0024] Fig. 1 depicts a mine with a mesh network of nodes installed therein, according to non-limiting embodiments;
[0025] Fig. 2 depicts a communication network, according to non-limiting embodiments;
[0026] Fig. 3 depicts a node, according to non-limiting embodiments;
[0027] Fig. 4 depicts a client device, according to non-limiting embodiments;
[0028] Fig. 5 depicts nodes in communication via upstream and downstream channels, according to non-limiting embodiments;
[0029] Fig. 6 depicts a method for replicating a master node, according to non-limiting embodiments;
[0030] Fig. 7 depicts a communication network in which nodes broadcast data representative of topology data, according to non-limiting embodiments;
[0031] Fig. 8 depicts a topology of a communication network, including priority of nodes in the communication network, according to non-limiting embodiments; [0032] Fig. 9 depicts a communication network in which a nodes has been damaged and/or destroyed, according to non-limiting embodiments;
[0033] Figs. 10 to 13 depict a communication network in which a nodes has been damaged and/or destroyed, into which a new node has been inserted, according to non-limiting embodiments;
[0034] Fig. 14 depicts a communication network in which nodes ping other nodes to determine priority within the communication network, according to non-limiting embodiments;
[0035] Fig. 15 depicts a node, according to non-limiting embodiments;
[0036] Fig. 16 depicts a method for replicating a master node, according to non-limiting embodiments; and
[0037] Fig. 17 depicts a node, according to non-limiting embodiments;
DETAILED DESCRIPTION OF THE EMBODIMENTS
[0038] Referring now to Figure 1, a room and pillar coal mine is indicated generally at 50. Mine 50 is characterized by a coal seam 52 that has been mined so as to leave a plurality of pillars 54-1, 54-2,..., 54-26. (Generically, pillar 54, and collectively, pillars 54). The portions of seam 52 that are not pillars 54 but which have yet to be mined are referred to as coal faces and are labelled at 58-1, 58-2, ... 58-7.
[0039] Mine 50 is also characterized by a plurality of rooms around each pillar 54. Each room (also known as an "entry" of a "cross-cut") has a width of about twenty feet, and each pillar 54 has a width of about 40-100 feet. Mine 50 can be suitable for long- wall and/or retreat mining whereby each pillar 54 is removed, allowing the roof to collapse, and further adding to the risk of harm for mining personnel.
[0040] Mine 50 is also characterized by at least one entrance 62 where miners, other personnel and equipment can enter and exit mine 50 and through which coal extracted from mine 50 can be removed. [0041] Mine 50 is also characterized by a plurality of barriers 66-1, 66-2, 66-12 which can be used to isolate certain rooms from each other. Barriers 66 can be arranged so as to isolate corridors of rooms. For example, barriers 66-3, 66-7, 66-9 and 66-11 define one side of a corridor 70 while barriers 66-4, 66-8, 66-10 and 66-12 define the opposite side of corridor 70. Corridor 70 can, for example, be reserved for a conveyor belt that brings coal from face 587-7 to entrance 62. Likewise, ventilation equipment in mine 50 can be configured so as to direct dirty air flow out of entrance 62 and thereby urge clean air into the remainder of mine 50.
[0042] Barriers 66 can either be fixed stoppings, or can also be so-called "man-doors" that permit personnel to open and pass through those doors if desired. In mine 50, barriers 66-5 and barriers 66-6 are man doors, whereas the remaining barriers 66 are all stoppings.
[0043] A communication network 72 is also deployed throughout mine 50. Communication network 72 is shown schematically in Figure 2, while the components of network 72 are shown in both Figures 1 and 2. Network 72 comprises a plurality of nodes 74 (74-1, 74- 2...74-n...), or access points, mounted to various points throughout mine 50, for example to pillars 54. Network 72 also comprises at least one client device 78-1 that is configured to wirelessly communicate with those nodes 74 that are within range of device 78-1.
[0044] Mine 50 also includes at least one base station 82 which is configured to wirelessly communicate with those nodes 74 within range of base station 82. Base station 82, in turn, is connected to a head end 86 via a link 90, which can be wired or wireless as desired. Base station 82 can be implemented as a node 74 that connects to head end 86. In general head end 86 can comprise a local operations centre, but can be in communication with a remote operations centre via a network.
[0045] Head end 86 houses a server 94 that connects to base station 82 via link 90. Server 94, in turn, is configured to permit a user U to interact with communication network 72 via a terminal 98 and a telephony device 102. Terminal 98 permits user U to provide text based input and to view visual output from server 94, while telephony device 102 permits user U to conduct voice telephone calls via server 94. Those skilled in the art will recognize that various configurations and types of input and output devices can be utilized, in addition to, or in lieu of telephony device 102 and terminal 98.
[0046] As shown in Figure 2, server 94 can also be connected to network 106, such as the Internet, to permit users who are remote to server 94 to interact with server 94 in the same manner as user U. Hence, communication network 72 is generally enabled for communication services, including but not limited to voice and/or data services. Furthermore, the base station 82 generally acts as a master node within the plurality of nodes 74, a master node for providing the communication services to the plurality of nodes 74. In some embodiments, a master node can be referred to as a root node. The server 94 can also generally be referred to as a grounded master node (or a grounded root) as the server 94 "grounds" the communication network 72 to the network 106. In some embodiments, the server 94 can also generally be referred to as a "head-end" as it represents the head of communication network 72.
[0047] Furthermore, it is understood that the communication network 72 comprises a mesh network, with each node 74 and the server 94 comprising a node in the mesh. For example, attention is directed to Figure 7 which depicts nodes 74 and server 94 as nodes in a mesh network, according to non-limiting embodiments. Within Figure 7, base station 82, of Figure 1, is represented as a grounded master node 74-0. In some embodiments, nodes 74 can communicate via a WiFi network backbone. In further embodiments, communications network 72 can comprise a plurality of master nodes and/or a plurality of grounded master nodes, and it is understood that each acts as a managed switch within a rapid spanning tree protocol to optimize network routing.
[0048] Referring now to Figure 3, a node 74 is shown in greater detail according to non- limiting embodiments. Node 74 includes a plurality of internal components including central processing unit ("CPU") 110 that interconnects, via a bus, to a radio 114, a network interface card ("NIC") 116, random access memory ("RAM") 118 (or other volatile storage device), and a read only memory ("ROM") 122 (or other non- volatile storage device). [0049] Node 74 stores master node replication data (MNRD), for example at RAM 1 18, MNRD comprising data that enables node 74 to provide master node services to other nodes 74 upon processing MNRD. It is understood that in some embodiments, MNRD can comprise topology data, as described below with respect to lists Ll and L2. In any event, upon processing MNRD, node 74 performs the functionality of grounded master node 74-0 (i.e. server 94), and specifically providing communication services to the plurality of nodes 74. Once node 74 processes MNRD, node 74 becomes a master node. The node 74 can be provisioned with MNRD prior to deployment within communication network 72. In some embodiments, node 74 can further act a grounded master node if it is determined that node 74 is connected to an external communication network such as network 106.
[0050] Hence, in general, a node 74 can operate in one of three modes:
[0051] 1. Relay mode, in which node 74 acts to relay data to a grounded master node 74.
[0052] 2. Master mode, in which node 74 acts as a master node to provide communication services to other nodes 74; as described below, a node 74 in relay mode can enter master mode after communications are severed from a node 74 in grounded master mode, described hereafter. In embodiments, where a node 74 acts as a master node in the absence of communications with an external communications network (such as network 106), such a node 74 can also be referred to as a floating master node.
[0053] 3. Grounded master mode, in which node 74 acts as a grounded master node to provide communication services to other nodes 74 and further relay data to an external communication network. Node 74 can enter grounded master mode if node 74 is in master mode and it is further determined that node 74 is connected to an external communication network.
[0054] Node 74 also stores a list Ll, for example at RAM 118, list Ll comprising a topology of communication network 72, including a priority of each node 74 in the communication network 72. When node 74 is initially deployed in communications network 72, however, list Ll comprises only data associated with node 74. Population of list Ll with data associated with other nodes in communication network 72 occurs when nodes 74 are deployed. For example, in some embodiments, list Ll has the non-limiting format of Table 1 , for a node 74-n, with the following content upon initialization:
Figure imgf000013_0001
[0055] TABLE 1 : List Lln, Upon Initialization
[0056] While the format of list Ll in present embodiments is provided in the format of fields arranged in rows and columns, with one node 74 per row, and columns indicating the characteristics of each node 74, the format of list Ll is generally non-limiting and can be in any suitable format. List Ll generally comprises an identifier ("Identifier" field) of node 74, including but not limited to a MAC address and/or any other suitable identifier. The identifier can be provisioned at node 74 prior to deployment in communication network 72. Furthermore, node 74 can be enabled to determine the identifier, for example by processing identifying data stored at node 74, and populate List Ll with the identifier. In the non- limiting example of the List Lln: Upon Initialization, the identifier comprises "74-n".
[0057] List Ll further comprises an indication of priority of node 74 in communication network 72. In some embodiments, for example the embodiment shown in Table 1, the indication of priority comprises a "Priority Field", though in other embodiments, priority may be indicated in any suitable manner, including but not limited to an order in which nodes 74 are listed in Ll.
[0058] The initial priority can be provisioned at the node 74 prior to deployment in communication network 72, and can be based on any suitable means of determining priority of a node 74 in the communications network 74. In non-limiting embodiments, priority is based on a tree topology, in which a central 'root' node (the top or zeroth level of the hierarchy, or priority "0") is connected to one or more other nodes that are one level lower in the hierarchy (i.e., the first level, or priority "1 "), with a point-to-point link between each of the first level nodes and the top level central 'root' node. Each of the first level nodes that are connected to the top level central 'root' node will also have one or more other nodes that are one level lower in the hierarchy (i.e., the second level, or priority "2") connected to it, also with a point-to-point link, the top level central 'root' node being the only node that has no other node above it in the hierarchy. However, as described above, in some embodiments, communication network 72 can comprise more than one top level central 'root' node, with any suitable protocol used to determine a best path for a given packet (for example rapid spanning tree protocol (RSTP)).
[0059] Hence, in these embodiments, as node 74 is initially not aware of its position in the topology of communications network 72, it is assumed that node 74 has a priority of "0". In other words, it is initially assumed that node 74 is to act as a master node, though upon initialization node 74 may not have yet processed MNRD. Indeed, in some embodiments, the default state of node 74 is relay status, until it is determined whether or not node 74 is indeed a master node.
[0060] The priority level can also be thought of the number of hops that data transmitted from node 74 must take to reach a master node. In non-limiting embodiments of List Ll : Upon Initialization, the number of hops is "0" as the initial assumption is that node 74 is a master node.
[0061] In some embodiments, node 74 is enabled to determine whether it is a grounded master node by detecting a connection to an external communication network (e.g. network 106) via NIC 166. In some embodiments, list Ll further comprises an indication of whether or not node 74 is a grounded master node (i.e. connected to a network external to communications network 72, such as network 106) via the field "GM Node". In some embodiments, it is initially assumed that that node 74 is not a grounded master node ("N" or no). However, in embodiments where a node 74 is to be a grounded master, the list Ll (i.e. list LIo stored at grounded master node 74-0) can comprise the contents of Table 2:
Figure imgf000014_0001
[0062] TABLE 2: List Ll0, Upon Initialization
[0063] Node 74 can determine its place in the topology by comparing the identifying data stored at node 74 (e.g. the MAC address) and comparing the identifying data to the list Ll.
[0064] List Ll further comprise an indication of the address of node 74 in the field "Address". In general, when communication network 72 is initialized, nodes 74 have not yet been issued addresses. Rather, this occurs during initialization by a master node and/or a grounded master node as described below. Hence, in List Ll, upon initialization the address field is empty.
[0065] Each node 74-1, 74-2... stores a corresponding list LI i, L I2... The list Ll can be populated via method 600, described below. Furthermore, non-limiting example of the list Ll are provided below.
[0066] Not shown in Figure 3, node 74 can also house a rechargeable power supply. Furthermore, the internal components of node 74 can be housed within a ruggedized, spark- proof housing which meets mining regulations so that the power supply within node 74 has a reduced risk of igniting flammable gases that may be present within mine 50. Such ruggedization is referred to as making the node 74 "intrinsically safe" as connected to the electrical service main running within mine 50. However, in an emergency condition node 74 can be configured to continue operating by virtue of the rechargeable power supply, which can be constantly maintained at full charge by virtue of connection to the electrical service main specified by MHSA and/or other regulatory agency and/or body.
[0067] Each access point 54 also has a battery that is configured to permit the access point 54 to operate for a suitable amount time, which can, in some embodiments, be specified by a regulatory body. For example the battery can permit the access point to operate for at least 24 hours. Each access point 54 can be connected to a step down transformer to provide suitable AC power, DC power, or both, as desired.
[0068] In a present embodiment, node 74 also comprises a plurality of directional antennas 126-1, 126-2, 126-3, 126-4. Accordingly, node 74 also comprises a plurality of radios within radio 114, one radio to control each antenna, though in some embodiments a smaller number of radios may be provided, with at least one of the radios controlling at least two antennas. However, node 74 can comprise a suitable number of radios, each radio controlling any suitable number of antennas. Furthermore, node 74 is configured to communicate on two different channels: one channel for upstream communications to other nodes 74 towards server 94 (i.e. the head-end)), and another channel for downstream communications to other nodes 74 away from the server 94. In some embodiments, each upstream/downstream pair of antennas 126 can be configured to communicate on unique channels. Each antenna 126 is controlled by radio 114, and each antenna 126 is configured to both receive and transmit wireless communications and thereby permit each node 74 to communicate with each other and/or base station 82 provided they are in range of each other.
[0069] In a present embodiment, node 74 also comprises a plurality of wired interface connections 130-1, 130-2. Each interface port 130 is controlled by NIC 166, and each port 130 is configured to interact with peripheral devices that are locally attached to port 130. In some embodiments, each interface port 130 can be based on the Ethernet standard, but in other embodiments interface connections 130 can be based on universal serial bus ("USB"), RS-232, Fibre-Optics, Firewire and the like and/or combinations thereof. Peripheral devices that are contemplated for connection to node 74 include substantially permanent connections such as web cameras, video cameras, gas sensors, temperature sensors, process logic controllers, humidity sensors, or other sensors, loud speakers and/or temporary connections including lap top computers, personal digital assistants, printers, bar code scanners, and/or device 78 itself in the event that device 78 becomes unable to communicate wirelessly with node 74.
[0070] ROM 122 thus maintains a persistent copy of software and other programming instructions to operate node 74 that implement the various communication and other functions for which node 74 is configured. It is also contemplated that the contents of ROM
122 can be updated, either via an antenna 126 or port 130. In some embodiments, MNRD and List Ll can be stored in ROM 122, or in any other suitable memory. In yet further embodiments, ROM 122 can store a List L2, as described below.
[0071] Though generally non-limiting, in some embodiments, each antenna 126 can be mechanically separate from the main chassis of node 74, and attachable electrically via an intrinsically safe cable and its associated connectors to the main chassis. Each antenna 126 can thus be mounted to a pillar 54 or other suitable location within mine 50 and oriented in a direction so as to create and/or be within a coverage area of another antenna 126 on another node 74. The detachable nature of each antenna 126 also permits an antenna 126 to be located on one side of a barrier 66, while the chassis of the node 74 is located on the opposite side of the barrier 66. This is shown in Figure 3, as antenna 126-2 is located on one side of a barrier 66, while the chassis of node 74 is located on the opposite side of a barrier 66. Since, in general, barriers 66 are not air-tight, and cable can be readily run through gaps or drilled openings within barrier 66.
[0072] In general, each node 74 can communicate via a packet based protocol, such as internet protocol (IP). Furthermore, each node 14 can be connected to satellite phones, PBXs, the Public Switched Telephone Network ("PSTN"), or the like, making it possible for isolated locations such as prospecting camps to have a fully digital communications and data network linked to "the outside world", presuming access to an external network. In embodiments, for example in embodiments where nodes 74 are isolated from "the outside world", nodes 74 can be further enabled to provide Push-to-talk communications and, in some embodiments, extension-to-extension calling. In general, when a node 74 is functioning as a master node and/or a grounded master node, the node 74 oversees and provides the various communication services to the other nodes 74 it is in communication with.
[0073] Referring now to Figure 4, client device 78 is shown in greater detail. In general, client device 78 can be based on the functionality of a wireless personal digital assistant (PDA) such as Polycom/Spectralink™ 8030 WiFi Phone from Polycom Inc., Ekahau™ T301 Tag from Ekahau Inc., IPaq™ from Hewlett Packard, TREO™, from Palm Inc., Blackberry™ from Research in Motion Inc, or any other suitable PDA. Device 78 is also presented in a ruggedized, intrinsically safe, spark-proof casing to withstand the physical demands of a mining environment while also reducing the likelihood of electrical components within device 78 igniting gases within mine 50. The internal components of device 78 thus include a CPU 134 which interconnects a keyboard 138 and a microphone 142 (and/or other input devices) with a display 146 and a speaker 150 (and/or other output devices). CPU 134 also interconnects the foregoing components with RAM 154, ROM 158, a radio 162 and an NIC 166. Radio 162, in turn, connects to an antenna 170, while NIC 166 connects to an interface port 174. Radio 162 and antenna 170 are configured to communicate wirelessly with each node 74 that is within range of device 78. NIC 166 and interface port 174 can be based on USB, Firewire, Fibre-optics, RS-232, RS-485, or wireless media including Bluetooth™ or ZigBee. Multiple NICs can be included, similar to NIC 166, that communicate using different ones of the aforementioned protocols. It should be understood that in variations, device 78 need not include all of the features discussed above.
[0074] Furthermore, each client device 78 includes software and hardware that configures device 78 for communication and as a locating device (e.g. via the Ekahua T301 tag). Device 78 can communicate with each node using the IEEE 802.1 lb,g (or its variants) standard. Software permits each client device 78 to function as a walkie-talkie and/or a VoIP telephone. In some embodiments, locating software can enable the user to see exactly where the user is located within mine 50, and to see the location of other client devices 78 in his vicinity. Other tools built in such as messaging and spreadsheets can be included as desired.
[0075] In some embodiments, the client device 78 comprises an RFlD tag that is attached to a piece of mining equipment, or safety room or self-rescue/ breathing equipment such that the client device 78 can be located in said mine. Further, the client device 78 includes inventory tracking software.
[0076] Referring now to Figure 5, an example configuration of base station 82, nodes 74 and device 78 is shown, whereby communications between device 78 and base station 82 is effected via nodes 74. As discussed earlier, each node 74 is configured to communicate over multiple wireless channels, and each antenna 126 is dynamically configurable to operate over either channel. Likewise, each antenna 126 can be physically mounted in a direction to create a coverage region that overlaps with another antenna 126 on another node 74. In Figure 5, node 74-1 is shown as bi-directionally communicating with base station 82 via a first, upstream channel 180. Node 74-1 is also shown bi-directionally communicating with node 74-5 and node 74-6 via a second, downstream channel 184. In turn, node 74-5 and node 74-6 are also shown bi-directionally communicating with device 78 via downstream channel 184. In other embodiments, antennas 126 can be directional to provide better gain in a given direction.
[0077] Upstream channel 180 and downstream channel 184 are orthogonal to each other and therefore non-interfering. In a presently preferred embodiment, upstream channel 180 is carried at a frequency of 5.8 Gigahertz while downstream channel 184 is carried at a frequency of 5.8 Gigahertz, 2.4 Gigahertz, or other frequency as required and based on the IEEE 802.11b (and/or its variants) protocol. Furthermore, any suitable ISM (industrial, scientific and medical) and/or unlicensed frequency can be used for communications.
[0078] Attention is now directed to Figure 6 which depicts a method 600 replicating a master node in communication network 72. Method 600 can be implemented in at least one of the plurality of nodes 600. In order to assist in the explanation of method 600, it will be assumed that method 600 is performed using communication network 72. Furthermore, the following discussion of method 600 will lead to a further understanding of communication network 72 and its various components. However, it is to be understood that communication network 72 and/or method 600 can be varied, and need not work exactly as discussed herein in conjunction with each other, and that such variations are within the scope of present embodiments.
[0079] In general, each node 74 performs method 600 while deployed within communication network 72. Method 600 furthermore enables nodes 74 to determine the topology of communication network 72 (i.e. populate/update list Ll) which in turn enables each node 74 to determine the mode in which each node 74 is to be operating. In addition, if changes occur to the topology of communication network 72, method 600 enables each node 74 to update list Ll and in turn determine the mode in which each node is to be operating in response to the change in topology.
[0080] In general, there are a plurality of scenarios in which method 600 is used to replicate a master node and/or determine the topology of a telecommunication network, and include:
[0081] Scenario 1 : Initialization of communication network 72.
[0082] Scenario 2: Loss of a node 74 within communication network 72.
[0083] Scenario 3: Insertion of a node 74 within communication network 72.
[0084] These three scenarios are described hereafter, with reference to method 600.
[0085]
[0086] Scenario 1 : Initialization of Communication Network 72
[0087]
[0088] In this scenario, method 600 is used to determine the topology of communication network 72 when communication network 72 is initialized. In this scenario, each node 74 comprises list Ll as shown in Table 1.
[0089] At step 610, a node 74-n, (e.g. node 74-4 in Figure 7), generates data Dln by processing list Lln (see Figure 7) stored at node 74-n. In general, data Dl is generally representative of list Ll and is determined by processing list Ll using any suitable function, F, such as a hash function, a cyclic redundancy check (CRC), a message digest algorithm, and the like. Hence Dln=F(Lln).
[0090] Dl is also generally of a smaller size, with respect to both memory and consumption of bandwidth than list Ll. Furthermore, Dl can be used to determine if list Lln is the same or different from another list Llm stored at a different node 74 (e.g. node 74-3) by comparing Dln to Dl m generated at a different node 74. [0091] At step 615, Dln is broadcast via radios 114 and antenna(s) 126, via the upstream channel 180 and the downstream channel 184, and is received by any nodes 74 within broadcast range. Dln is generally broadcast periodically, for example once a given number of seconds and/or minutes.
[0092] Furthermore, in some embodiments, Dln can be broadcast on a layer above the radio layer, according to the OSI (Open Systems Interconnection) model of communications networks.
[0093] At step 620, it is determined if data Dlm is received from another node 74-m (e.g. node 74-3), which is also performing method 600, and hence Dl m is generated at node 74-m from list Ll m and broadcast by node 74-m at step 615 of method 600. It is further assumed in these instances that nodes 74-n and 74-m are within broadcast range of each other.
[0094] Alternatively, at step 620, it can be determined that Dln, is not received, for example, if node 74-n is alone in communications network 72 and/or not in broadcast range of other nodes 74-m. Indeed, as Dlm is also broadcast periodically, node 74-n generally expects to receive at least one Dlm periodically. Hence, a determination that if Dln, is not received can be made if Dln, is not received within a given time period. Such a situation is pertinent in Scenario 2, described below.
[0095] Assuming Dlm is received, at step 625, Dln is compared to Dlm. Upon initialization, list Lln, will be similar to list Lln, but list Ll m will contain data relevant to the node 74-m. Table 2 provides a non-limiting example of list Lln, upon initialization:
Figure imgf000021_0001
[0096] TABLE 2: List Llm, upon initialization
[0097] Hence, list Lln, differs from list Lln in that the identifier "74-m" identifies the node 74-m (e.g. a MAC address). Hence Dln, differs from Dln. [0098] Embodiments in which Dln=Dln, are described below. However, in these embodiments, Dln is again broadcast at step 615.
[0099] However, if Dln is different from Dlm, then at step 630, the list Lln, is requested and received from node 74-m. At step 635, list Lln is updated using list Ll m such that the data from Llm is added to list Lln. However, as both list Lln and list Lln, list node 74-n and node 74-m, respectively, as having a priority of "0", the priority of nodes 74 can be resolved at step 635 using any suitable priority-resolution technique. For example, in some embodiments, the node 74-n and node 74-m having the higher numbered identifier can initially have priority until further information about the topology of communication network 72 is acquired. Hence, at step 635, the data from list Ll m is added to list Lln with the priority of node 74-m changed to "1" (i.e. number of hops from node 74-m to node 74-n) as node 74-m has a lower numbered identifier than the node 74-n. Further, the data is listed in any suitable order, such as priority order, as shown in Table 4:
Figure imgf000022_0001
[00100] TABLE 4: List Lln after combining with Lln,
[00101] As method 600 is also occurring in node 74-m, at step 635 within node 74-m, list Llm is updated in a similar manner using data from list Lln, assuming that node 74-m has received Dln and made a similar comparison at step 620, which resulted in node 74-n providing list Lln to node 74-m. Table 5 shows list Lln, in these embodiments:
Figure imgf000022_0002
[00102] TABLE 5: List Llm, after combining with Lln
[00103] Hence, lists Lln and Lln, are the same. [00104] At optional step 640 it is determined if the topology of communication network 72 is still evolving, for example via a counter that counts the number of times Dln is equal to Dl m at step 625; if the counter reaches a given number of times, then it is determined at step 680 that the topology is no longer evolving. As subsequent steps in the method 600 can cause at least one of nodes 74 to assume master node status, step 640 may be implemented to prevent this from occurring until the topology of communication network 72 is understood (e.g. Ll stops changing). Otherwise, during initialization and/or when the topology of communication network 72 changes, nodes 74 can unnecessarily switch back and forth between master node status and relay status, which generally waste resources such as batteries. In any event, if the topology of communication network 72 is still changing, Dln is again calculated using the updated list Lln at step 610, and Dln is again broadcast at step 615; similarly, within node 74-m, Dln, is again calculated using the updated list Llm at step 610, and Dlm is again broadcast at step 615, to be received at step 620 at node 74-n.
[00105] In any case, at step 645, Lln is processed to determine the priority of node
74-n, and comparing its priority with the priority of other nodes 74 in list Lln (at this point only node 74-m).
[00106] If node 74-n does not have top priority then, at step 650, node 74-n enters relay mode, if it not already in relay mode, to relay data to the highest priority node 74 in list Lln-
[00107] If, however, node 74-n does have top priority then, at step 655, node 74-n processes MNRD such that, at step 660, node 74-n enters master mode, if it is not already in master mode, to act as a master node by providing communication services to the other nodes 74 in list Lln.
[00108] At optional steps 670 and 675 it is then determined if node 74-n is connected to an external network, such as network 106. If so, node 74-n enters grounded master mode, if it is not already in grounded master mode to relay data, as required, to the external network. [00109] Furthermore, once node 74-n enters master node and/or grounded master mode, node 74-n, at steps 660 and/or step 675, node 74-n can issue network addresses to other nodes in the communication network 72. In some embodiments, the network addresses can be assigned via Dynamic Host Configuration Protocol (DHCP). The network addresses can be delivered via the communication network 72 via data specifically transmitted to each node 74 via the communication network 72. Alternatively, the addresses can be delivered by updating list Ll0 at the grounded node 74-0 and relying on the exchange of data Dln and Dlm at each node 74 to propagate the network addresses throughout the communication network 72.
[00110] As a non-limiting example of steps 645-675, within Figure 7, node 74-3 will assume relay mode, while node 74-4 will assume master mode, unless step 640 is implemented. In these embodiments, both of nodes 74-3 and 74-4 will maintain their default relay mode until the topology of communication network 72 stops changing.
[00111] In any event, from steps 650 and/or 660 and/or 675, node 74-n again generates Dln at step 610 using the updated Lln.
[00112] As method 600 is occurring in each node 74, as list Ll gets updated at one node 74, the data in list Ll then gets propagated through the communication network 72 as neighbour nodes exchange their respective lists Ll. For example, with reference to Figure 7, assume node 74-4 is in direct communication with node 74-3, but not node 74-0 and node 74-3 is in direct communication with node 74-0 and node 74-4. By exchanging data with node 74-4 and node 74-0, eventually list Ll3 will comprise data associated with nodes 74-0, 74-3 and 74-4. However, list Ll4 can acquire the data associated with node 74-0, even though they are not in direct communication by again exchanging data with node 74-3, once list Ll3 contains the data associated with node 74-0 as at this point Dl3 will not equal Dl4 (i.e. step 625).
[00113] However, as node 74-0 is a grounded master node, it takes priority over all other nodes 74 in the communication network 72, such that list Ll0, Ll3 and list Ll4 assumes the contents of Table 6. In embodiments where communications network 72 comprises more than one grounded master node, RSTP can be used to route traffic to the appropriate grounded master node. In any event Table 6 comprises:
Figure imgf000025_0001
[00114] TABLE 6: List Ll at nodes 74-0, 74-3 and 74-4
[00115] Method 600 will then continue to occur at all nodes 74, with each list Ll continuing to be updated by exchanging lists Ll with other nodes 74 within broadcast range until the priority of each node is established with respect to the grounded master node 74-0, and until list Ll is the same at all nodes 74.
[00116] Once complete, list Ll represents the paths which data from a node 74 that is low on list Ll can take to reach the grounded master node 74-0. In some instances, more than one path may be available; in some of these embodiments, the priority of a node 74 can default to the shortest path (i.e. fewest number of hops), while in other embodiments, the priority of a node 74 can be based on quality of service (i.e. the path with the strongest signal strengths between nodes 74).
[00117] For example, Figure 8 depicts the topology of communication network 72, according to non-limiting embodiments, after list Ll has stopped changing and each node 74 lists all of the nodes 74 (i.e. step 625 produces a positive result after a given number of times through method 600). Solid lines between nodes 74 are understood to be wireless links via at least one of upstream channel 180 and downstream channel 184. Figure 8 also depicts the priority of each node 74. Such a topology results, at least in part, from the physical arrangement of nodes 74 in mine 50 depicted in Figure 1. Non-limiting embodiments of a corresponding list Ll which represents the topology depicted in Figure 8 can be represented as in Table 7:
Figure imgf000026_0001
[00118] TABLE 7: List Ll comprising topology of Communications Network 72
[00119] In these embodiments, the topology of the communications network 72 is indicated by both the priority of each node 74 and the order nodes 74 are listed. In embodiments where a node 74 is in communication with more than one downstream node (i.e. a branch), a first branch, and all nodes in the first branch, can be listed prior to a second branch (i.e. nodes 74-2, 74-1, 74-6, 74-7, 74-5, 74-10 are listed prior to the nodes74-3, 74-8, 74-4, 74-9, 74-14, 74-13, 74-12, 74-11, with each of nodes 74-2 and 74-3 having a priority of "1" and in each of nodes 74-2 and 74-3 in communication with node 74-0). Furthermore, as list Ll provides the topology and priority level of each node 74, each node 74 can determine the topology of communication network 72 by processing list Ll.
[00120] In further embodiments, each node 74 can further comprise a list L2 which can comprise a table identifying neighbour nodes, the master node(s), all the nodes 74 which can be communicated with and the hop counts to each one of them. In general list L2 can be similar to list Ll ; however list L2 can be more explicitly configured as a definition of the topology of communication network 72 from the point of view of a given node 74 storing a given list L2. In a non-limiting embodiment, list L2 stored at node 74-4 can comprise:
Figure imgf000027_0001
List L2 [00121] Furthermore, in addition to list L2, each node 74 can store an identifier of the grounded master node (or alternatively, in the absence of external communications, a floating master node) with which it is in communication. For example, node 74-4 can store an identifier of node 74-0 and data identifying node 74-0 as a grounded master.
Alternatively, this data can be stored in list L2. In yet further embodiments, list L2 can comprise data indicating the neighbour nodes to node 74-4. In general list L2 can be populated and updated in a manner similar to the population of list Ll, as described above, and further described below. [00122] In some embodiments, once the list Ll is the same at all nodes 74, each node 74-n continues to generate and broadcast Dln, though data Dlm from nodes 74 other than neighbours of node 74-n, as indicated in list Ll, can be ignored.
[00123] Furthermore, as each node 74 has a network address, any node 74 can communicate with any other node 74 (i.e. data can be relayed between any two nodes 74), such that miners can communicate with each in mine 50 via client device 78.
[00124] Method 600 continues to repeat within each node 74. Indeed, unless a change occurs in the topology of the communication network 72, as in Scenarios 2 and 3, as described below, such that a change occurs to list Ll at one of nodes 74, each node 74 will cycle through steps 615, 620 and 625. As such, the broadcast of Dl by each node at step 620 serves as a "heartbeat" indicator of the health of the communication network 72
[00125]
[00126] Scenario 2: Loss of a node 74 within communication network 72
[00127]
[00128] Embodiments in which a node 74 within communication network 72 stops broadcasting Dl are now considered. Such a situation can occur when a node 74-x is damaged or destroyed by an event in mine 50, such as a rock-fall, a cave-in and/or an explosion. In these embodiments, nodes 74 downstream of node 74-x are no longer able to communicate with grounded master node 74-0, and are hence not being provided with communication services. Therefore, the loss of node 75-x isolates downstream nodes 74, though the downstream nodes 74 can still communicate with each other. However, nodes 74 upstream of node 74-x remain in communication with the grounded master node 74-0 and hence communication services are unaffected by the loss of node 74-x. On the other hand, data can no longer be relayed to nodes 74 downstream of node 74-x.
[00129] Consider also that the event which destroys/damages node 74-x can also result in miners being trapped within mine 50. Furthermore, if the miners are in a region of mine 50 that relies on node 74-x to relay data to the grounded master node 74-0, then their communications external to mine 50, via at least one client device 78, are curtailed.
[00130] Method 600 will now be considered in light of this scenario when node 74-x is an upstream node and when node 74-x is a downstream node.
[00131] Attention is first directed to Figure 9, which is similar to Figure 8, with like elements having like numbers. However, in Figure 9, node 74-4 is assumed to have been damaged or destroyed. Consider method 600 occurring in node 74-9, downstream from node
74-4.
[00132] At step 615, node 74-9 broadcasts data Dl9 to node 74-4 (no longer functioning) and node 74-14. At step 620, node 74-9 determines that Dl4 is not being received. Hence, at step 640, node 74-9 updates list Ll9 to remove the node 74-4, and all nodes 74 to which communication is no longer possible. For example, as node 74-9 can no longer communicate with nodes 74-0, 74-2, 74-3, 74-4, 74-1, 74-5, 74-10, 74-6, and 74-7, these nodes are removed from list Ll9, as in Table 8:
Figure imgf000029_0001
[00133] TABLE 8: List Ll9 after node Ll4 is destroyed
[00134] Hence at step 650, the priority of node 74-9 is determined, and as node 74-9 has top priority in list Ll, node 74-9 assumes master node status at steps 655 and 660, by processing MNRD. In addition, in some embodiments, node 74-9 may renumber priorities based on node 74-9 having top priority, as in Table 9:
Figure imgf000030_0001
[00135] TABLE 9: List Ll9 with priorities renumbered
[00136] Furthermore, in some embodiments, nod 74-9 may also re-issue network addresses.
[00137] Consider now method 600 occurring in node 74-14, downstream from node 74-4 and node 74-14 in the same scenario where node 74-4 is destroyed, with reference again to Figure 9.
[00138] At step 615, node 74-14 broadcasts data Dl 14 to node 74-9. At step 620, Dl9 is received, but at step 625 it is determined that Dh4 is not equal to Dl9 as list Ll9 has now changed as in Table 9, while list LI j4 is still as in Table 7. Hence at step 630 list Ll9 is requested and received from node 74-9. At step 640, node 74-14 updates list Ll i4 to remove the node 74-4, and all nodes 74 to which communication is no longer possible. Hence, list L 114 is now similar to Table 9.
[00139] Updating of list Ll at nodes 74-13, 74-12, and 74-11 will occur in a similar manner. Furthermore, updating of list L2, if present, at nodes 74-13, 74-12, and 74-11 will occur in a similar manner.
[00140] Consider now method 600 occurring in node 74-3, upstream from node 74-4, in the same scenario where node 74-4 is destroyed, with reference again to Figure 9.
[00141] At step 615, node 74-3 broadcasts data Dl3 to node 74-4 (no longer functioning), node 74-0 and node 74-8. At step 620, node 74-3 determines that Dl4 is not being received. Hence, at step 640, node 74-3 updates list Ll3 to remove the node 74-4, and all nodes 74 to which communication is no longer possible. For example, as node 74-9 can no longer communicate with nodes 74-9, 74-14, 74-13, 74-12, and 74-11, these nodes are removed from list Ll3, as in Table 10:
Figure imgf000031_0001
[00142] TABLE 10: List Ll9 after node Ll4 is destroyed
[00143] Hence at step 650, the priority of node 74-3 is determined, and as node 74-3 does not have top priority in list Ll, node 74-3 maintains its relay status at step 655.
[00144] As node 74-8 is downstream from node 74-3, the list Ll8 will be updated in a manner similar to list Ll 14, as described above.
[00145] Consider now method 600 occurring in node 74-0, upstream from node 74-4 and node 74-3 in the same scenario where node 74-4 is destroyed, with reference again to Figure 9.
[00146] At step 615, node 74-0 broadcasts data Dl0 to node 74-3. At step 620, Dl3 is received, but at step 625 it is determined that Dl0 is not equal to Dl3 as list Ll3 has now changed as in Table 10, while list Ll0 is still as in Table 7. Hence at step 630 list Ll3 is requested and received from node 74-3. At step 640, node 74-0 updates list Ll0 to remove the node 74-4, and all nodes 74 to which communication is no longer possible. Hence, list Ll 14 is now similar to Table 8. [00147] Updates to list Ll at nodes 74-2, 74-1, 74-5, 74-10, 74-6 and 74-7 occur in manner similar to the update of list 74-14, such that the lists Ll at each of these nodes 74 are similar to Table 8.
[00148] Furthermore, if other nodes 74 in the communication network 72 are damaged or destroyed, groups of nodes 74 which remain in communication can organize themselves in a manner similar to that described above. For example, if node 74-13 is destroyed, nodes 74-9 and 74-13 will maintain communications, with node 74-9 acting as a master node. Similarly, nodes 74-12 and 74-11 will maintain communications, with node 74-as acting as a master node as node 74-12 has priority in list Ll 12, similar to list LI9 depicted in Table 9.
[00149] Hence, by implementing method 600, communication services can be provided to a group of nodes 74 that have been isolated from the grounded master node 74-0, but causing one node to replicate a master node. In this manner, client devices 78 that are in communication with the isolated group of nodes 74 are enabled to communicate with each other, even when communications outside mine 50 are not possible.
[00150] In some embodiments, one node 74 may be isolated from all the other nodes 74; in these embodiments, the one node 74 can provide communication services for itself, such that client devices 78 in range of the one node 74 are enabled to communicate.
[00151]
[00152] Scenario 3: Insertion of a node 74 within communication network 72
[00153]
[00154] Embodiments in which a node 104 is inserted into communication network 72 are now considered, with reference to Figure 10. Figure 10 is substantially similar to Figure 9, with like elements having like numbers, however in Figure 10 node 74-4 is assumed to have been damaged/destroyed, or in any event is not broadcasting data Dl4. Hence nodes 74-9, 74-14, 74-13, 74-12 and 74-11 are isolated from the other nodes 74, including the grounded master node 74-0. Hence, list Ll at nodes 74-9, 74-14, 74-13, 74-12 and 74-11 being similar to list Ll9 in Table 9, and list Ll at the remaining nodes 74 is similar to list Ll0 in Table 10. It is also assumed that a new node 104 has been inserted into mine 50, for example by drilling into mine 50 and inserting an antenna into mine 50, for example beyond a rockfall that may have damaged/destroyed node 74-4 and trapped miners. It is also assumed that node 104 is implementing method 600, and within wireless broadcast range of node 74-11, and that node 104 has been configured to assume grounded master mode: i.e. node 104 is in communication with a communications network 107, which can be the same as or different from communications network 106. In non-limiting embodiments, node 104 comprises a list Ll io4 as in Table 11 :
Figure imgf000033_0001
[00155] TABLE 11 : List Ll 104 at node 104
[00156] Consider now method 600 occurring in node 74-11, as node 74-11 exchanges data Dl with node 104.
[00157] At step 620, node 74-11 receives data DI i04, for the first time. In some embodiments, DI iO4 can include a "HELLO" message when making contact with node 74- 11 for the first time. At step 625, node 74-11 compares Dl 11 to Dl 104. As they are different, at steps 630 and 640, Ll 104 is requested/received and LI n is updated, as in Table 12:
Figure imgf000033_0002
[00158] TABLE 12: List Ll 11 after updating using List Ll i04 [00159] As node 104 is a grounded master node, it is given priority in list Ll n. Hence it is understood that node 74-9, which had top priority, now has the lowest priority in list Ll π. Note that as node 104 received Di n when node 74-11 broadcasts Dl 11, list Ll 14 is also updated as in Table 12.
[00160] At step 650, the priority of node 74-11 is determined, and as node 74-11 does not have tope priority, node 74-11 maintains relay mode at step 655.
[00161] Node 74-11 will then re-generate data DI n at step 610 and broadcast it at step 615. As method 600 is also occurring in node 74-12, at step 620 data DI n is received at node 74-12, and list LI i2 is updated, as in Table 12. The data in Table 12 then propagates down the line of nodes 74 to node 74-9, where list Ll9 is updated, as in Table 12. Node 74-9 then checks its priority in updated list Ll9 and determines that it no longer has top priority. Hence, at step 655, node 74-9 enters relay mode at step 650, though MNRD is still stored for later processing, if necessary.
[00162] Furthermore, in Table 12 it is assumed that node 104 has maintained the existing network addresses, and issued itself the network address 10.50.11.00. In other embodiments, however, node 104 may issue new network addresses to all nodes 74 for which it is acting as the grounded master node.
[00163] At a later time, if node 104 is removed from communication network 72, then node 74-11 becomes the master node, providing communication services to the other nodes 74 in the group from node 74-9 to node 74-11.
[00164] Updating of list L2, if present, at other nodes 74 will occur in a similar manner.
[00165] Consider now Figure 11, in which node 104 has been inserted into mine 50 between nodes 74-11 and 74-12. After the nodes 74-9 to 104 implement method 600, the list Ll within these nodes 74 is updated as in Table 13:
Figure imgf000034_0001
Figure imgf000035_0001
[00166] TABLE 13: List Ll in nodes 74-9 to node 104 after node 104 is inserted between nodes 74-11 and 74-12.
[00167] It is assumed in Table 13 that in the implementation of method 600, it was determined that the best path to node 104 for both node 74-11 and node 74-12 is a direct path (i.e. a single hop), rather than via one of the other nodes 74.
[00168] However, in these embodiments, if node 104 is removed from communication network 72, there is a priority conflict between nodes 74-11 and 74-12, as each has a priority of "1 " in Table 13. As described above, any suitable priority-resolution technique can be used to resolve the conflict, for example the node 74 having the higher numbered identifier can assume top priority, such that list Ll is updated as in Table 14:
Figure imgf000035_0002
[00169] TABLE 13: List Ll in nodes 74-9 to node 74-12 after node 104 is removed from between nodes 74-11 and 74-12.
[00170] It is understood that node 74-12 then enters master mode to provide communication services to nodes 74-9 to 74-11. [00171] Consider now Figure 12, in which node 104' has been inserted into mine 50 between nodes 74-3 and 74-9, for example by drilling into mine 50 and inserting an antenna into mine 50, or by replacing damaged/destroyed node 74-4. Node 104' is similar to node 104, however node 104' is not acting as grounded master node. In these embodiments, node 104' effectively bridges node 74-3 to nodes 74-9...74-11, which had been operating in isolation from the other nodes 74. After implementing method 600, the list Ll is updated as in Table 7, but including data associated with node 104 in place of data associated with node 74-4. Grounded master node 74-0 again provides communication services to all nodes 74 and node 104'.
[00172] Consider now Figure 13, in which node 104" has been inserted into mine 50 between nodes 74-3 and 74-9, for example by drilling into mine 50 and inserting an antenna into mine 50, or by replacing damaged/destroyed node 74-4. In these embodiments, node 104 effectively bridges node 74-3 to nodes 74-9...74-11, which had been operating in isolation from the other nodes 74. After implementing method 600, the list Ll is updated as in Table 14:
Figure imgf000036_0001
Figure imgf000037_0001
[00173] TABLE 14: List Ll comprising topology of Communications Network 72
[00174] In these embodiments, there is a priority conflict as there are now two grounded master nodes in the communication system 72: node 74-0 and node 104. Such a priority conflict can be resolved using any suitable priority resolution technique, as described above, for example using RSTP. In some embodiments, each of nodes 74-0 and 104 can stay in grounded master mode, effectively creating two subnetworks within communication system 72: i.e. nodes 104, 74-9 to 74-11 form a first subnetwork; and the remaining nodes 74, including node 74-0, form a second subnetwork. In these embodiments, node 104 relays data from the first subnetwork to one of the communications network 107 or the second subnetwork. Such a relay is dependent on whether the data is addressed to the second subnetwork (i.e. a node 74 in the second subnetwork) or to an external address.
[00175] Attention is now directed to Figure 14 which depicts a communication network 1472 according to non-limiting embodiments, communications network 1472 generally similar to communications network 72, except as described below. Communication network 1472 comprises nodes 14, similar to nodes 74, except that nodes 14 implement a method 1600 for replicating a master node, method 1600 described below. Communication network 1472 includes a grounded master node 14-0. Furthermore, each node 14 comprises a list L14 in which the priority of network addresses in the list dictate the priority of the associated node 14. A non-limiting embodiments of list Ll 4 is shown in Table 15:
Figure imgf000037_0002
Figure imgf000038_0001
[00176] TABLE 15: List L14 comprising priority of nodes 14 in communications network 1472
[00177] The grounded master node 14-0 is has highest priority in list L14 as grounded master node 14-0 is listed first in list L 14. For clarity, each node 14 is also assigned an address index to indicate priority of each node 14 in communications network 1472. In general it is understood that that lower the address index, the higher the priority.
[00178] In other non-limiting embodiments, priority can be assigned based on the order of an identifier of each node 14, in the event that network addresses are dynamic (as in DHCP).
[00179] In some embodiments, list L14 can be pre-populated in nodes 14 prior to deployment in communication network 1472. In other embodiments, list L14 can be determined when communication system 1472 is initialized, based on the shortest path for data to be relayed between nodes to the grounded master node 14-0 and/or quality of service between nodes 14. In any event, communication network 1472 comprises a mesh network, and furthermore each node 14 is enabled to ping every other node 14, and in return receive a response. As a non-limiting example, in Figure 14, node 14-3 is depicted as pinging node 14-1 via a request R-31 and receiving a ping P-31, and pinging node 14-14 via a request R- 314 and receiving a ping P-314, though it is understood that node 14-3 can ping all other nodes 14. Requests and pings can be transmitted and received via any suitable upstream channel 180 and/or downstream channel 184. [00180] While throughout present specification the term "ping" is used to indicate an interrogation of one node 14 by another node 14, it is understood that the term "ping" is not limited to the use of ICMP (Internet Control Message Protocol) packets to interrogate other nodes 14 in a network. Rather it is understood that any suitable protocol, including but not limited to proprietary protocols, can be used for interrogations between nodes 14.
[00181] When grounded master node 14-0 cannot be pinged, nodes 14 decide which one will become the master node to take over communication services. The selection process can be configured so that node 14 with the lowest MAC address (or other unique identifier) assumes master mode. Should a telecom process fail while a node 14 is the master node, another node 14 can take over take over communication services. Once the connection to grounded master node 14-0 is restored, node 14 will relinquish control to grounded master node 14-0.
[00182] Attention is now directed to Figure 15 which depicts a block diagram of node 14, including interactions other nodes 14, according to non-limiting embodiments, though in other embodiments, node 14 is similar to node 74 as depicted in Figure 3.
[00183] Node 14 is enabled for packet routing and providing a set of telecommunication services, as well as providing a supervisory/master node process 1600. As a whole, nodes 14 provide robust SIP based communication services in a wireless WIFI Mesh network.
[00184] In the embodiment of node 14 depicted in Figure 15, node 14 comprises a first Ethernet port ("Ethernet Port 1 ") and a second Ethernet port ("Ethernet Port 2), which can include antennae, radio(s) etc., as required, similar to node 74. Node 14 also comprises a processing unit 1505, similar to CPU 110, which is enabled to implement various processes at node 14, the including but not limited to IP routing processes (elements 1510 and 1511) for routing IP Packets for TFTP 1515 and Remote Access 1516 processes via Ethernet Port 1 and Ethernet Port 2, as desired. Processing unit 1505 is also enabled to implement the master node process 1600, described below with reference to Figure 16, the master node process 1600 enabled to interact with a SIP (Session Initiation Protocol) Registry 1520 and IP routing process 1510. The master node process 1600 is further enabled to send start and stop signals to the SIP registry 1520, and to send control routing signals to the IP routing process.
[00185] Node 14 further comprises a VoIP server 1534. In some non-limiting embodiments, VoIP server 1534 can comprise a Spectralink Voice Priority Server. Ethernet Port 2 can be used to convey packets between VoIP server 1534 and IP Routing process 1510.
[00186] Processing unit 1505 is further enabled for conveying packets between the TFTP process 1515 and the IP routing process 1510, and between the remote access process 1511 and the IP routing process 1511. Processing unit 1505 is further enabled for conveying packets to other nodes 14, including grounded master node 14-0. In some embodiments, a node 14 assumes master mode, and Alias IP is bound to Ethernet Port 1, otherwise the Alias IP is removed from Ethernet Port 1 making the SIP Registry and VoIP services not available from this device on the network. In other embodiments, Maintenance IP is used to service node 14 and provide an IP for nodes 14 to communicate with one another.
[00187] Node 14 further comprises a memory 1570 for storing list L14. Memory 1570 can comprise RAM and/or ROM
[00188] The master node process 1600 is responsible for several core operations:
[00189] a) identifying all other nodes 14 in the form of telecom processors and head- end(s) (i.e. grounded master node(s) 14-0) on the network;
[00190] b) determining if the present node should assume master mode;
[00191] c) if node 14 is to be a master node, to setup up an alias Internet Protocol ("IP") Address, start SIP Registry 1520, and setup up routing to allow local SIP and VoIP traffic;
[00192] d) if node 14 should no longer be a master node, then unbind the alias IP, stop SIP Registry 1520 and remove routing rules so that local SIP and SVP traffic ceases; [00193] e) Continually ping all other telecom processors (i.e. nodes 14) and head-end (i.e. grounded master node 14-0) at predetermined interval;
[00194] f) Indicate current status via Light Emitting Diode ("LED") indicator on the node.
[00195] Processes in each node 14 are now described in further detail:
[00196] SIP Registry Process
[00197] The purpose of SIP Registry is to provide SIP registry functions including:
[00198] a) registering client devices 78;
[00199] b) call management (call setup, call teardown);
[00200] c) establishing phone extension lookup table of available client devices 78.
[00201] VoIP Server 1534
[00202] The VoIP Server 1534 provides the following functionality:
[00203] a) voice quality control using QoS (Quality-of-Service) algorithms;
[00204] b) phone initialization.
[00205] It is to be understood that the SIP Registry 1520 can be generically considered a registry process and need not be limited to SIP Registry.
[00206] TFTP (Trivial File Transfer Protocol) Process 1516
[00207] The TFTP (Trivial File Transfer Protocol) process 1516 is responsible for:
[00208] a) serving configuration files to client devices 78;
[00209] b) serving firmware updates to client devices 78;
[00210] c) propagating configuration files, such as list Ll, to other nodes 14. [00211] It is to be understood that the TFTP Process can be generically considered a file transfer process and need not be limited to TFTP.
[00212] In some embodiments, nodes 74 can also communicate similar to nodes 14, and can further run IP routing processes, SIP registry processes, TFTP processes remote access processes and/or VoIP processes.
[00213] Attention is now directed to Figure 16 which depicts method for replicating a master node in communications network 1472, according to non-limiting embodiments. Method 900 can be implemented in at least one of the plurality of nodes 900. In order to assist in the explanation of method 900, it will be assumed that method 900 is performed using communication network 1472. Furthermore, the following discussion of method 900 will lead to a further understanding of communication network 1472 and its various components. However, it is to be understood that communication network 1472 and/or method 900 can be varied, and need not work exactly as discussed herein in conjunction with each other, and that such variations are within the scope of present embodiments.
[00214] At step 1602, a present node 14 processes list 14 to determine the address other nodes 14 in communications network 1472, and determine the topology of communication network 1472. For example, present node 14 can be any node 14 in communication network
1472.
[00215] For each address and/or identifier in list 14 (step 1606), node 14 pings each other node 14, in the order the nodes 14 are listed in list L 14. At step 1614, it is determined if the pinged node 14 responded. If so, at step 1620, if the address index (i.e. order node is listed in list L 14) is lower than a current index stored, for example, in memory 1570, then the index of the pinged node replaces the current index. However, if the node pinged at step 1610 is the first node in list L 14, then at step 1620 no comparison can be made and the address index of the first node 14 in list Ll 4 is stored at step 1620 without making a comparison at step 1614. In some embodiments, the priority of a node 14 in list L14 is indicated by the address and/or identifier. In these embodiments, at step 1620 if the address and/or identifier of the pinged node 14 is higher than an address and/or identifier stored in the memory 1570, then the address and/or identifier of the pinged node 14 replaces the stored address and/or identifier in the memory 1570.
[00216] At step 1624, it is determined if the end of list L14 has been reached. If not, then steps 1606-1620 are repeated until the end of list L14 has been reached.
[00217] Once the end of list L14 has been reached, at step 1630, a determination is made as which is lower, the last address index stored at step 1620, or the address index of the present node 14. If the lowest address index of the two is that of the present node 14, then the present node 14 has the highest priority in the communications network 1472 and the present node 14 enters master mode. In other words, communications with the grounded master node 14-0 have been severed and the present node 14 has the highest priority in the nodes 14 which remain. When entering the master mode, at an optional step 1634, the present node 14 can first pause of a predetermined amount of time. The pause can be introduced to allow another node 14 to assume relay mode (e.g. as in steps 1654-1666, described below).
[00218] Then, at step 1640, the present node 14 enables Alias IP on Ethernet Port 1. At step 1644, the present node starts the SIP registration process using SIP registry 1520 to either issue network addresses to the other nodes 14, or register their current network addresses, in order to provide SIP services at step 1648 by running routing rules. Running routing rules at step 1648 further enables VoIP services using VoIP Server 1534 as well as
TFTP services and any other communications services as desired. Method 1600 then repeats from step 1606.
[00219] Returning to step 1630, if the lowest address index is not that of the present node 14, at step 1652 a determination is made as to whether the present node 14 is a master node. If not, then method 1600 then repeats from step 1606.
[00220] If so, the present node 14 assumes relay mode as the present node is no longer the highest priority node 14 in list 14. Hence, after an optional pause of a predetermined amount of time (step 1654), which allows another node 14 to assume master mode, Alias IP is disabled on Ethernet Port 1 (step 1658), the SIP registry process is stopped (step 1662) and routing rules are run (step 1666) to disable SIP and VoIP services.
[00221] Method 1600 then repeats from step 1606.
[00222] At any suitable point in method 1600, list L14 is updated to remove nodes 14 to which communication is no longer possible and/or add new nodes 14 to which communication has become possible.
[00223] Method 1600 can be applied to the situations depicted in Figures 9 to 13, such that a node 14 of suitable priority can be enabled to provide communication services to other nodes 14 if communication with grounded master node 14-0 and/or a master node is no longer possible. Similarly, a node 14 can assume relay mode, if in master mode, if a node 14 of higher priority becomes available.
[00224] Attention is now directed to Figure 17 which depicts a block diagram of another embodiment of a node 1714, including interactions other nodes 1714, according to non- limiting embodiments. Node 1714 is similar to node 14 depicted in Figure 15, with like elements having like elements, however preceded by a "17" rather than a "15": for example processing unit 1705 is similar to processing unit 1505. However, node 1714 further comprises a voice priority server (VPS) 1735, which generally replaces VOIP server 1534 of node 14 depicted in Figure 15. Furthermore, VPS 1735 can be configured to provide any suitable voice services as desired. Node 1714 further comprises a software update module 1736 and a DHCP (Dynamic Host Configuration Protocol) services module 1737 for providing automatic software updating services and DHCP services, respectively.
[00225] Those skilled in the art will appreciate that in some embodiments, the functionality of nodes 14, 74, 104, 104', 104", and 1714 may be implemented using pre-programmed hardware or firmware elements (e.g., application specific integrated circuits (ASICs), electrically erasable programmable read-only memories (EEPROMs), etc.), or other related components. In other embodiments, the functionality of the nodes 14, 74, 104, 104', 104" and 1714 may be achieved using a computing apparatus that has access to a code memory (not shown) which stores computer-readable program code for operation of the computing apparatus. The computer-readable program code could be stored on a computer readable storage medium which is fixed, tangible and readable directly by these components, (e.g., removable diskette, CD-ROM, ROM, fixed disk, USB drive). Alternatively, the computer- readable program code could be stored remotely but transmittable to these components via a modem or other interface device connected to a network (including, without limitation, the Internet) over a transmission medium. The transmission medium may be either a non- wireless medium (e.g., optical and/or digital and/or analog communications lines) or a wireless medium (e.g., microwave, infrared, free-space optical or other transmission schemes) or a combination thereof.
[00226] Persons skilled in the art will appreciate that there are yet more alternative implementations and modifications possible for implementing the embodiments, and that the above implementations and examples are only illustrations of one or more embodiments. The scope, therefore, is only to be limited by the claims appended hereto.

Claims

What is claimed is:
1. A method for replicating a master node in a communication network comprising a plurality of nodes, including said master node, said master node for providing communication services to said plurality of nodes, each of said plurality of nodes storing master node replication data for enabling a node to replicate said master node, each of said plurality of nodes for relaying data within said communication network from at least one wireless communication device, said method implementable in at least one of said plurality of nodes, said method comprising: determining if communications with said master node are severed; and, if so, determining if said at least one node has priority in a remaining portion of said plurality of nodes; and if so, processing said master node replication data such that said at least one node replicates said master node by providing said communication services to said remaining portion of said plurality of nodes.
2. The method of claim 1, wherein said master node comprises a grounded master node in communication with an external communication network.
3. The method of claim 1, wherein said determining if communications with said master node are severed comprises determining that communications have been severed with a neighbouring node.
4. The method of claim 3, wherein determining that communications have been severed with a neighbouring node comprises failing to receive a periodic data transmission from said neighbouring node.
5. The method of claim 4, further comprising updating topology data stored at said at least one of said plurality of nodes in response to said failing to receive said periodic data transmission, and determining if said at least one node has priority in said remaining portion of said plurality of nodes is based on said topology data after said updating has occurred.
6. The method of claim 5, wherein said master node replication data comprises said topology data.
7. The method of claim 4, wherein said periodic data transmission comprises data representative of said topology data.
8. The method of claim 1, wherein said determining if communications with said master node are severed comprises determining that the topology of said communications network has changed by comparing first data representative of first topology data stored at said at least one of said plurality of nodes with second data received from a neighbouring node, said second data representative of second topology data stored in said neighbouring node.
9. The method of claim 8, further comprising: requesting said second topology data from said neighbouring node if said first data differs from said second data; receiving said second topology data; and updating said first topology data based on said second topology data.
10. The method of claim 1, wherein said determining if communications with said master node are severed comprises transmitting a message to said master node and determining if a reply from said master node is received.
11. The method of claim 1 , wherein said determining if said at least one node has priority in a remaining portion of said plurality of nodes comprises comparing an identifier of said at least one node to a list of identifiers of said remaining portion of nodes, said list of identifiers comprising a priority of each of said remaining portion of nodes.
12. The method of claim 1, further comprising determining if communications with at least one of said master node and another master node have been re-established and, in response, stopping providing said communication services to said remaining portion of said plurality of nodes such that said at least one of said plurality of nodes assumes a relay mode in which data from neighbouring nodes is relayed to at least one of said master node and said another master node.
13. The method of claim 1, further comprising determining a topology of said communication network by: periodically transmitting first data representative of topology data stored at said at least one node with at least one neighbouring node; periodically receiving second data representative of topology data stored at said at least one neighbouring node; comparing said first data with said second data, and if said first data differs from said second data: requesting said topology data stored at said at least one neighbouring node; and updating said topology data stored at said at least one node based on said topology data received from said at least one neighbouring node.
14. The method of claim 1, wherein said communication services comprise at least one of dynamic host configuration protocol services, telephone services, internet protocol based services, push to talk services, software update services, TFTP services, and location services.
15. A node connectable to a communication network comprising a plurality of nodes, one of said plurality of nodes comprising a master node for providing communication services to said plurality of nodes, said node comprising: at least one radio for communicating with said plurality of nodes and at least one wireless communication device; a memory connected to said processor for storing master node replication data for enabling a node to replicate said master node; a processor connected to said at least one radio and said memory, said processor enabled to execute a supervisory process comprising: determining if communications with said master node are severed; and, if so determining if said node has priority in a remaining portion of said plurality of nodes; and if so processing said master node replication data such that said node replicates said master node by providing said communication services to said remaining portion of said plurality of nodes.
16. The node of claim 15, wherein said determining if communications with said master node are severed comprises determining that communications have been severed with a neighbouring node.
17. The node of claim 16, wherein determining that communications have been severed with a neighbouring node comprises failing to receive a periodic data transmission from said neighbouring node.
18. The node of claim 17, wherein said supervisory process further comprises updating topology data stored at said node in response to said failing to receive said periodic data transmission, and determining if said node has priority in said remaining portion of said plurality of nodes is based on said topology data after said updating has occurred.
19. The node of claim 18, wherein said master node replication data comprises said topology data.
20. The node of claim 17, wherein said periodic data transmission comprises data representative of said topology data.
21. The node of claim 15, wherein said determining if communications with said master node are severed comprises determining that the topology of said communications network has changed by comparing first data representative of first topology data stored at said node with second data received from a neighbouring node, said second data representative of second topology data stored in said neighbouring node.
22. The node of claim 21 wherein said supervisory process further comprises: requesting said second topology data from said neighbouring node if said first data differs from said second data; receiving said second topology data; and updating said first topology data based on said second topology data.
23. The node of claim 15, wherein said determining if communications with said master node are severed comprises transmitting a message to said master node and determining if a reply from said master node is received.
24. The node of claim 15, wherein said determining if said node has priority in a remaining portion of said plurality of nodes comprises comparing an identifier of said node to a list of identifiers of said remaining portion of nodes, said list of identifiers comprising a priority of each of said remaining portion of nodes.
25. The node of claim 15, wherein said supervisory process further comprises determining if communications with at least one of said master node and another master node have been re-established and, in response, stopping providing said communication services to said remaining portion of said plurality of nodes such that said node assumes a relay mode in which data from neighbouring nodes is relayed to at least one of said master node and said another master node.
26. The node of claim 15, wherein said supervisory process further comprises determining a topology of said communication network by: periodically transmitting first data representative of topology data stored at said node with at least one neighbouring node; periodically receiving second data representative of topology data stored at said at least one neighbouring node; comparing said first data with said second data, and if said first data differs from said second data: requesting said topology data stored at said at least one neighbouring node; and updating said topology data stored at said node based on said topology data received from said at least one neighbouring node.
27. The node of claim 15, wherein said communication services comprise at least one of dynamic host configuration protocol services, telephone services, internet protocol based services, push to talk services, software update services, TFTP services, and location services.
28. A communication network comprising: at least one wireless communication device; a plurality of nodes enabled to communicate with said at last one wireless communication device and to relay data within said communication network; at least one master node for providing communication services to said plurality of nodes, each of said plurality of nodes storing master node replication data for enabling a node to replicate said master node, each node of said plurality of nodes enabled to execute a supervisory process comprising: determining if communications with said master node are severed; and, if so, determining if said node has priority in a remaining portion of said plurality of nodes; and if so, processing said master node replication data such that said node replicates said master node by providing said communication services to said remaining portion of said plurality of nodes.
29. A node in a communication network connectable to a plurality of other nodes, said node comprising: a processor; at least one radio connected to said processor; said at least one radio for connecting to said other nodes; said processor configured to execute a supervisory process; a registry process and a file transfer process; each of said processes configured to carry or host voice communications through said node and to dynamically adjust operation of said node between carrying or hosting voice communications via one or more other ones of said nodes.
PCT/CA2009/000574 2008-05-01 2009-04-30 A self-healing severable communication network and nodes WO2009132448A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US7150008P 2008-05-01 2008-05-01
US61/071,500 2008-05-01

Publications (1)

Publication Number Publication Date
WO2009132448A1 true WO2009132448A1 (en) 2009-11-05

Family

ID=41254741

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CA2009/000574 WO2009132448A1 (en) 2008-05-01 2009-04-30 A self-healing severable communication network and nodes

Country Status (1)

Country Link
WO (1) WO2009132448A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013071755A1 (en) * 2011-11-17 2013-05-23 中兴通讯股份有限公司 Method and apparatus for implementing base station device self-healing
CN111095342A (en) * 2017-05-30 2020-05-01 法国电力公司 Updating of device firmware and/or configuration for power distribution networks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4984240A (en) * 1988-12-22 1991-01-08 Codex Corporation Distributed switching architecture for communication module redundancy
US20060221856A1 (en) * 2005-03-29 2006-10-05 Nokia Corporation System and method for managing master-slave relationships within a network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4984240A (en) * 1988-12-22 1991-01-08 Codex Corporation Distributed switching architecture for communication module redundancy
US20060221856A1 (en) * 2005-03-29 2006-10-05 Nokia Corporation System and method for managing master-slave relationships within a network

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013071755A1 (en) * 2011-11-17 2013-05-23 中兴通讯股份有限公司 Method and apparatus for implementing base station device self-healing
CN111095342A (en) * 2017-05-30 2020-05-01 法国电力公司 Updating of device firmware and/or configuration for power distribution networks

Similar Documents

Publication Publication Date Title
CN110351109B (en) Topology information management method, device, system, storage medium and electronic device
EP1885039B1 (en) Emergency lighting system
US10075892B2 (en) Mobile device for use in a dynamic and stochastic asynchronously updated wireless ad-hoc network
US5852405A (en) Wireless LAN system
EP2400812B1 (en) Bluetooth networking
US8121077B2 (en) Relay device and relay method
KR20090030320A (en) Mobile ad-hoc network(manet) and method for implementing mutiple paths for fault tolerance
CN102598595B (en) Comprising the method that communicates in the network without battery ZigBee equipment and for its network and equipment
US20100046417A1 (en) Wireless lan relay apparatus
KR20120052092A (en) Method for tethering network, method for connecting network and wirelessly communication system thereof
US20130342347A1 (en) Wi-fi mesh fire detection system
CN108259283B (en) Wireless device communication method and system based on wide area network Mesh technology
CN104620636A (en) Bridge learning in multi-hop wireless mesh networks
EP2991278B1 (en) Method and system for managing network traffic
JP2008244679A (en) Communication route construction method and communication terminal
US10804967B2 (en) Electricity meter comprising a powerline communication interface and at least one radio-frequency interface
CN103200109A (en) Method and device for OSPF neighboring node management
JP2010087706A (en) Wireless network system and control node switching method
US11197224B1 (en) Systems and methods for routing messages through wireless networks
CN107809782B (en) Internet of things data transmission method and storage medium
WO2018097059A1 (en) Wireless communication device, method, and recording medium
WO2009132448A1 (en) A self-healing severable communication network and nodes
JP5853227B2 (en) Multi-hop communication method, multi-hop communication system, and communication terminal
JP2010233072A (en) Radio network system
CN107579896B (en) Internet of things data transmission method based on ring network and storage medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09737590

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09737590

Country of ref document: EP

Kind code of ref document: A1