CESNET-TimeSeries26: A Multi-Year Network Traffic Time Series Dataset for Annual Seasonality, Concept Drift, and Long-Term Anomaly Detection
Organizations: Czech Technical University in Prague, Thákurova 9, 160 00 Prague 6, Czech Republic · CESNET a.l.e., Generála Píky 430/26, 160 00 Prague 6, Czech Republic
Abstract
Forecast-based models are fundamental to network traffic management and anomaly detection. However, it is essential to evaluate these forecasting models over extended periods of time in order to assess their adaptability to unexpected phenomena and shifts in underlying patterns. This kind of long-term evaluation requires multi-year data to account for yearly seasonality and behavioral drift. Existing public datasets are too short to support such long-horizon forecasting tasks. We introduce CESNET-TimeSeries26, comprising 995 days of continuous traffic time series from the CESNET3 network, together with a single subnet spanning approximately 4.5 years. The dataset captures 278,466 IP addresses, 285 institutions, and 566 institutional subnets at three aggregation intervals. The dataset provides a definitive longitudinal benchmark for evaluating forecasting models in both operational management and security monitoring. We demonstrate that annual seasonality is the dominant periodic component. Moreover, we show that a forecasting model can exploit the annual component only when its training window covers at least one complete annual cycle, which no sub-year dataset provides.
Figures & tables
| Date | Transition | Local clock change | Offset change |
|---|---|---|---|
| 2022-03-27 | spring forward | 02:00 CET 03:00 CEST | h |
| 2022-10-30 | fall back | 03:00 CEST 02:00 CET | h |
| 2023-03-26 | spring forward | 02:00 CET 03:00 CEST | h |
| 2023-10-29 | fall back | 03:00 CEST 02:00 CET | h |
| 2024-03-31 | spring forward | 02:00 CET 03:00 CEST | h |
| 2024-10-27 | fall back | 03:00 CEST 02:00 CET | h |
| Outage | Part | Last data before | Data resumed | Duration |
|---|---|---|---|---|
| 1 | subnet | 2022-01-11 12:43 | 2022-01-12 12:43 | 23.8 h |
| 2 | subnet | 2022-03-14 22:53 | 2022-03-15 13:33 | 14.5 h |
| 3 | subnet | 2022-05-18 21:53 | 2022-05-19 21:43 | 23.7 h |
| 4 | subnet | 2022-12-11 17:13 | 2022-12-14 10:23 | 2 d 17.0 h |
| 5 | subnet | 2022-12-28 09:53 | 2023-01-02 14:33 | 5 d 4.5 h |
| 6 | subnet | 2023-04-12 01:33 | 2023-04-14 05:43 | 2 d 4.0 h |
| Entity set | Institutions | Institution subnets | IP addresses |
|---|---|---|---|
| CESNET-TimeSeries24 entities | 283 | 548 | 275,124 |
| CESNET-TimeSeries26 entities | 285 | 566 | 278,466 |
| Shared (qualify in both) | 283 | 548 | 253,543 |
| Added (qualify now, absent before) | 2 | 18 | 24,923 |
| Dropped (in TS24, no longer qualify) | 0 | 0 | 21,581 |
| No. | Recommendation |
|---|---|
| (1) | Specify which dataset part(s) are used in the analysis. |
| (2) | Specify the aggregation interval(s) used. |
| (3) | Indicate whether the approach is multivariate or univariate. |
| (4) | Clearly state if not all metrics are used. |
| (5) | Document all preprocessing steps, including filtering, normalization, and gap handling. |
| (6) | Ensure the training phase starts from the beginning of the relevant part’s time frame (main dataset: 2023-10-09; longitudinal subnet: its own 2022 start). |
| Name | Version | Link |
|---|---|---|
| Ipfixprobe | 4.11.0 | https://github.com/CESNET/ipfixprobe |
| IPFIXcol2 | 2.2.1 | https://github.com/CESNET/ipfixcol2 |
| NEMEA Framework | 0.14.0 | https://github.com/CESNET/Nemea-Framework |
| NEMEA modules | 2.20.0 | https://github.com/CESNET/Nemea-Modules |
| NEMEA Supervisor | 1.8.2 | https://github.com/CESNET/Nemea-Supervisor |
| TimeScaleDB-14 | 2.15.0 | https://www.timescale.com/ |
| Column name | Description |
|---|---|
| id_time | Unique identifier for each aggregation interval within the time series, used to segment the dataset into specific time periods for analysis. |
| n_flows | Total number of flows observed in the aggregation interval, indicating the volume of distinct sessions or connections for the IP address. |
| n_packets | Total number of packets transmitted during the aggregation interval, reflecting the packet-level traffic volume for the IP address. |
| n_bytes | Total number of bytes transmitted during the aggregation interval, representing the data volume for the IP address. |
| n_dest_ip | Number of unique destination IP addresses contacted by the IP address during the aggregation interval, showing the diversity of endpoints reached. |
| n_dest_asn | Number of unique destination Autonomous System Numbers (ASNs) contacted by the IP address during the aggregation interval, indicating the diversity of networks reached. |
| Column name | Description |
|---|---|
| sum_n_dest_ip | Sum of numbers of unique destination IP addresses. |
| avg_n_dest_ip | The average number of unique destination IP addresses. |
| std_n_dest_ip | Standard deviation of numbers of unique destination IP addresses. |
| sum_n_dest_asn | Sum of numbers of unique destination ASNs. |
| avg_n_dest_asn | The average number of unique destination ASNs. |
| std_n_dest_asn | Standard deviation of numbers of unique destination ASNs. |
| Column name | Description |
|---|---|
| id_ip | ID of the IP address. |
| id_institution | ID of the institution which owns the IP address. |
| id_institution_subnet | ID of the institution subnet in which the IP address belongs. |
| Column name | Description |
|---|---|
| Date | The date of the day in format “YYYY-MM-DD”. |
| Type | The type of the day (Weekend or Holiday). |
| Column name | Description |
|---|---|
| Start | The first day of the period in format “YYYY-MM-DD”. |
| End | The last day of the period (inclusive) in format “YYYY-MM-DD”. |
| Type | The type of the academic period ( WinterTerm , WinterExams , SummerTerm or SummerExams ). |
| Column name | Description |
|---|---|
| date | The date of the daylight-saving transition in format “YYYY-MM-DD”. |
| transition | The direction of the transition ( spring_forward or fall_back ). |
| measured_from | The dataset part in which the transition falls inside the collection span ( main or subnet_longitudinal ). |
| local_clock_change | The local wall-clock jump, e.g. 02:00 CET 03:00 CEST . |
| utc_offset_before | The UTC offset of local time before the transition ( +01:00 for CET, +02:00 for CEST). |
| utc_offset_after | The UTC offset of local time after the transition. |
| Column name | Description |
|---|---|
| id | Sequential ID of the outage. |
| part | The dataset part affected by the outage ( main or subnet_longitudinal ). |
| scope | The extent of the outage ( infrastructure-wide or subnet-local ). |
| kind | How the outage manifests in the data: grid-gap for windows absent from the shared time grid, present-zero for windows present in the grid but carrying zero traffic. |
| last_data_before | Timestamp of the last window carrying data before the outage, with explicit UTC offset. |
| data_resumed | Timestamp of the first window carrying data after the outage, with explicit UTC offset. |
Forecasting Benchmarks
Forecasting Benchmarks are datasets and evaluation protocols for comparing predictions of future time-series values, events, and outcomes.
See all 224 papers