RU2703159C1 - Method and system for measuring network traffic statistics in n-second intervals - Google Patents

Method and system for measuring network traffic statistics in n-second intervals Download PDF

Info

Publication number
RU2703159C1
RU2703159C1 RU2018143600A RU2018143600A RU2703159C1 RU 2703159 C1 RU2703159 C1 RU 2703159C1 RU 2018143600 A RU2018143600 A RU 2018143600A RU 2018143600 A RU2018143600 A RU 2018143600A RU 2703159 C1 RU2703159 C1 RU 2703159C1
Authority
RU
Russia
Prior art keywords
traffic
interval
packet
time
statistics
Prior art date
Application number
RU2018143600A
Other languages
Russian (ru)
Inventor
Денис Васильевич Дякив
Александр Викторович Кошуков
Original Assignee
Общество с ограниченной ответственностью "НТЦ Веллинк"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "НТЦ Веллинк" filed Critical Общество с ограниченной ответственностью "НТЦ Веллинк"
Priority to RU2018143600A priority Critical patent/RU2703159C1/en
Application granted granted Critical
Publication of RU2703159C1 publication Critical patent/RU2703159C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

FIELD: computer engineering.
SUBSTANCE: this technical solution relates to computer engineering, in particular to methods and systems for measuring network traffic statistics. Disclosed is a method of measuring network traffic statistics on n-second intervals, performed by a processor, in which information on settings of a load test is sent by means of a software agent located on a traffic generator, to a traffic analyzer; determining, by a traffic analyzer, how many packets will be sent by the traffic generator and when it terminates the generation process; starting traffic generator and traffic analyzer; traffic generator generates packets with constant speed; traffic analyzer starts the interval after the arrival of the first packet from the traffic generator, and then stores the start time of the load test; determining the belonging of each transmitted packet from the traffic generator to the traffic analyzer to a specific interval; traffic analyzer generates statistics on traffic for each interval, as well as general integral statistics on traffic based on statistics on all intervals.
EFFECT: high accuracy of measuring network traffic statistics over n-second intervals when performing a load test.
15 cl, 3 dwg

Description

ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY

[001] Данное техническое решение, в общем, относится к области вычислительной техники, а в частности, к способам и системам для измерения статистики трафика сети.[001] This technical solution, in General, relates to the field of computer technology, and in particular, to methods and systems for measuring statistics of network traffic.

УРОВЕНЬ ТЕХНИКИBACKGROUND

[002] Интенсификация обмена информацией в сетях общего пользования обуславливает актуальность оптимизации распределения сетевых ресурсов и динамического управления ими в интересах минимизации вероятности возникновения перегрузок. В настоящее время результаты ряда исследований указывают на несоответствие описания динамики сетевого трафика традиционными моделями, предполагающими пуассоновский характер потоков пользовательских запросов, результатам эмпирических наблюдений. Ускорение обмена информацией в многопользовательских сетях приводит к росту относительной ошибки описания и предсказания динамики трафика такими моделями, что обуславливает актуальность поиска альтернативных моделей динамики трафика в широком диапазоне временных масштабов и размеров сетей. Существующие модели и алгоритмы имитации сетевого трафика в основном отражают технические аспекты передачи информации в сетях на различных уровнях. Технические решения для сетей различного масштаба и протоколов различного уровня существенно различаются, в то время как динамика пользовательской активности зависит от размеров и связности сообщества пользователей. Существующие модели динамики сетевого трафика хорошо работают на коротких временных интервалах, но не учитывают факторы интенсификации обмена информацией в сетях на значительных временных интервалах. Существует потребность в оценке данных параметров и потребности в масштабировании сетевых ресурсов на длительных временных интервалах.[002] The intensification of information exchange in public networks determines the urgency of optimizing the distribution of network resources and their dynamic management in the interests of minimizing the likelihood of congestion. Currently, the results of a number of studies indicate a discrepancy between the description of the dynamics of network traffic by traditional models, which assume the Poisson nature of the flows of user queries, and the results of empirical observations. Accelerating the exchange of information in multi-user networks leads to an increase in the relative error in describing and predicting traffic dynamics by such models, which makes it relevant to search for alternative models of traffic dynamics in a wide range of time scales and network sizes. Existing models and algorithms for simulating network traffic mainly reflect the technical aspects of information transfer in networks at various levels. Technical solutions for networks of various sizes and protocols at various levels vary significantly, while the dynamics of user activity depends on the size and connectivity of the user community. Existing models of network traffic dynamics work well at short time intervals, but do not take into account the factors of intensification of information exchange in networks at significant time intervals. There is a need to evaluate these parameters and the need to scale network resources over long time intervals.

СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

[003] Данное техническое решение направлено на устранение недостатков, свойственных решениям, известным из уровня техники.[003] This technical solution is aimed at eliminating the disadvantages inherent in solutions known from the prior art.

[004] Технической задачей или, другими словами, технической проблемой, решаемой в данном техническом решении, является осуществление измерения статистики трафика сети по n-секундным интервалам посредством использования генератора трафика и анализатора трафика.[004] A technical problem or, in other words, a technical problem solved in this technical solution is to measure network traffic statistics at n-second intervals by using a traffic generator and a traffic analyzer.

[005] Техническим результатом, достигаемым при решении вышеуказанной задачи, является повышение точности измерения статистики трафика сети по n-секундным интервалам при осуществлении нагрузочного теста.[005] The technical result achieved by solving the above problem is to increase the accuracy of measuring network traffic statistics at n-second intervals when performing a load test.

[006] Дополнительным техническим результатом является повышение предсказуемости числа пакетов, отправляемых в интервал.[006] An additional technical result is to increase the predictability of the number of packets sent per slot.

[007] Указанный технический результат достигается благодаря осуществлению способа измерения статистики трафика сети по n-секундным интервалам, который выполняется с помощью процессора, в котором направляют информацию о настройках нагрузочного теста, включающую по меньшей мере скорость генерации трафика, длительность теста и длину пакета посредством программного агента, расположенного на генераторе трафика, на анализатор трафика; определяют посредством анализатора трафика количество пакетов, которое будет отправлено генератором трафика и времени, когда он закончит процесс генерации на основании информации, полученной на предыдущем шаге; запускают по меньшей мере один генератор трафика и по меньшей мере один анализатор трафика для осуществления нагрузочного теста, посредством программных агентов, расположенных на данных устройствах; генерируют пакеты посредством по меньшей одного генератора трафика с постоянной скоростью и направляют на анализатор трафика; по меньшей мере один анализатор трафика запускает по меньшей мере один интервал после прихода первого пакета от генератора трафика, после чего сохраняет время начала нагрузочного теста; определяют принадлежность каждого переданного пакета от генератора трафика на анализатор трафика к конкретному интервалу с помощью времени начала генерации пакета, причем индекс интервала содержится в теле пакета; формируют посредством анализатора трафика статистику о трафике для каждого интервала, а также общую интегральную статистику о трафике на основании статистики обо всех интервалах.[007] This technical result is achieved by implementing a method for measuring network traffic statistics at n-second intervals, which is performed by a processor, in which information about the settings of the load test, including at least the rate of traffic generation, the duration of the test, and the length of the packet by software an agent located on a traffic generator to a traffic analyzer; determining by the traffic analyzer the number of packets that will be sent by the traffic generator and the time when it will complete the generation process based on the information obtained in the previous step; at least one traffic generator and at least one traffic analyzer are launched to perform a load test by means of software agents located on these devices; generate packets by means of at least one traffic generator with a constant speed and send it to a traffic analyzer; at least one traffic analyzer starts at least one interval after the first packet arrives from the traffic generator, after which it stores the start time of the load test; determining whether each transmitted packet from the traffic generator to the traffic analyzer belongs to a specific interval using the start time of the packet generation, the interval index being contained in the packet body; form, through a traffic analyzer, traffic statistics for each interval, as well as general integrated traffic statistics based on statistics on all intervals.

[008] В некоторых вариантах реализации изобретения при запуске генератора трафика и анализатора трафика на анализаторе трафика временем начала нагрузочного теста считается время приема первого пакета.[008] In some embodiments of the invention, when the traffic generator and the traffic analyzer are started on the traffic analyzer, the start time of the load test is considered to be the reception time of the first packet.

[009] В некоторых вариантах реализации изобретения если первый пакет не дошел, а дошел пакет с порядковым номером N, то из времени приема пакета вычитается данный порядковый номер умноженный на период генерации секунд.[009] In some embodiments of the invention, if the first packet has not reached, but the packet with sequence number N has arrived, then this sequence number multiplied by the generation period of seconds is subtracted from the packet reception time.

[0010] В некоторых вариантах реализации изобретения при осуществлении нагрузочного теста для валидного измерения задержки кадров (FTD) в одностороннем тесте системные часы генератора трафика и анализатора трафика синхронизированы по протоколу NTP или РТР.[0010] In some embodiments of the invention, when performing a load test for valid frame delay measurement (FTD) in a one-way test, the system clocks of the traffic generator and traffic analyzer are synchronized using the NTP or PTP protocol.

[0011]В некоторых вариантах реализации изобретения способ реализован аппаратно с использованием программируемой пользователем вентильной матрицы (FPGA).[0011] In some embodiments of the invention, the method is implemented in hardware using a user programmable gate array (FPGA).

[0012] В некоторых вариантах реализации изобретения длительность нагрузочного теста задается в пакетах.[0012] In some embodiments of the invention, the duration of the load test is specified in packets.

[0013] В некоторых вариантах реализации изобретения каждый пакет содержит Flow ID, индекс интервала, порядковый номер пакета, время отправки кадра. [0014] В некоторых вариантах реализации изобретения[0013] In some embodiments of the invention, each packet comprises a Flow ID, an interval index, a packet sequence number, and a frame send time. [0014] In some embodiments of the invention

[0015] В некоторых вариантах реализации изобретения время отправки кадра соответствует времени выхода первого байта кадра из генератора трафика в канал связи.[0015] In some embodiments, the frame send time corresponds to the time the first byte of the frame leaves the traffic generator in the communication channel.

[0016] В некоторых вариантах реализации изобретения генератор трафика отправляет кадры фиксированной длины.[0016] In some embodiments of the invention, the traffic generator sends frames of a fixed length.

[0017]В некоторых вариантах реализации изобретения отправка пакетов генератором трафика останавливается, если было отправлено заданное количество пакетов или была получена команда об остановке нагрузочного теста от программного агента генератора трафика.[0017] In some embodiments, the packet sending by the traffic generator is stopped if a predetermined number of packets have been sent or a command to stop the load test from the traffic generator software agent has been received.

[0018] В некоторых вариантах реализации изобретения время завершения первого интервала используется как инициализационное значение таймера в FPGA.[0018] In some embodiments of the invention, the completion time of the first interval is used as the initialization value of the timer in the FPGA.

[0019] В некоторых вариантах реализации изобретения в момент приема анализатором первого тестового кадра таймер запускается.[0019] In some embodiments, the timer starts when the analyzer receives the first test frame.

[0020] В некоторых вариантах реализации изобретения после завершения отсчитанного времени таймер автоматически перезапускается, но для всех интервалов, кроме первого, в качестве инициализационного значения используется время интервала.[0020] In some embodiments of the invention, after the timer has expired, the timer automatically restarts, but for all intervals except the first, the interval time is used as the initialization value.

