Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
TEST APPARATUS
Document Type and Number:
WIPO Patent Application WO/2016/189207
Kind Code:
A1
Abstract:
A solution for testing is provided. The solution comprises receiving (400) packets; detecting (402) one or more flows the received packets belong into on the basis of one or more parameters of each packet; determining (404) at last one data model on the basis of the detected flows; generating (406) additional packets on the basis of the at least one data model; and causing (408) deviations to one or more received packets of the one or more flows and generated additional packets according to flow specific rules, the deviations comprising at least one of reorder, timing, drop, duplication, corruption, fragmentation and transmitting (410) the received and generated additional packets.

Inventors:
BRÄYSY VINSKI (FI)
SANKALA JOUKO (FI)
KARJALAINEN MIKKO (FI)
Application Number:
PCT/FI2016/050370
Publication Date:
December 01, 2016
Filing Date:
May 27, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
RUGGED TOOLING OY (FI)
International Classes:
H04L43/50; H04L67/01
Foreign References:
US20040218608A12004-11-04
US20050063302A12005-03-24
US8626827B12014-01-07
US8839417B12014-09-16
EP2456128A12012-05-23
EP1367771A22003-12-03
Attorney, Agent or Firm:
KOLSTER OY AB (Helsinki, Helsinki, FI)
Download PDF:
Claims:
Claims

1 . An apparatus, comprising:

at least one processor; and

at least one memory including computer program code,

the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to:

receive packets;

detect one or more flows the received packets belong into on the basis of one or more parameters of each packet;

determine at last one data model on the basis of the detected flows; generate additional packets on the basis of the at least one data model; and

cause deviations to one or more received packets of the one or more flows and generated additional packets according to flow specific rules, the deviations comprising at least one of reorder, timing, drop, duplication, corruption, fragmentation;

transmit the received and generated additional packets.

2. The apparatus of claim 1 , the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus further to:

determine timings of the received packets and messages contained in the packets; and

generate the data model on the basis of the one or more parameters of the received packets and the determined timings and messages.

3. The apparatus of claim 1 , further comprising an interface to a database; the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus further to:

select the data model from a database.

4. The apparatus of any preceding claim, further comprising an interface, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus further to: receive control input via the interface;

adjust the flow specific rules on the basis of input received via the user interface. 5. The apparatus of any preceding claim 1 to 3, further comprising an interface, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus further to:

receive control input via the interface;

control the generation of additional packets on the basis of input received via the user interface.

6. The apparatus of any preceding claim, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus further to:

determine that a detected flow operates according to a state machine;

generate additional packets for one or more additional flows operating according the same state machine;

transmit the one or more additional flows.

7. The apparatus of any preceding claim, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus further to:

generate a data model for a detected flow on the basis of the one or more parameters,

generate additional packets for one or more additional flows on the basis of the data model;

transmit the one or more additional flows. 8. The apparatus of any preceding claim, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus further to:

monitor packet traffic between at least two endpoints.

9. A method, comprising:

receiving packets; detecting one or more flows the received packets belong into on the basis of one or more parameters of each packet;

determining at least one data model on the basis of the detected flows;

generating additional packets on the basis of the at least one data model; and

causing deviations to one or more received packets of the one or more flows and generated additional packets according to flow specific rules, the deviations comprising at least one of reorder, timing, drop, duplication, corruption, fragmentation;

transmitting the received and generated additional packets.

10. The method of claim 9, further comprising:

determining timings of the received packets and messages contained in the packets; and

generating the data model on the basis of the one or more parameters of the received packets and the determined timings and messages.

Description:
TEST APPARATUS

Technical Field

The exemplary and non-limiting embodiments of the invention relate generally to communications. Embodiments of the invention relate especially to apparatuses and methods for testing communication networks and devices.

Background

In modern communication and computer networks, data exchange between programs and computers is a vital element. Information must be exchanged reliably. There are several factors which may cause errors or impairments in communication. Therefore it is useful to test the tolerance or operation of networks, connections, and network devices in situations when there are problems in communication. Devices providing versatile ways of testing networks are needed.

Summary

The following presents a simplified summary of the invention in order to provide a basic understanding of some aspects of the invention. This summary is not an extensive overview of the invention. It is not intended to identify key/critical elements of the invention or to delineate the scope of the invention. Its sole purpose is to present some concepts of the invention in a simplified form as a prelude to a more detailed description that is presented later.

According to an aspect of the present invention, there is provided an apparatus, comprising: at least one processor; and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to: receive packets; detect one or more flows the received packets belong into on the basis of one or more parameters of each packet; determine at last one data model on the basis of the detected flows; generate additional packets on the basis of the at least one data model; and cause deviations to one or more received packets of the one or more flows and generated additional packets according to flow specific rules, the deviations comprising at least one of reorder, timing, drop, duplication, corruption, fragmentation; transmit the received and generated additional packets.

