自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

烟云的计算

若抽象才是美之定义,追求明确性的我们是否象征着丑陋。

  • 博客(36)
  • 资源 (3)
  • 论坛 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 5G NGC — NEF N33 API

目录文章目录目录前文列表参考文献NEF 提供以下功能Network Exposure Function Northbound APIsProcedures for MonitoringProcedures for Device TriggeringProcedures for resource management of Background Data TransferProcedures for CP Parameters ProvisioningProcedures for PFD Managemen

2020-06-29 23:23:45 1247 3

原创 OpenNESS 的 5GC 接入模块

目录文章目录目录5G Components of OpenNESSCNCAAFNEFOAM5G Components of OpenNESS5G Components of OpenNESS 包含了:CNCA、AF、NEF、OAM 和一个 WEB UI。用户可以通过 kubectl Plugin 或 Web UI 操作 CNCA,CNCA 与 AF 之间通过 RESTful API 进行通信,而 AF 与 NEF N33 接口之间通过 3GPP 标准要求的 HTTP/2 RESTful API 进行

2020-06-28 23:21:11 2044

原创 数据结构 — 跳表

目录文章目录目录跳表跳表跳表是在双向链表之上加上多层索引构成的,相对于双向链表,支持快速查找,更新,删除,所以适用于需求灵活的逻辑控制场景。假设我们现在要查找区间 7- 13 的记录,就不用从头开始查找了,只要在上图中的二级索引开始找即可,遍历三次即可找到链表的区间位置,时间复杂度是 O(logn),非常快,这样看来,跳表是能满足我们的需求的,实际上它的结构已经和 B+ 树非常接近了,只不过 B+ 树是从平衡二叉查找树演化而来的而已。...

2020-06-26 20:32:35 751

原创 网络编程 — TCP/UDP Socket

目录文章目录目录Linux 下的 Socket API 接口创建 Socket绑定 Socket请求建立 Socket 连接监听 Socket接受请求关闭连接数据的发送和接收send 发送函数recv 接收函数sendto 发送函数recvfrom 接收函数TCP Socket 示例UDP 通信流程Linux 下的 Socket API 接口创建 Socketint socket(int af, int type, int protocol);af:AF(Address Family,地址族)

2020-06-26 12:29:27 843

原创 C 语言编程 — 结构体的数据类型转换

目录文章目录目录数组类型强制类型转换为结构体结构体之间的强制类型转换数组类型强制类型转换为结构体先看一个例子:#include <stdio.h>int main(void) { unsigned char arr[] = "0123456789abcdefghijk"; struct A { int a; char b; char c; char d; in

2020-06-25 21:21:49 934

原创 C 语言编程 — 内存对齐

目录文章目录目录数组强制类型转换为结构体结构体的内存对齐pragma pack(value) 宏指令内存对齐结构体之间的强制类型转换示例数组强制类型转换为结构体先看一个例子:#include <stdio.h>int main(void) { unsigned char arr[] = "0123456789abcdefghijk"; struct A { int a; char b; char

2020-06-25 17:18:07 713

原创 互联网协议 — HTTP/3 超文本传输协议第 3 版

目录文章目录目录HTTP/3HTTP/3 与 HTTP/2 的比较HTTP/3 的特性QUIC 流HTTP/3 帧(frame)HTTP 请求HTTP 响应QPACK 头部使用 Alt-svc 自举服务器推送HTTP/32018 年,基于 QUIC 协议的 HTTP(HTTP over QUIC)也就是 HTTP/3,正式被确定为下一代网络规范。基于 QUIC 的 HTTP/3 的范例和概念没有改变。它含有头部(header)和正文(body),请求和回复,还有动词(verb)、Cookie 和缓存。

2020-06-25 11:17:30 790

原创 互联网协议 — TLS 传输层安全协议

目录文章目录目录对称加密和非对称加密SSL/TLSTLS 1.3 更快的访问速度TLS 1.3 更强的安全性OpenSSL对称加密和非对称加密加密的过程就是把 “明文” 变成 “密文” 的过程。反之,解密的过程,就是把 “密文” 变为“明文”。在这两个过程中,都需要一个关键的 “密钥” 来参与数学运算。所谓 “对称加密”,即:“加密” 和 “解密” 使用相同的密钥。这个比较好理解。就好比使用 7zip 或 WinRAR 创建一个带密码的加密压缩包。当你下次要把这个压缩文件解开的时候,你需要输入同样的