[0021] Также технический результат достигается благодаря осуществлению системы измерения статистики трафика сети по n-секундным интервалам, которая содержит по меньшей мере один генератор трафика, выполненный с возможностью направления информации о настройках нагрузочного теста, включающую по меньшей мере скорость генерации трафика, длительность теста и длину пакета посредством программного агент на анализатор трафика; генерирования пакетов с постоянной скоростью и направления на анализатор трафика; по меньшей мере один анализатор трафика, выполненный с возможностью определения количества пакетов, которое будет отправлено генератором трафика и время, когда он закончит процесс генерации на основании информации; запуска по меньшей мере одного интервала после прихода первого пакета от генератора трафика, после чего сохранения времени начала нагрузочного теста; определения принадлежности каждого переданного пакета от генератора трафика на анализатор трафика к конкретному интервалу с помощью времени начала генерации пакета, причем индекс интервала содержится в теле пакета; формирования статистики о трафике для каждого интервала, а также общей интегральной статистики о трафике на основании статистики обо всех интервалах; по меньшей мере один программный агент, расположенный на анализаторе трафика и генераторе трафика, выполненный с возможностью запуска по меньшей мере одного генератора трафика и по меньшей мере одного анализатора трафика для осуществления нагрузочного теста.[0021] The technical result is also achieved through the implementation of a system for measuring network traffic statistics at n-second intervals, which contains at least one traffic generator, configured to send information about the settings of the load test, including at least the speed of traffic generation, the duration of the test and packet length through a software agent to the traffic analyzer; generating packets at a constant speed and sending it to a traffic analyzer; at least one traffic analyzer, configured to determine the number of packets to be sent by the traffic generator and the time when it will complete the generation process based on the information; starting at least one interval after the first packet arrives from the traffic generator, after which saving the start time of the load test; determining the ownership of each transmitted packet from the traffic generator to the traffic analyzer to a specific interval using the start time of the generation of the packet, and the interval index is contained in the packet body; generating traffic statistics for each interval, as well as general integrated traffic statistics based on statistics about all intervals; at least one software agent located on the traffic analyzer and the traffic generator, configured to run at least one traffic generator and at least one traffic analyzer to perform a load test.

[0022] В некоторых вариантах реализации изобретения генератор трафика является измерительным устройством с поддержкой функции NFV/SDN и H-QoS.[0022] In some embodiments of the invention, the traffic generator is a measurement device that supports NFV / SDN and H-QoS.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

[0023] Признаки и преимущества настоящего технического решения станут очевидными из приведенного ниже подробного описания и прилагаемых чертежей, на которых:[0023] The features and advantages of this technical solution will become apparent from the following detailed description and the accompanying drawings, in which:

[0024] На Фиг. 1 показан пример реализации архитектуры системы измерения статистики трафика сети по n-секундным интервалам.[0024] In FIG. Figure 1 shows an example implementation of the architecture of a system for measuring network traffic statistics at n-second intervals.

[0025] На Фиг. 2 показан пример реализации временных диаграмм анализа пакетов.[0025] In FIG. 2 shows an example implementation of packet analysis timing charts.

[0026] На Фиг. 3 показан пример реализации временных диаграмм анализа пакетов, при WAIT TIME больше 1/2 INTERVAL TIME.[0026] In FIG. Figure 3 shows an example implementation of packet analysis timing charts, with WAIT TIME greater than 1/2 INTERVAL TIME.

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF THE INVENTION

[0027] Данное техническое решение может быть реализовано на компьютере или другом устройстве обработки данных в виде автоматизированной системы или машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа.[0027] This technical solution can be implemented on a computer or other data processing device in the form of an automated system or computer-readable medium containing instructions for performing the above method.

[0028] Техническое решение может быть реализовано в виде распределенной компьютерной системы, компоненты которой являются облачными или локальными серверами.[0028] The technical solution can be implemented as a distributed computer system, the components of which are cloud or local servers.

[0029] Ниже будут приведены термины и определения, используемой в данном техническом решении и широко известные в данной области техники, которые помогут лучше понять сущность данного технического решения.[0029] Below are the terms and definitions used in this technical solution and widely known in the art, which will help to better understand the essence of this technical solution.

[0030] В данном решении под системой подразумевается компьютерная система или автоматизированная система (АС), ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированная система управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность вычислительных операций (действий, инструкций).[0030] In this solution, a system means a computer system or an automated system (AS), a computer (electronic computer), CNC (numerical control), PLC (programmable logic controller), a computerized control system, and any other devices capable of performing a given, clearly defined sequence of computational operations (actions, instructions).

[0031] Под устройством обработки команд подразумевается электронный блок либо[0031] By command processing device is meant an electronic unit or

интегральная схема (микропроцессор), исполняющая машинные инструкцииintegrated circuit (microprocessor) executing machine instructions

(программы).(programs).

[0032] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы, облачные хранилища данных.[0032] The command processing device reads and executes machine instructions (programs) from one or more data storage devices. Storage devices may include, but are not limited to, hard disks (HDDs), flash memory, ROM (read only memory), solid state drives (SSDs), optical drives, and cloud storage.

[0033] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.[0033] A program is a sequence of instructions for execution by a computer control device or an instruction processing device.

[0034] Генератор трафика - устройство на сети (зонд), генерирующее тестовый трафик.[0034] Traffic generator - a device on the network (probe) that generates test traffic.

[0035] Анализатор трафика - устройство на сети (зонд), принимающее тестовый трафик и считающее статистику.[0035] Traffic analyzer - a device on the network (probe) that receives test traffic and reads statistics.

[0036] Программный агент - это программа, которая вступает в отношение посредничества с пользователем или другой программой.[0036] A software agent is a program that enters into a mediation relationship with a user or another program.

[0037] Тестовый пакет - Ethernet-пакет, используемый в тестах. Включает в себя IFG (англ. «lnter Frame GAP», промежуток между кадрами длиною 12 байтов), преамбулу и SFD (англ. «Start of frame delimiter)), начало Ethernet кадра) и тестовый кадр.[0037] Test packet - Ethernet packet used in tests. It includes IFG (English “lnter Frame GAP”, the interval between frames 12 bytes long), preamble and SFD (English “Start of frame delimiter)), the beginning of the Ethernet frame) and a test frame.

[0038] Тестовый кадр - Ethernet-кадр, используемый в тестах. Включает в себя L2 заголовок, L2 данные и FCS (англ. «Frame Check Sequence)), четырехбайтное значение CRC, используемое для выявления ошибок передачи).[0038] Test frame — An Ethernet frame used in tests. Includes L2 header, L2 data and FCS (Frame Check Sequence), a four-byte CRC value used to detect transmission errors).

[0039] Данные тестового кадра - заполнение L2 данных: имеет заголовки L3 (IPv4) и L4 (UDP), датаграмма L4 - нули. Параметры заголовков (L2-L4) как и наличие/отсутствие VLAN меток - часть настроек теста.[0039] Test frame data — L2 data padding: has L3 (IPv4) and L4 (UDP) headers, L4 datagram — zeros. Header parameters (L2-L4) as well as the presence / absence of VLAN tags are part of the test settings.

[0040] Размер тестового пакета (L1) - размер тестового пакета в байтах с учетом 12, байт IFG, 7 байт преамбулы и 1 байт начала Ethernet кадра. То есть минимальный тестовый пакет (L1) имеет размер 84, айта.[0040] Test packet size (L1) is the size of the test packet in bytes given 12, IFG bytes, 7 bytes of the preamble, and 1 byte of the beginning of the Ethernet frame. That is, the minimum test package (L1) has a size of 84, ayt.

[0041] Размер тестового кадра (L2) - размер тестового кадра в Байтах без учета 12 байт IFG, 7 байт преамбулы и 1 байт начала Ethernet кадра. То есть минимальный тестовый кадр (L2) имеет размер 64 байта.[0041] Test frame size (L2) is the size of the test frame in Bytes, excluding 12 IFG bytes, 7 preamble bytes, and 1 byte of the beginning of the Ethernet frame. That is, the minimum test frame (L2) is 64 bytes in size.

[0042] Интервал - временной интервал определенной длительности, внутри которого на анализаторе считается статистика (потери, задержки, джиттер и т.д.)[0042] Interval - a time interval of a certain duration, within which statistics are analyzed on the analyzer (losses, delays, jitter, etc.)

[0043] INTERVAL_TIME - длительность интервала. Задается пользователем от 1 с до 60 с (с шагом в 1 с). По умолчанию принимает значение 10 с.[0043] INTERVAL_TIME is the duration of the interval. User selectable from 1 s to 60 s (in 1 s increments). The default value is 10 s.

[0044] WAIT_TIME - время, в течение которого ожидается приход кадров из предыдущего интервала. Задается пользователем от 0.1 с до INTERVAL_TIME (с шагом в 0.1 с). По умолчанию 2 с. [0044] WAIT_TIME is the time during which the arrival of frames from the previous interval is expected. User selectable from 0.1 s to INTERVAL_TIME (in 0.1 s increments). The default is 2 s.

[0045] FTD - максимально допустимая задержка распространения кадров.[0045] FTD is the maximum allowable propagation delay of frames.

[0046] FTD min - минимальный FTD за заданный промежуток времени (за интервал[0046] FTD min - the minimum FTD for a given period of time (per interval

или за всю тестовую сессию).or for the entire test session).

[0047] FTD max - максимальный FTD за заданный промежуток времени (за интервал или за всю тестовую сессию)[0047] FTD max - maximum FTD for a given period of time (for an interval or for the entire test session)

[0048] FTD avg - средний FTD за заданный промежуток времени (за интервал или за всю тестовую сессию). Рассчитывается как суммарный FTD / количество принятых кадров за заданный промежуток времени.[0048] FTD avg is the average FTD for a given period of time (for an interval or for the entire test session). It is calculated as the total FTD / number of frames received for a given period of time.

[0049] Джиттер пакетов (англ. «Packet Jitter») - колебание задержки при передаче пакетов. Джиттер пакетов имеет большую важность, поскольку именно он определяет максимальную задержку при приеме пакетов в конечном пункте назначения. Принимающая сторона, в зависимости от типа используемого приложения, может попытаться компенсировать джиттер пакетов за счет организации приемного буфера для хранения принятых пакетов на время, меньшее или равное верхней границе дрожания.[0049] Packet Jitter (Packet Jitter) - delay variation in the transmission of packets. Packet jitter is of great importance, since it is he who determines the maximum delay when receiving packets at the final destination. The receiving side, depending on the type of application used, may try to compensate for packet jitter by arranging a receive buffer to store received packets for a time less than or equal to the upper jitter boundary.

[0050] Packet Jitter min - минимальный Packet Jitter за заданный промежуток времени (за интервал или за всю тестовую сессию).[0050] Packet Jitter min - the minimum Packet Jitter for a given period of time (for an interval or for the entire test session).

[0051] Packet Jitter max - максимальный Packet Jitter за заданный промежуток времени (за интервал или за всю тестовую сессию).[0051] Packet Jitter max - maximum Packet Jitter for a given period of time (for an interval or for the entire test session).

[0052] Packet Jitter avg - средний Packet Jitter за заданный промежуток времени (за интервал или за всю тестовую сессию). Рассчитывается как суммарный Packet Jitter / (количество пакетов пришедших по порядку (IOР - In Order Packets)) за заданный промежуток времени.[0052] Packet Jitter avg - The average Packet Jitter for a given period of time (for an interval or for the entire test session). It is calculated as the total Packet Jitter / (the number of packets received in order (IOP - In Order Packets)) for a given period of time.

[0053] IOР (англ. «ln Order Packets») - пакет считается пришедшим по порядку, если его номер (идентификатор) больше, чем идентификатор предыдущего пришедшего пакета.[0053] IOR (eng. “Ln Order Packets”) - a packet is considered to have arrived in order if its number (identifier) is greater than the identifier of the previous packet arrived.

[0054] OOP (англ. «Out Of Order Packets») - пакет считается пришедшим не по порядку, если его номер (идентификатор) меньше, чем идентификатор предыдущего пришедшего пакета.[0054] OOP (Out of Order Packets) - a packet is considered to have arrived out of order if its number (identifier) is less than the identifier of the previous packet arrived.

[0055] Все пакеты, кроме первого в тестовой сессии, относятся к одной из групп (IOР или OOP).[0055] All packets except the first in the test session belong to one of the groups (IOP or OOP).

[0056] Тестовая сессия - один запуск теста. Начинается с запуска генератора кадров на генераторе нагрузочного теста, заканчивается остановкой работы анализатора нагрузочного теста по одной из следующих причин:[0056] Test session - one test run. It starts with the start of the frame generator on the load test generator, and ends with the stop of the load test analyzer for one of the following reasons:

[0057] на анализаторе нагрузочного теста прошло заданное время теста+[0057] the set test time passed on the load test analyzer +

WAIT_TIME.WAIT_TIME

[0058] получена команда остановки теста.[0058] a test stop command has been received.

