自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 问答 (1)
  • 收藏
  • 关注

原创 大数 旋转(循环位移)

大数的旋转位移算法

2022-09-05 23:36:30 328 1

原创 vim设置

vim 设置使用

2022-07-12 10:30:36 368

原创 5GC简介

5g网络简介

2022-07-11 17:48:14 7966

原创 Factorio linux 服务器 无法连接到主机问题

安全起见,准备一个用户 factorioadduser factorio 修改密码passwd factorio下载服务端程序wget https://factorio.com/get-download/stable/headless/linux64查看glibcstrings /usr/lib64/libc.so.6 | grep ^GLIBC_ 需要有2.18版本,有的话跳过解压tar -xvf linux64 创建存档factorio/bin/x64/factorio --cr

2022-04-29 13:50:11 1782

原创 5GC 会话建立流程

PUD Session5G网络将终端和外部网络之间建立的这一通路,称为一个PDU Session(会话)。用于实现和外部数据网络(DNN)的数据交互。至于为什么5G把会话管理流程单独拿出来,而不是像4G似的直接和注册流程一起建立会话?5g用户下很多物联网用户发送数据少,甚至发数据也不需要PDU Session,和用户同步地建立会话会造成很大的资源浪费PDU会话建立的情况一个UE启动的PDU会话建立过程。一个终端在3GPP与非3GPP之间启动的PDU会话切换。一个UE启动的PDU会话从EPS切换

2022-03-23 17:32:18 4009

原创 UDM的服务

相关术语UE’s identity-----------------------------------------------------------/{supi}type of the requested information--------------------------------/nssaiUDM提供的服务Nudm_SubscriberDataManagement Service数据签约管理服务Nudm_UEContextManagement ServiceNudm_U.

2022-03-18 10:10:37 2647

原创 5GC UE注册过程中AMF和UDM的交互

此文是AMF在完成UE鉴权后,向UDM获取签约数据的过程UDM选择AMF会使用SUPI通过NRF选择UDM。AMF在UDM中保存UE上下文消息方向 :NEW AFM -> UDM消息名称:Nudm_UEContextManagement_RegistrationHTTP方法:PUT (使用put方法修改AMF注册信息,使用PATCH更新信息有限)URL:{apiRoot}/nudm-uecm/v1/{ueid}/registrations/amf-3gpp-accessamf_

2022-03-17 15:19:23 2693

原创 5G UE鉴权流程详解 UE Authentication

5gUE认证过程,UDM参与认证过程

2022-03-16 17:13:38 7337

原创 http2简介

多路复用同个域名只需要占用一个 TCP 连接,消除了因多个 TCP 连接而带来的延时和内存消耗。队头阻塞(Head-of-Line Blocking)正如你所见的,浏览器客户端浪费了大量的时间等待资源返回。主要是因为HTTP/1无法通过单一的连接来进行并发的请求,所以浏览器通常情况下采用打开多个连接的方式来加速获取资源的进程。奢侈的连接然而使用打开多个连接来辅助加速的方式,从计算机网络的角度来看,每打开一个链接都是非常奢侈的。由于建立连接的花销非常大,目前的浏览器都会对HTTP/1.1的最大连接

2022-03-10 17:33:47 2789

原创 centos 安装docker 错误 Unable to find a match: docker

centos8 安装docker报错Error: Unable to find a match: docker1.首先更新一下:yum -y update2.centos8默认使用podman代替docker,所以需要containerd.io,那我们就安装一下就好了yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm

2022-03-10 15:30:22 2175

原创 5G核心网

