An SLA-Aware Priority Management System for HTTP/2 Based on RFC 9218: Design, Implementation, and Performance Evaluation in Service-Based Architectures
Abstract
1. Introduction
- C1 (System Architecture): A complete SLA-aware HTTP/2 priority management framework for SBA environments, comprising a Priority Classification Engine, a Dynamic Priority Mapping Algorithm, and a PRIORITY_UPDATE Manager, designed for integration with existing HTTP/2 server stacks.
- C2 (SLA-Driven Classification): A rule-based classification mechanism that maps service requests to RFC 9218 urgency levels based on service type, SLA constraints, HTTP method, URL patterns, and runtime network metrics, implemented using a human-readable YAML configuration with runtime reload capability.
- C3 (Dynamic Adaptation): A feedback-driven control loop that dynamically adjusts priorities of active streams based on system load, network congestion, and packet error rate, with bounded update intervals to improve stability and avoid unbounded priority escalation.
- C4 (Experimental Evaluation): A controlled evaluation consisting of 7200 baseline observations across four operating modes, ten service categories, nine network conditions, and twenty repetitions per service–profile–mode combination, complemented by a 14,880-observation scalability and overhead analysis across increasing concurrent-stream levels.
2. Related Work and Background
2.1. HTTP/2 Prioritization: RFC 7540 and Its Limitations
2.2. RFC 9218: Design Rationale and Key Parameters
2.3. HTTP/3/QUIC Context and Justification for the HTTP/2 Scope
2.4. Service-Based Architectures and QoS in 5G
2.5. SLA-Aware and Learning-Based Resource Management
2.6. SLA Management in Distributed Systems
2.7. Summary of Research Gaps
- Existing RFC 9218 deployments and studies generally focus on protocol-level priority signaling rather than explicit SLA-to-priority translation for SBA workloads.
- HTTP/3/QUIC studies provide important transport-level comparisons, but they do not remove the need to study HTTP/2 in environments where 3GPP SBA interfaces and existing service infrastructures continue to rely on HTTP/2.
- Static mappings between service classes and urgency levels fail to adapt to dynamic network conditions such as congestion, server load, and packet error rate.
- The PRIORITY_UPDATE mechanism remains underutilized for proactive, SLA-driven priority adjustment.
- Prior studies provide limited evidence on multi-condition SLA-aware adaptation under controlled SBA-like workloads with explicit latency, SLA-violation, throughput, and success-rate measurements.
3. System Design and Architecture
3.1. Overview
- Priority Classification Engine (PCE): Responsible for analyzing request-level attributes and assigning an internal priority level based on service type, SLA requirements, and contextual metadata.
- Dynamic Priority Mapping Algorithm (DPMA): Translates internal priority levels into RFC 9218 parameters , where urgency (u) and incremental (i) values are dynamically adjusted according to real-time network conditions and system state.
- PRIORITY_UPDATE Manager (PUM): Maintains state information for active streams, detects potential SLA violations, and proactively issues PRIORITY_UPDATE frames to adjust stream priorities during execution.
- SLA Monitoring Framework (SMF): Continuously collects system-level and network-level metrics, including latency, throughput, and packet error rate, and provides feedback to both the DPMA and PUM for adaptive decision-making.

