Processing of packets in a packet-switched communication network
By identifying statistically uniform sample sequences in packet-switched networks and applying mutual exclusion rules, the shortcomings of ACL technology in identifying partially overlapping packet flows are solved, achieving efficient performance measurement and statistical analysis.
Patent Information
- Application Number
- CN202080089070.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-12-23
- Filing Date
- 2020-12-21
- Publication Date
- 2025-11-07
- Estimated Expiration
- 2040-12-21
AI Technical Summary
Existing access control list (ACL) technology cannot effectively identify and provide accurate performance measurements when dealing with partially overlapping packet flows, resulting in the need for a large number of identification rules and additional combination steps.
By identifying sample sequences that are statistically uniformly distributed in the received packets and applying mutually exclusive identification rules to identify non-overlapping sample subsequences, the number of identification rules is reduced and performance parameters are provided directly.
It effectively reduces the number of identification rules, simplifies the performance measurement process, improves computational efficiency, and ensures the accuracy and statistical representativeness of parameters.
Smart Images

Figure CN115004632B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the field of communication networks. In particular, the present application relates to a method and an apparatus for processing packets transmitted through a packet-switched communication network. BACKGROUND
[0002] In a packet-switched communication network, a packet flow is transmitted from a source node to a destination node through possible intermediate nodes. Exemplary packet-switched networks are IP (Internet Protocol) networks, Ethernet networks and MPLS (Multiprotocol Label Switching) networks.
[0003] A packet flow is usually subject to performance measurements which provide an indication of the quality of service (QoS) perceived by the end user and allow detecting possible problems (e.g. faults or congestions) that can arise in the network. Such performance measurements can include packet loss measurements (i.e. measurements of the number of packets lost in a transmission between two points of the network) and / or time measurements such as delay measurements (i.e. measurements of the time taken by a packet to be transmitted between two points of the network) or jitter measurements (i.e. measurements of the variation of the delay).
[0004] Performance measurements are usually based on performance parameters provided by a plurality of apparatuses (hereinafter also referred to as "measurement points") deployed in the network. Each measurement point identifies packets of a packet flow to be measured and provides performance parameter(s) indicative of the individual behaviour of each identified packet (e.g. a time stamp) or of the cumulative behaviour of the packet flow as a whole (e.g. a counter counting the number of packets detected or a cumulative or average time stamp). The performance parameters provided by the individual measurement points are then appropriately correlated and processed to provide performance measurements related to the packet flow.
[0005] A packet flow can be defined by one or more values of one or more fields (or portions thereof) of its header (hereinafter also referred to as "identification fields"). For example, in a TCP / IP network, a point-to-point packet flow is usually defined by a specific combination of values of the source address field, the destination address field, the protocol field, the source port field, the destination port field and the DSCP field. A multi-point packet flow can instead be defined by a value (or range of values) of any one of the above-mentioned fields (e.g. the source address field or the destination address field).
[0006] In order to be able to identify the packets of a certain packet flow to be measured, the measurement point should be configured with respect to an identification rule on the identification field(s) defining the packet flow(s). For example, if the packet flow is defined by a single value SA of the source address field, the identification rule to be applied by the measurement point to each received packet is source address = SA. If the condition expressed in the identification rule is fulfilled, the measurement point concludes that the received packet belongs to the packet flow to be measured. Then, it performs an action, such as providing an individual performance parameter (e.g. a timestamp) related to the identified packet, or updating a cumulative performance parameter (e.g. a counter or a cumulative or average timestamp) related to the packet flow as a whole.
[0007] In most cases, several packet flows should be measured that are transmitted through the network. Therefore, the measurement point deployed in the network should be configured with several identification rules, one for each packet flow to be measured.
[0008] The identification rules can be constructed in an ordered list, also called ACL (Access Control List). For example, if several packet flows related to different clients should be measured (where each client corresponds to a certain source address value SAm, with m = 1, 2,... M, for example), an ACL comprising M identification rules should be implemented, i.e. one identification rule for each source address value: source address = SAm (m = 1, 2,... M). The ACL technique provides that, for each received packet, the measurement point checks the identification rules sequentially, starting from the beginning of the list. When the condition defined by an identification rule is fulfilled, the packet is identified as belonging to a certain packet flow and a corresponding action is taken by the measurement point. The subsequent identification rules of the list are then ignored. SUMMARY
[0009] The Applicant has realized that the sequential approach of the ACL technique operates properly only if the identification rules in the list are mutually exclusive, i.e. if each received packet fulfils the condition expressed in at most one identification rule (a received packet can fulfil a condition not expressed in any identification rule of the list, in which case the packet is discarded because it does not belong to any packet flow to be measured). This means that the packet flows that the ACL technique allows to be properly identified must be separate or non-overlapping, i.e. none of their packets can belong to more than one packet flow to be measured at the same time.
[0010] However, in some cases it can be desirable to provide performance measurements related to packet flows that are at least partially overlapping, i.e. whose packets are at least partially common.
[0011] A first exemplary case of partially overlapping packet flows to be measured is when multi-level performance measurements on packet flows are desired, i.e. when a network operator wishes to provide performance measurements for a specific packet flow (e.g. defined by a certain source address value SA) and its M sub-flows, each sub-flow being defined by a combination of the source address value SA and a corresponding destination address value DAm (where m = 1, 2,... M). In this case, each packet of the packet flow also belongs to one of the M packet sub-flows as a whole.
[0012] Applying the sequential approach of the ACL technique to an ordered list comprising a respective identification rule for the packet flow as a whole and for each sub-flow would not allow a proper identification of the packets. If the identification rule for the packet flow as a whole is the first one in the list, in fact all its packets would be identified as belonging to the packet flow only, the identification rules of the subsequent sub-flows being ignored. Conversely, if the identification rule for the packet flow as a whole is the last one in the list, none of its packets would be identified as belonging to the packet flow. In any case, a proper identification of all the packets belonging to each packet flow and sub-flow to be measured cannot be performed, and therefore an accurate performance measurement for the packet flow and all its sub-flows cannot be provided.
[0013] To overcome this drawback, an ACL list comprising M mutually exclusive identification rules for the M sub-flows only can be provided. In this case, the measurement point would provide performance parameters related to the M sub-flows only. Therefore, in order to provide performance parameters related to the packet flow as a whole, an additional step would be required, i.e. combining or merging the performance parameters related to the M sub-flows.
[0014] Another exemplary case of partially overlapping packet flows to be measured is when multi-dimensional performance measurements are required, e.g. performance measurements per client and performance measurements per CoS (Class of Service). For example, assume that each client corresponds to a certain source address value SAm (where m = 1, 2,... M) and each CoS corresponds to a certain value CoSz (where z = 1, 2,... Z) of the DSCP field (in particular, its 3 most significant bits). The M packet flows defined by the source address values SAm (where m = 1, 2,... M) overlap at least partially with the Z packet flows defined by the CoS values CoSz (where z = 1, 2,... Z), since a packet can have a source address equal to any one of the values SAm and at the same time have a DSCP field equal to any one of the values CoSz.
[0015] Also in this case, applying the sequential approach of the ACL technique to an ordered list comprising a respective identification rule for each one of the packet flows to be measured would not allow a proper identification of all the packets belonging to each packet flow to be measured.
[0016] Also in this case, in order to eliminate the drawback, it is possible to provide an ACL list comprising M x Z mutually exclusive identification rules, each of type source address = SAmand DSCP = CoSz(where m = 1, 2,... M and z = 1, 2,... Z). For example, if M = 100 and Z = 9, M x Z = 900 identification rules should be implemented in order to identify M x Z non-overlapping sub-flows. Then, the measurement point will provide performance parameters related to such M x Z sub-flows. Therefore, in order to provide performance measurements per client and performance measurements per CoS, the processing of the performance parameters should be performed by suitably grouping or merging these performance parameters on a per-client basis and on a per-CoS basis.
[0017] As it can be seen from the above examples, the application of the ACL technique to scenarios in which the packet flows to be measured at least partially overlap (e.g. multi-level measurements and multi-dimension measurements) exhibits some drawbacks.
[0018] The sequential approach of the ACL technique actually requires the packet flows to be measured to be split into non-overlapping sub-flows identifiable by mutually exclusive identification rules. This can result in a large number of identification rules to be implemented.
[0019] Moreover, additional steps are disadvantageously required for suitably grouping or merging the performance parameters related to the identified sub-flows in order to provide performance measurements at the desired level(s) and / or at the desired dimension(s).
[0020] In view of the above, the Applicant has solved the problem of providing a method and an apparatus for processing packets in a packet-switched communication network (in particular, but not exclusively, a measurement point adapted to provide performance parameters for performance measurements) which overcomes the above drawbacks.
[0021] In particular, the Applicant has solved the problem of providing a method and an apparatus for processing packets in a packet-switched communication network (in particular, but not exclusively, a measurement point adapted to provide performance parameters for performance measurements) which is able to provide an analysis (e.g. performance measurements) of the behaviour of packet flows which at least partially overlap in a more efficient way from a computational point of view.
[0022] According to embodiments of the application, the above problem is solved by identifying at least two sample sequences in the received packets. The packets identified as samples are distributed in a statistically uniform manner among the sample sequences, which means that the probability of a received packet being identified as a sample of a sample sequence is the same for all sample sequences. Then, each sample sequence is subjected to at least one identification rule, which comprises a condition on the value of at least one identification field of the packet, preferably of the packet header. This allows identifying, in each sample sequence, at least one sample sub-sequence that satisfies the condition expressed in the identification rule. In case multiple identification rules are applied to the same sample sequence, these rules can be mutually exclusive, so that the identified sample sub-sequences are non-overlapping. Then, for each sample sub-sequence, at least one parameter is provided that is indicative of the behavior of the sample sub-sequence. For example, an individual performance parameter can be provided for each sample of the sub-sequence (e.g. a timestamp), or a cumulative performance parameter can be provided for the sub-sequence as a whole (e.g. a counter or a cumulative or average timestamp), enabling performance measurements to be performed on each sub-sequence.
[0023] Hence, by identifying in all received packets an equal number of sample sequences as the number of levels or dimensions to be investigated, and then by applying to each sample sequence at least one identification rule related to the respective level or dimension, it is advantageously possible to perform an analysis of the behavior of the at least partially overlapping packet stream (e.g. a multi-level or multi-dimensional performance measurement).
[0024] This advantageously reduces the number of identification rules to be implemented. As mentioned above, in the exemplary case of a multi-dimensional performance measurement, applying the ACL technique to all incoming packets would in fact require implementing a list of M x Z identification rules. According to the present application, instead, in all incoming packets, two sample sequences are first identified (one per dimension, i.e. client and CoS); then, one sample sequence is subjected to M mutually exclusive identification rules on each client dimension, while the other sample sequence is subjected to Z mutually exclusive identification rules on each CoS dimension. This requires implementing M + Z identification rules, which is generally much lower than M x Z. For example, if M = 100 and Z = 9, 109 identification rules are required, instead of 900.
[0025] Moreover, advantageously, there is no need to recombine or merge the parameters provided for the sub-sequences to provide an analysis of the traffic behavior on the desired level or desired dimension. By providing a sample sequence for each level or dimension to be investigated, in fact, the parameter(s) obtained from each sample sequence in relation to the sub-sequence(s) are already related to the desired level or dimension to be investigated. Therefore, the parameter(s) can be directly used to provide an analysis of the traffic behavior on the desired level or dimension (e.g. a performance measurement), without the need to perform any additional merging or combining operations.
[0026] Thus, the method of the application is very efficient from a computational point of view.
[0027] It should be noted that, since the packets identified as samples are distributed in a statistically uniform manner among the various sample sequences, the composition of each sample sequence statistically reflects the composition of the entire incoming traffic. Thus, subjecting each sample sequence to the corresponding identification rule(s) advantageously provides a sample sub-sequence whose behavior (e.g. in terms of performance, in particular in terms of packet loss, delay and jitter) statistically reflects the behavior of the corresponding packet flow and sub-flow that would be obtained by directly applying the same identification rule(s) to the entire incoming traffic. Thus, the parameters provided for each sample sub-sequence statistically reflect the actual behavior of the incoming traffic.
[0028] Thus, the method of the application is not only suitable for performance measurements, but more generally for any situation where a statistical analysis of the traffic is required.
[0029] According to a first aspect, the application provides a method for processing packets transmitted in a packet-switched communication network, the method comprising:
[0030] a) identifying in the packets a plurality of samples distributed in a statistically uniform manner among at least two sample sequences;
[0031] b) subjecting each sample sequence to at least one identification rule, thereby identifying in the sample sequence at least one sample sub-sequence satisfying the at least one identification rule, the at least one identification rule comprising a condition on the value of at least one identification field of the packets; and
[0032] c) providing at least one parameter indicative of the behavior of the at least one sample sub-sequence.
[0033] Preferably, step a) comprises identifying in the packets a plurality of samples distributed in a statistically uniform manner among at least two non-overlapping sample sequences.
[0034] According to an embodiment, at step a), said identifying is based on the value of a sampling signature computed by applying a hash function to a predetermined bit mask of each packet, each of the at least two sample sequences being associated with a respective possible value of the sampling signature.
[0035] According to a variant of such an embodiment, at step a), the sampling signature is part of a hash computed by applying a hash function, the length of the hash part being dynamically and retroactively adjusted.
[0036] Preferably, step b) comprises subjecting at least one of the at least two sample sequences to a plurality of mutually exclusive identification rules, thereby providing a plurality of non-overlapping sample sub-sequences.
[0037] Preferably, the plurality of mutually exclusive identification rules is applied sequentially to the at least one sample sequence, for example by means of ACL technology.
[0038] Preferably, step b) comprises subjecting a first one of the at least two sample sequences to at least one first identification rule, and subjecting a second one of the at least two sample sequences to at least one second identification rule, the at least one first identification rule and the at least one second identification rule being mutually exclusive.
[0039] According to an embodiment, at step c), the at least one parameter comprises at least one cumulative parameter indicative of the behaviour of the at least one sample sub-sequence as a whole.
[0040] Additionally or alternatively, at step c), the at least one parameter can comprise at least one individual performance parameter indicative of the behaviour of the samples of the at least one sub-sequence.
[0041] According to a second aspect, the application provides an apparatus for a packet-switched communication network, comprising:
[0042] - a sampling module configured to identify, among the received packets, a plurality of samples distributed in a statistically uniform manner among at least two sample sequences;
[0043] - at least two rule modules, each rule module being configured to subject a respective sample sequence to at least one identification rule, thereby identifying, in the sample sequence, at least one sample sub-sequence satisfying the at least one identification rule, the at least one identification rule comprising a condition on the value of at least one identification field of the packets;
[0044] - at least two analysis modules, each analysis module being configured to provide at least one parameter indicative of the behaviour of the at least one sample sub-sequence identified in the respective sample sequence.
[0045] Preferably, the sampling module is configured to identify, among the received packets, a plurality of samples distributed in a statistically uniform manner among at least two non-overlapping sample sequences.
[0046] According to a third aspect, the application provides a computer program product comprising instructions which, when executed by a computer, cause the program to perform the steps of the method as described above. BRIEF DESCRIPTION OF DRAWINGS
[0047] The application will become more apparent from the following detailed description, read in conjunction with the attached drawings, which are given by way of example and are not limiting, in which:
[0048] Figure 1 An apparatus for a packet-switched communication network is schematically illustrated, configured to process received packets according to an embodiment of the application;
[0049] Figure 2 schematically illustrates the structure of a packet transmitted in a packet-switched communication network; and
[0050] Figure 3 is a flowchart of the operation of the device in Figure 1 DETAILED DESCRIPTION
[0051] Figure 1 schematically illustrates a device 100 for a packet-switched communication network, configured to process packets Pk transmitted through the network according to an embodiment of the application.
[0052] The device 100 can be implemented within a node of the packet-switched communication network, for example a switch or a router. Alternatively, the device 100 can be a standalone device located at a node of the packet-switched communication network or on a link between two nodes. For example, the device 100 can be part of a management network configured to perform management tasks on the packet-switched communication network, including performance measurements. In this case, the device 100 is essentially a measurement point of the management network and is preferably connected to a management server (not shown in the figures) configured to cooperate therewith, for example to collect performance parameters therefrom, to perform management tasks.
[0053] Preferably, each packet Pk transmitted through the network comprises a header and a payload. The payload comprises user data. Preferably, the header comprises information for routing the packet Pk through the network. The header format depends on the protocol according to which the packet Pk is formatted.
[0054] As a non-limiting example, Figure 2 is shown a header H of a packet Pk formatted according to a known TCP (Transmission Control Protocol) based on IPv4 (Internet Protocol version 4). The header H comprises 40 bytes, divided into 20 bytes for the IP header and 20 bytes for the TCP header. In particular, the TCP header comprises the fields source port, destination port, sequence number, acknowledgement number, data offset, RSV (reserved), flags, window size, checksum and urgent point.
[0055] With reference again to Figure 1 , the device 100 preferably comprises a receiver RX, a sampling module SM, at least two rule modules RMk (k = 1, 2,...) and at least two analysis modules AMk (k = 1, 2,...). All the modules of the device 100 can be implemented by hardware, software or a combination thereof.
[0056] The receiver RX is preferably configured to receive a plurality of packets Pk transmitted through the packet-switched communication network.
[0057] The sampling module SM is preferably configured to identify, among the received packets Pk, a plurality of samples distributed in a statistically uniform manner among at least two sample sequences. According to an embodiment of the application, the at least two sample sequences SSk (k = 1, 2,...) are identified on the basis of the value of a sampling signature computed by applying a hash function to a predetermined bit mask in each received packet Pk. As will be described in detail hereafter, each sample sequence SSk is associated with a respective possible value Hk (hereinafter also referred to as "sampling value") of the sampling signature. Therefore, if the sampling signature of a packet Pk is equal to the sampling value Hk associated with a certain sample sequence SSk (this will statistically occur for several received packets due to collisions of the hash function), the packet Pk is assigned to that sample sequence SSk.
[0058] Each rule module RMk (k = 1, 2,...) is preferably configured to receive, from the sampling module SM, the respective sample sequence SSk (k = 1, 2) and to apply thereto at least one identification rule IRk comprising a condition on the value of at least one identification field of the packet Pk (preferably of the packet header) nk (nk = 1,...). This allows to identify, in each sample sequence SSk, at least one sample sub-sequence SSk nk (nk = 1,...) satisfying the condition expressed in the identification rule IRk nk (nk = 1,...).
[0059] Each analysis module AMk (k = 1, 2,...) is preferably configured to receive, from the rule module RMk, the at least one sample sub-sequence SSk nk (nk = 1,...), and to provide, for each sample sub-sequence SSk nk at least one parameter Pk nk (nk = 1,...) indicative of the behavior of the sample sub-sequence SSk nk (nk = 1,...). For example, it is possible to provide an individual performance parameter (e.g. a timestamp) for each sample of the sub-sequence SSk nk and / or a cumulative performance parameter (e.g. a counter or a cumulative or average timestamp) for the sub-sequence SSk nk as a whole.
[0060] With reference to the flowchart of Figure 3 , the operation of the apparatus 100 according to an embodiment of the application will be described in detail.
[0061] When the measurement session starts, the receiver RX of the apparatus 100 preferably starts receiving packets Pk (step 300).
[0062] For example, if the apparatus 100 is implemented at the receiving side of a node, the packet Pk is a packet received at one or more input ports of the node. If the apparatus 100 is implemented at the transmitting side of a node, the packet Pk is a packet transmitted by one or more output ports of the node. Conversely, if the apparatus 100 is implemented on a link, the packet Pk is a packet transmitted along the link (in one direction or in both directions if the link is bidirectional).
[0063] If the apparatus 100 has a pass-through configuration (i.e. the apparatus 100 is deployed on the path of real traffic transmitted by the packet-switched network), the packet Pk is a packet actually transmitted through the network. Otherwise, the packet Pk can be a copy of an actually transmitted packet, generated for example by mirroring techniques.
[0064] When the packet Pk is received, the sampling module SM computes its sampling signature, preferably by applying a predetermined hash function to a predetermined bitmask in the packet Pk (preferably in the packet header) (step 301).
[0065] The sampling signature computed by the sampling module SM for the received packet Pk preferably has a statistically uniform distribution among its possible values, which means that the probability of the sampling signature being equal to a certain value is the same for all its possible values. The sampling signature can be computed for example as provided in T. Zseby et al., "Sampling and Filtering Techniques for IP Packet Selection", RFC 5475, March 2009. For example, the hash function can be the known IPSX (IP Shift-XOR) or the known BOB hash function.
[0066] Preferably, the bitmask to which the hash function is applied depends on the packet format, i.e. on the protocol according to which the packet Pk is formatted. In order to ensure a statistically uniform distribution of the sampling signature among its possible values - and thus a statistically uniform distribution of the packet Pk in the sample sequence SSk (k = 1, 2,...) - the hash function is preferably applied to a bitmask whose values are as much as possible entropic in the packet Pk, which means that the probability of different packets Pk having bits of the selected mask with the same value is as low as possible. It is thus preferable to avoid bits of header fields whose values are always or often the same, for example the TCP port field whose value is often 80. For the same reason, if the apparatus 100 is located at an intermediate node of a tunnel carrying the packets Pk, the tunnel header should be avoided since all the packets Pk have the same tunnel header.
[0067] If consistent identification of the sample sequences SSk(k = 1, 2,...) at the different devices implemented in the network is desired, the hash function is preferably applied to the bits of the mask whose value is invariant through the path of the packet Pk. In this way, each device applying the hash function to the bits of the mask of a certain packet Pk will obtain the same sampling signature value for that packet. Therefore, in this case, it is preferred to avoid bits of the header fields whose value changes at each node, such as the TTL field and the checksum of the IP header. If NAT (Network Address Translation) techniques are used, the bits of the IP address should also be avoided.
[0068] For example, if the packet Pk is formatted according to the TCP protocol over IPv4 described above, the bits of the mask can include the bits of one or more of the following fields: identification, flags, fragment offset, source address, destination address, sequence number and total length.
[0069] As will be discussed in detail below, the sampling signature can be the hash of the whole computation or a part thereof.
[0070] The sampling module SM then preferably compares the value of the computed sampling signature with at least two predefined different sampling values Hk(k = 1, 2,...), each sampling value being associated with a respective sample sequence SSk(k = 1, 2,...) to be identified (step 302).
[0071] If the value of the computed sampling signature is different from all the sampling values Hk(k = 1, 2,...), the sampling module SM preferably ignores the packet Pk and considers the next received packet Pk.
[0072] Otherwise, if the value of the computed sampling signature is equal to one of the sampling values Hk(k = 1, 2,...), the sampling module SM preferably identifies the packet Pk as a sample of the sample sequence SSk associated with that sampling value (step 303). In this way, by repeating steps 300-303 for each received packet Pk, the sampling module SM substantially identifies at least two sample sequences SSk(k = 1, 2,...) in the received packets Pk. Within each sample sequence, all the samples have a sampling signature equal to the sampling value Hk associated with that sequence. Since the sampling values Hk of the different sample sequences are different, each sample sequence will only include packets not included in the other sample sequence(s), so the sample sequences will be mutually non-overlapping.
[0073] It is to be noted that if several devices similar to the device 100 are deployed on the path of a packet Pk and their sampling modules are all configured in the same way (i.e. same hash function, same bit mask applied to the hash function, and same sampling value Hk), all the devices identify the same sequence of samples in the received packet Pk (except for possible packet loss or errors involving the received sequence of measurement samples).
[0074] Each sequence of samples SSk (k = 1, 2,...) identified by the sampling module SM is then forwarded to the corresponding rule module RMk (k = 1, 2,...). Each rule module RMk preferably applies at least one identification rule IRk nk (nk= 1,...) to the corresponding sequence of samples SSk nk (nk= 1,...) (step 304).
[0075] Each identification rule IRk nk preferably comprises at least one condition on the value of at least one identification field of the packet Pk (preferably of the packet header).
[0076] When the rule module RMk receives a sample of its sequence SSk from the sampling module SM, at step 304 it preferably applies its identification rule(s) IRk nk to the sample. If the value comprised in the relevant identification field(s) of the sample satisfies the corresponding identification rule IRk nk , then the rule module RMk concludes that the sample belongs to the sub-sequence SSk nk .
[0077] In case the rule module RMk is configured to apply at least two identification rules IRk nk (nk= 1, 2,...), such identification rules IRk nk are preferably mutually exclusive, so that the corresponding sequences of samples SSk nk are non-overlapping. For example, the identification rules IRk nk applied by the rule module RMk can contain different, mutually exclusive conditions on the value(s) of the same identification field or combination of identification fields of the packet. In this way, the identification rules IRk nk can be applied sequentially by the rule module RMk (e.g. according to known ACL techniques).
[0078] On the other hand, the identification rule(s) applied by different rule modules RMk are preferably related to different levels or dimensions of the traffic, so that they can be non-exclusive. For example, different rule modules RMk can apply identification rule(s) containing conditions on the value of different identification fields of the packet or on the value(s) of a combination of identification fields.
[0079] Figure 1 An exemplary case is shown in which the sampling module SM provides two sample sequences SS1 and SS2 which are identified based on two different values H1 and H2 of the sampling signature. As shown, each sample sequence SS1, SS2 is sent to a respective rule module RA1, RA2. Figure 1
[0080] The rule module RA1 applies, for example, 100 mutually exclusive identification rules IR1 n1 (n1 = 1, 2,... 100) on the values of the source address field, each identification rule being of the type source address = SA n1 (n1 = 1, 2,... 100). In this way, the rule module RA1 identifies 100 non-overlapping sample subsequences SS1 n1 (n1 = 1, 2,... 100).
[0081] The rule module RA2 can instead apply, for example, 9 mutually exclusive identification rules IR2 n2 (n2 = 1, 2,... 9) on the values of the DSCP field, each identification rule being of the type DSCP = CoS n2 (n2 = 1, 2,... 9). In this way, the rule module RA2 identifies 9 non-overlapping sample subsequences SS2 n2 (n2 = 1, 2,... 9).
[0082] Although the identification rules IR1 n1 and IR2 n2 are not mutually exclusive (a packet Pk can have a source address equal to any one of the values SA n1 and at the same time have a DSCP field equal to any one of the values CoS n2), the subsequences SS1 n1 (n1 = 1, 2,... 100) do not overlap with the subsequences SS2 n2 (n2 = 1, 2,... 9) because the rule modules RA1, RA2 operate on non-overlapping sample sequences SS1, SS2.
[0083] As another example (not shown in the drawings), the rule module RA1 can apply, for example, a single identification rule IR1 n1 (n1 = 1 ) on the values of the source address field, the identification rule being of the type source address = SA. In this way, the rule module RA1 identifies a single sample subsequence SS1 n1 (n1 = 1 ).
[0084] The rule module RA2 can instead apply, for example, 100 mutually exclusive identification rules IR2 n2 (n2 = 1, 2,... 100) each of which has the type of identification rule source address = SA and destination address = DAn2(n2 = 1, 2,... 100). In this way, the rule module RA2 identifies 100 non-overlapping sample subsequences SS2 n2 (n2 = 1, 2,... 100).
[0085] Although the identification rules IR1 n1 and IR2 n2 are not mutually exclusive (each packet Pk whose source address satisfies the identification rule IR1 n1 may also satisfy any of the identification rules IR2 n2 ), the subsequence SS1 n1 does not overlap with the subsequence SS2 n2 (n2 = 1, 2,... 100) because, in this case, the rule modules RA1, RA2 also operate on non-overlapping sample sequences SS1, SS2.
[0086] Referring again to the flowchart of Figure 3 , each analysis module AMk(k = 1, 2,...) preferably receives at least one sample subsequence SSk nk (nk = 1,...) identified in the respective sample sequence SSk(k = 1, 2,...) and provides at least one parameter Pk nk indicative of the behavior of the sample subsequence SSk nk (nk = 1,...) for each sample subsequence SSk nk (nk = 1,...)(step 305).
[0087] For example, the parameters Pk nk provided for the sample subsequence SSk nk may include individual performance parameters (e.g., timestamps) for each sample of the subsequence SSk nk and / or cumulative performance parameters (e.g., counters or cumulative or average timestamps) for the subsequence SSk nk as a whole.
[0088] With reference to the exemplary implementation of Figure 1 , the analysis module AM1 preferably receives the subsequences SS1 n1 (n1 = 1, 2,... 100) identified in the sample sequence SS1 by the rule module RM1 and provides at least one parameter P1 n1 (n1 = 1, 2,... 100) for each subsequence SS1 n1 (n1 = 1, 2,... 100).
[0089] Similarly, the analysis module AM2 preferably receives the subsequences SS2 n2(n2 = 1, 2,... 9), and to provide for each sub-sequence SS2 n2 at least one parameter P2 n2 (n2 = 1, 2,... 9).
[0090] Such parameters Pk nk (k = 1, 2,... and nk = 1,...) can be periodically or at the end of the measurement session transmitted to a management server (not shown in the drawings) for example. The management server will then use them to perform a statistical analysis of the behavior of each sample sub-sequence SSk nk (k = 1, 2,... and nk = 1,...) (e.g. performance measurements such as packet loss measurements, delay measurements or jitter measurements).
[0091] Thus, by identifying in all the received packets Pk a number of sample sequences SSk (k = 1, 2,...) equal to the number of levels or dimensions to be investigated, and then by applying to each sample sequence SSk at least one identification rule IRk nk related to the corresponding level or dimension, it is advantageously possible to perform an analysis of the behavior of at least partially overlapping packet flows (e.g. multi-level or multi-dimensional performance measurements).
[0092] This advantageously reduces the number of identification rules to be implemented. As mentioned above, in fact, the mere application of the ACL technique to all the incoming packets for providing performance measurements in 2 dimensions of traffic (each client and each CoS) would require implementing a list of M x Z identification rules (M being the number of mutually exclusive rules in each client dimension and Z being the number of mutually exclusive rules in each CoS dimension). According to the present embodiment, instead, in all the incoming packets Pk two mutually non-overlapping sample sequences SS1, SS2 are first identified (one for each dimension, i.e. client and CoS) based on 2 different sampling signature values; then one sample sequence SS1 is subjected to M mutually exclusive identification rules IR1 n1 (n1 = 1, 2,... M) in each client dimension, and the other sample sequence SS2 is subjected to Z mutually exclusive identification rules IR2 n2 (n2 = 1, 2,... Z) in each CoS dimension. This requires implementing M + Z identification rules, which is generally much lower than M x Z. For example, if M = 100 and Z = 9, 109 identification rules are required instead of 900.
[0093] Moreover, advantageously, there is no need to recombine or merge the parameters Pk nk provided for each sample sequence SSk nkto provide an analysis of the behavior of the service at the desired level or dimension. By providing a sample sequence SSk for each level or dimension to be investigated, in fact, the sub-sequences SSk nk parameters Pk related to the level or dimension of interest nk have already been associated with the desired level or dimension to be investigated. Therefore, the parameters Pk nk can be used directly to provide an analysis (for example, a performance measurement) of the behavior of the service at the desired level or dimension, without the need to perform any additional merging or combining operations.
[0094] Therefore, the method of the application is very efficient from a computational point of view.
[0095] It should be noted that, since whether a packet Pk will be assigned to a certain sample sequence SSk depends on the value of the sampling signature generated by its hash, it is not possible to know a priori which packets Pk will be part of each sample sequence SSk. However, the use of a sampling signature calculated with a hash that is statistically uniformly distributed among its possible values guarantees that the packets Pk identified as samples are distributed among the various sample sequences SSk in a statistically uniform manner, and therefore the composition of each sample sequence SSk statistically reflects the composition of the entire incoming traffic.
[0096] Therefore, each sample sequence SSk is subjected to the respective identification rule(s) IRk nk Advantageously, such sample sub-sequences SSk nk are provided, whose behavior (for example, in terms of performance, in particular in terms of packet loss, delay and jitter) statistically reflects the behavior of the respective packet flows and sub-flows that would be obtained by applying the same identification rule(s) directly to the entire incoming traffic. Therefore, for each sample sub-sequence SSk nk the parameters Pk provided nk statistically reflect the actual behavior of the incoming traffic.
[0097] Therefore, the method of the application is not only suitable for performance measurements, but more generally for any situation in which it is desired to statistically analyze the traffic.
[0098] Although the above-described embodiments provide for identifying the sample sequence based on the value of the sampling signature calculated on the basis of the hash, this is not limiting. The sampling module SM can in fact distribute the packets among the sample sequences in a statistically uniform manner by applying other techniques. For example, each time a packet is received, the sampling module SM can generate a random number with a uniform probability density function, for example between 1 and 100. Then, if for example two sample sequences SSI, SS2 are to be identified, the sampling module SM can compare the random number with a threshold equal to 50. If the random number is less than 50, the packet is assigned to the sample sequence SSI, otherwise it is assigned to the sample sequence SS2. The uniform density probability function of the random number ensures that the packets Pk are distributed among the sample sequences SSI, SS2 in a statistically uniform manner. Unlike the sampling signature technique of the hash calculation, the random number technique does not ensure the consistent identification of the sample sequences SSI, SS2 performed by the different devices implementing on the path of the packets Pk. Therefore, the random number technique can be applied when the statistical analysis of the traffic behavior to be performed does not require the combination or comparison of the parameters provided by the different devices.
[0099] According to a variant, the sampling module SM can also calculate an identification signature for each packet Pk identified as part of any sample sequence SSk, as described in WO2017 / 071779A1 in the name of the same applicant. This also allows to appropriately associate the performance parameters relating to the same sample and provided by different devices in case of errors in the reception sequence of the samples involving the same sub-sequence.
[0100] Moreover, as mentioned above, the sampling signature can be either the entire calculated hash or a portion thereof. In the latter case, the length of the hash portion used as sampling signature for identifying the sample in the received packet Pk can be dynamically adjusted, as described in WO2018 / 072828A1 in the name of the same applicant. This allows to control the number of samples by dynamically adjusting the sampling rate, to compensate for possible fluctuations in the packet rate of the received packets Pk.
Claims
1. A method for processing a packet (Pk) transmitted in a packet-switched communication network, the method comprising: a) identifying in the packet (Pk) a plurality of samples distributed in a statistically uniform manner among at least two sample sequences (SS1, SS2); b) subjecting each sample sequence (SS1, SS2) to at least one identification rule (IR1 n1 , IR2 n2 ), thereby identifying at least one sample sub-sequence (SS1 n1 , SS2 n2 ) in said sample sequence (SS1, SS2) that fulfils said at least one identification rule (IR1 n1 , IR2 n2 ), said at least one identification rule (IR1 n1 , IR2 n2 ) comprising a condition on a value of at least one identification field of said packet (Pk); and c) providing at least one parameter (P1 n1 , P2 n2 ) indicative of a behavior of said at least one sample subsequence (SS1 n1 , SS2 n2 ), wherein step b) comprises subjecting a first sample sequence (SS1) of the at least two sample sequences (SS1, SS2) to at least one first identification rule (IR1 n1 ) and subjecting a second sample sequence (SS2) of the at least two sample sequences (SS1, SS2) to at least one second identification rule (IR2 n2 ), the at least one first identification rule (IR1 n1 ) and the at least one second identification rule (IR2 n2 ) being non-mutually exclusive.
2. The method of claim 1, wherein step a) comprises identifying in the packet a plurality of samples distributed in a statistically uniform manner among at least two non-overlapping sample sequences.
3. The method of claim 2, wherein at step a) the identification is based on the value of a sampling signature computed by applying a hash function to a predetermined bit mask in each of the packets (Pk), each of the at least two sample sequences (SS1, SS2) being associated with a respective possible value (H1, H2) of the sampling signature.
4. The method of claim 3, wherein at step a) the sampling signature is a portion of a hash computed by applying the hash function to the predetermined bit mask, the length of the portion being dynamically and retroactively adjusted.
5. The method according to any one of claims 1 to 4, wherein step b) comprises subjecting at least one of the at least two sample sequences (SS1, SS2) to a plurality of mutually exclusive identification rules (IR1 n1 , IR2 n2 ), thereby providing a plurality of non-overlapping sample subsequences (SS1 n1 , SS2 n2 ).
6. The method according to claim 5, wherein the plurality of mutually exclusive identification rules (IR1 n1 , IR2 n2 ) are applied sequentially to the at least one of the sample sequences (SS1, SS2).
7. The method according to any one of claims 1 to 4, wherein in step c) the at least one parameter (P1 n1 , P2 n2 ) comprises at least one cumulative parameter indicative of a behavior of the at least one sample sub-sequence (SS1 n1 , SS2 n2 ) as a whole.
8. The method according to any one of claims 1 to 4, wherein in step c) the at least one parameter (P1 n1 , P2 n2 ) comprises at least one individual performance parameter indicative of a behavior of samples in the at least one sub-sequence (SS1 n1 , SS2 n2 ).
9. An apparatus (100) for a packet-switched communication network, comprising: - a sampling module (SM) configured to identify in a received packet (Pk) a plurality of samples distributed in a statistically uniform manner among at least two sample sequences (SS1, SS2); - at least two rule modules (RM1, RM2), each rule module (RM1, RM2) being configured to subject a respective sample sequence (SS1, SS2) to at least one identification rule (IR1 n1 , IR2 n2 ), thereby identifying at least one sample sub-sequence (SS1 n1 , SS2 n2 ) in said sample sequence (SS1, SS2) that fulfils said at least one identification rule (IR1 n1 , IR2 n2 ), said at least one identification rule (IR1 n1 , IR2 n2 ) comprising a condition on a value of at least one identification field of said packet (Pk); and - at least two analysis modules (AM1, AM2), each analysis module (AM1, AM2) being configured to provide at least one parameter (P1 n1 , P2 n2 ) indicative of a behavior of the at least one sample sub-sequence (SS1 n1 , SS2 n2 ) identified in the respective sample sequence (SS1, SS2), wherein a first rule module (RM1) of the at least two rule modules (RM1, RM2) is configured to subject a first sample sequence (SS1) of the at least two sample sequences (SS1, SS2) to at least one first identification rule (IR1 n1 ), and a second rule module (RM2) of the at least two rule modules (RM1, RM2) is configured to subject a second sample sequence (SS2) of the at least two sample sequences (SS1, SS2) to at least one second identification rule (IR2 n2 ), the at least one first identification rule (IR1 n1 ) and the at least one second identification rule (IR2 n2 ) being non-mutually exclusive.
10. The apparatus of claim 9, wherein the sampling module (SM) is configured to identify in a received packet (Pk) a plurality of samples distributed in a statistically uniform manner among at least two non-overlapping sample sequences (SS1, SS2).
11. A computer program product comprising instructions which, when the program is executed by a computer, cause the program to carry out the steps of the method according to any one of claims 1 to 8.
Citation Information
Patent Citations
Performance measurement in a packet-switched communication network
WO2017071779A1
Performance measurement in a packet-switched communication network
WO2018072828A1
Performance measurement in a packet-switched communication network
CN108353001A
Performance measurement in a packet-switched communication network
CN109997335A