U.S. patent application number 14/505466 was filed with the patent office on 2015-08-27 for mesh profiling.
This patent application is currently assigned to Cambridge Silicon Radio Limited. The applicant listed for this patent is Cambridge Silicon Radio Limited. Invention is credited to Nicolas Guy Albert Graube, Robin Heydon, Nicholas John Jones, Clive Thomson, Hugo Mark Tyson.
Application Number | 20150244623 14/505466 |
Document ID | / |
Family ID | 50737759 |
Filed Date | 2015-08-27 |
United States Patent
Application |
20150244623 |
Kind Code |
A1 |
Heydon; Robin ; et
al. |
August 27, 2015 |
MESH PROFILING
Abstract
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.
Inventors: |
Heydon; Robin; (Cottenham,
GB) ; Jones; Nicholas John; (Cambridge, GB) ;
Thomson; Clive; (Cottenham, GB) ; Tyson; Hugo
Mark; (Cambridge, GB) ; Graube; Nicolas Guy
Albert; (Barrington, GB) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Cambridge Silicon Radio Limited |
Cambridge |
|
GB |
|
|
Assignee: |
Cambridge Silicon Radio
Limited
Cambridge
GB
|
Family ID: |
50737759 |
Appl. No.: |
14/505466 |
Filed: |
October 2, 2014 |
Current U.S.
Class: |
370/235 ;
370/252 |
Current CPC
Class: |
H04W 4/80 20180201; H04W
72/12 20130101; Y02D 70/142 20180101; H04W 12/00522 20190101; H04W
52/38 20130101; G06Q 10/0833 20130101; H04L 9/0861 20130101; H04W
12/04 20130101; H04L 43/0852 20130101; H04L 43/0817 20130101; H04L
43/0882 20130101; H04L 63/0853 20130101; H04B 7/14 20130101; H04L
47/16 20130101; H04L 49/1584 20130101; H04W 4/029 20180201; H04L
67/30 20130101; H04W 16/18 20130101; H04L 43/065 20130101; H04L
47/115 20130101; H04W 84/18 20130101; Y02D 70/144 20180101; H04W
76/14 20180201; H04L 5/0055 20130101; H04L 45/02 20130101; H04L
63/061 20130101; H04L 41/082 20130101; H04L 63/08 20130101; H04W
12/06 20130101; H04L 69/22 20130101; Y02D 70/162 20180101; Y02A
10/40 20180101; Y02D 30/70 20200801; H04W 12/003 20190101; H04W
52/0251 20130101; Y02D 70/164 20180101; H04L 41/14 20130101; G06F
21/44 20130101; Y02D 70/1262 20180101; H04W 88/06 20130101; H04W
40/24 20130101; H04W 24/06 20130101; H04H 20/71 20130101; Y02D
70/166 20180101; Y02A 10/46 20180101; Y02D 70/22 20180101; H04W
4/06 20130101; H04L 43/10 20130101; H04W 76/11 20180201 |
International
Class: |
H04L 12/801 20060101
H04L012/801; H04L 12/26 20060101 H04L012/26; H04B 7/14 20060101
H04B007/14 |
Foreign Application Data
Date |
Code |
Application Number |
Feb 25, 2014 |
GB |
1403312.0 |
Feb 25, 2014 |
GB |
1403314.6 |
Mar 31, 2014 |
GB |
1405785.5 |
Mar 31, 2014 |
GB |
1405786.3 |
Mar 31, 2014 |
GB |
1405789.7 |
Mar 31, 2014 |
GB |
1405790.5 |
Mar 31, 2014 |
GB |
1405791.3 |
Mar 31, 2014 |
GB |
1405797.0 |
Jul 17, 2014 |
GB |
1412714.6 |
Claims
1. 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.
2. The analysis device according to claim 1, the analysis device
being 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.
3. The analysis device according to claim 2, the analysis device
being 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.
4. The analysis device according to claim 1, the analysis device
being 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.
5. The analysis device according to claim 4, wherein the
restriction point communication device listens 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.
6. The analysis device according to claim 1, the analysis device
being 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.
7. The analysis device according to claim 1, wherein the at least
one reception property comprises at least one of: a number of
unique messages received at the respective communication device, a
number of repeated messages received at the respective
communication device, a 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.
8. The analysis device according to claim 1, wherein the traffic
statistics log comprises a reliability property for the
communication network which is based on a number of probe messages
that the profile device receives a response to; and the analysis
device is configured to identify at least one restriction point
communication device based on the reliability property.
9. The analysis device according to claim 1, wherein the traffic
statistics log comprises 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 is
configured to identify at least one restriction point based on the
delay property.
10. The analysis device according to claim 1, wherein the traffic
statistics log comprises values of the lifetime field of the probe
messages as received by an addressed communication device; and the
analysis device is configured to identify at least one restriction
point based on the averaged value of the lifetime fields.
11. 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.
12. The communication device according to claim 11, the
communication device being 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.
13. The communication device according to claim 11, the
communication device being 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.
14. The communication device according to claim 13, the
communication device being 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.
15. The communication device according to claim 11, the
communication device being 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 a number of distinct unique identifiers that are present
in the probe message responses.
16. The communication device according to claim 11, the
communication device being 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.
17. The communication device according to claim 11, the
communication device being 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.
18. The communication device according to claim 15, the
communication device being 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.
19. The communication device according to claim 11, the
communication device being 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
contains a communication device address that is not present in the
communication network.
20. 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.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] 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.
TECHNICAL FIELD
[0002] This invention relates to a communication device and method
for profiling the performance of a communication network.
BACKGROUND
[0003] 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.
[0004] 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.
[0005] 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.
[0006] 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.
[0007] 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.
[0008] 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.
[0009] 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.
SUMMARY OF THE INVENTION
[0010] 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.
[0011] 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.
[0012] 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.
[0013] 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.
[0014] 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.
[0015] 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.
[0016] 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.
[0017] 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.
[0018] 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.
[0019] 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.
[0020] 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.
[0021] 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.
[0022] 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.
[0023] 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.
[0024] 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.
[0025] 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.
[0026] 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.
[0027] 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.
[0028] 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.
BRIEF DESCRIPTION OF THE DRAWINGS
[0029] The present invention will now be described by way of
example with reference to the accompanying drawings. In the
drawings:
[0030] FIG. 1A shows a schematic diagram of a wireless
communication device;
[0031] FIG. 1B shows a schematic diagram of another communication
device;
[0032] FIG. 2 shows a schematic diagram of a network containing a
plurality of communication devices;
[0033] FIGS. 3A and 3B illustrate the transport of a packet through
the network;
[0034] FIG. 4 shows a schematic mesh network performance test
message sequence chart; and
[0035] FIG. 5 shows another schematic mesh network performance test
message sequence chart.
DETAILED DESCRIPTION
[0036] 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.
[0037] 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.
[0038] 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.
[0039] 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.
[0040] 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.
[0041] FIG. 1A shows a schematic diagram of an example
communication device in accordance with the present invention. In
FIG. 1A, the communication device 10 has an antenna 20 connected to
a transceiver 30. The communication device 10 can use the
transceiver to communicate with at least one other communication
device according to a communications protocol. The communication
device 10 can use the transceiver to transport packets over a
communication network where the network is provided by a plurality
of communication devices in the network listening for and relaying
packets. The communication device 10 can use the transceiver to
communicate in a mesh network.
[0042] 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 FIG. 1A as separate elements, it
will be appreciated that at least processor 40 and transceiver 30
could be incorporated in to one element. For example, being
incorporated on a single chip.
[0043] 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.
[0044] 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.
[0045] FIG. 1B shows a schematic diagram of another example
communication device in accordance with the present invention. In
FIG. 1B, the communication device 90 has a wired network interface
80. The communication device 90 can use the wired network interface
80 to communicate with at least one other communication device
according to a communications protocol. The communication device 90
can use the wired network interface 80 to transport packets over a
communication network where the network is provided by a plurality
of communication devices in the network listening for and relaying
packets. The communication device 90 can use the wired network
interface 80 to communicate in a mesh network. The other
illustrated elements of the communication device 90 are as
described in relation to FIG. 1A.
[0046] The structures shown in FIGS. 1A and 1B (and the other block
apparatus diagrams included herein) are intended to correspond to a
number of functional blocks in an apparatus. This is for
illustrative purposes only. FIGS. 1A and 1B are not intended to
define a strict division between different parts of hardware on a
chip or between different programs, procedures or functions in
software. In some embodiments, some or all of the algorithms
described herein may be performed wholly or partly in hardware. In
many implementations, at least part of interface 70, transceiver 30
and wired network interface 80 may be implemented by a processor
actioned under software control (e.g. the CPU of a communication
device). Any such software may be stored on a non-transient
computer readable medium, such as a memory (ROM, cache, hard disk
etc) or other storage means (USB stick, CD, disk etc).
[0047] 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 FIGS. 1A and/or
1B. An example of such a network is shown in FIG. 2, which
represents a house having a distributed lighting system. The system
comprises a light switch unit 201 and light fittings 202, 203, 204,
205. Light switch unit 201 is integrated with a wireless
communication device 212. Light fittings 202 to 205 are integrated
with respective wireless communication devices 206, 207, 208, 209.
The house has a mains electrical supply which powers the light
fittings and their respective wireless communication devices 206 to
209. Light switch unit 201 and its wireless communication device
212 are powered by a local battery 211.
[0048] 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.
[0049] 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.
[0050] 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.
[0051] The communication devices in FIG. 2 are all connected to or
fully integrated with another device--a "consumer"--on behalf of
which the communication device transmits and receives packets over
the network. In many cases the primary function of the consumer may
have nothing to do with the network. Consumer devices have varying
levels of complexity. In one example a consumer device might be a
tablet computer; in another it might just be a clock configured to
count down to an expiry date of some perishable goods. It also
possible for the communication device to be a consumer itself. An
example of such a scenario might be when a communication device
uses X10, which is a protocol designed to support the integration
of electronic devices within the home.
[0052] 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.
[0053] 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.
[0054] Each communication device may be capable of acting as a
relay in the network. An example of this is shown in FIG. 3, which
shows the same distributed lighting system as FIG. 2. The network
is configured as a mesh network so, at least in theory, all devices
that are part of the network have a responsibility to act as
relays. A relay device suitably retransmits any packet that it
recognises as having originated from the network. A relay device
may retransmit packets that have been injected in to the network at
that relay device. The relay device might also take steps to
prevent old packets from being continuously bounced around the
network, e.g. by decrementing a "time-to-live" value, or more
generally, a lifetime value, in the packet before forwarding it on.
More generally, if the lifetime value is equal to a threshold value
then the packet is not retransmitted. The relay device might also
take steps to prevent packets it has already retransmitted before
being propagated around the network multiple times; the relay
device may do this by only forwarding the packet if it is new.
[0055] 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.
[0056] FIG. 3A shows an example of the network operating according
to mesh principles. Light switch 201 transmits a packet addressed
to all of devices 206 to 209 instructing light fittings 202 to 205
to switch on. This packet is propagated by all devices that receive
it, eventually reaching light fitting 205, which is out of range of
light switch 201, the source of the packet. The packet is
propagated via light fitting communication devices 206 to 209, then
via communication device 216 and window sensor communication device
219 finally arriving at light fitting communication device 209.
[0057] 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.
[0058] It can be appreciated from FIG. 3A that if the phone 215 was
not present in the upstairs of the house, then there would be only
a single route to light fitting 205 via communication device 219 of
sensor 220 for window 218. This is because, in this example, light
fitting 205 is out of range of the downstairs light fittings 202,
203, 204 and the light switch 201, but in range of window 218.
Window 218 is within range of at least light fittings 202 and 203.
There may be more than one light fitting 205 present in the
upstairs of the house and each of those light fittings 205 may be
out of range of the downstairs light fittings 202, 203, 204. In
such a situation the window communication device 219 may in effect
act as an articulation point or one vertex of a bridge between the
upstairs mesh network and the downstairs mesh network. In this
context, a bridge is referring to a bridge between two parts of the
mesh network. As opposed to denoting elements that link two or more
communication technologies together.
[0059] 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.
[0060] 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.
[0061] 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.
[0062] In the case of FIG. 3B, window communication device 219 may
decide to reduce its receive period/duration as it is battery
powered. It may also decide to reduce its receive period/duration
because it has detected that devices 206, 207 and 209 are all
within range and are all capable of acting as relays. Where there
are multiple relays within range, each relay may decide to reduce
its receive period/duration under the assumption that at least one
of the relays within range may receive any retransmitted packet at
a given time. The other relay devices may then receive the
retransmitted packet at a later time when that first relay
retransmits the packet. In the situation shown in FIG. 3B, window
communication device 219 has therefore decided to shorten its
listen periods so that it only listens for 10% of the time. The
proportion of time that a device listens for may be known as the
duty cycle of the device.
[0063] In FIG. 3B, a period when the window communication device
219 is not listening is shown. As it is not listening at that
moment, the window communication device 219 does not receive the
packets that are retransmitted by the device 206 and 207 that are
connected to downstairs lights 202 and 203. As window communication
device 219 does not receive the packets that are retransmitted by
devices 206 and 207, communication device 219 does not retransmit
the packet. This means that device 209 which is attached to
upstairs light 205, and outside of the communication range of
downstairs light devices 206 and 207, does not receive the packet
that has been retransmitted by devices 206 and 207.
[0064] As is shown in the situation shown in FIG. 3B, device 219
may provide a single point of failure within the mesh network
because it can function as a bridging device linking the upstairs
portion of the mesh network to the downstairs portion of the mesh
network. It would therefore be desirable to either increase the
duty cycle of bridge devices such as device 219 so that they listen
for a larger proportion of the time, or add additional devices near
device 219 which can act as alternative bridges so that there is no
longer a single point of failure in that part of the network. To be
able to know where to target additional devices within the mesh
network, or to know which devices ought to be limited to using a
higher duty cycle, the mesh network may be profiled to establish
the health and/or performance of the mesh network and/or locate
bridging devices such as device 219.
[0065] 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.
[0066] FIG. 4 shows a schematic message sequence chart for a first
test that can be used to profile the mesh network. It will be
understood that whilst the messages are shown in a sequence that
there may be concurrency between at least some of these messages.
For example, one message may be sent to multiple devices in
substitute for separate messages to each device; and the responses
from devices may arrive in an alternative order.
[0067] 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 FIGS. 1A and 1B. The
traffic counters may store statistics concerning the transport of
packets through the communication network as seen by that
particular communication device. The traffic counters may store
statistics concerning: [0068] the number of lost packets, [0069]
number of consecutive packets lost, [0070] maximum number of
repeated packets seen, [0071] minimum number of repeated packets
seen, [0072] average number of repeated packets seen, [0073]
average RSSI seen over the received packets; as measured during the
reception of those packets, [0074] number of unknown messages seen,
[0075] number of messages/packets received, and/or [0076] number of
repeated messages/packets.
[0077] It will be appreciated that the diagnostic reset message
referred to in this document may alternatively be described as a
traffic counter reset message.
[0078] 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.
[0079] 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.
[0080] 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.
[0081] It will be appreciated that the ping request messages may be
alternatively be described as a probe message.
[0082] 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.
[0083] 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.
[0084] 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.
[0085] In the case shown in FIG. 4, no response is required to the
ping message. Therefore, the profile device 400 may set the
recipient address for each of the ping request messages 402-403
(also written as 402, 403) to that of a device, or group, that is
not present in the communications network. In this case, there may
be no device that has that particular address and so none of the
network nodes 410 within the communication network m respond with a
response to the ping request 402, 403 message.
[0086] 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.
[0087] 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.
[0088] It will be appreciated that the diagnostic read message
referred to in this document may alternatively described as a
traffic statistic request message.
[0089] 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: [0090] the number of messages received by the
particular network node, since the traffic counters were reset,
[0091] the number of repeated messages received by the particular
network node, since the traffic counters were reset. As discussed
above, the number of repeated messages can be calculated by
referring to the ping message unique identifier and summing the
number of times that each identifier has been received. [0092] the
number of unknown network messages received by the particular
network node, since the traffic counters were reset. The unknown
network messages being messages that cannot be read by that network
node. This could be because it contains a network identification
code that is not known to the network node or contains a network
code that is unreadable by the network node. [0093] Statistical
information pertinent to the distribution of the RSSI of the
messages received by the network node, since the traffic counters
were reset. This may be in the form of the average RSSI of the
messages received by the network node, since the traffic counters
were reset. This may also be in the form of other statistical
variances of the RSSI of the messaged received by the network. For
instance, the mean, mode, variance or standard deviation of those
values. The RSSI may be averaged for only the messages that are
recognised as being identified as a message for the communication
network that the network node is part of. [0094] the number of lost
packets/messages, since the traffic counters were reset. As
discussed above, the number of lost packets can be calculated by
referring to the ping message unique identifier and searching for
unique identifiers that are missing from the unique identifier log.
[0095] number of consecutive packets lost, [0096] maximum number of
repeated packets seen, [0097] minimum number of repeated packets
seen, [0098] average number of repeated packets seen, [0099]
average RSSI seen over the received packets; as measured during the
reception of those packets, [0100] number of unknown messages seen,
[0101] number of messages/packets received, and/or [0102] number of
repeated messages/packets.
[0103] 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.
[0104] 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: [0105] comparing the individual levels of packet loss at that
particular network node 410 with the average over the whole
communication network. A high level of packet loss at a particular
node relative to the network average may indicate a high level of
congestion at that network node 410. [0106] comparing the
individual level of repeated messages seen by that particular
network node 410 with the average over the whole communication
network. A low level of repeated messages may indicate low total
throughput at that network node due to there being few other
network nodes within communication distance of that particular
network node. A low level of repeated messages may indicate an area
of the communication network around that particular network node
which is susceptible to congestion. [0107] more generally, by
comparing the traffic statistics recorded by a particular node with
the average traffic statistics across all nodes in the network.
[0108] 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.
[0109] FIG. 5 shows a schematic message sequence chart for second
and third tests that can be used to profile the mesh network. As
with FIG. 4 above, it will be understood that whilst the messages
are shown in a sequence that there may be concurrency between at
least some of these messages. For example, one message may be sent
to multiple devices in substitute for separate messages to each
device; and the responses from devices may arrive in an alternative
order.
[0110] 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 FIG. 4 above and diagnostic reset message
401. 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.
[0111] 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 FIG. 5, the device that is required to respond
to each ping request message 502, 506 is the response device 520.
The ping messages may therefore comprise data defining the device
address that the message is addressed to. As discussed above in
relation to FIG. 4, 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. Thus apart from now
being addressed to the response device or a group of response
devices, the ping request messages 502, 503, 506, 507 are as
described above in relation to FIG. 4. The response devices 520 may
be one or more of the network nodes, and so communication devices,
of the communication network.
[0112] As shown in FIG. 5, the profile device 500 sends each of the
ping request messages in to the network by transmitting the ping
request message. The ping request message may be received by one or
more network nodes and those network nodes can retransmit the ping
request message 503, 507 as long as the lifetime value for the
packet has not reached the threshold value as described above.
Although it might be assumed that only one retransmission is shown
in FIG. 5 before the ping request message reaches the response
device, it will be appreciated that there could be many
retransmissions by the network nodes 510 within the communication
network. As discussed above, the ping request messages may
therefore propagate through the communication network by each
communication device, the network nodes, listening for and
retransmitting the packets.
[0113] 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: [0114] the recorded lifetime value of the particular ping
request message 503, 507 that the ping response message is a
response to. [0115] the RSSI value associated with the reception of
the particular ping request message 503, 507. More generally, the
RSSI value may be the signal strength of the particular ping
request message 503, 507.
[0116] The ping response messages 504, 508 are shown in FIG. 5
propagating from the response device 520 via the network nodes 510,
the ping response messages 505, 509 being retransmitted by the
network nodes 510 and being received by the profile device 500.
[0117] 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.
[0118] 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.
[0119] 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.
[0120] 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.
[0121] 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 FIG. 4 and as shown in FIG. 5 as diagnostic read
messages 511, 513 and diagnostic traffic statistics messages 512,
514. The profile device 500 may choose not to request the traffic
statistics from the network nodes 510 if only the ping response
statistics are required.
[0122] 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 FIG. 4. As also discussed in relation to FIG. 4,
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.
[0123] 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 FIG. 5 may give a better
indication as to the congestion present in the network. Message
have also originated from two different locations in the
network.
[0124] 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.
[0125] 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.
[0126] 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.
[0127] 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.
[0128] 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.
[0129] 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: [0130] the
congestion in the mesh network (i.e. how well the mesh network is
coping with a certain level of throughput of packets/messages);
[0131] the reliability of the mesh network in transporting messages
between two network nodes, two particular communication devices, of
the mesh network (i.e. how many of the messages between these two
devices are successfully transported by the mesh network); and/or
[0132] the delay in message transport that is introduced by the
transport of messages between two network nodes, two particular
communication devices, of the mesh network (i.e. how long it takes
messages sent between these two devices to propagate through the
mesh network from one to the other of those two devices).
[0133] The profile device 400, 500 may first run the test shown in
FIG. 4 where the mesh network is generally profiled using ping
request messages, or probe messages, that are not addressed any
network node present in the network to determine how messages
propagate through the network when sent from one device. The
profile device 400, 500 may then identify particular network nodes
to profile further based on the data generated by the test shown in
FIG. 4. Alternatively, the analysis device 222 may identify
particular nodes to profile further based on the data generated by
the tests shown in FIG. 4 and sent to the analysis device 222 in
the traffic statistics log message. The analysis device 222 may
then send an instruction message to profile device 400, 500
instructing the profile device 400, 500 to profile further.
[0134] 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: [0135] a high repeated message count
which may indicate a network node 410, 510 that is located within
reception range of a plurality of other network nodes. [0136] a low
repeated message count which may indicate a network node 410, 510
that is located at the edge of the mesh network and in
communication with few other network nodes. [0137] a low average
received signal strength of the messages received by the network
node. This may indicate a network node that is located near the
edge of the mesh network because the signals that are received by
that network node are low.
[0138] The profile device 400, 500 may then run at least one of the
tests shown in FIG. 5 between the profile device 400, 500 and the
one or more network nodes that have been selected based on the
message reception characteristics. The profile device 400, 500 can
run the test or tests against each of the selected network nodes in
turn designating each one as the response device and addressing the
probe messages, or ping requests, at that network node 410,
510.
[0139] 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.
[0140] 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.
[0141] 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 FIG. 2 in linking the
upstairs lights to the downstairs lights. These restriction points
in the mesh network can be grouped together as having a similar set
of properties. A restriction point may be identified by the test
results described above.
[0142] A mesh node that is functioning as a restriction point may
comprise one or more of the following characteristics: [0143] a
high level of congestion at that particular mesh node, this may
indicate that a single node is handling the retransmission within a
particular area of the mesh network; [0144] a high repeated message
count, this may indicate that the network node is a convergence
point in the network and is receiving messages from many sources.
[0145] a high level of bounce back messages, these are messages
that are received that have a lifetime value adjusted by one
increment meaning that it has only been retransmitted once. In the
example of the lifetime value being a TTL, receiving messages with
a TTL of one less than the message sent. This may show that the
node has many immediate neighbours.
[0146] 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.
[0147] 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.
[0148] 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: [0149] a low average received
signal strength; [0150] a low repeated message count; [0151] a
repeated message count that is less than the number of messages
transmitted by the mesh node.
[0152] 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.
[0153] 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.
* * * * *