3.2. Priority Classification Engine
3.2.1. Priority Levels
3.2.2. Classification Criteria
- URL path pattern: Regular expressions applied to the request target. For example, paths under /api/v∗/control/∗ or /api/v∗/emergency/∗ map to Level 0, while /api/v∗/analytics/∗ or /api/v∗/logs/∗ map to Level 3.
- HTTP method: POST requests targeting actuator endpoints are promoted by one priority level relative to equivalent GET requests.
- Custom headers: The presence of X-Service-Type: URLLC enforces Level 0 assignment. The X-Critical flag promotes requests to at least Level 1.
- Source identity: Client IP addresses or bearer-token claims can trigger user-class-based priority adjustments.
3.3. Dynamic Priority Mapping Algorithm
3.3.1. Base Mapping
3.3.2. Dynamic Adjustment Rules
- if C > 0.7:
- if level in {0,1}: u\_adj = max(0, u0 − 1)
- if level in {2,3}: u\_adj = min(7, u0 + 1)
- if S > 0.8:
- if level in {2,3}: u\_adj = min(7, u0 + 2)
- if E > 0.1:
- if level == 0: u\_adj = 0
- u\_adj = clamp(u\_adj, 0, 7)
3.4. PRIORITY_UPDATE Manager
- SLA deadline proximity: When a stream exceeds 80% of its SLA budget, urgency is increased (i.e., ).
- Network metric changes: A variation exceeding 20% in C, S, or E between consecutive measurements triggers updates for all active streams.
- Load rebalancing: When Level 0 streams exceed a configurable threshold (default: 16), Level 1 streams are temporarily promoted to prevent starvation.
- Application-triggered updates: External applications may invoke a REST interface to request explicit priority adjustments.
3.5. SLA Monitoring Framework
4. Implementation
4.1. Software Stack
4.2. Priority Classification Engine Implementation
| Listing 1. Priority Classification Procedure. |
| Input: Request (path, method, headers, source_ip) Output: PriorityInfo object |
| request_id ← UUID() for each rule in rule set do if MatchRule(rule, request) = true then u_adj ← ApplyDynamicAdjustments(rule.urgency, rule.level) return Priority_Info(rule.level, u_adj, rule.incremental, rule.name, request_id) end for |
| return Default_Classification(request_id) |
| Listing 2. Rule Matching Procedure. |
| Input: Rule R, Request (path, method, headers, source_ip) Output: Boolean |
| if path does not match R.path_pattern then return false if method does not match R.method then return false if required headers are not satisfied then return false if source_ip is not allowed then return false |
| return true |
4.3. Dynamic Priority Adjustment Implementation
| Listing 3. Dynamic Priority Adjustment Procedure. |
| Input: base_urgency , priority_level L, metrics Output: adjusted urgency If : If : Else: If and : If and : Return |
4.4. PRIORITY_UPDATE Manager Implementation
| Listing 4. Priority Update Management Procedure. |
| Input: request_id, new_priority State: active_requests, update_callbacks If request_id exists in active_requests: old_priority ← active_requests[request_id] active_requests[request_id] ← new_priority For each callback in update_callbacks: callback(request_id, old_priority, new_priority) |
4.5. Management Interface
- A real-time monitoring dashboard with 5 s auto-refresh for system metrics.
- A rule editor for modifying YAML-based classification rules without restarting the system.
- A request simulation tool for validating configuration changes prior to deployment.
- A performance analytics module with exportable charts for offline analysis.
5. Experimental Evaluation
5.1. Evaluation Objectives and Metric Selection
5.2. Experimental Setup
5.2.1. Hardware Testbed
5.2.2. Service Scenarios
5.2.3. Network Conditions
5.2.4. Experiment Design
5.3. Statistical Methodology
6. Results and Analysis
6.1. Four-Mode Baseline Comparison
6.2. Network-Stress Behavior
6.3. Scalability and Overhead Analysis
6.4. Statistical Validation of Observed Effects
7. Discussion
7.1. Implications for SBA Deployments
7.2. Scalability, Fairness, and Security Considerations
7.3. Scope of Validation
8. Conclusions
Author Contributions
Funding
Data Availability Statement
Acknowledgments
Conflicts of Interest
Abbreviations
| SBA | Service-Based Architecture |
| QoS | Quality of Service |
| SLA | Service Level Agreement |
| HTTP/2 | Hypertext Transfer Protocol Version 2 |
| IETF | Internet Engineering Task Force |
| RFC | Request for Comments |
| PCE | Priority Classification Engine |
| DPMA | Dynamic Priority Mapping Algorithm |
| PUM | PRIORITY_UPDATE Manager |
| SMF | SLA Monitoring Framework |
| URLLC | Ultra-Reliable Low-Latency Communication |
| eMBB | Enhanced Mobile Broadband |
| mMTC | Massive Machine-Type Communication |
| CI | Confidence Interval |
| CDF | Cumulative Distribution Function |
| ANOVA | Analysis of Variance |
| MEC | Multi-access Edge Computing |
| NF | Network Function |
| CPU | Central Processing Unit |
References
- Jamshidi, P.; Pahl, C.; Mendonça, N.C.; Lewis, J.; Tilkov, S. Microservices: The Journey So Far and Challenges Ahead. IEEE Softw. 2018, 35, 24–35. [Google Scholar] [CrossRef] [Scilit]
- Dragoni, N.; Giallorenzo, S.; Lluch-Lafuente, A.; Mazzara, M.; Montesi, F.; Mustafin, R.; Safina, L. Microservices: Yesterday, Today, and Tomorrow. In Present and Ulterior Software Engineering; Mazzara, M., Meyer, B., Eds.; Springer: Cham, Switzerland, 2017; pp. 195–216. [Google Scholar] [CrossRef] [Scilit]
- Simsek, M.; Aijaz, A.; Dohler, M.; Sachs, J.; Fettweis, G. 5G-Enabled Tactile Internet. IEEE J. Sel. Areas Commun. 2016, 34, 460–473. [Google Scholar] [CrossRef] [Scilit]
- Popovski, P.; Nielsen, J.J.; Stefanović, Č.; de Carvalho, E.; Ström, E.; Trillingsgaard, K.F.; Bana, A.S.; Kim, D.M.; Kotaba, R.; Park, J.; et al. Wireless Access for Ultra-Reliable Low-Latency Communication: Principles and Building Blocks. IEEE Netw. 2018, 32, 16–23. [Google Scholar] [CrossRef] [Scilit]
- 3GPP. System Architecture for the 5G System (5GS); Technical Specification TS 23.501; 3rd Generation Partnership Project: Sophia Antipolis, France, 2020. [Google Scholar]
- 3GPP. 5G System; Technical Realization of Service Based Architecture; Stage 3; Technical Specification TS 29.500, Release 18, Version 18.6.0; 3rd Generation Partnership Project: Sophia Antipolis, France, 2024. [Google Scholar]
- Simpson, A.; Alshaali, M.; Tu, W.; Asghar, M.R. Quick UDP Internet Connections and Transmission Control Protocol in unsafe networks: A comparative analysis. IET Smart Cities 2024, 6, 351–360. [Google Scholar] [CrossRef] [Scilit]
- Bishop, M. RFC 9114: HTTP/3; IETF: Fremont, CA, USA, 2022. [Google Scholar] [CrossRef] [Scilit]
- Belshe, M.; Peon, R.; Thomson, M. Hypertext Transfer Protocol Version 2 (HTTP/2); RFC 7540; IETF: Fremont, CA, USA, 2015. [Google Scholar] [CrossRef] [Scilit]
- Thomson, M.; Benfield, C. RFC 9113: HTTP/2; IETF: Fremont, CA, USA, 2022. [Google Scholar] [CrossRef] [Scilit]
- Wijnants, M.; Marx, R.; Quax, P.; Lamotte, W. HTTP/2 Prioritization and Its Impact on Web Performance. In Proceedings of the 2018 World Wide Web Conference, Lyon, France, 23–27 April 2018; pp. 1755–1764. [Google Scholar] [CrossRef] [Scilit]
- Marx, R.; De Decker, T.; Quax, P.; Lamotte, W. Resource Multiplexing and Prioritization in HTTP/2 over TCP versus HTTP/3 over QUIC. In Web Information Systems and Technologies; Springer: Cham, Switzerland, 2020; pp. 96–126. [Google Scholar] [CrossRef] [Scilit]
- Oku, K.; Pardue, L. Extensible Prioritization Scheme for HTTP; RFC 9218; IETF: Fremont, CA, USA, 2022. [Google Scholar] [CrossRef] [Scilit]
- Herbots, J.; Marx, R.; Lamotte, W.; Quax, P. HTTP/3’s Extensible Prioritization Scheme in the Wild. In Proceedings of the Applied Networking Research Workshop, Vancouver, BC, Canada, 22 July 2024. [Google Scholar] [CrossRef] [Scilit]
- Taleb, T.; Samdanis, K.; Mada, B.; Flinck, H.; Dutta, S.; Sabella, D. On Multi-Access Edge Computing: A Survey of the Emerging 5G Network Edge Cloud Architecture and Orchestration. IEEE Commun. Surv. Tutor. 2017, 19, 1657–1681. [Google Scholar] [CrossRef] [Scilit]
- Foukas, X.; Patounas, G.; Elmokashfi, A.; Marina, M.K. Network Slicing in 5G: Survey and Challenges. IEEE Commun. Mag. 2017, 55, 94–100. [Google Scholar] [CrossRef] [Scilit]
- Zhang, Y.; Hua, W.; Zhou, Z.; Suh, G.E.; Delimitrou, C. Sinan: ML-Based and QoS-Aware Resource Management for Cloud Microservices. In Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’21), Virtual, 19–23 April 2021. [Google Scholar] [CrossRef] [Scilit]
- Qiu, H.; Banerjee, S.S.; Jha, S.; Kalbarczyk, Z.T.; Iyer, R.K. FIRM: An Intelligent Fine-Grained Resource Management Framework for SLO-Oriented Microservices. In Proceedings of the 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI 20), Virtual, 4–6 November 2020. [Google Scholar]
- Zhang, Y.; Zhou, Z.; Elnikety, S.; Delimitrou, C. Ursa: Lightweight Resource Management for Cloud-Native Microservices. In Proceedings of the 2024 IEEE International Symposium on High-Performance Computer Architecture (HPCA), Edinburgh, UK, 2–6 March 2024. [Google Scholar] [CrossRef] [Scilit]
- Wang, Z.; Li, P.; Liang, C.-J.M.; Wu, F.; Yan, F.Y. Autothrottle: A Practical Bi-Level Approach to Resource Management for SLO-Targeted Microservices. In Proceedings of the 21st USENIX Symposium on Networked Systems Design and Implementation (NSDI 24), Santa Clara, CA, USA, 16–18 April 2024; pp. 149–165. [Google Scholar]
- Keller, A.; Ludwig, H. The WSLA Framework: Specifying and Monitoring Service Level Agreements for Web Services. J. Netw. Syst. Manag. 2003, 11, 57–81. [Google Scholar] [CrossRef] [Scilit]
- Buyya, R.; Yeo, C.S.; Venugopal, S.; Broberg, J.; Brandic, I. Cloud Computing and Emerging IT Platforms: Vision, Hype, and Reality for Delivering Computing as the 5th Utility. Future Gener. Comput. Syst. 2009, 25, 599–616. [Google Scholar] [CrossRef] [Scilit]
- Hemmat, R.A.; Hafid, A. SLA Violation Prediction in Cloud Computing: A Machine Learning Perspective. arXiv 2016, arXiv:1611.10338. [Google Scholar]