[0059] Jitter,FTD: ->Min (sec): inf- обозначение состояния, при котором прибор не получает данные по задержке или получает отрицательную задержку (при проблемах с синхронизацией времени).[0059] Jitter, FTD: -> Min (sec): inf- designation of the state in which the device does not receive delay data or receives a negative delay (in case of problems with time synchronization).

[0060] Архитектура системы 100 измерения статистики трафика сети по п-секундным интервалам, т.е. примерный вариант ее реализации, показана на Фиг. 1.[0060] The architecture of the system 100 for measuring network traffic statistics at n-second intervals, i.e. an exemplary implementation thereof is shown in FIG. one.

[0061] Данное техническое решение может быть реализовано посредством способа измерения статистики трафика сети (по сути способ может представлять собой тест), который разбивается по времени на участки - интервалы. В некоторых вариантах реализации изобретения интервалы могут быть равными между собой. В некоторых вариантах реализации тест ограничен 1 часом.[0061] This technical solution can be implemented by a method for measuring network traffic statistics (in fact, the method can be a test), which is divided into sections into time intervals. In some embodiments, the intervals may be equal to each other. In some embodiments, the test is limited to 1 hour.

[0062] Для каждого интервала времени собирается следующая статистика.[0062] For each time interval, the following statistics are collected.

[0063] На генераторе 110 трафика в качестве статистики может собираться число переданных кадров, число переданных байт, число переданных байт (L2), скорость генерации (L2-L4) (которая определяется как число бит за интервал / длительность интервала) и так далее, не ограничиваясь. На анализаторе 120 в качестве статистики может собираться число принятых кадров, число принятых байт (L2), FTD (англ. «Frame Transfer Delay») - задержка кадров (min/max/avg), Packet Jitter по RFC 3550 - джиттер пакетов (min/max/avg), количество кадров, у которых в ходе передачи поменялся ToS (параметр TOS cnt), число пакетов вне очереди (OOP -Out Of Order Packet), число кадров с ошибками (кадром с ошибкой считается кадр с неправильной FCS, но его удалось опознать по загловкам L2-L4), число потерянных кадров, скорость (L2-L4)(определенная как число бит за интервал / длительность интервала) и так далее, не ограничиваясь.[0063] At the traffic generator 110, the statistics may collect the number of transmitted frames, the number of transmitted bytes, the number of transmitted bytes (L2), the generation rate (L2-L4) (which is defined as the number of bits per interval / duration of an interval) and so on, not limited to. On the analyzer 120, the statistics can collect the number of received frames, the number of received bytes (L2), FTD (English “Frame Transfer Delay”) - frame delay (min / max / avg), Packet Jitter according to RFC 3550 - packet jitter (min / max / avg), the number of frames that changed ToS during the transfer (TOS cnt parameter), the number of out-of-order packets (OOP -Out Of Order Packet), the number of frames with errors (a frame with an incorrect FCS is considered to be a frame with an error, but it was identified by the headers L2-L4), the number of lost frames, speed (L2-L4) (defined as the number of bits per interval / duration of the interval), and so on, not ogre screaming.

[0064] Помимо данной статистики в некоторых вариантах реализации доступна и другая, дополнительная информация о каждом интервале на генераторе 110 и на анализаторе 120.[0064] In addition to these statistics, in some implementations, other, additional information about each interval is available on the generator 110 and on the analyzer 120.

[0065] Например, на генераторе 110 может выводиться дополнительно следующая интервальная статистика: статус генератора 110 (например, принимает значения true или false в зависимости от того генератор 110 запущен или генератор 110 выключен), время тестирования, время начала генерации (начала интервала), время окончания генерации, номер текущего интервала генератора 110 (например, начинается с 1), число переданных кадров за последний завершенный интервал, число переданных байт (L2) за последний завершенный интервал, средняя скорость генерации за последний интервал, время фактических измерений, время начала измерений, время окончания измерений.[0065] For example, the following interval statistics can be additionally displayed on the generator 110: status of the generator 110 (for example, takes the values true or false depending on whether the generator 110 is started or the generator 110 is turned off), the test time, the start time of the generation (the beginning of the interval), generation end time, generator current interval number 110 (for example, starts at 1), number of transmitted frames for the last completed interval, number of transmitted bytes (L2) for the last completed interval, average generation speed for the last and interval, time of actual measurements, time of the beginning of measurements, time of the end of measurements.

[0066] Размер интервала задается настройками теста. В конкретном варианте реализации интервал по умолчанию равен 10 с. В рамках одного запуска теста длительность интервала может быть постоянна и настраивается до начала работы теста. В некоторых вариантах реализации при проведении 2-х однонаправленных тестов временные границы интервалов разных направлений никак между собой не синхронизированы.[0066] The interval size is set by the test settings. In a particular implementation, the default interval is 10 s. Within one test run, the duration of the interval can be constant and can be adjusted before the test starts. In some implementations, when conducting 2 unidirectional tests, the time boundaries of intervals of different directions are not synchronized with each other.

[0067] Во время одной тестовой сессии также собирается интегральная статистика. Интегральная статистика представляет собой статистику анализатора 120 за одну тестовую сессию, не привязанную к интервалам. Данная статистика может определяться отдельно и может не совпадать с суммой статистик по интервалам. Например, в случае если кадр интервала N пришел после WAIT TIME секунд после конца интервала N - он не попадет в интервальную статистику, но попадет в интегральную.[0067] Integral statistics are also collected during one test session. Integral statistics are analyzer statistics 120 for one test session that is not tied to intervals. These statistics may be determined separately and may not coincide with the sum of statistics at intervals. For example, if the frame of interval N came after WAIT TIME seconds after the end of interval N, it will not fall into the interval statistics, but will fall into the integral.

[0068] Интегральная статистика на генераторе 110 включает число переданных кадров (определяется отдельно от интервальной статистики, но всегда должно быть равно сумме переданных кадров за все интервалы), Число переданных байт (L2) (определяется отдельно от интервальной статистики, но всегда должно быть равно сумме переданных кадров за все интервалы), скорость генерации (L2-L4) (представляет собой число бит за последний интервал / длительность интервала).[0068] The integrated statistics on generator 110 includes the number of transmitted frames (determined separately from interval statistics, but should always be equal to the sum of transmitted frames for all intervals), The number of transmitted bytes (L2) (determined separately from interval statistics, but should always be equal the sum of the transmitted frames for all intervals), the generation rate (L2-L4) (represents the number of bits for the last interval / duration of the interval).

[0069] Интегральная статистика на анализаторе 120 включает число принятых кадров всего (определяется отдельно от интервальной статистики, может отличаться от суммы за все интервалы), число принятых байт (L2) всего (определяется отдельно от интервальной статистики, может отличаться от суммы за все интервалы), задержку кадров (FTD - англ. «Frame Transfer Delay») (представляет собой задержку кадров (min/max/avg), считается отдельно от интервальной статистики, может быть не равно минимальному, максимальному, среднему значению по всем интервалам. Например из-за ситуации с приходом кадра после WAIT TIME секунд после завершения интервала), Packet Jitter по RFC 3550 (пакетный джиттер (min/max/avg), который считается отдельно от интервальной статистики, может быть не равно минимальному, максимальному, среднему значению по всем интервалам, например из-за ситуации с приходом пакета после WAIT TIME секунд после завершения интервала), количество кадров, у которых в ходе передачи поменялся ToS (считается отдельно от интервальной статистики, может отличаться от суммы за все интервалы), число пакетов вне очереди (OOP) (считается отдельно от интервальной статистики, может отличаться от суммы за все интервалы), число кадров с ошибками (кадры с CRC-ошибкой, которые подошли по фильтрам. Считается отдельно от интервальной статистики, может отличаться от суммы за все интервалы), число потерянных кадров (считается как сумма потерянных кадров за все интервалы), скорость (L2-L4) (число бит всего / текущее время теста).[0069] The integrated statistics on analyzer 120 include the number of received frames in total (determined separately from interval statistics, may differ from the sum for all intervals), the number of received bytes (L2) in total (determined separately from interval statistics, may differ from the sum for all intervals ), frame delay (FTD - “Frame Transfer Delay”) (represents the frame delay (min / max / avg), considered separately from interval statistics, it may not be equal to the minimum, maximum, average value for all intervals. For example, from due to the situation and with the arrival of the frame after WAIT TIME seconds after the end of the interval), Packet Jitter according to RFC 3550 (packet jitter (min / max / avg), which is considered separately from the interval statistics, may not be equal to the minimum, maximum, average value for all intervals, for example, due to the situation with the packet arriving after WAIT TIME seconds after the end of the interval), the number of frames that changed ToS during transmission (counted separately from interval statistics, may differ from the sum for all intervals), the number of out-of-order packets (OOP) (considered separately from and interval statistics, may differ from the sum for all intervals), the number of frames with errors (frames with a CRC error that match the filters. It is considered separately from interval statistics, it can differ from the sum for all intervals), the number of lost frames (counted as the sum of lost frames for all intervals), speed (L2-L4) (number of bits in total / current test time).

[0070] Номер интервала, к которому будет принадлежать кадр определяет генератор 110 трафика в процессе отправки кадра. Генератор 110 вставляет индексы интервала в отправляемые кадры (в конец кадра, подробнее структура тестового кадра описана ниже), чтобы анализатор 120 мог правильно распределить кадры по интервалам.[0070] The number of the interval to which the frame will belong is determined by the traffic generator 110 in the process of sending the frame. The generator 110 inserts the interval indices into the sent frames (at the end of the frame, the structure of the test frame is described in more detail below) so that the analyzer 120 can correctly distribute the frames in the intervals.

[0071] Если на анализаторе сейчас идет интервал N, и пришел кадр из интервала N, то он учитывается в статистике для интервала N.[0071] If the analyzer now goes to the interval N, and the frame came from the interval N, then it is taken into account in the statistics for the interval N.

[0072] Если на анализаторе 120 в данный момент времени идет интервал N (и прошло меньше времени, чем WAIT_TIME от начала интервала), и пришел кадр из интервала N-1, то он учитывается в статистике для интервала N-1.[0072] If the analyzer 120 is currently at interval N (and less time has passed than WAIT_TIME from the beginning of the interval), and a frame has arrived from interval N-1, then it is taken into account in statistics for interval N-1.

[0073] Если на анализаторе 120 в данный момент времени идет интервал N (и до начала следующего интервала меньше, чем WAIT_TIME), и пришел кадр из интервала N+1, то он учитывается в статистике для интервала N+1.[0073] If the analyzer 120 is currently at interval N (and before the start of the next interval is shorter than WAIT_TIME), and a frame has come from interval N + 1, then it is taken into account in statistics for the interval N + 1.

[0074] Во всех других случаях кадр не учитывается в интервальной статистике, но учитывается в интегральной.[0074] In all other cases, the frame is not taken into account in the interval statistics, but is taken into account in the integral.

[0075] Данное техническое решение может осуществляться следующим образом.[0075] This technical solution can be implemented as follows.

[0076] Система 100 обращается к программному агенту 130, расположенному на генераторе 110, настраивает и запускает на нем способ измерения статистики трафика сети по n-секундным интервалам (тест). Затем программный агент 130, расположенный на генераторе 110, перед тестом настраивает программный агент 140, расположенный на анализаторе 120, после чего настраивает сам генератор 110 (скорости генерации трафика, длительности теста, длина пакета и т.д.). Анализатору 120 направляется информация о настройках теста (скорости генерации трафика, длительности теста, длина пакета и т.д.).[0076] The system 100 accesses the software agent 130 located on the generator 110, configures and runs on it a method of measuring network traffic statistics at n-second intervals (test). Then, the software agent 130 located on the generator 110, before the test sets up the software agent 140 located on the analyzer 120, and then sets up the generator 110 itself (traffic generation rates, test duration, packet length, etc.). Analyzer 120 is sent information about the test settings (traffic generation rate, test duration, packet length, etc.).

[0077] Затем на основании этой информации анализатор 120 рассчитывает, сколько пакетов будет отправлено генератором 110 и когда он закончит процесс генерации.[0077] Then, based on this information, the analyzer 120 calculates how many packets will be sent by the generator 110 and when it finishes the generation process.