According to an aspect of the present invention, there is provided a method, comprising: receiving packets; detecting one or more flows the received packets belong into on the basis of one or more parameters of each packet; determining at least one data model on the basis of the detected flows; generating additional packets on the basis of the at least one data model; and causing deviations to one or more received packets of the one or more flows and generated additional packets according to flow specific rules, the deviations comprising at least one of reorder, timing, drop, duplication, corruption, fragmentation; transmitting the received and generated additional packets.

Some preferred embodiments of the invention are disclosed in the dependent claims.

Brief description of the drawings

In the following the invention will be described in greater detail by means of preferred embodiments with reference to the attached drawings, in which

Figure 1 illustrates a simplified example of a connection between two devices communicating via a communication network;

Figures 2A and 2B illustrate simplified examples of embodiments of testing of a connection;

Figure 3 illustrates a simplified example of the operation of a test apparatus;

Figure 4 is a flowchart illustrating a simplified example of an embodiment of the invention;

Figure 5 illustrates an example of the operation of a deviation unit;

Figure 6 illustrates a simplified example of an apparatus in which embodiments of the invention may be applied.

Detailed description of some embodiments

The following embodiments are only examples. Although the specification may refer to "an", "one", or "some" embodiment(s) in several locations, this does not necessarily mean that each such reference is to the same embodiment(s), or that the feature only applies to a single embodiment. Single features of different embodiments may also be combined to provide other embodiments. Furthermore, words "comprising" and "including" should be understood as not limiting the described embodiments to consist of only those features that have been mentioned and such embodiments may also contain also features, structures, units, modules etc. that have not been specifically mentioned.

There are a large number of different protocols used to realise communication between different devices. The protocol to use may depend on several factors, such as the communicating devices, the service used, the type of traffic, the connection type. There may be more than one protocol used on a single connection between two communicating devices.

Transmission control protocol (TCP) is one of the protocols in the internet protocol (IP) suite. The TCP, and other transport layer protocols, may be used to deliver data streams between programs running on computers connected to internet, for example. The TCP may control the transmission by dividing the data to be transmitted into segments and by forwarding the segments to an IP layer, which encapsulates each data segment into an IP packet. Thereafter, the IP packet may be transmitted to the receiver.

Other typical protocols include Stream Control Transmission Protocol (SCTP) and User Datagram Protocol (UDP) which are transport layer protocols like TCP. Session Initiation Protocol (SIP) is a protocol used for signalling and controlling communication sessions and multimedia sessions in particular.

Figure 1 illustrates a simplified example of a connection between two devices communicating via a communication network. In the example, two devices or hosts 100, 102 are connected via a communication network comprising two intervening routers 104, 106 and connecting lines 108, 1 10, 1 12. The routers or servers 104, 106 may be any devices relaying traffic. In practise, realistic connections typically comprise a large number of relaying routers, servers or other network devices. The number of devices on the signal path from the first device 100 to the second device 102 may easily be hundreds or thousands. Different connections types (for example wired or wireless) may be used on a single connection between two communicating devices.

The varying connections and other traffic may cause several impairments to the traffic between communicating devices. For example, in packet network packets may be lost, corrupted, delayed or duplicated, to name a few deficiencies. To ensure the operation of devices, connections and services in different situations test procedures where different deviations and errors are emulated are required.

In addition, it is useful to test the operation of devices and connections in problematic situations, for example by loading the devices and connections with additional load. By exposing devices and connections to a large number of additional data streams or flows the stability of the systems may be tested.

Figure 2A illustrates a simplified example of an embodiment of testing of a connection. The example illustrates testing a connection between two devices of Figure 1 . However, as one skilled in the art is aware, embodiments of the invention are not limited to testing connections between two devices or generally any specific number of devices. Embodiments of the invention may be applied to any network or connection. The connection may be intranet, Internet or anything between. In the example of Figure 2A, a test apparatus 200 is installed in the connection between device 100 and device 102. In this example the test apparatus is located between two routers or servers 104, 106. In general, the location of a test apparatus 200 depends on what needs to be tested. During testing more than one test apparatuses may be used depending on the application. In this example, the test apparatus 200 receives the traffic sent from the device 100 and retransmits the traffic towards device 102. Likewise, the traffic sent from the device 102 is received and retransmitted towards device 100. The test apparatus may process the traffic and introduce some deviations or errors so that the operation of the connection may be monitored.

