3rd Generation Partnership Project;
Technical Specification Group Core Network and Terminals;
5G System;
Technical Realization of Service Based Architecture;
Stage 3
- 5G Core Network의 SBA 기술 구현, SBI를 통해 지원되는 프로토콜 및 기능 설명
3GPP는 모바일 통신 네트워크에 대한 표준을 개발하고 유지하기 위해 여러 통신 표준 조직 간의 협력
3GPP 29.500
이 문서에서는 5GC 서비스 기반 아키텍처의 기술적 구현, service based interface를 통해 지원되는 프로토콜 및 서비스 기반 아키텍처에서 지원되는 기능에 대해 설명
23.501 - 6.3.1.0
1) NRF는 SCP와 함께 배치될 수 있음
요청된 NF type 또는 NF service를 NRF를 통해 검색하려면 NF instance를 NRF에 등록해야 함
2) HSS 또는 UDM의 위임된 검색을 위해 SCP는 NRF에 의존하여 제공된 사용자 ID를 제공하는 HSS/UDM 인스턴스 그룹을 검색할 수 있음
일부 배포에서는 SCP가 먼저 제공된 사용자 ID에 대한 UDR을 쿼리할 수 있음
3단계에서는 서비스 소비자가 SCP 동작을 인식할 필요가 없도록 서비스 소비자가 제공하는 사용자 ID에 대해 단일 인코딩을 정의할 것으로 예상됨
3) 유효 기간 사용에 대한 자세한 내용은 29.510 참조
4) 주어진 PLMN에서는 직접 통신, 간접 통신 또는 둘 다 적용될 수 있음
5) 대상 PLMN ID 관련 쿼리를 사용하여 원격 PLMN의 NRF에 도달하는 방법에 대한 자세한 내용은 29.510참조
Binding Indication(consumer)
Binding Indication(producer)
Binding entity
NF service instance, NF service set, NF instance, NF set 중 하나의 식별자
Binding entity ID
Binding entity의 ID(ex: NF service instance ID, NF service set ID, NF service set ID, NF instance ID, NF set ID)
Binding level
http 사용자 지정 헤더의 매개변수로, 기본 바인딩이 존재하는 바인딩 엔티티를 나타냄
이러한 헤더에 있는 바인딩 레벨에 해당하지 않는 다른 바인딩 엔티티는 다시 선택할 수 있고 동일한 리소스 컨텍스트를 공유하는 대체 바인딩 엔티티를 나타냄
Callback URI
NF service 생산자가 알림 또는 콜백 요청을 보내는데 사용하는 URI
Endpoint address
NF Instance
NF Service Instance
NF Service Set
동일한 NF 서비스 집합의 NF 서비스 인스턴스는 동일한 컨텍스트 데이터에 액세스 가능
NF Set
Notification endpoint
Routing binding indication
Service Framework
Service Framework 기능에는 서비스 등록/등록 취소, 소비자 인증, 서비스 검색 및 서비스 간 통신이 포함되며, 여기에는 선택 및 메시지 전달이 포함됨
NF service는 NF가 service based interface를 통해 다른 공인 NF에 노출하는 기능 유형 중 하나
NF 서비스 지정 기준
- end to end 기능을 설명하는 시스템 절차에서 파생됨
- 서비스는 또한 다른 3GPP 사양의 정보 흐름을 기반으로 정의
NF service는 NF service 소비자와 NF service 생산자 간에
3GPP TS 23.501에서는 5G 시스템 아키텍처 : 서비스 기반 아키텍처로 정의
→ 시스템 기능이 다른 인가된 NF에 서비스를 제공하여 그들의 서비스에 액세스하는 NF set에 의해 달성되는 시스템 아키텍처
5G 시스템 아키텍처의 Control Plane(CP) Network Function은 서비스 기반 아키텍처를 기반함
NF 서비스는 NF(NF Service Producer)가 서비스 기반 인터페이스를 통해 다른 공인 NF(NF Service Consumer)에 노출하는 기능 유형 중 하나
NF 서비스는 하나 이상의 NF 서비스 작업을 지원할 수 있음
Network Function은 서로 다른 기능을 제공할 수 있으므로 서로 다른 NF 서비스를 제공할 수 있음
Network Function에 의해 제공되는 각 NF 서비스는 동일한 네트워크 기능에 의해 제공되는 다른 NF 서비스(scaling, healing)와는 독립적으로 자체적으로 포함, 조치 및 관리되어야 함
서비스 기반 인터페이스는 특정 NF에 의해 서비스 집합이 제공되거나 노출되는 방식을 나타냄
NF 서비스 작업이 호출되는 인터페이스
서비스 기반 아키텍처는 NF Service의 사용을 가능하게 하는 NF 서비스 프레임워크를 지원해야함
NF 서비스 프레임워크에는 다음과 같은 메커니즘이 포함됨:
NF service registration and de-registration
NRF가 사용 가능한 NF instance와 지원되는 서비스를 인식하도록 함
NF service discovery
NF service consumer가 예상되는 NF service를 제공하는 NF service producer instance를 검색할 수 있도록 함
NF service authorization
NF service consumer가 NF service producer가 제공하는 NF service에 액세스 할 수 있도록 승인
Inter service communication
NF service consumer와 NF service producer는 SCP를 통해 직간접적으로 통신할 수 있음
NF가 SCP를 통한 직접 통신 또는 간접 통신을 사용하는지 여부는 NF 구성을 기반함
SCP
서비스 통신 프록시
message body(ex: PUT, POST)와 함께 HTTP method를 사용하는
NF service producer의 서비스 작업을 호출할 때,
NF service consumer는 운영자 정책에 따라 서비스 작업 request에 'NF service advertisement URI'를 제공할 수 있음
NF service producer가 NF service consumer가 제공할 수 있는 NF 서비스 후속 절차에서 NF 서비스 소비자가 생산한 NF 서비스를 검색하기 위해 서비스 광고 URI를 저장하고 사용할 수 있음
서비스 request 요청에서 NF service advertisement URI를 수신하는 경우
NF service producer는 운영자 정책에 따라 후속 절차에서 NF service consumer가 생산한 NF service를 검색하기 위해 service advertisement URI를 저장하고 사용할 수 있음
NF service advertisement URI는 NRF에서 NF service producer에 의해 등록된 nfInstance 리소스를 식별함
NF service advertisement URI 예
{apiRoot}/nnrf-disc/nf-instances?nfInstanceId={nfInstanceId}
참고
NF service advertisement URI는 예를 들어 PLMN에 서로 다른 NRF가 배치된 경우에 사용할 수 있음
해당되는 경우 NF service advertisement URI는 HTTP message body로 전달되어야 함
PLMN
공중육상이동망, 공중육상이동통신망
: 사업자의 네트워크 식별번호
해외로밍 서비스 이용 시, 선호하는 사업자의 식별번호를 등록하면 해당 이동통신 사업자의 네트워크로 접속
SBI (Server Based Interface)
RFC7540
NF as HTTP Server
NF as HTTP Client
SCP/SEPP
모든 NF 서비스는 SBI에 API를 노출하고 API는 리소스에서 작동
HTTP method를 통해 API를 호출하면 요청 유형에 따라 리소스 상태가 변경될 수 도 있음
API에 대해 달리 명시되지 않는한 하나 이상의 지원되지 않는 쿼리 매개 변수를 가진 HTTP 요청을 수신하는 NF 서비스 producer는 다음을 수행:
안전한 HTTP method
안전하지않은 HTTP method
RFC3986
RFC793 ( RFC7540 )
RFC8259
Open API 규격은 SBI의 인터페이스 정의 언어(IDL)로 사용되어야 함
이 절은 5GC의 일반 라우팅 메커니즘을 지정
→ 간접 통신(Indirect Communication)을 지원하기 위한 구체적인 요구 사항은 6.10
Inbound (RFC7230)
HTTP를 사용하면 중개자를 사용하여 연결 체인을 통해 요청을 충족할 수 있음
HTTP intermediary: proxy, gateway, and tunnel.
user agenet와 original server 사이의 세가지 중개자 (A,B,C)
전체 체인을 이동하는 요청 똔느 응답 메시지는 4개의 개별 연결을 통과
일부 HTTP 통신 옵션은 가장 가까운 터널이 아닌 이웃과의 연결, 체인의 끝점에만 적용되거나, 체인을 따라 모든 연결에 적용될 수 있음
다이어그램은 선형이지만 각 참가자는 여러 동시 통신에 참여할 수 있음
예)
B는 A 이외의 많은 클라이언트로 부터 요청을 수신하거나 A의 요청을 처리하는 동시에 c가 아닌 서버로 요청을 전달할 수 있음
- 메시지 흐름과 관련된 방향성 요구사항 설명시: 업스트림, 다운스트림
→ 모든 메시지는 업스트림에서 다운스트림으로 흐름
- 요청 경로와 관련된 방향성 요구사항 설명시: 인바운드, 아웃바운드
→ 인바운드: original server, 아웃바운드: agent
- proxy: 특정 유형의 절대 URI에 대한 요청을 수신하고 HTTP 인터페이스를 통한 변환을 통해 해당 요청을 충족하려고 시도하기 위해 일반적으로 로컬 구성 규칙을 통해 클라이언트가 선택한 메시지 전달 에이전트
일부 변환은 'http' URI에 대한 프록시 요청과 같이 최소 수준이 ㄴ반면 다른 요청은 완전히 다른 애플리케이션 수준 프로토콜과의 변환이 필요할 수 있음
gateway (reverse proxy)
아웃바운즈 연결을 위한 원본 서버 역할을 하지만 수신된 요청을 변환하여 다른 서버로 인바운드로 전달하는 중개자
게이트 웨이 레거시 또는 신뢰할 수 없는 정보 서비스를 캡슐화하고, 가속시 캐싱을 통해 서버 성능을 개선하고, 여러 시스템에서 HTTP 서비스의 분할 또는 부하 분산을 활성화하는데 자주 사용됨
- interception proxy(transparent proxy)
클라이언트가 선택하지 않기 때문에 HTTP 프록시와 다름
대신 차단 프록시가 나가는 TCP 포트 80패킷을 필터링하거나 리디렉션
가로채기 프록시는 일반적으로 공용 네트워크 액세스 포인트에서 찾아볼 수 있음
inbound 연결이 되면 client는 유선을 통해 request message를 보냄
message는 요청 대상을 식별하는 pseudo-header-field가 포함된 HEADLES frame으로 시작
:method 항상 존재
[ origin server 또는 proxy에 직접 request 전송 시 포함 pseudo-header ]
CONNECT request
server-wide OPTIONS request
else
target URI 구성 요소가 client와 동일한 PLMN에 있는
origin server를 지정하는 HTTP/2 request message의 경우
":authority" = uri-host [":" port]
여기서 uri-host
target NF service의 FQDN에 PLMN 식별자가 포함될 필요는 없음
올바른 PLMN에서 올바른 target NF service에 도달하고
target URI 기관 구성 요소가 client와 동일한 PLMN에 없는
origin server를 지정하는 HTTP/2 request message의 경우
":authority" = uri-host [":" port]
:authority HTTP/2 pseudo-header는 PLMN ID를 포함하는 FQDN을 포함해야 함
여기서 uri-host
target NF service의 FQDN, callback URI 또는 지정된 링크 관계의 FQDN(권한) 부분에는 PLMN 식별자 포함
target NF service의 FQDN 형식은 3GPP TS 23.003 - 28.5
PLMN 내에서 SEPP와 Network Function 기능 간의 TLS 보호를 허용하기 위해 SEPP는 다음을 지원해야함:
SEPP의 PLMN 내에서 SEPP와 NF 간에 TLS 와일드 카드 인증서와
telescopic FQDN을 사용할 때,
HTTP/2 client 측의 SEPP는 다음과 같은 경우에 대해 3GPP TS 23.003에 명시된 telescopic FQDN을 형성해야 함
HPLMN에서 target NF service의 FQDN은 VPLMN에서 SEPP에 의해 telescopic FQDN으로 수정됨
VPLMN에서 target NF service의 FQDN은 HPLMN에서 SEPP에 의해 telescopic FQDN으로 수정됨
VPLMN의 NF 서비스 리소스 콜백 URI의 FQDN(authority) 부분은 HPLMN의 SEPP에 의해 망원 FQDN으로 수정됨
HPLMN에서 NF 서비스 리소스의 콜백 URI 중 FQDN(authority) 부분은 VPLMN에서 SEPP에 의해 망원 FQDN으로 수정됨
VPLMN에서 NF 서비스 리소스의 링크 관계 URI 중 FQDN(authority) 부분은 HPLMN에서 SEPP에 의해 텔레스코픽 FQDN으로 수정됨
HPLMN에서 NF 서비스 리소스의 링크 관계 URI 중 FQDN(authority) 부분은 VPLMN에서 SEPP에 의해 텔레스코픽 FQDN으로 수정됨
HTTP/2 request를 생성하는 client는 Host header field 대신에 ":authority" pseudo-header field를 사용
HTTP/2 proxy는 ":authority" pseudo-header를 사용하여 request가 proxy cache에 의해 충족될 수 없는 경우
NF 간의 양방향 통신 필요로함
방향당 하나씩 두개의 TCP 연결로 지원됨
Subscribe-Notify interaction은 NF consumer에게 "notification endpoint"와 "notification correlation ID"를 제공할 것을 요구 : callback URI라고도 불림
NF consumer와 NF producer간의 상호작용은 NF producer가 보낸 Notification 이전에 발생하지 않거나
다른 서비스 또는 API에서 상호작용을 통해 발생할 수 있음
이 경우 Notification은 "standalone notification"라고 하며 3GPP 29.501-5.3.7
NF consumer는 "3gpp-Sbi-Consumer-Info" header에 다음 정보를 포함할 수 있음
- intra-PLMN Notification을 수신하기 위한 콜백 루트를 포함하는 intraPlmnCallbackRoot 매개변수
- inter-PLMN Notification을 수신하기 위한 콜백 루트를 포함하는 intraPlmnCallbackRoot 매개변수
두 경우 모두 intermediate NF로 전송되는 구돋ㄱ 작성 요청에서 "3gpp-Sbi-Consumer-Info" header 전달해야함
Notification request를 보내는 NF producer는 다음 response code 및 응용 프로그램 오류 중 하나를 수신하는 경우
Subscribe가 더 이상 유효하지 않다고 간주하고 Subscribe 종료
Load control을 통해 NF producer는 NRF를 통해 또는 NF consumer에게 직접 load information을 전달할 수 있음
load information은 NF producer의 리소스 작동 상태를 반영
load control을 통해 NF producer간에 로드 밸런싱을 개선하여 과부하를 방지할 수 있음
load control은 NF 서비스 생산자가 높은 부하를 보고하더라도 과부화 완화 조치를 트리거하지 않음
NOTE
load control은 3GPP TS 29.303 4A.2에서
노드 수준 load control에 대해 설명한 것과 유사한 원칙에 따라 사용될 수 있지만 NRF에서 얻은 후보 NF의 우선 순위 및 용량 매개변수를 사용할 수 있음
NRF를 통해 전달되는 부하 제어 기반의 부하 신호
→ NRF 솔루션을 통해 신호된 부하를 기준으로 부하 제어의 세부사항을 지정
NRF에서
LCI Header 기반 부하 제어
NOTE1
operator 정책에 따라 load control과 overload control은 네트워크에서 독립적으로 지원될 수 있음
NOTE2
LC-H 기능을 지원하는 NF 서비스 소비자는
NRF에서 타임스탬프 없이 로드 정보를 수신하고
NF 서비스 생산자로부터 LCI(타임스탬프 포함)를 수신할 수 있음
NF 서비스 소비자가 가장 최근의 로드 정보를 포함하는 항목을 결정하는 방법은 구현 문제
NOTE3
NF 서비스 소비자는
스코프가 SCP 또는 SEPP FQDN으로 설정된 LCI를
넥스트 홉 SCP 또는 SEPP에서만 수신할 수 있음
LCI는 "3gpp-Sbi-Lci" HTTP header내에서 전달되어야 함
LCI header는 NF consumer에게 전송되는 신호 메시지 위에 업혀있어야함
NF producer, SCP, SEPP는 peer NF consumer가 해당 기능을 지원하는지 여부에 관계없이 "3gpp-Sbi-Lci" header를 전송해야 함
NF consumer가 해당기능 사용하지 않을 때는 무시함
전송 빈도
sender가 LCI 전달하는 빈도는 구현에 따라 다름
NF producer는
response, notify/callback request에
하나 이상의 LCI 헤더 포함 가능
각 LCI에는 항상 timestamp, load metric, scope if LCI가 포함되어야 함
LCI가 생성된 시간
LCI receiver는 HTTP/2 multi stream, priority, flow control 등으로 인해 순서가 잘못된 LCI를 적절하게 대조하고, 새로 수신된 load control information이 이전에 동일한 범위로 수신된 load control information과 비교하여 변경되었는지 여부를 결정하는데 사용되어야 함
LCI 범위에 대한 현재 부하 레벨
LCI에 표시된 스코프가 NF Instance를 0~100범위 내의 백분율로 나타내야 함
LCI 범위는 LCI의 적용 가능성
NF 서비스 생산자가 신호를 보내는 LCI에 대해 지원되는 범위
과부하 제어는
NF 서비스 소비자에게 서비스 요청 전송을 줄이라고 지시하거나
NF 서비스 소비자에게 알림 요청 전송을 줄이라고 요청함으로써
NF Producer, NF Consumer, SCP, SEPP가 수신 부하를 우아하게 감소시킬 수 있도록 함
NF consumer로 부터 과부하 제어를 적용하라는 지시를 받은 경우
NF producer는 과부하 범위에 따른 notification 또는 callback request에 대해서만 NF consumer 대상으로 신호 감소 수행
오버로드 제어는 일반적으로 오버로드가 발생했을 때 수신 트래픽을 트래픽 소스에 최대한 가깝게 차단하여 네트워크 내부에 문제가 확산되는 것을 방지하고 오버로드된 엔티티가 제공할 수 없는 신호 전달을 위해 네트워크 내 중간 엔티티의 리소스를 사용하지 않도록 하는 것을 목표로합니다.
과부하 제어는 HTTP response로 반환된 HTTP status code 또는 HTTP request 또는 response로 시그널링된 OCI(Overload Control Information)를 기반으로 수행될 수 있음
HTTP status code를 기반으로 한 과부하 제어
NF producer는 과부하 상황이 발생하는 동안 수신된 request에 대한 응답으로 NF 서비스 소비자에게 다음 HTTP status code를 전송하여 잠재적 과부하 완화할 수 있음
503 Service Unavailable
429 Too Many Requests
NF 소비자에게 서버가 현재 수신된 트래픽 속도를 처리할 수 없으므로
NF 소비자에서 로컬로 이 트래픽의 일부를 조절하여 NF 서비스 생산자에게 전송되는 트래픽을 줄임
또는 오버로드되지 않는 대체 대상으로 전환함
// NF consumer가 NF producer 정책에 따라 우선순위 트래픽(ex: MPS) 및 비상사태와 관련된 요청은 고객이 마지막으로 제한
클라언트가 사용 가능한 트래픽의 특정 부분을 제거해야 할 경우, 각 메시지의 결정된 우선순위에 따라 이를 수행해야함
HTTP status code 기반 과부하 제어와 독립적
요구사항
- NF producer/consumer는
수신 서비스 request의 수 > 수신 엔티티가 지원하는 최대 메시지 수 초과 시
과부하 상태 감지- NF producer/consumer는 구현 종속 과부하 임계값에 도달 시
과부하 제어 정보를 동종 업체(producer or consumer)에 전달해야함- 과부하 발생하는 SCP/SEPP는 SCP/SEPP로 전송되는 신호 트래픽을 조정하기 위해 HTTP request 또는 response message에서 SCP FQDN/SEPP FQDN으로 설정된 scope로 OCI를 추가로 피
OLC-H 기능 지원하지 않는 경우 헤더는 수신기에 의해 무시됨
보낸사람이 OCI를 전달하는 빈도는 구현에 따라 다름
주기적으로 OCI 전달 가능
Timestamp
OCI가 생성된 시간
OCI 수신기는 HTTP2 multi stream, priority, flow control 등으로 인해 순서가 잘못된 OCI 헤더를 적절히 대조하고 새로 수신된 OCI 이전에 동일한 범위로 수신된 OCI와 비교하여 변경되었는지 여부를 결정하는데 사용되어야함
새로 수신한 OCI timestamp가 이전에 수신한 OCI와 동일하거나 이전의 동일한 범위인 경우, 다음 수신기는 새로 수신된 OCI를 폐기하고 가장 최근의 timestamp값으로 이전에 수신된 OCI 값을 기반으로 과부하 제저 절차를 계속 적용해야함
Overload Reduction Metric
0~100
OCI 송신기가 수신기에 적용을 요청하는 트래픽 감소 비율
OCI 전송은 과부하 상태가 발생하고 있다는 신호를 보내며,
0이 아닐 떄 과부하(오버로드) 상태가 발생하고 있다는 신호를 보냄
메시지 OCI 헤더가 없다고 해서 과부하가 완료된것은 아님
Overload Control Period of Valildity
유효기간 매개변수는 타이머이며
이는 OCI 헤더에 의해 지정된 과부하 조건이 유효한 것으로 간주되는 시간을 나타냄
과부하 조건은 과부하 제어 유효 기간이 만료될 때까지 또는 동일한 범위에 대해 새로운 정보 세트를 가진 다른 OCI가 수신될 때까지 유효한 것으로 간주해야함
OCI가 적용되는 서비스 request 또는 Notification을 나타냄
OCI에 따라 처리를 요청하는 트래픽을 식별함
AMF는 UE 관련 정보를 UDSF에 저장함으로써 비저장이 될 수 있다
AMF 계획 제거 또는 AMF 자동 복구를 위한 절차는 3GPP TS 23.501
3GPP 5GC의 서비스 기반 아키텍처에서 지원되는 feature negotiation, vendor-specific extensions 등과 같은 확장성 메커니즘을 설명함
서로 다른 시스템 또는 구성 요소 간에 상호 작용할 때 지원되는 기능을 협상하는 과정을 의미함
feature negotiation은 client와 server간의 통신에서 지원되는 feature set을 결정하고 어떤 기능이 사용 가능한지를 확인하기 위해 사용됨
ex) client가 server에 요청을 보낼 때 지원할 수 있는 기능을 명시적으로 지정하고
server는 해당 기능을 확인하여 요청된 기능 중 어떤 것을 지원할 수 있는지 결정함
이를 통해 client와 server는 서로 다른 기능을 가진 시스템 간에 호환성을 유지하면서 상호 작용할 수 있음
6.7. Security Mecahnisms
6.8. SBI Message Priority Mechanism
6.9. Discovering the supported communication options
6.10. Support of Indirect Communication
6.11. Detection and handling of late arriving requests
6.12. Blinding between an NF Service Consumer and an NF Service Resource
6.13. SBI messages correlation for network troubleshooting
6.14. Indicating the purpose of Inter-PLMN signaling