free5GC+UERANSIM

使用arp、ifconfig、docker inspect及网桥brctl 相关命令,收集容器IP及Mac地址相关信息,可以梳理出UERANSIM+free5GC模拟环境组网,如下图所示:

如上图所示:环境基于ubuntu 18.04 VMware虚机部署,5GC网元分别部署在虚机的docker容器中。5GC各模拟网元模拟RAN 通过虚拟网桥进行数据交换。物理机上的VMware 虚拟网卡作为DN(互联网节点)通过虚拟网桥与容器中的UPF对接。

(需注意:确定Linux内核版本,必须要5.0.0-23-generic 或者 5.4.0之后的版本)

内核问题需要补充:确定Linux内核版本,必须要5.0.0-23-generic 或者 5.4.0之后的版本

ubuntu 22.04的内核有些是5.15.0-150-generic,有些是5.4.0-150-generic,导致在编译的过程中,总会报各种错误;而linux中关于内核降级非常复杂,因此建议一开始确定内核版本,或者直接采用ubuntu 18.04,其内核版本为3.x.x,虽然版本也不正确,但是linux中内核升级相对方便,只需要补充一下source.list,然后直接在线下载即可,不需要修改grub文件。原因很简单,Linux自动采用高版本的内核。如果不放心,建议修改grub文件,然后在开机过程中进入高级模式,方便调试。

sudo apt install 'linux-image-5.0.0-23-generic'
sudo apt install 'linux-headers-5.0.0-23-generic'

而当数据依赖包在从github进行下载时,可能会出现连接失败或者连接超时等问题,则可采用以下方案进行解决:


git config --global --unset http.proxy 
git config --global url."https://ghproxy.com/https://github.com".insteadOf "https://github.com"

该语句在执行中会报错git clone -b v0.2.0 https://github.com/PrincOwO/gtp5g.git,但是在执行过程中会出现问题。

解决方法:

git clone -b v0.2.0 https://github.com/PrinzOwO/gtp5g.git

5G核心网架构:

5G网络由众多网元构成,每个网元都有特定的功能,UE为用户设备,(R)AN为(无线)接入网络,DN为数据网络,红框内为核心网中的网元集合。

5G核心网采用基于服务的系统架构,在部署上采用虚拟机和容器的方式,采用软件定义网络(SDN)和网络功能虚拟化(NFV)的技术,将控制与转发分离,技术成本大幅降低,使网络更加开放,且具有编程能力。

5G核心网中拥有众多的网元,如AMF、UDM、NRF等,共同承担起核心网的功能,其中与用户注册管理关系最密切的网元是AMF网元,从图中也可看出,AMF网元与基站通过N2口进行通信。

用户注册管理:

用户注册管理是用于用户和网络之间进行注册和注销,在网络建立上下文的过程,用户想要获取网络提供的业务必须先向网络进行注册。

用户注册管理有四个场景:

1 用户初次注册网络

2 用户周期性注册网络

3 用户位置变更引起的网络重新注册 

4 紧急业务引发的网络注册

5G终端初始注册接入核心网及会话建立流程:

5G终端初始注册接入核心网并建立会话的流程主要有以下几个步骤:

1 UE开机,连接到5G基站,发送5G网络注册请求,基站在该过程中透明,只会转发用户的注册请求到5G核心网。

2 在收到用户的注册请求时,因为是初始注册,核心网没有用户的上下文信息,所以就会向用户发送身份验证请求。

3 用户在验证了验证请求的真实性后,会向核心网发送身份验证信息,再次发送注册请求到核心网。

4 核心网收到用户的身份验证信息后,对用户的信息进行验证鉴权,如果通过,就返回注册接收消息,并且发送用户上下文初始化请求,根据用户的回应设置用户的上下文。

5 设置完成后,用户会发送PDU会话建立请求。

6 核心网接受了PDU建立请求后,设置相应的PDU资源。

7 用户可以与核心网进行通信,开始发送和接收数据,进行业务访问。

5G AKA协议核心原理:

参考TS33.501、TS33.102 5G AKA认证协议核心是基于鉴权向量AV的产生与传输、MAC的验证、RES的认证,其核心简要概括如下:

核心网 AV的产生

F1-F5算法通常采用Milenage算法。

计算消息认证码(MAC):MAC = F1K(SQN || RAND || AMF);