Figure 2B illustrates another simplified example of an embodiment of testing of a connection. The example illustrates testing a connection between two devices of Figure 1 . In this example, a test apparatus 200 is installed directly between device 100 and device 102. The test apparatus may be used to emulate the delays and errors caused by routers in the connection between the devices 100 and 102.

Figure 3 illustrates a simplified example of the operation of the test apparatus 200. In the example embodiment of figure 3, the test apparatus is connected 300, 302 to test a connection between two end points 100, 102. In an embodiment, the end points may communicate with each other, i.e. they may transmit packets to each other. There may be one or more connections or flows between the end points. In an embodiment, the test apparatus comprises a deviation unit 304 and a generator unit 306. In an embodiment, the test apparatus further comprises an interface 308 to a database 310. The database 312 may also be a part of the test apparatus 200. In an embodiment, the test apparatus further comprises an interface 312 to a controller 314. The controller may be configured to control the operation of the test apparatus.

Figure 4 is a flowchart illustrating a simplified example of an embodiment of the invention. The flowchart illustrates an example of the operation of the test apparatus 200.

In step 400, the apparatus may be configured to receive packets. The packets may come from either end point 100, 102 on connections 300, 302 respectively. In an embodiment, the packets may be received by both the deviation unit 304 and the generator unit 306.

In step 402, the apparatus may be configured to detect one or more flows the received packets belong into on the basis of one or more parameters of each packet. In an embodiment, the parameters of the packets may comprise the IP protocol used in the transmission of the packets, IP source or destination address or address space, TCP/UDP/SCTP source or destination ports, virtual local area network tags, Multiprotocol Label Switching labels, GTP TEID (General Packet Radio Service Tunneling Protocol Tunnel endpoint identifier), for example. Thus, each flow comprises packets which have the same given parameters.

In an embodiment, the apparatus is configured to determine timings of the received packets and messages contained in the packets. The timing information may be obtained by a hardware realisation which provides accurate timing information. The apparatus may determine if the detected flow operates according to a state machine and determine characteristics or properties the state machine. In an embodiment, the apparatus may be configured to complete the characteristics the state machine as more packets are received.

The apparatus may process more than one flow of packets at the same time. The detection may be performed either by the generator unit 304 or by the deviation unit 306 or by both.

In step 404, the apparatus may be configured to determine a data model on the basis of the detected flows. In an embodiment, the generator unit is configured to generate the data model on the basis of the one or more parameters of the received packets. In an embodiment, the generation of the data model takes state machine information into account. In another embodiment, the database 310 may be configured to store a plurality of different data models for different flows and connections. The generator unit may be configured to select the data model from the database 310.

In an embodiment, the data model may be generated partly on the basis of packet parameters and state machine information and partly utilising data base models.

In step 406, the generator unit 306 of the apparatus may be configured to generate additional packets on the basis of the data model. The generator unit may transmit 316 the packets to the deviation unit 304.

In step 408, the deviation unit 304 of the apparatus may be configured to cause deviations to one or more received packets of the one or more flows and generated additional packets according to flow specific rules, the deviations comprising at least one of reorder, timing, drop, duplication, corruption, fragmentation.

In step 410, the apparatus may be configured to transmit 318, 320 the received and generated additional packets. If the apparatus received packets from endpoint 100, the received and generated additional packets are forwarded 320 to endpoint 102. Correspondingly, if the apparatus received packets from endpoint 102, the received and generated additional packets are forwarded 318 to endpoint 100.

In an embodiment, the apparatus may be configured to generate additional stateless load. In another embodiment, the apparatus may be configured to generate and build protocol state machines (such as SIP) for multiple synchronized interfaces.

As mentioned, in an embodiment, the apparatus may determine from received packets that a detected flow operates according to a state machine. The apparatus may be configured to build additional state machines to simulate interactive, stateful protocol behaviour against the system under test. For session multiplication lower layer protocols, e.g. Ethernet, IP and UDP, can be redefined and populated with variables. It is also possible to add tunneling protocols for prerecorded streams, for example.

The database 310 may store prerecorded streams to reproduce realistic additional sessions.

The test apparatus may be configured to test the system to be studied in various kinds of ways. For example, the test apparatus 200 may be configured to act as a "man-in-the-middle" (MitM) type apparatus and generate large number of additional traffic. In Distributed Denial of Service (DDoS) type of test the test apparatus 200 may act as an endpoint generating a large number of additional data. With this kind of tests it is possible to examine the operation of the system under heavy load.

The apparatus may be controlled by a controller 314 connected to interface 312. The generator unit 306 may operate under the control of the controller. For example the amount and time profile of additional data fed into the system to be examined may be controlled by the controller. In addition, the controller may instruct the generation unit to select the data model either from the data base, directly from the received packets or both.

