This application claims priority pursuant to 35 U.S.C. 119(a) to Chinese Application No. 202210876504.4, filed Jul. 25, 2022, which application is incorporated herein by reference in its entirety.
The present disclosure relates generally to a network architecture, and more particularly, to establishing a long range (LoRa) private network for devices within a gas detection system.
LoRa is a spread spectrum modulation technique derived from chirp spread spectrum (CSS) technology. LoRa devices and wireless radio frequency technology is a long range, low power wireless platform that has become the de facto technology for Internet of Things (IoT) networks worldwide.
Various embodiments described herein relate to methods, apparatuses, and systems for establishing various communication networks of devices within a gas detection system. In one embodiment of the present disclosure, a method is provided for establishing a tree network of devices within a gas detection system, wherein the gas detection system comprises one or more broadcasting devices, and a gateway, and the method comprises initializing, by a computing device associated with a gateway, a root node of a tree network, monitoring, by the computing device, for a beacon request broadcast, wherein the beacon request broadcast is detected by the computing device from a given one of the one or more broadcasting devices, the given broadcasting device switching over from a parallel network configuration to join the tree network, determining, by the computing device, available capability to support a connection with the broadcasting device, generating, by the computing device, a beacon response based on the determination of available capability, transmitting, by the computing device, the beacon response to the broadcasting device, establishing, by the computing device, the broadcasting device as a child node device based upon a receipt of a joining request, and transmitting, by the computing device, a join confirmation to the broadcasting device based on the establishment of the broadcasting device as a child node device.
In some embodiments, the root node may comprise a node device designated as a destination of data communications from child node devices in the tree network. In some embodiments, the computing device may be further configured to manage data routes of the child node devices and branches in the tree network. In some embodiments, the tree network may comprise a LoRa private network. In some embodiments, the method may further comprise connecting the tree network to a central network. In some embodiments, the central network may be coupled to a remote server that provides centralized monitoring of data received from the tree network. In some embodiments, the beacon request may comprise a request for devices with available capability to connect with the broadcasting device. In some embodiments, the availability capability may comprise a resource quantity representative of the computing device's capacity for accepting child node device connections.
In some embodiments, determining the available capability may further comprise determining a child node device type corresponding to the broadcasting device. In some embodiments, the joining request may comprise a request to connect with the computing device to join the tree network. In some embodiments, establishing the broadcasting device as a child node device may further comprise allocating the computing device's capability to the child node device, assigning a network address to the child node device, and recording a media access control (MAC) address of the broadcasting device as a MAC address of the child node device. In some embodiments, the join confirmation may comprise a message that confirms connection to the tree network via a connection between the computing device and the broadcasting device. In some embodiments, the join confirmation may include an assigned network address and a capability value representative of capability distributed from the computing device to the child node device.
According to another embodiment, a method is provided for joining a tree network of devices within a gas detection system, wherein the gas detection system comprises one or more broadcasting devices, and one or more broadcast beacon responding devices, and the method comprises broadcasting, by a computing device, a beacon request upon switching over from a parallel network configuration to join a tree network, receiving, by the computing device, one or more beacon responses comprising a message including an indication that a given device in receipt of the beacon request has available capability, determining, by the computing device, which of beacon responding devices, corresponding to the one or more beacon responses, to request joining based on one or more criteria, transmitting, by the computing device, a joining request to a given beacon responding device based on the determination, receiving, by the computing device, a join confirmation from the given beacon responding device, and recording a media access control (MAC) address and a network address of the given beacon responding device for association as a parent node device based on the join confirmation.
In some embodiments, the beacon responding device may comprise a gateway, a router connected to a gateway, or a router connected to one or more additional routers connected to the gateway. In some embodiments, the one or more criteria may include minimum number of hops, best received signal strength indicator (RSSI), and signal noise ratio (SNR). In some embodiments, the joining request may comprise a request to connect with the given beacon responding device to join the tree network. In some embodiments, the join confirmation may comprise a message confirming a connection to the tree network via a connection between the computing device and the given beacon responding device. In some embodiments, the method may further comprise transmitting a frame to the given beacon responding device, the frame including payload data and control information comprising a source network address, a destination network address, a source MAC address, and a destination MAC address.
According to another embodiment, a method is provided for establishing a parallel network within a gas detection system, the method comprises monitoring, by the computing device, for frame broadcasts, the frame broadcasts comprising a transmission of a frame including control information and a data payload for distribution among devices within the parallel network, determining, by the computing device, whether the frame broadcasts are duplicative, wherein non-duplicative ones of the frame broadcasts include data payload accessible by the computing device for rendering, determining, by the computing device, whether the frame broadcasts include non-zero hop amounts, and broadcasting, by the computing device, given one of the frame broadcasts to other computing devices based on the determination of whether the frame broadcasts include non-zero hop amounts.
The foregoing illustrative summary, as well as other exemplary objectives and/or advantages of the disclosure, and the manner in which the same are accomplished, are further explained in the following detailed description and its accompanying drawings.
The description of the illustrative embodiments may be read in conjunction with the accompanying figures. It will be appreciated that, for simplicity and clarity of illustration, elements illustrated in the figures have not necessarily been drawn to scale, unless described otherwise. For example, the dimensions of some of the elements may be exaggerated relative to other elements, unless described otherwise. Embodiments incorporating teachings of the present disclosure are shown and described with respect to the figures presented herein.
Some embodiments of the present disclosure will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the disclosure are shown. Indeed, these disclosures may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements Like numbers refer to like elements throughout.
The phrases “in one embodiment,” “according to one embodiment,” and the like generally mean that the particular feature, structure, or characteristic following the phrase may be included in at least one embodiment of the present disclosure, and may be included in more than one embodiment of the present disclosure (importantly, such phrases do not necessarily refer to the same embodiment).
The word “example” or “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any implementation described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other implementations.
If the specification states a component or feature “may,” “can,” “could,” “should,” “would,” “preferably,” “possibly,” “typically,” “optionally,” “for example,” “often,” or “might” (or other such language) be included or have a characteristic, that a specific component or feature is not required to be included or to have the characteristic. Such component or feature may be optionally included in some embodiments, or it may be excluded.
Referring now to
As shown, the controller component 100 (such as the processing circuitry 101, communication module 103, input/output module 105 and memory 107) is electrically coupled to and/or in electronic communication with a sensing component 109. As depicted, the sensing component 109 may exchange (e.g., transmit and receive) data with the processing circuitry 101 of the controller component 100. For example, sensing component 109 may generate a gas detection indication and transmit the gas detection indication to the processing circuitry 101.
The processing circuitry 101 may be implemented as, for example, various devices comprising one or a plurality of microprocessors with accompanying digital signal processors; one or a plurality of processors without accompanying digital signal processors; one or a plurality of coprocessors; one or a plurality of multi-core processors; one or a plurality of controllers; processing circuits; one or a plurality of computers; and various other processing elements (including integrated circuits, such as ASICs or FPGAs, or a certain combination thereof). In some embodiments, the processing circuitry 101 may comprise one or more processors. In one exemplary embodiment, the processing circuitry 101 is configured to execute instructions stored in the memory 107 or otherwise accessible by the processing circuitry 101. When executed by the processing circuitry 101, these instructions may enable the controller component 100 to execute one or a plurality of the functions as described herein. No matter whether it is configured by hardware, firmware/software methods, or a combination thereof, the processing circuitry 101 may comprise entities capable of executing operations according to the embodiments of the present invention when correspondingly configured. Therefore, for example, when the processing circuitry 101 is implemented as an ASIC, an FPGA, or the like, the processing circuitry 101 may comprise specially configured hardware for implementing one or a plurality of operations described herein. Alternatively, as another example, when the processing circuitry 101 is implemented as an actuator of instructions (such as those that may be stored in the memory 107), the instructions may specifically configure the processing circuitry 101 to execute one or a plurality of algorithms and operations described herein.
The memory 107 may comprise, for example, a volatile memory, a non-volatile memory, or a certain combination thereof. Although illustrated as a single memory in
The communication module 103 may be implemented as any apparatus included in a circuit, hardware, a computer program product or a combination thereof, which is configured to receive and/or transmit data from/to another component or apparatus. The computer program product comprises computer-readable program instructions stored on a computer-readable medium (for example, the memory 107) and executed by a controller component 100 (for example, the processing circuitry 101). In some embodiments, the communication module 103 (as with other components discussed herein) may be at least partially implemented as the processing circuitry 101 or otherwise controlled by the processing circuitry 101. In this regard, the communication module 103 may communicate with the processing circuitry 101, for example, through a bus. The communication module 103 may comprise, for example, antennas, transmitters, receivers, transceivers, network interface cards and/or supporting hardware and/or firmware/software, and is used for establishing communication with another apparatus. The communication module 103 may be configured to receive and/or transmit any data that may be stored by the memory 107 by using any protocol that can be used for communication between apparatuses. The communication module 103 may additionally or alternatively communicate with the memory 107, the input/output module 105 and/or any other component of the controller component 100, for example, through a bus.
In some embodiments, the controller component 100 may comprise an input/output module 105. The input/output module 105 may communicate with the processing circuitry 101 to receive instructions input by the user and/or to provide audible, visual, mechanical or other outputs to the user. Therefore, the input/output module 105 may comprise supporting devices, such as a keyboard, a mouse, a display, a touch screen display, and/or other input/output mechanisms. Alternatively, at least some aspects of the input/output module 105 may be implemented on a device used by the user to communicate with the controller component 100. The input/output module 105 may communicate with the memory 107, the communication module 103 and/or any other component, for example, through a bus. One or a plurality of input/output modules and/or other components may be included in the controller component 100.
According to various embodiments, the disclosed gas detection device may be deployed for real-time remote monitoring of potentially hazardous environments. For example, the disclosed gas detection device may be used where it is critical to maintain visibility on gas threats, such as protecting industrial workers and first responders, or establishing a perimeter during a hazmat event. In some embodiments, a plurality of the disclosed gas detection device may be configured in a network to communicate with each other as well as to support long-distance remote monitoring. Thus, there is a need for a network scheme that provides stability, security, and support group alarm function.
In accordance with various examples of the present disclosure, a gas detection network is provided for a plurality of the disclosed gas detection device for communication. The gas detection network may comprise a LoRa private network comprising two network topology modes of operation. As an example, the gas detection network may allow the plurality of the disclosed gas detection device to communicate using LoRa in either a tree network mode or a parallel network mode. The plurality of the disclosed gas detection device may switch between the tree network mode and the parallel network mode based on a presence of a gateway. That is, the plurality of the disclosed gas detection device, when configured in a tree network mode, may go offline and enable broadcasting to establish a parallel network based on a removal (e.g., failure, loss connection, out-of-range, offline) of a gateway device from the tree network. Conversely, the plurality of the disclosed gas detection device, when configured in a parallel network mode, may stop broadcasting and join a tree network based on an addition or connection of a gateway device to the gas detection network.
Referring now to
Routers 206 may comprise wireless infrastructure devices that can operate as an access point to communicate and deliver data within the LoRa private network, such as between gas detection devices 202, 204, and gateway 208. In some embodiments, routers 206 may include functionalities of the disclosed gas detection device. According to another embodiment, routers 206 may comprise a dedicated device for relaying wireless signals. As an example, routers 206 may operate as range extender to increase wireless transmission distances of gas detection devices 202 and 204. Routers 206 may support multi-hop routing to provide better network coverage and enhance connection stability. The routers 206 may also manage data routes of child node devices (e.g., gas detection device 204) in the tree network mode and can trigger alarm notification devices.
Gateway 208 may comprise a network device that connects the LoRa private network portion of gas detection system 200 (e.g., gas detection devices 202, 204, routers 206, and gateway 208 itself) to central network 210. The gateway 208 may include hardware, such as network interface cards, and software for interfacing communications from the LoRa private network to the central network 210. The gateway 208 may also manage data routes of all child node devices and branches (e.g., gas detection devices 202, 204, and routers 206) in the tree network mode.
Central network 210 may comprise an endpoint of which gas detection devices 202, 204, routers 206, and gateway 208 may ultimately communicate with. For example, real-time detection data from gas detection devices 202, 204, and routers 206 may be propagated to the central network 210 through various layer nodes (e.g., from bottom layer to top layer) of the LoRa private network.
According to some embodiments, the central network 210 may be coupled to a remote server to provide centralized monitoring of data received from devices connected in the LoRa private network, such as real-time threat readings, alarm status, location of each device. As an example, central network 210 may receive detection readings and location data of gas detection devices 202, 204, and routers 206 and monitor the status of gas detection devices 202, 204, and routers 206. Accordingly, access to real-time data, and location of gas detection devices 202, 204, and routers 206 may be used to monitor workers as well as determine location and severity of a threat.
As discussed above, devices within a gas detection system may be connected to a LoRa private network based on a tree network configuration.
Layer 0 comprises gateway 302. Gateway 302 is directly connected to child nodes in Layer 1 comprising router 310, gas detection device 312, router 314, and gas detection device 316. Router 310 and router 314 are further connected to child nodes in Layer 2. In particular, router 310 is directly connected to router 320, gas detection device 322, and gas detection device 324 and router 314 is directed connected to router 326 and gas detection device 328. Router 320 is further connected to child nodes in Layer 3 comprising router 330, gas detection device 332, and gas detection device 334. Router 330 is further connected to child nodes in Layer 4 comprising router 340, gas detection device 342, and gas detection device 344.
The gateway 302 and routers 310, 314, 320, 326, 330, and 340 may have certain attributes, for example, as depicted in Table 1.
A “Capability” attribute may be allocated to gateway and routers. Capability may comprise a resource quantity representative of a gateway's or router's capacity for accepting child node connections with a router or gas detection device based on layer level. Capability of routers may be allocated by its parent node (either a gateway or a router) when connected. The gateway 302 being the root node may be pre-allocated a given amount of capability. Generally, gateway/routers in higher layers of the tree network 300 are allocated with greater capability than routers in lower layers. For example, gateway 302 in Layer 0 is allocated a greatest amount of capability (192′), while router 340 in Layer 4 is allocated with no capability.
A parent router may accept connections from child node routers or gas detection devices. Additionally, when a child router connects to a parent node, capability of the parent may be allocated to the child router. The “RTR_Alloc” attribute may comprise a capability cost if a router was connected to a parent node at a given layer. If a parent node has enough capability (e.g., capability>RTR_Alloc), capability equal to the RTR_Alloc can be allocated from the parent node's remaining capability to a child router. However, if the parent node has a remaining capability greater than ‘1’ but less than RTR_Alloc, the remaining capability may be allocated to the child router. A gateway or router may accept connections until its capability is exhausted. That is, capability may be allocated for every device connection until the capability is exhausted (i.e., capability=0). The “RTR_MAX” attribute may define a maximum amount of child routers allowed to connect to a parent node at a given layer. In certain instances, such as in the illustrated embodiment, router 340 may be allowed to connect to router 330 having a RTR_MAX=0 provided that router 340 is configured as a detector device and does not function as a router. The “RTR MAX num in layer” attribute may define a maximum number of routers in a given layer.
Referring now to
In
At step 402, a root node of a tree network is initialized by the computing device. The root node may comprise a node device that is designated as a destination of data communications from all other node devices in the tree network. As an example, the computing device may function as a destination device node where child node devices may communicate data to, either directly or via intermediate device nodes. The computing device may manage data routes of all child node devices and branches in the tree network.
The tree network may comprise, for example, a network of devices capable of wireless communication within a gas detection system. In some embodiments, the tree network may comprise a LoRa private network, or any local area computer network that uses a private address space of Internet Protocol addresses. The computing device may connect the tree network to another network external to the tree network, such as a central network.
In some embodiments, subsequent to step 402, the example method proceeds to step 404, where the computing device monitors for a beacon request broadcast. Monitoring for the beacon request broadcast may comprise detecting a beacon request broadcast from a broadcasting device. The beacon request may comprise a request, from a broadcasting device, for devices with available capability to connect with the broadcasting device. A beacon request may be broadcasted from, for example, either a gas detection device or a router that is switching over from a parallel network configuration and searching for a parent node device to connect with in order to join the tree network.
Referring back to
In some embodiments, subsequent to step 406, the example method proceeds to step 408, where the computing device generates a beacon response based on the available capability. The beacon response may comprise a message including an indication that the computing device has available capability or a value of the available capability. In some embodiments, subsequent to step 408, the example method proceeds to step 410, where the computing device transmits the beacon response to the broadcasting device.
Referring back to
In some embodiments, subsequent to step 412, if a joining request is received from the broadcasting device, the example method proceeds to step 414, where the computing device establishes the broadcasting device as a child node device.
Referring back to
In
In some embodiments, subsequent to step 502, the example method proceeds to step 504, where one or more beacon responses are received by the computing device. A beacon response may comprise a message including an indication that a given device in receipt of the beacon request has available capability. The computing device may receive a beacon response from any beacon responding device within transmission range of the computing device (e.g., a gateway, a router connected to a gateway, or a router connected to one or more additional routers that are connected to a gateway) and having capability to add the computing device as a child node device. For example, referring to
In some embodiments, subsequent to step 504, the example method proceeds to step 506, where the computing device determines which of beacon responding devices, corresponding to the one or more beacon responses, to request joining based on one or more criteria. The one or more criteria may include minimum number of hops, best received signal strength indicator (RSSI), and signal noise ratio (SNR). According to various embodiments, the minimum number of hops may be given high priority.
In some embodiments, subsequent to step 506, the example method proceeds to step 508, where the computing device transmits a joining request to a given beacon responding device based on the determination. The joining request may comprise a request to connect with the beacon responding device to join the tree network. That is, the joining request may be representative of a selection of the given beacon responding device as a parent node device. Beacon responses from beacon responding devices not requested for joining may be ignored and not selected for connection.
In some embodiments, subsequent to step 508, the example method proceeds to step 510, where the computing device receives a join confirmation from the given beacon responding device. In certain embodiments, the computing device may resend the joining request to the given beacon responding device if a join confirmation has not been received from the given beacon responding device within a given period of time. According to another embodiment, the computing device may return to step 506 if a join confirmation has not been received from the given beacon responding device after resending of the joining request to the given beacon responding device.
The join confirmation may comprise a message that confirms a connection to the tree network via a connection between the computing device and the given beacon responding device. The join confirmation may include the assigned network address and a capability value representative of capability that is distributed from the given beacon responding device (parent node device) to the computing device. The capability value may be allocated to the computing device, which may determine whether the computing device is able to establish a connection with a child node device as a parent node device. Referring to
In some embodiments, subsequent to step 510, the example method proceeds to step 512, where the computing device records the MAC address and the network address of the given beacon responding device for association as a parent node device based on the join confirmation. For example, the computing device, now a child node device to the given beacon responding device serving as the parent node device, may use the MAC address and the network address of the given beacon responding device for communication and routing with the given beacon responding device. Referring to
In
At step 602, the computing device monitors for a beacon request broadcast. The beacon request may comprise a request, from a broadcasting device, for devices with available capability to connect with the broadcasting device. Monitoring for the beacon request broadcast may comprise detecting a beacon request broadcast from a broadcasting device. A beacon request may be broadcasted from, for example, either a gas detection device or a router that is switching over from a parallel network configuration and searching for a parent node device to connect with in order to join the tree network.
Referring back to
In some embodiments, subsequent to step 604, the example method proceeds to step 606, where the computing device generates a beacon response based on the available capability. The beacon response may comprise a message including an indication that the computing device has available capability or a value of the available capability. In some embodiments, subsequent to step 606, the example method proceeds to step 608, where the computing device transmits the beacon response to the broadcasting device.
Referring back to
In certain embodiments, the broadcasting device may be given a predetermined amount of time to respond. In some embodiments, subsequent to step 610, if a joining request is not received from the broadcasting device, the example method proceeds to step 602, where the computing device continues to monitor for additional beacon request broadcasts. According to another embodiment, the computing device may proceed to monitor for other beacon request broadcasts without determining whether a joining request has been received from the broadcasting device. That is, the computing device may advertise availability and fulfill joining requests on a first-come-first-served basis regardless of the timing in which beacon responses were transmitted by the computing device.
In some embodiments, subsequent to step 610, if a joining request is received from the broadcasting device, the example method proceeds to step 612, where the computing device establishes the broadcasting device as a child node device. Establishing the broadcasting device as a child node device may include allocating the computing device's capability to the child node device, assigning a network address to the child node device, and recording a media access control (MAC) address of the broadcasting device as a MAC address of the child node device.
Referring back to
Data from a given node may be transmitted to a destination node. Frames may be transmitted between nodes of tree network 1100 to facilitate the data transmission. A frame may comprise a data transmission unit including control information and a data payload. In some embodiments, the given node may need to forward a frame to one or more intermediate nodes in order to send data to a destination node.
Node 1102 may communicate data to node 1110 by transmitting a frame through nodes 1104, 1106, and 1108. The node 1102 generates a frame 1202A. Frame 1202A includes a “SRC” value of ‘4’ (corresponding to node 1110) and a “Des” value of ‘0’ for “NWK” (corresponding to node 1102. The “Des” value for “NWK” may be used by a receiving node of frame 1202A to determine a next node to transmit the frame 1202A in order to reach a destination node having a “NWK” value equal to the “Des” value (e.g., node 1110 having a “NWK” value of ‘0’). The “SRC” value for “NWK” may be used by the destination node (node 1110) of the frame 1202A to identify node 1102 (having a “NWK” value of 4) as the source of the frame 1202A. Frame 1202A also includes a “SRC” value of ‘4’ and a “Des” value of ‘3’ for “MAC” corresponding to a transmission of the frame 1202A from node 1102 (having a “MAC” of ‘4’) to node 1104 (having a “MAC” of ‘3’). Node 1102 transmits frame 1202A to node 1104.
Node 1104 receives the frame 1202A and identifies ‘0’ as the “Des” value for “NWK.” Based on the identification, node 1104 modifies frame 1202A into frame 1202B by changing the “SRC” of the “MAC” to ‘3’ (associated with the current node 1104) and “Des” of the “MAC” to ‘2’ (associated with node 1106) for a next hop to reach node 1110. Frame 1202B is subsequently transmitted to node 1106.
Node 1106 receives the frame 1202B and identifies ‘0’ as the “Des” value for “NWK.” Based on the identification, node 1106 modifies frame 1202B into frame 1202C by changing the “SRC” of the “MAC” to ‘2’ (associated with the current node 1106) and “Des” of the “MAC” to 1′ (associated with node 1108) for a next hop to reach node 1110. Frame 1202C is subsequently transmitted to node 1108.
Node 1108 receives the frame 1202C and identifies ‘0’ as the “Des” value for “NWK.” Based on the identification, node 1108 modifies frame 1202C into frame 1202D by changing the “SRC” of the “MAC” to ‘1’ (associated with the current node 1108) and “Des” of the “MAC” to ‘0’ (associated with node 1110) which is the destination node. Frame 1202D is subsequently transmitted to node 1110.
When a node receives a frame not directly from its child node, it may record the “SRC” value of “NWK” as a branch of a node corresponding to the “SRC” value of “MAC” from the frame. For example, node 1110 may record NWK ‘4’ as node 1108's branch, node 1108 may record NWK ‘4’ as node 1106's branch, and node 1106 may record NWK ‘4’ as node's 1104 branch. The recorded branches can used for downstream frame routing.
Node 1108 receives the frame 1302A and may determine that “Des” value of ‘4’ for “NWK” is a branch of node 1106 and assigns “Des” value of ‘2’ to “MAC” and creates frame 1302B. Node 1108 transmits frame 1302B to node 1106.
Node 1106 receives the frame 1302B and may determine that “Des” value of ‘4’ for “NWK” is a branch of node 1104 and assigns “Des” value of ‘3’ to “MAC” and creates frame 1302C. Node 1106 transmits frame 1302C to node 1104.
Node 1104 receives the frame 1302C and may determine that “Des” value of ‘4’ for “NWK” is a child node and assigns “Des” value of ‘4’ to “MAC” and creates frame 1302D. Node 1104 transmits frame 1302D to node 1102.
In
In some embodiments, subsequent to step 1602, the example method proceeds to step 1604, where the computing device determines whether a given broadcasted frame is duplicative. Determining whether the frame is duplicative may include comparing control information and data payload of the given broadcasted frame with previous frames received by the computing device. In some embodiments, if the frame is duplicative, the computing device monitors for other frame broadcasts at step 1602. Non-duplicative frames may be stored or processed by the computing device according to application-specific functions that may be executed by the computing device. For example, data payload from the frame may be accessed and rendered for display or used to generate alarms in gas-detection applications.
In some embodiments, subsequent to step 1604, if the frame is not duplicative, the example method proceeds to step 1606, where the computing device determines whether the amount of hops associated with the frame is greater than ‘0’. The amount of hops may be included in each frame and reduced by ‘1’ after each relay of the frame to another device. In some embodiments, if the amount of hops is not greater than ‘0’, the computing device monitors for other frame broadcasts at step 1602. In some embodiments, subsequent to step 1606, if the amount of hops is greater than ‘0’, the example method proceeds to step 1608, where the computing device broadcasts the frame to nearby devices.
For example, a frame from a device or router can be broadcasted and relayed to other nearby devices or routers. In particular, a given device or router may originate a frame and set a maximum number of hops the frame can be relayed. Every time the frame is relayed, the number of allowed hops for the frame may be subtracted by ‘1’. The frame may continue to be relayed until the number of allowed hops associated with the frame is exhausted (e.g., hops=‘0’). Routers may also filter duplicated frames. For example, router 1704 receives a frame broadcasted from device 1702 and also receives the same frame relayed from router 1706. In this case, router 1704 filters out the duplicative frame that has made the most hops or the least amount of allowed hops (i.e., the frame received from router 1706). Similarly, a frame transmitted from router 1708 to 1710 with hops=‘1’ is duplicative of a frame transmitted from 1704 with hops=‘2’, and a frame transmitted from router 1712 to router 1714 with hops=‘0’ is duplicative of a frame transmitted from router 1708 to router 1714 with hops=‘1’. The duplicative frames including the least amount of allowed hops may be filtered out. Once the frame has reached router 1714, the amount of hops may be reduced to ‘0’ and the frame is no longer relayed from router 1714.
As described above and as will be appreciated based on this disclosure, embodiments of the present disclosure may comprise various means including entirely of hardware or any combination of software and hardware. Furthermore, embodiments may take the form of a computer program product on at least one non-transitory computer-readable storage medium having computer-readable program instructions (e.g., computer software) embodied in the storage medium. Similarly, embodiments may take the form of a computer program code stored on at least one non-transitory computer-readable storage medium. Any suitable computer-readable storage medium may be utilized including non-transitory hard disks, CD-ROMs, flash memory, optical storage devices, or magnetic storage devices.
It is to be understood that the disclosure is not to be limited to the specific embodiments disclosed, and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation, unless described otherwise.
Number | Date | Country | Kind |
---|---|---|---|
202210876504.4 | Jul 2022 | CN | national |