[0078] Далее программный агент 130 запускает генератор 110, а программный агент 140 запускает анализатор 120. Для правильного формирования интервалов на приеме временем начала теста считается время приема первого пакета. Если первый пакет не дошел, а дошел пакет с порядковым номером N (пакеты индексируются с нуля), то из времени приема пакета вычитается N * период генерации секунд.[0078] Next, the software agent 130 starts the generator 110, and the software agent 140 starts the analyzer 120. For the correct formation of intervals at the reception, the start time of the test is considered the time of reception of the first packet. If the first packet did not reach, but the packet with serial number N (packets are indexed from zero), then N * the generation period of seconds is subtracted from the packet reception time.

[0079] Например, в конкретном примере реализации анализатор 120 и генератор 110 были запущены со следующими настройками.[0079] For example, in a specific implementation example, analyzer 120 and generator 110 were started with the following settings.

[0080] Скорость (L1) составляет 1000 Мбит/с (100% нагрузка), размер пакета (L1) равен 84 Байта (минимальный возможный кадр 64 Байт + 12 Байт Inter Frame GAP + 7 Байт Preamble + 1 Байт Start of frame delimiter), длительность интервала составляет 10 c.[0080] The speed (L1) is 1000 Mbps (100% load), the packet size (L1) is 84 Bytes (minimum possible frame 64 Bytes + 12 Bytes Inter Frame GAP + 7 Bytes Preamble + 1 Byte Start of frame delimiter) , the duration of the interval is 10 s.

[0081] Первые 10 пакетов были потеряны в сети и на анализатор 120 после старта теста первым пришел пакет с индексом 10. Значение периода генерации зависит от размера пакета и скорости генерации и рассчитывается как:[0081] The first 10 packets were lost on the network and the analyzer 120 after starting the test was the first to receive a packet with index 10. The value of the generation period depends on the size of the packet and the generation rate and is calculated as:

[0082] Период генерации = (1/Число пакетов за 1 секунду);[0082] Generation period = (1 / Number of packets in 1 second);

[0083] Число пакетов за 1 секунду = Скорость L1 / (Размер пакета L1 в битах).[0083] Number of packets per 1 second = L1 speed / (L1 packet size in bits).

[0084] Для данного конкретного примера реализации получают следующие[0084] For this specific implementation example, the following

значения:values:

[0085] Число пакетов за 1 секунду = Скорость L1 / (Размер пакета L1 в битах)=1е9 / (84 * 8) = 1488095.238 пакетов в секунду.[0085] Number of packets per 1 second = L1 speed / (L1 packet size in bits) = 1е9 / (84 * 8) = 1488095.238 packets per second.

[0086] Период генерации = (1/Число пакетов за 1 секунду)=6.72е-7 с.[0086] Generation period = (1 / Number of packets per 1 second) = 6.72e-7 s.

[0087] После прихода первого пакета в тесте анализатор 120 должен выставить таймер, представляющий собой время завершение первого интервала и сохранить время начала теста.[0087] After the arrival of the first packet in the test, analyzer 120 should set a timer representing the completion time of the first interval and save the start time of the test.

[0088] Если бы первым пришел пакет #0:[0088] If packet # 0 came first:

[0089] Время начала теста = текущее время - 0 * (период генерации пакетов) = текущее время.[0089] Test start time = current time - 0 * (packet generation period) = current time.

[0090] Время завершения первого интервала = INTERVAL_TIME - 0 * (период генерации пакетов) = INTERVAL_TIME = 10 с. [0090] Completion time of the first interval = INTERVAL_TIME - 0 * (packet generation period) = INTERVAL_TIME = 10 s.

[0091] Для случая, когда первые 10 пакетов были потеряны:[0091] For the case when the first 10 packets were lost:

[0092] Время начала теста = текущее время - 10 * (период генерации пакетов) = текущее время - 6.72е-6 с. [0092] Test start time = current time - 10 * (packet generation period) = current time - 6.72e-6 s.

[0093] Время завершения первого интервала=INTERVAL_TIME - 10 * (период генерации пакетов)=INTERVAL_TIME - 6.72е-6=9.99999328 с.[0093] The completion time of the first interval = INTERVAL_TIME - 10 * (packet generation period) = INTERVAL_TIME - 6.72e-6 = 9.99999328 s.

[0094] При условии, что задержка в сети не слишком меняется от пакета к пакету, это дает достаточную точность для времени начала.[0094] Provided that the network delay does not change too much from packet to packet, this gives sufficient accuracy for the start time.

[0095] Тест завершается после завершения всех интервалов по времени или при приеме от системы 100 команды на завершение теста.[0095] The test is completed after completion of all time intervals or upon receipt of a command to complete the test from system 100.

[0096] Варианты, при каждом из которых может происходить завершение теста:[0096] Options for each of which may complete the test:

• на анализатор 120 прошло заданное время теста+WAIT_TIME;• the analyzer 120 has passed the specified test time + WAIT_TIME;

• выполнена команда остановки теста (при наличии канала).• a command to stop the test was performed (if there is a channel).

[0097] Для валидного измерения задержки кадров (FTD) в одностороннем тесте системные часы генератора 110 и анализатора 120 могут быть синхронизированы по протоколу NTP или РТР.[0097] For a valid measurement of frame delay (FTD) in a one-way test, the system clocks of the generator 110 and the analyzer 120 can be synchronized using the NTP or PTP protocol.

[0098] При условии тестирования на полной скорости канала и отсутствии резервного канала управления анализатор 120 считается недоступным. При таких условиях тест невозможно отключить средствами системы 100.[0098] With testing at full channel speed and no backup control channel, analyzer 120 is considered unavailable. Under such conditions, the test cannot be disabled using the system 100.

[0099] Установкой соединения и запуском теста управляют программные агенты 130 и 140, поэтому в них не закладываются команды удаленного управления тестами.[0099] Software agents 130 and 140 control the establishment of the connection and the launch of the test, so remote test control commands are not included in them.

[00100] Основная логика работы способа измерения статистики трафика сети по n-секундным интервалам (который может быть представлен как тест) может быть реализована аппаратно с использованием FPGA. FPGA (англ. «Field-Programmable Gate Аrrау») представляет собой программируемую логическую интегральную схему (ПЛИС), конфигурация которой может быть загружена после включения питания. Также FPGA иногда называется программируемой пользователем вентильной матрицы.[00100] The basic logic of the method for measuring network traffic statistics at n-second intervals (which can be represented as a test) can be implemented in hardware using FPGA. FPGA (Field-Programmable Gate Arrow) is a programmable logic integrated circuit (FPGA), the configuration of which can be loaded after power is turned on. Also FPGA is sometimes called a user-programmable gate array.

[00101] Таким образом при осуществлении способа достигается:[00101] Thus, in the implementation of the method is achieved:

[00102] повышение точности длительности интервалов (с точностью до +- 25 ррm от длительности интервала, то есть +- 0.00025 с для интервала 10 с);[00102] increasing the accuracy of the duration of the intervals (accurate to + - 25 ppm of the duration of the interval, that is, + - 0.00025 s for the interval of 10 s);

[00103] повышение предсказуемости числа пакетов, отправляемых в интервал (с точностью +-1 пакет, так как пакет на границе интервалов может быть причислен к следующему или предыдущему интервалу).[00103] increasing the predictability of the number of packets sent per slot (with an accuracy of + -1 packet, since the packet at the boundary of the intervals can be assigned to the next or previous interval).

[00104] Генератор 110 может быть реализован следующим образом, как показано ниже.[00104] The generator 110 may be implemented as follows, as shown below.

[00105] Программный агент 130, расположенный на генераторе 110, взаимодействует с сервисом, который может работать под управлением ОС Linux, для управления генератора 110 трафика, запущенным на измерительном устройстве с функциями клиентского маршрутизатора и функцией мониторинга пользовательского трафика. В некоторых вариантах реализации таким устройством может быть программно-аппаратный зонд wiProbe™, который является измерительным устройством с поддержкой функции NFV/SDN и H-QoS.[00105] The software agent 130, located on the generator 110, interacts with a service that can run Linux, to control the traffic generator 110, running on the measuring device with the functions of the client router and the function of monitoring user traffic. In some embodiments, such a device may be a wiProbe ™ hardware and software probe, which is a measuring device that supports NFV / SDN and H-QoS.

[00106] Пользователь технического решения может направлять в систему 100 следующие команды:[00106] The user of the technical solution may send the following commands to system 100:

• запуск генератора;• generator start;

• остановка генератора;• generator stop;

• получение текущего статуса и настроек генератора;• obtaining the current status and generator settings;

• получение интервальной статистики генератора;• obtaining interval statistics of the generator;

• получение интегральной статистики генератора.• obtaining integral generator statistics.

[00107] Непосредственно за генерацию трафика отвечает генератор 110 трафика, расположенный в FPGA. После управляющей команды от пользователя, направленной из системы 100, на старт генерации генератор 110 в FPGA начинает генерировать пакеты с настроенным заголовком с постоянной скоростью. Длительность теста для FPGA всегда задается в пакетах, что гарантирует точное количество переданных пакетов на передаче.[00107] Directly responsible for generating traffic is the traffic generator 110 located in the FPGA. After the control command from the user directed from the system 100 to the start of generation, the generator 110 in the FPGA starts to generate packets with the configured header at a constant speed. The duration of the test for FPGA is always specified in packets, which guarantees the exact number of transmitted packets on transmission.

[00108] Длительность теста в байтах и времени переводится в пакеты по следующим формулам:[00108] The duration of the test in bytes and time is translated into packets according to the following formulas:

[00109] Длительность теста в пакетах = floor ((скорость генерации L1 (бит/с) / размер пакета L1 (бит)) * длительность теста в (с));[00109] Duration of the test in packets = floor ((generation rate L1 (bits / s) / packet size L1 (bits)) * test duration in (s));

[00110] Длительность теста в пакетах = ceil (длительность теста (байт) / размер пакета L1 (байт)),[00110] Test duration in packets = ceil (test duration (bytes) / packet size L1 (bytes)),

[00111] где floor-округление вниз до целого, ceil - округление вверх до целого.[00111] where floor is rounding down to the integer, ceil is rounding up to the whole.

[00112] В некоторых вариантах реализации настройки теста не могут быть изменены в процессе выполнения теста.[00112] In some embodiments, test settings cannot be changed during the test.

[00113] Принадлежность переданного пакета к конкретному интервалу определяется временем начала генерации пакета. Индекс интервала вставляется в тело пакета.[00113] The belonging of the transmitted packet to a specific interval is determined by the start time of the generation of the packet. The interval index is inserted into the package body.

Для того, чтобы рассчитывать все необходимые метрики теста, в тестовый пакет помещается следующая информация (в совокупности 10 байт информации):In order to calculate all the necessary test metrics, the following information is placed in the test package (a total of 10 bytes of information):

[00114] Flow ID (4 бита) (в некоторых вариантах реализации может быть 1 и более потоков).[00114] Flow ID (4 bits) (in some embodiments, there may be 1 or more streams).

[00115] Индекс интервала (4 бита) - считаем, что пакеты не могут задержаться на 16 интервалов.[00115] Interval index (4 bits) - we believe that packets cannot be delayed for 16 intervals.

[00116] Порядковый номер пакета (4 Байта) - начиная с 0. В данном параметре подразумевается, что сеть не может потерять подряд больше чем 232 пакетов.[00116] Packet serial number (4 Bytes) - starting at 0. This parameter assumes that the network cannot lose more than 2,232 packets in a row.

[00117] Время отправки кадра (5 Байт) - временная метка, вставляемая при отправке.[00117] Frame send time (5 Bytes) is the timestamp inserted when sending.

[00118] Таким образом, в данном техническом решении возможна реализация пакетов размером 64 байта даже с двумя VLAN-тегами. Временная метка отправки кадра соответствует времени выхода первого байта кадра из генератора 110 в канал связи. По терминологии Y.1563 это время соответствует ingress event FRE1.[00118] Thus, in this technical solution, it is possible to implement packets of size 64 bytes even with two VLAN tags. The timestamp for sending a frame corresponds to the time the first byte of the frame leaves the generator 110 in the communication channel. In Y.1563 terminology, this time corresponds to the ingress event FRE1.

