WO2018097687A1 - 블루투스를 이용한 메쉬 네트워크에서 데이터를 송수신하기 위한 방법 및 장치 - Google Patents
블루투스를 이용한 메쉬 네트워크에서 데이터를 송수신하기 위한 방법 및 장치 Download PDFInfo
- Publication number
- WO2018097687A1 WO2018097687A1 PCT/KR2017/013639 KR2017013639W WO2018097687A1 WO 2018097687 A1 WO2018097687 A1 WO 2018097687A1 KR 2017013639 W KR2017013639 W KR 2017013639W WO 2018097687 A1 WO2018097687 A1 WO 2018097687A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- node
- packet
- nodes
- specific
- request
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/50—Secure pairing of devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
- H04W40/22—Communication route or path selection, e.g. power-based or shortest path routing using selective relaying for reaching a BTS [Base Transceiver Station] or an access point
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/24—Connectivity information management, e.g. connectivity discovery or connectivity update
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/14—Direct-mode setup
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/005—Discovery of network devices, e.g. terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
Definitions
- the present invention relates to a method and apparatus for transmitting and receiving data in a mesh network using Bluetooth, which is a near field technology, in a wireless communication system.
- Bluetooth which is a near field technology
- Bluetooth is a short-range wireless technology standard that can transmit and receive data by wirelessly connecting various devices in a short distance.
- a user When performing wireless communication between two devices using Bluetooth communication, a user performs a procedure of searching for a Bluetooth device and requesting a connection. do.
- the device may mean an apparatus and an apparatus.
- the user may search for the Bluetooth device based on the Bluetooth communication method to use using the Bluetooth device and then perform the connection.
- the Bluetooth communication method includes a basic rate / enhanced data rate (BR / EDR) method and a low energy (LE) method, which is a low power method.
- the BR / EDR scheme may be referred to as Bluetooth Classic.
- the Bluetooth classic includes Bluetooth technology that has been adopted since Bluetooth 1.0 using Basic Rate and Bluetooth technology that has used Enhanced Data Rate supported since Bluetooth 2.0.
- Bluetooth Low Energy (hereinafter referred to as Bluetooth LE) technology has been applied since Bluetooth 4.0, and can consume hundreds of kilobytes (KB) of information stably with low power consumption.
- the Bluetooth low energy energy technology uses an attribute protocol to exchange information between devices. This Bluetooth LE method can reduce energy overhead by reducing the header overhead and simplifying the operation.
- Some Bluetooth devices do not have a display or a user interface.
- the complexity of connection / management / control / disconnection between various kinds of Bluetooth devices and similarly applied Bluetooth devices is increasing.
- Bluetooth can achieve a relatively high speed at a relatively low power, low cost, but the transmission distance is generally limited to a maximum of 100m, it is suitable for use in a limited space.
- An object of the present invention is to provide a method and apparatus for transmitting and receiving data in a flooding-based mesh network using Bluetooth Low Energy (LE) technology.
- LE Bluetooth Low Energy
- Another object of the present invention is to provide a method and apparatus for obtaining state information of each node through a tree structure path.
- Another object of the present invention is to provide a method and apparatus for checking whether an error has occurred in some nodes using a specific packet transmitted through a tree structure path.
- the Bluetooth device from the control device for controlling the Bluetooth mesh network, Obtaining a command message indicating the start of a procedure for obtaining specific information of all nodes included in the mesh network; Broadcasting a request packet to discover a node adjacent to the first node; Receiving a response packet corresponding to the request packet from each of the plurality of nodes that have received the request packet; Registering the plurality of nodes as a low near node of the first node; Receiving a specific packet including the specific information from each of a plurality of nodes belonging to the lower neighbor node, wherein the Bluetooth mesh network is based on a floating scheme, and the lower neighbor node is configured to receive the specific packet.
- a node for delivering specific information, wherein the specific packet received at the first node includes the specific information of one or more non-overlapping different nodes.
- the specific packet when the second node that has transmitted the specific packet registers its lower neighbor node, the specific packet is second from the first specific information of the second node and the lower neighbor node of the second node. It includes second specific information delivered through the specific packet.
- the request packet, the response packet, and the specific packet are 1 hop packets.
- the specific information generated at each node is transmitted to the first node through a tree structure path corresponding to the root node by the first node using the specific packet.
- the invention further includes the step of the first node sending a message to the control device that includes the specific information of the first node and the specific information of other nodes included in the received specific packet.
- the specific information is state information indicating the current state of the node.
- the specific packet is periodically generated and transmitted in each node included in the Bluetooth mesh network to inform that the node is active.
- the step of registering as the lower neighbor node is registered as the lower neighbor node only when the response packet is received by the first node within a predetermined time.
- another node included in the Bluetooth mesh network is adjacent to itself.
- the plurality of adjacent nodes may further include selecting one of the nodes, and registering the selected node as the upper neighbor node may include registering the selected one node as the upper neighbor node.
- the selecting of the one node may select, as the one node, a node that transmits the first received request packet to the first node among the plurality of different request packets.
- the step of selecting the one node if the request packet is repeatedly broadcast for a predetermined number of times for a predetermined time, the number of times the request packet is repeatedly broadcast and the request packet The one node is selected based on the ratio received at this first node.
- the selecting of the one node may select, as the one node, a node transmitting the packet having the strongest signal strength of the received packet among the plurality of different request packets received.
- a first node for transmitting and receiving data in a Bluetooth mesh network the first node, the communication unit for communicating with the outside by wireless or wired ; And a processor operatively connected with the communication unit, wherein the processor is configured to instruct a start of a procedure for obtaining specific information of all nodes included in the Bluetooth mesh network from a control device controlling the Bluetooth mesh network.
- Obtain a command message broadcast a request packet for discovering a node adjacent to the first node, receive a response packet for the request packet from each of the plurality of nodes that received the request packet, Register the plurality of nodes as a low near node of the first node, and receive a specific packet including the specific information from each of the plurality of nodes belonging to the lower adjacent node, wherein the Bluetooth mesh
- the network is based on the floating method, and the lower neighboring nodes A node for transmitting the specific information to a node transmitting the request packet to him by using the particular packet, the received packet includes certain of the above-specified information of the different nodes that do not overlap with one or more, respectively.
- delay can be prevented by each node delivering a specific packet only to a predetermined neighboring node.
- a specific packet is delivered to the root node through a tree structure path, so that the root node can obtain information of all other nodes.
- each node periodically transmits a state packet through a path, thereby periodically performing a state check and having an effect of identifying a specific node in which abnormality has occurred.
- FIG. 1 is a schematic diagram illustrating an example of a wireless communication system using the Bluetooth low power energy technology proposed in the present specification.
- FIG. 2 shows an example of an internal block diagram of a device that can implement the methods proposed herein.
- FIG 3 shows an example of a Bluetooth communication architecture to which the methods proposed herein may be applied.
- FIG. 4 shows an example of a structure of a GATT (Generic Attribute Profile) of Bluetooth low power energy.
- GATT Generic Attribute Profile
- FIG. 5 is a flowchart illustrating an example of a connection procedure method in a Bluetooth low power energy technology to which the present invention can be applied.
- FIG. 6 illustrates a Bluetooth mesh architecture, according to an embodiment of the invention.
- FIG. 7 illustrates a packet format used in a Bluetooth mesh network according to an embodiment of the present invention.
- FIG. 8 illustrates a Bluetooth mesh network topology according to an embodiment of the present invention.
- FIG 9 illustrates a tree structure according to an embodiment of the present invention.
- FIG. 10 illustrates a flooding-based data transfer method in a Bluetooth mesh network according to an embodiment of the present invention.
- FIG. 11 illustrates that a tree structure path is formed through an algorithm for selecting an adjacent node in a Bluetooth mesh network according to an embodiment of the present invention.
- FIG. 12 illustrates a detailed process of an algorithm for selecting an adjacent node in a Bluetooth mesh network according to an embodiment of the present invention.
- FIG. 13 illustrates that in a Bluetooth mesh network according to an embodiment of the present invention, one node receives a FindNearNode packet from a plurality of neighbor nodes and transmits a SelectNode packet to one selected node.
- FIG. 14 illustrates a method of transmitting a state of each node through the path after the tree structure path is formed in the Bluetooth mesh network according to an embodiment of the present invention.
- FIG. 15 illustrates a method for identifying an abnormality occurring in some nodes after a transmission path of a specific packet is formed through an adjacent node selection algorithm in a Bluetooth mesh network according to an embodiment of the present invention.
- 16 is a flowchart illustrating a process of obtaining, by a root node, specific information of other nodes using a specific packet in a Bluetooth mesh network according to an embodiment of the present invention.
- FIG. 17 is a flowchart illustrating a process in which a node other than a root node transmits specific information to a higher neighbor node using a specific packet in a Bluetooth mesh network according to an embodiment of the present invention.
- FIG. 1 is a schematic diagram illustrating an example of a wireless communication system using the Bluetooth low power energy technology proposed in the present specification.
- the wireless communication system 100 includes at least one server device 120 and at least one client device 110.
- the server device and the client device perform Bluetooth communication using Bluetooth Low Energy (BLE) technology.
- BLE Bluetooth Low Energy
- BLE technology Compared to Bluetooth Basic Rate / Enhanced Data Rate (BR / EDR) technology, BLE technology has a relatively small duty cycle, enables low-cost production, and significantly reduces power consumption through low data rates. If you use a coin cell battery, it can operate for more than a year.
- BR / EDR Bluetooth Basic Rate / Enhanced Data Rate
- the BLE technology simplifies the connection procedure between devices, and the packet size is smaller than that of the Bluetooth BR / EDR technology.
- the number of RF channels is 40
- the data rate supports 1Mbps
- the topology is a scatternet structure
- latency is 3ms
- (6) output power is less than 10mW (10dBm)
- (7) is mainly used in applications such as mobile phones, watches, sports, healthcare, sensors, device control.
- the server device 120 may operate as a client device in relation to other devices, and the client device may operate as a server device in relation to other devices. That is, in the BLE communication system, any one device may operate as a server device or a client device, and if necessary, operate as a server device and a client device.
- the server device 120 may include a data service device, a slave device device, a slave, a server, a conductor, a host device, a gateway, and a sensing device. (Sensing Device), a monitoring device (monitoring device), the first device, the second device and the like.
- the client device 110 may be a master device, a master, a client, a member, a sensor device, a sink device, a collector, a third device, a fourth device, or the like. Can be expressed.
- the server device and the client device correspond to the main components of the wireless communication system, and the wireless communication system may include other components in addition to the server device and the client device.
- the server device When the server device receives data from the client device and directly communicates with the client device, and receives a data request from the client device, the server device provides the data to the client device through a response.
- the server device sends a notification / notification message and an indication message to the client device to provide data information to the client device.
- the server apparatus transmits an instruction message to the client apparatus, the server apparatus receives a confirmation message corresponding to the instruction message from the client.
- the server device provides data information to the user through a display unit or receives a request input from the user through a user input interface in the process of transmitting and receiving notification, instruction, and confirmation messages with the client device. can do.
- the server device may read data from a memory unit or write new data to a corresponding memory in a process of transmitting and receiving a message with the client device.
- one server device may be connected to a plurality of client devices, and may be easily reconnected (or connected) with client devices by using bonding information.
- the client device 120 refers to a device for requesting data information and data transmission from a server device.
- the client device receives data from the server device through a notification message, an instruction message, and the like, and when receiving an instruction message from the server device, sends a confirmation message in response to the instruction message.
- the client device may provide information to the user through an output unit or receive an input from the user through an input unit in the process of transmitting and receiving messages with the server device.
- the client device may read data from a memory or write new data to a corresponding memory in a process of transmitting and receiving a message with the server device.
- Hardware components such as an output unit, an input unit, and a memory of the server device and the client device will be described in detail with reference to FIG. 2.
- the wireless communication system may configure Personal Area Networking (PAN) through Bluetooth technology.
- PAN Personal Area Networking
- the wireless communication system by establishing a private piconet between devices, files, documents, and the like can be exchanged quickly and securely.
- FIG. 2 shows an example of an internal block diagram of a device that can implement the methods proposed herein.
- the server device 110 may include an output unit 111, a user input interface 112, a power supply unit 113, a processor 114, and a memory.
- Memory unit 115 Memory unit 115, a Bluetooth interface 116, another communication interface 117, and a communication unit (or a transceiver unit 118).
- the output unit 111, the input unit 112, the power supply unit 113, the processor 114, the memory 115, the Bluetooth interface 116, the other communication interface 117 and the communication unit 118 are proposed herein. It is functionally linked to perform the method.
- the client device 120 may include an output unit 121, a user input interface 122, a power supply unit 123, a processor 124, and a memory unit 125. , A Bluetooth interface 126, and a communication unit (or a transceiver unit 127).
- the output unit 121, the input unit 122, the power supply unit 123, the processor 124, the memory 125, the Bluetooth interface 126, and the communication unit 127 are used to perform the method proposed in this specification. Functionally connected
- the Bluetooth interface 116, 126 refers to a unit (or module) capable of transmitting data or request / response, command, notification, indication / confirmation message, etc. between devices using Bluetooth technology.
- the memories 115 and 125 are units implemented in various types of devices and refer to units in which various kinds of data are stored.
- the processor 114, 124 refers to a module that controls the overall operation of the server device 110 or the client device 120.
- the processor 114, 124 controls the message to be transmitted and received through the Bluetooth interface and other communication interfaces.
- the processors 114 and 124 may be represented by a controller, a control unit, a controller, or the like.
- the processors 114 and 124 may include application-specific integrated circuits (ASICs), other chipsets, logic circuits, and / or data processing devices.
- ASICs application-specific integrated circuits
- the processor 114, 124 controls the communication unit to receive an advertising message from the server device 110, transmits a scan request message to the server device 110, and the server device 110. Controlling the communication unit to receive a scan response message in response to the scan request from the terminal, and connecting to the server device 110 to establish a Bluetooth connection with the server device 110 Control the communication unit to transmit.
- the processor 114 or 124 may read or write data from the server device 110 using an attribute protocol after the Bluetooth LE connection is established through the connection procedure. Control the communication unit.
- the memories 115 and 125 may include read-only memory (ROM), random access memory (RAM), flash memory, memory cards, storage media, and / or other storage devices.
- ROM read-only memory
- RAM random access memory
- flash memory memory cards, storage media, and / or other storage devices.
- the communication unit 118 and 127 may include a baseband circuit for processing a radio signal.
- the above technique may be implemented as a module (process, function, etc.) for performing the above-described function.
- the module may be stored in memory and executed by a processor.
- the memories 115 and 125 may be inside or outside the processors 114 and 124, and may be connected to the processors 114 and 124 by various well-known means.
- the output units 111 and 121 refer to modules for providing device status information and message exchange information to a user through a screen.
- the power supply unit refers to a module for supplying power required for the operation of the components by receiving the external power, the internal power under the control of the controller.
- BLE technology has a small duty cycle, and the low data rate can significantly reduce power consumption.
- FIG 3 shows an example of a Bluetooth communication architecture to which the methods proposed herein may be applied.
- FIG. 3 shows an example of the architecture of Bluetooth Low Energy (LE).
- LE Bluetooth Low Energy
- the BLE structure includes a controller stack operable to handle timing critical radio interface and a host stack operable to process high level data.
- the controller stack may be referred to as a controller.
- the controller stack will be referred to as a controller stACK to avoid confusion with a processor which is an internal component of the device mentioned in FIG. 2.
- the controller stack may be implemented using a communication module that may include a Bluetooth radio and a processor module that may include a processing device such as, for example, a microprocessor.
- the host stack may be implemented as part of an OS running on a processor module, or as an instance of a package on the OS.
- controller stack and the host stack can be operated or executed on the same processing device in the processor module.
- the host stack includes GAP (Generic Access Profile, 310), GATT based Profiles (320), GATT (Generic Attribute Profile, 330), ATT (Attribute Protocol, 340), SM (Security Manage, 350), L2CAP (Logical Link Control and Adaptation Protocol, 360).
- GAP Generic Access Profile
- GATT Generic Attribute Profile
- ATT Generic Attribute Profile
- ATT Attribute Protocol
- SM Simple Adaptation Protocol
- L2CAP Logical Link Control and Adaptation Protocol, 360.
- the host stack is not limited to this and may include various protocols and profiles.
- the host stack uses L2CAP to multiplex the various protocols, profiles, etc. provided by Bluetooth.
- Logical Link Control and Adaptation Protocol (L2CAP) 360 provides one bidirectional channel for transmitting data to a specific protocol or profile.
- L2CAP may be operable to multiplex data between higher layer protocols, segment and reassemble packages, and manage multicast data transmission.
- BLE uses three fixed channels (one for the signaling CH, one for the Security Manager, and one for the Attribute protocol).
- BR / EDR Base Rate / Enhanced Data Rate
- SM Security Manager
- ATT Attribute Protocol, 340
- ATT Application Protocol
- the Request message is a message for requesting specific information from the client device to the server device
- the Response message is a response message for the request message, which is transmitted from the server device to the client device. Say your message.
- Command message A message sent from the client device to the server device to indicate a command of a specific operation.
- the server device does not transmit a response to the command message to the client device.
- Notification message This message is sent from the server device to the client device for notification such as an event.
- the client device does not transmit a confirmation message for the notification message to the server device.
- Indication and Confirm message This message is transmitted from the server device to the client device for notification such as an event. Unlike the notification message, the client device transmits an acknowledgment message for the Indication message to the server device.
- GAP Generic Access Profile
- GAP is mainly used in the device discovery, connection creation and security procedures, and defines the way to provide information to the user, and defines the type of the attribute as follows.
- GATT-based Profiles are profiles that depend on GATT and are mainly applied to BLE devices.
- GATT-based Profiles may be Battery, Time, FindMe, Proximity, Time, Object Delivery Service, and the like. Details of GATT-based Profiles are as follows.
- GATT may be operable as a protocol describing how ATT is used in the configuration of services.
- the GATT may be operable to specify how ATT attributes are grouped together into services, and may be operable to describe features associated with the services.
- GATT and ATT may use features to describe the state and services of a device and to describe how features relate to each other and how they are used.
- the controller stack includes a physical layer 390, a link layer 380, and a host controller interface 370.
- the physical layer (wireless transceiver module 390) transmits and receives a 2.4 GHz radio signal and uses Gaussian Frequency Shift Keying (GFSK) modulation and a frequency hopping method consisting of 40 RF channels.
- GFSK Gaussian Frequency Shift Keying
- Link layer 380 sends or receives Bluetooth packets.
- the link layer creates a connection between devices after performing advertising and scanning functions using three advertising channels, and provides a function of sending and receiving data packets of up to 42 bytes through 37 data channels.
- HCI Host Controller Interface
- the BLE procedure may be classified into a device filtering procedure, an advertising procedure, a scanning procedure, a discovery procedure, a connecting procedure, and the like.
- the device filtering procedure is a method for reducing the number of devices performing a response to a request, an indication, a notification, and the like in the controller stack.
- the controller stack can control the number of requests sent, reducing power consumption in the BLE controller stack.
- the advertising device or scanning device may perform the device filtering procedure to limit the device receiving the advertising packet, scan request or connection request.
- the advertising device refers to a device that transmits an advertising event, that is, performs an advertisement, and is also referred to as an advertiser.
- the scanning device refers to a device that performs scanning and a device that transmits a scan request.
- the scanning device when the scanning device receives some advertising packets from the advertising device, the scanning device should send a scan request to the advertising device.
- the scanning device may ignore the advertisement packets transmitted from the advertisement device.
- the device filtering procedure may also be used in the connection request process. If device filtering is used in the connection request process, it is not necessary to transmit a response to the connection request by ignoring the connection request.
- the advertising device performs an advertising procedure to perform a non-directional broadcast to the devices in the area.
- non-directional broadcast refers to broadcast in all directions rather than broadcast in a specific direction.
- Non-directional broadcasts refer to broadcasts in a particular direction. Non-directional broadcasts occur without a connection procedure between an advertising device and a device in a listening (or listening) state (hereinafter referred to as a listening device).
- the advertising procedure is used to establish a Bluetooth connection with a nearby initiating device.
- the advertising procedure may be used to provide periodic broadcast of user data to the scanning devices that are listening on the advertising channel.
- the advertising devices may receive a scan request from listening devices that are listening to obtain additional user data from the advertising device.
- the advertising device transmits a response to the scan request to the device that sent the scan request through the same advertising physical channel as the received advertising physical channel.
- Broadcast user data sent as part of an advertisement packet is dynamic data, while scan response data is generally static data.
- the advertising device may receive a connection request from the initiating device on the advertising (broadcast) physical channel. If the advertising device used a connectable advertising event and the initiating device was not filtered by the device filtering procedure, the advertising device stops the advertising and enters the connected mode. The advertising device may start advertising again after the connected mode.
- the device performing the scanning i.e., the scanning device, performs a scanning procedure to listen to the non-directional broadcast of the user data from the advertising devices using the advertising physical channel.
- the scanning device sends a scan request to the advertising device via the advertising physical channel to request additional data from the advertising device.
- the advertising device transmits a scan response that is a response to the scan request, including additional data requested by the scanning device over the advertising physical channel.
- the scanning procedure can be used while connected to other BLE devices in the BLE piconet.
- the scanning device If the scanning device is in an initiator mode that can receive the broadcasted advertising event and initiate a connection request, the scanning device sends the connection request to the advertising device via the advertising physical channel to the advertising device. You can start a Bluetooth connection with.
- the scanning device When the scanning device sends a connection request to the advertising device, the scanning device stops initiator mode scanning for further broadcast and enters the connected mode.
- 'Bluetooth devices' Devices capable of Bluetooth communication (hereinafter referred to as 'Bluetooth devices') perform an advertisement procedure and a scanning procedure to find devices that are nearby or to be found by other devices within a given area.
- the discovery procedure is performed asymmetrically.
- a Bluetooth device that attempts to find another device around it is called a discovering device and listens for devices that advertise a scannable advertisement event.
- Bluetooth devices discovered and available from other devices are referred to as discoverable devices, and actively broadcast advertising events so that other devices can scan through an advertising (broadcast) physical channel.
- Both the discovering device and the discoverable device may already be connected with other Bluetooth devices in the piconet.
- connection procedure is asymmetric, and the connection procedure requires the other Bluetooth device to perform the scanning procedure while the specific Bluetooth device performs the advertisement procedure.
- the advertising procedure can be the goal, so that only one device will respond to the advertising.
- the connection may be initiated by sending a connection request to the advertising device via the advertising (broadcast) physical channel.
- the link layer LL enters the advertisement state by the instruction of the host (stack). If the link layer is in the advertisement state, the link layer sends advertisement packet data units (PDUs) in the advertisement events.
- PDUs advertisement packet data units
- Each advertising event consists of at least one advertising PDU, which is transmitted via the advertising channel indexes used.
- the advertisement event may terminate when the advertisement PDU is transmitted through each of the advertisement channel indexes used, or may terminate the advertisement event earlier when the advertisement device needs to make space for performing another function.
- the link layer enters the scanning state by the indication of the host (stack). In the scanning state, the link layer listens for advertising channel indices.
- scanning states There are two types of scanning states: passive scanning and active scanning, each scanning type being determined by the host.
- ScanInterval is defined as the interval (interval) between the starting points of two consecutive scan windows.
- the link layer must listen for completion of all scan intervals in the scan window as instructed by the host. In each scan window, the link layer must scan a different advertising channel index. The link layer uses all available advertising channel indexes.
- the link layer When passive scanning, the link layer only receives packets and does not transmit any packets.
- the link layer When active scanning, the link layer performs listening to rely on the advertising PDU type, which may request advertising PDUs and additional information related to the advertising device from the advertising device.
- the link layer enters the initiation state by the instruction of the host (stack).
- the link layer When the link layer is in the initiating state, the link layer performs listening for the advertising channel indexes.
- the link layer listens for the advertising channel index during the scan window period.
- the link layer enters the connected state when the device performing the connection request, i.e., the initiating device, sends the CONNECT_REQ PDU to the advertising device or when the advertising device receives the CONNECT_REQ PDU from the initiating device.
- connection After entering the connected state, the connection is considered to be created. However, it does not need to be considered to be established at the time the connection enters the connected state. The only difference between the newly created connection and the established connection is the link layer connection supervision timeout value.
- the link layer that performs the master role is called a master, and the link layer that performs the slave role is called a slave.
- the master controls the timing of the connection event, and the connection event is the point in time when the master and the slave are synchronized.
- BLE devices use the packets defined below.
- the link layer has only one packet format used for both advertisement channel packets and data channel packets.
- Each packet consists of four fields: Preamble, Access Address, PDU, and CRC.
- the PDU When one packet is sent on an advertising physical channel, the PDU will be an advertising channel PDU, and when one packet is sent on a data physical channel, the PDU will be a data channel PDU.
- Advertising channel PDU (Advertising Channel PDU )
- the advertising channel PDU Packet Data Unit
- PDU Packet Data Unit
- the PDU type field of the advertising channel PDU included in the header indicates a PDU type as defined in Table 1 below.
- Advertising PDU (Advertising PDU )
- advertising channel PDU types are called advertising PDUs and are used in specific events.
- ADV_IND Connectable Non-Oriented Ads Event
- ADV_DIRECT_IND Connectable Directional Advertising Event
- ADV_NONCONN_IND Non-Connectable Non-Oriented Ads Event
- ADV_SCAN_IND Scannable Non-Oriented Ads Event
- the PDUs are transmitted at the link layer in the advertisement state and received by the link layer in the scanning state or initiating state.
- the advertising channel PDU type below is called a scanning PDU and is used in the state described below.
- SCAN_REQ Sent by the link layer in the scanning state and received by the link layer in the advertising state.
- SCAN_RSP Sent by the link layer in the advertising state and received by the link layer in the scanning state.
- the advertising channel PDU type below is called the initiating PDU.
- CONNECT_REQ Sent by the link layer in the initiating state and received by the link layer in the advertising state.
- the data channel PDU has a 16-bit header, payloads of various sizes, and may include a message integrity check (MIC) field.
- MIC message integrity check
- the procedure, state, packet format, etc. in the BLE technology may be applied to perform the methods proposed herein.
- FIG. 4 shows an example of a structure of a GATT (Generic Attribute Profile) of Bluetooth low power energy.
- GATT Generic Attribute Profile
- the GATT Generic Attribute Profile
- a peripheral device for example, a sensor device serves as a GATT server, and has a definition of a service and a characteristic.
- the GATT client sends a data request to the GATT server, and all transactions begin at the GATT client and receive a response from the GATT server.
- the GATT-based operating structure used in the Bluetooth LE is based on Profile, Service, and Characteristic, and may form a vertical structure as shown in FIG. 5.
- the profile consists of one or more services, and the service may consist of one or more features or other services.
- the service divides data into logical units and may include one or more characteristics or other services.
- Each service has a 16-bit or 128-bit identifier called the Universal Unique Identifier (UUID).
- UUID Universal Unique Identifier
- the characteristic is the lowest unit in the GATT based operation structure.
- the property contains only one data and has a UUID of 16 bits or 128 bits similar to the service.
- the property is defined as a value of various pieces of information and requires one attribute to contain each piece of information. Multiple properties of the above properties can be used.
- the attribute consists of four components and has the following meaning.
- Type the type of attribute
- FIG. 5 is a flowchart illustrating an example of a connection procedure method in a Bluetooth low power energy technology to which the present invention can be applied.
- the server transmits an advertisement message to the client through the three advertising channels (S5010).
- the server may be called an advertiser before connection, and may be called a master after connection.
- An example of the server may be a sensor (temperature sensor, etc.).
- the client may be called a scanner before the connection, and may be called a slave after the connection.
- An example of the client may be a smartphone.
- Bluetooth communicates over 40 channels across the 2.4 GHz band.
- Three of the 40 channels are advertising channels, and are used for exchanging packets, including various advertising packets, to establish a connection.
- the remaining 37 channels are used for data exchange after connection to the data channel.
- the client may transmit a scan request message to the server to obtain additional data (for example, a server device name) to the server.
- additional data for example, a server device name
- the server transmits a scan response message including additional data to the client in response to a scan request message.
- the scan request message and the scan response message are one end of the advertisement packet, and the advertisement packet may include only user data of 31 bytes or less.
- the data size is larger than 3 bytes, but there is a large amount of data overhead for sending data through connection, the data is divided twice using a scan request message / scan response message.
- the client transmits a connection request message for establishing a Bluetooth connection with the server to the server (S5020).
- the server and client then perform a security establishment procedure.
- the security establishment procedure may be interpreted as or included in Secure Simple Pairing.
- the security establishment procedure may be performed through phase 1 to phase 3.
- phase 1 a pairing procedure (phase 1) is performed between the server and the client (S5030).
- the client transmits a pairing request message to the server, and the server transmits a pairing response message to the client.
- the pairing procedure exchanges device-to-device authentication requirements, input / output (I) / output (I) capabilities, and key size information. This information determines which key generation method to use in Phase 2.
- phase 2 legacy pairing or secure connections are performed between the server and the client (S5040).
- Phase 2 a 128-bit Temporary Key and a Short Term Key (STK) are generated to perform legacy pairing.
- STK Short Term Key
- STK Short Term Key
- LTK long term key
- LTK Long Term Key
- phase 3 a key distribution procedure is performed between the server and the client (S5050).
- FIG. 6 illustrates a Bluetooth mesh architecture, according to an embodiment of the invention.
- the 'node' refers to devices forming the mesh network. Nodes and devices can be used interchangeably. In addition, packets and messages may be used interchangeably.
- Bluetooth mesh network refers to a network in which a plurality of devices can connect and transmit data through a Bluetooth network.
- the Bluetooth mesh system includes a controller stack 6020 operable to process a radio interface and a host stack 6010 operable to process high level data. do.
- Bluetooth LE layer (Bluetooth Low Energy Layer) exists at the bottom of the stack of the Bluetooth mesh structure.
- the Bluetooth LE layer includes the entire Bluetooth LE stack, not a single layer. Basic wireless communication is achieved through the Bluetooth LE layer.
- the Bluetooth mesh system is based on Bluetooth LE.
- the controller stack 6020 illustrated in FIG. 6 may be included in the Bluetooth LE layer.
- the host stack of the Bluetooth mesh system is referred to as a mesh host stack
- the controller stack of the Bluetooth mesh system is referred to as a mesh controller stack.
- the mesh controller stack 6020 includes a physical layer 6100, a link layer 6090, and a host controller interface HCI 6080.
- the mesh controller stack 6020 may be implemented using a communication module and a processor module that may include a Bluetooth wireless device.
- the mesh controller stack 6020 may be implemented as a hardware for transmitting and receiving a Bluetooth packet and a wireless transmission / reception module for receiving a Bluetooth signal of 2.4 GHz.
- the physical layer (wireless transceiver module 6100) transmits and receives a 2.4 GHz radio signal and uses Gaussian Frequency Shift Keying (GFSK) modulation and a frequency hopping technique consisting of 40 RF channels.
- GFSK Gaussian Frequency Shift Keying
- the link layer 6090 performs advertising and scanning functions using three advertising channels. Thereafter, the link layer 6090 creates a connection between devices, and provides a function of exchanging data packets of up to 42 bytes through 37 data channels.
- HCI 6080 provides an interface between mesh host stack 6010 and mesh controller stack 6020.
- the HCI 6080 allows the mesh host stack 6010 to provide commands and data to the mesh controller stack 6020, and the mesh controller stack 6020 to provide events and data to the mesh host stack 6010.
- the mesh host stack 6010 includes a mesh model layer 6030, a mesh application layer 6040, a mesh transport layer 6050, a mesh network layer 6060. And a mesh bearer layer 6070.
- the mesh bearer layer 6070 defines how messages / packets are transmitted between nodes based on the physical layer and link layer of Bluetooth. Specifically, mesh bearer layer 6070 defines how mesh PDUs are handled within a given communication system.
- an advertising bearer and an GATT bearer are defined.
- the advertising bearer delivers mesh PDUs using the Bluetooth LE's GAP advertising and scanning capabilities.
- GATT bearers use proxy protocols to allow devices that do not support advertising bearers to indirectly connect to nodes in the mesh network. In addition to this, other bearers may be additionally defined.
- Mesh network layer 6060 provides network functionality to mesh packets delivered through mesh bearer layer 6070. Specifically, mesh network layer 6060 defines how a transport message is directed to one or more elements. Details of the element will be described later. Mesh network layer 6060 defines various message address types and network message formats to allow mesh transport layer PDUs to be transmitted by mesh bearer layer 6070. Mesh network layer 6060 determines whether to relay (or relay) the message, and accept or reject the message for further processing. In addition, mesh network layer 6060 defines how network messages are encrypted and authenticated.
- the mesh transport layer 6050 defines encryption and authentication functions for end-to-end transmission of the mesh.
- the mesh transport layer 6050 includes a lower transport layer and an upper transport layer.
- the lower transport layer receives the PDU from the upper transport layer and delivers the PDU to the lower transport layer of the peer device.
- the lower transport layer of the peer device receiving the PDU delivers the received PDU to the upper transport layer.
- the lower transport layer divides the PDU into an appropriate length and reassembles the divided PDU.
- the upper transport layer performs encryption, decryption, and authentication on application information sent to or received at the access layer.
- the upper transport layer is also responsible for the transmission control messages generated internally and sent to higher transport layers.
- the transmission control message includes a message related to friendship or heartbeat.
- Mesh application layer 6040 defines the application function of the Bluetooth mesh.
- the mesh model layer 6030 is responsible for the implementation and behavior of the model, the implementation of messages, states, state bindings, and others defined in model specifications.
- the mesh model layer may include a light 6031, a switch 6032, and / or a power 6033.
- FIG. 7 illustrates a packet format used in a Bluetooth mesh network according to an embodiment of the present invention.
- a packet used in a Bluetooth mesh network is referred to as a mesh packet or a packet.
- a mesh packet includes a network ID field 7010, a time to live (TTL) field 7020, a sequence number field 7030, and a source address field. 7040, a destination address field 7050, and a payload field 7060.
- the payload field 7006 includes an Opcode field 7070 and a data field 7080.
- the network ID field 7010 includes information for identifying a Bluetooth mesh network (ie, network ID).
- the value of the network ID field 7010 may be derived from the network key of the mesh.
- the key of the network may be referred to as a NetKey. All nodes in the mesh network can share the network key. Therefore, nodes belonging to the same mesh network may generate packets having the same network ID.
- the TTL field 7020 contains hop number information to which a packet can be relayed.
- the TTL value may indicate whether the packet has been relayed and transmitted and / or whether the packet can be relayed later.
- the TTL value is an integer value and decreases each time a packet is relayed. For example, when the TTL value is 3, the message may be relayed up to 3 hops. A message with a TTL value of zero is not relayed and can go one hop.
- the initial value of the TTL field 7020 may be set by a transport layer or an application program. More details regarding hops, relay nodes and relays will be described later.
- the sequence number field 7030 contains sequence number information designed primarily to protect against Replay Attacks.
- the sequence number may be set to the serial number of the element by the mesh network layer.
- the sequence number may increase by one for each new network PDU.
- the source address field 7040 contains information identifying the node that generated the packet. That is, the source address field 7040 includes address information of the source node that generated the packet.
- the source address is a unicast address. Unicast addresses are addresses for identifying a single element.
- the source address field 7040 is untouched by the node acting as the relay node.
- the destination address field 7050 contains information identifying the node (or node to which the packet is directed) that should receive the packet.
- the destination address is a unicast address, group address or virtual address.
- Group addresses are multicast addresses that represent a single or multiple elements.
- a virtual address can be assigned to a single or multiple elements and acts as a kind of label.
- the destination address may also be a broadcast address.
- Bluetooth mesh networks define a number of message types. Messages have their own command code for each type.
- FIG. 8 illustrates a Bluetooth mesh network topology according to an embodiment of the present invention.
- Bluetooth LE devices typically use a point-to-point network architecture to enable device-to-device connectivity. This connection is called a ⁇ piconnet '' in the Bluetooth Core Specification.
- a Bluetooth mesh network forms a many-to-many network structure. That is, all the devices that make up the mesh can communicate with each other. The end-to-end range can be extended by the device relaying messages to other devices.
- Node means a device included in the mesh network. Devices not included in the mesh network are referred to as unprovisioned devices.
- a node may consist of one or more components called elements. Each element can be controlled independently.
- Provisioning is the process of turning an unconfigured device into a node.
- Provisioner means a device used for provisioning.
- provisioning may be performed through an application installed in a smart device (smartphone, tablet, etc.).
- the smart device is a provisioner.
- Provisioning is itself a secure procedure.
- Low power nodes are nodes that have limited power usage. Low power nodes cooperate with other nodes that have no power usage constraints. Low-power nodes can normally sleep while waking up by interaction or periodically. The low power node may process the received message if the received message satisfies a specific condition.
- a friend node corresponds to a node cooperating with a low power node.
- Friend nodes have no power usage restrictions. For example, a node connected to a permanent AC power source may be designated as a friend node.
- the friend node stores the message sent to the low power node, and then forwards the stored message when the low power node requests the message.
- Friend nodes and low power nodes are within a single hop distance.
- the relationship between low power node and friend node is defined as Friendship. Friendship allows Bluetooth mesh networks to operate in a power efficient manner.
- a hop represents a link between devices in a Bluetooth mesh network. That is, a link formed between a source node and a relay node, a relay node and a relay node, a relay node and a destination node, and a source node and a destination node may be referred to as a hop.
- a relay node In a Bluetooth mesh network, there are several nodes that relay (or relay) a message between a source device transmitting data and a destination device receiving data.
- a relay node is a node having a relay function (the function for which a node relays a message). The relay node may retransmit the received message if certain conditions are met. Relays allow messages to traverse the entire mesh network. The number of hops a message has may be limited by the TTL value of the TTL field described above. As an example, if the TTL value is 3, the message may be relayed for up to 3 hops.
- the mesh network disclosed in FIG. 8 has nine nodes (A, B, C, D, E, F, G, H and T), five low power nodes (I, J, K, L and M), three Relay nodes Q, R and S, two friend nodes Q and P and one Friend Feature (not used) node N are included.
- Node P is a friend node of nodes I, J and K.
- Node O is a friend node of nodes L and M.
- Node N does not have Friendship, unlike Node P and Node O. Therefore, only node P and node O are friend nodes.
- Node T is only connected to the mesh network using the GATT bearer. That is, node T corresponds to a Bluetooth device that has a Bluetooth LE stack but does not have a Bluetooth mesh stack.
- node T sends the message to node S using a GATT bearer. The node S then retransmits the received message using an ADV (Advertising) bearer.
- Nodes H, R, N, and O are within the wireless range of node S and thus receive a message.
- Node O stores the message and then forwards the message to node L.
- FIG 9 illustrates a tree structure according to an embodiment of the present invention.
- the present invention utilizes the concept of tree structure described below.
- a node represents a Bluetooth device included in the mesh.
- the nodes of the tree structure only have meaning as components of the tree structure.
- each node of the tree structure may correspond to a node of the Bluetooth mesh network.
- the tree structure (hereinafter referred to as tree for convenience) is a set having a plurality of nodes.
- the tree is an acyclic graph and has a hierarchical structure.
- Nodes or nodes are the basic elements that make up a tree.
- the root node is the node at the top of the tree structure.
- the root node does not have a parent node.
- Non-root nodes are divided into n subtrees with no duplicate elements.
- a subtree is a small tree belonging to a large tree. Each node has as many subtrees as there are child nodes.
- a leaf node (or terminal node) is a node without child nodes. The order of leaf nodes is zero.
- a branch node refers to a node whose order is not zero and is also referred to as a non-terminal node or an internal node.
- the parent node is a node with subtrees.
- a child node is a subnode belonging to a parent node.
- a leaf node is a node to which another node is not connected below. The leaf node's degree is zero.
- Sibling nodes represent child nodes having the same parent. Sibling nodes have the same level.
- An ancestor node represents a set of parent nodes of a node.
- a descendant node represents all nodes in a subtree of a node.
- Branch represents a connection line between nodes. Branches may also be referred to as links, edges, or branches.
- the degree represents the number of subtrees of the node.
- the degree of tree is the largest order of the nodes. In FIG. 9, the orders of A, B, and G are 2, 3, and 1, respectively, and the order of the tree is 3.
- the level represents the depth from the root node. Depth represents the level of a node in the tree.
- the level of the root node is one. However, unlike FIG. 9, in some cases, the level of the root node may be represented by zero.
- the depth of tree represents the maximum level of nodes in the tree.
- the height represents the number of edges in the path from the root node to that node. The height of the tree corresponds to the height of the node with the maximum level or the largest depth value.
- a path is a sequence of nodes that lies between the paths from one node to another.
- the path length indicates the number of nodes passing from the source node to the destination node.
- FIG. 9 is an example of a tree structure.
- the tree contains nodes A through N.
- 9 is a tree where the level of the root node is one.
- the root node is A and the leaf nodes are F, I, J, K, L, M and N.
- the child nodes of A are B and C.
- the parent node of F is B.
- D, E and F are sibling nodes.
- the ancestor nodes of K are A, B and E.
- Progeny nodes of C are G, H, L, M and N.
- the order of A is 2, the order of B is 3, and the order of M is 0.
- the order of the tree is three.
- G has a height of 2.
- the height of the tree is three.
- the depth of D is three.
- the levels of D, E, F, G and H are three.
- FIG. 10 illustrates a flooding-based packet forwarding method in a Bluetooth mesh network according to an embodiment of the present invention.
- the data transmission method of the Bluetooth mesh network may be classified into a flooding method and a routing method according to the operation of the relay node. Data is transmitted across several intermediate relay nodes from the source node to the destination node based on the flooding or routing method.
- the routing method is a method in which a source node transmits a message to a specific relay node, and then the specific relay node transmits a packet with information of another relay node or a destination node to resend the message.
- the routing method uses a broadcasting channel or a point-to-point connection for receiving and retransmitting messages.
- the routing method has an advantage of saving radio wave resources than the flooding method.
- the routing method has a disadvantage in that the complexity of the implementation is large and the route information is transmitted and received between relay nodes in order to construct a routing table.
- Flooding is a method in which relay nodes receiving a message shoot the air again in the air by using the property that radio waves spread in all directions in the air.
- the source node transmits a message to the relay nodes through a broadcast channel, and the relay nodes which receive the message transmit the message to neighboring relay nodes to the destination node.
- the flooding method uses a broadcasting channel for receiving and retransmitting a message, and can extend the transmission range of the message.
- Flooding-based mesh networks are dynamic networks.
- the device may be able to receive and send (or retransmit) the message at any time as long as the device's density is satisfied.
- the flooding scheme has an advantage of easy implementation because the relay node only receives and transmits radio waves again. Also, unlike the routing method, the flooding method can deliver a message without establishing a routing table.
- the flooding scheme has a low complexity system and control structure, but has a disadvantage in that the overall network traffic is increased due to the nature of retransmitting the received message by all relay nodes receiving the message.
- a problem occurs in a specific situation in which all nodes must transmit packets.
- a to K are nodes included in the mesh network.
- the circular outlines of the dash line include nodes in the center and indicate the range to which packets transmitted by each node can be delivered.
- the other node may receive a packet transmitted from the specific node, and in some cases relay the received packet.
- Each node may be included in the packet forwarding range of one or more other nodes.
- all nodes may generate and transmit specific packets, respectively, for a specific purpose.
- all nodes may have to transmit certain packets simultaneously or in a very short time. For example, when checking the state of a mesh network through a server, every node must generate a packet containing its state information and send it to the server. At this time, since packets are generated at all nodes, the packet amount of the mesh network rapidly increases. The surge in packet volume drastically degrades network performance.
- all nodes need to periodically generate and transmit specific packets, the problem of deterioration of the mesh network becomes greater. For example, when there are N nodes included in the mesh network, nodes except for the source node and the destination node must relay N-2 packets, respectively. Therefore, the traffic volume of the mesh network may suddenly increase, and delay may occur in packet delivery.
- the present invention provides a method of delivering a specific packet without a sudden increase in network traffic when every node needs to generate and transmit a specific packet for a specific purpose in a flooding-based Bluetooth mesh network. Suggest.
- the Bluetooth mesh network to which the present invention is applied corresponds to a mesh network based on a flooding scheme.
- the device (or node) mentioned below represents a Bluetooth LE device included in one Bluetooth mesh network.
- FIG. 11 illustrates that a tree structure path is formed through an algorithm for selecting an adjacent node in a Bluetooth mesh network according to an embodiment of the present invention.
- the mesh networks of (a) and (b) are all based on a floating scheme.
- (a) shows that a packet generated at each node is transmitted using a general flooding scheme.
- packets generated at each node may be transmitted to all nodes included in a range in which the packet can be transmitted through a broadcasting scheme. Packets generated from one node may be sent to a plurality of adjacent nodes. A node receiving a packet transmitted from another node may relay the received packet in some cases.
- (b) shows that a tree structure path is formed by applying a Near Node Selection Algorithm to the network of (a).
- the structure disclosed in (b) is a structure in which B is a root node, which corresponds to an example of a path.
- a path of a tree structure may be formed when all nodes need to transmit specific packets, respectively, in order to acquire specific information of all nodes. Can be.
- the specific information may be information indicating a status of the node
- the specific packet may be a status packet including status information.
- the path may be formed through an adjacent node selection algorithm. Details of the neighbor node selection algorithm will be described later.
- each node corresponds to a device (node) of a Bluetooth mesh network.
- the top node of the tree structure is the root node.
- Specific information generated at each node may be delivered to a root node through a path using a specific packet.
- the root node can obtain the information of each node in the received specific packets, and transmit it to the outside of the network.
- the root node is also the node that starts the neighbor node selection algorithm.
- the root node may be designated as one of the nodes in the mesh network by the control device of the mesh network.
- a node relatively close to the root node may be referred to as a high node.
- a node relatively far from the root node may be referred to as a low node.
- a parent node of a specific node corresponds to a parent node or an ancestor node
- a child node of a specific node corresponds to a child node or a child node. That is, the upper node has a lower level than the lower node.
- node A is a parent node of node J and a child node of node B.
- Node B is the parent of node J.
- Node K is the parent of Node D and Node C.
- the transmission path of a particular packet may be formed through an adjacent node selection algorithm. If the specific information is the status information of the node, the specific packet corresponds to the status packet.
- the neighbor node selection algorithm is an algorithm that forms a path for delivering specific information of each node by forming a relationship between neighbor nodes based on a flooding scheme.
- Each node except the root node selects an upper neighbor node through a neighbor node selection algorithm.
- each node may select a lower adjacent node.
- the node receives a specific packet from a lower neighbor node, the node transmits a new specific packet generated based on the received specific packet to the upper neighbor node. Details of the neighbor node selection algorithm will be described later.
- the neighbor node represents a node in which a path / relationship for transmitting a specific packet with itself is formed among neighboring nodes. Every node may have at least one adjacent node. Each node stores information of the neighbor node selected through the neighbor node selection algorithm. Each node sends a specific packet to a neighbor node (upstream neighbor node) close to the root node. That is, unlike (a), each node transmits a specific packet only to neighboring nodes in which a relationship is formed in advance. The neighbor node of each node is determined by the neighbor node selection algorithm. A straight dash line between two nodes indicates that the two nodes are adjacent node relationships. Nodes in neighboring node relationships store each other's information.
- the neighbor node includes an upper neighbor node and a lower neighbor node.
- a high near node is a node that is relatively closer to the root node of one node's neighbor node (s).
- the upper neighbor is the destination node of a particular packet generated at the current node.
- a low near node is a node (s) that is not an upper neighbor node of one node's adjacent node (s).
- the lower neighbor node is a node delivering specific information. That is, the upper neighbor node is an upper node having a lower level than the lower neighbor node. There may be more than one lower neighbor node registered in one node. Certain nodes may not register lower neighbors.
- Each node may store neighbor nodes as upper neighbor nodes or lower neighbor nodes.
- the names of the upper neighbor node and the lower neighbor node may be changed.
- the root node forms a path with one or more subordinate adjacent nodes.
- Leaf nodes form a path with one parent neighbor node.
- Leaf nodes do not have lower neighbor nodes.
- the inner node may form a path with one upper neighbor node and one or more lower neighbor nodes. Specific information of each node is conveyed to the root node through the formed route.
- adjacent nodes of node I are node F and node B.
- Node F is the lower neighbor of node I.
- Node B is the root node and at the same time the parent neighbor of Node I.
- Leaf nodes F, E, D, K and G do not have lower adjacent nodes.
- Node H is the upper neighbor of node E and the lower neighbor of node B.
- Node F generates a packet containing its information and sends the packet to Node I.
- Node I obtains the information of Node F using the received packet.
- node I transmits a packet containing node F and its information to node B.
- address information and data of the transmitted packet may be changed.
- Packets generated by nodes C and D are sent to node K.
- Node K obtains information of nodes C and D using the received packets.
- Node K then generates a packet containing the information of nodes C, D and K and sends it to Node B. In this way, the information of each node is transmitted to the root node. Details of the packet will be described later.
- a packet related to specific information generated at each node may be transmitted to a root node along a predetermined path of a tree structure as shown in (b).
- the root node may acquire information of each node and transmit specific information of all nodes including its own information to the outside.
- the number of packets being relayed in order to collect information of all nodes is significantly smaller than in the scheme (a). As a result, the traffic of the mesh network can be greatly reduced.
- FIG. 12 illustrates a detailed process of an algorithm for selecting an adjacent node in a Bluetooth mesh network according to an embodiment of the present invention.
- a tree structure path for transmitting a specific packet may be formed through a neighbor node selection algorithm ((a) to (f)).
- nodes A to J are nodes included in one Bluetooth mesh network.
- 'node' may be omitted and may be expressed as 'A to J'.
- the neighbor node selection algorithm two kinds of packets are used. i) One is a packet that each node broadcasts to find a node adjacent to it. ii) The other is a packet sent by the node that received the broadcasted packet to find an adjacent node from the neighboring node in response.
- a packet that each node broadcasts to find a node adjacent to itself may be referred to as a FindNearNode packet or a request packet.
- a packet transmitted in response to the FindNearNode packet may be referred to as a SelectNode packet or a response packet.
- Table 2 shows a FindNearNode packet and a SelectNode packet format. In addition to this, other fields may be further included, and names of packets and fields may be changed.
- the FindNearNode packet includes a Time To Live (TTL) field, a source address field, a destination address field, and a transport PDU field.
- TTL Time To Live
- the transport PDU field includes an Opcode that identifies the type of packet.
- the TTL of the FindNearNode packet (request packet) is set to one. Therefore, the FindNearNode packet can be delivered only one hop away. Therefore, a node that receives a FindNearNode packet cannot relay the received packet.
- the source address is set to its own address. That is, the source address is set to the mesh address of the node that generated the FindNearNode packet.
- the destination address is set to the broadcast address.
- the command code is set to a specific code indicating that the packet is a FindNearNode packet. For example, the command code may be set to 0x0001.
- the TTL of the SelectNode packet (response packet) is set to one. As with the FindNearNode packet, the SelectNode packet can carry only one hop.
- the source address is set to its own address. That is, the source address is set to the mesh address of the node that generated the SelectNode packet.
- the destination address is set to the mesh address of the node that sent the FindNearNode packet. SelectNode packets are not broadcast.
- the node receiving the FindNearNode packet obtains the address information of the node transmitting the FindNearNode packet using the received packet. Thereafter, the node receiving the FindNearNode packet generates and transmits a SelectNode packet having the obtained address as a destination address.
- the SelectNode packet is transmitted only if the current node has not yet established a path to the root node.
- a node on which a path is formed may be understood as a node that determines (or selects) an upper neighbor node. That is, the SelectNode packet is transmitted only to exchange information with each other and to register as a neighbor node only when the current node first receives a FindNearNode packet.
- the exchanged information may be mesh address information. After each node establishes a path, it does not send a SelectNode packet even if it receives a FindNearNode packet.
- (a) shows a process in which the root node broadcasts a request packet (FindNearNode packet) to find an adjacent node.
- a request packet SendNearNode packet
- one node included in the mesh network obtains a command message indicating start from a device controlling the mesh network.
- the start command message may be a message indicating start of a procedure for acquiring specific information of all nodes, or a message indicating start of forming a path for transmitting a specific packet.
- the user may command the start to one node (device) included in the mesh using the control device. Thereafter, the node acquiring the start command generates and broadcasts a request packet to find an adjacent node.
- the device for controlling the mesh network may correspond to a device for managing the mesh network, a controller, a device for provisioning, or a smart device as an external device.
- the start command may be sent from a server outside the mesh network.
- the node acquiring the start command starts the path formation, which corresponds to the root node (top node) of the tree structure.
- B corresponds to the root node from which the start command is obtained. B acquires a start command and then broadcasts a request packet. H, I, G, A and K are within the transmission range of the request packet broadcast by B. Thus, H, I, G, A, and K may each receive a request packet.
- the peripheral node (s) that first received the request packet transmit a response packet to the node that transmitted the request packet, respectively.
- the peripheral node (s) receiving the request packet for the first time registers the node transmitting the request packet as an adjacent node. At this time, the node receiving the request packet registers the node transmitting the request packet as a higher neighbor node among neighbor nodes.
- the node receiving the response packet registers the node that transmitted the response packet as a lower neighbor node among the neighbor nodes.
- the node may register the neighbor node by storing the mesh address and / or command code included in the packet. The order of registration and response packet transmission of neighbor nodes performed by one node may be changed.
- each node may be configured to register only the node (s) that transmits the response packet when the response packet arrives within a predetermined time (or timeout) as a lower neighbor node of each node. If no response packet is received within a predetermined time after the node broadcasts the request packet, the node may be determined as a (leaf) node having no lower neighbor node.
- the root node can obtain information of a plurality of adjacent nodes. Nodes exchange information with each other by exchanging request packets and response packets, and register each other as neighboring nodes. Through the above-described process, a transmission path of a specific packet is formed between the root node and adjacent nodes.
- H, I, G, A and K register each other as adjacent nodes. Specifically, H, I, G, A, and K register B, the node that sent the first received request packet, as a (parent) neighbor node, respectively. Thereafter, H, I, G, A and K each generate a response packet having the address of B as the destination address and send it to B. B registers H, I, G, A, and K, which sent response packets, as (lower) neighbor nodes. As such, B and H, I, G, A and K register each other as neighboring nodes. Adjacent nodes of B are H, I, G, A and K. In the tree structure, H, I, G, A and K are child nodes of B and sibling nodes of each other.
- Process (c) shows a process in which the nodes whose paths are formed broadcast a request packet to find themselves and neighboring nodes.
- Process (c) is performed by nodes registered as neighboring nodes of the root node through process (b).
- Nodes (H, I, G, A, and K) registered as neighboring nodes of the root node generate and broadcast request packets to find nodes adjacent to them (except the root node), respectively. Broadcast request packets are sent to nodes that are within the range in which each request packet can be sent.
- the node receiving the request packet may be a node that has not yet formed a path, a root node, or another adjacent node of a root node that has already formed a path.
- step (c) the request packet broadcasted by H is transmitted to E, I, B, K, and D.
- Request packets I broadcast are sent to F, H and B.
- the request packet broadcast by G is sent to B and A.
- the request packet broadcast by A is sent to G, B and J.
- the request packet broadcast by K is transmitted to H, B, C and D.
- step (d) shows that some of the nodes receiving the request packet broadcast in step (c) transmit the response packet.
- the response packet is sent by the node (s) that first received the request packet.
- the response packet is sent to the node that sent the request packet received at each node.
- Nodes that first receive the request packet register the node that transmitted the request packet as a higher neighbor node.
- Nodes that receive a response packet (within timeout) register the node that sent the response packet as a lower neighbor node. As described above, the order in which response packet transmission and neighbor node registration are performed is irrelevant.
- a node that has received a request packet multiple times does not transmit a response packet to the request packet received after the second.
- Nodes that have received a response packet but have previously received a response packet and have already been routed i.e., nodes whose upper neighboring nodes are registered
- a node with a route already established can either ignore or discard the received request packet.
- step (d) C, D, E, F, and J are nodes initially receiving the request packet.
- C, D, E, F, and J each send a response packet to the node that sent the received request packet.
- H has received a request packet from I and K, but does not send a response packet since it has previously received the request packet (step a).
- F sends a response packet to I.
- E sends a response packet to H.
- C and D send the response packet in K.
- J sends a response packet to A.
- F registers I as an upper neighbor, and I registers F as a lower neighbor.
- E registers H as an upper neighbor, and H registers E as a lower neighbor.
- C and D register K as the upper neighbor node, respectively, and K register C and D as the lower neighbor node.
- J registers A as an upper neighbor, and A registers J as a lower neighbor.
- (e) shows a process in which nodes newly formed in the path (d) broadcast request packets to find adjacent nodes.
- the broadcast and neighbor node registration processes are repeatedly performed in the neighbor node selection algorithm.
- the neighbor node selection algorithm ends when all leaf nodes are determined, or when neighbor node relationships are established at all nodes.
- C, D, E, F, and J each broadcast a request packet to find a node adjacent to it.
- the request packet broadcast by F is sent to I.
- the request packet broadcast by E is sent to H.
- the request packet broadcast by D is sent in H and K.
- the request packet broadcast by C is sent to K.
- the request packet broadcast by J is sent to A.
- I, H, K and A are not all nodes that first received the request packet.
- I, H, K, and A received the request packet in step (a).
- I, H, K, and A do not transmit response packets.
- C, D, E, F, and J all do not receive a response packet within a preset time.
- Process (f) represents the final path of the tree structure formed through the process (a) to (e).
- the specific packet generated by each node is transmitted to the upper neighbor node through the path.
- the root node acquires information of each node.
- the shape of the tree structure in one mesh network can be changed depending on which node is designated as the root node.
- a detailed process of transmitting the packet or the information through the formed path refers to the description of FIG. 11 (b) described above.
- one node may receive different request packets transmitted from each of the plurality of neighbor nodes simultaneously or in a short time.
- the node receiving the request packets transmitted from different nodes should select one of the plurality of nodes as the upper neighbor node. It demonstrates concretely below.
- FIG. 13 illustrates that in a Bluetooth mesh network according to an embodiment of the present invention, one node receives a FindNearNode packet from a plurality of neighbor nodes and transmits a SelectNode packet to one selected node.
- one of a plurality of peripheral nodes may select an upper neighbor node.
- a node that has not yet registered an upper neighbor node may receive request packets (FindNearNode packets) transmitted from each of the plurality of neighbor nodes simultaneously or within a short time. That is, different request packets each generated by a plurality of different nodes may be received simultaneously or in a short time.
- request packets SendNearNode packets
- Child nodes in a tree structure can only be associated with one parent node.
- each node in the Bluetooth mesh network of the present invention may form a path with only one upper neighbor node. Therefore, a node receiving request packets transmitted from different nodes should select a higher neighbor node as one node among a plurality of nodes that transmit the request packets. After one node is selected, a response packet may be sent.
- the method of selecting one node among the plurality of nodes that have transmitted the request packet is not performed in a node that has already registered a higher neighbor node.
- a method of selecting one of a plurality of neighboring nodes to which the node transmits a response packet as a higher neighbor node may be referred to as a neighbor node selection method or a node selection method.
- the present invention proposes three selection methods.
- nodes A and C are nodes that have already registered a higher neighbor node by receiving a request packet and sending a response packet.
- Node B is a peripheral node of nodes A and C, and has not yet received a request packet and has not registered a higher neighbor node.
- Node B receives request packets broadcast from Nodes A and C, respectively. 13 shows that a request packet sent from node A was first received. Unlike shown in FIG. 13, request packets may be received simultaneously.
- the first method is to select the node which sent the received request packet earlier as the upper neighbor node.
- Node B first determines Node A, which has transmitted a request packet, as a higher neighbor node, and transmits a response packet to Node A.
- this method can select a more adjacent node as a higher neighbor node and quickly form a path.
- the second method is a method of selecting a higher neighbor node based on the success rate of transmission of request packets broadcast a plurality of times from neighbor nodes.
- each node of the mesh network of the present invention repeatedly broadcasts a request packet a predetermined number of times for a predetermined time when transmitting the request packet.
- the node calculates a transmission success rate of the received request packets, and selects one as a higher neighbor node that satisfies a predetermined packet transmission success rate condition.
- the packet transmission success rate is related to the number of times a request packet was broadcast and the number of times the request packet was received.
- the packet transmission success rate may be expressed as a ratio (or a percentage) between the number of times the request packet is received and the number of broadcasts.
- the node may calculate the packet transmission success rate based on the number of request packets reached within a predetermined time. The predetermined time may be set equal to the time taken for the request packet to be broadcast repeatedly.
- the node A broadcasts each request packet a predetermined number of times for a predetermined time (S13010).
- the node C also broadcasts the request packet a predetermined number of times for a predetermined time (S13020).
- Node B may receive all or part of the request packets broadcast multiple times from Node A and Node C.
- a node may be configured to broadcast a request packet five times in one second. Thereafter, Node B receives the request packet broadcast by Node A three times. Node B receives the request packet broadcast by Node C five times. Node A's packet transmission success rate is 60 percent, and Node C's packet transmission success rate is 100 percent.
- the mesh system may pre-set a 100 percent criterion for the packet transmission success rate at which the node selects the upper neighbor. In this case, node B selects node C that satisfies the criteria as the upper neighbor node. Thereafter, the Node B transmits a response packet to the selected upper neighbor node (S13030).
- the number of broadcasts of the request packet, the time broadcasted repeatedly, and / or the packet transmission success rate may be predetermined and may be appropriately changed depending on the internal or external environment of the mesh network.
- the broadcast from the closer node increases the number of packets sent to the neighbor node. Therefore, according to this method, there is an advantage that a path can be formed by selecting a closer node as a higher neighbor node.
- the third method is to select an upper neighbor node according to the signal strength of the received request packet.
- a node that receives a plurality of request packets simultaneously or within a short time selects a node that has transmitted a packet having the largest signal strength among the received request packets.
- RSSI Receiveived Signal Strength Indicator
- RSSI Received Signal Strength Indicator
- the received signal is more likely to exhibit a higher signal strength as it is transmitted from a closer node. Therefore, according to this method, there is an advantage that a node closer to the current node can be selected as a higher neighbor node.
- the first to third methods described above may be used interchangeably.
- the packet transmission success rate and the signal strength of the packet may be considered at the same time.
- the second or third method may be complementary.
- a closer node may be determined as a higher neighbor node. This allows for more efficient path formation.
- FIG. 14 illustrates a method of transmitting status of each node through a path after a tree structure path is formed in a Bluetooth mesh network according to an embodiment of the present invention.
- state information of each node may be delivered to a root node through a preformed path. Therefore, the state check of the mesh network can be performed without surging the traffic of the mesh network.
- a packet that a node sends to its parent neighbor node to announce its status In the following, this packet may be referred to as a status packet.
- the status packet includes status information of the node that generated the status packet.
- the other is a packet that a node receives a status packet from a lower neighbor node and transmits in response thereto.
- a packet transmitted in response to the status packet may be referred to as a status response packet.
- a status packet may be generated and sent periodically.
- a packet that a node sends to a higher neighbor node to indicate that it is operating normally In the following, this packet may be referred to as a LowNodeAlive packet.
- a response packet that a node receiving a LowNodeAlive packet sends to a lower neighbor node in response a packet transmitted in response to a LowNodeAlive packet may be referred to as a HighNodeAlive packet.
- the node that sent the LowNodeAlive packet can check whether the LowNodeAlive packet sent by the node has been transmitted through the received HighNodeAlive packet.
- LowNodeAlive packet may be included in the status packet.
- HighNodeAlive packet may be included in the status response packet.
- Table 3 below shows the LowNodeAlive packet and HighNodeAlive packet formats. In addition to this, other fields may be further included, and names of packets and fields may be changed.
- the LowNodeAlive packet includes a Time To Live (TTL) field, a source address field, a destination address field, and a transport PDU field.
- the transport PDU field includes an instruction code (Opcode) for identifying the type of packet, the address of the last node (that is, the root node) to which the packet is to be delivered, and the status information of the current node and the received lower node.
- the TTL of the LowNodeAlive packet is set to one. Therefore, the LowNodeAlive packet can be delivered only one hop distance.
- the node receiving the LowNodeAlive packet cannot relay the received request packet.
- the source address is set to its own address. That is, the source address is set to the mesh address of the node that generated the LowNodeAlive packet.
- the destination address is set to the mesh address of the high node.
- the upper node may be an upper neighbor node or a root node of the current node.
- the command code is set to a specific code indicating that the packet is a LowNodeAlive packet.
- a specific code indicating that it is a LowNodeAlive packet may be set to 0x0003.
- 2 bytes of address information and 2 bytes of status information of the last node to which a packet should be delivered may be represented.
- the TTL of the HighNodeAlive packet is set to one. Like the LowNodeAlive packet, the HighNodeAlive packet can carry only one hop.
- the source address is set to its own address. That is, the source address is set to the mesh address of the node that generated the HighNodeAlive packet.
- the destination address is set to the mesh address of the low node that sent the HighNodeAlive packet. For example, a specific code indicating that it is a HighNodeAlive packet may be set to 0x0004.
- the node that has transmitted the LowNodeAlive packet to the higher neighbor node can check whether the transmitted packet has been delivered by receiving the HighNodeAlive packet from the higher neighbor node.
- (a) shows an example of a state in which a transmission path for a specific packet is formed through the above-described neighbor node selection algorithm (process of FIG. 12).
- B is the root node that received the start command.
- (b) indicates that nodes having no lower neighbor node transmit a LowNodeAlive packet with TTL set to 1 to the upper neighbor node. Nodes having no lower neighbor nodes correspond to leaf nodes in the tree structure.
- C, D, E, F, G, and J send a LowNodeAlive packet to each higher neighbor node.
- the LowNodeAlive packet may be generated and transmitted periodically at regular time intervals.
- K, H, I, B, and A receiving the LowNodeAlive packet obtain status information of their lower neighbor node.
- K, H, I, B and A respond by sending HighNodeAlive packets to the node that sent the LowNodeAlive packets, respectively.
- (c) shows that K, H, I, and A receiving the LowNodeAlive packet transmit the LowNodeAlive packet to the root node B, which is the upper neighbor node again.
- the LowNodeAlive packet transmitted includes both the node generating the LowNodeAlive packet and the state information of the lower neighbor node of the node. That is, the LowNodeAlive packet generated at the internal node except the root node and the leaf node includes the state information of the internal node and all subordinate nodes (subordinate nodes) of the internal node.
- K generates a LowNodeAlive packet including the state information of D and C and its state information, and sends it to B.
- H generates a LowNodeAlive packet containing the state information of E and its state information, and sends it to B.
- I generates a LowNodeAlive packet containing the state information of F and its state information, and sends it to B.
- A generates a LowNodeAlive packet including J's status information and its status information, and sends it to B.
- Specific packets received by the root node from its subordinate neighbors include specific information of one or more non-overlapping different nodes, respectively.
- a specific packet transmitted by H includes specific information of H and E
- a specific packet transmitted by K includes specific information of C, D, and K.
- the specific packet transmitted by I includes specific information of I and F
- the specific packet transmitted by A includes specific information of A and J.
- the specific packet transmitted by G includes only specific information of G. That is, specific packets transmitted by each of H, I, K, A, and G each include specific information of different nodes.
- the root note can obtain information indicating whether all nodes except the root node operate normally.
- the root node can transmit the state information of other nodes and its own state information to the control device or an external server.
- FIG. 15 illustrates a method for identifying an abnormality occurring in some nodes after a transmission path of a specific packet is formed through an adjacent node selection algorithm in a Bluetooth mesh network according to an embodiment of the present invention.
- the mesh network disclosed in FIG. 15 assumes that a tree structure path for transmitting a specific packet is already formed through the above-described neighbor node selection algorithm.
- the packet transmission path is not shown, but has the same structure as that of FIG. Node B is the root node.
- FIG. 15 shows that node J has a problem. Problems occurring at node J can be caused by a variety of causes, either internal or external to the device. All nodes except node J work fine.
- the LowNodeAlive packet can be sent to the root node via a path formed as a status packet.
- (a) shows that leaf nodes C, D, E, F and G transmit a LowNodeAlive packet to each upper neighbor node.
- LowNodeAlive packet may be set to be transmitted periodically. In this case, the state check of the network may be performed at regular time intervals.
- B, I, H, and K each receive a LowNodeAlive packet and send a HighNodeAlive packet in response.
- the LowNodeAlive packet may not be transmitted to the upper neighbor node A within the timeout time. In this case, A cannot obtain the state information of J. Also, since A did not receive the LowNodeAlive packet, A does not transmit the HighNodeAlive packet.
- (b) indicates that internal nodes transmit a LowNodeAlive packet to the root node.
- Internal nodes are H, I, K, and A except for leaf nodes and root nodes.
- the internal node may periodically transmit the LowNodeAlive packet to the higher node regardless of whether the LowNodeAlive packet has been received from the lower neighbor node within a timeout.
- the internal node When the inner node receives a LowNodeAlive packet from a lower neighbor node within a timeout, the internal node generates and transmits a LowNodeAlive packet including its own state information and the lower node (s) state information to the upper neighbor node.
- the internal node If the internal node does not receive the LowNodeAlive packet from the lower neighbor node within the timeout, the internal node generates and transmits a LowNodeAlive packet including its status information to the upper neighbor node. At this time, the internal node may transmit information indicating that an abnormality has occurred in a specific node.
- I, H, and K each generate a LowNodeAlive packet including state information of a lower node and transmit the packet to a root node, which is a higher neighbor node.
- A did not receive a timeout LowNodeAlive packet from the lower neighbor node J (step (a)). Therefore, A generates a LowNodeAlive packet including information indicating that J status information has not been obtained or information indicating that there is an error, along with its status information, and transmits the generated packet to B. This indicates that the mesh network has an error in J.
- 16 is a flowchart illustrating a process of obtaining, by a root node, specific information of other nodes using a specific packet in a Bluetooth mesh network according to an embodiment of the present invention.
- FIG. 16 shows a detailed process performed in the root nodes of FIGS. 11 and 12 described above.
- the root node obtains a start command (S16010).
- the start command may correspond to a message identical or similar to the start command message described above with reference to FIG. 12A.
- the root node broadcasts a request packet for discovering a node adjacent to the root node (S16020).
- This request packet may be the FindNearNode packet described above.
- the FindNearNode packet refer to the description regarding FIG. 12 described above.
- the root node receives a response packet for the request packet from each of the plurality of nodes that have received the request packet (S16030).
- This response packet may be the above-described SelectNode packet.
- the root node registers the plurality of nodes that have transmitted the response packet as lower neighbor nodes (S16040).
- the lower neighbor node carries specific information. For details of the lower neighbor node, refer to the detailed description of FIG. 11 described above.
- the root node receives a specific packet including specific information from each of the plurality of nodes belonging to the lower neighboring node (S16050).
- the specific packet received contains specific information of one or more non-overlapping different nodes, respectively. For details regarding this step, refer to the description of FIG. 14 (c) described above.
- FIG. 17 is a flowchart illustrating a process in which a node other than a root node transmits specific information to a higher neighbor node using a specific packet in a Bluetooth mesh network according to an embodiment of the present invention.
- 17 illustrates a process of delivering specific information to a root node in nodes other than the root node. 17 may be performed in an inner node or a leaf node of a tree structure.
- the first node receives a first request packet broadcasted by another node to discover a node adjacent to the node (S17010).
- the first node registers the node transmitting the first request packet as a high near node (S17020).
- the upper neighbor node is a destination node to which a specific packet generated by the first node is delivered.
- the first node broadcasts a second request packet for discovering a node adjacent to the first node (S17030).
- the first node When the second request packet is transmitted to an adjacent node, the first node receives a response packet for the second request packet from the node that received the second request packet (S17040). If the second request packet is not transmitted to an adjacent node, the first node does not perform an additional process.
- the first request packet and the second request packet may be the above-described FindNearNode packets.
- FindNearNode packet For details regarding the FindNearNode packet, refer to the description regarding FIG. 12 described above.
- the first node registers the node transmitting the response packet as a low near node (S17050).
- the lower neighbor node transfers specific information to the first node using a specific packet.
- the upper neighbor node and the lower neighbor node refer to the detailed description of FIG. 11 described above.
- the first node receives a first specific packet including first specific information from the lower neighboring node (S17060).
- the first node generates a second specific packet and transmits a second specific packet to the upper neighboring node (S17070).
- the second specific packet includes the first specific information and the second specific information of the first node.
- the first specific packet and the second specific packet may be the LowNodeAlive packet described above. For details regarding the LowNodeAlive packet, refer to the description of FIGS. 14 and 15 described above.
- Gateway selection and connection method is not limited to the configuration and method of the embodiments described as described above, the embodiments are all or part of each embodiment is optional so that various modifications can be made It may be configured in combination.
- the gateway selection and connection method of the present specification may be embodied as processor readable codes in a processor readable recording medium provided in a network device.
- the processor-readable recording medium includes all kinds of recording devices that store data that can be read by the processor. Examples of the processor-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, and the like, and may also be implemented in the form of a carrier wave such as transmission over the Internet. .
- the processor-readable recording medium can also be distributed over network coupled computer systems so that the processor-readable code is stored and executed in a distributed fashion.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
블루투스 메쉬 네트워크(mesh network)에서 제1 노드가 데이터를 송수신하는 방법을 개시한다. 상기 방법은, 상기 블루투스 메쉬 네트워크를 제어하는 제어 디바이스로부터, 상기 블루투스 메쉬 네트워크에 포함된 모든 노드들의 특정 정보를 획득하기 위한 절차의 시작을 지시하는 명령 메시지를 획득하는 단계; 상기 제1 노드와 인접한 노드를 발견(discover)하기 위한 요청 패킷을 브로드캐스트하는 단계; 상기 요청 패킷을 수신한 복수의 노드들로부터 각각 상기 요청 패킷에 대한 응답 패킷을 수신하는 단계; 상기 복수의 노드들을 상기 제1 노드의 하위 인접 노드(low near node)로 등록하는 단계; 상기 하위 인접 노드에 속한 복수의 노드들 각각으로부터 상기 특정 정보를 포함하는 특정 패킷을 수신하는 단계를 포함한다.
Description
본 발명은 무선 통신시스템에서 근거리 기술인 블루투스를 이용한 메쉬 네트워크에서 데이터를 송수신하기 위한 방법 및 장치에 관한 것으로써, 보다 상세하게는 플러딩 방식 기반의 블루투스 메쉬 네트워크에서 트리 구조의 경로를 구성하여 데이터를 송수신하기 위한 방법 및 장치에 관한 것이다.
블루투스는 근거리에서 각종 디바이스들을 무선으로 연결하여 데이터를 주고 받을 수 있는 근거리 무선 기술 규격이다. 블루투스(Bluetooth) 통신을 이용하여 두 기기간 무선 통신을 수행하고자 하는 경우, 사용자(User)는 통신하고자 하는 블루투스(Bluetooth) 디바이스(Device)들을 검색(Discovery)하고 연결(Connection)을 요청하는 절차를 수행한다. 본 발명에서 디바이스는 기기, 장치를 의미할 수 있다.
이때, 사용자는 블루투스 디바이스를 이용하여 사용하고자 하는 블루투스 통신방법에 기초하여 블루투스 디바이스를 검색한 후 연결을 수행할 수 있다.
블루투스 통신방법에는 BR/EDR (Basic Rate/Enhanced Data Rate)방식과 저전력 방식인 LE (Low Energy)방식이 있다. BR/EDR 방식은 블루투스 클래식 (Bluetooth Classic)라고 호칭될 수 있다. 블루투스 클래식 방식은 베이직 레이트(Basic Rate)를 이용하는 블루투스 1.0부터 이어져온 블루투스 기술과 블루투스 2.0에서부터 지원되는 인핸스드 데이터 레이트(Enhanced Data Rate)를 이용하는 블루투스 기술을 포함한다.
블루투스 저전력 에너지(Bluetooth Low energy, 이하 블루투스 LE라고 한다.)기술은 블루투스 4.0부터 적용되어 적은 전력을 소모하여 수백 키로바이트(KB)의 정보를 안정적으로 제공할 수 있다. 이러한 블루투스 저전력 에너지 기술은 속성 프로토콜(Attribute Protocol)을 활용해서 디바이스(Device) 간 정보를 교환하게 된다. 이러한 블루투스 LE 방식은 헤더의 오버헤드(overhead)를 줄이고 동작을 간단하게 해서 에너지 소비를 줄일 수 있다.
블루투스 기기들 중에는 디스플레이(Display)나 유저인터페이스(User Interface)가 없는 제품들도 있다. 다양한 종류의 블루투스 기기들과 그 중에서도 유사기술이 적용된 블루투스 기기들 간의 연결 / 관리 / 제어 / 분리 (Connection / Management / Control / Disconnection)의 복잡도가 증가하고 있다.
또한, 블루투스는 비교적 저전력, 저비용으로 비교적 빠른 속도를 낼 수 있으나, 전송 거리가 일반적으로 최대 100m로 한정적이므로, 한정된 공간에서 사용하기 적합하다.
본 발명은, 블루투스 LE(Low Energy) 기술을 이용하는 플러딩 기반의 메쉬 네트워크(mesh network)에서 데이터를 송수신하기 위한 방법 및 장치를 제공함에 그 목적이 있다.
또한, 본 발명은 특정 패킷을 전달하기 위한 트리 구조의 경로를 형성하는 방법 및 장치를 제공함에 목적이 있다.
또한, 본 발명은 트리 구조의 경로 형성을 위해 인접한 노드를 선택하는 방법 및 장치를 제공함에 목적이 있다.
또한, 본 발명은 트리 구조의 경로 형성을 위해 복수의 인접한 노드들 중 하나의 노드를 선택하는 방법 및 장치를 제공함에 목적이 있다.
또한, 본 발명은 트리 구조의 경로를 통해 각 노드의 상태 정보를 획득하는 방법 및 장치를 제공함에 목적이 있다.
또한, 본 발명은 트리 구조의 경로로 전송되는 특정 패킷을 이용하여 일부 노드에 이상이 발생했는지 여부를 확인하는 방법 및 장치를 제공함에 목적이 있다.
본 명세서에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상술한 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 블루투스 메쉬 네트워크(mesh network)에서 제1 노드가 데이터를 송수신하는 방법에 있어서, 상기 블루투스 메쉬 네트워크를 제어하는 제어 디바이스로부터, 상기 블루투스 메쉬 네트워크에 포함된 모든 노드들의 특정 정보를 획득하기 위한 절차의 시작을 지시하는 명령 메시지를 획득하는 단계; 상기 제1 노드와 인접한 노드를 발견(discover)하기 위한 요청 패킷을 브로드캐스트하는 단계; 상기 요청 패킷을 수신한 복수의 노드들로부터 각각 상기 요청 패킷에 대한 응답 패킷을 수신하는 단계; 상기 복수의 노드들을 상기 제1 노드의 하위 인접 노드(Low near node)로 등록하는 단계; 상기 하위 인접 노드에 속한 복수의 노드들 각각으로부터 상기 특정 정보를 포함하는 특정 패킷을 수신하는 단계를 포함하되, 상기 블루투스 메쉬 네트워크는 플로딩(flooding) 방식을 기반으로 하고, 상기 하위 인접 노드는 상기 특정 정보를 전달하는 노드이며, 상기 제1 노드에 수신된 특정 패킷은 각각 하나 이상의 중복 되지 않는 서로 다른 노드들의 상기 특정 정보를 포함한다.
또한, 본 발명에서, 상기 특정 패킷을 전송한 제2 노드가 자신의 하위 인접 노드를 등록한 경우, 상기 특정 패킷은 상기 제2 노드의 제1 특정 정보 및 상기 제2 노드의 하위 인접 노드로부터 제2 특정 패킷을 통해 전달된 제2 특정 정보를 포함한다.
또한, 본 발명에서, 상기 요청 패킷, 상기 응답 패킷, 및 상기 특정 패킷은 1홉 패킷이다.
또한, 본 발명에서, 각 노드에서 생성된 상기 특정 정보는, 상기 특정 패킷을 이용하여 상기 제1 노드가 루트 노드에 해당하는 트리 구조의 경로를 통해 상기 제1 노드로 전달된다.
또한, 본 발명은, 상기 제1 노드가 상기 제1 노드의 상기 특정 정보 및 수신된 특정 패킷에 포함된 다른 노드들의 상기 특정 정보를 포함하는 메시지를 상기 제어 디바이스로 전송하는 단계를 더 포함한다.
또한, 본 발명에서, 상기 특정 정보는 노드의 현재 상태를 나타내는 상태 정보이다.
또한, 본 발명에서, 상기 특정 패킷은 노드가 활성화 되어있음을 알리기 위해, 상기 블루투스 메쉬 네트워크에 포함된 각 노드에서 주기적으로 생성되어 전송된다.
또한, 본 발명에서, 상기 하위 인접 노드로 등록하는 단계는, 상기 응답 패킷이 기설정된 시간 내에 상기 제1 노드에 수신되는 경우에만 상기 하위 인접 노드로 등록된다.
상술한 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 블루투스 메쉬 네트워크(mesh network)에서 제1 노드가 데이터를 송수신하는 방법에 있어서, 상기 블루투스 메쉬 네트워크에 포함된 다른 노드가 자신과 인접한 노드를 발견(discover)하기 위해 브로드캐스트한 제1 요청 패킷을 수신하는 단계; 상기 제1 요청 패킷을 전송한 노드를 상위 인접 노드(High near node)로 등록하는 단계; 상기 제1 노드와 인접한 노드를 발견하기 위한 제2 요청 패킷을 브로드캐스트하는 단계; 상기 제2 요청 패킷이 인접한 노드로 전송된 경우, 상기 제2 요청 패킷을 수신한 노드로부터 상기 제2 요청 패킷에 대한 응답 패킷을 수신하는 단계; 상기 응답 패킷을 전송한 노드를 하위 인접 노드(Low near node)로 등록하는 단계; 상기 하위 인접 노드로부터 제1 특정 정보를 포함하는 제1 특정 패킷을 수신하는 단계; 제2 특정 패킷을 생성하고 상기 상위 인접 노드로 제2 특정 패킷을 전송하는 단계를 포함하되, 상기 상위 인접 노드는 상기 제2 특정 패킷의 목적지 노드이고, 상기 하위 인접 노드는 상기 특정 정보를 전달하는 노드이며, 상기 제2 특정 패킷은 상기 제1 특정 정보 및 상기 제1 노드의 제2 특정 정보를 포함한다.
또한, 본 발명에서, 상기 제1 요청 패킷을 수신하는 단계에 있어서, 상기 제1 노드가 인접한 복수의 노드들로부터 각각 브로드캐스트된 서로 다른 복수의 요청 패킷들을 수신한 경우, 상기 인접한 복수의 노드들 중 하나의 노드를 선택하는 단계를 더 포함하고, 상기 상위 인접 노드로 등록하는 단계에 있어서, 상기 선택된 하나의 노드를 상기 상위 인접 노드로 등록한다.
또한, 본 발명에서, 상기 하나의 노드를 선택하는 단계는, 상기 서로 다른 복수의 요청 패킷들 중 상기 제1 노드에 가장 먼저 수신된 요청 패킷을 전송한 노드를 상기 하나의 노드로 선택한다.
또한, 본 발명에서, 상기 하나의 노드를 선택하는 단계는, 상기 요청 패킷이 기설정된 시간동안 기정의된 횟수만큼 반복하여 브로드캐스트되는 경우, 상기 요청 패킷이 반복하여 브로드캐스트된 횟수와 상기 요청 패킷이 상기 제1 노드에 수신된 비율에 기초하여 상기 하나의 노드를 선택한다.
또한, 본 발명에서, 상기 하나의 노드를 선택하는 단계는, 수신된 상기 서로 다른 복수의 요청 패킷들 중 수신된 패킷의 신호 강도가 가장 센 패킷을 전송한 노드를 상기 하나의 노드로 선택한다.
상술한 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른블루투스 메쉬 네트워크(mesh network)에서 데이터를 송수신하는 제1 노드에 있어서, 상기 제1 노드는, 외부와 무선 또는 유선으로 통신하는 통신부; 및 상기 통신부와 기능적으로 연결되는 프로세서를 포함하되, 상기 프로세서는, 상기 블루투스 메쉬 네트워크를 제어하는 제어 디바이스로부터, 상기 블루투스 메쉬 네트워크에 포함된 모든 노드들의 특정 정보를 획득하기 위한 절차의 시작을 지시하는 명령 메시지를 획득하고, 상기 제1 노드와 인접한 노드를 발견(discover)하기 위한 요청 패킷을 브로드캐스트하고, 상기 요청 패킷을 수신한 복수의 노드들로부터 각각 상기 요청 패킷에 대한 응답 패킷을 수신하고, 상기 복수의 노드들을 상기 제1 노드의 하위 인접 노드(low near node)로 등록하고, 및 상기 하위 인접 노드에 속한 복수의 노드들 각각으로부터 상기 특정 정보를 포함하는 특정 패킷을 수신하되, 상기 블루투스 메쉬 네트워크는 플로딩(flooding) 방식을 기반으로 하고, 상기 하위 인접 노드는 상기 특정 정보를 상기 특정 패킷을 이용하여 자기에게 상기 요청 패킷을 전송한 노드로 전달하는 노드이며, 상기 수신된 특정 패킷은 각각 하나 이상의 중복 되지 않는 서로 다른 노드들의 상기 특정 정보를 포함한다.
본 발명의 일 실시예에 따른 플러딩 방식 기반의 블루투스 메쉬 네트워크(mesh network)에서 데이터를 송수신하기 위한 방법에 따르면, 급격한 네트워크 트래픽의 증가 없이 모든 노드의 데이터를 획득할 수 있는 효과가 있다.
또한, 본 발명에 따르면, 각 노드가 미리 결정된 인접 노드로만 특정 패킷을 전달함으로써 딜레이가 방지될 수 있다.
또한, 본 발명에 따르면, 트리 구조의 경로를 형성하는 과정에서, 복수의 인접 노드들 중 더 가까운 하나의 노드를 선택할 수 있는 효과가 있다.
또한, 본 발명에 따르면, 트리 구조의 경로를 통해 특정 패킷이 루트 노드로 전달됨으로써 루트 노드가 다른 모든 노드들의 정보를 획득할 수 있는 효과가 있다.
또한, 본 발명에 따르면, 각 노드가 경로를 통해 주기적으로 상태 패킷를 전송함으로써, 상태 점검을 주기적으로 수행할 수 있고, 이상(abnormality)이 발생한 특정 노드를 파악할 수 있는 효과가 있다.
본 명세서에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 명세서에서 제안하는 블루투스 저전력 에너지 기술을 이용하는 무선 통신 시스템의 일 예를 나타낸 개략도이다.
도 2는 본 명세서에서 제안하는 방법들을 구현할 수 있는 디바이스의 내부 블록도의 일 예를 나타낸다.
도 3은 본 명세서에서 제안하는 방법들이 적용될 수 있는 블루투스 통신 아키텍처(Architecture)의 일 예를 나타낸다.
도 4는 블루투스 저전력 에너지의 GATT(Generic Attribute Profile)의 구조의 일 예를 나타낸다.
도 5는 본 발명이 적용될 수 있는 블루투스 저전력 에너지 기술에서 연결 절차 방법의 일 예를 나타내는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른, 블루투스 메쉬 아키텍처(Mesh Architecture)를 나타낸다.
도 7은 본 발명의 일 실시예에 따른, 블루투스 메쉬 네트워크에서 사용되는 패킷 포맷을 나타낸다.
도 8은 본 발명의 일 실시예에 따른, 블루투스 메쉬 네트워크 토폴로지(Topology)를 나타낸다.
도 9는 본 발명의 일 실시예에 따른, 트리(Tree) 구조를 나타낸다.
도 10은 본 발명의 일 실시예에 따른 블루투스 메쉬 네트워크에서, 플러딩 방식 기반의 데이터 전달 방법을 나타낸다.
도 11은 본 발명의 일 실시예에 따른 블루투스 메쉬 네트워크에서, 인접 노드를 선택하는 알고리즘을 통해 트리 구조의 경로가 형성된 것을 나타낸다.
도 12은 본 발명의 일 실시예에 따른 블루투스 메쉬 네트워크에서, 인접 노드를 선택하는 알고리즘의 구체적인 과정을 나타낸다.
도 13은 본 발명의 일 실시예에 따른 블루투스 메쉬 네트워크에서, 하나의 노드가 복수의 주변 노드들로부터 FindNearNode 패킷을 수신하고, 그 중 선택된 하나의 노드로 SelectNode 패킷을 전송하는 것을 나타낸다.
도 14는 본 발명의 일 실시예에 따른 블루투스 메쉬 네트워크에서, 트리 구조의 경로가 형성된 이후, 상기 경로를 통해 각 노드의 상태를 전달하는 방법을 나타낸다.
도 15는 본 발명의 일 실시예에 따른 블루투스 메쉬 네트워크에서, 인접 노드 선택 알고리즘을 통해 특정 패킷의 전송 경로가 형성된 이후, 일부 노드에 발생한 이상(abnormality)을 파악하는 방법을 나타낸다.
도 16은 본 발명의 일 실시예에 따른 블루투스 메쉬 네트워크에서, 루트 노드가 특정 패킷을 이용하여 다른 노드들의 특정 정보를 획득하는 과정의 흐름도를 나타낸다.
도 17은 본 발명의 일 실시예에 따른 블루투스 메쉬 네트워크에서, 루트 노드가 아닌 노드가 특정 패킷을 이용하여 특정 정보를 상위 인접 노드로 전달하는 과정의 흐름도를 나타낸다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다. 명세서 전체에 걸쳐서 동일한 참조번호들은 원칙적으로 동일한 구성요소들을 나타낸다. 또한, 본 발명과 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.
이하, 본 발명과 관련된 방법 및 장치에 대하여 도면을 참조하여 보다 상세하게 설명한다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "유닛", "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. "제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다.
도 1은 본 명세서에서 제안하는 블루투스 저전력 에너지 기술을 이용하는 무선 통신 시스템의 일 예를 나타낸 개략도이다.
무선 통신 시스템(100)은 적어도 하나의 서버 디바이스(Server Device, 120) 및 적어도 하나의 클라이언트 디바이스(Client Device, 110)를 포함한다.
서버 장치와 클라이언트 장치는 블루투스 저전력 에너지(Bluetooth Low Energy:BLE, 이하 편의상 ‘BLE’로 표현한다.) 기술을 이용하여 블루투스 통신을 수행한다.
먼저, BLE 기술은 블루투스 BR/EDR(Basic Rate/Enhanced Data Rate) 기술과 비교하여, 상대적으로 작은 duty cycle을 가지며 저 가격 생산이 가능하고, 저속의 데이터 전송률을 통해 전력 소모를 크게 줄일 수 있어 코인 셀(coin cell) 배터리를 이용할 경우 1년 이상 동작이 가능하다.
또한, BLE 기술에서는 디바이스 간 연결 절차를 간소화하였으며, 패킷 사이즈도 블루투스 BR/EDR 기술에 비해 작게 설계되어 있다.
BLE 기술에서, (1) RF 채널수는 40개이며, (2) 데이터 전송 속도는 1Mbps를 지원하며, (3) 토폴로지는 스캐터넷 구조이며, (4) latency는 3ms이며, (5) 최대 전류는 15mA 이하이며, (6) 출력 전력은 10mW(10dBm) 이하이며, (7) 휴대폰, 시계, 스포츠, 헬스케어, 센서, 기기제어 등의 어플리케이션에 주로 사용된다.
상기 서버 장치(120)는 다른 장치와의 관계에서 클라이언트 장치로 동작할 수 있고, 상기 클라이언트 장치는 다른 장치와의 관계에서 서버 장치로 동작할 수 있다. 즉, BLE 통신 시스템에서 어느 하나의 장치는 서버 장치 또는 클라이언트 장치로 동작하는 것이 가능하며, 필요한 경우, 서버 장치 및 클라이언트 장치로 동시에 동작하는 것도 가능하다.
상기 서버 장치(120)는 데이터 서비스 장치(Data Service Device), 슬레이브 디바이스(slave device) 디바이스, 슬레이브(slave), 서버, 컨덕터(Conductor), 호스트 디바이스(Host Device), 게이트웨이(Gateway), 센싱 장치(Sensing Device), 모니터링 장치(monitoring device), 제 1 디바이스, 제 2 디바이스 등으로 표현될 수 있다.
상기 클라이언트 디바이스(110)는 마스터 디바이스(master device), 마스터(master), 클라이언트, 멤버(Member), 센서 디바이스, 싱크 디바이스(Sink Device), 콜렉터(Collector), 제 3 디바이스, 제 4 디바이스 등으로 표현될 수 있다.
서버 장치와 클라이언트 장치는 상기 무선 통신 시스템의 주요 구성요소에 해당하며, 상기 무선 통신 시스템은 서버 장치 및 클라이언트 장치 이외에도 다른 구성요소를 포함할 수 있다.
상기 서버 장치는 클라이언트 장치로부터 데이터를 제공 받고, 클라이언트 장치와 직접 통신을 수행함으로써, 클라이언트 장치부터 데이터 요청을 수신하는 경우, 응답을 통해 클라이언트 장치로 데이터를 제공하는 장치를 말한다.
또한, 상기 서버 장치는 클라이언트 장치로 데이터 정보를 제공하기 위해 클라이언트 장치에게 알림/통지(Notification) 메시지, 지시(Indication) 메시지를 보낸다. 또한, 상기 서버 장치는 상기 클라이언트 장치로 지시 메시지를 전송하는 경우, 상기 클라이언트로부터 상기 지시 메시지에 대응하는 확인(Confirm) 메시지를 수신한다.
또한, 상기 서버 장치는 알림, 지시, 확인 메시지들을 클라이언트 디바이스와 송수신하는 과정에서 출력부(Display Unit)을 통해서 사용자에게 데이터 정보를 제공하거나 입력부(User Input Interface)를 통해 사용자로부터 입력되는 요청을 수신할 수 있다.
또한, 상기 서버 장치는 상기 클라이언트 장치와 메시지를 송수신하는 과정에서 메모리(memory unit)로부터 데이터를 읽어 오거나 새로운 데이터를 해당 메모리에 쓸 수 있다.
또한, 하나의 서버 장치는 다수의 클라이언트 장치들과 연결될 수 있으며, 본딩(Bonding) 정보를 활용하여 클라이언트 장치들과 쉽게 재 연결(또는 접속)이 가능하다.
상기 클라이언트 장치 (120)는 서버 장치에게 데이터 정보 및 데이터 전송을 요청하는 장치를 말한다.
클라이언트 장치는 상기 서버 장치로부터 알림 메시지, 지시 메시지 등을 통해 데이터를 수신하고, 지시 메시지를 상기 서버 디바이스로부터 수신하는 경우, 상기 지시 메시지에 대한 응답으로 확인 메시지를 보낸다.
상기 클라이언트 장치도 마찬가지로 상기 서버 장치와 메시지들을 송수신하는 과정에서 출력부를 통해 사용자에게 정보를 제공하거나 입력부를 통해 사용자로부터의 입력을 수신할 수 있다.
또한, 상기 클라이언트 장치는 상기 서버 장치와 메시지를 송수신하는 과정에서 메모리로부터 데이터를 읽어 오거나 새로운 데이터를 해당 메모리에 쓸 수 있다.
상기 서버 장치 및 클라이언트 장치의 출력부, 입력부 및 메모리 등과 같은 하드웨어 구성요소에 대해서는 도 2에서 구체적으로 살펴보기로 한다.
또한, 상기 무선 통신 시스템은 블루투스 기술을 통해 개인 영역 네트워킹(Personal Area Networking:PAN)을 구성할 수 있다. 일 예로, 상기 무선 통신 시스템에서는 디바이스 간 개인적인 피코넷(private piconet)을 확립함으로써 파일, 서류 등을 신속하고 안전하게 교환할 수 있다.
도 2는 본 명세서에서 제안하는 방법들을 구현할 수 있는 디바이스의 내부 블록도의 일 예를 나타낸다.
도 2에 도시된 바와 같이, 서버 디바이스(110)는 출력부(Display Unit, 111), 입력부(User Input Interface, 112), 전력 공급부(Power Supply Unit, 113), 프로세서(Processor, 114), 메모리(Memory Unit, 115), 블루투스 인터페이스(Bluetooth Interface, 116), 다른 통신 인터페이스(Other Interface, 117) 및 통신부(또는 송수신부, 118)를 포함한다.
상기 출력부(111), 입력부(112), 전력 공급부(113), 프로세서(114), 메모리(115), 블루투스 인터페이스(116), 다른 통신 인터페이스(117) 및 통신부(118)는 본 명세서에서 제안하는 방법을 수행하기 위해 기능적으로 연결되어 있다.
또한, 클라이언트 디바이스(120)는 출력부(Display Unit, 121), 입력부(User Input Interface, 122), 전력 공급부(Power Supply Unit, 123), 프로세서(Processor, 124), 메모리(Memory Unit, 125), 블루투스 인터페이스(Bluetooth Interface, 126) 및 통신부(또는 송수신부, 127)를 포함한다.
상기 출력부(121), 입력부(122), 전력 공급부(123), 프로세서(124), 메모리(125), 블루투스 인터페이스(126), 및 통신부(127)는 본 명세서에서 제안하는 방법을 수행하기 위해 기능적으로 연결되어 있다.
상기 블루투스 인터페이스(116,126)는 블루투스 기술을 이용하여 디바이스들 간의 요청/응답, 명령, 알림, 지시/확인 메시지 등 또는 데이터 전송이 가능한 유닛(또는 모듈)을 말한다.
상기 메모리(115,125)는 다양한 종류의 디바이스에 구현되는 유닛으로서, 다양한 종류의 데이터가 저장되는 유닛을 말한다.
상기 프로세서(114,124)는 서버 디바이스(110) 또는 클라이언트 디바이스(120)의 전반적인 동작을 제어하는 모듈을 말하며, 블루투스 인터페이스 및 다른 통신 인터페이스로 메시지를 전송 요청 및 수신받은 메시지를 처리하도록 제어한다.
상기 프로세서(114,124)는 제어부, 제어 유닛(Control Unit), 컨트롤러 등으로 표현될 수 있다.
상기 프로세서(114,124)는 ASIC(application-specific integrated circuit), 다른 칩셋, 논리 회로 및/또는 데이터 처리 장치를 포함할 수 있다.
상기 프로세서(114,124)는 서버 디바이스(110)로부터 광고(Advertising) 메시지를 수신하도록 상기 통신부를 제어하며, 상기 서버 디바이스(110)로 스캔 요청(Scan Request) 메시지를 전송하고, 상기 서버 디바이스(110)로부터 상기 스캔 요청에 대한 응답으로 스캔 응답(Scan Response) 메시지를 수신하도록 상기 통신부를 제어하며, 상기 서버 디바이스(110)와 블루투스 연결 설정을 위해 상기 서버 디바이스(110)로 연결 요청(Connect Request) 메시지를 전송하도록 상기 통신부를 제어한다.
또한, 상기 프로세서(114,124)는 상기 연결 절차를 통해 블루투스 LE 커넥션(Connection)이 형성된 이후, 상기 서버 디바이스(110)로부터 속성 프로토콜을 이용하여 데이터를 읽어오거나(Read), 기록(Write)할 수 있도록 상기 통신부를 제어한다.
상기 메모리(115,125)는 ROM(read-only memory), RAM(random access memory), 플래쉬 메모리, 메모리 카드, 저장 매체 및/또는 다른 저장 장치를 포함할 수 있다.
상기 통신부(118,127)는 무선 신호를 처리하기 위한 베이스밴드 회로를 포함할 수 있다. 실시 예가 소프트웨어로 구현될 때, 상술한 기법은 상술한 기능을 수행하는 모듈(과정, 기능 등)로 구현될 수 있다. 모듈은 메모리에 저장되고, 프로세서에 의해 실행될 수 있다.
상기 메모리(115,125)는 프로세서(114,124) 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서(114,124)와 연결될 수 있다.
상기 출력부(111,121)는 디바이스의 상태 정보 및 메시지 교환 정보 등을 화면을 통해서 사용자에게 제공하기 위한 모듈을 말한다.
상기 전력 공급부(전원 공급부, 113, 123)는 제어부의 제어 하에 외부의 전원, 내부의 전원을 인가 받아 각 구성요소들의 동작에 필요한 전원을 공급해주는 모듈을 말한다.
앞에서 살핀 것처럼, BLE 기술에서는 작은 duty cycle을 가지며, 저속의 데이터 전송률을 통해 전력 소모를 크게 줄일 수 있다.
도 3은 본 명세서에서 제안하는 방법들이 적용될 수 있는 블루투스 통신 아키텍처(Architecture)의 일 예를 나타낸다.
구체적으로, 도 3은 블루투스 LE(Low Energy)의 아키텍처의 일 예를 나타낸다.
도 3에 도시된 바와 같이, BLE 구조는 타이밍이 중요한 무선장치 인터페이스를 처리하도록 동작가능한 컨트롤러 스택(Controller stACK)과 고레벨(high level) 데이터를 처리하도록 동작가능한 호스트 스택(Host stACK)을 포함한다.
상기 Controller stack은 Controller로 호칭될 수도 있으나, 앞서 도 2에서 언급한 디바이스 내부 구성요소인 프로세서와의 혼동을 피하기 위해 이하에서는 Controller stACK으로 표현하기로 한다.
먼저, 컨트롤러 스택은 블루투스 무선장치를 포함할 수 있는 통신 모듈과, 예를 들어, 마이크로프로세서와 같은 프로세싱 디바이스를 포함할 수 있는 프로세서 모듈을 이용하여 구현될 수 있다.
호스트 스택은 프로세서 모듈 상에서 작동되는 OS의 일부로서, 또는 OS 위의 패키지(package)의 인스턴스 생성(instantiation)으로서 구현될 수 있다.
일부 사례들에서, 컨트롤러 스택 및 호스트 스택은 프로세서 모듈 내의 동일한 프로세싱 디바이스 상에서 작동 또는 실행될 수 있다.
호스트 스택은 GAP(Generic Access Profile,310), GATT based Profiles(320), GATT(Generic Attribute Profile,330), ATT(Attribute Protocol,340), SM(Security Manage,350), L2CAP(Logical Link Control and Adaptation Protocol,360)을 포함한다. 다만, 호스트 스택은 이것으로 한정되지는 않고 다양한 프로토콜들 및 프로파일들을 포함할 수 있다.
호스트 스택은 L2CAP을 사용하여 블루투스 상위에서 제공하는 다양한 프로토콜, 프로파일 등을 다중화(multiplexing)한다.
먼저, L2CAP(Logical Link Control and Adaptation Protocol,360)은 특정 프로토콜 또는 프로파일에게 데이터를 전송하기 위한 하나의 양방향 채널을 제공한다.
L2CAP은 상위 계층 프로토콜들 사이에서 데이터를 다중화(multiplex)하고, 패키지(package)들을 분할(segment) 및 재조립(reassemble)하고, 멀티캐스트 데이터 송신을 관리하도록 동작 가능할 수 있다.
BLE 에서는 3개의 고정 채널(signaling CH을 위해 1개, Security Manager를 위해 1개, Attribute protocol을 위해 1개)을 사용한다.
반면, BR/EDR(Basic Rate/Enhanced Data Rate)에서는 동적인 채널을 사용하며, protocol service multiplexer, retransmission, streaming mode 등을 지원한다.
SM(Security Manager,350)은 디바이스를 인증하며, 키 분배(key distribution)를 제공하기 위한 프로토콜이다.
ATT(Attribute Protocol,340)는 서버-클라이언트(Server-Client) 구조로 상대 디바이스의 데이터를 접근하기 위한 규칙을 정의한다. ATT에는 6가지의 메시지 유형(Request, Response, Command, Notification, Indication, Confirmation)이 있다.
즉, ① 요청(Request) 및 응답(Response) 메시지: Request 메시지는 클라이언트 디바이스에서 서버 디바이스로 특정 정보를 요청하기 위한 메시지이며, Response 메시지는 Request 메시지에 대한 응답 메시지로서, 서버 디바이스에서 클라이언트 디바이스로 전송되는 메시지를 말한다.
② Command 메시지: 클라이언트 디바이스에서 서버 디바이스로 특정 동작의 명령을 지시하기 위해 전송하는 메시지로, 서버 디바이스는 Command 메시지에 대한 응답을 클라이언트 디바이스로 전송하지 않는다.
③ Notification 메시지: 서버 디바이스에서 클라이언트 디바이스로 이벤트 등과 같은 통지를 위해 전송하는 메시지로, 클라이언트 디바이스는 Notification 메시지에 대한 확인 메시지를 서버 디바이스로 전송하지 않는다.
④ Indication 및 Confirm 메시지: 서버 디바이스에서 클라이언트 디바이스로 이벤트 등과 같은 통지를 위해 전송하는 메시지로, Notification 메시지와는 달리, 클라이언트 디바이스는 Indication 메시지에 대한 확인 메시지를 서버 디바이스로 전송한다.
GAP(Generic Access Profile)는 BLE 기술을 위해 새롭게 구현된 계층으로, BLE 디바이스들 간의 통신을 위한 역할 선택, 멀티 프로파일 작동이 어떻게 일어나는지를 제어하는데 사용된다.
또한, GAP는 디바이스 발견, 연결 생성 및 보안 절차 부분에 주로 사용되며, 사용자에게 정보를 제공하는 방안을 정의하며, 하기와 같은 attribute의 type을 정의한다.
① Service : 데이터와 관련된 behavior의 조합으로 디바이스의 기본적인 동작을 정의
② Include : 서비스 사이의 관계를 정의
③ Characteristics : 서비스에서 사용되는 data 값
④ Behavior : UUID(Universal Unique Identifier, value type)로 정의된 컴퓨터가 읽을 수 있는 포맷
GATT-based Profiles은 GATT에 의존성을 가지는 profile 들로 주로 BLE 디바이스에 적용된다. GATT-based Profiles은 Battery, Time, FindMe, Proximity, Time, Object Delivery Service 등일 수 있다. GATT-based Profiles의 구체적인 내용은 하기와 같다.
Battery : 배터리 정보 교환 방법
Time : 시간 정보 교환 방법
FindMe : 거리에 따른 알람 서비스 제공
Proximity : 배터리 정보 교환 방법
Time : 시간 정보 교환 방법
GATT는 서비스들의 구성 시에 ATT가 어떻게 이용되는지를 설명하는 프로토콜로서 동작 가능할 수 있다. 예를 들어, GATT는 ATT 속성들이 어떻게 서비스들로 함께 그룹화되는지를 규정하도록 동작 가능할 수 있고, 서비스들과 연계된 특징들을 설명하도록 동작 가능할 수 있다.
따라서, GATT 및 ATT는 디바이스의 상태와 서비스들을 설명하고, 특징들이 서로 어떻게 관련되며 이들이 어떻게 이용되는지를 설명하기 위하여, 특징들을 사용할 수 있다.
컨트롤러(Controller) 스택은 물리 계층(Physical Layer,390), 링크 계층(Link Layer,380) 및 호스트 컨트롤러 인터페이스(Host Controller Interface,370)를 포함한다.
물리 계층(무선 송수신 모듈,390)은 2.4 GHz 무선 신호를 송수신하는 계층으로 GFSK (Gaussian Frequency Shift Keying) modulation과 40 개의 RF 채널로 구성된 frequency hopping 기법을 사용한다.
링크 계층(380)은 블루투스 패킷을 전송하거나 수신한다.
또한, 링크 계층은 3개의 Advertising 채널을 이용하여 Advertising, Scanning 기능을 수행한 후에 디바이스 간 연결을 생성하고, 37개 Data 채널을 통해 최대 42bytes 의 데이터 패킷을 주고 받는 기능을 제공한다.
HCI(Host Controller Interface)는 Host 스택과 Controller 스택 사이의 인터페이스를 제공하여, Host 스택에서 command와 Data를 Controller 스택으로 제공하게 하며, Controller 스택에서 event와 Data를 Host 스택으로 제공하게 해준다.
이하에서, 블루투스 저전력 에너지(Bluetooth Low Energy:BLE) 기술의 절차(Procedure)들에 대해 간략히 살펴보기로 한다.
BLE 절차는 디바이스 필터링 절차(Device Filtering Procedure), 광고 절차(Advertising Procedure), 스캐닝 절차(Scanning Procedure), 디스커버링 절차(Discovering Procedure), 연결 절차(Connecting Procedure) 등으로 구분될 수 있다.
디바이스
필터링
절차(Device Filtering Procedure)
디바이스 필터링 절차는 컨트롤러 스택에서 요청, 지시, 알림 등에 대한 응답을 수행하는 디바이스들의 수를 줄이기 위한 방법이다.
모든 디바이스에서 요청 수신 시, 이에 대해 응답하는 것이 불필요하기 때문에, 컨트롤러 스택은 요청을 전송하는 개수를 줄여서, BLE 컨트롤러 스택에서 전력 소비가 줄 수 있도록 제어할 수 있다.
광고 디바이스 또는 스캐닝 디바이스는 광고 패킷, 스캔 요청 또는 연결 요청을 수신하는 디바이스를 제한하기 위해 상기 디바이스 필터링 절차를 수행할 수 있다.
여기서, 광고 디바이스는 광고 이벤트를 전송하는 즉, 광고를 수행하는 디바이스를 말하며, 광고자(Advertiser)라고도 표현된다.
스캐닝 디바이스는 스캐닝을 수행하는 디바이스, 스캔 요청을 전송하는 디바이스를 말한다.
BLE에서는, 스캐닝 디바이스가 일부 광고 패킷들을 광고 디바이스로부터 수신하는 경우, 상기 스캐닝 디바이스는 상기 광고 디바이스로 스캔 요청을 전송해야 한다.
하지만, 디바이스 필터링 절차가 사용되어 스캔 요청 전송이 불필요한 경우, 상기 스캐닝 디바이스는 광고 디바이스로부터 전송되는 광고 패킷들을 무시할 수 있다.
연결 요청 과정에서도 디바이스 필터링 절차가 사용될 수 있다. 만약, 연결 요청 과정에서 디바이스 필터링이 사용되는 경우, 연결 요청을 무시함으로써 상기 연결 요청에 대한 응답을 전송할 필요가 없게 된다.
광고 절차(Advertising Procedure)
광고 디바이스는 영역 내 디바이스들로 비지향성의 브로드캐스트를 수행하기 위해 광고 절차를 수행한다.
여기서, 비지향성의 브로드캐스트는 특정 방향으로의 브로드캐스트가 아닌 전(모든) 방향으로의 브로드캐스트를 말한다.
이와 달리, 지향성 브로드 캐스트는 특정 방향으로의 브로드캐스트를 말한다. 비지향성 브로드캐스트는 광고 디바이스와 리스닝(또는 청취) 상태에 있는 디바이스(이하, 리스닝 디바이스라 한다.) 간에 연결 절차 없이 발생한다.
광고 절차는 근처의 개시 디바이스와 블루투스 연결을 확립하기 위해 사용된다.
또는, 광고 절차는 광고 채널에서 리스닝을 수행하고 있는 스캐닝 디바이스들에게 사용자 데이터의 주기적인 브로드캐스트를 제공하기 위해 사용될 수 있다.
광고 절차에서 모든 광고(또는 광고 이벤트)는 광고 물리 채널을 통해 브로드캐스트된다.
광고 디바이스들은 광고 디바이스로부터 추가적인 사용자 데이터를 얻기 위해 리스닝을 수행하고 있는 리스닝 디바이스들로부터 스캔 요청을 수신할 수 있다. 광고 디바이스는 스캔 요청을 수신한 광고 물리 채널과 동일한 광고 물리 채널을 통해, 스캔 요청을 전송한 디바이스로 스캔 요청에 대한 응답을 전송한다.
광고 패킷들의 일 부분으로서 보내지는 브로드캐스트 사용자 데이터는 동적인 데이터인 반면에, 스캔 응답 데이터는 일반적으로 정적인 데이터이다.
광고 디바이스는 광고 (브로드캐스트) 물리 채널 상에서 개시 디바이스로부터 연결 요청을 수신할 수 있다. 만약, 광고 디바이스가 연결 가능한 광고 이벤트를 사용하였고, 개시 디바이스가 디바이스 필터링 절차에 의해 필터링 되지 않았다면, 광고 디바이스는 광고를 멈추고 연결 모드(connected mode)로 진입한다. 광고 디바이스는 연결 모드 이후에 다시 광고를 시작할 수 있다.
스캐닝 절차(Scanning Procedure)
스캐닝을 수행하는 디바이스 즉, 스캐닝 디바이스는 광고 물리 채널을 사용하는 광고 디바이스들로부터 사용자 데이터의 비지향성 브로드캐스트를 청취하기 위해 스캐닝 절차를 수행한다.
스캐닝 디바이스는 광고 디바이스로부터 추가적인 데이터를 요청 하기 위해, 광고 물리 채널을 통해 스캔 요청을 광고 디바이스로 전송한다. 광고 디바이스는 광고 물리 채널을 통해 스캐닝 디바이스에서 요청한 추가적인 데이터를 포함하여 상기 스캔 요청에 대한 응답인 스캔 응답을 전송한다.
상기 스캐닝 절차는 BLE 피코넷에서 다른 BLE 디바이스와 연결되는 동안 사용될 수 있다.
만약, 스캐닝 디바이스가 브로드캐스트되는 광고 이벤트를 수신하고, 연결 요청을 개시할 수 있는 개시자 모드(initiator mode)에 있는 경우, 스캐닝 디바이스는 광고 물리 채널을 통해 광고 디바이스로 연결 요청을 전송함으로써 광고 디바이스와 블루투스 연결을 시작할 수 있다.
스캐닝 디바이스가 광고 디바이스로 연결 요청을 전송하는 경우, 스캐닝 디바이스는 추가적인 브로드캐스트를 위한 개시자 모드 스캐닝을 중지하고, 연결 모드로 진입한다.
디스커버링
절차(Discovering Procedure)
블루투스 통신이 가능한 디바이스(이하, '블루투스 디바이스'라 한다.)들은 근처에 존재하는 디바이스들을 발견하기 위해 또는 주어진 영역 내에서 다른 디바이스들에 의해 발견되기 위해 광고 절차와 스캐닝 절차를 수행한다.
디스커버링 절차는 비대칭적으로 수행된다. 주위의 다른 디바이스를 찾으려고 하는 블루투스 디바이스를 디스커버링 디바이스(discovering device)라 하며, 스캔 가능한 광고 이벤트를 광고하는 디바이스들을 찾기 위해 리스닝한다. 다른 디바이스로부터 발견되어 이용 가능한 블루투스 디바이스를 디스커버러블 디바이스(discoverable device)라 하며, 적극적으로 광고 (브로드캐스트) 물리 채널을 통해 다른 디바이스가 스캔 가능하도록 광고 이벤트를 브로드캐스트한다.
디스커버링 디바이스와 디스커버러블 디바이스 모두 피코넷에서 다른 블루투스 디바이스들과 이미 연결되어 있을 수 있다.
연결 절차(Connecting Procedure)
연결 절차는 비대칭적이며, 연결 절차는 특정 블루투스 디바이스가 광고 절차를 수행하는 동안 다른 블루투스 디바이스는 스캐닝 절차를 수행할 것을 요구한다.
즉, 광고 절차가 목적이 될 수 있으며, 그 결과 단지 하나의 디바이스만 광고에 응답할 것이다. 광고 디바이스로부터 접속 가능한 광고 이벤트를 수신한 이후, 광고 (브로트캐스트) 물리 채널을 통해 광고 디바이스로 연결 요청을 전송함으로써 연결을 개시할 수 있다.
다음으로, BLE 기술에서의 동작 상태 즉, 광고 상태(Advertising State), 스캐닝 상태(Scanning State), 개시 상태(Initiating State), 연결 상태(connection state)에 대해 간략히 살펴보기로 한다.
광고 상태(Advertising State)
링크 계층(LL)은 호스트 (스택)의 지시에 의해, 광고 상태로 들어간다. 링크 계층이 광고 상태에 있을 경우, 링크 계층은 광고 이벤트들에서 광고 PDU(Packet Data Unit)들을 전송한다.
각각의 광고 이벤트는 적어도 하나의 광고 PDU들로 구성되며, 광고 PDU들은 사용되는 광고 채널 인덱스들을 통해 전송된다. 광고 이벤트는 광고 PDU가 사용되는 광고 채널 인덱스들을 통해 각각 전송되었을 경우, 종료되거나 광고 디바이스가 다른 기능 수행을 위해 공간을 확보할 필요가 있을 경우 좀 더 일찍 광고 이벤트를 종료할 수 있다.
스캐닝 상태(Scanning State)
링크 계층은 호스트 (스택)의 지시에 의해 스캐닝 상태로 들어간다. 스캐닝 상태에서, 링크 계층은 광고 채널 인덱스들을 리스닝한다.
스캐닝 상태에는 수동적 스캐닝(passive scanning), 적극적 스캐닝(active scanning)의 두 타입이 있으며, 각 스캐닝 타입은 호스트에 의해 결정된다.
스캐닝을 수행하기 위한 별도의 시간이나 광고 채널 인덱스가 정의되지는 않는다.
스캐닝 상태 동안, 링크 계층은 스캔윈도우(scanWindow) 구간(duration) 동안 광고 채널 인덱스를 리스닝한다. 스캔인터벌(scanInterval)은 두 개의 연속적인 스캔 윈도우의 시작점 사이의 간격(인터벌)으로서 정의된다.
링크 계층은 스케쥴링의 충돌이 없는 경우, 호스트에 의해 지시되는 바와 같이 스캔윈도우의 모든 스캔인터벌 완성을 위해 리스닝해야한다. 각 스캔윈도우에서, 링크 계층은 다른 광고 채널 인덱스를 스캔해야한다. 링크 계층은 사용 가능한 모든 광고 채널 인덱스들을 사용한다.
수동적인 스캐닝일 때, 링크 계층은 단지 패킷들만 수신하고, 어떤 패킷들도 전송하지 못한다.
능동적인 스캐닝일 때, 링크 계층은 광고 디바이스로 광고 PDU들과 광고 디바이스 관련 추가적인 정보를 요청할 수 있는 광고 PDU 타입에 의존하기 위해 리스닝을 수행한다.
개시 상태(Initiating State)
링크 계층은 호스트(스택)의 지시에 의해 개시 상태로 들어간다.
링크 계층이 개시 상태에 있을 때, 링크 계층은 광고 채널 인덱스들에 대한 리스닝을 수행한다.
개시 상태 동안, 링크 계층은 스캔윈도우 구간 동안 광고 채널 인덱스를 리스닝한다.
연결 상태(connection state)
링크 계층은 연결 요청을 수행하는 디바이스 즉, 개시 디바이스가 CONNECT_REQ PDU를 광고 디바이스로 전송할 때 또는 광고 디바이스가 개시 디바이스로부터 CONNECT_REQ PDU를 수신할 때 연결 상태로 들어간다.
연결 상태로 들어간 이후, 연결이 생성되는 것으로 고려된다. 다만, 연결이 연결 상태로 들어간 시점에서 확립되도록 고려될 필요는 없다. 새로 생성된 연결과 기 확립된 연결 간의 유일한 차이는 링크 계층 연결 감독 타임아웃(supervision timeout) 값뿐이다.
두 디바이스가 연결되어 있을 때, 두 디바이스들은 다른 역할로 활동한다.
마스터 역할을 수행하는 링크 계층은 마스터로 불리며, 슬레이브 역할을 수행하는 링크 계층은 슬레이브로 불린다. 마스터는 연결 이벤트의 타이밍을 조절하고, 연결 이벤트는 마스터와 슬레이브 간 동기화되는 시점을 말한다.
이하에서, 블루투스 인터페이스에서 정의되는 패킷에 대해 간략히 살펴보기로 한다. BLE 디바이스들은 하기에서 정의되는 패킷들을 사용한다.
패킷 포맷(Packet Format)
링크 계층(Link Layer)은 광고 채널 패킷과 데이터 채널 패킷 둘 다를 위해 사용되는 단지 하나의 패킷 포맷만을 가진다.
각 패킷은 프리앰블(Preamble), 접속 주소(Access Address), PDU 및 CRC 4개의 필드로 구성된다.
하나의 패킷이 광고 물리 채널에서 송신될 때, PDU는 광고 채널 PDU가 될 것이며, 하나의 패킷이 데이터 물리 채널에서 전송될 때, PDU는 데이터 채널 PDU가 될 것이다.
광고 채널
PDU
(Advertising Channel
PDU
)
광고 채널 PDU(Packet Data Unit)는 16비트 헤더와 다양한 크기의 페이로드를 가진다.
헤더에 포함되는 광고 채널 PDU의 PDU 타입 필드는 하기 표 1에서 정의된 바와 같은 PDU 타입을 나타낸다.
광고
PDU
(Advertising
PDU
)
아래 광고 채널 PDU 타입들은 광고 PDU로 불리고 구체적인 이벤트에서 사용된다.
ADV_IND: 연결 가능한 비지향성 광고 이벤트
ADV_DIRECT_IND: 연결 가능한 지향성 광고 이벤트
ADV_NONCONN_IND: 연결 가능하지 않은 비지향성 광고 이벤트
ADV_SCAN_IND: 스캔 가능한 비지향성 광고 이벤트
상기 PDU들은 광고 상태에서 링크 계층(Link Layer)에서 전송되고, 스캐닝 상태 또는 개시 상태(Initiating State)에서 링크 계층에 의해 수신된다.
스캐닝
PDU
(Scanning
PDU
)
아래 광고 채널 PDU 타입은 스캐닝 PDU로 불리며, 하기에서 설명되는 상태에서 사용된다.
SCAN_REQ: 스캐닝 상태에서 링크 계층에 의해 전송되며, 광고 상태에서 링크 계층에 의해 수신된다.
SCAN_RSP: 광고 상태에서 링크 계층에 의해 전송되며, 스캐닝 상태에서 링크 계층에 의해 수신된다.
개시
PDU
(Initiating
PDU
)
아래 광고 채널 PDU 타입은 개시 PDU로 불린다.
CONNECT_REQ: 개시 상태에서 링크 계층에 의해 전송되며, 광고 상태에서 링크 계층에 의해 수신된다.
데이터 채널
PDU
(Data Channel
PDU
)
데이터 채널 PDU는 16 비트 헤더, 다양한 크기의 페이로드를 가지고, 메시지 무결점 체크(Message Integrity Check:MIC) 필드를 포함할 수 있다.
앞에서 살펴본, BLE 기술에서의 절차, 상태, 패킷 포맷 등은 본 명세서에서 제안하는 방법들을 수행하기 위해 적용될 수 있다.
도 4는 블루투스 저전력 에너지의 GATT(Generic Attribute Profile)의 구조의 일 예를 나타낸다.
도 4를 참조하면 블루투스 저전력 에너지의 프로파일 데이터(Profile Data) 교환을 위한 구조를 살펴볼 수 있다.
구체적으로, GATT(Generic Attribute Profile)는 블루투스 LE 장치 간의 서비스(Service), 특성(Characteristic)을 이용해서 데이터를 주고받는 방법을 정의한 것이다.
일반적으로, 페리페럴(Peripheral) 장치(예를 들면, 센서 장치)가 GATT 서버(Server)역할을 하며, 서비스(Service), 특성(Characteristic)에 대한 정의를 가지고 있다.
데이터를 읽거나 쓰기 위해서 GATT 클라이언트는 GATT 서버로 데이터 요청을 보내게 되며, 모든 동작(Transaction)은 GATT client에서 시작되어 GATT 서버로부터 응답을 받게 된다.
블루투스 LE에서 사용하는 GATT 기반 동작구조는 프로파일(Profile), 서비스(Service), 특성(Characteristic)에 기초하며, 상기 도 5와 같은 수직 구조를 이룰 수 있다.
상기 프로파일(Profile) 하나 또는 그 이상의 서비스들로 구성되어 있으며, 상기 서비스는 하나 이상의 특성 또는 다른 서비스들로 구성되어 있을 수 있다.
상기 서비스(Service)는 데이터를 논리적인 단위로 나누는 역할을 하며 하나 이상의 특성(Characteristic) 또는 다른 서비스들을 포함하고 있을 수 있다. 각 서비스는 UUID(Universal Unique Identifier)라 불리는 16bit 또는 128bit의 구분자를 가지고 있다.
상기 특성(Characteristic)은 GATT 기반 동작 구조에서 가장 하위 단위이다. 상기 특성은 단 하나의 데이터를 포함하며, 상기 서비스와 유사하게 16 bit 또는 128 bit의 UUID를 가지고 있다.
상기 특성은 여러 가지 정보들의 값으로 정의되고, 각각의 정보를 담기 위해서 속성(Attribute)을 하나씩 필요로 한다. 상기 특성 여러 개의 연속된 속성을 사용할 수 있다.
상기 속성(Attribute)은 네 개의 구성 요소로 이루어지며, 아래와 같은 의미를 갖는다.
- handle: 속성의 주소
- Type: 속성의 유형
- Value: 속성의 값
- Permission: 속성에 대한 접근 권한
도 5는 본 발명이 적용될 수 있는 블루투스 저전력 에너지 기술에서 연결 절차 방법의 일 예를 나타내는 흐름도이다.
서버는 클라이언트로 3개의 광고 채널을 통해 광고 메시지를 전송한다(S5010).
서버는 연결 전에는 광고자(Advertiser)로 호칭될 수 있고, 연결 이후에는 마스터(Master)로 호칭될 수 있다. 상기 서버의 일 예로, 센서(온도 센서 등)이 있을 수 있다.
또한, 클라이언트는 연결 전에는 스캐너(Scanner)로 호칭될 수 있고, 연결 이후에는 슬레이브(Slave)로 호칭될 수 있다. 클라이언트의 일 예로 스마트 폰 등이 있을 수 있다.
앞에서 살펴본 것처럼, 블루투스는 2.4GHz 밴드를 통해 총 40개의 채널로 나뉘어 통신을 한다. 40개의 채널 중 3개의 채널은 광고 채널로써, 각종 광고 패킷(Advertising Packet)을 비롯하여 연결을 맺기 위해 주고 받는 패킷들의 교환에 이용된다.
나머지 37개의 채널들은 데이터 채널로 연결 이후의 데이터 교환에 이용된다.
상기 클라이언트는 상기 광고 메시지를 수신한 후, 상기 서버로 추가적인 데이터(예: 서버 디바이스 이름 등)을 획득하기 위해 서버로 스캔 요청 메시지(Scan Request message)를 전송할 수 있다.
이 경우, 상기 서버는 상기 클라이언트로 스캔 요청 메시지(Scan Request message)에 대한 응답으로 추가적인 데이터를 포함하는 스캔 응답 메시지(Scan Response message)를 전송한다.
여기서, 스캔 요청 메시지(Scan Request message) 및 스캔 응답 메시지(Scan Response message)는 광고 패킷의 한 종료로써, 광고 패킷은 31 bytes 이하의 사용자 데이터(User Data)만을 포함할 수 있다.
따라서, 데이터의 크기가 3 bytes보다 크지만, 연결까지 맺어서 데이터를 보내기에는 오버헤드가 큰 데이터가 존재하는 경우, 스캔 요청 메시지/스캔 응답 메시지를 이용하여 두번에 걸쳐서 데이터를 나눠 보낸다.
다음, 클라이언트는 서버와 블루투스 연결 설정을 위한 연결 요청 메시지(Connection Request message)를 서버로 전송한다(S5020).
이를 통해, 서버와 클라이언트 간에 Link Layer(LL) 연결이 형성(establish)된다.
이후, 서버와 클라이언트는 보안 설립 절차를 수행한다.
보안 설립 절차는 보안 심플 페어링(Secure Simple Pairing)으로 해석되거나 이를 포함하여 수행될 수 있다.
즉, 보안 설립 절차는 페이즈(Phase) 1 단계 내지 페이즈 3 단계를 거쳐 수행될 수 있다.
구체적으로, 서버와 클라이언트 간에 페어링 절차(페이즈 1)를 수행한다(S5030).
페어링 절차는 클라이언트가 서버로 페어링 요청 메시지(Pairing Request message)를 전송하고, 서버가 클라이언트로 페어링 응답 메시지(Pairing Response message)를 전송한다.
페어링 절차를 통해서 장치간 인증 요건(authentication requirements)과 인풋/아웃풋 능력(I(Input)/O(Output) capabilities)과 키 사이즈(Key Size)정보를 주고 받는다. 이 정보를 통해 페이즈 2에서 어떤 키(Key) 생성 방법을 사용할지 결정하게 된다.
다음, 페이즈 2로서, 서버와 클라이언트 간에 레거시 페어링(Legacy pairing) 또는 보안 연결(Secure Connections)을 수행한다(S5040).
페이즈 2에서 레거시 페어링을 수행하는 128bits의 임시 키(Temporary Key) 및 쇼트 텀 키(Short Term Key(STK))를 생성한다.
- 임시 키(Temporary Key): STK를 생성하기 위해 만들어진 Key
- 쇼트 텀 키(Short Term Key(STK)): 기기간 암호화된 연결(Encrypted connection)을 만드는데 사용되는 Key 값
만약, 페이즈 2에서 보안 연결을 수행하는 경우, 128 bit의 롱 텀 키(Long Term Key(LTK))를 생성한다.
- 롱 텀 키(Long Term Key(LTK)): 기기간 암호화된 연결뿐만 아니라 추후의 연결에서도 사용되는 Key 값
다음, 페이즈 3으로서, 서버와 클라이언트 간에 키 분배(Key Distribution) 절차를 수행한다(S5050).
이를 통해, 서버와 클라이언트간에 보안 연결이 확립되고, 암호화된 링크를 형성하여 데이터를 송수신할 수 있게 된다.
도 6은 본 발명의 일 실시예에 따른, 블루투스 메쉬 아키텍처(Mesh Architecture)를 나타낸다.
본 발명에서 ‘노드’는 메쉬 네트워크를 구성하는 디바이스들을 호칭하기 위한 것이다. 노드와 디바이스는 혼용되어 사용될 수 있다. 또한, 패킷과 메시지는 혼용되어 사용될 수 있다.
블루투스 메쉬 네트워크는 다수의 디바이스들이 블루투스를 통해 그물망처럼 연결되어 데이터를 송수신할 수 있는 네트워크를 말한다.
도 6에 도시된 바와 같이, 블루투스 메쉬 시스템은 무선장치 인터페이스를 처리하도록 동작가능한 컨트롤러 스택(Controller Stack, 6020)과 고레벨(high level) 데이터를 처리하도록 동작가능한 호스트 스택(Host Stack, 6010)을 포함한다.
또한, 도 6에 도시되어 있지는 않으나, 블루투스 메쉬 구조의 스택의 가장 하단에는 블루투스 LE 계층(Bluetooth Low Energy Layer)이 존재한다. 블루투스 LE 계층은 단일 계층이 아닌 블루투스 LE 스택 전체를 포함한다. 블루투스 LE 계층을 통해 기본적인 무선 통신 기능이 확보된다. 즉, 블루투스 메쉬 시스템은 블루투스 LE를 기반으로 한다. 도 6에 도시된 컨트롤러 스택(6020)은 블루투스 LE 계층에 포함될 수 있다.
앞서 언급한 도 3의 설명과 혼동을 피하기 위해, 이하에서는 블루투스 메쉬 시스템의 호스트 스택을 메쉬 호스트 스택으로 지칭하고, 블루투스 메쉬 시스템의 컨트롤러 스택을 메쉬 컨트롤러 스택으로 지칭한다.
메쉬 컨트롤러 스택(6020)은 물리 계층(Physical Layer, 6100), 링크 계층(Link Layer, 6090) 및 호스트 컨트롤러 인터페이스(Host Controller Interface, HCI, 6080)를 포함한다. 메쉬 컨트롤러 스택(6020)은 블루투스 무선장치를 포함할 수 있는 통신 모듈과 프로세서 모듈을 이용하여 구현될 수 있다. 일 예로, 메쉬 컨트롤러 스택(6020)은 2.4GHz의 블루투스 신호를 수신하는 무선 송수신 모듈과 블루투스 패킷을 송수신하기 위한 하드웨어로서 구현될 수 있다.
물리 계층(무선 송수신 모듈, 6100)은 2.4 GHz 무선 신호를 송수신하는 계층으로 GFSK (Gaussian Frequency Shift Keying) modulation과 40 개의 RF 채널로 구성된 frequency hopping 기법을 사용한다.
링크 계층(6090)은 3개의 광고 채널(Advertising channel)을 이용하여 광고(Advertising)와 스캐닝(Scanning) 기능을 수행한다. 이후, 링크 계층(6090)은 기기간 연결을 생성하고, 37개 데이터 채널(Data Channel)을 통해 최대 42bytes의 데이터 패킷을 주고 받을 수 있는 기능을 제공한다.
HCI(6080)는 메쉬 호스트 스택(6010)과 메쉬 컨트롤러 스택(6020) 사이의 인터페이스를 제공한다. HCI(6080)는 메쉬 호스트 스택(6010)에서 command와 Data를 메쉬 컨트롤러 스택(6020) 으로 제공하게 하며, 메쉬 컨트롤러 스택(6020) 에서 event와 Data를 메쉬 호스트 스택(6010)으로 제공하게 해준다.
메쉬 호스트 스택(6010)은 메쉬 모델 계층(Mesh Model Layer, 6030), 메쉬 어플리케이션 계층(Mesh Application Layer,6040), 메쉬 전송 계층(Mesh Transport Layer, 6050), 메쉬 네트워크 계층(Mesh Network Layer,6060) 및 메쉬 베어러 계층(Mesh Bearer Layer, 6070)을 포함한다.
메쉬 베어러 계층(6070)은 블루투스의 물리 계층과 링크 계층을 기반으로 노드 간에 메시지/패킷이 전송되는 방법을 정의한다. 구체적으로, 메쉬 베어러 계층(6070)은 주어진 통신 시스템 내에서 메쉬 PDU가 어떻게 다뤄지는지를 정의한다.
메쉬 베어러 계층(6070)으로써 애드버타이징 베어러(advertising bearer)와 GATT 베어러(GATT bearer)가 정의되어 있다. 애드버타이징 베어러는 블루투스 LE의 GAP 애드버타이징 기능과 스캐닝 기능을 사용하여 메쉬 PDU를 전달한다. GATT 베어러는 프록시 프로토콜을 사용하여 애드버타이징 베어러를 지원하지 않는 기기가 간접적으로 메쉬 네트워크 내의 노드와 연결할 수 있도록 한다. 이 외에도 다른 베어러가 추가적으로 정의될 수 있다.
메쉬 네트워크 계층(6060)은 메쉬 베어러 계층(6070)을 통해 전달되는 메쉬 패킷들에게 네트워크 기능을 제공한다. 구체적으로, 메쉬 네트워크 계층(6060)은 전송 메시지(transport message)가 하나 이상의 엘리먼트(elements)로 향하는 방법을 정의한다. 엘리먼트에 대한 구체적인 내용은 후술한다. 메쉬 네트워크 계층(6060)은 다양한 메시지 주소 유형과 네트워크 메시지 포맷을 정의함으로써 메쉬 전송 계층 PDU가 메쉬 베어러 계층(6070)에 의해 전송될 수 있도록 한다. 메쉬 네트워크 계층(6060)은 메시지를 릴레이(또는 중계)할지, 추가적인 프로세싱을 위해 메시지를 수락할지 또는 거부할지를 결정한다. 또한, 메쉬 네트워크 계층(6060)은 네트워크 메시지가 암호화되고 인증되는 방법을 정의한다.
메쉬 전송 계층(6050)은 메쉬의 End-to-End 전송을 위한 암호화 및 인증 기능을 정의한다. 메쉬 전송 계층(6050)은 하부 전송 계층(Lower Transport Layer)과 상부 전송 계층(Upper Transport Layer)을 포함한다.
하부 전송 계층은 상부 전송 계층에서 PDU를 받아 피어 기기의 하부 전송 계층에 전달한다. PDU를 수신하는 피어 기기의 하부 전송 계층은 전달받은 PDU를 상부 전송 계층으로 전달한다. 이때, 필요한 경우 하부 전송 계층은 PDU를 적합한 길이로 분할하고, 분할된 PDU를 재조립한다.
상부 전송 계층은 액세스 계층으로 전송하는, 혹은 액세스 계층에서 수신하는 애플리케이션 정보에 대한 암호화, 해독, 및 인증을 수행한다. 또한, 상부 전송 계층은 내부에서 생성되어 상위의 전송 계층에 보내지는 전송 제어 메시지를 담당한다. 전송 제어 메시지는 친구관계(Friendship)이나 하트비트(hearbeat)와 관련된 메시지를 포함한다.
메쉬 어플리케이션 계층(6040)은 블루투스 메쉬의 어플리케이션 기능을 정의한다.
메쉬 모델 계층(6030)은 모델의 구현과 행동, 메시지, 상태(state), 상태 바인딩(state binding), 및 그 외의 모델 사양에 정의된 것들의 구현을 담당한다. 일 예로, 메쉬 모델 계층은 라이트(Light, 6031), 스위치(Switch, 6032) 및/또는 파워(Power, 6033) 등을 포함할 수 있다.
도 7은 본 발명의 일 실시예에 따른, 블루투스 메쉬 네트워크에서 사용되는 패킷 포맷을 나타낸다.
이하에서, 블루투스 메쉬 네트워크에서 사용되는 패킷을 메쉬 패킷 또는 패킷으로 지칭한다.
도 7을 참조하면, 메쉬 패킷은 네트워크 ID(Network ID) 필드(7010), TTL(Time To Live) 필드(7020), 시퀀스 넘버(Sequence Number) 필드(7030), 소스 주소(Source Address) 필드(7040), 목적지 주소(Destination Address) 필드(7050), 및 페이로드(Payload) 필드(7060)를 포함한다. 페이로드 필드(7046)는 명령코드(Opcode) 필드(7070)와 데이터 필드(7080)를 포함한다.
네트워크 ID 필드(7010)는 블루투스 메쉬 네트워크를 식별하기 위한 정보(즉, 네트워크 ID)를 포함한다. 네트워크 ID 필드(7010)의 값은 메쉬의 네트워크 키(network key)로부터 파생될 수 있다. 네트워크의 키는 넷키(NetKey)로 지칭될 수 있다. 메쉬 네트워크 내의 모든 노드는 네트워크 키를 공유할 수 있다. 따라서 동일한 메쉬 네트워크에 속한 노드들은 동일 네트워크 ID를 갖는 패킷들을 생성할 수 있다.
TTL 필드(7020)는 패킷이 릴레이될 수 있는 홉(hop) 수 정보를 포함한다. TTL 값은 패킷이 릴레이 되어 전송됐는지 여부 및/또는 이후에 패킷이 릴레이 될 수 있는지 여부를 나타낼 수 있다. TTL 값은 정수값이며, 패킷이 릴레이 될 때마다 감소한다. 일 예로, TTL 값이 3인 경우 메시지는 최대 3홉만큼 릴레이될 수 있다. TTL 값이 0인 메시지는 릴레이되지 않으며 1홉만큼 이동할 수 있다. TTL 필드(7020)의 초기값은 전송 계층 또는 응용 프로그램에 의해 설정될 수 있다. 홉, 릴레이 노드 및 릴레이에 관한 더 자세한 사항은 후술한다.
시퀀스 넘버 필드(7030)는, 주로 리플레이 공격(Replay Attacks)으로부터 보호하기 위해 설계된 시퀀스 넘버(sequence number) 정보를 포함한다. 시퀀스 넘버는 메쉬 네트워크 계층에 의해 엘리먼트의 일련 번호로 설정될 수 있다. 시퀀스 넘버는 새로운 네트워크 PDU마다 하나씩 증가할 수 있다.
소스 주소 필드(7040)는 패킷을 생성한 노드를 식별하는 정보를 포함한다. 즉, 소스 주소 필드(7040)는 패킷을 생성한 소스 노드의 주소 정보를 포함한다. 소스 주소는 유니캐스트 주소(unicast address)이다. 유니캐스트 주소는 단일 엘리먼트를 식별하기 위한 주소이다. 소스 주소 필드(7040)는 릴레이 노드로 동작하는 노드에 의해 영향받지 않는다(untouched).
목적지 주소 필드(7050)는 패킷을 받아야 하는 노드(또는 패킷이 향하는 노드)를 식별하는 정보를 포함한다. 목적지 주소는 유니캐스트 주소, 그룹 주소(group address) 또는 가상 주소이다. 그룹 주소는 단일 혹은 복수의 엘리먼트를 나타내는 멀티캐스트 주소이다. 하나의 가상 주소는 단일 혹은 복수의 엘리먼트에 할당될 수 있으며, 일종의 라벨과 같은 역할을 한다. 또한, 목적지 주소는 브로드캐스트 주소일 수도 있다.
블루투스 메쉬 네트워크는 다수의 메시지 유형을 정의한다. 메시지들은 각 유형별로 고유의 명령코드를 갖는다.
도 8은 본 발명의 일 실시예에 따른, 블루투스 메쉬 네트워크 토폴로지(Topology)를 나타낸다.
블루투스 LE 디바이스는 일반적으로 Point-to-Point 네트워크 구조를 사용함으로써 디바이스 대 디바이스 연결이 가능하다. 이 연결은 블루투스 코어 스펙에서 ‘피코넷’이라고 한다. 이와 달리, 블루투스 메쉬 네트워크는 다대다(Many-To-Many) 네트워크 구조를 형성한다. 즉, 메시를 구성하는 모든 디바이스는 서로 통신할 수 있다. 디바이스가 다른 디바이스로 메시지를 릴레이 함으로써 엔드 투 엔드(End-to-End) 범위가 확장될 수 있다.
노드(Node)는 메시 네트워크에 포함된 디바이스를 의미한다. 메쉬 네트워크에 포함되지 않은 디바이스는 비 설정 기기(Unprovisioned Device)로 지칭된다. 노드는 엘리먼트(element)라는 하나 이상의 구성요소로 이루어질수 있다. 각 엘리먼트는 독립적으로 제어될 수 있다.
프로비저닝(Provisioning)은 비 설정 기기를 노드로 바꾸는 절차이다. 프로비저너(Provisioner)는 프로비저닝을 위해 사용되는 기기를 의미한다. 일 예로, 프로비저닝은 스마트 디바이스(스마트폰, 태블릿 등)에 설치된 어플리케이션을 통해 수행될 수 있다. 이 경우, 스마트 디바이스가 프로비저너에 해당한다. 프로비저닝은 그 자체로 보안이 유지되는 절차이다.
저출력 노드(Low Power Node)는 전력 사용에 제약이 있는 노드이다. 저출력 노드는 전력 사용에 제약이 없는 다른 노드와 협력한다. 저출력 노드는 평소에는 슬립 상태를 유지하다가 상호 작용에 의해 깨어나거나 또는 주기적으로 깨어날 수 있다. 저출력 노드는 수신된 메시지가 특정 조건을 만족하면 수신된 메시지를 처리할 수 있다.
친구 노드(Friend Node)는 저출력 노드와 협력하는 노드에 해당한다. 친구 노드는 전력 사용에 제약이 없다. 일 예로, 영구적인 AC 전원에 연결된 노드가 친구 노드로 지정될 수 있다. 친구 노드는 저출력 노드에게 전송된 메시지를 저장하고, 이후 저출력 노드가 메시지 전송을 요청하면 저장된 메시지를 전달한다. 친구 노드와 저출력 노드는 단일 홉(single hop) 거리 내에 존재한다. 저출력 노드와 친구 노드의 관계는 친구 관계(Friendship)로 정의된다. 친구관계는 블루투스 메쉬 네트워크가 전력 효율적인 방식으로 동작할 수 있게 한다.
본 발명에서 홉(hop)은 블루투스 메쉬 네트워크에서 디바이스들간의 링크를 나타낸다. 즉, 소스 노드와 릴레이 노드, 릴레이 노드와 릴레이 노드, 릴레이 노드와 목적지 노드 및 소스 노드와 목적지 노드간에 형성된 링크를 홉(Hop)이라고 할 수 있다.
블루투스 메쉬 네트워크는 데이터를 전송하는 소스 디바이스와 데이터를 수신하는 데스티네이션 디바이스 중간에 메시지를 릴레이(또는 중계)하는 여러 노드들이 존재한다. 릴레이 노드는 릴레이 기능(노드가 메시지를 중계하는 기능)을 갖는 노드이다. 릴레이 노드는 특정 조건을 만족하면 수신한 메시지를 재전송할 수 있다. 릴레이는 메시지가 전체 메쉬 네트워크를 횡단할 수 있게 한다. 메시지가 갖는 홉 수는 상술한 TTL 필드의 TTL 값에 의해 제한될 수 있다. 일 예로, TTL 값이 3인 경우, 메시지는 최대 3홉만큼 릴레이될 수 있다.
도 8에 개시된 메쉬 네트워크는 9개의 노드들(A, B, C, D, E, F, G, H 및 T), 5개의 저출력 노드들(I, J, K, L 및 M), 3개의 릴레이 노드들(Q, R 및 S), 2개의 친구 노드들(Q 및 P) 및 1개의 친구 기능(Friend Feature(not used)) 노드(N)를 포함한다.
노드 P는 노드 I, J 및 K의 친구 노드이다. 노드 O는 노드 L 및 M의 친구 노드이다. 노드 N은 노드 P 및 노드 O와 달리 친구관계(Friendship)를 갖지 않는다. 따라서 노드 P와 노드 O만이 친구 노드이다.
노드 T는 GATT 베어러를 사용하는 메시 네트워크에만 연결된다. 즉, 노드 T는 블루투스 LE 스택을 보유했으나 블루투스 메쉬 스택은 보유하지 않은 블루투스 디바이스에 해당한다. 일 예로, 메시지가 노드 T에서 L로 전송되어야 하는 경우, 노드 T는 GATT 베어러를 사용하여 노드 S에 메시지를 전송한다. 이후, 노드 S는 ADV(Advertising) 베어러를 사용하여 수신한 메시지를 재전송한다. 노드 H, R, N 및 O는 노드 S의 무선 범위 내에 있으므로 메시지를 수신한다. 노드 O는 메시지를 저장하고, 이후 노드 L로 메시지를 전달한다.
도 9는 본 발명의 일 실시예에 따른, 트리(Tree) 구조를 나타낸다.
본 발명은 이하에서 설명하는 트리 구조의 컨셉을 이용한다.
블루투스 메쉬 네트워크에서, 노드는 메쉬에 포함된 블루투스 디바이스를 나타낸다. 그러나 도 9에 관한 설명에서, 트리 구조의 노드는 트리 구조의 구성요소로서의 의미만을 갖는다. 다만, 블루투스 메쉬 네트워크에서 노드(디바이스)들의 사이에 트리 구조의 관계가 형성된 경우, 트리 구조의 각 노드는 블루투스 메쉬 네트워크의 노드와 대응될 수 있다.
트리 구조(이하, 편의를 위해 트리로 지칭한다)는 복수의 노드를 갖는 집합이다. 트리는 사이클이 없는 그래프(acyclic graph)이고, 계층 구조를 갖는다. 노드(Node)(또는 마디)는 트리를 구성하는 기본 원소이다.
루트 노드(root node)는 트리 구조에서 최상위에 존재하는 노드이다. 루트 노드는 부모 노드(parent node)를 갖지 않는다. 루트 노드가 아닌 노드들은 원소가 중복되지 않는 n개의 부속트리(subtree)로 나뉜다. 부속트리는 큰 트리에 속하는 작은 트리이다. 각 노드는 자식 노드(child node)의 수만큼의 부속트리를 갖는다.
리프 노드(leaf node)(또는 단말 노드(terminal node))는 자식 노드가 없는 노드이다. 리프 노드의 차수는 0이다. 가지 노드(branch node)는 차수가 0이 아닌 노드를 말하며, 비 종단 노드(non-terminal node) 또는 내부 노드(internal node)라고도 지칭된다.
부모 노드는 부속트리를 갖는 노드이다. 자식 노드(child node)는 부모 노드에 속하는 부속노드(subnode)이다. 리프 노드(leaf node)는 아래에 또 다른 노드가 연결되어 있지 않은 노드이다. 리프 노드의 차수(degree)는 0이다. 형제 노드(sibling node)는 동일한 부모를 갖는 자식 노드들을 나타낸다. 형제 노드들은 동일한 레벨(level)을 갖는다. 조상 노드(ancestor node)는 한 노드의 부모 노드들의 집합을 나타낸다. 자손 노드(descendant node)는 한 노드의 부속 트리에 있는 모든 노드들을 나타낸다.
가지(Branch)는 노드와 노드 간의 연결선을 나타낸다. 가지는 관계, 링크(Link), 간선(edge) 또는 분기로도 지칭될 수 있다. 차수(degree)는 노드의 부속 트리의 개수를 나타낸다. 트리의 차수(degree of tree)는 노드의 차수 중 가장 큰 차수이다. 도 9에서, A와 B 및 G의 차수는 각각 2, 3 및 1이고, 트리의 차수는 3이다.
레벨(또는 수준)은 루트 노드로부터의 깊이를 나타낸다. 깊이(depth)는 트리에 속한 노드의 레벨을 나타낸다. 루트 노드의 레벨은 1이다. 다만 도 9와 달리, 경우에 따라 루트 노드의 레벨은 0으로 표현될 수도 있다. 트리의 깊이(depth of tree)는 트리에 속한 노드의 최대 레벨을 나타낸다. 높이는 루트 노드에서 해당 노드에 이르는 경로에 있는 간선의 수를 나타낸다. 트리의 높이는 최대 레벨 또는 가장 큰 깊이값을 갖는 노드의 높이에 해당한다.
경로(path)는 한 노드에서 다른 노드에 이르는 길 사이에 놓인 노드들의 순서를 나타낸다. 경로 길이(length)는 출발 노드(source node)에서 목적 노드(destination node)까지 거치는 노드의 개수를 나타낸다.
도 9는 트리 구조의 일 예시이다. 도 9에서, 트리는 A 내지 N의 노드를 포함한다. 도 9는 루트 노드의 레벨이 1인 트리이다. 루트 노드는 A이고, 리프 노드는 F, I, J, K, L, M 및 N이다. A의 자식 노드는 B 및 C이다. F의 부모 노드는 B이다. D, E 및 F는 형제 노드이다. K의 조상 노드는 A, B 및 E이다. C의 자손 노드는 G, H, L, M 및 N이다. A의 차수는 2, B의 차수는 3이고, M의 차수는 0이다. 트리의 차수는 3이다. G의 높이는 2이다. 트리의 높이는 3이다. D의 깊이는 3이다. D, E, F, G 및 H의 레벨은 3이다.
도 10은 본 발명의 일 실시예에 따른 블루투스 메쉬 네트워크에서, 플러딩 방식 기반의 패킷 전달 방법을 나타낸다.
블루투스 메쉬 네트워크의 데이터 전송 방식은 릴레이 노드에서의 동작에 따라 플러딩(flooding) 방식과 라우팅(routing) 방식으로 구분될 수 있다. 데이터는 플러딩 방식 또는 라우팅 방식에 기반하여 소스 노드에서 목적지 노드로 중간의 여러 릴레이 노드들을 거쳐 전송된다.
라우팅 방식은 소스 노드가 특정 릴레이 노드로 메시지를 전송하고, 이후 상기 특정 릴레이 노드가 메시지를 재전송할 다른 릴레이 노드 또는 목적지 노드의 정보를 갖고 패킷을 전송하는 방식이다. 라우팅 방식은 메시지의 수신 및 재전송을 위해 브로드캐스팅 채널 또는 Point-to-Point 연결 방식을 사용한다. 라우팅 방식은 플러딩 방식보다 무선 전파 자원을 아낄 수 있는 장점을 갖는다. 다만, 라우팅 방식은 구현의 복잡성이 크고 라우팅 테이블(Routing Table) 구축을 위해 중계 노드 간에 경로 정보를 주고 받아야하는 단점을 갖는다.
플러딩 방식은 무선 전파가 공기 중에서 사방으로 퍼지는 특성을 이용하여 메시지를 수신하는 릴레이 노드들이 이를 다시 공기 중에 쏘는 방식이다. 소스 노드(Source node)가 브로드캐스트 채널을 통해 메시지를 릴레이 노드들로 전송하고, 이를 수신한 릴레이 노드들은 메시지를 다시 인접한 릴레이 노드들로 전송함으로써 목적지 노드(Destination node)로 전송한다. 플러딩 방식은 메시지의 수신 및 재전송을 위해 브로드캐스팅 채널을 사용하며, 메시지의 전송범위를 확장시킬 수 있다.
플러딩 방식 기반의 메쉬 네트워크는 동적 네트워크이다. 디바이스는 디바이스의 밀도(density)가 만족하는 한 언제든지 메시지를 수신하고 전송(또는 재전송)하는 것이 가능할 수 있다.
플러딩 방식은 중계 노드가 무선 전파를 수신한 뒤 다시 전송하는 동작만을 하므로 구현이 쉽다는 장점을 갖는다. 또한, 플러딩 방식은 라우팅 방식과 달리 라우팅 테이블을 구축하지 않고 메시지를 전달할 수 있다. 플러딩 방식은 낮은 복잡도의 시스템 및 제어 구조를 갖지만, 메시지를 받은 릴레이 노드 모두가 다시 수신한 메시지를 재전송하는 특성으로 인해 전체적인 네트워크 트래픽이 증가하는 단점을 갖는다.
도 10을 참조하면, 다수의 노드를 포함하는 플러딩 방식 기반의 블루투스 메쉬 네트워크에서, 모든 노드가 각각 패킷을 전송해야 하는 특정 상황에서 발생되는 문제점을 확인할 수 있다.
도 10에서, A 내지 K는 메쉬 네트워크에 포함된 노드들이다. 대시 라인(dash line)의 원형 윤곽선들은 중심에 노드를 포함하고, 각 노드가 전송하는 패킷이 전달될 수 있는 범위를 나타낸다. 특정 노드의 패킷 전달 범위 안에 하나 이상의 다른 노드가 존재할 수 있다. 다른 노드는 상기 특정 노드로부터 전송된 패킷을 수신할 수 있고, 경우에 따라 수신된 패킷을 릴레이할 수 있다. 각 노드는 하나 이상의 다른 노드의 패킷 전달 범위에 포함될 수 있다.
특정한 상황에서, 모든 노드들이 특정한 목적을 위해 각각 특정 패킷을 생성하고 전송해야하는 경우가 있을 수 있다. 특히, 모든 노드들이 특정 패킷을 동시에 또는 매우 짧은 시간 전송해야 하는 경우가 있을 수 있다. 예를 들어, 서버를 통해 메쉬 네트워크의 상태를 점검하는 경우, 모든 노드는 자신의 상태 정보를 포함하는 패킷을 생성하고 서버로 전송해야 한다. 이때, 모든 노드에서 패킷이 생성되므로, 메쉬 네트워크의 패킷량이 순간적으로 급증한다. 패킷량의 급증은 네트워크의 성능을 급격하게 저하시킨다. 또한, 모든 노드가 각각 특정 패킷을 주기적으로 생성하여 전송해야 하는 경우, 메쉬 네트워크의 성능 저하 문제는 더욱 커진다. 일 예로, 메쉬 네트워크에 포함된 노드가 N개인 경우, 소스 노드와 목적지 노드를 제외한 노드들은 각각 N-2개의 패킷을 릴레이해야 한다. 따라서 메쉬 네트워크의 트래픽량이 순간적으로 급증할 수 있고, 패킷 전달에 딜레이가 발생될 수 있다.
따라서, 본 발명은 이러한 문제점을 해결하기 위해, 플러딩 기반의 블루투스 메쉬 네트워크에서 모든 노드가 특정한 목적을 위해 각각 특정 패킷을 생성한 뒤 전송해야하는 경우, 급격한 네트워크 트래픽의 증가없이 특정 패킷을 전달하는 방법을 제안한다.
이하에서, 본 발명이 적용되는 블루투스 메쉬 네트워크는 플러딩 방식을 기반으로 한 메쉬 네트워크에 해당한다. 또한, 이하에서 언급되는 디바이스(또는 노드)는 하나의 블루투스 메쉬 네트워크에 포함된 블루투스 LE 디바이스를 나타낸다.
도 11은 본 발명의 일 실시예에 따른 블루투스 메쉬 네트워크에서, 인접 노드를 선택하는 알고리즘을 통해 트리 구조의 경로가 형성된 것을 나타낸다.
도 11에서, (a)와 (b)의 메쉬 네트워크는 모두 플로딩 방식을 기반으로 한다.
(a)는 각 노드에서 생성된 패킷이 일반적인 플러딩 방식을 이용하여 전송되는 것을 나타낸다. (a)의 경우, 각 노드에서 생성된 패킷들은 브로드캐스팅 방식을 통해 패킷이 전송될 수 있는 범위 내에 포함된 모든 노드로 전송될 수 있다. 하나의 노드로부터 생성된 패킷은 복수의 인접한 노드들에게 전송될 수 있다. 다른 노드로부터 전송된 패킷을 수신한 노드는 경우에 따라 수신된 패킷을 릴레이할 수 있다.
(b)는 (a)의 네트워크에 인접 노드 선택 알고리즘(Near node Selection Algorithm)을 적용함으로써 트리 구조의 경로가 형성된 것을 나타낸다. (b)에 개시된 구조는 B를 루트 노드로 하는 구조로써, 경로의 일 예시에 해당한다.트리 구조의 경로는 모든 노드의 특정 정보를 획득하기 위해 모든 노드가 각각 특정 패킷을 전송해야하는 경우 형성될 수 있다. 일 예로, 특정 정보는 노드의 상태(status)를 나타내는 정보일 수 있고, 특정 패킷은 상태 정보를 포함하는 상태 패킷일 수 있다. 경로는 인접 노드 선택 알고리즘을 통해 형성될 수 있다. 인접 노드 선택 알고리즘에 대한 구체적인 내용은 후술한다.
이하에서, 편의를 위해 트리 구조의 경로는 경로로 지칭할 수 있고, 특정 패킷은 패킷으로 지칭할 수 있다. 또한, 이하의 트리 구조에서, 각 노드는 블루투스 메쉬 네트워크의 디바이스(노드)와 대응된다.
먼저, 트리 구조에 대해 설명한다. 트리 구조의 최상위 노드는 루트 노드이다. 각 노드에서 생성된 특정 정보는 특정 패킷을 이용하여 경로를 통해 루트 노드로 전달(deliver)될 수 있다. 루트 노드는 수신한 특정 패킷들에서 각 노드의 정보를 획득하고, 이를 네트워크의 외부로 전송할 수 있다. 또한, 루트 노드는 인접 노드 선택 알고리즘을 시작하는 노드이다. 루트 노드는 메쉬 네트워크의 제어 디바이스에 의해 메쉬 네트워크 내의 노드들 중 하나로 지정될 수 있다.
루트 노드와 상대적으로 가까운 노드는 상위 노드(High Node)로 지칭될 수 있다. 루트 노드와 상대적으로 먼 노드는 하위 노드(Low Node)로 지칭될 수 있다. 특정 노드를 기준으로, 특정 노드의 상위 노드는 부모 노드 또는 조상 노드에 해당하고, 특정 노드의 하위 노드는 자식 노드 또는 자손 노드에 해당한다. 즉, 상위 노드는 하위 노드보다 낮은 레벨(level)을 갖는다. (b)에서, 노드 A는 노드 J의 상위 노드이고 노드 B의 하위 노드이다. 노드 B는 노드 J의 상위 노드이다. 노드 K는 노드 D 및 노드 C의 상위 노드이다. 노드에 관한 구체적인 사항은 상술한 도 9에 대한 설명을 참조한다.
특정 패킷의 전송 경로는 인접 노드 선택 알고리즘을 통해 형성될 수 있다. 특정 정보가 노드의 상태 정보인 경우, 특정 패킷은 상태 패킷에 해당된다. 인접 노드 선택 알고리즘은 플러딩 방식을 기반으로 인접 노드 간의 관계를 형성함으로써 각 노드의 특정 정보를 전달하기 위한 경로를 형성하는 알고리즘이다.
루트 노드를 제외한 각 노드는 인접 노드 선택 알고리즘을 통해 상위 인접 노드를 선택한다. 또한, 각 노드는 하위 인접 노드를 선택할 수도 있다. 노드는 하위 인접 노드로부터 특정 패킷을 수신한 경우, 수신된 특정 패킷을 기초로 생성된 새로운 특정 패킷을 상위 인접 노드로 전송한다. 인접 노드 선택 알고리즘에 대한 구체적인 사항은 후술한다.
인접 노드란 주변 노드들 중 자신과 특정 패킷을 전송하는 경로/관계가 형성된 노드를 나타낸다. 모든 노드는 적어도 하나의 인접 노드를 가질 수 있다. 각각의 노드는 인접 노드 선택 알고리즘을 통해 선택된 인접 노드의 정보를 저장한다. 각 노드는 특정 패킷을 루트 노드와 가까운 인접 노드(상위 인접 노드)로 전송한다. 즉, (a)와 달리, 각 노드는 미리 관계가 형성된 인접 노드로만 특정 패킷을 전송한다. 각 노드의 인접 노드는 인접 노드 선택 알고리즘에 의해 결정된다. 두 노드 사이의 직선 대쉬 라인(dash line)은 두 노드가 인접 노드 관계임을 나타낸다. 인접 노드 관계에 있는 노드들은 서로의 정보를 저장한다.
인접 노드는 상위 인접 노드와 하위 인접 노드를 포함한다. 상위 인접 노드(High near node)는 하나의 노드의 인접 노드(들) 중 루트 노드에 상대적으로 더 가까운 노드이다. 상위 인접 노드는 현재 노드에서 생성된 특정 패킷의 목적지 노드이다. 각 노드의 상위 인접 노드는 한 개이다. 하위 인접 노드(Low near node)는 하나의 노드의 인접 노드(들) 중 상위 인접 노드가 아닌 노드(들)이다. 하위 인접 노드는 특정 정보를 전달하는 노드이다. 즉, 상위 인접 노드는 하위 인접 노드보다 낮은 레벨을 갖는 상위 노드이다. 하나의 노드에 등록된 하위 인접 노드는 하나 이상일 수 있다. 특정 노드들은 하위 인접 노드를 등록하지 않을 수도 있다.
각 노드는 인접 노드들을 상위 인접 노드 또는 하위 인접 노드로 구분하여 저장할 수 있다. 상위 인접 노드와 하위 인접 노드의 명칭은 변경될 수 있다.
루트 노드는 하나 이상의 하위 인접 노드와 경로를 형성한다. 리프 노드는 하나의 상위 인접 노드와 경로를 형성한다. 리프 노드는 하위 인접 노드를 갖지 않는다. 내부 노드는 하나의 상위 인접 노드 및 하나 이상의 하위 인접 노드와 경로를 형성할 수 있다. 각 노드의 특정 정보는 형성된 경로를 통해 루트 노드로 전달된다.
(b)에서, 노드 I의 인접 노드는 노드 F 및 노드 B이다. 노드 F는 노드 I의 하위 인접 노드이다. 노드 B는 루트 노드이면서 동시에 노드 I의 상위 인접 노드이다. 리프 노드(F, E, D, K 및 G)는 하위 인접 노드를 갖지 않는다. 노드 H는 노드 E의 상위 인접 노드이고, 노드 B의 하위 인접 노드이다.
(b)에서 각 노드의 정보가 루트 노드로 전달되는 과정을 설명한다. 노드 F는 자기의 정보를 포함하는 패킷을 생성한 뒤 노드 I로 패킷을 전송한다. 노드 I는 수신된 패킷을 이용하여 노드 F의 정보를 획득한다. 이후, 노드 I는 노드 F와 자기의 정보를 포함하는 패킷을 노드 B로 전송한다. 이때, 전송되는 패킷의 주소 정보 및 데이터는 변경될 수 있다. 노드 C 및 D에 의해 생성된 패킷들은 노드 K로 전송된다. 노드 K는 수신된 패킷들을 이용하여 노드 C 및 D의 정보를 획득한다. 이후, 노드 K는 노드 C, D 및 K의 정보를 포함하는 패킷을 생성하고 노드 B로 전송한다. 이와 같은 방식으로 각 노드의 정보는 루트 노드로 전송된다. 패킷에 관한 구체적인 사항은 후술한다.
상술한 바와 같이, 본 발명은 모든 노드의 특정 정보를 획득해야 경우, 각 노드에서 생성된 특정 정보와 관련된 패킷이 (b)와 같은 트리 구조의 정해진 경로를 따라 루트 노드로 전송될 수 있다. 루트 노드는 각 노드의 정보를 획득하고, 자신의 정보를 포함하는 모든 노드들의 특정 정보를 외부로 전송할 수 있다. 상술한 방식은 모든 노드의 정보를 수집하기 위해 패킷이 릴레이되는 수가 (a)방식에 비해 현저히 적다. 결과적으로 메쉬 네트워크의 트래픽이 크게 감소될 수 있다.
도 12는 본 발명의 일 실시예에 따른 블루투스 메쉬 네트워크에서, 인접 노드를 선택하는 알고리즘의 구체적인 과정을 나타낸다.
도 12를 참조하면, 인접 노드 선택 알고리즘((a) 내지 (f) 과정)을 통해 특정 패킷을 전송하기 위한 트리 구조의 경로가 형성될 수 있다. 도 12에서 노드 A 내지 J는 하나의 블루투스 메쉬 네트워크에 포함된 노드들이다. 이하에서는 편의를 위해 ‘노드’를 생략하고 ‘A 내지 J’로 표현할 수 있다.
인접 노드 선택 알고리즘에서, 두 종류의 패킷이 사용된다. i) 하나는, 각 노드가 자신과 인접한 노드를 찾기 위해 브로드캐스트하는 패킷이다. ii) 다른 하나는, 주변 노드로부터 인접한 노드를 찾기 위해 브로드캐스트된 패킷을 수신한 노드가, 그에 대한 응답으로 전송하는 패킷이다.
이하에서, 각 노드가 자신과 인접한 노드를 찾기 위해 브로드캐스트하는 패킷은 FindNearNode 패킷 또는 요청 패킷으로 지칭될 수 있다. 또한, 상기 FindNearNode 패킷에 대한 응답으로 전송되는 패킷은 SelectNode 패킷 또는 응답 패킷으로 지칭될 수 있다.
아래의 표 2는 FindNearNode 패킷과 SelectNode 패킷 포맷을 나타낸다. 이외에 다른 필드가 더 포함될 수 있으며, 패킷과 필드의 명칭은 변경될 수 있다.
FindNearNode 패킷은 TTL(Time To Live) 필드, 소스 주소(source address) 필드, 목적지 주소(destination address) 필드 및 전송 PDU(Transport PDU) 필드를 포함한다. 전송 PDU 필드는 패킷의 종류를 식별하는 명령코드(Opcode)를 포함한다. TTL에 대한 구체적인 설명은 상술한 도 7에 관한 설명을 참조한다.
FindNearNode 패킷(요청 패킷)의 TTL은 1로 설정된다. 따라서 FindNearNode 패킷은 1 홉(hop) 거리만 전달될 수 있다. 따라서 FindNearNode 패킷을 수신한 노드는 수신된 패킷을 릴레이할 수 없다. 소스 주소는 자신의 주소로 설정된다. 즉, 소스 주소는 FindNearNode 패킷을 생성한 노드의 메쉬 주소로 설정된다. 목적지 주소는 브로드캐스트 주소로 설정된다. 명령코드는 해당 패킷이 FindNearNode 패킷임을 나타내는 특정 코드로 설정된다. 일 예로, 명령코드가 0x0001로 설정될 수 있다.
SelectNode 패킷(응답 패킷)의 TTL은 1로 설정된다. SelectNode 패킷은 FindNearNode 패킷과 마찬가지로 1 홉만 전달될 수 있다. 소스 주소는 자신의 주소로 설정된다. 즉, 소스 주소는 SelectNode 패킷을 생성한 노드의 메쉬 주소로 설정된다. 목적지 주소는 FindNearNode 패킷을 보낸 노드의 메쉬 주소로 설정된다. SelectNode 패킷은 브로드캐스트되지 않는다.
FindNearNode 패킷을 수신한 노드는 수신된 패킷을 이용하여 FindNearNode 패킷을 전송한 노드의 주소 정보를 획득한다. 이후, FindNearNode 패킷을 수신한 노드는 획득한 주소를 목적지 주소로 갖는 SelectNode 패킷을 생성하고 전송한다.
다만, SelectNode 패킷은 현재 노드가 아직 루트 노드로의 경로가 형성이 되지 않은 경우에만 전송된다. 경로가 형성된 노드란 상위 인접 노드를 결정(또는 선택)한 노드로도 이해될 수 있다. 즉, SelectNode 패킷은 현재 노드가 FindNearNode 패킷을 처음으로 수신한 경우에만, 서로의 정보를 교환하고 인접 노드로써 등록하기 위해 전송된다. 교환되는 정보는 메쉬 주소 정보일 수 있다. 각 노드는 경로를 형성한 후에는 FindNearNode 패킷을 수신하여도 SelectNode 패킷을 전송하지 않는다.
이하에서, 요청 패킷(FindNearNode 패킷)과 응답 패킷(SelectNode 패킷)을 사용하여 경로가 형성되는 과정의 일 예를 살펴본다.
(a)는 루트 노드가 인접 노드를 찾기 위해 요청 패킷(FindNearNode 패킷)을 브로드캐스트하는 과정을 나타낸다. 먼저, 메쉬 네트워크에 포함된 하나의 노드가 메쉬 네트워크를 제어하는 디바이스로부터 시작을 지시하는 명령(command) 메시지를 획득한다. 상기 시작 명령 메시지는 모든 노드의 특정 정보를 획득하기 위한 절차의 시작을 지시하는 메시지, 또는, 특정 패킷을 전송하기 위한 경로 형성을 시작을 지시하는 메시지 일 수 있다.
사용자는 제어 디바이스를 이용하여 메쉬에 포함된 하나의 노드(디바이스)로 시작을 명령할 수 있다. 이후, 시작 명령을 획득한 노드는 인접한 노드를 찾기 위해 요청 패킷을 생성하고 브로드캐스트한다.
메쉬 네트워크를 제어하는 디바이스는 외부 디바이스로서 메쉬 네트워크를 관리하는 디바이스, 컨트롤러(controller), 프로비저닝(provisioning)을 수행하는 디바이스 또는 스마트 디바이스 등에 해당될 수 있다. 시작 명령은 메쉬 네트워크 외부의 서버로부터 전송될 수도 있다. 시작 명령을 획득한 노드가 경로 형성을 시작하며, 이 노드가 트리 구조의 루트 노드(최상위 노드)에 해당한다.
도 12에서 B가 시작 명령을 획득한 루트 노드에 해당한다. B는 시작 명령을 획득한 뒤, 요청 패킷을 브로드캐스트한다. H, I, G, A 및 K가 B가 브로드캐스트한 요청 패킷의 전송 범위 내에 존재한다. 따라서 H, I, G, A 및 K는 각각 요청 패킷을 수신할 수 있다.
(b)는 요청 패킷(FindNearNode 패킷)을 수신한 노드들이 각각 응답 패킷(SelectNode 패킷)을 전송하는 것을 나타낸다. 상술한 바와 같이, 요청 패킷을 처음 수신한 주변 노드(들)이 각각 요청 패킷을 전송한 노드로 응답 패킷을 전송한다. 또한, 요청 패킷을 처음으로 받은 주변 노드(들)은 요청 패킷을 전송한 노드를 인접 노드로 등록한다. 이때, 요청 패킷을 수신한 노드는 상기 요청 패킷을 전송한 노드를 인접 노드 중 상위 인접 노드로 등록한다. 응답 패킷을 수신한 노드는 응답 패킷을 전송한 노드를 인접 노드 중 하위 인접 노드로 등록한다. 노드는 패킷에 포함된 메쉬 주소 및/또는 명령 코드를 저장함으로써 인접 노드를 등록할 수 있다. 한 노드에서 수행되는 인접 노드의 등록 및 응답 패킷 전송의 순서는 변경될 수 있다.
다만, 각 노드는 응답 패킷이 기설정된 시간(또는 타임아웃) 내에 도달된 응답 패킷을 전송한 노드(들)만을 상기 각 노드의 하위 인접 노드로 등록하도록 설정될 수 있다. 만약, 노드가 요청 패킷을 브로드캐스트한 이후 기설정된 시간 내에 응답 패킷이 하나도 수신되지 않으면, 그 노드는 하위 인접 노드를 갖지 않는 (리프)노드로 결정될 수 있다.
루트 노드는 복수의 인접 노드의 정보를 획득할 수 있다. 노드들은 요청 패킷과 응답 패킷을 주고받음으로써 서로 정보를 교환하고, 서로를 인접 노드로 등록할 수 있다. 상술한 과정을 통해 루트 노드와 인접한 노드들 사이에 특정 패킷의 전송 경로가 형성된다.
(b) 과정에서, H, I, G, A 및 K는 각각 서로를 인접 노드로 등록한다. 구체적으로, H, I, G, A 및 K는 각각 처음으로 수신된 요청 패킷을 보낸 노드인 B를 (상위)인접 노드로 등록한다. 이후, H, I, G, A 및 K는 각각 B의 주소를 목적지 주소로 갖는 응답 패킷을 생성하여 B로 전송한다. B는 응답 패킷을 전송한 H, I, G, A 및 K를 (하위)인접 노드로 등록한다. 이로써, B와 H, I, G, A 및 K는 서로를 인접 노드로 등록한다. B의 인접 노드는 H, I, G, A 및 K이다. 트리 구조에서, H, I, G, A 및 K는 B의 자식 노드이면서 서로 형제 노드이다.
(c)는 경로가 형성된 노드들이 자신과 인접 노드를 찾기 위해 요청 패킷을 브로드캐스트하는 과정을 나타낸다. (c) 과정은 (b) 과정을 통해 루트 노드의 인접 노드로 등록된 노드들에 의해 수행된다.
루트 노드의 인접 노드로 등록된 노드들(H, I, G, A 및 K)이 각각 자신과 인접한 노드(루트 노드 제외)를 찾기 위한 요청 패킷을 생성하고 브로드캐스트한다. 브로드캐스트된 요청 패킷들은 각 요청 패킷이 전송될 수 있는 범위 내에 존재하는 노드들로 전송된다. 이때, 요청 패킷을 수신하는 노드는 아직 경로가 형성되지 않은 노드, 루트 노드 또는 이미 경로가 형성된 루트 노드의 다른 인접 노드일 수 있다.
(c) 과정에서, H가 브로드캐스트한 요청 패킷은 E, I, B, K 및 D로 전송된다. I가 브로드캐스트한 요청 패킷은 F, H 및 B로 전송된다. G가 브로드캐스트한 요청 패킷은 B 및 A로 전송된다. A가 브로드캐스트한 요청 패킷은 G, B 및 J로 전송된다. K가 브로드캐스트한 요청 패킷은 H, B, C 및 D로 전송된다.
(d)는 (c) 과정에서 브로드캐스트된 요청 패킷을 수신한 노드들 중 일부가 응답 패킷을 전송하는 것을 나타낸다.
상술한 바와 같이, 응답 패킷은 요청 패킷을 처음 수신한 노드(들)에 의해 전송된다. 응답 패킷은 각 노드에 수신된 요청 패킷을 전송한 노드로 전송된다.
요청 패킷을 처음 수신한 노드들은 요청 패킷을 전송한 노드를 상위 인접 노드로 등록한다. 응답 패킷을 (타임아웃 이내에) 수신한 노드들은 응답 패킷을 전송한 노드를 하위 인접 노드로 등록한다. 상술한 바와 같이, 응답 패킷의 전송과 인접 노드 등록이 수행되는 순서는 무관하다.
인접 노드 선택 알고리즘에서, 요청 패킷을 복수회 수신한 노드는 두번째 이후 수신된 요청 패킷에 대한 응답 패킷을 전송하지 않는다. 응답 패킷을 수신했으나 이전에 응답 패킷을 수신하여 이미 경로가 형성된 노드들(즉, 상위 인접 노드가 등록된 노드들)은 응답 패킷을 전송하지 않는다. 경로가 이미 형성된 노드는 수신된 요청 패킷을 무시하거나 삭제할 수 있다.
(d) 과정에서, C, D, E, F 및 J는 요청 패킷을 처음 수신한 노드들이다. 따라서 C, D, E, F 및 J는 각각 수신된 요청 패킷을 보낸 노드로 응답 패킷을 전송한다. H 는 I 및 K로부터 요청 패킷을 수신했으나, 이전에 요청 패킷을 수신한 적이 있기 때문에(a 과정) 응답 패킷을 전송하지 않는다.
F는 I로 응답 패킷을 전송한다. E는 H로 응답 패킷을 전송한다. C 및 D는 K로 응답 패킷을 전송한다. J는 A로 응답 패킷을 전송한다. F는 I를 상위 인접 노드로 등록하고, I는 F를 하위 인접 노드로 등록한다. E는 H를 상위 인접 노드로 등록하고, H는 E를 하위 인접 노드로 등록한다. C 및 D는 각각 K를 상위 인접 노드로 등록하고, K는 C 및 D를 하위 인접 노드로 등록한다. J는 A를 상위 인접 노드로 등록하고, A는 J를 하위 인접 노드로 등록한다.
(e) 는 (d) 과정에서 경로가 새롭게 형성된 노드들이 각각 인접한 노드를 찾기 위해 요청 패킷을 브로드캐스트하는 과정을 나타낸다.
도 12에 도시된 바와 같이, 인접 노드 선택 알고리즘에서 브로드 캐스팅 및 인접 노드 등록 과정은 반복적으로 수행된다. 인접 노드 선택 알고리즘은 리프 노드가 모두 결정된 때, 또는 모든 노드에 인접 노드 관계가 형성된 때 종료된다.
(e) 에서, C, D, E, F, 및 J는 각각 자신과 인접한 노드를 찾기 위해 요청 패킷을 브로드캐스트한다. F에 의해 브로드캐스트된 요청 패킷은 I로 전송된다. E에 의해 브로드캐스트된 요청 패킷은 H로 전송된다. D에 의해 브로드캐스트된 요청 패킷은 H 및 K로 전송된다. C에 의해 브로드캐스트된 요청 패킷은 K로 전송된다. J에 의해 브로드캐스트된 요청 패킷은 A로 전송된다.
I, H, K 및 A는 모두 요청 패킷을 처음으로 수신한 노드가 아니다. I, H, K 및 A는 (a) 과정에서 요청 패킷을 수신했다. 따라서, I, H, K 및 A는 응답 패킷을 전송하지 않는다. C, D, E, F, 및 J는 모두 기설정된 시간 내에 응답 패킷을 수신하지 못한다. 모든 노드의 인접 노드가 결정된 뒤, 인접 노드 선택 알고리즘이 종료한다.
(f) 과정은 (a) 내지 (e) 과정을 통해 형성된 트리 구조의 최종 경로를 나타낸다. 각 노드가 생성한 특정 패킷은 상기 경로를 통해 상위 인접 노드로 전송된다. 루트 노드는 각 노드의 정보를 획득한다. 하나의 메쉬 네트워크에서 트리 구조의 모양은 어떤 노드가 루트 노드로 지정되는지에 따라 변경될 수 있다. 패킷 또는 정보가 형성된 경로를 통해 전달되는 구체적인 과정은 상술한 도 11 (b)에 관한 설명을 참조한다.
상술한 (a) 내지 (e) 과정에서, 하나의 노드는 복수의 주변 노드들 각각으로부터 전송된 서로 다른 요청 패킷을 동시에 또는 단시간 내에 수신할 수도 있다. 이 경우, 서로 다른 노드에서 전송된 요청 패킷들을 수신한 노드는 복수의 노드들 중 하나를 상위 인접 노드로 선택해야 한다. 이하에서 구체적으로 설명한다.
도 13은 본 발명의 일 실시예에 따른 블루투스 메쉬 네트워크에서, 하나의 노드가 복수의 주변 노드들로부터 FindNearNode 패킷을 수신하고, 그 중 선택된 하나의 노드로 SelectNode 패킷을 전송하는 것을 나타낸다.
도 13을 참조하면, 복수의 주변 노드들 중 하나를 상위 인접 노드를 선택할 수 있다.
아직 상위 인접 노드를 등록하지 않은 노드는 복수의 주변 노드들 각각으로부터 전송된 요청 패킷(FindNearNode 패킷)들을 동시에 또는 짧은 시간 내에 수신할 수 있다. 즉, 서로 다른 복수의 노드에서 각각 생성된 서로 다른 요청 패킷이 동시에 또는 단시간에 수신될 수 있다.
트리 구조에서 자식 노드는 하나의 부모 노드와만 연결될 수 있다. 마찬가지로 본 발명의 블루투스 메쉬 네트워크에서의 각 노드는 하나의 상위 인접 노드와만 경로를 형성할 수 있다. 따라서, 서로 다른 노드들로부터 전송된 요청 패킷들을 수신한 노드는 상기 요청 패킷들을 전송한 복수의 노드들 중 하나 노드를 상위 인접 노드를 선택해야 한다. 하나의 노드가 선택된 이후, 응답 패킷이 전송될 수 있다.
요청 패킷을 전송한 복수의 노드들 중 하나의 노드를 선택하는 방법은 이미 상위 인접 노드를 등록한 노드에서는 수행되지 않는다. 이하에서, 노드가 응답 패킷을 전송한 복수의 주변 노드들 중 하나를 상위 인접 노드로서 선택하는 방법을 인접 노드 선택 방법 또는 노드 선택 방법으로 지칭할 수 있다. 본 발명은 세가지 선택 방법을 제안한다.
도 13에서, 노드 A 및 C는 이미 요청 패킷을 수신하고 응답 패킷을 전송함으로써 상위 인접 노드를 등록한 노드이다. 노드 B는 노드 A 및 C의 주변 노드이면서, 아직 요청 패킷을 수신한 적이 없어서 상위 인접 노드를 등록하지 않은 노드이다. 노드 B는 노드 A 및 C로부터 각각 브로드캐스트된 요청 패킷들을 수신한다. 도 13은 노드 A에서 전송된 요청 패킷이 먼저 수신된 것을 나타낸다. 도 13에 도시된 것과 달리, 요청 패킷들은 동시에 수신될 수도 있다.
첫번째 방법은, 더 먼저 수신된 요청 패킷을 보낸 노드를 상위 인접 노드로 선택하는 방법이다. 도 13의 경우에 적용하면, 노드 B는 먼저 요청 패킷을 전송한 노드 A를 상위 인접 노드로 결정하고, 노드 A로 응답 패킷을 전송한다.
패킷들이 동시에 브로드캐스트되는 경우, 더 가까운 노드에서 전송된 패킷이 일찍 도착할 확률이 높다. 따라서, 이 방식은 더 인접한 노드를 상위 인접 노드로 선택할 수 있으며, 빠르게 경로를 형성할 수 있다.
두번째 방법은, 주변 노드들로부터 일정 시간 동안 복수회 브로드캐스트된 요청 패킷들의 전송 성공률을 기준으로 상위 인접 노드를 선택하는 방법이다.
이 방법에 있어서, 본 발명의 메쉬 네트워크의 각 노드는 요청 패킷을 전송할 때, 기설정된 시간 동안 기설정된 횟수만큼 요청 패킷을 반복하여 브로드캐스트한다. 노드는 수신된 요청 패킷들의 전송 성공률을 연산하고, 기설정된 패킷 전송 성공률 조건을 만족하는 하나를 상위 인접 노드로서 선택한다.
패킷 전송 성공률은 요청 패킷이 브로드캐스트된 횟수 및 상기 요청 패킷이 수신된 횟수와 관련된다. 일 예로, 패킷 전송 성공률은 요청 패킷이 수신된 횟수와 브로드캐스트된 횟수의 비(또는 퍼센트) 등으로 나타낼 수 있다. 또한, 노드는 기설정된 시간 안에 도달된 요청 패킷의 개수를 기준으로 패킷 전송 성공률을 연산할 수도 있다. 상기 기설정된 시간은 요청 패킷이 반복해서 브로드캐스트되는데 걸리는 시간과 동일하게 설정될 수 있다.
노드 A는 각각 요청 패킷을 기설정된 시간 동안 기설정된 횟수만큼 브로드캐스트한다(S13010). 노드 C도 요청 패킷을 기설정된 시간 동안 기설정된 횟수만큼 브로드캐스트한다(S13020). 노드 B는 노드 A 및 노드 C로부터 복수회 브로드캐스트된 요청 패킷들을 전부 또는 일부 수신할 수 있다.
도 13을 예로 들면, 노드는 요청 패킷을 1초동안 5번 브로드캐스트하도록 설정될 수 있다. 이후, 노드 B는 노드 A가 브로드캐스트한 요청 패킷을 3번 수신한다. 노드 B는 노드 C가 브로드캐스트한 요청 패킷을 5번 수신한다. 노드 A의 패킷 전송 성공률은 60퍼센트이고, 노드 C의 패킷 전송 성공률은 100퍼센트이다. 메쉬 시스템은 노드가 상위 인접 노드를 선택하는 패킷 전송 성공률의 기준을 100퍼센트로 미리 설정할 수 있다. 이 경우, 노드 B는 기준을 충족하는 노드 C를 상위 인접 노드로 선택한다. 이후, 노드 B는 선택된 상위 인접 노드로 응답 패킷을 전송한다(S13030).
요청 패킷의 브로드캐스트 횟수, 반복해서 브로드캐스트되는 시간 및/또는 패킷 전송 성공률은 미리 결정될 수 있고, 메쉬 네트워크의 내부 또는 외부 환경에 따라 적절히 변경될 수 있다.
더 가까운 노드에서 브로드캐스트될수록 인접 노드로 전송되는 패킷들의 수가 증가한다. 따라서 이 방법에 따르면, 더 가까운 노드를 상위 인접 노드로 선택하여 경로를 형성할 수 있는 장점이 있다.
세번째 방법은, 수신된 요청 패킷의 신호 세기에 따라 상위 인접 노드를 선택하는 방법이다.
이 방법에서, 복수의 요청 패킷들을 동시에 또는 단시간 내에 수신한 노드는, 수신된 요청 패킷들 중 가장 큰 신호 세기를 갖는 패킷을 전송한 노드를 선택한다. 일 예로, RSSI(Received Signal Strength Indicator) 등이 신호의 세기의 기준으로 사용될 수 있다.
수신된 신호는 더 인접한 노드에서 전송될수록 높은 신호 세기를 나타낼 확률이 크다. 따라서, 이 방법에 따르면, 현재 노드와 더 가까운 노드가 상위 인접 노드로 선택될 수 있는 장점이 있다.
이외에도, 상술한 첫번째 내지 세번째 방법이 혼용되어 사용될 수도 있을 것이다. 일 예로, 패킷 전송 성공률과 패킷의 신호 세기가 동시에 고려될 수도 있을 것이다. 다른 예로, 기본적으로는 첫번째 방법을 사용하면서, 서로 다른 노드에서 전송된 요청 패킷이 거의 동시에 전송된 경우는 보충적으로 두번째 또는 세번째 방법을 사용할 수도 있을것이다.
상술한 방식들을 통해 더 가까운 노드가 상위 인접 노드로 결정될 수 있다. 이로써 더 효율적인 경로 형성이 가능하다.
도 14는 본 발명의 일 실시예에 따른 블루투스 메쉬 네트워크에서, 트리 구조의 경로가 형성된 이후, 상기 경로를 통해 각 노드의 상태(status)를 전달하는 방법을 나타낸다.
도 14를 참조하면, 각 노드의 상태 정보는 미리 형성된 경로를 통해 루트 노드로 전달될 수 있다. 따라서 메쉬 네트워크의 상태 점검이 메쉬 네트워크의 트래픽을 급증시키지 않고 수행될 수 있다.
상태 점검 과정에서, 두 종류의 패킷이 사용될 수 있다. i) 하나는 노드가 자신의 상태를 알리기 위해 자기의 상위 인접 노드로 전송하는 패킷이다. 이하에서, 이 패킷을 상태 패킷으로 지칭할 수 있다. 상태 패킷은 상태 패킷을 생성한 노드의 상태 정보를 포함한다. ii) 다른 하나는 노드가 하위 인접 노드로부터 상태 패킷을 수신한 뒤, 그에 대한 응답으로 전송하는 패킷이다. 이하에서, 상태 패킷에 대한 응답으로 전송되는 패킷을 상태 응답 패킷으로 지칭할 수 있다. 주기적으로 네트워크의 상태를 점검하기 위해, 상태 패킷은 주기적으로 생성되어 전송될 수도 있다.
이하에서는, 상태 점검의 일 예로서, 네트워크 내의 각 노드가 정상적으로 동작하는지 여부를 확인하는 과정에 대해 설명한다.
모든 노드가 정상적으로 동작하는지를 확인하는 과정에서, 두 종류의 패킷이 사용된다. i) 하나는 노드가 자신이 정상적으로 동작하고 있음을 알리기 위해 상위 인접 노드로 전송하는 패킷이다. 이하에서, 이 패킷은 LowNodeAlive 패킷으로 지칭될 수 있다. ii) 다른 하나는 LowNodeAlive 패킷을 수신한 노드가 이에 대한 응답으로써 하위 인접 노드로 전송하는 응답 패킷이다. 이하에서, LowNodeAlive 패킷에 대한 응답으로 전송되는 패킷을 HighNodeAlive 패킷으로 지칭할 수 있다.
LowNodeAlive 패킷을 전송한 노드는 수신된 HighNodeAlive 패킷을 통해 자신이 보낸 LowNodeAlive 패킷이 전달되었는지를 확인할 수 있다. LowNodeAlive 패킷은 상태 패킷에 포함될 수 있다. HighNodeAlive 패킷은 상태 응답 패킷에 포함될 수 있다.
아래 표 3은 LowNodeAlive 패킷과 HighNodeAlive 패킷 포맷을 나타낸다. 이외에 다른 필드가 더 포함될 수 있으며, 패킷과 필드의 명칭은 변경될 수 있다.
LowNodeAlive 패킷은 TTL(Time To Live) 필드, 소스 주소(source address) 필드, 목적지 주소(destination address) 필드 및 전송 PDU(Transport PDU) 필드를 포함한다. 전송 PDU 필드는 패킷의 종류를 식별하는 명령코드(Opcode), 패킷이 전달되어야하는 최종 노드(즉, 루트 노드)의 주소 및 현재 노드와 전달받은 하위 노드의 상태 정보를 포함한다.
LowNodeAlive 패킷의 TTL은 1로 설정된다. 따라서 LowNodeAlive 패킷은 1 홉(hop) 거리만 전달될 수 있다. LowNodeAlive 패킷을 수신한 노드는 수신된 요청 패킷을 릴레이할 수 없다. 소스 주소는 자신의 주소로 설정된다. 즉, 소스 주소는 LowNodeAlive 패킷을 생성한 노드의 메쉬 주소로 설정된다. 목적지 주소는 상위 노드(High Node)의 메쉬 주소로 설정된다. 여기서 상위 노드는 현재 노드의 상위 인접 노드 또는 루트 노드일 수 있다. 명령코드는 해당 패킷이 LowNodeAlive 패킷임을 나타내는 특정 코드로 설정된다. 일 예로, LowNodeAlive 패킷임을 나타내는 특정 코드가 0x0003으로 설정될 수 있다. 또한, 일 예로, 패킷이 전달되어야하는 최종 노드의 주소 정보가 2byte 및 상태 정보가 2byte로 표현될 수 있다.
HighNodeAlive 패킷의 TTL은 1로 설정된다. HighNodeAlive 패킷도 LowNodeAlive 패킷과 마찬가지로 1 홉만 전달될 수 있다. 소스 주소는 자신의 주소로 설정된다. 즉, 소스 주소는 HighNodeAlive 패킷을 생성한 노드의 메쉬 주소로 설정된다. 목적지 주소는 HighNodeAlive 패킷을 전송한 하위 노드(LowNode)의 메쉬 주소로 설정된다. 일 예로, HighNodeAlive 패킷임을 나타내는 특정 코드가 0x0004으로 설정될 수 있다.
LowNodeAlive 패킷을 상위 인접 노드로 전송한 노드는, 상위 인접 노드로부터 HighNodeAlive 패킷을 수신함으로써 전송한 패킷이 전달되었는지 여부를 확인할 수 있다.
(a)는 상술한 인접 노드 선택 알고리즘(도 12의 과정)을 통해 특정 패킷을 위한 전송 경로가 형성된 모습의 일 예를 나타낸다. B는 시작 명령을 수신한 루트 노드이다.
(b)는 하위 인접 노드를 갖지 않는 노드들이 상위 인접 노드로 TTL을 1로 세팅한 LowNodeAlive 패킷을 전송하는 것을 나타낸다. 하위 인접 노드를 갖지 않는 노드는 트리 구조의 리프 노드에 대응한다.
(b)에서, C, D, E, F, G, 및 J는 각각의 상위 인접 노드로 LowNodeAlive 패킷을 전송한다. LowNodeAlive 패킷은 일정 시간마다 주기적으로 생성되어 전송될 수도 있다. 이로써 LowNodeAlive 패킷을 수신한 K, H, I, B 및 A는 자신의 하위 인접 노드의 상태 정보를 획득한다. 이후, K, H, I, B 및 A는 LowNodeAlive 패킷을 전송한 노드에게 각각 HighNodeAlive 패킷을 전송함으로써 응답한다.
(c)는 LowNodeAlive 패킷을 수신한 K, H, I 및 A가 다시, 상위 인접 노드인 루트 노드(B)로 LowNodeAlive 패킷을 전송하는 것을 나타낸다. 이때 전송되는 LowNodeAlive 패킷은 상기 LowNodeAlive 패킷을 생성한 노드 및 그 노드의 하위 인접 노드의 상태 정보를 모두 포함한다. 즉, 루트 노드와 리프 노드를 제외한 내부 노드에서 생성되는 LowNodeAlive 패킷은 해당 내부 노드와 해당 내부 노드의 모든 하위 노드(자손 노드들)의 상태 정보를 포함한다.
(c)에서, K는 D와 C의 상태 정보 및 자신의 상태 정보를 포함하는 LowNodeAlive 패킷을 생성하고, 이를 B로 전송한다. 마찬가지로, H는 E의 상태 정보 및 자신의 상태 정보를 포함하는 LowNodeAlive 패킷을 생성하고, 이를 B로 전송한다. I는 F의 상태 정보 및 자신의 상태 정보를 포함하는 LowNodeAlive 패킷을 생성하고, 이를 B로 전송한다. A는 J의 상태 정보 및 자신의 상태 정보를 포함하는 LowNodeAlive 패킷을 생성하고, 이를 B로 전송한다.
루트 노드가 자신의 하위 인접 노드로부터 수신한 특정 패킷들은, 각각 하나 이상의 중복되지 않는 서로 다른 노드들의 특정 정보를 포함한다. 예를 들어, 도 14 (c)에서, H가 전송한 특정 패킷은 H와 E의 특정 정보를 포함하고, K가 전송한 특정 패킷은 C, D, 및 K의 특정 정보를 포함한다. I가 전송한 특정 패킷은 I와 F의 특정 정보를 포함하고, A가 전송한 특정 패킷은 A와 J의 특정 정보를 포함한다. G가 전송한 특정 패킷은 G의 특정 정보만을 포함한다. 즉, H, I, K, A 및 G 각각이 전송한 특정 패킷은 모두 서로 다른 노드들의 특정 정보를 포함한다.
상술한 과정을 통해, 루트 노트는 루트 노드를 제외한 모든 노드가 정상적으로 동작하는지 여부를 나타내는 정보를 획득할 수 있다. 루트 노드는, 다른 노드들의 상태 정보와 자신의 상태 정보를 제어 디바이스나 외부의 서버로 전송할 수 있다.
상술한 (a) 내지 (c)의 과정은 LowNodeAlive 패킷과 HighNodeAlive 패킷을 이용함으로써 각 노드의 정상 동작 여부를 점검하는 방법을 기준으로 설명하였다. 다른 종류의 상태를 점검하는 과정도 동일한 방식으로 수행될 수 있다. 상술한 과정을 통해, 네트워크의 상태 점검이 트래픽의 급격한 증가 없이 효율적으로 수행될 수 있다.
도 15는 본 발명의 일 실시예에 따른 블루투스 메쉬 네트워크에서, 인접 노드 선택 알고리즘을 통해 특정 패킷의 전송 경로가 형성된 이후, 일부 노드에 발생한 이상(abnormality)을 파악하는 방법을 나타낸다.
도 15에 개시된 메쉬 네트워크는 상술한 인접 노드 선택 알고리즘을 통해 특정 패킷을 전송하기 위한 트리 구조의 경로가 이미 형성된 것을 전제로 한다. 패킷 전송 경로는 도시되어있지 않으나, 도 12 (f)와 동일한 구조를 갖는다. 노드 B가 루트 노드이다.
일 예로써, 도 15는 노드 J에 문제가 생긴 것을 나타낸다. 노드 J에 발생된 문제는 디바이스의 내부 또는 외부의 다양한 원인에 의해 발생될 수 있다. 노드 J를 제외한 나머지 노드들은 모두 정상적으로 동작한다.
일 예로써, 이하에서는 상술한 LowNodeAlive 패킷과 HighNodeAlive 패킷을 이용하여 (a) 및 (b) 과정을 설명한다. LowNodeAlive 패킷은 상태 패킷으로서 형성된 경로를 통해 루트 노드로 전송될 수 있다.
(a)는 리프 노드인 C, D, E, F 및 G가 각각의 상위 인접 노드로 LowNodeAlive 패킷을 전송하는 것을 나타낸다.
LowNodeAlive 패킷은 주기적으로 전송되도록 설정될 수 있다. 이 경우, 네트워크의 상태 점검은 일정 시간 간격으로 수행될 수 있다. B, I, H 및 K는 각각 LowNodeAlive 패킷을 수신하고, HighNodeAlive 패킷을 응답으로 전송한다.
J는 정상적으로 동작하지 않기 때문에, 타임아웃(timeout) 시간 내에 LowNodeAlive 패킷을 상위 인접 노드인 A로 전송하지 못할 수 있다. 이 경우, A는 J의 상태 정보를 획득할 수 없다. 또한, A는 LowNodeAlive 패킷을 수신하지 않았으므로 HighNodeAlive 패킷을 전송하지 않는다.
(b)는 내부 노드들이 루트 노드로 LowNodeAlive 패킷을 전송하는 것을 나타낸다. 내부 노드들은 리프 노드와 루트 노드를 제외한 H, I, K 및 A이다.
내부 노드는 하위 인접 노드로부터 LowNodeAlive 패킷을 타임아웃(timeout) 내에 수신했는지 여부에 관계 없이 상위 노드로 LowNodeAlive 패킷을 주기적으로 전송할 수 있다.
내부 노드는 하위 인접 노드로부터 LowNodeAlive 패킷을 타임아웃 내에 수신한 경우, 상위 인접 노드로 자신의 상태 정보와 하위 노드(들)의 상태 정보를 포함하는 LowNodeAlive 패킷을 생성하고 전송한다.
내부 노드는 하위 인접 노드로부터 LowNodeAlive 패킷을 타임아웃 내에 수신하지 못한 경우, 상위 인접 노드로 자신의 상태 정보를 포함하는 LowNodeAlive 패킷을 생성하고 전송한다. 이때, 내부 노드는 특정 노드에 이상이 발생했음을 나타내는 정보를 함께 전송할 수 있다.
도 15 (b)에서, I, H 및 K는 각각 하위 노드의 상태 정보를 포함하는 LowNodeAlive 패킷을 생성하여 상위 인접 노드인 루트 노드로 전송한다. A는 하위 인접 노드인 J로부터 타임아웃(timeout) LowNodeAlive 패킷을 수신하지 못했다((a) 과정). 따라서 A는 자신의 상태 정보와 함께 J의 상태 정보를 획득하지 못했다는 정보 또는 J에 이상이 있음을 나타내는 정보를 포함하는 LowNodeAlive 패킷을 생성하고, 생성된 패킷을 B로 전송한다. 이로써 메쉬 네트워크는 J에 이상이 발생했음을 알 수 있다.
상술한 방식을 통해, 메쉬 시스템이 어느 노드에 이상이 발생했는지를 파악할 수 있다.
도 16은 본 발명의 일 실시예에 따른 블루투스 메시 네트워크에서, 루트 노드가 특정 패킷을 이용하여 다른 노드들의 특정 정보를 획득하는 과정의 흐름도를 나타낸다.
도 16은 상술한 도 11 및 12의 루트 노드에서 수행되는 구체적인 과정을 나타낸다.
루트 노드가 시작 명령을 획득한다(S16010). 상기 시작 명령은 도 12 (a)에서 상술한 시작 명령 메시지와 동일 또는 유사한 메시지에 해당할 수 있다.
이후, 루트 노드는 자신과 인접한 노드를 발견하기 위한 요청 패킷을 브로드캐스트 한다(S16020). 이 요청 패킷은 상술한 FindNearNode 패킷일 수 있다. FindNearNode 패킷에 관한 구체적인 내용은 상술한 도 12에 관한 설명을 참조한다.
이후, 루트 노드는 요청 패킷을 수신한 복수의 노드들로부터 각각 상기 요청 패킷에 대한 응답 패킷을 수신한다(S16030). 이 응답 패킷은 상술한 SelectNode 패킷일 수 있다.
루트 노드는 상기 응답 패킷을 전송한 복수의 노드들을 하위 인접 노드로 등록한다(S16040). 하위 인접 노드는 특정 정보를 전달한다. 하위 인접 노드에 관한 구체적인 내용은 상술한 도 11의 상세한 설명을 참조한다.
루트 노드는 하위 인접 노드에 속한 복수의 노드들 각각으로부터 특정 정보를 포함하는 특정 패킷을 수신한다(S16050). 수신되는 특정 패킷은 각각 하나 이상의 중복되지 않는 서로 다른 노드들의 특정 정보를 포함한다. 이 단계에 관한 구체적인 내용은 상술한 도 14 (c)의 설명을 참조한다.
도 17은 본 발명의 일 실시예에 따른 블루투스 메쉬 네트워크에서, 루트 노드가 아닌 노드가 특정 패킷을 이용하여 특정 정보를 상위 인접 노드로 전달하는 과정의 흐름도를 나타낸다.
도 17은, 루트 노드가 아닌 노드들에서 특정 정보를 루트 노드로 전달하는 과정을 나타낸다. 도 17의 과정은 트리 구조의 내부 노드 또는 리프 노드에서 수행될 수 있다.
제1 노드는 다른 노드가 자신과 인접한 노드를 발견(discover)하기 위해 브로드캐스트한 제1 요청 패킷을 수신한다(S17010).
제1 노드는 상기 제1 요청 패킷을 전송한 노드를 상위 인접 노드(high near node)로 등록한다(S17020). 상위 인접 노드는 제1 노드가 생성한 특정 패킷이 전달되는 목적지 노드(destination node)이다.
제1 노드는 상기 제1 노드와 인접한 노드를 발견하기 위한 제2 요청 패킷을 브로드캐스트한다(S17030).
제1 노드는 상기 제2 요청 패킷이 인접한 노드로 전송된 경우, 상기 제2 요청 패킷을 수신한 노드로부터 상기 제2 요청 패킷에 대한 응답 패킷을 수신한다(S17040). 제1 노드는 상기 제2 요청 패킷이 인접한 노드로 전송되지 않은 경우, 추가적인 과정을 수행하지 않는다.
제1 요청 패킷과 제2 요청 패킷은 상술한 FindNearNode 패킷일 수 있다. FindNearNode 패킷에 관한 구체적인 내용은 상술한 도 12에 관한 설명을 참조한다.
제1 노드는 상기 응답 패킷을 전송한 노드를 하위 인접 노드(low near node)로 등록한다(S17050). 하위 인접 노드는 특정 패킷을 이용하여 제1 노드로 특정 정보를 전달한다. 상위 인접 노드와 하위 인접 노드에 관한 구체적인 내용은 상술한 도 11의 상세한 설명을 참조한다.
제1 노드는 상기 하위 인접 노드로부터 제1 특정 정보를 포함하는 제1 특정 패킷을 수신한다(S17060). 제1 노드는 제2 특정 패킷을 생성하고, 상기 상위 인접 노드로 제2 특정 패킷을 전송한다(S17070). 제2 특정 패킷은, 제1 특정 정보 및 제1 노드의 제2 특정 정보를 포함한다. 제1 특정 패킷 및 제2 특정 패킷은 상술한 LowNodeAlive 패킷일 수 있다. LowNodeAlive 패킷에 관한 구체적인 내용은 상술한 도 14 및 15에 관한 설명을 참조한다.
나아가, 설명의 편의를 위하여 각 도면을 나누어 설명하였으나, 각 도면에 서술되어 있는 실시 예들을 병합하여 새로운 실시 예를 구현하도록 설계하는 것도 가능하다. 그리고, 당업자의 필요에 따라, 이전에 설명된 실시 예들을 실행하기 위한 프로그램이 기록되어 있는 컴퓨터에서 판독 가능한 기록 매체를 설계하는 것도 본 발명의 권리범위에 속한다.
본 명세서에 따른 게이트웨이 선택 및 연결 방법은 상기한 바와 같이 설명된 실시 예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시 예들은 다양한 변형이 이루어질 수 있도록 각 실시 예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
한편, 본 명세서의 게이트웨이 선택 및 연결 방법은 네트워크 디바이스에 구비된 프로세서가 읽을 수 있는 기록매체에 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 기록매체는 프로세서에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 프로세서가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한, 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한, 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
또한, 이상에서는 본 명세서의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 명세서는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다.
그리고, 당해 명세서에서는 물건 발명과 방법 발명이 모두 설명되고 있으며, 필요에 따라 양 발명의 설명은 보충적으로 적용될 수 있다.
본 발명의 데이터 송수신 방법은 블루투스 LE에 적용되는 예를 중심으로 설명하였으나, 블루투스 LE 시스템 외에도 다양한 무선 통신 시스템에 적용하는 것이 가능하다.
Claims (14)
- 블루투스 메쉬 네트워크(mesh network)에서 제1 노드가 데이터를 송수신하는 방법에 있어서,상기 블루투스 메쉬 네트워크를 제어하는 제어 디바이스로부터, 상기 블루투스 메쉬 네트워크에 포함된 모든 노드들의 특정 정보를 획득하기 위한 절차의 시작을 지시하는 명령 메시지를 획득하는 단계;상기 제1 노드와 인접한 노드를 발견(discover)하기 위한 요청 패킷을 브로드캐스트하는 단계;상기 요청 패킷을 수신한 복수의 노드들로부터 각각 상기 요청 패킷에 대한 응답 패킷을 수신하는 단계;상기 복수의 노드들을 상기 제1 노드의 하위 인접 노드(Low near node)로 등록하는 단계;상기 하위 인접 노드에 속한 복수의 노드들 각각으로부터 상기 특정 정보를 포함하는 특정 패킷을 수신하는 단계를 포함하되,상기 블루투스 메쉬 네트워크는 플로딩(flooding) 방식을 기반으로 하고, 상기 하위 인접 노드는 상기 특정 정보를 전달하는 노드이며, 상기 제1 노드에 수신된 특정 패킷은 각각 하나 이상의 중복 되지 않는 서로 다른 노드들의 상기 특정 정보를 포함하는 방법.
- 제1항에 있어서,상기 특정 패킷을 전송한 제2 노드가 자신의 하위 인접 노드를 등록한 경우, 상기 특정 패킷은 상기 제2 노드의 제1 특정 정보 및 상기 제2 노드의 하위 인접 노드로부터 제2 특정 패킷을 통해 전달된 제2 특정 정보를 포함하는 방법.
- 제1항에 있어서,상기 요청 패킷, 상기 응답 패킷, 및 상기 특정 패킷은 1홉 패킷인 방법.
- 제1항에 있어서,각 노드에서 생성된 상기 특정 정보는, 상기 특정 패킷을 이용하여 상기 제1 노드가 루트 노드에 해당하는 트리 구조의 경로를 통해 상기 제1 노드로 전달되는 방법.
- 제1항에 있어서,상기 제1 노드가 상기 제1 노드의 상기 특정 정보 및 수신된 특정 패킷에 포함된 다른 노드들의 상기 특정 정보를 포함하는 메시지를 상기 제어 디바이스로 전송하는 단계를 더 포함하는 방법.
- 제1항에 있어서,상기 특정 정보는 노드의 현재 상태를 나타내는 상태 정보인 방법.
- 제1항에 있어서,상기 특정 패킷은 노드가 활성화 되어있음을 알리기 위해, 상기 블루투스 메쉬 네트워크에 포함된 각 노드에서 주기적으로 생성되어 전송되는 방법.
- 제1항에 있어서,상기 하위 인접 노드로 등록하는 단계는,상기 응답 패킷이 기설정된 시간 내에 상기 제1 노드에 수신되는 경우에만 상기 하위 인접 노드로 등록되는 방법.
- 블루투스 메쉬 네트워크(mesh network)에서 제1 노드가 데이터를 송수신하는 방법에 있어서,상기 블루투스 메쉬 네트워크에 포함된 다른 노드가 자신과 인접한 노드를 발견(discover)하기 위해 브로드캐스트한 제1 요청 패킷을 수신하는 단계;상기 제1 요청 패킷을 전송한 노드를 상위 인접 노드(High near node)로 등록하는 단계;상기 제1 노드와 인접한 노드를 발견하기 위한 제2 요청 패킷을 브로드캐스트하는 단계;상기 제2 요청 패킷이 인접한 노드로 전송된 경우, 상기 제2 요청 패킷을 수신한 노드로부터 상기 제2 요청 패킷에 대한 응답 패킷을 수신하는 단계;상기 응답 패킷을 전송한 노드를 하위 인접 노드(Low near node)로 등록하는 단계;상기 하위 인접 노드로부터 제1 특정 정보를 포함하는 제1 특정 패킷을 수신하는 단계;제2 특정 패킷을 생성하고 상기 상위 인접 노드로 제2 특정 패킷을 전송하는 단계를 포함하되,상기 상위 인접 노드는 상기 제2 특정 패킷의 목적지 노드이고, 상기 하위 인접 노드는 상기 특정 정보를 전달하는 노드이며, 상기 제2 특정 패킷은 상기 제1 특정 정보 및 상기 제1 노드의 제2 특정 정보를 포함하는 방법.
- 제9항에 있어서,상기 제1 요청 패킷을 수신하는 단계에 있어서,상기 제1 노드가 인접한 복수의 노드들로부터 각각 브로드캐스트된 서로 다른 복수의 요청 패킷들을 수신한 경우, 상기 인접한 복수의 노드들 중 하나의 노드를 선택하는 단계를 더 포함하고,상기 상위 인접 노드로 등록하는 단계에 있어서,상기 선택된 하나의 노드를 상기 상위 인접 노드로 등록하는 방법.
- 제10항에 있어서,상기 하나의 노드를 선택하는 단계는, 상기 서로 다른 복수의 요청 패킷들 중 상기 제1 노드에 가장 먼저 수신된 요청 패킷을 전송한 노드를 상기 하나의 노드로 선택하는 방법.
- 제10항에 있어서,상기 하나의 노드를 선택하는 단계는, 상기 요청 패킷이 기설정된 시간동안 기정의된 횟수만큼 반복하여 브로드캐스트되는 경우, 상기 요청 패킷이 반복하여 브로드캐스트된 횟수와 상기 요청 패킷이 상기 제1 노드에 수신된 비율에 기초하여 상기 하나의 노드를 선택하는 방법.
- 제10항에 있어서,상기 하나의 노드를 선택하는 단계는, 수신된 상기 서로 다른 복수의 요청 패킷들 중 수신된 패킷의 신호 강도가 가장 센 패킷을 전송한 노드를 상기 하나의 노드로 선택하는 방법.
- 블루투스 메쉬 네트워크(mesh network)에서 데이터를 송수신하는 제1 노드에 있어서, 상기 제1 노드는,외부와 무선 또는 유선으로 통신하는 통신부; 및상기 통신부와 기능적으로 연결되는 프로세서를 포함하되, 상기 프로세서는,상기 블루투스 메쉬 네트워크를 제어하는 제어 디바이스로부터, 상기 블루투스 메쉬 네트워크에 포함된 모든 노드들의 특정 정보를 획득하기 위한 절차의 시작을 지시하는 명령 메시지를 획득하고,상기 제1 노드와 인접한 노드를 발견(discover)하기 위한 요청 패킷을 브로드캐스트하고,상기 요청 패킷을 수신한 복수의 노드들로부터 각각 상기 요청 패킷에 대한 응답 패킷을 수신하고,상기 복수의 노드들을 상기 제1 노드의 하위 인접 노드(low near node)로 등록하고, 및상기 하위 인접 노드에 속한 복수의 노드들 각각으로부터 상기 특정 정보를 포함하는 특정 패킷을 수신하되,상기 블루투스 메쉬 네트워크는 플로딩(flooding) 방식을 기반으로 하고, 상기 하위 인접 노드는 상기 특정 정보를 상기 특정 패킷을 이용하여 자기에게 상기 요청 패킷을 전송한 노드로 전달하는 노드이며, 상기 수신된 특정 패킷은 각각 하나 이상의 중복 되지 않는 서로 다른 노드들의 상기 특정 정보를 포함하는, 노드.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/464,582 US11272570B2 (en) | 2016-11-28 | 2017-11-28 | Method and apparatus for transmitting and receiving data in mesh network using Bluetooth |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662427122P | 2016-11-28 | 2016-11-28 | |
US62/427,122 | 2016-11-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018097687A1 true WO2018097687A1 (ko) | 2018-05-31 |
Family
ID=62195227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2017/013639 WO2018097687A1 (ko) | 2016-11-28 | 2017-11-28 | 블루투스를 이용한 메쉬 네트워크에서 데이터를 송수신하기 위한 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11272570B2 (ko) |
WO (1) | WO2018097687A1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111954163A (zh) * | 2019-05-16 | 2020-11-17 | 台达电子工业股份有限公司 | 蓝牙网状网络建立方法和系统 |
EP3850819A1 (en) * | 2018-09-13 | 2021-07-21 | Telefonaktiebolaget Lm Ericsson (Publ) | A method of and devices for supporting selective forwarding of messages in a network of communicatively coupled communication devices |
CN114585062A (zh) * | 2022-04-13 | 2022-06-03 | 哈工大机器人(合肥)国际创新研究院 | 一种基于蓝牙的节能连接方法及系统 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102331886B1 (ko) * | 2017-12-21 | 2021-11-29 | 삼성전자주식회사 | 네트워크에서 노드를 제어하는 전자 장치 및 제어 방법 |
JP6807113B2 (ja) * | 2019-06-07 | 2021-01-06 | ソナス株式会社 | 通信システム、通信方法及び通信装置 |
WO2021065425A1 (ja) * | 2019-10-02 | 2021-04-08 | 株式会社Jvcケンウッド | 無線通信システムおよび通信方法 |
CN113411790A (zh) | 2020-03-16 | 2021-09-17 | 瑞昱半导体股份有限公司 | 低功耗的蓝牙网格网络系统及其通信方法 |
US20210329436A1 (en) * | 2020-04-17 | 2021-10-21 | Bot3, Inc. | Bluetooth device networking system and method based on ble |
CN111711941B (zh) * | 2020-04-30 | 2023-10-24 | 杭州涂鸦信息技术有限公司 | 数据传输方法以及相关设备、装置 |
JP7419195B2 (ja) * | 2020-08-31 | 2024-01-22 | 株式会社東芝 | 通信装置、通信方法およびプログラム |
CN112350925A (zh) * | 2020-11-06 | 2021-02-09 | 北京小米移动软件有限公司 | 网关控制方法、装置、系统、电子设备及存储介质 |
CN115509675A (zh) * | 2021-06-21 | 2022-12-23 | 华为技术有限公司 | 一种报文生成方法及装置 |
US12047264B2 (en) | 2021-08-13 | 2024-07-23 | Itron, Inc. | Determining network reliability using message success rates |
US12068931B2 (en) | 2021-08-13 | 2024-08-20 | Itron, Inc. | Determining network reliability using message success rates |
US11924077B2 (en) * | 2021-08-13 | 2024-03-05 | Itron, Inc. | Determining network reliability using message success rates |
US11483224B1 (en) * | 2021-08-13 | 2022-10-25 | Itron, Inc. | Determining network reliability using message success rates |
CN115665754A (zh) * | 2022-09-26 | 2023-01-31 | 浙江猫精人工智能科技有限公司 | 节点设备控制方法、节点设备、蓝牙Mesh系统及存储介质 |
CN117336685B (zh) * | 2023-09-04 | 2024-09-13 | 深圳市飞易通科技有限公司 | 消息发送序列值的校正方法、权限转移方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090070883A (ko) * | 2007-12-27 | 2009-07-01 | 주식회사 센서웨이 | 무선 단말기 메쉬 네트워크에서의 통신 노드별 자동 망구성방법 및 통신 고장 감내 방법 |
KR20120102843A (ko) * | 2011-03-09 | 2012-09-19 | 경북대학교 산학협력단 | 전송 노드 및 그것의 메시지 전송 방법 |
KR20130127690A (ko) * | 2012-05-15 | 2013-11-25 | 삼성전자주식회사 | 무선통신 네트워크에서 인접 노드들을 디스커버리하기 위한 방법 및 장치 |
US20150117258A1 (en) * | 2013-10-30 | 2015-04-30 | Samsung Sds Co., Ltd. | Apparatus and method for changing status of cluster nodes, and recording medium having the program recorded therein |
WO2016175638A1 (ko) * | 2015-04-30 | 2016-11-03 | 엘지전자(주) | 블루투스 메쉬 네트워크에서 디바이스의 주소를 할당하기 위한 방법 및 장치 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7995497B2 (en) * | 2003-02-27 | 2011-08-09 | Hewlett-Packard Development Company, L.P. | Spontaneous topology discovery in a multi-node computer system |
US8149748B2 (en) * | 2006-11-14 | 2012-04-03 | Raytheon Company | Wireless data networking |
TWI437835B (zh) * | 2011-08-08 | 2014-05-11 | Ind Tech Res Inst | 電力線網路控制系統與方法 |
KR102364431B1 (ko) * | 2013-10-21 | 2022-02-18 | 삼성전자주식회사 | 무선 통신시스템의 연결 설정 방법 및 장치 |
US9634928B2 (en) * | 2014-09-29 | 2017-04-25 | Juniper Networks, Inc. | Mesh network of simple nodes with centralized control |
CN108370631B (zh) * | 2015-09-08 | 2020-06-16 | 飞利浦照明控股有限公司 | 照明设备的调试 |
US10355916B2 (en) * | 2016-09-27 | 2019-07-16 | Mcafee, Llc | Survivable networks that use opportunistic devices to offload services |
-
2017
- 2017-11-28 WO PCT/KR2017/013639 patent/WO2018097687A1/ko active Application Filing
- 2017-11-28 US US16/464,582 patent/US11272570B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090070883A (ko) * | 2007-12-27 | 2009-07-01 | 주식회사 센서웨이 | 무선 단말기 메쉬 네트워크에서의 통신 노드별 자동 망구성방법 및 통신 고장 감내 방법 |
KR20120102843A (ko) * | 2011-03-09 | 2012-09-19 | 경북대학교 산학협력단 | 전송 노드 및 그것의 메시지 전송 방법 |
KR20130127690A (ko) * | 2012-05-15 | 2013-11-25 | 삼성전자주식회사 | 무선통신 네트워크에서 인접 노드들을 디스커버리하기 위한 방법 및 장치 |
US20150117258A1 (en) * | 2013-10-30 | 2015-04-30 | Samsung Sds Co., Ltd. | Apparatus and method for changing status of cluster nodes, and recording medium having the program recorded therein |
WO2016175638A1 (ko) * | 2015-04-30 | 2016-11-03 | 엘지전자(주) | 블루투스 메쉬 네트워크에서 디바이스의 주소를 할당하기 위한 방법 및 장치 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3850819A1 (en) * | 2018-09-13 | 2021-07-21 | Telefonaktiebolaget Lm Ericsson (Publ) | A method of and devices for supporting selective forwarding of messages in a network of communicatively coupled communication devices |
EP3850819B1 (en) * | 2018-09-13 | 2024-11-06 | Telefonaktiebolaget Lm Ericsson (Publ) | A method of and devices for supporting selective forwarding of messages in a network of communicatively coupled communication devices |
CN111954163A (zh) * | 2019-05-16 | 2020-11-17 | 台达电子工业股份有限公司 | 蓝牙网状网络建立方法和系统 |
CN111954163B (zh) * | 2019-05-16 | 2022-07-12 | 台达电子工业股份有限公司 | 蓝牙网状网络建立方法和系统 |
CN114585062A (zh) * | 2022-04-13 | 2022-06-03 | 哈工大机器人(合肥)国际创新研究院 | 一种基于蓝牙的节能连接方法及系统 |
CN114585062B (zh) * | 2022-04-13 | 2024-05-14 | 哈工大机器人(合肥)国际创新研究院 | 一种基于蓝牙的节能连接方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20200068656A1 (en) | 2020-02-27 |
US11272570B2 (en) | 2022-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018097687A1 (ko) | 블루투스를 이용한 메쉬 네트워크에서 데이터를 송수신하기 위한 방법 및 장치 | |
WO2016175454A1 (ko) | 블루투스 메쉬 네트워크를 이용하여 데이터를 송수신하기 위한 방법 및 장치 | |
WO2016175638A1 (ko) | 블루투스 메쉬 네트워크에서 디바이스의 주소를 할당하기 위한 방법 및 장치 | |
WO2018074892A1 (ko) | 블루투스 기술을 이용하여 데이터를 송수신하기 위한 방법 및 장치 | |
WO2016182404A1 (ko) | 블루투스 저전력 에너지 기술을 이용하여 대체 통신 수단을 연결하기 위한 방법 및 장치 | |
WO2016175640A1 (ko) | 블루투스를 이용한 메쉬 네트워크에서 데이터를 송수신하기 위한 방법 및 장치 | |
WO2016039598A1 (ko) | 블루투스 기술을 이용하여 디바이스를 제어하기 위한 방법 및 장치 | |
WO2018135926A1 (ko) | 블루투스 통신 방법 및 장치 | |
WO2016167541A1 (ko) | 블루투스 저전력 기술을 이용하여 디바이스를 연결하기 위한 방법 및 장치 | |
WO2015194854A1 (ko) | 블루투스 le(low energy) 기술을 이용하여 디바이스 간 커넥션을 형성하기 위한 방법 및 장치 | |
WO2016178542A1 (ko) | 블루투스에서 데이터를 송수신하기 위한 방법 및 장치 | |
WO2016175575A1 (ko) | 블루투스 메쉬 네트워크를 이용하여 데이터를 송수신하기 위한 방법 및 장치 | |
WO2018048268A1 (ko) | 블루투스 기술을 이용하여 디바이스를 연결하기 위한 방법 및 장치 | |
WO2018169380A1 (ko) | 블루투스 기술을 이용하여 오디오 신호를 처리하기 위한 방법 및 장치 | |
WO2016017908A1 (ko) | 블루투스 통신을 지원하는 무선 통신 시스템에서 전자기기를 제어하기 위한 방법 및 장치 | |
WO2016122186A1 (ko) | 블루투스 기술을 이용하여 디바이스를 제어하기 위한 방법 및 장치 | |
WO2016017907A1 (ko) | 블루투스 통신을 지원하는 무선 통신 시스템에서 전자기기를 제어하기 위한 방법 및 장치 | |
WO2016017909A1 (ko) | 블루투스 통신을 지원하는 무선 통신 시스템에서 전자기기를 제어하기 위한 방법 및 장치 | |
WO2016175471A1 (ko) | 블루투스를 이용한 메쉬 네트워크에서 데이터를 송수신하기 위한 방법 및 장치 | |
WO2016153278A1 (ko) | 블루투스를 이용한 메쉬 네트워크에서 데이터를 송수신하기 위한 방법 및 장치 | |
WO2018038459A1 (ko) | 블루투스 기술을 이용하여 디바이스를 제어하기 위한 방법 및 장치 | |
WO2015163680A1 (ko) | 무선 통신 시스템에서 블루투스 저전력 에너지 기술을 이용하여 데이터를 송수신하기 위한 방법 및 장치 | |
WO2017043869A1 (ko) | 블루투스 기술을 이용하여 디바이스를 제어하기 위한 방법 및 장치 | |
WO2016010347A1 (ko) | 블루투스 le(low energy) 기술을 이용하여 디바이스의 위치를 측정하기 위한 방법 및 장치 | |
WO2016036139A2 (ko) | 블루투스 le(low energy) 기술을 이용하여 디바이스를 제어하기 위한 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17874607 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17874607 Country of ref document: EP Kind code of ref document: A1 |