2020-06-24 18:43:40 1223

原创 Linux 操作系统原理 — 日志结构的文件系统与日志文件系统

目录文章目录目录日志结构的文件系统日志文件系统日志结构的文件系统技术的改变会给当前的文件系统带来压力。这种情况下,CPU 会变得越来越快,磁盘会变得越来越大并且越来越便宜(但不会越来越快)。内存容量也是以指数级增长。但是磁盘的寻道时间(除了固态盘,因为固态盘没有寻道时间)并没有获得提高。这些因素结合起来意味着许多系统文件中出现性能瓶颈。为此,Berkeley 设计了一种全新的文件系统,试图缓解这个问题,这个文件系统就是日志结构文件系统(Log-structured File System,LFS)。

2020-06-23 15:14:15 1884

原创 OvS v.s. OvS-DPDK v.s. VPP

目录文章目录目录参考文献OvS 架构OvS-DPDK 架构OvS-DPDK 在 VNF 中的应用参考文献https://networkbuilders.intel.com/docs/open-vswitch-enables-sdn-and-nfv-transformation-paper.pdfOvS 架构openvswitch.ko :在内核态负责 “快速路径” 的数据转发。转发靠流表来完成,每一个流表都包含很多的匹配项(match fields)和相应的动作(actions)。match

2020-06-23 13:40:21 1931

原创 C 语言编程 — 结构化程序流的汇编代码与 CPU 指令集

目录文章目录目录为什么要保留汇编语言顺序程序流条件程序流循环程序流函数调用栈的工作原理为什么要保留汇编语言汇编语言是与机器语言最接近的高级编程语言(或称为中级编程语言),汇编语言基本上与机器语言对应,即汇编指令和计算机指令是相对匹配的。虽然汇编语言具有与硬件的关系密切,占用内存小,运行速度快等优点,但也具有可读性低、可重用性差,开发效率低下等问题。高级语言的出现是为了解决这些问题,让软件开发变得更加简单高效,易于协作。但高级语言也存在自己的缺陷,例如:难以编写直接操作硬件设备的程序等。所以为了权衡上

2020-06-22 23:49:02 1080

原创 C 语言编程 — 程序的装载与运行

目录文章目录目录C 程序在操作系统中的装载与运行ELF 文件反汇编 ELF 文件C 程序在操作系统中的装载与运行一个程序在操作系统上运行需要经历以下阶段:第一阶段:得到可执行文件编译(Compile)汇编(Assemble)链接(Link)第二阶段:装载运行装载器(Loader)将可执行文件载入到内存CPU 从内存中可执行文件的程序入口开始读取指令和数据,开始真正执行程序。编译和汇编的过程在上文中已经提到了,下面再继续介绍链接的过程。子程序// add_lib.c

2020-06-22 23:46:57 960

原创 C 语言编程 — 程序的编译流程

目录文章目录目录C 程序的编译流程预处理编译汇编链接编译多个源文件C 程序的编译流程虽然我们称 GCC 是 C 语言的编译器,但由 C 语言源代码文件到生成可执行文件的过程不仅仅是编译的过程,而是要经历以下四个相互关联的步骤:预处理(Preprocessing)编译(Compilation)汇编(Assembly)链接(Linking)示例代码:#include<stdio.h>int main(void){ printf("Hello World!\n"

2020-06-22 23:43:44 953

原创 C 语言编程 — 大小端区分

目录文章目录目录大端、小端区分方式 1区分方式 2大端、小端大端:高位字节放在内存的低地址端,低位字节放在内存的高地址端,CPU 对操作数的存放方式从高字节到低字节。小端:低位字节放在内存的低地址端,高位字节放在内存的高地址端,CPU 对操作数的存放方式从低字节到高字节。假设我们的内存是这样的:我们要存一个数据 0x44332211 到这块内存里面去如果系统是 小端模式 的话,存储方式如下图:如果系统是 大端模式 的话,存储方式如下图:区分方式 1通过判断内存的低地址是否为 1 来区

2020-06-22 11:57:17 681

原创 数据结构 — 栈

目录文章目录目录栈栈的特性与结构栈的操作集伪代码示例声明栈结构体定义栈操作函数应用示例括号匹配问题:参考文档栈首先需要说明本文讨论的栈(Stack)是一种数据结构,而非用户态虚拟存储器中的空间结构。作为数据结构的栈是一种特殊的线性表,其数据成员也与线性表一致。区别在于栈是后进先出的,而线性表允许在任意位置插入和删除数据元素。所以,栈也被称作后进先出的线性表,或简称后进先出表。栈的一种应用场景就是改变数据元素序列的顺序,其思路就是:顺序的将数据元素压栈,但却根据需要让数据元素按照预期的时机出栈,从而改