[00119] В некоторых вариантах реализации генератор 110 трафика отправляет кадры фиксированной длины.[00119] In some embodiments, the traffic generator 110 sends frames of a fixed length.

[00120] Диапазоны размеров кадров (L2) (с учетом CRC-суммы) могут иметь следующие размеры:[00120] Frame size ranges (L2) (including CRC sums) may have the following sizes:

• минимальный размер кадра (L2) - 64 байта;• minimum frame size (L2) - 64 bytes;

• максимальный размер кадра (L2) - 9600 байт.• The maximum frame size (L2) is 9600 bytes.

[00121] Модуль 150 статистики генератора 110 предоставляет следующую статистику по последнему завершенному интервалу и по текущей тестовой сессии:[00121] The statistics module 150 of the generator 110 provides the following statistics for the last completed interval and for the current test session:

• Число переданных кадров;• The number of frames transmitted;

• Число переданных байт (L2);• The number of bytes transmitted (L2);

• Скорость генерации (L2-L4);• Generation rate (L2-L4);

• Номере последнего завершенного интервала;• Number of the last completed interval;

• Номере активного интервала;• Active interval number;

• Статус теста - (true | false) (тестовая сессия в процессе | завершена).• Test status - (true | false) (test session in process | completed).

[00122] Часть данной статистики собирается в FPGA:[00122] Part of this statistic is collected in the FPGA:

• Число переданных кадров (за последний интервал и всего);• The number of frames transmitted (for the last interval and total);

• Число переданных байт L2 (за последний интервал и всего);• The number of transmitted bytes L2 (for the last interval and total);

• Номере текущего интервала;• Current interval number;

• Статус генератора пакетов (отправляет пакеты | не отправляет пакеты).• Status of the packet generator (sends packets | does not send packets).

[00123] Остальная статистика вычисляется модулем 150 статистики генератора 110 трафика.[00123] The remaining statistics are calculated by the statistics module 150 of the traffic generator 110.

[00124] Модуль 150 статистики генератора 110 трафика после старта генерации периодически (не реже, чем раз в INTERVAL_TIME) опрашивает FPGA, и считывает значение номера текущего интервала и общую статистику за все время теста.[00124] The statistics module 150 of the traffic generator 110 after the start of generation periodically (at least once in INTERVAL_TIME) polls the FPGA and reads the value of the number of the current interval and general statistics for the entire duration of the test.

[00125] Общая статистика (интегральная) обновляется каждый раз, при такой проверке.[00125] The overall statistics (integral) is updated every time with such a check.

[00126] Статистика по интервалу считывается, если:[00126] Interval statistics are read if:

• Номер текущего и последнего завершенного интервала не совпадают;• The number of the current and last completed interval do not match;

• Номер текущего интервала не равен значению, прочитанному при предыдущем вычитывании.• The number of the current interval is not equal to the value read during the previous subtraction.

[00127] В этом случае количество кадров/Байт для завершенного интервала и его номер сохраняются в память, а номер активного интервала заменяется на новый.[00127] In this case, the number of frames / Bytes for the completed interval and its number are stored in memory, and the number of the active interval is replaced with a new one.

[00128] Так как размерность счетчиков в FPGA ограничена, после считывания числа переданных байт и кадров счетчики в FPGA очищаются, и задачей модуля 150 статистики является аккумуляция значений счетчиков после каждого вычитывания.[00128] Since the dimension of the counters in the FPGA is limited, after reading the number of bytes and frames transmitted, the counters in the FPGA are cleared, and the task of the statistics module 150 is to accumulate the count values after each read.

[00129] Непосредственно отправка пакетов генератором 110 может остановиться, например, в следующих случаях:[00129] Directly sending packets by the generator 110 may stop, for example, in the following cases:

[00130] было отправлено необходимое количество пакетов (FPGA завершает генерацию самостоятельно и уведомляет об этом изменяя значение статуса генератора 110);[00130] the necessary number of packets was sent (FPGA completes the generation on its own and notifies about this by changing the status value of the generator 110);

[00131] была получена команда об остановке теста от программного агента 130.[00131] a command was received to stop the test from the software agent 130.

[00132] В случае, если тест завершился штатно, и FPGA уведомила об этом модуль 150 статистики, и команда остановки генерации от модуля 150 статистики к FPGA не посылается, то статистика считывается еще раз.[00132] If the test completed normally and the FPGA notified the statistics module 150, and the generation stop command is not sent from the statistics module 150 to the FPGA, the statistics are read again.

[00133] После команды на остановку теста модуль 150 статистики сразу же дает команду на прекращение генерации в FPGA. После этого модуль 150 статистики считывает и обновляет статистику.[00133] After the command to stop the test, the statistics module 150 immediately gives the command to stop generation in the FPGA. After that, the statistics module 150 reads and updates statistics.

[00134] Результаты работы модуля 150 статистики доступны пользователю с помощью например следующих CLI команд:[00134] The results of the statistics module 150 are available to the user using, for example, the following CLI commands:

[00135] show wlt-tx results local profile (0 | 1) - выводит интервальную статистику;[00135] show wlt-tx results local profile (0 | 1) - displays interval statistics;

[00136] show wlt-tx results total profile (0 | 1) - выводит интегральную статистику.[00136] show wlt-tx results total profile (0 | 1) - displays integrated statistics.

[00137] Команда show wlt-tx results local profile (0 | 1) выводит информацию по интервальной статистике генератора 110:[00137] The show wlt-tx results local profile (0 | 1) command displays information on the interval statistics of generator 110:

• Status (Статус генератора) - (true | false) (генератор запущен | генератор выключен)• Status - (true | false) (generator running | generator off)

• Elapsed time (Время тестирования) - (Stop time - Start time)• Elapsed time (Test time) - (Stop time - Start time)

• Start time (Время начала генерации) - (Время начала интервала (Linux sys time))• Start time - (Interval start time (Linux sys time))

• Stop time (Время окончания генерации) - (Время конца интервала (Linux sys time))• Stop time - (End time interval (Linux sys time))

• Bucket - Номер текущего интервала генератора (начинается с 1)• Bucket - Number of the current interval of the generator (starts from 1)

• Packets - Число переданных кадров за последний завершенный интервал• Packets - The number of frames transmitted for the last completed interval

• Bytes - Число переданных байт (L2) за последний завершенный интервал• Bytes - The number of bytes transmitted (L2) for the last completed interval

• Rate (L2-L4) - Средняя скорость генерации за последний интервал• Rate (L2-L4) - Average generation rate for the last interval

• Elapsed meas time (Время фактических измерений) - ( = INTERVAL_TIME)• Elapsed meas time - (= INTERVAL_TIME)

• Start meas time (Время начала измерений) - (ТХ Start meas time total + ((Bucket -1) * INTERVAL_TIME))• Start meas time (- TX Start meas time total + ((Bucket -1) * INTERVAL_TIME))

• Stop meas time (Время окончания измерений) - (Start meas time + INTERVAL_TIME)• Stop meas time - (Start meas time + INTERVAL_TIME)

[00138] Команда show wlt-tx results total profile (0 | 1) выводит информацию по интегральной статистике генератора:[00138] The show wlt-tx results total profile (0 | 1) command displays information on the integrated statistics of the generator:

• Status (Статус генератора) - (true | false) (генератор запущен | генератор выключен)• Status - (true | false) (generator running | generator off)

• Elapsed time (Время тестирования) - (Stop time - Start time)• Elapsed time (Test time) - (Stop time - Start time)

• Start time (Время начала генерации) - (Время начала тестовой сессии (Linux sys time))• Start time - (Start time of the test session (Linux sys time))

• Stop time (Время окончания генерации) - (Время конца тестовой сессии (Linux sys time))• Stop time - (End time of the test session (Linux sys time))

• Bucket - Номер текущего интервала генератора (начинается с 1)• Bucket - Number of the current interval of the generator (starts from 1)

• Packets - Число переданных кадров за текущую тестовую сессию• Packets - The number of frames transmitted for the current test session

• Bytes - Число переданных байт L2 за текущую тестовую сессию• Bytes - The number of transmitted L2 bytes for the current test session

• Rate (L2-L4) - Средняя скорость генерации за текущую тестовую сессию• Rate (L2-L4) - Average generation rate for the current test session

• Elapsed meas time (Время фактических измерений) - (Bucket * INTERVAL_TIME)• Elapsed meas time - (Bucket * INTERVAL_TIME)

• Start meas time (Время начала измерений) - (Время отправки первого пакета из FPGA (FPGA time))• Start meas time - (Time to send the first packet from FPGA (FPGA time))

• Stop meas time (Время окончания измерений) - (Start meas time + Elapsed meas time)• Stop meas time - (Start meas time + Elapsed meas time)

[00139] Анализатор 120 может быть реализован следующим образом, как показано ниже.[00139] The analyzer 120 may be implemented as follows, as shown below.

[00140] Программный агент 140 взаимодействует с модулем 150 статистики, работающим под управлением ОС Linux, для управления анализатором трафика, запущенным на зонде wiProbe.[00140] The software agent 140 interacts with a statistics module 150 running on a Linux OS to control a traffic analyzer running on a wiProbe probe.

[00141] Пользователь технического решения может направлять в систему 100[00141] The user of the technical solution may direct to the system 100

следующие команды:following commands:

[00142] запуск анализатора;[00142] starting the analyzer;

[00143] остановка анализатора;[00143] stopping the analyzer;

[00144] текущий статус и настройки анализатора;[00144] the current status and settings of the analyzer;

[00145] интервальная статистика анализатора;[00145] interval analyzer statistics;

[00146] интегральная статистика анализатора.[00146] analyzer integrated statistics.

[00147] Основной процесс анализа тестового трафика происходит в FPGA. Модуль 150 статистики передает необходимые настройки в FPGA и запускает анализ трафика.[00147] The main test traffic analysis process takes place in the FPGA. The statistics module 150 transfers the necessary settings to the FPGA and starts traffic analysis.

[00148] В ходе настройки в анализатор 120 трафика в FPGA записывается информация о: длительности интервала, времени, в течение которого ожидается приход кадров из предыдущего интервала, периоде отправки пакетов на генераторе 110, длительности теста (выраженная в количестве интервалов), ожидаемого ToS пакетов, Pv4 destination, UDP destination.[00148] During the configuration, the traffic analyzer 120 records in FPGA information on: the duration of the interval, the time during which the arrival of frames from the previous interval, the period of sending packets to the generator 110, the duration of the test (expressed in the number of intervals), expected ToS packets , Pv4 destination, UDP destination.

[00149] Период отправки пакетов вычисляется из заданной скорости генерации и размера пакета по формуле:[00149] The packet sending period is calculated from a given generation rate and packet size by the formula:

[00150] Период генерации = (1/Число пакетов за 1 секунду);[00150] Generation period = (1 / Number of packets in 1 second);

[00151] Число пакетов за 1 секунду = Скорость L1 / (Размер пакета L1 в битах).[00151] Number of packets per 1 second = L1 speed / (L1 packet size in bits).

[00152] FPGA считает тестовыми пакетами и учитывает их в интервальной статистике, те пакеты, которые попадают одновременно под все следующие фильтры:[00152] FPGA considers the test packets and takes them into account in the interval statistics, those packets that fall simultaneously under all of the following filters:

• IP-адрес получателя равен заданному (Pv4 destination)• destination IP address is set to (Pv4 destination)

• UDP-порт получателя равен заданному (UDP destination)• destination UDP port is equal to the specified (UDP destination)

• Размер пакета попадает в диапазон от 64 до 9600 байт• The packet size falls in the range from 64 to 9600 bytes

• Задержка пакета меньше 10 с• Packet delay less than 10 s

• Пакет принадлежит:• Package belongs to:

Figure 00000001
Текущему окну
Figure 00000001
Current window

Figure 00000001
Предыдущему окну, но со смены окна прошло времени меньше, чем WAIT_TIME
Figure 00000001
Previous window, but less than WAIT_TIME elapsed since window change