The proposed apparatus has many advantages over prior art. As the apparatus is configured to analyse the received packets and generate data models it is able to configure itself without continuous human control. Especially in situations when some parameters of traffic (IP addresses, for example) change during testing process the apparatus is capable of adapting to the situation.

Figure 5 illustrates an example of the operation of the deviation unit 304 of the test apparatus 200. The deviation unit may comprise an input port 500 configured to receive a signal. Typically the signal comprises packets. The deviation unit further comprises a flow lookup module 502 configured to divide the received packets into one or more flows on the basis of one or more parameters of each packet as described above. This operation may also be performed in the generator unit.

The deviation unit 304 be operate under the controller 314 connected to the test apparatus 200 via the interface 312. The deviation unit may also comprise an internal controller module (not shown in the figure for simplicity).

The controller module or the controller 314 may store information on the basis of which the flow lookup is performed by the flow lookup module. In an embodiment, the information is stored as a configuration matrix. The matrix comprises rules for mapping packets to different flows as described above. In addition, the matrix may comprise information how each flow is to be processed in the test apparatus. The configuration matrix may comprise a set of definitions for each flow. Deviations may be caused to both one or more received packets of the one or more flows and the additional packets generated by the generator unit 306 according to flow specific rules.

In an embodiment, the configuration matrix comprises for each flow a data field defining the physical port of the apparatus where the defined rules are to be applied. The port may define if the rules are to be applied to both transmission direction of communication. The matrix may comprise a data field defining the parameters for defining the flow. The matrix may comprise a data field defining a drop function which simulates packet loss. The drop function may define the percentage of packets lost. The matrix may comprise a data field defining bandwidth function which simulates limited bandwidth in a network. The bandwidth function may define the maximum number of bits per second supported in a flow, for example. The matrix may comprise a data field defining a delay function which simulates delay in a packet network. Incoming packets in a flow may be delayed with a given time delay.

In an embodiment, the matrix may comprise a data field defining a jitter function, i.e varying packet delay in a packet network. The jitter function may be defined by parameters describing the maximum deviation of jitter, jitter distribution and the correlation of successive jittered delay values. The matrix may comprise a data field defining a reorder function, which simulates packet reordering in a packet network. The matrix may further comprise a data field defining a corruption function, which defines how packets may be corrupted. Corruption means modifying the contents of a packet. The matrix may comprise a data field defining a duplication function simulating packet duplication in a network. The duplication function may define the percentage of packets duplicated. The matrix may comprise a data field defining packet length change function. The packet length change function may comprise parameters defining the number of bits added or removed from a packet of a flow.

The above functions are merely examples of possible actions that may be performed to packets in a flow.

The deviation unit 304 of the test apparatus 200 further may comprise a fragmentation module 506 which is configured to fragment packets of a flow under the control of the controller. The test apparatus further may comprise a deviation module 508 which is configured to introduce deviations to the packets of a flow. The deviations may be the based on the functions described above. The deviation unit 304 further may comprise a delay module 510 which is configured to introduce delay to the packets of a flow. The delays may be the based on the functions described above.

In an embodiment, the actions performed to different packets or flows may be dynamic. For example, different actions may be performed at different times. The delays and errors introduced to the packets may vary according to time.

The deviation unit 304 of the test apparatus 200 comprises an output port 512 configured to transmit the processed packets.

Figure 6 illustrates an embodiment. The figure illustrates a simplified example of an apparatus 200 in which embodiments of the invention may be applied.

It should be understood that the apparatus is depicted herein as an example illustrating some embodiments. It is apparent to a person skilled in the art that the apparatus may also comprise other functions and/or structures and not all described functions and structures are required. Although the apparatus has been depicted as one entity, different modules and memory may be implemented in one or more physical or logical entities. The apparatus may also be a part of a larger apparatus.

The apparatus of the example includes a control circuitry 600 configured to control at least part of the operation of the apparatus. The control circuitry 600 is configured to execute one or more applications.

In an embodiment, the apparatus may comprise one or more input/output interfaces 602 operationally connected to the control circuitry 600. The input/output interfaces 602 may comprise input/output ports 308, 312, and ports where devices under test 100, 102 are connected. The number and type of interfaces may vary in different embodiments. The interfaces enable connecting the apparatus to different networks and systems. The interfaces may be equipped with RJ45 connectors, for example. The apparatus may communicate with other network elements using the interface. In an embodiment, when the apparatus is a part of a larger apparatus, separate input/output interfaces are not needed. The apparatus may be configured to receive packets directly from other parts of the larger apparatus without the need of separate input ports and feed the packets to other parts of the larger apparatus without separate output ports