UDMUDM Unified Data Management,统一数据管理功能,提供用户的签约数据管理以及协助AUSF完成用户认证和身份解密通过生成3GPPAKA身份验证凭据,通过对SUPI的存储和管理,对用户进行识别处理,对用户进行合法性验证。通过UDM,可以对非法用户进行有效拦截,UDM使用可能存储在UDR中的用户数据(包括身份验证数据),在这种情况下,UDM实现应用流程逻辑,不需要内部用户数据存储。功能UE 服务的 NF 注册管理(例如,为 UE 存储服务 AMF,为 UE PDU 会

2022-03-10 11:54:37 5295

原创 shell 脚本

shell脚本1.常见脚本文件,拓展名为.sh,如shellscript.sh,拓展名不影响使用2.文件开头注明解释器,如#!/bin/bash3.文件添加执行权限 chmod +x shellscript.sh4.运行文件变量变量赋值#显示赋值my_name="Sun"#等号和变量名之间不能有空格#语句给变量赋值for file in 'ls /etc'for file in $(ls /etc)#循环获取 /etc 目录下的文件名使用变量使用定义过的变量,在变量名前

2022-03-09 14:18:48 66

原创 linux常用命令

wcwc [选项] 文件名-c 统计字节数。-l 统计行数。-w 统计字数。-L统计最长行的字节数headhead [参数] [文件名]-n 指定行数 默认10行-f 循环读取,用于查看日志等经常改变的文件head -n 5 filename #显示头五行tail -n 5 filename #显示后五行seqseq [选项] 首数 间隔 尾数seq 0 7 500-f 指定输出格式-w 指定输出数字同宽-s 指定分隔符,默认分隔符是/n(回车)grep

2022-03-09 14:18:35 499

原创 5G网络的构成

5G网络5G网络大致分为三个部分,无线接入网,承载网,核心网接入网RAN Radio Acess Network 接入网运营商基站就属于接入网的设备之一基站包括BBU、RRU、射频天线三部分BBU:基带处理单元,主要负责信号调制RRU:远端射频单元,主要负责射频处理天线:主要负责线缆上导行波和空气中空间波之间的转换承载网承载网:负责承载数据、汇聚数据的网络最有代表性的承载网设备,就是PTN(Packet Transport Network,分组传送网)和OTN(Optical

2022-03-08 17:43:51 10858

原创 Unicode utf8 utf16 在c++中的使用

在网络通讯中常使用Unicode编码和utf8编码传输数据utf8是为服务Unicode的一种可变长度字符编码,它的优势在于对ascii完全兼容,ascii在utf8编码为一个字节,在内存上与ascii编码完全相同。utf16编码一个字符需要2或者4个字节(在windows下unicode编码就是指UTF16) //转换为c字符串的一种方法 std::wstring wstr = L"宽字符串"; const wchar_t* t= wstr.c_str(); int len = wstr

2021-12-22 16:56:21 3286

原创 c++ 返回值 中使用std::move

std::vector<char> RequestCmder::getRefreshBeds(){ std::vector<char> data = {(char)0xfd, (char)0xfd, (char)0xfd, (char)0xfd, 0x01, 0x01, 0x05, 0x00, 0x02, 0x01, 0x03, 0x00, 0x0d}; return data;}对返回值为自定义

2021-12-21 16:09:01 2337

原创 c++ atomic

原子操作C++11对数据进行了更为良好的抽象,引入"原子数据类型"/atomic类型,以达到对开发者掩盖互斥锁、临界区的目的。C++11 对常见的原子操作进行了抽象,定义出统一的接口,并根据编译选项/环境产生平台相关的实现。新标准将原子操作定义为atomic模板类的成员函数,囊括了绝大多数典型的操作——读、写、比较、交换等。std::atomic_flagstd::atomic_flag是一个原子的布尔类型,可支持两种原子操作:test_and_set:将atomic_falg的值设置成true,

2021-12-02 11:42:21 285

原创 enable_shared_form_this

使用场合:当一个类A被share_ptr管理,且在类A的成员函数里需要把当前类对象作为参数传给其他函数时,就需要传递一个指向自身的share_ptr。class A : public enable_shared_from_this<A> { };A继承enable_shared_from_this后,为A提供了share_from_this成员函数,可以返回自身为资源的智能指针。为什么使用share_from(this)的形式返回share_ptr指针:使用原始指针构造share

2021-12-01 15:22:38 666

原创 std库数据结构

string字符串和char数组区别在C语言中,把一个字符串存入一个数组时,也把结束符 ‘\0’存入数组,并以此作为该字符串是否结束的标志。在C++中,提供一个string类,string类会提供 size接口,可以用来判断string类字符串是否结束,就不用’\0’来判断是否结束。string::assignbasic_string& assign(const basic_string& __str)basic_string& assign(basic_string&a

2021-11-28 16:32:32 3011

原创 git 使用教程 git bash

本文记录一些git 的使用方法,主要为git bash使用。因为不常用git,每次使用都会忘记,在此记录下傻瓜用法。git bash windows下安装git自带安装,为达到和linux系统下使用git相同的效果,一些bash命令和linux相同。cd #移动目录pwd #当前目录mkdir #新建文件夹touch #新建文件rm #删除文件rm -r #递归删除,可以删除文件夹及内容用户设置用户git config --global user.name Sunwukongg.

2021-11-25 16:56:05 744

原创 c++正则表达式regex

正则表达式:正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。#include<resgex>基本类型basic_regextypedef basic_regex<char> regex;typedef basic_regex<wchar_t> wregex; //用于wstring匹配basic_regex实例化std::regex("/bed/\\d{1,3}"); //两个反斜杠是因为字符串的\会先转义构造函数中还有一

2021-11-19 15:36:15 728

原创 std::map与std::unordered_map

map和unordered_map都是键值对的储存结构。但二者存在不同,运用场景也不同。std::mapmap支持键值的自动排序,底层机制是红黑树,红黑树的查询和维护时间复杂度均为O(logn)O(logn)O(logn),但是空间占用比较大.std::unordered_mapunordered_map底层机制是哈希表,通过hash函数计算元素位置,其查询时间复杂度为O(1)O(1)O(1),但是建立hash表用时较大。从两者的底层机制和特点可以看出:map适用于有序数据的应用场景,unord

2021-11-19 11:12:14 2023

原创 模板方法模式

Template Method 模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。举例:non-virtual interface 手法令客户通过public non-virtual 成员函数间接调用private virtual 函数。class GameCharacter {public: int healthValue() const //derived classes不重新定义它 {

2021-11-18 17:26:48 147

原创 单例模式 模板类实现详解

单例模式(Singleton Pattern)属于创建型模式。保证一个类仅有一个实例,并提供一个访问它的全局访问点。懒汉式:在需要用到实例时才创建实例,普通懒汉式不支持多线程,加锁的懒汉式效率比较低饿汉式:类加载时就创建实例,在没使用到实例时会浪费内存下面是一份单例模式的模板类代码,通过atomic实现线程安全的懒汉式单例template <class T>class Singleton : public NonCopyable{ //不可复制构造private: s

2021-11-18 16:59:41 789

原创 std::function和std::bind和lambda函数

C++中可调用对象的虽然都有一个比较统一的操作形式,但是定义方法五花八门。为程序功能实现提供多种可行方式时,也让可调用对象的统一管理变得麻烦。熟悉std::function,std::bind,lamdba函数这三把利器可以让你畅行接口世界。std::functionstd::function 是一个可调用对象包装器,是一个类模板,可以容纳除了类成员函数指针之外的所有可调用对象,它可以用统一的方式处理函数、函数对象、函数指针,并允许保存和延迟它们的执行。std::function 的实例能存储、复制及

2021-11-16 17:00:15 962

原创 I/O模型

io模型对比io模型读写操作和阻塞阶段阻塞io程序阻塞于读写函数io复用程序阻塞于io复用系统调用,但同时可以监听多个io事件,对io本身读写操作是非阻塞的SIGIO信号信号触发读写就绪事件...

2021-11-11 14:17:02 812

原创 同步异步小记

同步与异步"同步"是指一个进程发起请求之后, 需要一直等待返回的信息, 而"异步"是指可以进程发起请求之后, 可以处理其他的事情, 等到信息返回之后再次通知这个进程处理(如添加回调函数).异步与多线程异步是一种技术功能要求,多线程是实现异步的一种手段。异步适用于io密集型操作,多线程适用于计算密集型操作。同步异步更强调的是消息反馈机制,即调用后是否需要等待返回结果。单线程下,异步I/O操作也能实现。硬盘,显卡这些硬件是可以不消耗CPU资源而自动与内存交换数据的,这也是实现异步的基本条件,当数据交互

2021-11-09 12:00:53 52

原创 c++右值引用,移动语义,完美转发

c++左值和右值左值的英文简写为“lvalue”,右值的英文简写为“rvalue”。lvalue 是“loactor value”的缩写,可意为存储在内存中、有明确存储地址(可寻址)的数据,而 rvalue 译为 “read value”,指的是那些可以提供数据值的数据(不一定可以寻址,例如存储于寄存器中的数据)。通常情况下,判断某个表达式是左值还是右值,最常用的有以下 2 种方法。可位于赋值号(=)左侧的表达式就是左值;反之,只能位于赋值号右侧的表达式就是右值。有名称的、可以获取到存储地址的表达

2021-11-08 23:14:49 232

原创 boost::asio小记

boost::asio::io_serviceio_service对象是asio框架中的调度器,所有异步io事件都是通过它来分发处理的(io对象的构造函数中都需要传入一个io_service对象)。io_servie 实现了一个任务队列,io_servie最常用的两个接口是post和run,post向任务队列中投递任务,run是执行队列中的任务,直到全部执行完毕,并且run可以被N个线程调用。Io_service是完全线程安全的队列。asio::io_service io_service;asio::

2021-11-08 16:09:17 1521

原创 数据库事务隔离性的四大级别

串行化这是最高的隔离级别,它通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。简言之,它是在每个读的数据行上加上共享锁。在这个级别,可能导致大量的超时现象和锁竞争。可重复读MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。不过理论上,这会导致另一个棘手的问题:幻读 (Phantom Read)。简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影” 行。读已提交这是大多数数.

2021-11-07 23:40:59 227

原创 数据库基础知识

ACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。原子性一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被恢复(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

2021-11-05 12:39:12 100

原创 智能指针随笔

auto_ptr托管资源,auto_ptr析构时会自动释放所保管的资源而免去忘记或因各种原因忘记delete的情况。auto_ptr被销毁时会自动删除它的指向之物只有一个auto_ptr对象指向一个资源,当auto_ptr被复制时,资源的拥有权会被被复制物转到目标物。被复制的指针会变成nullptr,复制所得指针将取得资源的唯一拥有权。share_ptrshare_ptr 包含引用计数,share_ptr复制时会增加引用计数,而在引用计数为0时才会删除原始资源。tr1::share_

2021-10-31 23:10:39 50

原创 海边的贝壳

如果真有错误发生————如果close的确抛出异常————而且DBConn吞下该异常或结束程序,客户没有立场抱怨,毕竟他们曾有机会第一手处理问题,而他们选择了放弃。 ————effective c++ 条款8如果你声明自己的copying函数,意思就是告诉编译器你并不喜欢缺省实现中的某种行...

2021-10-31 23:06:57 258

原创 C++ 四种新式转换

const_cast<T> (expression)//用于将对象的常量性移除,只有const_cast能做到//移除const 和 volatile 属性dynamic_cast<T> (expression)//安全的向下转型 用于子类转父类//父类转子类,但访问子类时会越界// 耗费重大运行成本//转换失败返回NULL//基类必需含有虚函数,保持多态性reinterpret_cast<T> (expression)//意图执行低级转型.

2021-10-26 00:22:09 90

原创 sql 基础语法

distinct 去重# 注意 DISTINCT 要放到列名的前面。SELECT DISTINCT university from user_profilelimit 限制查询数量select * from tableName limit i,n# tableName:表名# i:为查询结果的索引值(默认从0开始),当i=0时可省略i# n:为查询结果返回的数量# i与n之间使用英文逗号","隔开in 查找多个值SELECT column_nam...

2021-10-26 00:06:02 36

原创 c++ 继承

公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。1. 公有继承(public)公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。2. 私有继承(private)私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。3. 保护继承(protected)保护继承的特点是基类的所有公有成员和保护成员

2021-10-14 16:41:01 39

原创 网络编程基础api

主机字节序与网络字节序 网络字节序:大端序: 低地址储存高位字节 主机字节序:小端序:低地址储存低位字节linux 字节序转换#include <arpa/inet.h> uint32_t htonl(uint32_t hostlong); uint16_t htons(uint16_t hostshort); uint32_t ntohl(uint32_t netlong); ...

2021-10-14 16:05:29 96

原创 c++ 内存管理

代码段数据段bss堆栈*Code Segment(代码段或Text Segment)中存放着程序的机器码和只读数据,可执行指令就是从这里取得的。如果可能,系统会安排相同程序的多个运行实体共享这些实例代码。这个段在内存中一般被标记为只读,任何对该区的写操作都会导致段错误(Segmentation Fault)。*Data Segment中存放已初始化的全局或静态变量。*BSS中存放未初始化的全局或静态变量。*Heap(堆),堆的大小并不固定,可动态扩张或缩减。其分配由m

2021-10-08 09:14:07 55

原创 stl常用数据结构

setset 是STL中的集合,具有排异#include set的头文件 seta set的定义 函数 empty 判断集合是否为空 insert(“aa”) 插入元素到集合中 clear 清空集合 erase(val) 删除集合中的某元素 begin() 返回第一个元素的迭代器 end() 返回最后一个元素后一个迭代器 size() 返回元素个数 count(val) 返回计算val元素...

2021-06-25 14:10:58 102

原创 linux回射服务器

echoserver#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <stdlib.h>#include <stdio.h>#include <errno.h>#include <string.h&

2021-06-24 15:38:21 81

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除