Description
GZIP, an abbreviation for GNU ZIP, is a widely adopted file format and software application used for lossless data compression. Within the 3GPP architecture, starting from Release 16, GZIP compression has been formally specified for use over HTTP-based service-based interfaces (SBIs), such as those defined for the Network Repository Function (NRF). The primary technical specification governing its application is 3GPP TS 29.500, which details the general principles and requirements for 5G system service-based interfaces, including support for content encoding. A companion specification, TS 29.573, provides more detailed protocol aspects for the NRF's specific services.
The integration of GZIP operates at the HTTP protocol layer. When a network function (NF) client, such as an AMF or SMF, sends an HTTP request (e.g., a POST or PUT request containing a large JSON payload for NF registration or discovery) to a server NF like the NRF, it can include the 'Accept-Encoding: gzip' header in its request. This signals to the server that the client can handle GZIP-compressed responses. Correspondingly, the server, upon generating a response, can compress the response body (the JSON data) using the GZIP algorithm before transmission, and it indicates this by including the 'Content-Encoding: gzip' header in the HTTP response. The client then decompresses the payload upon receipt.
The GZIP algorithm itself is based on the DEFLATE algorithm, which combines LZ77 (a dictionary-based compression scheme that replaces repeated strings with pointers) and Huffman coding (a form of entropy encoding that uses variable-length codes for symbols). This combination is highly effective for text-based data like the JSON structures prevalent in 3GPP SBIs. The compression process significantly reduces the number of bytes that need to be transmitted over the network. This is particularly impactful for signaling messages that can be large, such as those containing complex policy data, subscription information, or lists of discovered network functions.
Its role in the network is that of an enabling technology for transport efficiency. It does not alter the semantic content of the 3GPP messages but optimizes their physical transmission. By reducing payload sizes, GZIP compression decreases the load on transport network links, can lower packet processing overhead in intermediate nodes, and reduces the end-to-end latency for message exchange, especially in scenarios with constrained bandwidth or high signaling load. This contributes to the overall scalability and performance of the 5G Core's service-based architecture.
Purpose & Motivation
The purpose of standardizing GZIP compression within 3GPP specifications was to address the increasing signaling overhead and bandwidth consumption inherent in the new service-based architecture (SBA) introduced with the 5G Core network. Prior to 5G, legacy interfaces often used binary protocols (like Diameter) which were relatively compact. The shift to HTTP/2 and JSON-based messaging for all internal 5G Core interfaces, while offering flexibility and web-scale interoperability, introduced a significant expansion in message size due to the verbosity of text-based JSON encoding.
This verbosity posed a tangible problem for network operators: larger messages consume more bandwidth on inter-data-center links, increase processing load on network functions for serialization/deserialization, and can lead to higher latency. In large-scale deployments with millions of devices, the cumulative effect of inefficient signaling transport could impact network performance and operational costs. The motivation for adopting GZIP was to leverage a proven, industry-standard compression technique to mitigate these drawbacks without redesigning the application-layer protocols.
Therefore, 3GPP introduced support for GZIP as a mandatory-to-support feature for certain NFs (like the NRF) to ensure that the benefits of the flexible SBA were not undermined by transport inefficiency. It solves the problem of payload bloat by providing a standardized, efficient method for NFs to negotiate and apply compression, ensuring interoperability between different vendors' implementations while optimizing network resource utilization.
Key Features
- Standardized HTTP content encoding for 3GPP Service-Based Interfaces
- Lossless compression ensuring data integrity of signaling messages
- Based on the DEFLATE algorithm (LZ77 & Huffman coding)
- Negotiated via HTTP headers (Accept-Encoding and Content-Encoding)
- Primarily applied to JSON payloads in NF management and discovery messages
- Reduces bandwidth consumption and latency for large signaling transactions
Evolution Across Releases
GZIP compression was initially introduced and standardized for 5G Core service-based interfaces. Specifications TS 29.500 and TS 29.573 mandated support for the 'gzip' content-coding for HTTP/2 messages, primarily targeting the Nnrf_NFManagement service interface for NF registration and discovery. The architecture defined the use of standard HTTP headers for negotiation between client and server NFs.
Defining Specifications
| Specification | Title |
|---|---|
| TS 29.500 | 3GPP TS 29.500 |
| TS 29.573 | 3GPP TS 29.573 |