The concept of services: A major difference in 5G core (5GC) compared to previous generation network architectures is the use of various Network Functions and their interaction with each other. This means that each Network Function offers one or more services to other Network function in the network. In 5GC architecture, these services are made available on Network Function interfaces connected to the common SBA over an API (Application Programming Interface). However, it shall be noted that we are talking only about signaling functionality and not the transfer of user data.
The communication method defined for 5GC relies on the widely used HTTP REST (Representational State Transfer) methodology. The most important aspect of REST is that all communication must include the full set of information needed for a specific action. It does not rely on the previously exchanged REST messages and hence, REST is considered as stateless and reliable. HTTP messages commonly used are:
HTTP GET – fetch data from the server
HTTP POST – send data to the server
HTTP PUT – send data to the server, but replace the existing data
HTTP DELETE – remove data from the server
When two Network Functions communicate over the SBA, they take on two different roles. The Network Function that sends the request takes on the role of Service Consumer, while the Network Function that offers a service against the request, is called as Service Producer. The critical part, however, is the mechanism by which the Service Consumer locates and contacts a Service Producer. This introduces the concept of Service Discovery.
Before we dwell into the concept of Service Discovery, it is important to know about Service Registration. In 5GC, there is a Network Function which is known as Network Repository Function (NRF). All the Network Functions register their services with NRF. This function keeps track of all the available services of the various network functions that exist within the 5GC network.
Let’s now explain the Service Discovery part with the help of three functions, namely PCF, AMF and NRF. These functions are arbitrarily chosen.
The PCF starts with the registration of its services with NRF. The PCF uses HTTP PUT message to register with NRF. The NRF verifies the request, stores the data shared by PCF associated with its registration, and sends an acknowledgement using HTTP response. In this phase, PCF acts as ‘service consumer’ while NRF acts as ‘service producer’.
Fig 1: Service Registration
In the next phase, another network function AMF wants to utilize the services of PCF. This is achieved when AMF queries NRF about the PCF’s offerings. This phase is called as Service Discovery. In this case, AMF is ‘service consumer’ and NRF is ‘service producer’.
Fig 2: Service Discovery
When this step is finalized, the AMF can make a selection of PCF that fulfills the service requirements. Then AMF contacts the selected PCF with a ‘Service Request’. Here again, the AMF is ‘service consumer’, while this time around, PCF becomes a ‘service producer’.
Fig 3: Service Request
Fig 4: consolidated call flow
Therefore, the way these interactions occur between the different network functions, gives rise to the term Service Based Architecture (SBA).