Description
The Service Communication Proxy (SCP) is a fundamental architectural element within the 5G Core (5GC) network, operating within the service-based architecture (SBA). It acts as an intermediary for all HTTP/2-based service-based interface (SBI) communications between producer and consumer Network Functions (NFs). The SCP provides a centralized communication layer, abstracting the direct point-to-point connectivity. Its primary role is to manage service discovery and selection. When a consumer NF needs to invoke a service, it sends a request to the SCP. The SCP then consults the Network Repository Function (NRF) to discover suitable producer NF instances that offer the required service, considering factors like load, location, and network slice context. After discovery, the SCP can perform load balancing by selecting an appropriate producer NF instance and securely forwarding the request. This decouples service consumers from the need for direct knowledge of producer NF instances and their locations.
Architecturally, the SCP is defined as an independent network function with its own service-based interface. It supports both the request-routing model, where it acts as a proxy for all messages, and the indirect communication model, where it provides discovery information to the consumer NF, which then communicates directly. The SCP implements critical security functions such as transport layer security (TLS) termination and re-initiation, ensuring end-to-end security across the service mesh. It can also enforce access control policies, validate messages, and provide topology hiding by masking the internal network structure from external entities or between different network slices.
Beyond discovery and security, the SCP enhances network reliability and scalability. It supports message routing and forwarding based on policies, subscriber information, and network slice identifiers. It can provide resilience through mechanisms like retransmissions and alternative routing if a producer NF fails. The SCP's centralized nature simplifies network operations, as policies for load balancing, traffic steering, and security can be managed in one logical point rather than distributed across every NF. This is crucial for large-scale, cloud-native deployments where NFs are dynamically instantiated and scaled. The SCP is a key enabler for efficient network slicing, as it can route requests to NF instances belonging to a specific slice, ensuring isolation and tailored service levels.
Purpose & Motivation
The SCP was introduced to address the complexities of direct service-to-service communication in the 5G Service-Based Architecture (SBA). In earlier 3GPP architectures, like the 4G Evolved Packet Core (EPC), interfaces were primarily point-to-point and protocol-specific (e.g., GTP, Diameter). The shift to a cloud-native, microservices-based 5GC with HTTP/2-based APIs created a dynamic environment where Network Functions (NFs) are ephemeral and scalable. Direct communication would require every NF consumer to continuously discover and manage connections to all potential NF producers, leading to significant signaling overhead, complex mesh management, and reduced agility.
The SCP solves these problems by providing a centralized communication fabric. It abstracts service discovery and routing, allowing NFs to be developed and deployed independently without hard-coded dependencies. This solves the problem of NF discovery in a dynamically changing environment. Furthermore, it addresses critical security and operational needs. It provides a central point for implementing security policies (like mutual TLS), access control, and topology hiding, which is essential for operator security and when exposing network capabilities to third parties. Its creation was motivated by the need for a scalable, manageable, and secure interconnection model that supports automation, network slicing, and the efficient operation of a disaggregated, software-defined core network.
Key Features
- Centralized service discovery and selection via interaction with the NRF
- Load balancing and traffic steering across multiple instances of a producer NF
- End-to-end security enforcement, including TLS mediation and authorization
- Topology hiding to abstract internal network structure from consumers
- Support for indirect and request-routing communication models
- Policy-based message routing and forwarding, supporting network slicing
Evolution Across Releases
The concept of a Service Communication Proxy was not formally defined in R99. This release focused on the initial UMTS architecture with traditional circuit-switched and packet-switched domains. The SCP, as a service-based architecture element, is a 5G innovation.
Introduced the SCP as a formal Network Function within the 5G Service-Based Architecture. Defined its basic roles in service discovery, message routing, and load balancing. Established the indirect communication model where the SCP provides discovery information to consumer NFs.
Enhanced SCP capabilities, including support for the request-routing communication model where the SCP acts as a full proxy. Introduced more detailed procedures for delegated discovery, improved load balancing, and support for integration with the Network Slice Selection Function (NSSF).
Further refined SCP functionalities for edge computing and access traffic steering, switching, and splitting (ATSSS). Enhanced its role in multi-access and hybrid network scenarios. Strengthened security and policy control aspects.
Defining Specifications
| Specification | Title |
|---|---|
| TS 21.905 | 3GPP TS 21.905 |
| TS 23.094 | 3GPP TS 23.094 |
| TS 23.127 | 3GPP TS 23.127 |
| TS 23.501 | 3GPP TS 23.501 |
| TS 23.540 | 3GPP TS 23.540 |
| TS 24.524 | 3GPP TS 24.524 |
| TS 28.840 | 3GPP TS 28.840 |
| TS 29.078 | 3GPP TS 29.078 |
| TS 29.198 | 3GPP TS 29.198 |
| TS 29.278 | 3GPP TS 29.278 |
| TS 29.500 | 3GPP TS 29.500 |
| TS 29.513 | 3GPP TS 29.513 |
| TS 29.520 | 3GPP TS 29.520 |
| TS 29.552 | 3GPP TS 29.552 |
| TS 29.570 | 3GPP TS 29.570 |
| TS 29.574 | 3GPP TS 29.574 |
| TS 29.843 | 3GPP TS 29.843 |
| TS 32.255 | 3GPP TR 32.255 |
| TS 32.808 | 3GPP TR 32.808 |
| TS 33.117 | 3GPP TR 33.117 |
| TS 33.501 | 3GPP TR 33.501 |
| TS 33.776 | 3GPP TR 33.776 |
| TS 33.794 | 3GPP TR 33.794 |