Figure 00000001
Следующему окну, но до смены окна осталось времени меньше, чем WAIT_TIME
Figure 00000001
To the next window, but before the window changes, there is less time than WAIT_TIME

[00153] FPGA считает тестовыми пакетами и учитывает их в интегральной статистике, те которые попадают одновременно под все следующие фильтры:[00153] FPGA considers test packets and takes them into account in integrated statistics, those that fall simultaneously under all of the following filters:

• IP-адрес получателя равен заданному (Pv4 destination)• destination IP address is set to (Pv4 destination)

• UDP-порт получателя равен заданному (UDP destination)• destination UDP port is equal to the specified (UDP destination)

• Размер пакета попадает в диапазон от 64 до 9600 байт• The packet size falls in the range from 64 to 9600 bytes

• Задержка пакета меньше 10 с• Packet delay less than 10 s

[00154] Дополнительные счетчики учитывают, сколько из пришедших пакетов были и за каждый интервал и интегрально:[00154] Additional counters take into account how many of the incoming packets were for each interval and integrally:

• С CRC-ошибками• With CRC errors

• С полем ToS не равным заданному• With a ToS field not equal to the specified

[00155] Временная метка приема пакета защелкивается во время приема последнего байта тестового кадра. По терминологии Y.1563 это время соответствует egress event FRE2.[00155] The packet reception timestamp is latched while receiving the last byte of the test frame. In Y.1563 terminology, this time corresponds to the egress event FRE2.

[00156] После того, как модуль 150 статистики был запущен, приемник в FPGA начинает ожидание первого дошедшего пакета из тестового потока. При приеме этого пакета предсказывается длительность первого интервала на приеме по формуле:[00156] After the statistics module 150 has been started, the receiver in the FPGA starts waiting for the first packet to arrive from the test stream. Upon receipt of this packet, the duration of the first reception interval is predicted by the formula:

[00157] Время завершения первого интервала = INTERVAL_TIME - номер первого принятого пакета * (период генерации пакетов)[00157] Completion time of the first interval = INTERVAL_TIME - number of the first received packet * (packet generation period)

[00158] Схожим образом рассчитывается абсолютное время приема первого пакета:[00158] Similarly, the absolute reception time of the first packet is calculated:

[00159] Время приема первого пакета = текущее время - номер первого принятого пакета * (период генерации пакетов)[00159] First packet reception time = current time is the number of the first packet received * (packet generation period)

[00160] В случае, если потерь в начале теста не было, пакет будет с номером 0, и начало интервала будет совпадать со временем приема пакета.[00160] In the event that there were no losses at the start of the test, the packet will be numbered 0, and the beginning of the interval will coincide with the packet reception time.

[00161] Вычисленное время приема первого пакета сохраняется до конца теста - по нему модуль 150 статистики определяет действительную длительность всего нагрузочного теста.[00161] The calculated time of reception of the first packet is stored until the end of the test - according to it, the statistics module 150 determines the actual duration of the entire load test.

[00162] Время завершения первого интервала используется как инициализационное значение таймера в FPGA. В момент приема первого тестового кадра таймер запускается. После завершения отсчитанного времени таймер автоматически перезапускается, но для всех интервалов, кроме первого, в качестве инициализационного значения используется INTERVAL_TIME.[00162] The completion time of the first interval is used as the initialization value of the timer in the FPGA. When the first test frame is received, the timer starts. After the countdown has elapsed, the timer automatically restarts, but for all intervals except the first, INTERVAL_TIME is used as the initialization value.

[00163] Дальнейшая работа с интервальной статистикой в FPGA происходит на основе состояния этого таймера.[00163] Further work with interval statistics in the FPGA is based on the state of this timer.

[00164] Так как для анализа статистики учитываются не только пакеты текущего интервала, но и пакеты опоздавшие и пришедшие раньше времени, анализатор 120 в FPGA выделяет 3 интервала времени, в которые эти опоздавшие и опередившие свое время пакеты будут анализироваться.[00164] Since not only packets of the current interval, but also packets that are late and arrive ahead of time are taken into account for statistics analysis, the analyzer 120 in the FPGA allocates 3 time intervals in which these late and time-ahead packets will be analyzed.

[00165] На Фиг. 2 и Фиг. 3 показаны схемы, одна для случая, когда длительность WAIT_TIME меньше, чем 1/2 INTERVAL_TIME. Отдельно на Фиг. 3 представлен случай, когда длительность WAIT_TIME больше, чем 1/2 INTERVAL_TIME - в этом случае интервалы для будущих пакетов и для опоздавших пересекаются.[00165] In FIG. 2 and FIG. 3 shows diagrams, one for the case where the WAIT_TIME duration is less than 1/2 INTERVAL_TIME. Separately in FIG. Figure 3 shows the case when the duration of WAIT_TIME is longer than 1/2 INTERVAL_TIME - in this case, the intervals for future packets and for latecomers intersect.

[00166] АСС 0/1/2: счетчики статистики. Всего есть 3 счетчика, на фигуре знаком "+" обозначено, что в этот период времени указанный счетчик аккумулирует статистику (в скобках указано, какого потока эта статистика).[00166] ACC 0/1/2: statistics counters. There are 3 counters in total, on the figure the “+” sign indicates that during this period of time the specified counter accumulates statistics (in brackets it is indicated which flow these statistics are).

[00167] CURR/NEXT/PREVIOUS АСС: каждый из счетчиков в конкретный момент времени может собирать статистику одного из типов временного окна: текущего, предыдущего и следующего. На фигуре указано, какой счетчик какую статистику аккумулирует.[00167] CURR / NEXT / PREVIOUS ACC: each of the counters at a particular point in time can collect statistics of one of the types of time windows: current, previous and next. The figure shows which counter accumulates what statistics.

[00168] В конкретном примере реализации анализ пакетов интервала #1 начинается за WAIT TIME до конца интервала #0 (первое деление синего цвета).[00168] In a specific implementation example, packet analysis of interval # 1 begins WAIT TIME before the end of interval # 0 (first blue division).

[00169] В этот момент за статистику данного интервала отвечает счетчик "NEXT АСС". На Фиг. 2 видно, что в этот момент времени это "АСС 1".[00169] At this point, the statistics of this interval is the responsibility of the "NEXT ACC" counter. In FIG. 2 shows that at this point in time it is "ACC 1".

[00170] Когда интервал #0 заканчивается (первое деление красного цвета) интервал #1 становится текущим - "CURRENT АСС". В этот же момент времени счетчик "CURRENT АСС" меняется с "АСС 0" на "АСС 1". Таким образом статистика за интервал #1 продолжает собираться в аккумулятор "АСС 1".[00170] When the interval # 0 ends (the first division is red), the interval # 1 becomes the current "CURRENT ACC". At the same time, the counter “CURRENT ACC” changes from “ACC 0” to “ACC 1”. Thus, statistics for interval # 1 continues to be collected in the ACC 1 battery.

[00171] Когда основное время для интервала #1 заканчивается (второе деление красного цвета) текущим интервалам становится интервал #2. Но пакеты для интервала #1 все еще могут попасть в статистику, в течении времени WAIT TIME. Для этого используется аккумулятор "PREVIOUS АСС" который в этот же момент времени меняет свой адрес на "АСС 1".[00171] When the main time for interval # 1 ends (second division in red), interval # 2 becomes the current intervals. But packets for interval # 1 can still get into statistics during WAIT TIME. To do this, use the battery "PREVIOUS ACC" which at the same time changes its address to "ACC 1".

[00172] По истечении времени WAIT TIME статистика счетчика "АСС 1" экспортируется - сохраняется в теневые регистры. При этом счетчик "АСС 1" уже может собирать другую статистику - На Фиг. 2 он становится "NETX АСС" для интервала #4.[00172] After the WAIT TIME time has elapsed, the statistics of the ACC 1 counter are exported — stored in shadow registers. In this case, the ACC 1 counter can already collect other statistics - In FIG. 2 he becomes "NETX ACC" for interval # 4.

[00173] Модулю 150 статистики не нужно знать о том, что в FPGA есть три аккумулятора. По завершению анализа каждого интервала счетчик, который отвечал за сбор пакетов предыдущего интервала, сохранят свои значение в специальный регистр, к которому и обращается модуль 150 статистики для сбора статистики за последний интервал.[00173] The statistics module 150 does not need to know that there are three batteries in the FPGA. Upon completion of the analysis of each interval, the counter that was responsible for collecting the packets of the previous interval will save their values in a special register, which is accessed by the statistics module 150 to collect statistics for the last interval.

[00174] FPGA предоставляет информацию о:[00174] The FPGA provides information on:

• Последнем полностью собранном интервале и за всю тестовую сессию:• The last fully collected interval and for the entire test session:

Figure 00000001
Число принятых в нем кадров о Число принятых в нем байт (L2)
Figure 00000001
The number of frames received in it o The number of bytes received in it (L2)

Figure 00000001
FTD (Frame Transfer Delay) - задержка кадров (min/max/acc)
Figure 00000001
FTD (Frame Transfer Delay) - frame delay (min / max / acc)

Figure 00000001
Packet Jitter по RFC 3550 (А.8) - пакетный джиттер (min/max/acc)
Figure 00000001
RFC 3550 Packet Jitter (A.8) - Packet Jitter (min / max / acc)

Figure 00000001
TOS cnt - количество кадров, у которых в ходе передачи поменялся ToS
Figure 00000001
TOS cnt - the number of frames that changed ToS during transmission

Figure 00000001
Число пакетов вне очереди (OOP - Out Of Order Packets)
Figure 00000001
Out Of Order Packets (OOP)

Figure 00000001
Число кадров с ошибками - кадры с CRC-ошибкой, которые подошли
Figure 00000001
The number of frames with errors - frames with CRC error that came up

по фильтрамby filters

Figure 00000001
Минимальный номер пакета в интервале
Figure 00000001
Minimum packet number in the interval

Figure 00000001
Максимальный номер пакета в интервале
Figure 00000001
The maximum packet number in the interval

Figure 00000001
Флаг о том, что все пакеты в интервале приходили последовательно
Figure 00000001
The flag that all packets in the interval arrived sequentially

• Действительное время начала тестовой сессии (время прихода первого пакета);• The actual start time of the test session (time of arrival of the first packet);

• Действительное время конца тестовой сессии (время прихода последнего пакета);• The actual time of the end of the test session (time of arrival of the last packet);

• Номере текущего интервала.• Current interval number.

[00175] Из-за ошибки синхронизации времени между генератором 110 и анализатором 120 FTD может принимать отрицательные значения. Такие значения не учитываются в статистике.[00175] Due to a time synchronization error between the generator 110 and the analyzer 120, the FTD may take negative values. Such values are not taken into account in statistics.

[00176] FPGA не выполняет расчет средних значений FTD и джиттера, а только считает сумму этих значений. Задача модуль 150 статистики - разделить предоставленную сумму на число принятых пакетов и число принятых пакетов по порядку.[00176] The FPGA does not calculate the average values of the FTD and jitter, but only considers the sum of these values. The task of statistics module 150 is to divide the amount provided by the number of received packets and the number of received packets in order.

[00177] Таким образом, формируется следующая статистика, которая используется потом в процессе расчета потерь пакетов за интервал:[00177] Thus, the following statistics are generated, which are then used in the process of calculating packet loss over the interval:

• Минимальный номер пакета в интервале;• The minimum packet number in the interval;

• Максимальный номер пакета в интервале;• Maximum packet number in the interval;

• Флаг о том, что все пакеты в интервале приходили последовательно.• A flag that all packets in the interval came in sequence.

[00178] Проведя инициализацию FPGA, модуль 150 статистики начинает вызывать обработчик результатов не реже, чем раз в INTERVAL_TIME секунд. При каждом вызове запоминается номер текущего интервала и считывается интегральная статистика. Так как размерность счетчиков в FPGA ограничена -после считывания интегральной статистики счетчики в FPGA очищаются, и задача модуля 150 статистики - аккумуляция значений счетчиков после каждого вычитывания.[00178] After initializing the FPGA, the statistics module 150 starts calling the result handler at least once every INTERVAL_TIME seconds. Each call remembers the number of the current interval and reads the integrated statistics. Since the dimension of the counters in the FPGA is limited — after reading the integral statistics, the counters in the FPGA are cleared, and the task of the statistics module 150 is to accumulate the values of the counters after each reading.

