This application is based upon and claims the benefit of priority from the Japanese Patent Application No. 2013-144864, filed on Jul. 10, 2013; the entire contents of which are incorporated herein by reference.
Embodiments described herein relate generally to a communication node device, a communication system, a communication control method and a computer-readable program product.
IETF RFC6550., RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks (Proposed standard, 2012) as Reference 1 stipulates a routing protocol RPL for network (IPv6 Routing Protocol for Low-Power and Lossy Network). In an operation mode of Storing Mode in RPL, it is possible to construct a multicast routing topology.
IETF I.D., draft-ietf-trickle-mcast-03, “Multicast Protocol for Low power and Lossy Networks (MPL)”, Jan. 24, 2013 as Reference 2 stipulates a trickle multicast being a flooding multicast protocol for meshed network. To each message of the trickle multicast, an identifier (seed ID) of the trickle multicast source and a sequence number are assigned. Each node can store a transferred message during a first period of time (Tdwell) and discard a redundantly-received message. Furthermore, each node can store a transferred message during a second period of time (Tactive), and resend the message on a periodic basis (the interval between resending processes will increase exponentially) (resend mode). Moreover, instead of the periodic resending, each node can intercommunicate information about received messages with the other nodes on a periodic basis (note, an interval thereof will increase exponentially), and send a message which is not received by the other nodes selectively based on the information (suppression mode).
In Reference 1, when the multicast routing topology, alertness level of node, or the like, is changed during multicast transfer, lost message may occur.
In Reference 2, although it is possible to decrease lost message, when a size of network is large, the resend mode may increase network load and the suppression mode may increase multicast transfer delay.
Exemplary embodiments of a communication node device, a communication system, a communication control method, and a computer-readable program product will be explained below in detail with reference to the accompanying drawings.
In the following embodiments, for example, a transmitted or received multicast message is stored during a certain period, a request for sending multicast message is transmitted to an adjacent node when reception continuity of a multicast message with the adjacent node is interrupted, and the stored multicast message is transmitted when the request for sending multicast message is received from the adjacent node. Thereby, it is possible to prevent a multicast message from being lost due to a change of a multicast routing topology, an alertness level of node, or the like, while suppressing network load and multicast transfer delay.
In the following, a first embodiment will be described in detail with reference to the accompanying drawings.
The first transmitting and receiving unit 101 transmits and receives a multicast message with other communication node devices. The storage unit 102 stores a multicast message transmitted or received by the first transmitting and receiving unit 101 for a certain period. The reception continuity detection unit 103 detects interruption of reception continuity of multicast message. Here, reception continuity is defined by radio wave strength between linked communication node devices (hereinafter to be referred to as adjacent nodes), operation state of the communication node device, and so forth.
The second transmitting and receiving unit 104 transmits a request for sending multicast message to the adjacent node when the reception continuity detection unit 103 detects interruption of reception continuity of multicast message from a certain adjacent node. Furthermore, when the second transmitting and receiving unit 104 receives a request for sending multicast message from the adjacent node, the second transmitting and receiving unit 104 instructs the first transmitting and receiving unit 101 to send a multicast message stored in the storage unit 102.
Next, an operation of the communication node device 100 according to the first embodiment will be described in detail with the accompanying drawings.
As shown in
As a result of the determination in step S102, when the multicast message M corresponding to the message identifier IL) is stored in the storage unit 102 (step S102; YES), the first transmitting and receiving unit 101 instructs the storage unit 102 to delete the received multicast message M (step S106). On the other hand, when the multicast message M corresponding to the message identifier ID is not stored in the storage unit 102 (step S102; NO), the first transmitting and receiving unit 101 instructs the storage unit 102 to store the message identifier ID, the multicast message M and the current time T (step S103).
Next, the first transmitting and receiving unit 101 determines whether another adjacent node except for the adjacent node corresponding to the pre-hop node information Np (in the following, for the sake of shorthand, referred to as a pre-hop adjacent node Np) exists or not (step S104). When there is no another adjacent node except for the pre-hop adjacent node Np (step S104; NO), the first transmitting and receiving unit 101 finishes this receiving operation. On the other hand, when another adjacent node except for the pre-hop adjacent node Np exists (step S104; YES), the first transmitting and receiving unit 101 transfers the received multicast message M to said another adjacent node (step S105), and finishes this receiving operation.
As shown in
When the multicast control event is reception of a request for sending multicast message R (step S202; YES), the second transmitting and receiving unit 104 instructs the first transmitting and receiving unit 101 to transmit a multicast message not included in information about stored message of the request for sending multicast message R among multicast messages stored in the storage unit 102 (step S203), and returns to step S201. At this time, the multicast message can be transmitted using native multicast or be transmitted to a source node N being a source of the request for sending multicast message R by using unicast. Here, the information about stored message may be a list of message identifiers ID of all multicast messages stored in the own storage unit 102.
On the other hand, when the event type is not reception of the request for sending multicast message R (step S202; NO), and when the event type indicates degradation of reliability of adjacent node (step S204; YES), the second transmitting and receiving unit 104 transmits a request for sending multicast message R including information about stored message stored in the storage unit 102 to an adjacent node N of which degradation of reliability of adjacent node is detected by the reception continuity detection unit 103 (step S205), and returns to step S201. On the other hand, when the event type does not indicate degradation of reliability of adjacent node (step S204; NO), the second transmitting and receiving unit 104 returns to step S201. The degradation of reliability of adjacent node is a state where reception continuity with an adjacent node is decreased. The degradation of reliability of an adjacent node may be a case where metric about reliability of a link layer for an adjacent node falls below a specific threshold.
As described above, according to the communication node device 100 according to the first embodiment, the transmitted or received multicast message M is stored during a certain period, and the request for sending multicast message R is transmitted to an adjacent node when reception continuity of a multicast message with the adjacent node is interrupted. Furthermore, when the request for sending multicast message R is received from the adjacent node, the stored multicast message M is transmitted. Thereby, it is possible to prevent a multicast message from being lost due to a change of a multicast routing topology, an alertness level of node, or the like, while suppressing network load and multicast transfer delay.
Next, a second embodiment will be described in detail with accompanying drawings.
The third transmitting and receiving unit 205 transmits and receives a multicast transfer control command. When the third transmitting and receiving unit 205 receives a multicast transfer control command indicating interruption of transmission and reception of a multicast message, the third transmitting and receiving unit 205 instructs the second transmitting and receiving unit 104 and the first transmitting and receiving unit 101 to interrupt transmission and reception of a multicast message. When the third transmitting and receiving unit 205 receives a multicast transfer control command indicating restart of transmission and reception of a multicast message, the third transmitting and receiving unit 205 instructs the second transmitting and receiving unit 104 and the first transmitting and receiving unit 101 to restart transmission and reception of a multicast message. Furthermore, when the third transmitting and receiving unit 205 receives a multicast transfer control command indicating reset of stored multicast messages, the third transmitting and receiving unit 205 instructs the storage unit 102 to delete the multicast messages stored in the storage unit.
Next, an operation of the communication node device 200 according to the second embodiment will be described in detail with the accompanying drawings.
As shown in
On the other hand, when the status does not indicate interruption (step S302; NO), the first transmitting and receiving unit 101 determines whether a range specifier of a message identifier of a multicast message being to be transmitted (hereinafter to be referred to as a range specifier of a scheduled multicast message) is stored or not (step S303). When the range specifier of the scheduled multicast message is stored (step S303; YES), the first transmitting and receiving unit 101 progresses to step S304, and when the range specifier of the scheduled multicast message is not stored (step S303; NO), the first transmitting and receiving unit 101 progresses to step S305.
In step S304, the first transmitting and receiving unit 101 determines whether the message identifier ID of the received multicast message M is included in a scheduled multicast message range assigned by the range specifier of the scheduled multicast message or not. When the message identifier ID is included in the scheduled multicast message range (step S304; YES), the first transmitting and receiving unit 101 progresses to step S305, and when the message identifier ID is not included in the scheduled multicast message range (step S304; NO), the first transmitting and receiving unit 101 discards the multicast message M (step S309), and finishes this operation.
In step S305, the first transmitting and receiving unit 101 determines whether the multicast message M corresponding to the message identifier ID is stored in the storage unit 102 or not (step S305). When the multicast message M corresponding to the message identifier ID is stored in the storage unit 102 (step S305; YES), the first transmitting and receiving unit 101 discards the received multicast message M (step S309), and finishes this operation.
On the other hand, when the multicast message M corresponding to the message identifier ID is not stored in the storage unit 102 (step S305; NO), the first transmitting and receiving unit 101 instructs the storage unit 102 to store the message identifier ID, the multicast message M and the current time T (step S306).
Then, the first transmitting and receiving unit 101 determines whether another adjacent node except for the pre-hop adjacent node Np exists or not (step S307). When another adjacent node except for the pre-hop adjacent node does not exist (step S307; NO), the first transmitting and receiving unit 101 finishes this operation. On the other hand, when another adjacent node except for the pre-hop adjacent node exists (step S307; YES), the first transmitting and receiving unit 101 transfers the received multicast message M to the another adjacent node (step S308), and finishes this operation.
As shown in
When the multicast control event is reception of a request for sending multicast message R (step S402; YES), the second transmitting and receiving unit 104 instructs the first transmitting and receiving unit 101 to transmit a multicast message not included in information about stored message of the request for sending multicast message R among multicast messages stored in the storage unit 102 (step S403), and returns to step S401. At this time, the multicast message can be transmitted using native multicast or be transmitted to a source node N being a source of the request for sending multicast message R by using unicast.
On the other hand, when the event type is not reception of the request for sending multicast message R (step S402; NO), and when the event type indicates degradation of reliability of adjacent node (step S404; YES), the second transmitting and receiving unit 104 transmits a request for sending multicast message R including information about stored message stored in the storage unit 102 to an adjacent node N of which degradation of reliability of adjacent node is detected by the reception continuity detection unit 103 (step S405), and returns to step S401.
On the other hand, when the event type does not indicate degradation of reliability of adjacent node (step S404; NO), the second transmitting and receiving unit 104 determines whether the event type is reception of a multicast control message or not (step S406). When the event type is reception of a multicast control message (step S406; YES), the second transmitting and receiving unit 104 executes a process of receiving a multicast control message (step S407), and returns to step S401. On the other hand, when the event type is not reception of a multicast control message (step S406; NO), the second transmitting and receiving unit 104 directly returns to step S401.
As shown in
On the other hand, when the type of the multicast transfer control command does not indicate interruption (step S501; NO), the third transmitting and receiving unit 205 determines whether the type of the multicast transfer control command indicates restart of transmission and reception of a multicast message or not (step S503). When the type of the multicast transfer control command indicates restart (step S503; YES), the third transmitting and receiving unit 205 instructs the second transmitting and receiving unit 104 and the first transmitting and receiving unit 101 to restart transmission and reception of a multicast message (step S504), and progresses to step S507.
On the other hand, when the type of the multicast transfer control command does not indicate restart (step S503; NO), the third transmitting and receiving unit 205 determines whether the type of the multicast transfer control command indicates reset of stored multicast messages or not (step S505). When the type of the multicast transfer control command indicates reset (step S505; YES), the third transmitting and receiving unit 205 instructs the storage unit 102 to delete stored messages (step S506), and progresses to step S507. On the other hand, the type of the multicast transfer control command does not indicate reset (step S505; NO), the third transmitting and receiving unit 205 finishes this operation and returns to the operation shown in
In step S507, the third transmitting and receiving unit 205 determines whether another adjacent node except for the pre-hop adjacent node Np exists or not. When another adjacent node exists (step S507; YES), the third transmitting and receiving unit 205 transfers the received multicast control message (step S508), and finishes this operation and returns to the operation shown in
As described above, according to the communication node device 200 according to the second embodiment, the multicast transfer control command is transmitted and received. Thereby, in addition to the effects according to the communication node device 100 according to the first embodiment, when network load is high, it is possible to interrupt multicast transfer and prioritize unicast communication. Furthermore, when delivery of new multicast contents is started, it is possible to free a memory region for old multicast contents stored in each communication node and assign the memory region to the delivery of new multicast contents.
Next, as a third embodiment, using
In
In
In
Now, from the state shown in
Then, it is assumed that the state in which the communication node device N4 (D104) receives the three multicast messages M102 as shown in
Next, it is assumed that the state after the communication node device N5 (D105) received the request for sending multicast message MMreq (M201) as shown in
Next, it is assumed that the state after the communication node device N5 (D105) receives the multicast message MM4 (M302) as shown in
In
Next, in
Then, an example of format of a multicast message is shown in
Next, in
Next, in
Each of the communication node devices exampled in the above-described embodiments can use a general-purpose computer as a basic hardware. That is, the first transmitting and receiving unit 101, the storage unit 102, the reception continuity detection unit 103, the second transmitting and receiving unit 104 and the third transmitting and receiving unit 205 can be realized by letting one or more processors installed in the general-purpose computers execute programs. In such configuration, it is possible to realize the communication node device by preinstalling the programs in a computer device, or by distributing the programs to the computer device via a medium such as a CD-ROM, a network, or the like, and installing the programs in the computer device. The storage unit 102 can be realized using a non-transitory computer-readable medium such as an embedded or external memory of the computer device, a hard disk, a CD-R, a CD-RW, a DVD-RAM, a DVD-R, or the like.
As described above, the communication node device according to one of the above-described embodiments comprises: a first transmitting and receiving unit 101 configured to transmit and receive a multicast message; a storage unit 102 configured to store a message transmitted or received by the first transmitting and receiving unit 101 during a certain period; a reception continuity detection unit 103 configured to detect interruption of reception continuity of multicast message; and a second transmitting and receiving unit 104 configured to, when the reception continuity detection unit 103 detects interruption of reception continuity of multicast message with the adjacent node, transmit a request for sending multicast message to the adjacent node, and when a request for sending multicast message form the adjacent node, instruct the first transmitting and receiving unit 101 to transmit a multicast message stored in the storage unit 102.
When an adjacent node newly adds to the multicast link, the reception continuity detection unit 103 may determines that maintaining reception continuity of the multicast messages with this adjacent node has become impossible. Furthermore, the second transmitting and receiving unit 104 may use a request for joining multicast group as a request for sending multicast message. In such case, as the request for joining multicast group, a message for joining multicast group in the multicast routing protocol, the multicast listener management protocol, or the like, may be used. As the message for joining multicast group in the multicast routing protocol, there is a Join/Prune message in RFC 3973 (PIM-SM), for instance. As the message for joining multicast group in the multicast listener management protocol, there is a Membership Report message described in “RFC 3376(IGMPv3)” and a Multicast Listener Report message described in “RFC 3810(=v2)”, for instance. Furthermore, as the request for sending multicast message, routing information advertising in the routing protocol may be used. In such case, as the routing information advertising in the routing protocol, a DAO (destination advertisement object) in the RPL may be used.
When own node changes from a sleep state to an awake state, the reception continuity detection unit 103 may determine that maintaining reception continuity of the multicast messages with all of the adjacent nodes has become impossible. In such case, as for the request for sending multicast message to be transmitted from the second transmitting and receiving unit 104 may include information about own dormant period.
When metric about reliability of link layer for a certain adjacent node becomes below a certain threshold, the reception continuity detection unit 103 may determine that maintaining reception continuity of the multicast messages from this adjacent node has become impossible. In such case, as the metric about reliability of link layer, a Link Quality Level (LQL) or an Expected Transmission count Metric (ETX) may be used. In addition, with respect to a disconnected link, a multicast routing control for detouring such link is executed based on the routing protocol.
The request for sending multicast message can include information about stored message. The second transmitting and receiving unit 104 can selectively transmit a message which is not included in the information about stored message to a source of the request for sending multicast message. In such case, the information about stored message may be represented by at least one of a list of message identifiers, a list of range specifiers of message identifiers and a bitmap of message identifiers. The message identifier is added to each multicast message. The message identifier may be structured by a content ID and a block number. In such case, as the content ID and the block number, the seed-id field and a sequence field in the MPL Option described in Reference 2 are used.
the second transmitting and receiving unit 104 may treat all of the blocks are not received with respect to a certain adjacent node that has not sent the request for sending multicast message. Furthermore, when using a native multicast, the second transmitting and receiving unit 104 may use a product set of information about stored message in all adjacent nodes on the same multicast link as the information about stored message on the multicast link. Here, the native multicast is multicast served by a data link layer or a network layer.
The communication node device according to each embodiment can have the third transmitting and receiving unit 205 configured to execute transmission and reception of a multicast transfer control command. The third transmitting and receiving unit 205 may instruct the second transmitting and receiving unit 104 and the first transmitting and receiving unit 101 to interrupt transmission and reception of a multicast message when receiving a multicast transfer control command indicating interruption, instruct the second transmitting and receiving unit 104 and the first transmitting and receiving unit 101 to restart transmission and reception of a multicast message when receiving a multicast transfer control command indicating restart, and instruct the storage unit 102 to delete the multicast message stored in the storage unit 102 when receiving a multicast transfer control command indicating reset. In such case, the first transmitting and receiving unit 101 executes interruption or restart of transmission and reception of multicast message based on the instruction of interruption or restart from the third transmitting and receiving unit 205. The storage unit 102 may delete all the multicast messages stored in itself based on the instruction of reset from the third transmitting and receiving unit 205.
The multicast transfer control command indicating reset may include a range specifier of a multicast identifier of a scheduled multicast message (a range specifier of scheduled multicast message). In such case, when a multicast message which is not included in the range specifier of scheduled multicast message is received, the first transmitting and receiving unit 101 can directly discard the multicast message based on the instruction of reset form the third transmitting and receiving unit 205. Furthermore, the multicast transfer control command indicating interruption can include a restart time. In such case, the first transmitting and receiving unit 101 can instruct the second transmitting and receiving unit 104 and the first transmitting and receiving unit 101 to restart transmission and reception of multicast message based on the instruction of interruption from the third transmitting and receiving unit 205.
When the second transmitting and receiving unit 104 instructs the first transmitting and receiving unit 101 to transmit multicast messages stored in the storage unit 102, the second transmitting and receiving unit 104 can instruct to transmit the multicast messages in no particular order.
Furthermore, for transmitting and receiving a multicast message stored in the storage unit 102, the first transmitting and receiving unit 101 can use one of multicast and unicast. When multicast is used, it is possible to use native multicast, application layer multicast stipulated by automatic multicast tunneling or REsource LOcation And Discovery (RELOAD), or a combination thereof. As multicast on network layer, it is possible to use Trickle multicast described in Reference 1. When unicast is used, a destination node can be changed for each message. In such case, a message to be delivered is selected based on a condition of a link between adjacent nodes. For example, when a link with unstable reliability becomes available, a multicast message may be preferentially transferred to an adjacent node connected to that link.
As described above, in the above-described embodiments, by storing a transmitted or received message during a certain period, transmitting a request for sending multicast message to an adjacent node when interruption of reception continuity of multicast message from the adjacent node is detected, and transmitting a stored multicast message to an adjacent node when a request for sending multicast message is received from the adjacent node, it is possible to prevent a multicast message from being lost due to a change of a multicast routing topology, an alertness level of node, or the like, while suppressing network load and multicast transfer delay.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
Number | Date | Country | Kind |
---|---|---|---|
2013-144864 | Jul 2013 | JP | national |