计算期望的认证应答(XRES):XRES = F2K (RAND);

网络认证令牌(AUTN):AUTN = (SQN⊕AK )|| AMF || MAC;

AV:AV=RAND||XRES||CK||IK||AUTN;

核心网发起认证时将AV传递到 UE。

UE 对于核心网AV的认证:

验证SQN是否在正确范围内

消息序列号(SQN):(SQN⊕AK )⊕AK

预期的计算消息认证码(XMAC):F1K(SQN || RAND || AMF);

UE认证的核心网即MAC与XMAC之间的比对。

核心网对于UE RES的认证:

核心网在生成AV的同时会记录XRES,UE认证MAC的同时会将RES返回核心网进行认证。

核心网认证UE核心即 RES与XRES之间的比对。

认证模型中K是如何来的?

5G 各网元密钥采用层次化的派生体系

每一个层级的密钥都有对应的KDF密钥导出函数进行推导,如K->Kausf 的推导,Kausf->Kseaf 的推导,具体参见《TS 33.501 5G 系统安全架构和过程》的 Figure 6.2.2-1:网络节点的5G密钥分发和密钥导出方案 。

至于UE 与核心网双向认证的模型中的K,应该就是本密钥层次模型中的顶层PermanentKey。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/667690.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【React】memo()、useCallback()、useMemo()的区别及使用场景

介绍React中三个hooks方法memo useCallback useMemo的作用及使用场景示例 一、React.memo():用来控制函数组件的重新渲染,将组件作为参数,函数的返回值是一个新的组件。二、React.useCallback():将回调函数及依赖项数组作为参数传…

【Python】Unindent does not match any outer indentation level

这个问题一般是代码缩进问题导致的,规范代码缩进格式即可,如图: 这个问题是因为报异常的那行代码下的方法缩进问题导致,def calendar_f(): 方法名前面多了一个空格。 删除空格即可解决此问题。

【python】python爱心代码【附源码】

一、实现效果: 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 二、完整代码: import math import random import threading import time from math import sin, cos, pi, log from tkinter import * import re# 烟花相关设置 Fireworks [] m…

Fink CDC数据同步(五)Kafka数据同步Hive