[00179] Если номер текущего интервала изменился с последнего чтения -производятся следующие действия:[00179] If the number of the current interval has changed since the last read, the following actions are performed:

• Считывается вся статистика по последнему завершенному интервалу из FPGA;• Read all statistics for the last completed interval from the FPGA;

• Считается средняя скорость за интервал (число принятых бит за интервал / длительность интервала);• The average speed per interval (the number of received bits per interval / duration of the interval) is considered;

• Считаются число потерянных пакетов за интервал.• The number of lost packets per interval is counted.

[00180] В некоторых вариантах реализации осуществляют расчет потерь пакетов за интервал следующим образом. На первом шаге осуществляют предсказание числа переданных пакетов за последний интервал:[00180] In some embodiments, packet loss per interval is calculated as follows. At the first step, the number of transmitted packets for the last interval is predicted:

1. Определяют, сколько пакетов должно было быть отправлено с начала теста до конца текущего интервала (назовем это время TEST_TIME_TOTAL) расчет происходит с учетом особенностей генератора трафика внутри FPGA для большей точности:1. Determine how many packets should have been sent from the beginning of the test to the end of the current interval (let's call this time TEST_TIME_TOTAL) the calculation takes into account the characteristics of the traffic generator inside the FPGA for greater accuracy:

2. Схожим образом определяют, сколько пакетов должно было быть отправлено на конец предыдущего интервала (вместо TEST_JTIМE_TOTAL подставляем TEST_TIME_TOTAL - INTERVAL_TIME в формулы выше);2. Similarly determine how many packets should have been sent to the end of the previous interval (instead of TEST_JTIМE_TOTAL we substitute TEST_TIME_TOTAL - INTERVAL_TIME in the formulas above);

3. Считают число предсказанных пакетов на текущий интервал как разницу полученных в пунктах а и b значений.3. The number of predicted packets for the current interval is considered as the difference of the values obtained in points a and b.

[00181] Затем определяют возможное число потерянных пакетов как:[00181] Then determine the possible number of lost packets as:

[00182] Число предсказанных пакетов за текущий интервал - число принятых пакетов за текущий интервал (из статистики FPGA)[00182] Number of predicted packets for the current interval - the number of packets received for the current interval (from FPGA statistics)

[00183] Если данное значение больше двух, полученное число и есть количество потерянных пакетов за интервал[00183] If this value is more than two, the resulting number is the number of lost packets per interval

[00184] Если меньше или равно двух:[00184] If less than or equal to two:

1. Если все пакеты в интервале приходили по порядку (определяем по флагу из статистики FPGA) и это первый интервал и минимальный индекс пакета в интервале = 0: потерь нет1. If all packets in the interval came in order (determined by the flag from the FPGA statistics) and this is the first interval and the minimum packet index in the interval = 0: there are no losses

2. Если все пакеты в интервале приходили по порядку (определяем по флагу из статистики FPGA) и минимальный индекс пакета в интервале=максимальный индекс пакета в предыдущем интервале+1: потерь нет2. If all packets in the interval came in order (determined by the flag from the FPGA statistics) and the minimum packet index in the interval = maximum packet index in the previous interval + 1: there are no losses

3. Если ничего из вышеперечисленного: полученное число в пункте 2 и есть число потерь.3. If none of the above: the number obtained in paragraph 2 is the number of losses.

[00185] Анализатор 120 в FPGA завершит прием пакетов автоматически после того как отсчитает заданное количество интервалов. После получения статистики по последнему завершенному интервалу модуль 150 статистики последний раз обновляет интервальную и интегральную статистики.[00185] The FPGA analyzer 120 will stop receiving packets automatically after it has counted a predetermined number of slots. After receiving statistics on the last completed interval, the statistics module 150 last time updates the interval and integral statistics.

[00186] Потери в интегральной статистике равны сумме потерь во всех интервалах.[00186] Losses in integral statistics are equal to the sum of losses in all intervals.

[00187] В примерном варианте осуществления система может быть реализована посредством одной или более Специализированных Интегральных Схем (СИС), Цифрового Сигнального Процессора (ЦСП), Устройств Цифровой Обработки Сигнала (УЦОС), Программируемым Логическим Устройством (ПЛУ), логической микросхемой, программируемой в условиях эксплуатации (ППВМ), контроллера, микроконтроллера, микропроцессора или других электронных компонентов, и может быть сконфигурирован для реализации способа осуществления нагрузочного теста.[00187] In an exemplary embodiment, the system can be implemented through one or more Specialized Integrated Circuits (SIS), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSP), Programmable Logic Device (PLU), logic chip, programmable under conditions operation (PPVM), controller, microcontroller, microprocessor or other electronic components, and can be configured to implement a method of performing a load test.

[00188] Как будет понятно специалисту в данной области техники, аспекты настоящего технического решения могут быть выполнены в виде системы, способа или компьютерного программного продукта. Соответственно, различные аспекты настоящего технического решения могут быть реализованы исключительно как аппаратное обеспечение, как программное обеспечение (включая прикладное программное обеспечение и так далее) или как вариант осуществления, сочетающий в себе программные и аппаратные аспекты, которые в общем случае могут упоминаться как «модуль», «система» или «архитектура». Кроме того, некоторые детали реализации настоящего технического решения могут принимать форму компьютерного программного продукта, реализованного на одном или нескольких машиночитаемых носителях, имеющих машиночитаемый программный код, который на них реализован.[00188] As one skilled in the art will understand, aspects of the present technical solution may be implemented as a system, method, or computer program product. Accordingly, various aspects of the present technical solution can be implemented solely as hardware, as software (including application software and so on) or as an embodiment combining software and hardware aspects, which in general can be referred to as a “module” , “System” or “architecture”. In addition, some details of the implementation of this technical solution may take the form of a computer software product implemented on one or more computer-readable media having machine-readable program code that is implemented on them.

[00189] Также может быть использована любая комбинация одного или нескольких машиночитаемых носителей. Машиночитаемый носитель хранилища данных может представлять собой, без ограничений, электронную, магнитную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, устройство или любую подходящую их комбинацию. Конкретнее, примеры (неисчерпывающий список) машиночитаемого носителя хранилища включают в себя: электрическое соединение с помощью одного или нескольких проводов, портативную компьютерную дискету; жесткий диск, оперативную память (ОЗУ), постоянную память (ПЗУ), стираемую программируемую постоянную память (EPROM или Flash-память), оптоволоконное соединение, постоянную память на компакт-диске (CD-ROM), оптическое устройство хранения, магнитное устройство хранения или любую комбинацию вышеперечисленного. В контексте настоящего описания, машиночитаемый носитель хранилища может представлять собой любой гибкий носитель данных, который может содержать или хранить программу для использования самой системой, устройством, аппаратом или в соединении с ними.[00189] Any combination of one or more computer readable media may also be used. The computer-readable storage medium may be, without limitation, an electronic, magnetic, optical, electromagnetic, infrared or semiconductor system, device, or any suitable combination thereof. More specifically, examples (non-exhaustive list) of computer-readable storage media include: electrical connection using one or more wires, a portable computer diskette; hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or Flash memory), fiber optic connection, read-only memory on a compact disc (CD-ROM), optical storage device, magnetic storage device or any combination of the above. In the context of the present description, a computer-readable storage medium may be any flexible data medium that may contain or store a program for use by or in connection with the system, device, apparatus.

[00190] Программный код, встроенный в машиночитаемый носитель, может быть передан с помощью любого носителя, включая, без ограничений, беспроводную, проводную, оптоволоконную, инфракрасную и любую другую подходящую сеть или комбинацию вышеперечисленного.[00190] The program code embedded in a computer-readable medium can be transmitted using any medium, including, without limitation, wireless, wired, fiber optic, infrared, and any other suitable network or combination of the above.

[00191] Компьютерный программный код для выполнения операций для шагов настоящего технического решения может быть написан на любом языке программирования или комбинации языков программирования, включая объектно-ориентированный язык программирования, например Java, Smalltalk, С++ и так далее, и обычные процедурные языки программирования, например язык программирования «С» или аналогичные языки программирования. Программный код может выполняться на вычислителе системы полностью, частично, или же как отдельный пакет программного обеспечения, частично на локальном вычислителе и частично на удаленном вычислителе, или же полностью на удаленном вычислителе. В последнем случае, удаленный вычислитель может быть соединен с локальным вычислителе через доступную сеть любого типа, включая глобальную сеть (WAN) или соединение с внешним компьютером (например, через Интернет с помощью Интернет-провайдеров).[00191] The computer program code for performing operations for the steps of the present technical solution can be written in any programming language or a combination of programming languages, including an object-oriented programming language, such as Java, Smalltalk, C ++ and so on, and conventional procedural programming languages , for example, the programming language "C" or similar programming languages. The program code can be executed on the system computer completely, partially, or as a separate software package, partially on the local computer and partially on the remote computer, or completely on the remote computer. In the latter case, the remote computer can be connected to the local computer through any type of accessible network, including a wide area network (WAN) or connection to an external computer (for example, via the Internet using Internet providers).

[00192] Аспекты настоящего технического решения были описаны подробно со ссылкой на блок-схемы, принципиальные схемы и/или диаграммы способов, устройств (систем) и компьютерных программных продуктов в соответствии с вариантами осуществления настоящего технического решения. Следует иметь в виду, что каждый блок из блок-схемы и/или диаграмм, а также комбинации блоков из блок-схемы и/или диаграмм, могут быть реализованы компьютерными программными инструкциями. Эти компьютерные программные инструкции могут быть предоставлены процессору вычислителя общего назначения, вычислителя специального назначения или другому устройству обработки данных для создания процедуры, таким образом, чтобы инструкции, выполняемые процессором вычислителя или другим программируемым устройством обработки данных, создавали средства для реализации функций/действий, указанных в блоке или блоках блок-схемы и/или диаграммы.[00192] Aspects of the present technical solution have been described in detail with reference to flowcharts, schematic diagrams and / or diagrams of methods, devices (systems) and computer program products in accordance with embodiments of the present technical solution. It should be borne in mind that each block from the block diagram and / or diagrams, as well as combinations of blocks from the block diagram and / or diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a general purpose calculator processor, a special purpose calculator, or other data processing device to create a procedure, so that the instructions executed by the calculator processor or other programmable data processing device provide means for implementing the functions / actions specified in block or blocks of a flowchart and / or diagram.

[00193] Эти компьютерные программные инструкции также могут храниться на машиночитаемом носителе, который может управлять вычислителем, отличным от программируемого устройства обработки данных или отличным от устройств, которые функционируют конкретным образом, таким образом, что инструкции, хранящиеся на машиночитаемом носителе, создают устройство, включающее инструкции, которые осуществляют функции/действия, указанные в блоке блок-схемы и/или диаграммы.[00193] These computer program instructions can also be stored on a computer-readable medium that can control a computer other than a programmable data processing device or other devices that operate in a specific way, such that instructions stored on a computer-readable medium create a device including instructions that carry out the functions / actions indicated in the block diagram and / or block.

Claims (31)