2020-06-21 18:23:48 996

原创 Linux 操作系统原理 — 内存 — 内存分配算法

目录文章目录目录内存分配算法物理内存分配内存碎片伙伴(Buddy)分配算法申请和回收反碎片机制Slab 算法slab 分配器的结构slab 高速缓存分区页框分配器非连续内存区内存的分配虚拟内存的分配内核空间内存分配kmallocvmalloc用户空间内存分配(malloc)malloc 申请内存DMA 内存内存分配算法Linux 系统把物理内存划分 4K 大小的内存页(Page),也称作页框(Page Frame),物理内存的分配和回收都是基于内存页进行,把物理内存分页管理有很多好处。假如系统请求小块

2020-06-20 16:14:01 1273

原创 Linux 操作系统原理 — 内存 — 基于局部性原理实现的内/外存交换技术

目录文章目录目录基于局部性原理实现的内-外存交换技术局部性原理Swap 交换分区基于局部性原理实现的内-外存交换技术虚拟存储器的实现思想就是将内存作为辅存的缓存,使得计算机系统拥有了 主存+辅存(交换空间) 大小的存储空间,同时也拥有了接近于主存的访问速度。局部性原理虚拟存储器的核心思路是根据程序运行时的局部性原理:一个程序运行时,在一小段时间内,只会用到程序和数据的很小一部分,仅把这部分程序和数据装入主存即可,更多的部分可以在需要用到时随时从辅存调入主存。在操作系统和相应硬件的支持下,数据在辅存

2020-06-20 13:42:22 1757

原创 Linux 操作系统原理 — 内存 — KSM 内存页共享的性能问题

目录文章目录目录KSM 内存页共享的性能问题KSM 内存页共享的性能问题KSM(Kernel Shared Memory)是 Linux Kernel 的一种内存共享机制,在 2.6.36 版本引入。简而言之,KSM 用于合并具有相同内容的物理主存页面以减少页面冗余。在 Kernel 中有一个 KSM 守护进程 ksmd,它会定期扫描用户向它注册的内存区域,寻找到相同的页面就会将其合并,并用一个添加了写保护的页面来代替。当有进程尝试写入该页面时,Kernel 会自动为其分配一个新的页面,然后将新数据写

2020-06-20 13:34:33 1206

原创 Linux 操作系统原理 — 内存 — 大页内存

目录文章目录目录前文列表大页内存Linux 的大页内存大页的实现原理大页内存配置透明巨型页 THP大页面对内存的影响大页内存的性能问题前文列表大页内存在页式虚拟存储器中,会在虚拟存储空间和物理主存空间都分割为一个个固定大小的页,为线程分配内存是也是以页为单位。比如:页的大小为 4K,那么 4GB 存储空间就需要 4GB/4KB=1M 条记录,即有 100 多万个 4KB 的页。我们可以相待,如果页太小了,那么就会产生大量的页表条目,降低了查询速度的同时还浪费了存放页面的主存空间;但如果页太大了,又会

2020-06-20 13:32:13 3233

原创 Linux 操作系统原理 — 内存 — 页式管理、段式管理与段页式管理

目录文章目录目录前文列表页式管理快表多级页表基于页表的虚实地址转换原理应用 TLB 快表提升虚实地址转换速度页式虚拟存储器工作的全过程缺页中断段式管理段页式管理前文列表页式管理页式存储管理是一种把主存按页分配的存储管理方式,主存-辅存间信息传送单位是定长的页。对比块式管理而言,因为管理的粒度更细致,所以造成内存页碎片的浪费也会小很多。而缺点也正好相反,由于页不是程序独立模块对应的逻辑实体,所以处理、保护和共享都不及段来得方便。同时也因为页要比段小得多,在 Linux 下通常默认设置为 4KB,所以页

2020-06-20 13:27:25 1649 1

原创 C 语言编程 — const 关键字

目录文章目录目录const 关键字const 与指针const 与函数const 关键字const 是 Constant(常量)的简写,用于定义常量。合理的是 const 关键字可以为程序带来很多好处:定义常量:下述两种方式效果一致,通常使用后者。TYPE const ValueName = value;const TYPE ValueName = value;注:当 conse 定义的常量是一个 “外部连接” 时,可以不进行初始化,仅仅作为声明,编译器认为该常量在程序的其他地方进行了定