6、Kafka同步到Hive 6.1 建映射表 通过flink sql client 建Kafka topic的映射表 CREATE TABLE kafka_user_topic(id int,name string,birth string,gender string ) WITH (connector kafka,topic flink-cdc-user,properties.bootstrap.servers 192.168.0.4:6668…

iview 页面中判断溢出才使用Tooltip组件

使用方法 <TextTooltip :content"contentValue"></TextTooltip> 给Tooltip再包装一下 <template><Tooltip transfer :content"content" :theme"theme" :disabled"!showTooltip" :max-width"300" :p…

滴滴面经相关知识整理(基于newbing)

Vue2和Vue3有许多不同之处&#xff0c;以下是一些主要的区别&#xff1a; 数据劫持方式&#xff1a;Vue2主要是通过Object.defineProperty劫持数据&#xff0c;对于新增的对象属性&#xff0c;使用数组修改元素&#xff0c;视图无法更新1。 性能和体积&#xff1a;Vue3的运行速…

Spring auto-configuration的使用

简介 在构建Maven项目时&#xff0c;使用Spring Boot自动配置可以使项目更易于集成和使用。本文将向您展示如何创建一个Maven项目&#xff0c;并使用Spring Boot自动配置使其能够被其他组件方便地依赖。 步骤 1. 添加Spring Boot Starter依赖 确保您的Maven项目具有必要的S…

跟着cherno手搓游戏引擎【20】混合(blend)

抽象&#xff1a; Renderer.h: #pragma once #include"RenderCommand.h" #include "OrthographicCamera.h" #include"Shader.h" namespace YOTO {class Renderer {public:static void Init();static void BeginScene(OrthographicCamera& …

天拓四方:边缘计算网关功能、特点与应用举例

传统的数据处理方式面临网络延迟、带宽限制和安全风险等问题。为了解决这些问题&#xff0c;边缘计算技术应运而生&#xff0c;而边缘计算网关作为其核心组件&#xff0c;正发挥着越来越重要的作用。边缘计算网关位于数据源和云数据中心之间。它具备数据采集、协议转换、数据处…

Oracle 执行计划(Explain Plan)

执行计划&#xff1a;一条查询语句在 ORACLE 中的执行过程或访问路径的描述。即就是对一个查询任务&#xff0c;做出一份怎样去完成任务的详细方案。 如果要分析某条 SQL 的性能问题&#xff0c;通常我们要先看 SQL 的执行计划&#xff0c;看看 SQL 的每一步执行是否存在问题。…

视觉SLAM十四讲学习笔记(一)初识SLAM

目录 前言 一、传感器 1 传感器分类 2 相机 二、经典视觉 SLAM 框架 1 视觉里程计 2 后端优化 3 回环检测 4 建图 5 SLAM系统 三、SLAM 问题的数学表述 四、Ubuntu20.04配置SLAM十四讲 前言 SLAM: Simultaneous Localization and Mapping 同时定位与地图构建&#…

交友系统---让陌生人变成熟悉人的过程。APP小程序H5三端源码交付,支持二开。

随着社交网络的发展和普及&#xff0c;人们之间的社交模式正在发生着深刻的变革。传统的线下交友方式已经逐渐被线上交友取而代之。而同城交友正是这一趋势的产物&#xff0c;它利用移动互联网的便利性&#xff0c;将同城内的人们连接在一起&#xff0c;打破了时空的限制&#…

机器视觉系统设计:视觉系统中的成像基准

开发视觉系统的一个重要活动是验证其部署是否符合工程规范。一个成功的视觉应用程序的两个特点是它无需工程师干涉情况下正常工作了多长时间&#xff0c;以及它的维护和复制部署是多么简易。实现所有如上所述目标的一个关键步骤是确定视觉系统的基准。 在这里使用的上下文中&a…

移动云ONAIR媒体云全解读!媒体内容数字化融合一站式解决方案

当下&#xff0c;传统媒体面临着诸多挑战&#xff0c;如何利用信息技术提升内容的质量、形式和分发效率&#xff0c;成为媒体行业的迫切需求。移动云作为数字中国建设的“主力军”&#xff0c; 立足于新兴媒体与云计算市场的变化与需求&#xff0c;推出了ONAIR 媒体云解决方案&…

HTTP/2

HTTP/2核心 二进制帧 HTTP 2.0中所有加强性能的核心带你在于此–二进制传输 之前的HTTP/1的版本中&#xff0c;传输数据方式–文本传输 在 HTTP 2.0 中&#xff0c;有两个非常重要的概念&#xff0c;分别是帧&#xff08;frame&#xff09;和流&#xff08;stream&#xff0…

vue2学习笔记(2/2)

vue2学习笔记&#xff08;1/2&#xff09; vue2学习笔记&#xff08;2/2&#xff09; 文章目录 1. 初始化脚手架2. 分析脚手架&render函数文件结构图示及说明main.jsindex.htmlApp.vueSchool.vueStudent.vue 关于不同版本的Vue修改默认配置vue.config.js配置文件 3. ref属…

点灯科技esp32 idfv5.1组件库

最近研究了一下点灯科技的app&#xff0c;看到官方提供的esp32 idf组件库支持v4.3/v4.4,所以就将其移植一下&#xff0c;让其支持v5.1版本&#xff0c;下载地址如下&#xff1a; https://github.com/guxiangguo/blinker-esp-idf_v5.1.git https://gitee.com/gu-xiangguo/blin…

08. 【Linux教程】CentOS 目录介绍

CentOS 目录介绍 前面小节介绍了如何安装并登录连接 CentOS 系统&#xff0c;本小节围绕 CentOS 系统的目录&#xff0c;介绍其各个目录的作用&#xff0c;方便读者以后在工作中很好地将项目和软件归类存储&#xff0c;熟悉 CentOS 系统各个目录的功能介绍&#xff0c;有助于加…

035 Arrays类

示例 int[] nums new int[10]; // fill Arrays.fill(nums, 666); System.out.println(Arrays.toString(nums)); // sort nums new int[]{1, 3, 5, 7, 9, 2, 4, 6, 8}; Arrays.sort(nums); System.out.println(Arrays.toString(nums)); // equals int[] nums2 new int[]{1,…

【数据分享】1929-2023年全球站点的逐日平均能见度(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff0c;说到常用的降水数据&#xff0c;最详细的降水数据是具体到气象监测站点的降水数据&#xff01; 有关气象指标的监测站点数据&#xff0c;之前我们分享过1929-2023年全…