1. Способ измерения статистики трафика сети по n-секундным интервалам, выполняемый с помощью процессора и включающий следующие шаги:1. A method for measuring network traffic statistics at n-second intervals, performed using a processor and comprising the following steps: • направляют информацию о настройках нагрузочного теста, включающую по меньшей мере скорость генерации трафика, длительность теста и длину пакета посредством программного агента, расположенного на генераторе трафика, на анализатор трафика;• send information about the settings of the load test, including at least the speed of traffic generation, the duration of the test and the length of the packet by means of a software agent located on the traffic generator, to the traffic analyzer; • определяют посредством анализатора трафика количество пакетов, которое будет отправлено генератором трафика, и время, когда он закончит процесс генерации на основании информации, полученной на предыдущем шаге;• determine by the traffic analyzer the number of packets that will be sent by the traffic generator and the time when it will complete the generation process based on the information obtained in the previous step; • запускают по меньшей мере один генератор трафика и по меньшей мере один анализатор трафика для осуществления нагрузочного теста, посредством программных агентов, расположенных на данных устройствах;• start at least one traffic generator and at least one traffic analyzer to perform a load test, through software agents located on these devices; • генерируют пакеты посредством по меньшей одного генератора трафика с постоянной скоростью и направляют на анализатор трафика;• generate packets through at least one traffic generator with a constant speed and send it to the traffic analyzer; • по меньшей мере один анализатор трафика запускает по меньшей мере один интервал после прихода первого пакета от генератора трафика, после чего сохраняет время начала нагрузочного теста;• at least one traffic analyzer starts at least one interval after the first packet arrives from the traffic generator, after which it saves the start time of the load test; • определяют принадлежность каждого переданного пакета от генератора трафика на анализатор трафика к конкретному интервалу с помощью времени начала генерации пакета, причем индекс интервала содержится в теле пакета;• determine the belonging of each transmitted packet from the traffic generator to the traffic analyzer to a specific interval using the start time of the generation of the packet, and the interval index is contained in the body of the packet; • формируют посредством анализатора трафика статистику о трафике для каждого интервала, а также общую интегральную статистику о трафике на основании статистики обо всех интервалах.• generate, through a traffic analyzer, traffic statistics for each interval, as well as general integrated traffic statistics based on statistics about all intervals. 2. Способ по п. 1, характеризующийся тем, что при запуске генератора трафика и анализатора трафика на анализаторе трафика временем начала нагрузочного теста считается время приема первого пакета.2. The method according to claim 1, characterized in that when the traffic generator and the traffic analyzer are started on the traffic analyzer, the start time of the load test is the time of reception of the first packet. 3. Способ по п. 2, характеризующийся тем, что если первый пакет не дошел, а дошел пакет с порядковым номером N, то из времени приема пакета вычитается данный порядковый номер, умноженный на период генерации секунд.3. The method according to claim 2, characterized in that if the first packet has not reached, but the packet with sequence number N has arrived, then this sequence number subtracted by the generation period of seconds is subtracted from the packet reception time. 4. Способ по п. 1, характеризующийся тем, что при осуществлении нагрузочного теста для валидного измерения задержки кадров (FTD) в одностороннем тесте системные часы генератора трафика и анализатора трафика синхронизированы по протоколу NTP или РТР.4. The method according to claim 1, characterized in that when performing a load test for valid measurement of frame delay (FTD) in a one-way test, the system clock of the traffic generator and traffic analyzer are synchronized using the NTP or RTP protocol. 5. Способ по п. 1, характеризующийся тем, что способ реализован аппаратно с использованием программируемой пользователем вентильной матрицы (FPGA).5. The method according to claim 1, characterized in that the method is implemented in hardware using a user-programmable gate array (FPGA). 6. Способ по п. 1, характеризующийся тем, что длительность нагрузочного теста задается в пакетах.6. The method according to p. 1, characterized in that the duration of the load test is set in packets. 7. Способ по п. 1, характеризующийся тем, что каждый пакет содержит Flow ID, индекс интервала, порядковый номер пакета, время отправки кадра.7. The method according to claim 1, characterized in that each packet contains a Flow ID, an interval index, a serial number of the packet, and a frame sending time. 8. Способ по п. 7, характеризующийся тем, что время отправки кадра соответствует времени выхода первого байта кадра из генератора трафика в канал связи.8. The method according to p. 7, characterized in that the time of sending the frame corresponds to the time of the first byte of the frame from the traffic generator to the communication channel. 9. Способ по п. 1, характеризующийся тем, что генератор трафика отправляет кадры фиксированной длины.9. The method according to claim 1, characterized in that the traffic generator sends frames of a fixed length. 10. Способ по п. 1, характеризующийся тем, что отправка пакетов генератором трафика останавливается, если было отправлено заданное количество пакетов или была получена команда об остановке нагрузочного теста от программного агента генератора трафика.10. The method according to p. 1, characterized in that the sending of packets by the traffic generator is stopped if a specified number of packets were sent or a command was received to stop the load test from the traffic generator software agent. 11. Способ по п. 1, характеризующийся тем, что время завершения первого интервала используется как инициализационное значение таймера в FPGA.11. The method according to p. 1, characterized in that the completion time of the first interval is used as the initialization value of the timer in the FPGA. 12. Способ по п. 11, характеризующийся тем, что в момент приема анализатором первого тестового кадра таймер запускается.12. The method according to p. 11, characterized in that at the time the analyzer receives the first test frame, the timer starts. 13. Способ по п. 1, характеризующийся тем, что после завершения отсчитанного времени таймер автоматически перезапускается, но для всех интервалов, кроме первого, в качестве инициализационного значения используется время интервала.13. The method according to p. 1, characterized in that after the countdown has elapsed, the timer automatically restarts, but for all intervals except the first, the interval time is used as the initialization value. 14. Система измерения статистики трафика сети по n-секундным интервалам, содержащая:14. A system for measuring statistics of network traffic at n-second intervals, comprising: • по меньшей мере один генератор трафика, выполненный с возможностью• at least one traffic generator configured to
Figure 00000002
направления информации о настройках нагрузочного теста, включающей по меньшей мере скорость генерации трафика, длительность теста и длину пакета посредством программного агента, на анализатор трафика;
Figure 00000002
sending information about the settings of the load test, including at least the speed of traffic generation, the duration of the test and the length of the packet by means of a software agent, to the traffic analyzer;
Figure 00000002
генерирования пакетов с постоянной скоростью и направления на анализатор трафика;
Figure 00000002
generating packets at a constant speed and sending it to a traffic analyzer;
• по меньшей мере один анализатор трафика, выполненный с возможностью• at least one traffic analyzer configured to
Figure 00000002
определения количества пакетов, которое будет отправлено генератором трафика, и времени, когда он закончит процесс генерации на основании информации;
Figure 00000002
determining the number of packets that will be sent by the traffic generator and the time when it will complete the generation process based on the information;
Figure 00000002
запуска по меньшей мере одного интервала после прихода первого пакета от генератора трафика, после чего сохранения времени начала нагрузочного теста;
Figure 00000002
starting at least one interval after the first packet arrives from the traffic generator, after which saving the start time of the load test;
Figure 00000002
определения принадлежности каждого переданного пакета от генератора трафика на анализатор трафика к конкретному интервалу с помощью времени начала генерации пакета, причем индекс интервала содержится в теле пакета;
Figure 00000002
determining the ownership of each transmitted packet from the traffic generator to the traffic analyzer to a specific interval using the start time of the generation of the packet, and the interval index is contained in the body of the packet;
Figure 00000002
формирования статистики о трафике для каждого интервала, а также общей интегральной статистики о трафике на основании статистики обо всех интервалах;
Figure 00000002
generation of traffic statistics for each interval, as well as general integrated traffic statistics based on statistics on all intervals;
• по меньшей мере один программный агент, расположенный на анализаторе трафика и генераторе трафика, выполненный с возможностью запуска по меньшей мере одного генератора трафика и по меньшей мере одного анализатора трафика для осуществления нагрузочного теста.• at least one software agent located on the traffic analyzer and the traffic generator, configured to run at least one traffic generator and at least one traffic analyzer to perform a load test. 15. Система по п. 14, характеризующаяся тем, что генератор трафика является измерительным устройством с поддержкой функции NFV/SDN и H-QoS.15. The system according to p. 14, characterized in that the traffic generator is a measuring device with support for NFV / SDN and H-QoS.
RU2018143600A 2018-12-10 2018-12-10 Method and system for measuring network traffic statistics in n-second intervals RU2703159C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2018143600A RU2703159C1 (en) 2018-12-10 2018-12-10 Method and system for measuring network traffic statistics in n-second intervals

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2018143600A RU2703159C1 (en) 2018-12-10 2018-12-10 Method and system for measuring network traffic statistics in n-second intervals

Publications (1)

Publication Number Publication Date
RU2703159C1 true RU2703159C1 (en) 2019-10-15

Family

ID=68280218

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2018143600A RU2703159C1 (en) 2018-12-10 2018-12-10 Method and system for measuring network traffic statistics in n-second intervals

Country Status (1)

Country Link
RU (1) RU2703159C1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030039212A1 (en) * 2000-10-17 2003-02-27 Lloyd Michael A. Method and apparatus for the assessment and optimization of network traffic
US20040047354A1 (en) * 2002-06-07 2004-03-11 Slater Alastair Michael Method of maintaining availability of requested network resources, method of data storage management, method of data storage management in a network, network of resource servers, network, resource management server, content management server, network of video servers, video server, software for controlling the distribution of network resources
US7508769B1 (en) * 2000-02-04 2009-03-24 At&T Intellectual Property, Ii, L.P. Consistent sampling for network traffic measurement
US7860965B1 (en) * 2002-04-25 2010-12-28 Jds Uniphase Corporation System and method for network traffic and I/O transaction monitoring of a high speed communications network
RU139537U1 (en) * 2013-12-19 2014-04-20 ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ "МФИ Софт" SYSTEM FOR THE PROVISION OF SERVICES FOR THE PROVISION OF INFORMATION ON THE CONTENT OF THE INTERNET TRAFFIC OF THE SUBSCRIBER OF THE DATA-TRANSFER NETWORK

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7508769B1 (en) * 2000-02-04 2009-03-24 At&T Intellectual Property, Ii, L.P. Consistent sampling for network traffic measurement
US20030039212A1 (en) * 2000-10-17 2003-02-27 Lloyd Michael A. Method and apparatus for the assessment and optimization of network traffic
US7860965B1 (en) * 2002-04-25 2010-12-28 Jds Uniphase Corporation System and method for network traffic and I/O transaction monitoring of a high speed communications network
US20040047354A1 (en) * 2002-06-07 2004-03-11 Slater Alastair Michael Method of maintaining availability of requested network resources, method of data storage management, method of data storage management in a network, network of resource servers, network, resource management server, content management server, network of video servers, video server, software for controlling the distribution of network resources
RU139537U1 (en) * 2013-12-19 2014-04-20 ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ "МФИ Софт" SYSTEM FOR THE PROVISION OF SERVICES FOR THE PROVISION OF INFORMATION ON THE CONTENT OF THE INTERNET TRAFFIC OF THE SUBSCRIBER OF THE DATA-TRANSFER NETWORK

Similar Documents

Publication Publication Date Title
US20190190804A1 (en) Non-intrusive mechanism to measure network function packet processing delay
EP3295612B1 (en) Uplink performance management
US9980163B2 (en) Admission control for allowing or rejecting a measurement request between a first and a second device
US9350669B2 (en) Network apparatus, performance control method, and network system
EP2681871B1 (en) In-service throughput testing in distributed router/switch architectures
CN112689977B (en) Techniques for collecting and transmitting telemetry information in a communication network
US9755926B2 (en) Efficiently utilizing probe packets within a network
EP4030646B1 (en) Packet forwarding method, device and system
US8879403B2 (en) Link microbenchmarking with idle link correction
Zhou et al. Analysis and implementation of packet preemption for time sensitive networks
WO2017052961A1 (en) Technologies for network round-trip time estimation
CN102368729B (en) Accurate network speed limit method at non-realtime system
WO2023123956A1 (en) Io full-lifecycle latency monitoring method and related apparatus
US11121938B2 (en) Performance measurement in a packet-switched communication network
US10965550B2 (en) Precise statistics computation for communication networks
GB2459814A (en) Measuring method, measuring device, and computer program
RU2703159C1 (en) Method and system for measuring network traffic statistics in n-second intervals
WO2017011981A1 (en) Timing processing method and apparatus for flow entry
US10887078B2 (en) Device, system, and method for determining a forwarding delay through a networking device
US8989032B2 (en) Systems and methods for measuring frame loss in multipoint networks
EP4169183A1 (en) Time transfer using passive tapping
US20160381651A1 (en) Metered interface
US20140022921A1 (en) Frame loss measurement device, communication device, communication system and performance measurement method
US20140164602A1 (en) Oam name state event trigger
CN116962213A (en) Operation maintenance management information processing method, network node and storage medium