2020-06-20 00:43:50 910 2

原创 C 语言编程 — typedef 关键字

目录文章目录目录typedef定义数据类型别名定义无名结构体typedef 和 const 结合使用的陷阱typedeftypedef 顾名思义,主要用于自定义一个数据类型,而数据类型在代码中的体现为 “名字”,所以 typedef 一般的理解是为一个数据类型或变量定义一个 别名。定义数据类型别名typedef unsigned char UINT8;typedef unsigned short

2020-06-20 00:39:36 601

原创 C 语言编程 — 作用域和存储器

目录文章目录目录作用域存储类auto 修饰符register 修饰符static 修饰符extern 修饰符作用域所谓作用域(Scope),就是变量的有效范围。C 语言中所有的变量都有自己的作用域,决定变量作用域的是变量的定义位置。局部变量(Local Variable):定义在函数内部的变量称为局部变量,包括函数形参变量。实参给形参传值的过程也就是给局部变量赋值的过程。全局变量(Global Variable):它的作用域默认是整个程序,也就是所有的源文件,包括 .c 和 .h 文件。注:

2020-06-19 23:59:14 1160

原创 OpenStack 云主机镜像制作

目录文章目录目录镜像支持功能手动制作启动虚拟机环境配置虚拟机环境创建 Glance 镜像使用 OpenStack 环境制作DIB 制作将 OpenStack 云主机制作成镜像镜像支持功能支持密码注入功能(注:通过 nova boot --admin-pass 指令设置初始密码)。支持动态修改密码(注:通过 nova set-password 指令重设密码)。支持根分区大小(根据 Flavor 系统盘参数)自动调整。支持配置初始化(SSH key、hostname 等)。手动制作启动虚拟机

2020-06-19 17:15:26 1646

原创 DPDK — App 的 Makefile 解析

目录文章目录目录DPDK App 的 MakefileDPDK App 的 Makefile本文以 DPDK HelloWorld 示例程序为例。DPDK 版本:18.08# SPDX-License-Identifier: BSD-3-Clause# Copyright(c) 2010-2014 Intel Corporation# binary nameAPP = helloworld# all source are stored in SRCS-ySRCS-y := mai

2020-06-19 14:37:15 1192

原创 DPDK — 扩展私有函数库

目录文章目录目录前言前言在开发 DPDK App 的时候难免会需要在 DPDK 中扩展自己的库或者直接引入第三方静态链接库。

2020-06-18 23:13:01 731

原创 主备 HA 系统中的脑裂问题

目录文章目录目录脑裂(Split Brain)脑裂的原因防止脑裂的办法Fence 技术Keepalived vs Pacemaker参考文档脑裂(Split Brain)在 HA(高可用)系统中,当联系主、从节点之间的 “心跳线路” 断开时,本来作为一个整体、动作协调的 HA 系统,就分裂成为两个独立的节点,即两者都认为自己是 Master。导致两个 “Master” 本能的争抢资源、互相冲突,继而导致严重的后果。对于无状态的 HA 系统而言,无所谓脑裂的存在,但对有状态的 HA 系统而言,必须要严

2020-06-18 00:28:49 2065

原创 QEMU Guest Agent

目录文章目录目录QEMU Guest Agent安装 QGAQGA 接口利用 QGA 的 OpenStack 云主机监控方案QEMU Guest AgentQEMU Guest Agent,简称 QGA,是运行在 QEMU 虚拟机内部的一个守护程序 qemu-guest-agent.service,类似于 VMware tools,主要用于辅助 Hypervisor 实现对 Guest 的管理。官方网站:https://wiki.qemu.org/Features/GuestAgenthttp

2020-06-16 23:17:01 1227 5

原创 数据中心服务器网络接入技术 — VEB、VEPA、VN-Tag

目录文章目录目录前言VEB 技术vSwitchHW VEB虚拟机流量感知技术EVBVEPA多通道技术(Multichannel Technology)BPEVN-Tag前言数据中心虚拟网络接入技术,即:虚拟机接入到物理网络中所激发的网络虚拟化技术。VEB 技术VEB(Virtual Ethernet Bridge,虚拟以太网交换机)是虚拟机与数据中心服务器网络接入层之间的一个新的网络层。常见的有 软件 和 硬件 两种实现方式。vSwitch以软件实现的 vSwitch:实现方式简单,技术兼容

