This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2013-168444, filed on Aug. 14, 2013, the entire contents of which are incorporated herein by reference.
The present invention relates to a node apparatus, a data relay method, and a computer-readable recording medium.
In recent years, studies of ad-hoc networks in which a plurality of wireless communication apparatuses (hereinafter, referred to as node apparatuses) connect to each other in an autonomously distributed manner have been carried out. Each of the node apparatuses of an ad-hoc network independently establish a network according to the communication environment.
Specifically, in the ad-hoc network, no access points are provided, and each of the node apparatuses relays to another adjacent node apparatus a data frame received from a node apparatus that is adjacent to it (hereinafter, referred to as an adjacent node apparatus) on the basis of the network topology, to transmit the data frame to the destination node apparatus. At this time, each of the node apparatuses transmits the data frame by selecting a path with a better transmission quality.
Because the network environment changes from to time, even when each of the node apparatuses transmits the frame on the basis of the network topology, the frame is not always transmitted to its destination node apparatus.
For example, even when the transmission of the data frame from a node apparatus to an adjacent node apparatus has been successful, for a certain reason (for example, a communication failure), an ACK (ACKnowledgment) frame sent back from the adjacent node apparatus may be missing.
In this case, the node apparatus that has transmitted the data frame determines that the transmission of the data frame has failed, and it re-transmits the data frame to another adjacent node apparatus. As a result, a plurality of the same data frames (hereinafter, referred to as overlapped data) are transmitted through the network. Therefore, the detection of overlapped data is very important.
As a technique related to the ad-hoc network, a method to detect whether or not the node apparatus has received the same data frame as a data frame received previously has been known.
A node apparatus according to an aspect includes a receiving unit which receives a data frame from one of a plurality of adjacent node apparatuses with which links exist; a storing unit which stores an identification information management table in which frame identification information with which the data frame may be uniquely identified, and overlapped data identification information with which, when data frames having the same frame identification information are received in an overlapped manner, the data frame received first among the overlapped data frames may be uniquely identified, are associated; a processor which performs a process including: first judging whether or not a final destination of the received data frame is the node apparatus itself; second judging, when the final destination of the received data frame is not the node apparatus itself, whether or not a registration that matches the frame identification information of the received data frame exists in the identification information management table; third judging, when it is determined by the second judging that the registration exists in the identification information management table, whether or not the overlapped data identification information of the received data frame and the overlapped data identification information corresponding to the registration match; and discarding the received data frame when a judgment of a mismatch is made by the third judging; and performing a retransmission of the received data frame to another adjacent node that has not been a transmission destination of the data frame, when a judgment of a match is made by the third judging.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention.
Hereinafter, embodiments of the present invention are described in detail with reference to the drawings.
Embodiment 1 is described.
In the present embodiment 1, there are at least two types of node apparatuses 1 that constitute the network 100. One is an “end node apparatus”, and the other one is a “relay node apparatus”.
The end node apparatus 1 is, for example, a sensor node apparatus and the like equipped with a metering node apparatus such as a power meter and various sensors. The end node apparatus 1 is an apparatus that collects information from the sensor and the like according to the order from a data server or independently, and transmits the collected information (data frame) to the data server.
The end node apparatus 1 is, in
The relay node apparatus 1 is a node apparatus exclusively for performing relaying with a stronger wave output and a higher transmission rate compared with the end node apparatus 1, and relays the data frame transmitted by the end node apparatus 1. The relay node apparatus 1 is, for example, placed in a case such as when there is a distance between adjacent end node apparatuses 1, and it is impossible to constitute the network 100 only with the end node apparatuses 1. That is, as the network 100 illustrated in
The relay node apparatus 1 in
Meanwhile, in the present embodiment 1, the configuration is made so that when the relay node apparatus 1 transmits a data frame to another relay node apparatus 1, the other noted apparatus 1 that has received the data frame does not send back the ACK frame.
The link may be either a wireless link or a wired link. For example, referring to
The link changes dynamically, and due to the influence of the weather, shielding objects and the like, a new link may be established between the node apparatuses 1, and a link that has been established may disappear. In addition, for example, when the node apparatus 1 is mobile, the presence/absence of the link may change due to the variation in the distance between the node apparatuses 1. In addition, for example, due to the change in the cable connection, a new link may be established between the node apparatuses 1, a link that has been established may disappear, and due to a failure such as the cutting of the cable, a link may disappear.
Next, referring to
The node apparatus 1 includes a communication unit 10, a storing unit 20, and a control unit 30.
The communication unit 10 is constituted by a communication module and the like, and performs communication with another node apparatus 1. For example, the communication unit 10 transmits/receives a frame.
The storing unit 20 is constituted by a RAM (Random Access Memory), a ROM (Read Only Memory), a flash memory, and the like. The storing unit i20 constitutes the control unit 30. For example, it functions as a work area of the MPU (Micro-Processing Unit), a program area to store various programs such as the operation program to control the entire node apparatus 1, a data area to store various data such as a FID table T1, a routing table T2 whose details are described later, and the like. In addition, in the data area, the node ID of the node apparatus itself and the attribute information of the node apparatus 1 itself (for example, information indicating the type of the node apparatus) are also stored.
Here, referring to
The header of the data frame in the present embodiment 1 includes, as illustrated in
The LD is the node ID of the adjacent node apparatus 1 to be the transmission destination, and a route selecting unit 35 (details are described later) selects the LD referring to a routing table T2. For example, referring to
The LS is the node ID of the adjacent node apparatus of the transmission source, and the data frame processing unit 33 of the node apparatus 1 to be the LS stores the node ID of the node apparatus itself in the LS field. For example, referring to
The GD is the node ID of the node apparatus 1 to be the final destination. The GS is the node ID of the node apparatus 1 of the issuing source of the data frame (hereinafter also referred to as issuing source node apparatus). For example, referring to
Meanwhile, hereinafter, when a data frame issued by the end node apparatus N1 is relayed in the order of the end node apparatus N2, the relay node apparatus S1, the relay node apparatus S2, and the relay node apparatus S3, and is transmitted finally to the end node apparatus N16, it is expressed as path <N1, N2, S1, S2, S3, N16>.
The FID is the frame ID in the issuing source node apparatus 1 of the frame. That is, the FID generated by the issuing source node apparatus 1 is stored in the “FID” field of the header. That is, by combining the GS and FID, it becomes frame identification information with which the frame may be uniquely identified.
The frame type is information indicating the type of the frame, and in a data frame, information indicating that the type of the frame is the data frame is stored in the “frame type” field. As the types of the frames, in the present embodiment 1 at least, there are three, including the hello frame, the data frame and the ACK frame (hereinafter simply referred to as ACK).
The hello frame is generated by a hello frame generating unit 36 (details are described later), and is a frame for notifying other node apparatuses 1 of the existence of the node apparatus 1 itself, and includes information necessary for the path generation. The data frame is a frame including information that the issuing source node apparatus 1 (GS) is trying to send as the payload to the node apparatus 1 (GD) to be the final destination. The ACK is a frame for notifying the node apparatus 1 (LS) of the transmission source of the reception of the data frame.
The ACK flag is information (flag) indicating whether or not it is necessary to send back the ACK to the LS in response to the reception of the data frame. For example, when the value stored in the “ACK flag” is “0”, this indicates that the sending back of the ACK is necessary, and on the other hand, when it is “1”, this indicates that the sending back of the ACK is unnecessary. Meanwhile, in the present embodiment 1, the initial value of the ACK flag is “0”. That is, when the end node apparatus 1 generates a data frame as the GS, the data frame processing unit 33 of the end node apparatus 1 sets the value of the ACK flag to “0”.
The PathID is the node ID of the relay node apparatus that the data frame goes through first (hereinafter, referred to as a first relay node apparatus), and the data frame processing unit 33 of the first relay node apparatus 1 stores the node ID of the node apparatus 1 itself in the “PathID” field. For example, referring to
Next, referring to
Meanwhile, the routing table T2 illustrated in
The “LD candidate” is the node ID of the adjacent node apparatus 1 with which the link exists. The “priority” indicates the priority in selecting the LD from LD candidates. This priority may be variable, and for example, the configuration may be made so that the link managing unit 32 changes the priority on the basis of whether or not the transmission of the data frame has been successful. In addition, for example, the configuration may be made so that the link managing unit 32 changes the priority on the basis of whether or not the data frame transmitted to the adjacent node apparatus 1 has been looped or not.
Returning to
The frame type identifying unit 31 identifies the type of the frame received at the communication unit 10. Specifically, upon receiving a frame, the communication unit 10 outputs the received frame to the frame type identifying unit 31. Then, the frame type identifying unit 31 analyzes the header of the received frame, and on the basis of the frame type, identifies the type of the frame.
Then, when the identified type of the frame is a hello frame, the frame type identifying unit 31 outputs the received frame to the data frame processing unit 33, and when the type of the identified frame is the ACK, outputs the received frame to the ACK processing unit 34.
The link managing unit 32 manages the routing table T2. More specifically, when the received frame is the hello frame, the link managing unit 32 analyzes the received hello frame, and on the basis of the analysis result, performs the update and generation of the routing table T2. Meanwhile, when an instruction to generate the routing table T2 is input from the route selecting unit 35, the link managing unit 32 generates the routing table T2 corresponding to the GD for which the generation has been instructed, for example on the basis of the hello frame received in the past.
In addition, the link managing unit 32 changes the priority of the routing table T2 on the basis of the result of the judgment as to whether or not the transmission of the data frame transmitted by the ACK processing unit 34 was successful, and the like. For example, when it is determined that the transmission of the data frame has failed, the link managing unit 32 sets the priority corresponding to the “LD candidate” for which the transmission of the data frame has been determined as failed as the lowest.
The data frame processing unit 33 performs processing of the received data frame. More specifically, the data frame processing unit 33 first judges whether or not a data frame has been received by judging whether or not a data frame has been input by the frame type identifying unit 31. Then, upon receiving a data frame, the data frame processing unit 33 analyzes the header of the received data frame, and judges whether or not the LD matches the node ID of the node apparatus itself. Then, when the LD does not match the node ID of the node apparatus itself, the data frame processing unit 33 discards the received data frame, and when the LD matches the node ID of the node apparatus itself, on the basis of the ACK flag, judges whether or not it is necessary to send back the ACK to the LS.
When it is necessary to send back the ACK to the LS, the data frame processing unit 33 issues an instruction to generate the ACK to the ACK processing unit 34. Then, the data frame processing unit 33 judges whether or not the GD matches the node ID of the node apparatus itself. That is, the data frame processing unit 33 judges whether the final destination of the received data frame is its node apparatus 1 itself or not.
When the final destination of the received data frame is its node apparatus 1 itself, the data frame processing unit 33 outputs the received data frame to the upper-level layer. In response to the input of the data frame, the upper-level layer performs processing of the received data frame.
On the other hand, when the final destination of the received data frame is another node apparatus 1, the data frame processing unit 33 compares the header and the FID table T1, and judges whether or not there is a registration in the FID table T1 whose combination of the GD and FID matches the combination of the GD and FID of the header. That is, the data frame processing unit 33 judges whether or not the same data frame has already been received.
When there is a registration in the FID table T1 whose combination of the GD and FID matches the GD and the FID of the header and its node apparatus 1 itself is the relay node apparatus 1, the data frame processing unit 33 further judges whether or not the PathID of the header matches the PathID of the registration whose combination of the GD and FID matches the combination of the GD and FID of the header. That is, it judges whether or not there is any registration in the FID table T1 that matches the combination of the GD and FID and the PathID of the header.
When there is a registration in the FID table T1 that matches the combination of the GD and FID and the PathID of the header, the data frame processing unit 33 determines that the received data frame is loop data. On the other hand, when there is a registration in the FID table T1 that matches the combination of the GD and FID of the header but the PathID does not match, the data frame processing unit 33 determines that the received data frame is overlapped data. As described above, in the present embodiment 1, it is possible to distinguish between loop data and overlapped data.
Then, upon determining that a received data frame is overlapped data, the data frame processing unit 33 discards the received data, and when it is determined as loop data, it issues an instruction to re-select the LD to the route selecting unit 35. At this time, the data frame processing unit 33 notifies the link managing unit 32 of the LD at the time of the transmission of the loop data and that the loop has been made. By doing so, it becomes possible for the link managing unit 32 to change the priority of the routing table T2 appropriately.
Meanwhile, even if there is a registration whose combination of the GD and the FID matches the combination of the GD and FID of the header, when its node apparatus 1 itself is the end node apparatus 1, the judgment as to whether the received data frame is loop data or overlapped data is not performed. That is, in the present embodiment 1, the distinguishing between loop data and overlapped data is executed only in the relay node apparatus 1. In the end node apparatus 1, when there is a registration in the FID table T1 whose combination of the GD and FID matches the combination of the GD and FID of the header, the received data frame is determined as loop data, and an instruction to re-select the LD is issued to the route selecting unit 35.
Meanwhile, when there are no registrations in the FID table T1 whose combination of the GD and FID match the combination of the GD and FID of the header, that is, when the data frame is received for the first time, the data frame processing unit 33 performs a registration process in the FID table T1.
More specifically, the data frame processing unit 33 judges whether or not the PathID of the header is null. When the PathID of the header is not null, that is, when the received data frame has gone through any relay node apparatus 1, the data frame processing unit 33 associates and registers the GD and the FID and the PathID of the header of in the FID table T1. Then, the data frame processing unit 33 issues an instruction to the route selecting unit 35 to perform transmission of the received data frame.
Meanwhile, when the PathID of the header is null, that is, when the received data frame is a data frame that has gone through no relay node apparatus 1 and its node apparatus 1 itself is the end node apparatus 1, the data frame processing unit 33 associates and registers the GD and the FID and the PathID of the header in the FID table T1. Then, the data frame processing unit 33 issues an instruction to select the LD, to perform transmission of the received data frame.
On the other hand, when the PathID of the header is null and its node apparatus 1 itself is the relay node apparatus 1, the data frame processing unit 33 sets the node ID of its node apparatus 1 itself to the PathID of the header, and also associates and registers the GD and the FID of the header in the FID table T1. That is, in the relay node apparatus 1 that the data frame that is the processing target goes through first, the setting of the PathID of the header is performed. Then, the data frame processing unit 33 issues an instruction to select the LD, to perform transmission of the received data frame.
Meanwhile, when a notification of the LD selected by the route selecting unit 35 is issued, the data frame processing unit 33 performs a transmitting process of the data frame. More specifically, when a notification of the LD selected by the route selecting unit 35 is issued, the data frame processing unit 33 sets the node ID of its node apparatus 1 itself to the LS of the header, and also sets the LD selected by the route selecting unit 35 to the LD of the header.
At this time, when the relay node apparatus 1 transmits the data frame to another relay node apparatus 1 and the value of the ACK flag is “0”, the data frame processing unit 33 sets the value of the ACK flag to “1”. Meanwhile, when the relay node apparatus 1 transmits the data frame to the end node apparatus 1 and the value of the ACK flag is “1”, the data frame processing unit 33 sets the value of the ACK flag to “1”. By doing so, the setting is made so that when the relay node apparatus 1 transmits the data frame to another relay node apparatus 1, the sending back of the ACK is not needed.
In addition, at this time, in preparation for the retransmission (retrying) of the data frame, the data frame processing unit 33 stores the data frame in the data area of the storing unit 20. By doing so, it becomes possible, when a need to retransmit the data frame arises, to duplicate the data frame for retransmission, on the basis of the data frame stored in the storing unit 20.
Then, the data frame processing unit 33 transmits the data frame to the adjacent node apparatus 1 that is the set LD, through the communication unit 10.
Meanwhile, when a notification of the failure of the transmission of the data frame is issued from the ACK processing unit 34, and furthermore, a notification of the LD selected by the route selecting unit 35 is issued, the data frame processing unit 33 performs the retransmission of the data frame. More specifically, the data frame processing unit 33 duplicates the corresponding data frame stored in the data area of the storing unit 20, and changes the LD of the duplicated data frame to the LD selected by the route selecting unit 35. Then, the data frame processing unit 33 transmits the duplicated data frame to the adjacent node apparatus 1 that is the LD after the change, through the communication unit 10. At this time, when the LD selected by the route selecting unit 35 is the LS, the data frame processing unit 33 deletes the corresponding data frame stored in the data area of the storing unit 20. In addition, as needed, the setting of the ACK flag is changed.
The data frame processing unit 33 further generates the data frame with the header illustrated in
The ACK processing unit 34 performs the process to transmit/receive the ACK. More specifically, the ACK processing unit 34 generates the ACK upon receiving a generation instruction for the ACK from the data frame processing unit, and sends back the generated ACK to the LS.
In addition, upon receiving the ACK within a prescribed time after transmitting a data frame, the ACK processing unit 34 determines that the transmission of the data frame has been successful, and deletes the corresponding data frame stored in the data area of the storing unit 20.
On the other hand, when the ACK is not received within a prescribed time, the ACK processing unit 34 determines that the transmission of the data frame has failed, and to the data frame processing unit 33 and the route selecting unit 35, issues a notification of the failure of the transmission of the data frame.
In addition, the ACK processing unit 34 notifies the link managing unit 32 of the result of the judgment as to whether or not the transmission of the data frame has been successful. By doing so, it becomes possible for the link managing unit 32 to change the priority of the routing table T2 on the basis of whether or not the transmission of the data frame has been successful.
The route selecting unit 35 selects, when it is necessary to transmit the received data frame to another node apparatus 1, the adjacent node apparatus 1 to be the transmission destination of the data frame, that is, the LD, referring to the routing table T2. Then, the route selecting unit 35 notifies the data frame processing unit 33 of the selected LD.
More specifically, when an instruction to select the LD is issued from the data frame processing unit 33, or when a notification of the failure of the transmission of the data frame is issued from the ACK processing unit 34, the route selecting unit 35 identifies the routing table T2 corresponding to the GD of the data frame that is the transmission target. Then, the route selecting unit 35 selects the adjacent node apparatus 1 that is the transmission destination, that is, the LD, on the basis of the priority of the identified routing table T2.
Meanwhile, when it is impossible to identify the routing table T2 corresponding to the GD of the data frame that is the transmission target, the route selecting unit 35 issues an instruction to generate the routing table T2 corresponding to the GD of the data frame that is the transmission target, to the link managing unit 32. Then, the route selecting unit 35 selects the adjacent node apparatus 1 that is the transmission destination, that is, the LD, on the basis of the priority of the routing table T2 generated by the link managing unit 32.
For example, when the data frame that is the transmission target is not loop data, that is, when the data frame is received for the first time, the route selecting unit 35 selects the LD candidate with the highest priority, from LD candidates excluding the adjacent node apparatus 1 (LS) of the transmission source.
Meanwhile, the data frame that is the transmission target is for example a loop data, or, when a notification of the failure of the transmission of the data frame is issued, the route selecting unit 35 selects the LD candidate with the highest priority, from LD candidates excluding the adjacent node apparatus 1 (LS) of the transmission source and the adjacent node apparatus 1 to which an attempt for transmission has already been made.
At this time, when it is impossible to identify the LD, the route selecting unit 35 selects the adjacent node apparatus 1 (LS) of the transmission source as the LD so as to send back the data frame to the adjacent node apparatus (LS) of the transmission source.
The hello frame generating unit 36 generates the hello frame at a prescribed timing (for example, regularly), and transmits the generated hello frame to another node apparatus 1 through the communication unit 10.
Next, referring to
The data frame processing unit 33 judges whether or not a data frame has been received (step S001). When it is determined that no data frame has been received (step S001; NO), the data frame processing unit 33 further judges whether or not there is any data frame that its node apparatus 1 itself transmits as the GS (step S101). However, when the relay node apparatus 1 executes this relay process, as described above, the relay node apparatus 1 does not function as the GS, and therefore, the process of step S101 is not executed. For this reason, when a judgment of NO is made in the process of step S001, the process of step S001 is repeated so as to wait for the reception of the data frame.
When a judgment is made by the data frame processing unit 33 that there is not any data frame that its node apparatus 1 itself transmits as the GS (step S101; NO), the process returns to the process in step S001, and the process described above is repeated. Meanwhile, when a judgment is made by the data frame processing unit 33 that there is a data frame that its node apparatus 1 itself transmits as the GS (step S101; YES), the process proceeds to the process of step S102 described later.
On the other hand, in the process of step S001, when it is determined that a data frame has been received (step S001, YES), the data frame processing unit 33 analyzes the header of the received data frame (step S002), and judges whether the LD matches the node ID of its node apparatus itself (step S003).
When it is determined that the LD does not match the node ID of it node apparatus itself (step S003; NO), the data frame processing unit 33 discards the received data frame (step S004). Then, the process returns to the process of step S001 to wait for the reception of the next data frame.
On the other hand, when it is determined that the LD matches the node ID of the node apparatus itself (step S003; YES), the data frame processing unit 33 judges whether or not it is necessary to send back the ACK to the LS on the basis of the ACK flag of the received data frame (step S005).
When a judgment is made by the data frame processing unit 33 that it is not necessary to send back the ACK to the LS (step S005; NO), the process proceeds to the process of step S008 described later. On the other hand, when a judgment is made by the data frame processing unit 33 that it is necessary to send back the ACK to the LS (step S005; YES), the data frame processing unit 33 issues an instruction to generate the ACK to the ACK processing unit 34 (step S006).
The ACK processing unit 34 that has received the generation instruction for the ACK generates an ACK, and transmits the generated ACK to the adjacent node apparatus 1 (LS) of the transmission source, through the communication unit 10 (step S007). Then, the data frame processing unit 33 judges whether or not the GD matches the node ID of its node apparatus itself (step S008). That is, the data frame processing unit 33 judges whether or not the final destination of the received data frame is its node apparatus 1 itself.
When it is determined that the GD matches its node ID of the node apparatus itself (step S008; YES), the data frame processing unit 33 outputs the received data frame to the upper-level layer, and in response to the input of the data frame, the upper-level layer performs processing of the received data frame (step S009).
On the other hand, when it is determined that the GD does not match the node ID of its node apparatus 1 itself (step S008; NO), the data frame processing unit 33 compares the header and the FID table T1 (step S010), and judges whether or not there is a registration in the FID table T1 whose combination of the GD and FID matches the combination of the GD and FID of the header (step S011).
When it is determined that there is a registration in the FID table T1 whose combination of the GD and FID matches the combination of the GD and FID of the header (step S011; YES), the data frame processing unit 33 further judges whether or not its node apparatus 1 itself is the relay node apparatus 1 on the basis of the information indicating the type of its node apparatus 1 itself stored in the data area of the storing unit (step S012).
When a judgment is made by the data frame processing unit 33 that that its node apparatus 1 is not the relay node apparatus 1 (step S012; NO), the process proceeds to the process in step S014. This is because, in the present embodiment 1, the configuration is made so that the distinguishing between loop data and overlapped data is executed only in the relay node apparatus 1.
On the other hand, when a judgment is made by the data frame processing unit 33 that that its node apparatus 1 is the relay node apparatus 1 (step S012; YES), the data frame processing unit 33 further judges whether or not the PathID of the header matches the PathID of the registration whose combination of the GD and the FID matches the combination of the GD and FID of the header (step S013). That is, the data frame processing unit 33 judges whether or not there is a registration in the FID table T1 that matches the combination of the GD and FID and the PathID of the header.
When it is determined that the PathID does not match (step S013; NO), that is, when it is determined that the received data frame is overlapped data, the data frame processing unit 33 discards the received data frame (step S004).
On the other hand, when it is determined that the PathID also matches (step S013; YES), that is, when it is determined that the received data frame is loop data, the data frame processing unit 33 issues an instruction to re-select the LD to the route selecting unit 35 (step S104).
The route selecting unit 35 that has received the instruction re-select the LD identifies the routing table T2 corresponding to the GD of the data frame that is the transmission target (step S015), and judges whether or not there is any “LD candidate” to which the data frame that is the transmission target has not been transmitted (step S016).
When it is determined by the route selecting unit 35 that there is still an “LD candidate” to which the data frame that is the transmission target has not been transmitted (step S016; YES), the process proceeds to the process in step S107. On the other hand, when it is determined there is no more “LD candidate” to which the data frame that is the transmission target has not been transmitted (step S016; NO), the route selecting unit 35 selects the LS as the LD (step S017), and the process proceeds to the process in step S108 described later. That is, a process to send back the received data frame to the node apparatus 1 that is the transmission source is performed.
In the process in step S011, when it is determined that there are no registrations in the FID table T1 whose combination of the GD and FID match the combination of the GD and FID of the header (step S011; NO), that is, when it is determined that the data frame is received for the first time, the data frame processing unit 33 executes a registration process in the FID table T1.
Specifically, the data frame processing unit 33 judges whether or not the PathID of the header is null (step S201). When it is determined that the PathID of the header is not null (step S201; NO), that is, when the received data frame has already gone through a relay node apparatus 1, the data frame processing unit 33 associates and registers the GD and FID and the PathID of the header in the FID table T1 (step S301). Then, the process proceeds to the process of step S102 described later.
On the other hand, when it is determined that the PathID of the header is null (step S201; YES), that is, when the received data frame is a data frame that has not gone through a relay node apparatus 1, the data frame processing unit 33 further judges whether or not its node apparatus 1 itself is the relay node apparatus 1, on the basis of the information indicating the type of its node apparatus 1 itself stored in the data area of the storing unit 20 (step S202).
When it is determined that its node apparatus 1 itself is the end node apparatus 1 (step S202; NO), the process proceeds to the process of step S301, and the process described above is performed.
On the other hand, when it is determined that its node apparatus 1 itself is the relay node apparatus 1 (step S202; YES), the data frame processing unit 33 sets the node ID of its node apparatus itself to the PathID of the header (step S203), and associates and registers the node ID of its node apparatus itself and the GD and the FID of the header in the FID table T1 (step S204). That is, in the relay node apparatus 1 that the data frame that is the processing target goes through first, the setting of the PathID of the header is performed. Then, the process proceeds to the process of S102 described later.
In the process in step S102, the data frame processing unit 33 issues an instruction to select the LD to the route selecting unit 35 (step S102).
The route selecting unit 35 that has received the selection instruction of the LD identifies the routing table T2 corresponding to the GD of the data frame that is the transmission target (step S103), and judges whether or not the routing table T2 has been identified (step S104). When it is determined that the routing table T2 has not been identified (step S104; NO), the route selecting unit 35 issues an instruction to generate the routing table T2 corresponding to the GD of the data frame that is the transmission target to the link managing unit 32 (step S105).
The link managing unit 32 that has received the generation instruction of the routing table T2 generates the routing table T2 corresponding to the GD for which the generation has been instructed (step S106).
Then, the route selecting unit 35 selects the adjacent node apparatus 1 that is the transmission destination, that is, the LD, on the basis of the priority of the routing table T2 identified in the process of the step S015 or the step S103, or generated in the process of step S106 (step S107).
Then, the route selecting unit 35 notifies the data frame processing unit 33 of the selected LD (step S108). The data frame processing unit 33 that has received the notification of the selected LD performs the setting of the header (step S109).
Then, the data frame processing unit 33 transmits the data frame to the set LD, that is, the adjacent node apparatus 1 that is the LD selected by the route selecting unit 35, through the communication unit 10 (step S110). Then, the process returns to the process of step S001, to wait for the next reception of the data frame.
Next, referring to
Meanwhile, this retry process is not executed when the relay node apparatus 1 relays the data frame to another relay node apparatus 1. This is because, in the present embodiment 1, the configuration is made so that when the relay node apparatus 1 relays the data frame to another relay node apparatus 1, the ACK is not sent back.
When a data frame is transmitted by the data frame processing unit 33, the ACK processing unit 34 starts a timer (not illustrated in the drawing) (step S401), and judges whether or not an ACK sent back from the adjacent node apparatus 1 (LD) that is the transmission destination of the data frame has been received (step S402).
When it is determined that the ACK has been received (step S402; YES), the ACK processing unit 34 deletes the corresponding data frame stored in the data area of the storing unit 20 (step S403), and since the transmission of the data frame has been successful, the retry process is terminated.
On the other hand, when it is determined that the ACK has not been received yet (step S402; NO), the ACK processing unit 34 further judges whether or not a timeout has occurred (step S501). When it is determined that the timeout has not occurred yet (step S501; NO), the process returns to the process of step S402, to repeat the process described above.
On the other hand, when it is determined that the timeout has occurred (step S501; YES), the ACK processing unit i34 determines that the transmission of the data frame has failed, and to the data frame processing unit 33 and the route selecting unit 35, issues a notification that the transmission of the data frame has failed (step S502). At this time, the ACK processing unit 34 notifies the link managing unit 32 of the judgment as to whether the transmission of the data frame has been successful. By doing so, it becomes possible for the link managing unit 32 to change the priority of the routing table T2 on the basis of whether or not the transmission of the data frame has been successful.
The route selecting unit 35 that has received the notification of the transmission failure of the data frame identifies the routing table T2 corresponding to the GD of the data frame that is the transmission target (step S503), and judges whether or not there is any “LD candidate” to which the data frame that is the transmission target has not been transmitted (step S504).
When it is determined that there is still a “LD candidate” to which the data frame that is the transmission target (step S504; YES), the route selecting unit 35 selects the LD (step S505), and notifies the data frame processing unit 33 of the selected LD (step S506).
When a notification of the failure of the transmission of the data frame is issued from ACK processing unit 34, and further, a notification of the selected LD is issued from the route selecting unit 35, the data frame processing unit 33 duplicates the corresponding data frame stored in the data area of the storing unit 20, and changes the LD of the duplicated data frame to the LD selected by the route selecting unit 35 (step S507).
Then, the data frame processing unit 33 transmits the duplicated data frame to the adjacent node apparatus 1 that is the LD after the change, through the communication unit 10 (step S508), the process returns to the process in step S401, and the process described above is repeated.
In the process in step S504, when it is determined that there is no more “LD candidate” to which the data frame that is the transmission target has not been transmitted (step S504; NO), the route selecting unit 35 selects the LS as the LD (step S601), notifies the data frame processing unit 33 of the selected LD (step S602).
When a notification of the failure of the transmission of the data frame is issued from ACK processing unit 34, and further, a notification of the selected LD is issued from the route selecting unit 35, the data frame processing unit 33 duplicates the corresponding data frame stored in the data area of the storing unit 20, and changes the LD of the duplicated data frame to the LD selected by the route selecting unit 35 (step S603).
Then, the data frame processing unit 33 transmits the duplicated data frame to the adjacent node apparatus 1 that is the LD after the change, through the communication unit 10 (step S604), and deletes the corresponding data frame stored in the data area of the storing unit 20 (step S605). As described above, the data frame is sent back to the adjacent node apparatus 1 (LS) that is the transmission source, and the process is terminated.
Next, referring to
Meanwhile, while a plurality of different data frames may be transmitted at the same time through the network 100, here, the explanation is given focusing on the flow of the relay of one data frame. In this specific example, referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
According to embodiment 1 described above, upon receiving a data frame, the relay node apparatus 1 judges whether or not there is a registration in the FID table T1 whose combination of the GS and FID matches, and when there is a registration that matches, on the basis of the PathID, judges whether the received data frame is loop data or overlapped data.
By making the configuration as described above, it becomes possible to distinguish between overlapped data and loop data. Accordingly, it becomes possible to prevent a wrong path change due to a wrong judgment of overlapped data as loop data. Therefore, it becomes possible to prevent the disconnection of the network and the isolation of a node apparatus due to a wrong path change, making it possible to maintain an appropriate path.
In addition, according to embodiment 1 above, the relay node apparatus 1 discards the received data frame without transmitting it to another node apparatus 1, when the received data frame is overlapped data. By making the configuration as described above, it becomes possible to suppress the increase in the traffic in the entire network.
Embodiment 2 is explained.
In embodiment 1, a method to distinguish between loop data and overlapped data on the basis of the “GS”, “FID”, and “PathID” is explained. In the present embodiment 2, a method to distinguish between loop data and overlapped data on the basis of the “GS”, “FID”, “retry ID” and “number of retries” is explained.
First, referring to
The header of the data frame in the embodiment 2 includes, as illustrated in
The retry ID is the node ID of the node apparatus 1 that performs the retransmission (retry) of the data frame. The number of retries is the number of the retransmissions (retries) (the counter value of the retry counter 37) of the data frame performed by the node apparatus 1 identified by the retry ID.
Next, referring to
The retry management table T3 is generated and managed by the data frame processing unit 33, and is a table that is referred to when the retry notifying unit 38 generates retry information (frame). In addition, the retry management table T3 is a table in which, as illustrated in
In the “date/time of occurrence” field, information indicating the date and time at which the retransmission (retry) of the data frame is performed is stored. In the “GS” field, the GS of the data frame that has become the retry target is stored. In the “FID” field, the FID of the data frame that has become the retry target is stored. In the “LD” field, the LD selected at the time of the retry is stored.
For example, referring to
Returning to
Then, when the LD does not match the node ID of the node apparatus itself, the data frame processing unit 33 discards the received data frame, and when the LD matches the node ID of the node apparatus itself, issues an instruction to generate an ACK to the ACK processing unit 34. Then, the data frame processing unit 33 judges whether or not the GD matches the node ID of its node apparatus itself. That is, the data frame processing unit 33 judges whether or not the final destination of the received frame is its node apparatus 1 itself.
When the final destination of the received data frame is its node apparatus 1 itself, the data frame processing unit 33 outputs the received data frame to the upper-level layer. In response to the input of the data frame, the upper-level layer performs processing of the received data frame.
On the other hand, when the final destination of the received data frame is another node apparatus 1, the data frame processing unit 33 compares the header and the FID table T1, and judges whether or not there is a registration in the FID table T1 whose combination of the GD and FID matches the combination of the GD and FID of the header. That is, the data frame processing unit 33 judges whether or not the same data frame has already been received.
When there is a registration in the FID table T1 whose combination of the GD and FID matches the GD and the FID of the header, the data frame processing unit 33 further judges whether or not the retry ID of the header and the node ID of its node apparatus itself match. That is, the data frame processing unit 33 judges whether or not the received data frame is a data frame that its node apparatus 1 itself has retransmitted.
When it is not a data frame that its node apparatus 1 itself has retransmitted, the data frame processing unit 33 further judges whether or not the combination of the retry ID and the number of retries of the header matches the combination of the retry ID and the number of retries of a registration whose combination of the GD and FID matches the combination of the GD and FID of the header. That is, whether or not there is a registration in the FID table T1 that matches the combination of the GD and FID and retry ID and number of retries of the header is judged.
When there is a registration in the FID table T1 that matches the combination of the GD and FID and retry ID and number of retries of the header, or, when the received data frame is a data frame that its node apparatus 1 itself has retransmitted, the data frame processing unit 33 determines that the received data frame is loop data.
On the other hand, when there is a registration in FID table T1 that matches the combination of the GD and FID of the header but at least one of the retry ID and the number of retries does not match, the data frame processing unit 33 determines that the received data frame is overlapped data. As described above, in the present embodiment 2, it is possible to distinguish between loop data and overlapped data.
Then, upon determining that a received data frame is overlapped data, the data frame processing unit 33 discards the received data, and when it is determined as loop data, issues an instruction to re-select the LD to the route selecting unit 35. At this time, the data frame processing unit 33 notifies the link managing unit 32 that the loop has been made and of the LD at the time of the transmission of the loop data. By doing so, it becomes possible for the link managing unit 32 to change the priority of the routing table T2 appropriately.
Meanwhile, when there are no registrations in the FID table T1 whose combination of the GD and FID match the combination of the GD and FID of the header, that is, when the data frame is received for the first time, the data frame processing unit 33 performs a registration process in the FID table T1.
More specifically, the data frame processing unit 33 associates the GD and FID and retry ID and number of retries of the header and registers them in the FID table T1. Then, the data frame processing unit 33 issues an instruction to the route selecting unit 35 to select the LD so as to perform the transmission of the received data frame.
Meanwhile, when a notification of the LD selected by the route selecting unit 35 is issued, the data frame processing unit 33 performs a transmitting process of the data frame. More specifically, when a notification of the LD selected by the route selecting unit 35 is issued, the data frame processing unit 33 sets the node ID of its node apparatus 1 itself to the LS of the header, and also sets the LD selected by the route selecting unit 35 to the LD of the header.
At this time, in preparation for the retransmission (retry) of the data frame, the data frame processing unit 33 stores the data frame in the data area of the storing unit 20. By doing so, it becomes possible, when a need to retransmit the data frame arises, to duplicate the data frame for retransmission on the basis of the data frame stored in the storing unit 20.
Then, the data frame processing unit 33 transmits the data frame to the adjacent node apparatus 1 that is the set LD through the communication unit 10.
Meanwhile, when a notification of the failure of the transmission of the data frame is issued from the ACK processing unit 34, and furthermore, a notification of the LD selected by the route selecting unit 35 is issued, the data frame processing unit 33 performs the retransmission of the data frame. More specifically, the data frame processing unit 33 duplicates the corresponding data frame stored in the data area of the storing unit 20, and changes the LD of the duplicated data frame to the LD selected by the route selecting unit 35. Then, the data frame processing unit 33 transmits the duplicated data frame to the adjacent node apparatus 1 that is the LD after the change through the communication unit 10.
At this time, when the LD selected by the route selecting unit 35 is the LS, the data frame processing unit 33 deletes the corresponding data frame stored in the data area of the storing unit 20. When the LD selected by the route selecting unit 35 is not the LS, that is, when performing the retransmission (retry) of the data frame, the node ID of its node apparatus itself is set to the retry ID of the header, and as the number of retries, the counter value of the retry counter 37 is set.
Furthermore, the data frame processing unit 33 generates the data frame of the header illustrated in
In addition, in the present embodiment 2, the data frame processing unit 33 performs generation and management of the retry management table T3. More specifically, when the retry process occurs, the data frame processing unit 33 associates information indicating the date and time of occurrence of the retry, the GS and FID of the data frame that is the retry target, and the LD about which notification was made by the route selecting unit 35, and registers them in the retry management table T3.
The ACK processing unit 34 performs a process to transmit/retransmit the ACK. More specifically, the ACK processing unit 34 generates an ACK upon receiving a generation instruction for the ACK from the data frame processing unit, and sends back the generated ACK to the LS.
In addition, upon receiving the ACK within a prescribed time after transmitting a data frame, the ACK processing unit 34 determines that the transmission of the data frame has been successful, and deletes the corresponding data frame stored in the data area of the storing unit 20.
On the other hand, when the ACK is not received within a prescribed time, the ACK processing unit 34 determines that the transmission of the data frame has failed, and notifies the data frame processing unit 33 and the route selecting unit 35 of the failure of the transmission of the data frame.
In addition, the ACK processing unit 34 notifies the link managing unit 32 of the result of the judgment as to whether or not the transmission of the data frame has been successful. By doing so, it becomes possible for the link managing unit 32 to change the priority of the routing table T2 on the basis of whether or not the transmission of the data frame has been successful.
Furthermore, the ACK processing unit 34 controls the retry counter 37. Specifically, when the retry process is started, the retry counter 37 is initialized, and when the ACK is not received within a prescribed time, the retry counter 37 is incremented.
The retry counter 37 is a counter for managing the number of retransmissions (retry) of the data frame, and as described above, is controlled by the ACK processing unit 34. Meanwhile, the initial value of the counter value is “0”.
The retry notifying unit 38 refers to the retry management table T3 and generates retry information (frame) at a prescribed timing, and via the communication unit 10, for example transmits the generated retry information to a management server (not illustrated in the drawing). The retry information includes information registered in the retry management table T3 (for example, information indicating the data and time of occurrence and the LD) and the node ID of the node apparatus itself. As the prescribed timing, for example regularly, when requested from the management server, and the like may be expected.
Next, referring to
Meanwhile, the same numerals are assigned to the steps of the same processes as in the case of embodiment 1. Here, mainly the processes of parts that are different from the case of embodiment 1 are explained.
When it is determined that the LD matches the node ID of its node apparatus itself (step S003; YES), the data frame processing unit 33 issues an instruction to generate an ACK to the ACK processing unit 34 (step S006).
The ACK processing unit 34 that has received the generation instruction for the ACK generates an ACK, and transmits the generated ACK to the adjacent node apparatus 1 (LS) of the transmission source through the communication unit 10 (step S007). Then, the data frame processing unit 33 judges whether or not the GD matches the node ID of its node apparatus itself (step S008). That is, the data frame processing unit 33 judges whether or not the final destination of the received data frame is its node apparatus 1 itself.
When it is determined that the GD matches its node ID of the node apparatus itself (step S008; YES), the data frame processing unit 33 outputs the received data frame to the upper-level layer, and in response to the input of the data frame, the upper-level layer performs processing of the received data frame (step S009).
On the other hand, when it is determined that the GD does not match the node ID of its node apparatus 1 itself (step S008; NO), the data frame processing unit 33 compares the header and the FID table T1 (step S010), and judges whether or not there is a registration in the FID table T1 whose combination of the GD and FID matches the combination of the GD and FID of the header (step S011). That is, the data frame processing unit 33 judges whether or not the same data frame has already been received.
When it is determined that there is a registration in the FID table T1 whose combination of the GD and FID matches the combination of the GD and FID of the header (step S011; YES), the data frame processing unit 33 further judges whether or not the retry ID of the header and the node ID of its node apparatus itself match (step S701). That is, the data frame processing unit 33 judges whether or not the received data frame is a data frame that its node apparatus 1 itself has retransmitted.
When it is determined by the data frame processing unit 33 that the retry ID of the header and the node ID of its node apparatus itself match (step S701; YES), the process proceeds to the process of S014.
On the other hand, when it is determined that the retry ID and the node ID of its own node apparatus do not match (step S701; NO), the data frame processing unit 33 further judges whether or not the combination of the retry ID and the number of retries of the header matches the combination of the retry ID and the number of retries of a registration whose combination of the GD and FID matches the combination of the GD and FID of the header (step S702). That is, whether or not there is a registration in the FID table T1 that matches the combination of the GD and FID and retry ID and number of retries of the header is judged.
When it is determined that at least one of the retry ID and the number of retries does not match (step S702; NO), that is, when it is determined that the received data frame is an overlapped data frame, the data frame processing unit 33 discards the received data frame (step S004).
On the other hand, when it is determined that both the retry ID and the number of retries match (step S702; YES), or when it is determined that the retry ID of the header and the node ID of its node apparatus itself match (step S701; YES), that is, when it is determined that the received data frame is loop data, the data frame processing unit 33 issues an instruction re-select the LD to the route selecting unit 35 (step S014). Then, the process proceeds to the process after step S015 explained in embodiment 1.
In the process of step S011, when it is determined that there are no registrations in the FID table T1 whose combination of the GD and FID match the combination of the GD and FID of the header (step S011; NO), that is, when it is determined that the data frame is received for the first time, the data frame processing unit 33 executes the registration process in the FID table T1.
Specifically, the data frame processing unit 33 associates the GD and FID and retry ID and number of retries of the header and registers them in the FID table T1 (step S301). Then, the process proceeds to the process after step S102 explained in embodiment 1.
Next, referring to
Meanwhile, the same numerals are assigned to the steps of the same processes as in the case of embodiment 1. Here, mainly the processes of parts that are different from the case of embodiment 1 are explained.
When a data frame is transmitted by the data frame processing unit 33, the ACK processing unit 34 initializes the retry counter 37 (step S801), and also starts a timer (not illustrated in the drawing) (step S401), and judges whether or not an ACK sent back from the adjacent node apparatus 1 (LD) that is the transmission destination of the data frame has been received (step S402).
When it is determined that the ACK has been received (step S402; YES), the ACK processing unit 34 deletes the corresponding data frame stored in the data area of the storing unit 20 (step S403), and since the transmission of the data frame has been successful, the retry process is terminated.
On the other hand, when it is determined that the ACK has not been received yet (step S402; NO), the ACK processing unit 34 further judges whether or not a timeout has occurred (step S501). When it is determined that the timeout has not occurred yet (step S501; NO), the process returns to the process of step S402 to repeat the process described above.
On the other hand, when it is determined that the timeout has occurred (step S501; YES), the ACK processing unit i34 determines that the transmission of the data frame has failed, increments the retry counter 37, and also, notifies the data frame processing unit 33 and the route selecting unit 35 that the transmission of the data frame has failed (step S502). At this time, the ACK processing unit 34 notifies the link managing unit 32 of the judgment as to whether the transmission of the data frame has been successful. By doing so, it becomes possible for the link managing unit 32 to change the priority of the routing table T2 on the basis of whether or not the transmission of the data frame has been successful.
The route selecting unit 35 that has received the notification of the transmission failure of the data frame identifies the routing table T2 corresponding to the GD of the data frame that is the transmission target (step S503), and judges whether or not there is any “LD candidate” to which the data frame that is the transmission target (step S504).
When it is determined that there is still an “LD candidate” to which the data frame that is the transmission target (step S504; YES), the route selecting unit 35 selects the LD (step S505) and notifies the data frame processing unit 33 of the selected LD (step S506).
When a notification of the failure of the transmission of the data frame is issued from ACK processing unit 34, and further, a notification of the selected LD is issued from the route selecting unit 35, the data frame processing unit 33 duplicates the corresponding data frame stored in the data area of the storing unit 20, and changes the LD of the duplicated data frame to the LD selected by the route selecting unit 35 (step S507).
Furthermore, the data frame processing unit 33 sets the node ID of its node apparatus itself to the retry ID of the duplicated data frame, and also, as the number of retries, sets the counter value of the retry counter 37 (step S803).
Then, the data frame processing unit 33 transmits the duplicated data frame to the adjacent node apparatus 1 that is the LD after the change, through the communication unit 10 (step S508), and the process returns to the process in step S401, and the process described above is repeated.
In the process in step S504, when it is determined that there is no more “LD candidate” to which the data frame that is the transmission target has not been transmitted (step S504; NO), the process returns to the process after step S601 explained in embodiment 1.
Next, referring to
Meanwhile, while a plurality of different data frames may be transmitted at the same time through the network 100, here, the explanation is given focusing on the flow of the relay of one data frame. In this specific example, referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Meanwhile, since there is a registration (N1, FID 1, null, null) in the FID table T1 of the end node apparatus N3, referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Meanwhile, since there is a registration (N1, FID 1, null, null) in the FID table T1 of the end node apparatus N6, referring to
Next, referring to
Meanwhile, while a plurality of different data frames may be transmitted at the same time through the network 100, here, the explanation is given focusing on the flow of the relay of one data frame. In this specific example, referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Meanwhile, since there is a registration (N1, FID 1, N1, “1”) in the FID table T1 of the end node apparatus N3, referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Meanwhile, since there is a registration (N1, FID 1, N1, and “1”) in the FID table T1 of the end node apparatus N6, referring to
According to embodiment 2 described above, upon receiving a data frame, the node apparatus 1 judges whether or not there is a registration in the FID table T1 whose combination of the GS and FID matches, and when there is a registration that matches, on the basis of the retry ID and the number of retries, judges whether the received data frame is loop data or overlapped data.
By making the configuration as described above, it becomes possible to distinguish between overlapped data and loop data. Accordingly, it becomes possible to prevent a wrong path change due to a wrong judgment of overlapped data as loop data. Therefore, it becomes possible to prevent the disconnection of the network and the isolation of a node apparatus due to a wrong path change, making it possible to maintain an appropriate path.
In addition, according to embodiment 2 above, the node apparatus 1 discards the received data frame without transmitting it to another node apparatus 1 when the received data frame is overlapped data. By making the configuration as described above, it becomes possible to suppress the increase in the traffic in the entire network.
In addition, according to embodiment 2 described above, when a retry process occurs, the node apparatus 1 registers information indicating the date and time of occurrence, and the like, in the retry management table T3, and transmits retry information including the registered information and the node ID of the node apparatus itself to the management server. By making the configuration as described above, it becomes possible to collect information regarding the communication quality of each link of the network 100. Then, it becomes possible to maintain/manage the network 100 appropriately on the basis of the collected information.
Embodiment 3 is explained.
In embodiments 1 and 2, the configuration is made so that, when the final destination of the received data frame is the node apparatus 1 itself, that is, when the GD and the node ID of the node apparatus itself match, the node apparatus 1 does not perform the registration process in the FID table T1. In the present embodiment 3, the configuration is made so that, even when the GD and the node ID of the node apparatus itself match, the node apparatus 1 performs the registration process in the FID table T1. This configuration may be applied to both embodiments 1 and 2.
Here, referring to
In the process of step S008, the data frame processing unit 33 judges whether or not the GD and the node ID of its node apparatus itself match (step S008). That is, the data frame processing unit 33 judges whether or not the final destination of the received data frame is its node apparatus 1 itself.
When it is determined by the data frame processing unit 33 that the GD and the node ID of its node apparatus itself do not match (step S008; NO), the process proceeds to the process after step S010 explained in embodiment 1 (or 2).
On the other hand, when it is determined by the data frame processing unit 33 that the GD and the node ID of its node apparatus itself match (step S008; YES), the data frame processing unit 33 compares the header and the FID table T1 (step S901), and judges whether or not there is a registration in the FID table T1 whose combination of the GD and FID matches the combination of the GD and FID of the header (step S902). That is, the data frame processing unit 33 judges whether or not the same data frame has already been received and processed in the upper-level layer.
When it is determined that there is a registration in the FID table T1 whose combination of the GD and FID matches the combination of the GD and FID of the header (step S902; YES), that is, when it is determined that the received data frame has already been processed in the upper-level layer, the data frame processing unit 33 discards the received data frame (step S004).
On the other hand, when it is determined that there are no registrations in the FID table T1 whose combination of the GD and FID match the combination of the GD and FID of the header (step S902; NO), in the case of application to embodiment 1, the GS and the FID and the PathID of the header are associated and registered in the FID table T1 (step S903). In the case of application to embodiment 2, the GS and the FID and the retry ID and the number of retries are associated and registered in the FID table T1 (step S903).
Then, moving on to the process of step S009, the data frame processing unit 33 outputs the received data frame to the upper-level layer, and in response to the input of the data frame, the upper-level layer performs the processing of the data frame (step S009).
According to embodiment 3 described above, upon receiving the data frame whose GD matches the node ID of the node apparatus itself, the node apparatus 1 also compares the header and the FID table T1, and judges whether or not there is a registration whose combination of the GS and FID matches. Then, when there is a registration whose combination of the GS and FID matches, the node apparatus 1 discards the received data frame, and when there are no registrations whose combination of the GS and FID match, it registers the header information in the FID table T1, and also, data processing is performed in the upper-level layer. By making the configuration as described above, it becomes possible to prevent repeated execution of the processing of the same data frame. Accordingly, it becomes possible to reduce the load.
The communication interface that connects between the MPU 201 and the PHY chip 202 is an MII/MDIO (Media Independent Interface or Management Data Input/Output) 209. The MII and MDIO are both the interface between the physical layer and the MAC sublayer (Media Access Control sublayer). In addition, the MPU 201 and the timer IC 203 are connected through an I2C/PIO (Inter-Integrated Circuit or Parallel Input/Output) bus 210. Then, the DRAM 204 and the flash memory 205 and the wireless communication module 206 and the reading apparatus 207 are connected to the MPU 201 through a PCI (Peripheral Component Interconnect) bus 211.
The MPU 201 loads the operation program stored in the flash memory 205, which is a kind of a nonvolatile storing apparatus, onto the DRAM 204, and executes various processes while using the DRAM 204 as a working memory. The MPU 201 is able to realize the respective functional units of the control unit 30 illustrated in
Meanwhile, the configuration may be made so that the processes described above are executed by distributing and storing an operation program for executing the above operations in a computer-readable recording medium 208 such as a flexible disk, a CD-ROM (Compact Disk-Read Only Memory), a DVD ((Digital Versatile Disk), an MO (Magneto Optical disk) and the like, and by reading this by the reading apparatus 207 of the node apparatus 1 to install it in the computer. Furthermore, the operation program may be stored in a disk apparatus and the like that a server apparatus on the Internet has, and the operation program may be downloaded on a computer of the node apparatus 1 through the PHY chip 202 or the wireless communication module 206.
Meanwhile, depending on the embodiment, storing apparatuses of kinds other than the DRAM 204 and the flash memory 205 may be used. For example, the node apparatus 1 may include storing apparatuses such as a CAM (Content Addressable Memory), an SRAM (Static Random Access Memory), and an SDRAM (Synchronous Dynamic Random Access Memory).
The FID table T1, the routing table T2, the retry management table T3 illustrated in
The PHY chip 202 is a circuit that performs processing of the physical layer in the wired connection. When the network 100 is a wireless network, the node apparatus 1 does not have to include the PHY chip 202. However, for the connection between the node apparatus 1 and an external network, the node apparatus 1 may include the PHY chip 202.
For example, the node apparatus 1 may include a wired LAN port compliant with the Ethernet (registered trademark) standards, and may be connected to a gateway apparatus and the like of an external network through a cable connected to the wired LAN port.
In that case, the MPU 201 may generate an Ethernet frame, and may output it to the PHY chip 202 through the MII/MDIO 209. Then, the PHY chip 202 converts the output from the MPU 201 (that is, the logic signal representing the Ethernet frame) into a signal according to the type of the cable (that is, an electric signal or an optical signal). As described above, the node apparatus 1 is able to transmit data (for example, a frame) to an external network using the PHY chip 202.
In addition, the PHY chip 202 may also convert an electric signal or an optical signal input from an external network through the cable and the wired LAN port into a logic signal, and may output it to the MPU 201 through the MII/MDIO 209. As described above, the node apparatus 1 may receive data (for example, a frame) from an external network using the PHY chip 202.
The timer IC 203 is a circuit that performs a count-up operation until a set period of time elapses and outputs an interruption signal when the set period of time elapses.
The wireless communication module 206 is hardware that performs processing of the physical layer in the wireless communication. The wireless communication module 206 includes, for example, an antenna, an ADC (Analog-to-Digital Converter), a DAC (Digital-to-Analog Converter), a modulator, a demodulator, an encoder, a decoder and the like.
Meanwhile, depending on the embodiment, the hardware configuration of the node apparatus 1 may be different from
For example, the respective functional units of the control unit 30 illustrated in
Some embodiment are explained above. However, embodiments are not limited to the embodiments described above, and are to be understood as including various modified forms and alternative forms of the embodiments described above. For example, it is to be understood that various embodiments may be embodied with modification of the constituent elements without departing from their spirit and scope. In addition, it is to be understood that by combining a plurality of constituent elements disclosed in the embodiments described above as needed, various embodiments may be formed. Furthermore, it is to be understood by persons skilled in the art that various embodiments may be implemented by deleting or replacing some of the constituent elements from the entirety of constituent elements illustrated in the embodiments, or by adding some constituent elements to the constituent elements described in the embodiments.
All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2013-168444 | Aug 2013 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
20070280266 | Chao et al. | Dec 2007 | A1 |
20100238935 | Sendrowicz | Sep 2010 | A1 |
20130223286 | Corinella et al. | Aug 2013 | A1 |
Number | Date | Country |
---|---|---|
2007-19574 | Jan 2007 | JP |
Number | Date | Country | |
---|---|---|---|
20150049759 A1 | Feb 2015 | US |