This non-provisional patent application claims priority to Great Britain applications: GB 1412714.6, filed Jul. 17, 2014; GB 1405790.5, filed Mar. 31, 2014; GB 1403314.6, filed Feb. 25, 2014; GB 1405785.5, filed Mar. 31, 2014; GB 1405786.3, filed Mar. 31, 2014; GB 1405789.7, filed Mar. 31, 2014; GB 1403312.0, filed Feb. 25, 2014; GB 1405791.3, filed Mar. 31, 2014; GB 1405797.0, filed Mar. 31, 2014.
This invention relates to a communication device and method for profiling the performance of a communication network.
There is an increasing need for a variety of objects to be equipped with the ability to send and receive messages. In the case of a home, for example, it may be desired that the objects in a room be capable of communicating with each other, and also potentially being able to communicate with the internet or cloud. For example, the room may have a light, light switch, window and door. It may be desired that each of these objects be able to communicate with the others so that the home can be automated. Thus certain actions may be undertaken by one or more of these objects in response to other objects communicating that they are in a particular state. A basic example is adjusting the heating within a room when the light is switched on, to keep the room at a comfortable temperature. Similar situations are envisaged in a commercial environment.
To enable objects to communicate, they may be equipped with a device that can communicate with similar devices attached to other objects. They may also communicate with similar devices that are not associated with or attached to other objects but that can communicate with those devices that are associated with or attached to other objects. For this type of communication to be useful, a large number of these devices may be able to communicate with each other. The result can be a network of devices and so this network can potentially have a large number of objects.
One suitable method of communication for such a network is to use a mesh networking protocol. This permits a first device to send a message to a second device, which may be outside the communication range of the first device, by transmitting the message via one or more intermediate devices. The objects that are attached to, or associated with, those devices may therefore be able to send and receive messages from one object to another via intermediate objects and/or the other devices that are not associated with an object.
Many mesh networks send data using complex routing tables. The routing tables store routes from one network device to another so that messages can be propagated from source to destination via a series of hops. The topology of the network generally has to be known in order that routes between the various devices can be determined and stored. An alternative is flood routing. In this method messages do not travel from one device to another via a predefined route. Instead messages are broadcast and any device in range that receives a message retransmits it. A message thus propagates its way through the network, potentially reaching its destination via number of different routes. Flood routing is very simple to implement and although it may appear inefficient has a number of advantages, particularly for ad hoc networks that may change their topology on a random basis.
The performance of a mesh network that uses flood routing can be dependent on the connections between the devices in the network and the topology of those connections between the network devices. The performance of the mesh network may be dependent on the connectivity between devices, the density of the devices within the network, the topology arrangement of the devices and/or the transmit and receive schedule of each of the devices. The devices may be located in the network in a way which may not be optimal for the performance of the mesh network. For instance, devices positioned in a home may be positioned according to the function of the object that the device is associated with. For instance, a door may be located in an opening to a room and a light may be located on the ceiling in the middle of a room. A position that is based on the function of the object may be sub-optimal from the perspective of the operation of a mesh network. For example, that device may only be able to communicate with a small number of other devices that are at the edge of the transmit and/or receive ranges of those devices. One optimal position for the device, from the perspective of the operation of the mesh network, may be a position that enables the device to communicate with many other devices with good transmit/receive signal strength. Such a position may enable messages sent via flood routing to arrive at that device via multiple routes. This may increase the reliability, and also the performance, of the mesh network. It may therefore be desirable to view and optimize the mesh network as a whole to enable reliable communication between each of the mesh network nodes.
As many of these objects may not have access to, or require power themselves, for example, packages sitting on a shelf, a window or a door, there may be a desire for the devices that communicate on the objects' behalf to be battery-powered devices that consume only a small amount of power. It may also be desirable that these devices be able to communicate wirelessly with each other so that there is no need for cables running between them. This can increase the need to optimise the mesh network.
Due to the distributed nature of a mesh network with multiple separate independent devices, it can be difficult to acquire the data needed to understand how the mesh network may be configured to enable reliable communication. Therefore, there is a need to improve the analysis of mesh networks as a system to be able to optimise communications within the mesh network.
According to a first aspect of the present invention there is provided an analysis device for analysing a communication network comprising a plurality of communication devices, the communication network being configured such that transport of packets through the network is provided by the communication devices in the network listening for and relaying packets, the analysis device being configured to: receive a traffic statistics log from a profile device, the traffic statistics log comprising a traffic statistics message from each of the plurality of communication devices, each traffic statistics message comprising data defining at least one reception property of the reception of at least one probe message at the respective communication device; and identify, based on the at least one reception property, at least one restriction point communication device from the plurality of communication devices that is a restriction point in the network.
The analysis device may be configured to: calculate a network reception property for each different reception property received from the plurality of communication devices; and identify at least one restriction point communication device that is a restriction point by selecting the at least one communication device from the plurality of communication devices that have at least one reception property that deviates from the at least one network reception property by a predetermined threshold value. The analysis device may be configured to: calculate each network reception property by taking the average of the respective reception property received from each communication device; and identify at least one restriction point communication device that is a restriction point by selecting the communication devices that deviate from that average by a predetermined threshold value.
The analysis device may be configured to: send a configuration message to each of the at least one restriction point communication device, the configuration message comprising data instructing the restriction point communication device to increase that communication device's duty cycle. The restriction point communication device may listen for messages only a proportion of the time and the instruction to increase that device's duty cycle comprises an instruction to listen for a larger proportion of the time.
The analysis device may be configured to: generate a recommendation message comprising data containing a recommendation to install another communication device near each restriction point communication device; and send the recommendation message to a presentation device for display to a user of the mesh network. The at least one reception property may comprise at least one of: the number of unique messages received at the respective communication device, the number of repeated messages received at the respective communication device, the number of unknown network messages received at the respective communication device, and the average received signal strength of the messages received at the respective communication device.
The traffic statistics log may comprise a reliability property for the communication network which is based on the number of probe messages that the profile device receives a response to; and the analysis device may be configured to identify at least one restriction point communication device based on the reliability property. The traffic statistics log may comprise a delay property for the communication network which is based on the difference between receive times at which the probe messages are received by the respective communication devices and send times at which the probe messages are sent by the profile device; and the analysis device may be configured to identify at least one restriction point based on the delay property. The traffic statistics log may comprise values of the lifetime field of the probe messages as received by an addressed communication device; and the analysis device may be configured to identify at least one restriction point based on the averaged value of the lifetime fields.
According to a second aspect of the present invention there is provided a communication device capable of communicating over a communication network comprising a plurality of communication devices, the communication network being configured such that transport of packets through the network is provided by the communication devices in the network listening for and relaying packets, the communication device being configured to: send a plurality of probe messages for transmission through the communication network; send a traffic statistic request message to each of the plurality of communication devices; and receive a traffic statistics message from each of the plurality of communication devices, each traffic statistics message comprising data defining at least one reception property of the reception of at least one of the probe messages at the respective communication device.
The communication device may be configured to: form a traffic statistics log message the traffic statistics log comprising the traffic statistics messages from each of the plurality of communication devices; and send the traffic statistics log message to an analysis device. The communication device may be configured to: form the plurality of probe messages so that each probe message comprises data containing a unique identifier that identifies that particular probe message separate from the others of the plurality of probe messages. The communication device may be configured to: form the plurality of probe messages so that the unique identifier is an incremental count which increases sequentially in turn for each sent probe message.
The communication device may be configured to: form the plurality of probe messages so that each probe message comprises data containing an address field specifying the address of at least one communication device that the probe message is addressed to, and the address field contains an address of at least one of the plurality of communication devices; receive a probe message response for at least one of the plurality of probe messages from the at least one addressed communication device, each probe message response comprising data containing the unique identifier of the probe message that the probe message response is a response to; and calculate a reliability property for the communication network based on the number of distinct unique identifiers that are present in the probe message responses. The communication device may be configured to: form the plurality of probe messages so that each probe message comprises data containing a sent time at which that particular probe message is sent by the communication device.
The communication device may be configured to: form the plurality of probe messages so that each probe message comprises data containing an address field specifying the address of at least one communication device that the probe message is addressed to, and the address field contains an address of at least one of the plurality of communication devices; receive a probe message response for at least one of the plurality of probe messages from the at least one addressed communication device, each probe message response comprising data containing a receive time at which that particular probe message is received by the communication device; and calculate a delay property for the communication network based on the difference between the receive time and the sent time of the probe messages. The communication device may be configured to: form the plurality of probe messages so that each probe message comprises data containing a lifetime field specifying the retransmission lifetime of the message; and each probe message response comprises data containing the value of the lifetime field of that particular probe message as received by the addressed communication device.
The communication device may be configured to: form the plurality of probe messages so that each probe message comprises data containing an address field specifying the address of the communication device that the probe message is addressed to, and the address field may contain a communication device address that is not present in the communication network.
The communication device may be configured to: prior to sending the plurality of probe messages, send a traffic counter reset message to each of the plurality of communication devices, wherein the traffic counter reset message may instruct each of the plurality of communication devices to reset respective traffic counters. The communication device may be configured to: send one traffic counter reset message that instructs all of the plurality of communication devices to reset respective traffic counters. The plurality of probe messages may be ping request messages.
According to a third aspect of the present invention there is provided a method for identifying restriction point devices within a communication network comprising a plurality of communication devices, the communication network being configured such that transport of packets through the network is provided by the communication devices in the network listening for and relaying packets, the method comprising: sending a plurality of probe messages for transmission through the communication network; sending a traffic statistic request message to each of the plurality of communication devices; receiving a traffic statistics message from each of the plurality of communication devices, each traffic statistics message comprising data defining at least one reception property of the reception of at least one of the probe messages at the respective communication device; and identifying, based on the at least one reception property, at least one restriction point communication device from the plurality of communication devices that is a restriction point in the network.
The method may comprise: calculating a network reception property for each different reception property received from the plurality of communication devices; and identifying at least one restriction point communication device that is a restriction point by selecting the at least one communication device from the plurality of communication devices that have at least one reception property that deviates from the at least one network reception property by a predetermined threshold value. The method may comprise: calculating each network reception property by taking the average of the respective reception property received from each communication device; and identifying at least one restriction point communication device that is a restriction point by selecting the communication devices that deviate from that average by a predetermined threshold value. The method may comprise: sending a configuration message to each of the at least one restriction point communication device, the configuration message may comprise data instructing the restriction point communication device to increase that communication device's duty cycle. The restriction point communication device may listen for messages only a proportion of the time and the instruction to increase that device's duty cycle may comprise an instruction to listen for a larger proportion of the time.
The method may comprise: generating a recommendation message comprising data containing a recommendation to install another communication device near each restriction point communication device; and sending the recommendation message to a presentation device for display to a user of the mesh network. The at least one reception property may comprise at least one of: the number of unique messages received at the respective communication device, the number of repeated messages received at the respective communication device, the number of unknown network messages received at the respective communication device, and the average received signal strength of the messages received at the respective communication device.
The method may comprise: forming the plurality of probe messages so that each probe message comprises data containing a unique identifier that identifies that particular probe message separate from the others of the plurality of probe messages. The method may comprise: forming the plurality of probe messages so that the unique identifier is an incremental count which increases sequentially in turn for each sent probe message. The method may comprise: forming the plurality of probe messages so that each probe message comprises data containing an address field specifying the address of at least one communication device that the probe message is addressed to, and the address field contains an address of at least one of the plurality of communication devices; receiving a probe message response for at least one of the plurality of probe messages from the at least one addressed communication device, each probe message response comprising data containing the unique identifier of the probe message that the probe message response is a response to; and calculating a reliability property for the communication network based on the number of distinct unique identifiers that are present in the probe message responses; The method comprise: identifying at least one restriction point communication device based on the reliability property.
The method may comprise: forming the plurality of probe messages so that each probe message comprises data containing a sent time at which that particular probe message is sent by the communication device. The method may comprise: forming the plurality of probe messages so that each probe message comprises data containing an address field specifying the address of at least one communication device that the probe message is addressed to, and the address field may contain an address of at least one of the plurality of communication devices; receiving a probe message response for at least one of the plurality of probe messages from the at least one addressed communication device, each probe message response comprising data containing a receive time at which that particular probe message is received by the communication device; calculating a delay property for the communication network based on the difference between the receive time and the sent time of the probe messages. The method may comprise: identifying at least one restriction point communication device based on the delay property.
The method may comprise: forming the plurality of probe messages so that each probe message comprises data containing a lifetime field specifying the retransmission lifetime of the message; and each probe message response comprises data containing the value of the lifetime field of that particular probe message as received by the addressed communication device; and identifying at least one restriction point based on the averaged value of the lifetime field as received by the addressed communication device.
The method may comprise: forming the plurality of probe messages so that each probe message comprises data containing an address field specifying the address of the communication device that the probe message is addressed to, and the address field may contain a communication device address that is not present in the communication network. The method may comprise: prior to sending the plurality of probe messages, sending a traffic counter reset message to each of the plurality of communication devices, wherein the traffic counter reset message instructs each of the plurality of communication devices to reset respective traffic counters.
The method may comprise: sending one traffic counter reset message that instructs all of the plurality of communication devices to reset respective traffic counters. The plurality of probe messages may be ping request messages.
The present invention will now be described by way of example with reference to the accompanying drawings. In the drawings:
The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of a particular application. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art.
The general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
The present invention relates to an analysis device that is capable of analysing a communication network and determining where within the network optimizations may be required to improve the performance of the communication network. The analysis device may be known as a collector device and/or a concentrator device. The present invention also relates to a profile device that is capable of profiling a communication network for its performance characteristics. The communication devices within the communication network may be a communication device that can transmit and receive according to a mesh network protocol. Accordingly the communication devices may be part of the mesh network. Within the mesh network, packets may be transferred between devices that are part of the mesh network by the communication devices that form the communication network listening for and relaying packets that the communication devices have received. The communication device may be a wireless communication device.
The profiling device may profile the communication network by sending out a plurality of probe messages in to the network. The other communication devices within the network can log the reception of those messages and properties associated with that reception. This log can then be sent back to the communication device, at the request of the communication device. This log of information may be sent to the analysis device for analysis to determine where in the network the performance of the network may be improved by altering the network properties of an individual communication device, and/or by installing another communication device in the vicinity of another individual communication device.
The profiling device may also use at least one of the other communication devices to help profile the network by instructing that other communication device to respond to the probe messages thus increasing the number of probe messages and also potentially increasing the number of routes taken by the probe messages through the network.
The communication device 10 also comprises a processor 40 that is capable of executing a set of program instructions that are stored in a memory 50. The memory 50 can be a non-volatile memory that stores in non-transitory form program code that is executable by the processor 40 to cause the communication device to communicate according to the communications protocol. The processor 40 can be a microprocessor. The memory 50 may be part of processor 40 or connected to processor 40 via a bus. Whilst the processor 40 and transceiver 30 are shown in
The communication device 10 may also comprise a power source 60. This power source may be a battery. Alternatively, the communication device 10 may not comprise a power source and be connected to an external power source such as an electrical outlet.
The communication device 10 may also comprise an interface 70 for sending and receiving data that is to be sent using the communications protocol. This interface 70 may be a wired or wireless link to sensors for sensing external events, such as the operation of a light switch in the home environment described above, or a link to appliances for issuing control signals to those appliances, such as the light in the home environment described above.
The structures shown in
The communication devices described above can form part of a communication network that is configured such that transport of packets through the network is provided by a plurality of communication devices such as those described in
The house contains other items of equipment that contain other wireless communication devices. For example, there is a tablet computer 210 which contains a wireless communication device 213, and a mobile phone 215 which contains a wireless communication device 216. There is also a sensor 220 for detecting the open/closed state of window 218, which contains communication device 219. Computer 210, phone 215 and sensor 220 are powered by batteries 214, 217 and 221 respectively. The house may also contain an analysis device 222 for performing analysis on gathered network information. The analysis device 222 may be a communication device as described herein. Alternatively the analysis device 222 may be remote from the house and connected to the house via a network, such as the internet. The analysis device 222 may be part of a cloud network. The analysis device 222 may be part of one of the other communication devices referred to herein.
Wireless communication devices 206 to 209, 213, 216 and 219 operate according to the same wireless communication protocol. That could be a relatively short-range protocol. For example the effective range of each device could be less than 25 m. That characteristic can permit the devices to use less power for transmitting and/or receiving than would be expected in a longer range protocol. The protocol could be one that imposes no common time-base at or below the transport level, or below the application or presentation levels. In other words, the devices in the network operate asynchronously of each other. That characteristic can reduce the devices' power consumption by reducing their need for accurate clocks running continuously. In one example, the devices could operate according to the Bluetooth protocol, specifically the Bluetooth Low Energy protocol. The devices could use other protocols, for instance IEEE 802.11.
Devices 206 to 209 are configured cooperatively in order that the light fittings 202 to 205 know to respond to signals from the light switch 201. This may be done by the devices 206 to 209 storing a common network key in their respective memories. The network key may be negotiated by the devices 206 to 209 in the network. The network key may be stored in the device 206 to 209 by means of another device such as mobile phone 215 communicating with the wireless device of the light switch and/or light fittings to communicate with the wireless devices of the light fittings to cause them to store the network key. The network key may be used to sign all packets sent over the network.
The communication devices in
A connection between the communication device and its associated consumer may be wired or wireless and may be performed by the interface 70 of communication devices 10, 90. The communication device may be contained within the same housing as the consumer. In many implementations the consumer device might be fully integrated with the consumer; they might even share circuitry. Often the communication device may be implemented by a chip within the consumer. An example of this is communication device 216 within phone 215. In other implementations the communication device and the consumer may be separate devices that are connected together. For example, the communication device might be a BLE tag connected to a PC.
For the purposes of this document, the communication device is considered to be the combination of hardware and/or software that implements the protocol governing the network, thereby implementing the packet transport that enables the consumer to communicate over the network.
Each communication device may be capable of acting as a relay in the network. An example of this is shown in
As discussed above, in order to avoid packets being bounced around the network indefinitely, each packet suitably includes a lifetime field that defines the lifetime of the packet within the network. A communication device that receives the packet suitably checks whether the lifetime field is equal to a threshold value before retransmitting the packet. If the lifetime value is equal to the threshold, the communication device does not retransmit the packet. Otherwise the communication device does retransmit the packet. In one example the lifetime field is a Time-To-Live (TTL) field. This is a value in the packet that is suitably decremented each time that the packet is retransmitted. In one example the TTL value is decremented by one at each retransmission, with each communication device that receives the packets retransmitting it until the TTL value is decremented to zero. In another example the lifetime field is a Max Hop Count (MHC) field. In this example each communication device stores a threshold MHC value, which is a positive, non-zero number. The MHC value in each packet may be incremented by one each time that the packet is retransmitted, with each communication device that receives the packets retransmitting it until the MHC value reaches the device's stored MHC threshold.
The network may also be configured to implement flood routing as a way of propagating messages within the mesh network, which is well suited to ad hoc networks. The phone 215 and the tablet computer 210 are both portable devices that change location within the network as a user picks them up and moves them. They may also occasionally leave the network and then reappear some time later. For example, when a user takes them out of range of the network by taking them out of the house and later returns them to the house. The network's topology is thus subject to random alteration.
It can be appreciated from
The performance and reliability of the mesh network as a whole may then become dependent on these bridge communication devices, such as window communication device 219. This is because if the bridge communication device does not forward or retransmit packets originating from the network then the communication route between the two or more networks that the bridge communication device bridges may be lost. This may only be a temporary loss of communication, but in such a situation there may at a minimum be packet loss or a loss of connection entirely.
Such a situation may arise, where a device does not retransmit packets, if constant listening is not able to be performed by all of the devices in the mesh network. It may also arise when a device does not receive the signal from another device with sufficient power to be able to decode the information contained in that signal.
Constant listening can be an expensive operation and should generally be avoided in contexts where power availability is an issue. Although switch communication device 212 and window communication device 219 are capable as acting as relays, they are both battery powered and should reduce power consumption where possible. Therefore, one or both of those devices may deliberately reduce their receive period/duration with the aim of conserving battery power. This manages the amount of energy used for receiving information.
In the case of
In
As is shown in the situation shown in
There are a number of ways in which the mesh network may be profiled to establish the performance of the mesh network. Some examples are described below. These examples either make use of a single mesh device as the profiling device which sends test packets in to the network or use several mesh devices that work collaboratively to send test packets in to the network. In the case of at least two mesh devices working together, a first communication device sends packets in to the network which are addressed for the at least one other communication device in the network. The other communication device can then respond with messages addressed to the first communication device. Statistics about the mesh network can also be gathered from the rest of the communication devices present in the mesh network. The profiling device itself can then analyse the collected data concerning the communications through the network, in which case it also performs the role of the analysis device 222. Alternatively, the profiling device can send a log message to the analysis device 222 which contains the collected data concerning the communications through the network. The analysis device 222 can then analyse the data contained in this log message.
A communication device 400 that is acting as the profiling device may initially send a DIAGNOSTIC_RESET message 401 in to the communication network. The diagnostic reset message 401 may not be addressed to any particular communication device within the network. This is because it may need to be acted upon by all communication devices, network nodes 410, in the network. This diagnostic rest message 401 causes the communication devices operating in the communication network to reset one or more counters within each communication device. These counters may be stored in a memory such as memory 50 shown in
It will be appreciated that the diagnostic reset message referred to in this document may alternatively be described as a traffic counter reset message.
By resetting the counters prior to running any profile tests, the results that are generated can be known to relate to the period during which tests were run.
The diagnostic reset message 401 may be a short message that does no more than identify itself as a traffic counter reset message. For example, the message may contain data that comprises an opcode that is set to identify the message as a diagnostic message, and also as a reset sub-message within the diagnostic message type. The message may contain data that identifies the message as an instruction to reset the traffic counters within the network node 410.
The profile device 400 can then send out a predefined number (k) of PING_REQUEST messages 402, 403 in to the network. Each ping message 402, 403 can comprise a payload that may contain a unique identifier that identifies that particular ping message separate from the other of the predefined number of ping messages. The ping message unique identifier may be an incremental count that is incremented for each ping message that is sent. Each ping message 402, 403 therefore contains a different number in the incremental count field within the data defining the payload of the ping message. Each ping message can comprise a payload that may also contain a packet sent time. This sent time is a record of the time that the packet was sent by the profile device 400. It is the nature of the communication network that those ping request messages will be retransmitted by the network nodes until the lifetime value of that ping request message has reached the threshold value or the communication devices recognise the message as an “old” message that they have already seen, as described above. The ping request messages can therefore propagate through the communication network by at least most of the communication devices, the network nodes, listening for and retransmitting the packets.
It will be appreciated that the ping request messages may be alternatively be described as a probe message.
The predefined number may be 1000, 5000, 10000 or 20000. The predefined number may be determined in dependence on the number of network nodes present in the communication network. For instance, a higher predefined number may be chosen by the profiling device when more network nodes are present in the communication network.
The payload of the ping messages may be used by the network nodes 410 to calculate the packet loss over the test and the number of repeated messages that are received by the network nodes 410. The packet loss can be calculated by logging the ping message unique identifier for each of the ping messages that are received. Once all of the predefined number of ping messages have been sent, each network node 410 can search for unique identifiers that are missing from the unique identifier log. The number that are missing can be used to give the packet loss over the test. The number of repeated messages can be calculated by the network nodes 410 by summing the number of times a particular unique identifier has been received by that network node 410 during the test.
The ping request message 402, 403 may contain data that comprises an opcode that is set to identify the message as a ping message, and also as a ping request sub-message within the ping message type. The ping message 402, 403 may contain data that identifies the message as a request for a ping response that may be addressed to a particular communication device. The PING_REQ 402, 403 message may need to be addressed to a particular device to be compliant with the protocol that the communication network is compliant with. Alternatively, the protocol may define that, instead and/or as well as being capable of being address to a particular device, the ping message may be capable of being addressed to a group of particular devices. The group of particular devices may have a group identifier, group address, or group ID, associated with them and this group ID may be used in place of the device ID, or device address associated with a particular device.
In the case shown in
Once the predefined number of ping request messages (k) have been sent by the profile device 400, the profile device 400 can request that each of the network nodes 410 sends that network node's traffic statistics to the profile device 400. This can be achieved by the profile device 400 sending a DIAGNOSTIC_READ messages 404, 406 addressed to that particular node. The profile device 400 can send a separate diagnostic read message 404, 406 to each of the network nodes 410 in the communication network. The profile device 400 may send a diagnostic read message 404, 406 to a group of the network nodes 410 in the communication network that are part of that particular group and identified by a group address or group ID. The diagnostic read message 404, 406 requests that the network node sends the requesting device at least one of the traffic statistics that have been compiled by the network node 410.
The diagnostic read message 404, 406 may contain data that comprises an opcode that is set to identify the message as a diagnostic message, and also as a traffic statistics request sub-message within the diagnostic message type. The diagnostic read message 404, 406 may contain data that identifies the message as a request for traffic statistics that may be addressed to a particular device.
It will be appreciated that the diagnostic read message referred to in this document may alternatively described as a traffic statistic request message.
Each network node that receives a traffic statistic request message 404, 406, may send a message back to the requesting device, in this case the profile device 400, which contains the requested traffic statistics. The network node 410 forms and sends a DIAGNOSTIC_TRAFFIC_STATS message 405, 407 to the profile device 400. This diagnostic traffic statistics message 405 is addressed to the device that sent the diagnostic read message 404, 406. The payload of the traffic statistics message 404, 406 may include data that contains:
The diagnostic traffic statistics message 405, 407 may contain data that comprises an opcode that is set to identify the message as a diagnostic message, and also as a traffic statistics sub-message within the diagnostic message type. The diagnostic traffic statistics message 405, 407 may contain data that identifies the message as a containing traffic statistics that have been measured by the sending device.
Once all of the network nodes have been queried using the diagnostic traffic statistics read message 404, 406 and the network nodes have sent their responses then the profile device 400 may use these traffic statistics to calculate the congestion that is seen by each network node 410 in the communication network. The congestion at a particular node in the network may be determined by:
Alternatively, or as well as, the traffic statistics messages can be formed in to a traffic statistics log message. This log message may be sent to an analysis device 222 for further analysis to identify particular communication devices having particular properties using methods described below.
A communication device 500 that is acting as the profiling device may initially send a DIAGNOSTIC_RESET message 501 in to the communication network. This diagnostic reset message 501 is as described in relation to
The profile device 500 can then send out a predefined number (k) of ping request messages 502, 506 in to the network. The profile device 500 may send each ping request message in turn waiting for a response from the device that a ping response has been requested from before sending the next ping request message. The profile device 500 may alternatively send the next ping request message after a predefined timeout period if no response has been received within that timeout period. The PING_REQ 502, 506 message may need to be addressed to a particular device to be compliant with the protocol that the communication network is compliant with. In the case shown in
As shown in
The retransmitted ping request messages may eventually reach the response device 520 which is the device that the ping request message was addressed to. The response device may record the lifetime value of the ping request message as received at the response device. The lifetime value may be, as discussed above, a “time-to-live” value or a max hop count value. The response device may also record the RSSI of the ping request message as received at the response device 520. More generally, the response device may record the signal strength of the ping request message 502, 507. The response device 520 can, in response to the ping request message, form a PING_RESPONSE message 504, 508 and transmit this message for transmission through the communication network to the profile device 500. This ping response message 504, 508 is addressed to the device that originally sent the ping request message 503, 507. In this case, the ping response message 504, 508 may be addressed to the profile device 500. The payload of the ping response message 504, 508 may include data that contains one or more of:
The ping response messages 504, 508 are shown in
It will be appreciated that the ping response messages referred to in this document may alternatively be described as probe response messages and that references to a response device may be taken to include a group of response devices when the probe messages are addressed to more than one device.
The ping response message 504, 505, 508, 509 may contain data that comprises an opcode that is set to identify the message as a ping message, and also as a ping response sub-message within the ping message type. The ping message 504, 505, 508, 509 may contain data that identifies the message as a response to a ping request message that may be addressed to a particular communication device.
Once the response to the ping request message 502 has been received by the profile device 500, the profile device 500 can form the next ping request 506 and transmit it for transmission over the communication network to response device 520. Alternatively, if no response is received from the response device 520 within a predefined time period, a timeout period, then the profile device 500 can form the next ping request 506 and transmit it for transmission over the communication network to response device 520, on the basis that the previous ping request and/or response was lost in the network.
The profile device 500 may log the number of ping responses that it receives from the response device 520. The profile device 500 may log the number in a counter. That counter may be stored in a memory of the device. The profile device may alternatively log the number of dropped ping responses, i.e. those ping request messages that do not have a corresponding ping response message. The profile device 500 can determine whether the ping response message was received at the profile device 500 within a given time period, or timeout, of the ping request message being sent by the profile device 500.
Once all of the predetermined number of ping request messages (k) have been sent by the profile device 500, the profile device 500 can request that each of the network nodes 510 sends that network node's traffic statistics to the profile device 500. The network nodes 510 may include the response device 520 as it can also be a network node 510 within the communication network. This request is achieved using the diagnostic read messages discussed in relation to
If, and once, all of the network nodes have been queried using the diagnostic traffic statistics read message 511, 513 and the network nodes have sent their responses then the profile device 500 may use these traffic statistics as per the discussion in relation to
As theoretically twice as many messages have been sent through the network, i.e. both the ping request messages and the ping response messages, the test shown in
As described above, the profile device 500 may log either the number of ping requests that have successfully been responded to by the response device 520 or the number of ping requests that have not been responded to within a given time period. Based on the log, the profile device 500, or the analysis device 222, may calculate the reliability of the communication network as the ratio, or percentage, of messages for which a reply was successfully received. The profile device 500 may include this reliability in the traffic statistics log message that is sent to the analysis device 222.
As discussed above, each ping message 502, 506 that is sent by the profile device 500 can comprise a payload that may contain a unique identifier that identifies that particular ping message separate from the other of the predefined number of ping messages. The ping message unique identifier may be an incremental count that is incremented for each ping message that is sent. Each ping message can comprise a payload that may also contain a packet sent time. This sent time is a record of the time that the packet was sent by the profile device 500.
The ping response messages can comprise a payload that may contain a packet received time. The packet received time may also be known as the ping request received time. This packet received time is a record of the time that the particular ping request message packet, to which the particular ping response message is a response, was received by the response device 520. The profile device 500 may log the sent time, which is included in each particular ping request message, for each particular ping request message. When the profile device 500 receives the ping response messages that contain the packet receive time, the profile device 500 may log the received time against the identifier of the particular ping request message. At the end of the ping process, the profile device 500 may then calculate the difference between the sent time and the received time to calculate the delay, for that particular ping request message, caused by transmission through the communications network.
The profile device 500 may also log the time at which the ping response message is received by the profile device 500. The profile device 500 may calculate the difference between the receive time of the ping response message and the sent time of the ping request message to generate the round-trip time through the communication network.
The calculated delay for each successful ping request may be averaged to generate the average delay over the whole test. The minimum and maximum values may also be selected to generate the maximum and minimum delays through the network. The maximum and/or minimum delays could be compared to the lifetime value included in the particular ping response message. This comparison could show whether the difference in delay is caused by a longer path through the network, i.e. more retransmissions, or slow retransmission of the message at each hop in the mesh network, i.e. a low number of retransmissions but a higher time between each retransmission. This calculation and comparison may be undertaken by either analysis device 222 or profile device 500.
The above has described a number of ways in which the mesh network may be profiled to establish the performance of the mesh network. These tests may generate data concerning:
The profile device 400, 500 may first run the test shown in
The analysis device, or profile device 400, 500, may identify network nodes 410, 510 that have a particular set of message reception characteristics. These message reception characteristics may comprise:
The profile device 400, 500 may then run at least one of the tests shown in
The results of these tests may be used to identify characteristics of the underlying mesh network such as bottlenecks, articulation points, and/or bridges between different parts of the mesh network. As discussed above an articulation point and/or a bridge may be a mesh device that links two parts of the mesh network together. As an example, it follows therefore that such a device may be a bottleneck within the network as that one device can be responsible for retransmission of message between the two parts of the mesh network. Such an identification may be undertaken by the analysis device 222, or alternatively by profile device 400, 500.
The results of these tests may be used to identify network nodes that are operating sub-optimally. The results of these tests may also identify network nodes in the mesh network that are operating sub-optimally within the mesh network, for instance because they are located at the edge of the transmit region of the other network nodes. The identification of these network nodes can then mean that recommendations can be compiled as to how the performance of the mesh network can be improved.
The bottlenecks, articulation points and/or bridges can be individual network nodes within the mesh network that link different portions of the mesh network together. For instance, as the window communication device 219 can do in
A mesh node that is functioning as a restriction point may comprise one or more of the following characteristics:
Once a mesh node has been identified as a restriction point this information can be presented to the user, either directly by the profile device 400, 500 or by sending information to another device for presentation to the user, with a recommendation that another mesh communication device be installed near the identified device.
The analysis device 222, or profile device 400, 500, may also send an instruction to the communication device that has been identified as a restriction point to increase its listening duty cycle so that it is listening for messages to retransmit for a longer proportion of the time. This instruction may be in the form of a configuration message that comprises a payload that contains data containing an instruction to the identified communication device to increase the device's duty cycle. The duty cycle update message may be addressed to the particular identified communication device.
A mesh node that is operating sub-optimally because it is operating on the edge of the mesh network may comprise one or more of the following characteristics:
Once a mesh node has been identified as a peripheral network node this information can be presented to the user, either directly by the profile device 400, 500 or by sending information to another device for presentation to the user, with a recommendation that another mesh communication device be installed between the identified device and the rest of the mesh network. The presentation device may be the profile device 400, 500 itself or another device. The presentation device may be a device such as tablet computer 210.
The applicant hereby discloses in isolation each individual feature described herein and any combination of two or more such features, to the extent that such features or combinations are capable of being carried out based on the present specification as a whole in the light of the common general knowledge of a person skilled in the art, irrespective of whether such features or combinations of features solve any problems disclosed herein, and without limitation to the scope of the claims. The applicant indicates that aspects of the present invention may consist of any such individual feature or combination of features. In view of the foregoing description it will be evident to a person skilled in the art that various modifications may be made within the scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
1403312.0 | Feb 2014 | GB | national |
1403314.6 | Feb 2014 | GB | national |
1405785.5 | Mar 2014 | GB | national |
1405786.3 | Mar 2014 | GB | national |
1405789.7 | Mar 2014 | GB | national |
1405790.5 | Mar 2014 | GB | national |
1405791.3 | Mar 2014 | GB | national |
1405797.0 | Mar 2014 | GB | national |
1412714.6 | Jul 2014 | GB | national |