2020-06-14 19:16:14 1459

原创 DPDK — 网卡初始化流程(Intel 82599 ixgbe 网卡驱动示例)

目录文章目录目录总览rte_eth_dev/rte_eth_dev_data 数据结构rte_eth_dev_count 函数rte_eth_dev_configure 函数ixgbe_dev_configure 函数rte_eth_dev_rx_queue_config/rte_eth_dev_tx_queue_config 函数rte_eth_rx_queue_setup 函数ixgbe_dev_rx_queue_setup 函数rte_eth_tx_queue_setup 函数ixgbe_dev_t

2020-06-14 00:14:44 1728

原创 DPDK — CLI 指令行模块

目录文章目录目录DPDK CLI命令行的参数命令行的功能命令行解析初始化命令行参考文档DPDK CLI当我们开发一个 DPDK App 时,可以利用 DPDK 提供的 CLI 工具为程序添加命令行实现。添加一个命令由四部分组成:命令行参数的数据结构命令行的功能实现函数命令行解析命令行初始化命令行的参数struct cmd_obj_add_result { cmdline_fixed_string_t action; cmdline_fixed_str

2020-06-13 22:05:10 21813

原创 DPDK — RTE_LOG 日志模块

目录文章目录目录DPDK 的日志系统RTE_LOG 宏rte_log 和 rte_vlog 函数日志模块初始化第一阶段初始化DPDK 的日志系统在版本较新的 DPDK 中引入了动态类型日志系统,除了原来支持的全局日志输出,也支持了针对单独某个模块的日志输出。本文以 18.05 版本进行阐述。RTE_LOG 宏DPDK 封装好了 RTE_LOG 宏供开发 App 使用,如下:// x86_64-native-linuxapp-gcc/include/rte_log.h/** * Genera

2020-06-13 21:38:13 1396

原创 C 语言编程 — 静态库、动态库和共享库

目录文章目录目录C 语言的库静态链接库生成静态链接库动态链接库生成动态链接库C 语言的库C 语言的库有两种,静态链接库和动态链接库。在 Linux 中,静态链接库命名为 lib*.a,动态库为 lib*.so。这些库文件存在的价值就是抽象出通用的函数,避免重复造轮子。不管是使用哪一种库,程序员必须在程序中通过 include 来包含相应的头文件,并在预编译阶段替换 include 的内容,然后在链接阶段将调用到的库函数从各自所在的档案库中链接到合适的地方。静态链接库静态链接,即:在链接阶段,将源

2020-06-12 23:47:28 804

原创 Redis M/S + Keepalived 主从备份高可用

目录文章目录目录高可用Redis 的高可用Redis M/S + Keepalived部署高可用高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999% 等等)。而在 Redis 的语境中,高可用的含义似乎要更宽泛一些,除了保证提供正常服务(如:主从分离、快速容灾技术等),还需要考虑数据容量的扩展、数据安全不会丢失等。Redis 的高可用在 Redis 中,实现高可用的技术主要包括持久化、复制、哨兵和集群,下面分别说明它们的作用,以及解

2020-06-10 14:55:45 663

原创 Intel x710万兆 SR-IOV 网卡驱动升级

目录文章目录目录环境获取最新驱动安装环境CentOS7Intel x710获取最新驱动官方地址:https://downloadcenter.intel.com/zh-cn/product/83967/Intel-Ethernet-Converged-Network-Adapter-XL710-QDA2安装依赖包:yum install kernel-devel -yyum install gcc -y驱动安装:tar zxvf i40e-2.10.19.82.tar.gz

2020-06-06 13:10:56 1668

原创 C 语言编程 — Makefile

目录文章目录目录参考文档参考文档发现了一篇非常棒的文档,直接留下链接:https://seisman.github.io/how-to-write-makefile/overview.html#

2020-06-01 22:54:04 766

中国联通智能MEC技术白皮书.pdf

中国联通智能MEC技术白皮书.pdf

2020-04-30

5G 核心网关键技术和对业务的支撑.pdf

5G 核心网关键技术和对业务的支撑.pdf

2020-04-30

H3C_CAS安装指导V1.0.docx

H3C_CAS安装指导V1.0.docx

2017-02-15

范桂飓的留言板

发表于 2020-01-02 最后回复 2020-04-09

AWS与Openstack

发表于 2016-09-13 最后回复 2016-09-13

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

TA关注的人 TA的粉丝

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