The apparatus may comprise a memory 604 for storing data or applications. Furthermore the memory may store software 606 executable by the control circuitry 600. The memory may be integrated in the control circuitry. In an embodiment, the apparatus may further comprise user interface 608 operationally connected to the control circuitry 600. The interface may comprise a display, a keypad, a set of light emitting diodes (LED), for example. Instead of or in addition to user interface, the apparatus may comprise an interface to which a separate user interface may be connected. Commands controlling the apparatus may be given in many various ways as one skilled in the art is aware. In an embodiment, the interface 608 is a control message interface. The apparatus may comprise a human interface and/or a machine interface, i.e it may receive commands from a human controller or from a controlling apparatus.

In an embodiment, the applications stored in the memory 604 may cause the apparatus at least to receive packets; detect one or more flows the received packets belong into on the basis of one or more parameters of each packet; determine a data model on the basis of the detected flows; generate additional packets on the basis of the data model; and cause deviations to one or more received packets of the one or more flows and generated additional packets according to flow specific rules, the deviations comprising at least one of reorder, timing, drop, duplication, corruption, fragmentation and transmit the received and generated additional packets.

The steps and related functions described in the above and attached figures are in no absolute chronological order, and some of the steps may be performed simultaneously or in an order differing from the given one. Other functions can also be executed between the steps or within the steps. Some of the steps can also be left out or replaced with a corresponding step.

The apparatuses or controllers able to perform the above-described features may be implemented as an electronic digital computer, or a circuitry which may comprise a working memory (RAM), a central processing unit (CPU), and a system clock. The CPU may comprise a set of registers, an arithmetic logic unit, and a controller. The controller or the circuitry is controlled by a sequence of program instructions transferred to the CPU from the RAM. The controller may contain a number of microinstructions for basic operations. The implementation of microinstructions may vary depending on the CPU design. The program instructions may be coded by a programming language, which may be a high-level programming language, such as C++, C#, Java, etc., or a low-level programming language, such as a machine language, or an assembler. The electronic digital computer may also have an operating system, which may provide system services to a computer program written with the program instructions.

As used in this application, the term 'circuitry' refers to all of the following: (a) hardware-only circuit implementations, such as implementations in only analog and/or digital circuitry, and (b) combinations of circuits and software (and/or firmware), such as (as applicable): (i) a combination of processor(s) or (ii) portions of processor(s)/software including digital signal processor(s), software, and memory(ies) that work together to cause an apparatus to perform various functions, and (c) circuits, such as a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation, even if the software or firmware is not physically present.

This definition of 'circuitry' applies to all uses of this term in this application. As a further example, as used in this application, the term 'circuitry' would also cover an implementation of merely a processor (or multiple processors) or a portion of a processor and its (or their) accompanying software and/or firmware. The term 'circuitry' would also cover, for example and if applicable to the particular element, a baseband integrated circuit or applications processor integrated circuit for a mobile phone or a similar integrated circuit in a server, a cellular network device, or another network device.

An embodiment provides a computer program embodied on a distribution medium, comprising program instructions which, when loaded into an electronic apparatus, are configured to control the apparatus to execute the embodiments described above.

The computer program may be in source code form, object code form, or in some intermediate form, and it may be stored in some sort of carrier, which may be any entity or device capable of carrying the program. Such carriers include a record medium, computer memory, read-only memory, and a software distribution package, for example. Depending on the processing power needed, the computer program may be executed in a single electronic digital computer or it may be distributed amongst a number of computers.

The apparatus may also be implemented as one or more integrated circuits, such as application-specific integrated circuits ASIC. Other hardware embodiments are also feasible, such as a circuit built of separate logic components. A hybrid of these different implementations is also feasible. When selecting the method of implementation, a person skilled in the art will consider the requirements set for the size and power consumption of the apparatus, the necessary processing capacity, production costs, and production volumes, for example.

The apparatuses or controllers able to perform the above-described features may comprise means for receiving packets; detecting one or more flows the received packets belong into on the basis of one or more parameters of each packet; determining a data model on the basis of the detected flows; generating additional packets on the basis of the data model; and causing deviations to one or more received packets of the one or more flows and generated additional packets according to flow specific rules, the deviations comprising at least one of reorder, timing, drop, duplication, corruption, fragmentation; and transmitting the received and generated additional packets.

It will be obvious to a person skilled in the art that, as the technology advances, the inventive concept can be implemented in various ways. The invention and its embodiments are not limited to the examples described above but may vary within the scope of the claims.