Abstract:
Methods and apparatuses for increasing quality of service in a network having nodes if there is a faulty node which can result in data traffic being overloaded in at least one part of the network are provided. The disclosed embodiments of the invention can be used in the field of safety-critical applications, such as medial applications, monitoring devices, and in-vehicle communication systems.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims priority to PCT Application No. PCT/EP2015/055755, having a filing date of Mar. 19, 2015, based off of German application No. DE 102014206053.2 having a filing date of Mar. 31, 2014, the entire contents of which are hereby incorporated by reference. 
     
    
     FIELD OF TECHNOLOGY 
       [0002]    The following relates to methods and apparatuses for increasing quality of service in a network. 
       BACKGROUND 
       [0003]    In addition to transmitting voice and image data, networks are nowadays often used for safety-critical applications. For example, an automation system consists of a plurality of control computers, sensors and actuators which constitute nodes in a network. In this case, data communication between the nodes must not be disrupted by a malfunction of an individual node in such a manner that the functional safety of the entire automation system is jeopardized. Such a fault is known under the name “babbling idiot”, for example. This can be understood as meaning a node which, contrary to planned resource agreements and possibly even contrary to a data communication specification, transmits a large quantity of data and therefore occupies the network and hinders or even corrupts communication between other nodes. 
         [0004]    A German patent application DE 10 2012 000 185 proposes ensuring improved failure safety and fault analysis in a network in the event of transmission and hardware faults, in particular in the event of “babbling idiot” faults, by assigning fuse devices at receiving ports of switch devices for the purpose of monitoring a respective data transmission rate. The fuse devices block reception of data at the respective receiving port if a previously predefined maximum data transmission rate is exceeded. This procedure is advantageous since it can be easily implemented and achieved. However, the disadvantage is that, in the event of severe fluctuations in the data transmission rate, a false alarm could be triggered on the basis of the predefined maximum data transmission rate, which false alarm incorrectly blocks the reception of data. This results in undesired loss of data, as a result of which quality of service of the network falls. In addition, it is necessary to know and set an expected data rate in advance. 
       SUMMARY 
       [0005]    An aspect relates to specifying methods and apparatuses which are used to increase quality of service in a network if there is a faulty node which can result in data traffic being overloaded in at least one part of the network. 
         [0006]    Embodiments of the invention relate to a method for increasing quality of service in a network having a plurality of nodes if there is a faulty node, in which the nodes are connected to one another via respective connections for the purpose of interchanging data packets, the faulty node is coupled to at least one device, and the at least one device operates as a data sink and/or a data source, having the following steps of:
       a) selecting at least one of the nodes as a monitored node;   b) producing at least two observer nodes by selecting from the plurality of nodes, the monitored node being excluded from the selection, in such a manner that
           both incoming data traffic of a respective data packet class to the monitored node from at least one of the at least two observer nodes   and outgoing data traffic of the respective data packet class from the monitored node to at least one of the at least two observer nodes are completely determined;   
           c) recording the incoming data traffic and the outgoing data traffic of the respective observer nodes;   d) generating expected total outgoing data traffic of the monitored node on the basis of (i) the outgoing data traffic produced by the respective incoming data traffic of the respective data packet class and (ii) expected data traffic of the data source of the at least one device;   e) generating a difference value from a difference between the outgoing data traffic and the expected total outgoing data traffic;   f) detecting the monitored node as a faulty node if the difference value exceeds a predefinable threshold value.       
 
         [0015]    The method exhibits the advantage that the monitored node can be identified as a faulty node on the basis of the incoming data traffic. In other words, the threshold at which the monitored node is identified as a faulty node is dynamically adapted to the incoming data traffic. This makes it possible to use embodiments of the invention in a singular Ethernet ring structure, in which the necessary redundancy is achieved by using both directions in the ring, for fail-operational communication. 
         [0016]    Completely means that the entire data traffic from one node to the monitored node and from the monitored node to one of the nodes in the network is analyzed by the observer nodes. The nodes K 1  and K 3  are selected as observer nodes KB 1 , KB 2  since they can completely record the entire incoming data traffic and the entire outgoing data traffic of the node K 2 . In particular, the incoming and outgoing data traffic runs completely via these observer nodes. Completely does not mean that all data packet classes have to be included in the monitoring. In particular, it may be advantageous to monitor only safety-critical or high-priority data packet classes. 
         [0017]    In an extension of embodiments of the invention, the expected total outgoing data traffic of the monitored node is formed by summing
       (i) one or more expected outgoing data traffic items and   (ii) the expected data traffic of the data source of the at least one device, a respective expected outgoing data traffic item being formed by multiplying   (a) a number of outgoing data packets for each incoming data packet of the respective data packet class and   (b) the respectively associated incoming data traffic.       
 
         [0022]    This specifies a calculation rule for determining the expected total outgoing data traffic, which rule can be implemented and carried out in a simple and therefore cost-effective manner. 
         [0023]    The data packet class is advantageously determined by at least one of the following properties of the respective data packet of the incoming data traffic and of the outgoing data traffic:
       a) “unicast” forwarding type   b) “multicast” forwarding type   c) “broadcast” forwarding type   d) priority class.       
 
         [0028]    As a result, the expected total outgoing data traffic can be determined in a very accurate manner since the determination takes into account the specific characteristics of different data packet classes. The accurate determination makes it possible to improve incorrect identification of the monitored node as a faulty node or as a node which is not faulty, thus further increasing the quality of service in the network. 
         [0029]    The expected outgoing data traffic is thus set to be equal to the incoming data traffic for the data packet class of the “unicast” forwarding type. The expected outgoing data traffic for the data packet class of the “multicast” forwarding type is thus determined by a result of multiplying an available number of connection outputs of the monitored node to directly adjacent nodes of the monitored node by the incoming data traffic, the available number being determined between zero and a number of connection outputs to directly adjacent nodes of the monitored node which has been reduced by one. The expected outgoing data traffic for the data packet class of the “broadcast” forwarding type can thus be determined by a result of multiplying a number of connection outputs to directly adjacent nodes of the monitored node which has been reduced by one by the incoming data traffic. Using these specific calculation rules advantageously makes it possible to ensure that different implementations of embodiments of the invention identify the monitored node as a faulty node in the same manner. This further increases the reliability of the network. 
         [0030]    The steps of the method are advantageously carried out only if the outgoing data traffic exceeds a predefinable volume of data per unit of time. This ensures that the method loads system resources of a network only if critical volumes of data are received. 
         [0031]    In one advantageous development of embodiments of the invention, at least one of the connections of the monitored node, in particular at least one of the connections going out from the monitored node, is interrupted if the monitored node is detected as a faulty node. This avoids a malfunction of the network since the network is not flooded with a large volume of data. This increases the quality of service of the network if the faulty node is present. 
         [0032]    Embodiments of the invention also relates to an apparatus for increasing quality of service in a network having a plurality of nodes if there is a faulty node, in which the nodes are connected to one another via respective connections for the purpose of interchanging data packets, the faulty node is coupled to at least one device and the at least one device operates as a data sink and/or a data source, having the following units:
       a) a first unit for selecting at least one of the nodes as a monitored node;   b) a second unit for producing at least two observer nodes by selecting from the plurality of nodes, the monitored node being excluded from the selection, in such a manner that
           both incoming data traffic of a respective data packet class to the monitored node from at least one of the at least two observer nodes   and outgoing data traffic of the respective data packet class from the monitored node to at least one of the at least two observer nodes are completely determined,   
           c) a third unit for recording the incoming data traffic and the outgoing data traffic of the respective observer nodes;   d) a fourth unit for generating expected total outgoing data traffic of the monitored node on the basis of (i) the outgoing data traffic produced by the respective incoming data traffic of the respective data packet class and (ii) expected data traffic of the data source of the at least one device;   e) a fifth unit for generating a difference value from a difference between the outgoing data traffic and the expected total outgoing data traffic;   f) a sixth unit for detecting the monitored node as a faulty node if the difference value exceeds a predefinable threshold value.       
 
         [0041]    This makes it possible to advantageously implement and carry out embodiments of the invention. Advantages of the apparatus are similar to those of the corresponding method steps. 
         [0042]    In one advantageous development of the apparatus, the apparatus has a seventh unit which is configured in such a manner that one or more of the method steps described above can be implemented and carried out using the seventh unit. Advantages of the apparatus are similar to those of the corresponding method steps. 
     
    
     
       BRIEF DESCRIPTION 
         [0043]    Some of the embodiments will be described in detail, with reference to the following figures, wherein like designations denote like members wherein: 
           [0044]      FIG. 1  a network having a faulty node according to a first exemplary embodiment; 
           [0045]      FIG. 2  a network according to a second exemplary embodiment in which a plurality of possibly faulty nodes are monitored together; 
           [0046]      FIG. 3  an apparatus for carrying out the invention; and 
           [0047]      FIG. 4  a monitored node having incoming data traffic and outgoing data traffic. 
       
    
    
       [0048]    Elements having the same function and method of operation are provided with the same reference symbols in the Figures. 
       DETAILED DESCRIPTION 
       [0049]    A first exemplary embodiment according to  FIG. 1  shows six nodes K 1 , . . . , K 6  which are connected to one another via connections V 1 , . . . , V 7 . A respective arrow indicates a transmission direction for each connection. A unidirectional transmission direction therefore exists from the node K 2  to the node K 1  via a partial connection V 21  and a further unidirectional partial connection V 22  exists from node K 1  to node K 2 . An arrow direction therefore indicates a unidirectional transmission direction. 
         [0050]    Some of the nodes have coupled devices G, G 1 , G 2 , these devices, in contrast to the nodes, not forwarding data packets to further nodes, but rather themselves being in the form of a data sink, that is to say a receiver of data packets, and/or a data source, that is to say a producer of data packets. 
         [0051]    In the present example, the network NET is part of an automation network in a production plant, the devices G 1 , G 2  each being position sensors which provide the respectively coupled nodes with measured values for a geographical position of components on a conveyor belt in the form of a respective data packet at regular intervals for forwarding. In addition, these devices can be parameterized with parameters received by the devices by means of data packets, for example in terms of the times at which measured values are intended to be recorded. 
         [0052]    The intention is then to check whether the node K 2  is a faulty node KF which, like a “babbling idiot”, hinders data communication from the node K 3  to the node K 1  on account of excessive packet generation. The node K 2  is therefore a monitored node (WK). 
         [0053]    For this purpose, two observer nodes KB 1 , KB 2  are first of all selected in the network, which observer nodes completely record both incoming data traffic DZU of a respective data packet class CLA to the monitored node and outgoing data traffic DAB of the respective data packet class CLA from the monitored node to the nodes. Completely means that the entire data traffic from one node to the monitored node and from the monitored node to one of the nodes in the network is analyzed by the observer nodes. The nodes K 1  and K 3  are selected as observer nodes KB 1 , KB 2  since they can completely record the entire incoming data traffic and the entire outgoing data traffic of the node K 2 . In particular, the incoming and outgoing data traffic runs completely via these observer nodes. 
         [0054]    According to  FIG. 1 , the incoming data traffic DZU is obtained by the partial connections V 22  and V 32 . For this purpose, the observer nodes observe their respective outputs which belong to the partial connections V 22  and V 32 , that is to say the associated ports, and determine the volumes of data occurring there for each data packet class over a predefinable period of 100 ms (ms milliseconds), for example. In the example, it is assumed that there is only a single data packet class. In the present example, the incoming data traffic DZU is 20 kB. In a similar manner, the observer nodes observe the partial connections V 21  and V 31  at their respective inputs, that is to say ports, which partial connections correspond in total to the outgoing data traffic DAB. In the present example, DAB=30,000 bytes. 
         [0055]    It is also known that the device G 1  can produce expected data traffic DVG of 200 bytes in the period of 100 ms. 
         [0056]    In an intermediate step, expected outgoing data traffic DVW 1  is calculated by 
         [0000]      DVW1=A(CLA)×DZU.
 
         [0057]    In this case, a number A determines how many outgoing data packets are produced for each incoming data packet for a predefinable data packet class. In the current example, a length of an incoming data packet is assumed to be identical to the corresponding outgoing data packet. 
         [0058]    In the present example, it is assumed that the data packets of the respective data traffic are exclusively of a data packet class of a unicast forwarding type. The forwarding type is predefined, for example, by a special mark in the data packet or by the configuration of the network. In this context, unicast means that a data packet which is received by a node is forwarded only to one of the adjacent nodes or to the device. Therefore, A(CLA)=1. In the present example, the first expected outgoing data traffic DVW 1  is determined as 
         [0000]      DVW1=1×20 kB=20,000 bytes.
 
         [0059]    Since only data packets in the data packet class of the unicast forwarding type are sent, the expected total outgoing data traffic GDV resulting from the expected outgoing data traffic and the expected data traffic of the data source of the device G 2  is determined as: 
         [0000]      GDV=DVW1+DVG=20 kB+200 bytes=20,200 bytes. 
         [0060]    This means that the node K 2  should produce total outgoing data traffic of 20.2 kB. 
         [0061]    It is then checked whether the monitored node WK is a faulty node KF. For this purpose, a difference value is formed from the difference between the outgoing data traffic DAB and the expected total outgoing data traffic GDV as 
         [0000]      DIFF=DAB−GDV=30,000 bytes−20,200 bytes=9800 bytes.
 
         [0062]    This difference value is then compared with a predefinable threshold value SWLL. If the difference value exceeds the predefinable threshold value, that is to say DIFF&gt;SWLL, the monitored node WK is detected as a faulty node KF. In the present case, the threshold value is set to 1500 bytes in order to be able to take into account delays when processing data packets received at the monitored node WK and data packets sent at the monitored node WK. Since (DIFF=9800 bytes)&gt;(SWLL=1500 bytes), the node K 2  is identified as a node operating in a faulty manner. 
         [0063]    In an alternative embodiment, the threshold SWLL is set to a predefinable percentage of the incoming data traffic DZU, for example SWLL=10%×DZU, in order to be able to adapt the threshold to different volumes of data of the incoming data traffic. 
         [0064]    Since the node K 2  is identified as a faulty node KF, it is removed from the network, with the result that it can then no longer disrupt the entire network. For this purpose, the nodes K 1  and K 3  can interrupt their connections V 2 , V 3 , for example by neither transmitting data to the faulty node nor accepting data from the faulty node. This prevents the faulty node KF, which acts as a “babbling idiot”, from disrupting the entire network or data communication in the network coming to a standstill on account of the multiplicity of data packets. 
         [0065]    In the preceding exemplary embodiment, the forwarding type of the data packets was selected as “unicast”. In addition, yet further forwarding types such as “broadcast” and “multicast” are common. The broadcast forwarding type means that a plurality of data packets are produced for each data packet arriving at one of the nodes and are output at the respective outputs of the node. Second expected outgoing data traffic DVW 2  is therefore determined by multiplying a number of connection outputs to directly adjacent nodes of the monitored node which has been reduced by one by the incoming data traffic. Specifically,  FIG. 1  shows that the monitored node has two outputs which are connected to directly adjacent nodes K 1  and K 3 . The second expected outgoing data traffic is therefore determined as DVW 2 =(2−1)×DZU. A data packet is therefore forwarded in the case of the “broadcast” forwarding type. In another scenario, a node has five outputs to directly adjacent nodes. In this case, the second expected outgoing data traffic DVW 2  is determined as DVW 2 =(5−1)×DZU. In this case, four data packets are produced by said node for an incoming data packet. 
         [0066]    In one development or alternative embodiment of the invention, “multicast” is selected as the forwarding type. This forwarding type is distinguished by the fact that a data packet is transmitted to 0, 1 to n outputs which lead directly from the node to adjacent nodes. The specific number of data packets to be transmitted for each incoming data packet depends on the specific parameterization of the node; for example, three of five outputs of the node are parameterized in such a manner that a “multicast” data packet is forwarded only to the three of the five outputs. 
         [0067]    Instead of or in addition to the forwarding types as data packet classes, such as “unicast” or “multicast”, embodiments of the invention can distinguish priority classes. For example, there are three priority classes: basic, extension 1 and extension 2. In this case, the faulty node can be located specifically for one of the three priority classes. Alternatively, however, it is also possible to consider two or more classes together in order to determine the expected total outgoing data traffic GDV therefrom. For example, the observer nodes consider the data packets which correspond to the basic priority class and, at the same time, correspond to unicast or broadcast as forwarding types. According to this specification, the observer nodes determine the incoming data traffic and outgoing data traffic matching this specification for each data packet class. 
         [0068]    In the subsequent determination of the expected total outgoing data traffic, the respective expected outgoing data traffic is determined separately for each data packet class. 
         [0069]    The following table shows an overview of the respective incoming data traffic, the respective outgoing data traffic and the respective expected outgoing data traffic for each data packet class for an observation period of 2 s, the respective traffic values resulting from a sum of the respective values determined at the respective observer nodes: 
         [0000]    
       
         
               
               
               
               
               
             
               
               
               
               
               
             
           
               
                   
                   
               
               
                   
                   
                 Incoming data 
                 Outgoing data 
                   
               
               
                   
                   
                 traffic DZU of 
                 traffic DAB of 
               
               
                   
                   
                 the respective 
                 the respective 
                 Expected 
               
               
                   
                 Data packet 
                 data packet 
                 data packet 
                 outgoing data 
               
               
                   
                 class 
                 class 
                 class 
                 traffic 
               
               
                   
                   
               
             
             
               
                   
               
             
          
           
               
                 1. 
                 unicast 
                 5000 bytes 
                   4500 bytes 
                 DVW1 = 5000 
               
               
                   
                   
                   
                   
                 bytes 
               
               
                 2. 
                 broadcast 
                 7500 bytes 
                 20,000 bytes 
                 DVW2 = 2 × 7500 
               
               
                   
                   
                   
                   
                 bytes = 15,000 
               
               
                   
                   
                   
                   
                 bytes 
               
               
                   
               
             
          
         
       
     
         [0070]    In the present exemplary embodiment, the expected total outgoing data traffic can be determined by summing the respective expected outgoing data traffic values of the respective data packet class and the expected data traffic of the data source of the at least one device. This results in: 
         [0000]      GDV=DVW1+DVW2+DVG=5000 bytes+15,000 bytes+250 bytes 
         [0000]      GDV=20,250 bytes 
         [0071]    On account of the time delays between receiving and transmitting data packets, the threshold value SWLL=1000 bytes is selected. The difference value 
         [0000]      DIFF=(4500 bytes+20,000 bytes)−20,250 bytes=4250 bytes
 
         [0072]    Since SWLL&gt;DIFF, the monitored node is a faulty node KF. 
         [0073]    In one alternative of the method, not only is a single node having a device monitored, but rather two or more nodes, which are each at least coupled to a device, can also be monitored. 
         [0074]    In  FIG. 2 , the nodes K 1  and K 2  having the devices G 1 , G 2  are intended to be monitored. For this purpose, a collective node KS is first of all formed from the nodes G 1 , G 2 , which collective node has all connections which leave from K 1  and K 2  but not the connections to the respective devices and not to K 1  and K 2  themselves. The collective node comprises the connections V 1 , V 5  and V 3 . The observer nodes are then selected as K 6 , K 5  and K 3  which can determine the entire incoming data traffic to the collective node and the entire outgoing data traffic from the collective node. The collective node is the monitored node WK. 
         [0075]    A procedure for determining the expected total outgoing data traffic, the difference value and the statement regarding whether or not the monitored node is a faulty node is similar to that in the preceding examples. The evaluation in order to determine whether the monitored node is a faulty node then indicates, however, that at least one of the two nodes K 1 , K 2  is a faulty node. If the monitored node is identified as a faulty node, both nodes K 1 , K 2  can be removed, that is to say isolated, from the network, with the result that no data packets are sent to them or accepted from them. 
         [0076]    In order to locate which of the two nodes K 1 , K 2  contained in the collective node is a faulty node, it is then possible to proceed in such a manner that the node K 1  and the node K 2  are checked separately in order to determine whether the respective node is a faulty node. In the present example according to  FIG. 2 , only the node K 2  is then examined for faulty behavior. If it emerges that node K 2  is faulty, it can be blocked. If it emerges that node K 2  is operating in a fault-free manner, the faulty node must be K 1 . In this case, node K 1  can be blocked in such a manner that it cannot send any data into the network. 
         [0077]    In order to avoid excessive loading of the respective nodes by using the individual steps of embodiments of the invention, the method can be used to increase the quality of service only when a connection or the outgoing data traffic of a specific node exceeds an adjustable volume of data per unit of time. For example, the network allows a bandwidth of 100 Mbit/s on the respective connections. The data threshold is thus set to 70%×100 Mbit/s=70 Mbit/s, for example. This means that, if a connection and/or outgoing data traffic of a specific node exceed(s) this predefinable volume of data DS per time, the method is started and a check is carried out in order to determine whether or not the considered node is a faulty node. 
         [0078]    Embodiments of the invention can be implemented and carried out by means of an apparatus VOR having a plurality of units.  FIG. 3  shows an exemplary apparatus having the following units:
       a) a first unit M 1  for selecting at least one of the nodes K 1 , . . . , K 6  as a monitored node WK;   b) a second unit M 2  for producing at least two observer nodes KB 1 , KB 2  by selecting from the plurality of nodes K 1 , K 3 , the monitored node WK being excluded from the selection, in such a manner that
           both incoming data traffic DZU, DZU 1  of a respective data packet class CLA to the monitored node WK from at least one of the at least two observer nodes KB 1 , KB 2     and outgoing data traffic DAB of the respective data packet class CLA from the monitored node WK to at least one of the at least two observer nodes K 1 , K 3  are completely determined,   
           c) a third unit M 3  for recording the incoming data traffic DZU and the outgoing data traffic DAB of the respective observer nodes KB 1 , KB 2 ;   d) a fourth unit M 4  for generating expected total outgoing data traffic GDV of the monitored node WK on the basis of (i) the outgoing data traffic produced by the respective incoming data traffic DZU of the respective data packet class CLA and (ii) expected data traffic DVG of the data source DQ of the at least one device G;   e) a fifth unit M 5  for generating a difference value DIFF from a difference between the outgoing data traffic DAB and the expected total outgoing data traffic GDV; f) a sixth unit M 6  for detecting the monitored node WK as a faulty node KF if the difference value DIFF exceeds a predefinable threshold value SWLL.       
 
         [0086]    The apparatus VOR may also have a seventh unit M 7  which can be used to implement and carry out extensions and/or alternatives of embodiments of the invention. 
         [0087]    The units M 1 , . . . , M 7  can be implemented in one or more of the nodes in the network, for example in the observer nodes KB 1 , KB 2 , the nodes communicating with one another via the network in order to communicate and also interchange values such as the incoming data traffic. In order to ensure secure communication between said nodes, the latter may possibly communicate via connections, these connections not leading via the monitored node. Therefore, some of the units may be implemented and realized on a plurality of nodes and some other units may be implemented and realized only on one of the nodes. The units and their functions can be distributed among the observer nodes as follows:
       Observer node KB 1 :
           First unit M 1     Second unit M 2     Third unit M 3     Fourth unit M 4     Fifth unit M 5     Sixth unit M 6     Seventh unit M 7     
           Observer node KB 2 :
           Third unit M 3     
               
 
         [0098]    It is noted that not all units or method steps need to be distributed among the observer nodes. Rather, the units or method steps can be implemented and realized in a manner distributed among a plurality of nodes in the network, the monitored node itself not realizing any of the units or method steps. 
         [0099]    The units M 1 , . . . , M 7  may be in software, hardware or in a combination of software and hardware. In this case, individual method steps may be stored in a machine-readable code in a memory. The memory can be connected to a processor in such a manner that this processor can read the machine-readable code from the memory and can execute the respective coded instructions of the machine-readable code. The processor can also be connected to an input and/or output unit which can be used to interchange information with other units and nodes. 
         [0100]    Although the present invention has been disclosed in the form of preferred embodiments and variations thereon, it will be understood that numerous additional modifications and variations could be made thereto without departing from the scope of the invention. 
         [0101]    For the sake of clarity, it is to be understood that the use of “a” or “an” throughout this application does not exclude a plurality, and “comprising” does not exclude other steps or elements.