| Component | Evaluation Role | Interpretation |
|---|---|---|
| SLA classification rules | Implemented | Operational middleware logic for service classification |
| Urgency and incremental mapping | Implemented | RFC 9218-compatible priority-metadata assignment |
| Runtime priority-state registry | Implemented | Control state for active requests and bounded updates |
| Priority-update action | Implemented in the prototype control path | Dynamic adaptation of request priority state under runtime conditions |
| Server/proxy scheduler integration | Deployment-dependent | The design is compatible with implementations that preserve and act on RFC 9218 metadata |
| HTTP/3/QUIC execution | Discussed as cross-protocol context | Outside the HTTP/2 experimental scope of this study |
| Level | Label | Urgency (u) | Incremental (i) | Illustrative SLA Target | Typical Use |
|---|---|---|---|---|---|
| 0 | URLLC | 0 | true | <1 ms | Safety alarms, control signaling |
| 1 | Interactive | 1 | false | <10 ms | User-facing transactions |
| 2 | Standard | 3 | false | <200 ms | API queries, database access |
| 3 | Background | 6 | true | <15,000 ms | Analytics, bulk transfer |
| Component | Library/Technology | Version |
|---|---|---|
| HTTP/2 framing | h2 | 4.x |
| Web framework | Flask | 3.x |
| Async I/O | Python asyncio | stdlib |
| Configuration | PyYAML | 6.x |
| Metrics storage | SQLite (sqlite3) | stdlib |
| Rule compilation | re (compiled RegEx) | stdlib |
| ID | Service Class | Assigned Urgency | SLA Latency Limit |
|---|---|---|---|
| S1 | URLLC Control | 0 | 1 ms |
| S2 | URLLC Data | 0 | 2 ms |
| S3 | Interactive High | 1 | 10 ms |
| S4 | Interactive Medium | 1 | 15 ms |
| S5 | Voice Call | 1 | 60 ms |
| S6 | Video Streaming | 2 | 100 ms |
| S7 | Standard Data | 3 | 120 ms |
| S8 | Bulk Transfer | 5 | 1000 ms |
| S9 | Background Analytics | 6 | 1200 ms |
| S10 | IoT Telemetry | 7 | 1500 ms |
| ID | Profile | Bandwidth | Delay | Jitter | Loss | Server Load |
|---|---|---|---|---|---|---|
| N1 | Normal | 1000 Mbit/s | 0.5 ms | 0.1 ms | 0.00% | 0% |
| N2 | Slightly Congested | 800 Mbit/s | 0.8 ms | 0.2 ms | 0.00% | 15% |
| N3 | Moderately Congested | 500 Mbit/s | 1.0 ms | 0.2 ms | 0.01% | 25% |
| N4 | Heavily Congested | 250 Mbit/s | 1.5 ms | 0.4 ms | 0.02% | 35% |
| N5 | High Server Load | 100 Mbit/s | 3.0 ms | 0.8 ms | 0.05% | 45% |
| N6 | High Error Rate | 50 Mbit/s | 5.0 ms | 1.0 ms | 0.08% | 55% |
| N7 | Mixed Congestion–Load | 25 Mbit/s | 6.0 ms | 1.5 ms | 0.10% | 65% |
| N8 | Mixed Congestion–Error | 10 Mbit/s | 8.0 ms | 2.0 ms | 0.20% | 75% |
| N9 | Extreme Conditions | 5 Mbit/s | 12.0 ms | 3.0 ms | 0.50% | 85% |
| Item | Specification |
|---|---|
| Traffic-control replay | Exact tc/netem profiles N1–N9 corresponding to the network conditions reported in Table 5 |
| Workload generator | wrk -t8 -c256 -d30s -R500 –latency -s lua/sba_workload.lua SERVER_URL |
| Run order | Block randomization using the fixed seed 9218 |
| CPU/NIC preparation | CPU-governor configuration, queue-discipline reset, and NIC metadata collection before execution |
| Server-load generation | stress-ng –cpu N –cpu-load P –timeout 3600s –metrics-brief |
| Raw baseline observations | 7200 observations covering four priority-management modes, ten service scenarios, nine network profiles, and twenty repetitions |
| Raw scalability observations | 14,880 observations covering the evaluated concurrent-stream levels and overhead measurements |
| Processed outputs | Baseline-mode, network-profile, service-scenario, scalability, and overhead summaries used to generate the tables and figures in Section 6 |
| Mode | Observations | Mean (ms) | Median (ms) | P95 (ms) | P99 (ms) | SLA Violation (%) | Success (%) |
|---|---|---|---|---|---|---|---|
| no_priority | 1800 | 459.12 | 74.11 | 1929.49 | 2719.43 | 50.28 | 94.89 |
| legacy_rfc7540 | 1800 | 565.62 | 76.59 | 2467.90 | 3364.81 | 51.50 | 97.17 |
| static_rfc9218 | 1800 | 562.98 | 76.63 | 2413.06 | 3417.48 | 51.83 | 96.06 |
| dpma | 1800 | 345.07 | 76.01 | 1252.08 | 1686.61 | 30.39 | 96.00 |
| Network Profile | DPMA Mean | No-Priority Mean | Mean Reduction | DPMA SLA Viol. | No-Priority SLA Viol. | SLA Reduction |
|---|---|---|---|---|---|---|
| Normal | 278.76 | 293.67 | 5.1% | 0.0% | 0.0% | 0.0 pp |
| Slightly Congested | 286.49 | 350.42 | 18.2% | 0.5% | 0.5% | 0.0 pp |
| Moderately Congested | 345.19 | 442.08 | 21.9% | 18.0% | 58.5% | 40.5 pp |
| Heavily Congested | 399.52 | 593.71 | 32.7% | 72.5% | 100.0% | 27.5 pp |
| High Server Load | 310.99 | 387.57 | 19.8% | 5.0% | 14.5% | 9.5 pp |
| High Error Rate | 269.54 | 325.74 | 17.3% | 0.0% | 0.0% | 0.0 pp |
| Mixed Congestion–Load | 385.31 | 530.95 | 27.4% | 55.0% | 100.0% | 45.0 pp |
| Mixed Congestion–Error | 359.30 | 472.36 | 23.9% | 26.5% | 79.0% | 52.5 pp |
| Extreme Conditions | 470.57 | 735.62 | 36.0% | 96.0% | 100.0% | 4.0 pp |
| Concurrent Streams | Requests | P95 Latency (ms) | CPU (%) | Peak Memory (MB) | Class. Time (ms) | Update Time (ms) |
|---|---|---|---|---|---|---|
| 1 | 20 | 126.80 | 343.13 | 117.18 | 0.0273 | 0.0037 |
| 5 | 100 | 128.00 | 158.38 | 117.31 | 0.0355 | 0.0039 |
| 10 | 200 | 127.69 | 175.53 | 117.72 | 0.0286 | 0.0038 |
| 20 | 400 | 127.99 | 153.60 | 118.39 | 0.0348 | 0.0039 |
| 50 | 1000 | 128.11 | 169.44 | 122.04 | 0.0499 | 0.0038 |
| 100 | 2000 | 128.23 | 208.04 | 129.11 | 0.0354 | 0.0039 |
| Test or Metric | Value | Interpretation |
|---|---|---|
| Raw baseline observations | 7200 | Four modes, ten services, nine profiles, twenty repetitions |
| One-way ANOVA across modes | , | Significant latency difference across modes |
| ANOVA effect size | Small aggregate effect across heterogeneous services | |
| DPMA vs. no_priority | , , | Significant improvement with small aggregate standardized effect |
| DPMA vs. legacy_rfc7540 | , , | Significant improvement with small-to-moderate aggregate effect |
| DPMA vs. static_rfc9218 | , , | Significant improvement with small-to-moderate aggregate effect |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2026 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license.
Share and Cite
Al-Karawi, A.L.S.; Akdeniz, R. An SLA-Aware Priority Management System for HTTP/2 Based on RFC 9218: Design, Implementation, and Performance Evaluation in Service-Based Architectures. Computers 2026, 15, 455. https://doi.org/10.3390/computers15070455
Al-Karawi ALS, Akdeniz R. An SLA-Aware Priority Management System for HTTP/2 Based on RFC 9218: Design, Implementation, and Performance Evaluation in Service-Based Architectures. Computers. 2026; 15(7):455. https://doi.org/10.3390/computers15070455
Chicago/Turabian StyleAl-Karawi, Ahmed Lateef Salih, and Rafet Akdeniz. 2026. "An SLA-Aware Priority Management System for HTTP/2 Based on RFC 9218: Design, Implementation, and Performance Evaluation in Service-Based Architectures" Computers 15, no. 7: 455. https://doi.org/10.3390/computers15070455
APA StyleAl-Karawi, A. L. S., & Akdeniz, R. (2026). An SLA-Aware Priority Management System for HTTP/2 Based on RFC 9218: Design, Implementation, and Performance Evaluation in Service-Based Architectures. Computers, 15(7), 455. https://doi.org/10.3390/computers15070455

