自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

RToax

Just for Fun

原创 《深入浅出DPDK》学习思维导图

《《深入浅出DPDK》全书在线阅读(附录+推荐阅读)》 《《深入浅出DPDK》读书笔记(一):基础部分知识点》 《《深入浅出DPDK》读书笔记(二):网卡的读写数据操作》 《《深入浅出DPDK》读书笔记(三):NUMA - Non Uniform Memory Architecture 非统...

2020-10-31 20:39:30 43 0

原创 Linux内核代码 分析大纲思维导图

2020-10-31 20:36:11 20 0

转载 Linux网络协议栈:网卡收包分析

网卡收包 内核网络模块如何初始化? 内核如何通过网卡驱动收发数据包? 驱动收到的数据怎么交给协议栈处理? 《Linux网络协议栈:NAPI机制与处理流程分析(图解)》 一,框架 网络子系统中,在本文中我们关注的是驱动和内核的交互。也就是网卡收到数据包后怎么交给内核,内核收到数据包后怎...

2020-10-31 16:32:30 33 1

原创 Linux网络协议栈:NAPI机制与处理流程分析(图解)

Table of Contents NAPI机制 NAPI缺陷 使用 NAPI 先决条件 非NAPI帧的接收 netif_rx -将网卡中收到的数据包放到系统中的接收队列中 enqueue_to_backlog ____napi_schedule函数 NAPI方式 NAPI帧的接...

2020-10-31 15:59:03 59 1

转载 FD.io VPP:探究分段场景下vlib_buf在收发包的处理(dpdk_plugin.so)、rte_mbuf与vlib_buf 关系

Table of Contents rte_mbuf、vlib_buf 关系及内存分布 使用dpdk-收包接口函数 使用dpdk 发包接口函数 总结 参考阅读 在使用vpp老版本copy报文的时候,经常遇到mbuf泄露的问题,根本原因是在vlib_buffer分段场景下没有将rte...

2020-10-31 13:57:17 355 1

转载 ethtool 原理介绍和解决网卡丢包排查思路(附ethtool源码下载)

Table of Contents 1. 了解接收数据包的流程 将网卡收到的数据包转移到主机内存(NIC 与驱动交互) 通知系统内核处理(驱动与 Linux 内核交互) 2. ifconfig 解释 (1) RX errors (2) RX dropped (3) RX overru...

2020-10-31 13:41:42 86 1

转载 FD.io VPP:vlib buffer pool(vlib_buffer) 内存初始化

Table of Contents vlib buffer创建过程 vlib_buffer相关内存初始化 1、函数一开始就查询numa的个数 2、遍历numa节点来初始化 3、查询系统大页大小。 4、接下来就是比较关键的常见buffer pool池初始化。 mempool creat...

2020-10-31 13:05:14 66 0

原创 DPDK 网卡收包流程

Table of Contents 1、Linux网络收发包流程 1.1 网卡与liuux驱动交互 1.2 linux驱动与内核协议栈交互 题外1: 中断处理逻辑 题外2:中断的弊端 2、linux发包流程 2、DPDK 收发包流程 2.1 网卡DMA描述符环形队列 2.2 dp...

2020-10-31 12:45:49 147 1

翻译 图论:柯尼斯堡桥问题、艾科西亚游戏

图论是与线连接的点的网络有关的数学分支。的主题图论起源于休闲数学问题(参见数字游戏),但它已发展成为数学研究的重要领域,并应用于化学,运筹学,社会科学和计算机科学。 图论的历史可以追溯到1735年,当时瑞士数学家莱昂哈德·欧拉(Leonhard Euler)解决了柯尼斯堡桥问题。柯尼斯堡(Kön...

2020-10-31 11:46:55 33 0

翻译 Cilium架构:提供并透明地保护应用程序工作负载之间的网络连接和负载平衡

本文档介绍了Cilium体系结构。它着重于记录用于实现Cilium数据路径的BPF数据路径挂钩,Cilium数据路径如何与容器编排层集成以及在层之间共享的对象(例如BPF数据路径和Cilium代理)。 数据路径 Linux内核在网络堆栈中支持一组BPF挂钩,可用于运行BPF程序。Cilium数...

2020-10-30 21:59:17 47 1

翻译 Cilium:BPF和XDP参考指南

Table of Contents BPF体系结构 指令系统 辅助功能 地图 对象固定 尾叫 BPF到BPF呼叫 准时制 硬化 减负 工具链 开发环境 虚拟机 本文档部分针对希望深入了解BPF和XDP的开发人员和用户。阅读本参考指南可能有助于拓宽您对Cilium的...

2020-10-30 21:41:44 110 1

翻译 Cilium提供并透明地保护应用程序工作负载之间的网络连接和负载平衡:什么是eBPF和XDP?

Table of Contents 稳定的发行 功能概述 透明地保护和保护API 基于身份的服务到服务通信的安全保护 安全访问外部服务 简单联网 负载均衡 监控和故障排除 整合方式 入门 什么是eBPF和XDP? 社区 松弛 特殊兴趣小组(SIG) 每周开发人员会议 ...

2020-10-30 21:22:05 60 1

翻译 AWS上的Cilium网络拓扑和流量路径

Table of Contents 1准备 1.1测试环境 1.2容器网和nsenter 1.3验证基本连接 2个出口:Pod->主机-> VPC网络 2.1容器内部网络 1.2 Veth对连接到主机 1.3出口BPF代码 1.4主机路由表 2入口 2.1主机路由...

2020-10-30 21:16:33 26 1

转载 深入理解 Cilium 的 eBPF(XDP)收发包路径:数据包在Linux网络协议栈中的路径

Table of Contents 1 为什么要关注 eBPF? 1.1 网络成为瓶颈 1.2 eBPF 无处不在 1.3 性能就是金钱 2 eBPF 是什么? 3 为什么 eBPF 如此强大? 3.1 快速 3.2 灵活 3.3 数据与功能分离 4 eBPF 简史 5 Ci...

2020-10-30 21:06:07 73 1

原创 《深入浅出DPDK》全书在线阅读(附录+推荐阅读)

Table of Contents 文章目录 推荐阅读 原文附录 附录A 缩略词 附录B 推荐阅读 文章目录 《《深入浅出DPDK》读书笔记(一):基础部分知识点》 《《深入浅出DPDK》读书笔记(二):网卡的读写数据操作》 《《深入浅出DPDK》读书笔记(三):NUMA - N...

2020-10-30 19:59:27 74 0

原创 《深入浅出DPDK》读书笔记(十六):DPDK应用篇(基于DPDK的存储软件优化:SPDK)

Table of Contents 基于DPDK的存储软件优化 180.基于以太网的存储系统 181.以太网存储系统的优化 SPDK介绍 182.SPDK介绍 (1)兼容性 (2)性能 183.用户态存储驱动 1. 用户态NVME驱动工作机制 2. 内核态和用户态NVME性能比...

2020-10-29 22:00:23 71 2

原创 《深入浅出DPDK》读书笔记(十五):DPDK应用篇(Open vSwitch(OVS)中的DPDK性能加速)

Table of Contents Open vSwitch(OVS)中的DPDK性能加速 174.虚拟交换机简介 175.OVS简介 176.DPDK加速的OVS 177.OVS的数据通路 178.DPDK加速的数据通路 179.DPDK加速的OVS性能比较 14.4 小结 系...

2020-10-29 21:51:48 56 2

原创 《深入浅出DPDK》读书笔记(十四):DPDK应用篇(DPDK与网络功能虚拟化:NFV、VNF、IVSHMEM、Virtual BRAS“商业案例”)

Table of Contents DPDK应用篇 DPDK与网络功能虚拟化 157.网络功能虚拟化 13.1.1起源 158.发展 159.OPNFV与DPDK NFV的部署 160.NFV的部署 1. 分解 2. 虚拟化 3. 云化 4. 重构 VNF部署的形态 1...

2020-10-29 21:45:32 1284 2

原创 《深入浅出DPDK》读书笔记(十三):DPDK虚拟化技术篇(加速包处理的vhost优化方案)

Table of Contents 加速包处理的vhost优化方案 142.vhost的演进和原理 143.Qemu与virtio-net 144.Linux内核态vhost-net 145.用户态vhost 146.基于DPDK的用户态vhost设计 147.消息机制 148.地...

2020-10-29 21:32:39 41 1

原创 《深入浅出DPDK》读书笔记(十二):DPDK虚拟化技术篇(半虚拟化Virtio)

Table of Contents 半虚拟化Virtio 132.Virtio使用场景 133.Virtio规范和原理 11.2.1 设备的配置 1. 设备的初始化 2. 设备的发现 3. 传统模式virtio的配置空间 4. 现代模式Virtio的配置空间 134.虚拟队列的配...

2020-10-29 21:12:11 46 1

原创 《深入浅出DPDK》读书笔记(十一):DPDK虚拟化技术篇(I/O虚拟化、CPU虚拟化、内存虚拟化、VT-d、I/O透传)

Table of Contents DPDK虚拟化技术篇 X86平台上的I/O虚拟化 120.X86平台上的I/O虚拟化 121.X86平台虚拟化概述 122.CPU虚拟化 123.内存虚拟化 124.I/O虚拟化 1. I/O全虚拟化 2. I/O半虚拟化 3. I/O透传 ...

2020-10-29 21:00:04 47 2

原创 《深入浅出DPDK》读书笔记(十):硬件加速与功能卸载(VLAN、IEEE1588、IP TCP/UDP/SCTP checksum、Tunnel)

Table of Contents 109.硬件卸载简介 110.网卡硬件卸载功能 111.DPDK软件接口 接收侧: 发送侧: 112.硬件与软件功能实现 113.VLAN硬件卸载 1. 收包时VLAN Tag的过滤 2. 收包时VLAN Tag的剥离 3. 发包时VLAN ...

2020-10-29 20:52:21 143 1

原创 《深入浅出DPDK》读书笔记(九):流分类与多队列、流过滤、虚拟化流分类方式、流分类技术的使用

Table of Contents 94.Linux内核对多队列的支持 95.DPDK与多队列 98.流分类 99.RSS 100.Flow Director 101.服务质量 102.虚拟化流分类方式 103.流过滤 104.流分类技术的使用 105.DPDK结合网卡Flow...

2020-10-29 20:33:52 67 1

转载 Kubernetes复杂吗?Cube-新的容器管理服务产品

《介绍Calico eBPF数据平面:Linux内核网络、安全性和跟踪(Kubernetes、kube-proxy)》 《在CentOS 7上安装使用Kubernetes:管理云平台多个主机上的容器化应用》 《kubernetes(K8s):管理云平台中多个主机上的容器化的应用》 Table...

2020-10-29 20:14:57 31 1

原创 Linux内存管理之内存寻址:分段机制的实现方式

Table of Contents linux中的分段机制 linux中的GDT 用户态和内核态的数据段以及代码段4个段 任务状态段TSS 寄存器保存区域 内层堆栈指针区域 地址映射寄存器区域 链接字段 其它字段 3个局部线程存储(Thread-Local Storage,TL...

2020-10-29 20:02:00 50 0

原创 8086和8088微处理器之间的区别

尽管8086和8088处理器的体系结构和指令集相同,但是它们之间仍然存在差异。 下表列出了2个微处理器之间的区别: 序号 8086微处理器 8088微处理器 1 数据总线为16位。 数据总线为8位。 2 它具有3种可用时钟速度(5 MHz,8 MHz(808...

2020-10-28 21:39:07 42 0

翻译 JDK,JRE和JVM之间的区别

Table of Contents JAVA开发套件 JAVA运行时环境 JAVA虚拟机 JDK,JRE和JVM之间的差异 JRE和JDK如何工作? JRE如何工作? JVM如何工作? 推荐文章: JAVA开发套件 Java Development Kit(JDK)是用于开...

2020-10-28 21:26:53 45 1

转载 Linus改变世界的一次代码提交:git的诞生

吾诗已成。无论大神的震怒,还是山崩地裂,都不能把它化为无形!—— 奥维德《变形记》 Table of Contents 背景 设计 实现 启示 参考 背景 Linux 作为最大也是最成功的开源项目,吸引了全球程序员的贡献,到目前为止,共有两万多名开发者给 Linux Kern...

2020-10-28 20:58:30 35 0

转载 GitOps—通过CI/CD自动化构建虚拟机模版

《CI/CD(持续集成构建/持续交付):如何测试/集成/交付项目代码?(Jenkins,TravisCI)》 《什么是DevOps?人员,流程和产品的结合,过程、方法与系统的统称》 Table of Contents 概述: 相关工具: 环境需求 步骤概要 构建用于执行Packe...

2020-10-28 20:53:19 47 1

转载 Linux网络协议指令:ifconfig/netstat(net-tools)工具 .vs. iproute2

Table of Contents 前言 语法 常见配置示例 SS 命令 参考链接 前言 为啥要替代?因为大多 linux 发行版已经不默认安装 ifconfig/netstat了,反而预装了 iproute2 套件。 linux 的 ip 命令和 ifconfig 类似,但 ...

2020-10-28 20:45:02 26 1

转载 从串口驱动到Linux驱动模型

Table of Contents 1.什么是Linux操作系统 ? A.关于类UNIX系统 B.关于可移植性 C.关于Linux的基本思想 D.关于Linux的特点 完全免费 完全兼容POSIX1.0标准 多用户、多任务 良好的界面 支持多种平台 文件类型 文件结构 2...

2020-10-28 20:38:48 50 0

转载 日志分析系统搭建分析与比较

Table of Contents 一. 背景介绍 二.日志系统比较 1.怎样收集系统日志并进行分析 A.实时模式: B.准实时模式 2.常见的开源日志系统的比较 A. FaceBook的Scribe B. Apache的Chukwa C. LinkedIn的Kafka D. ...

2020-10-28 20:22:20 100 0

转载 Linux的文件系统及文件缓存知识点整理

Table of Contents Linux的文件系统 文件系统的特点 ext系列的文件系统的格式 inode与块的存储 inode位图和块位图 文件系统的格式 目录的存储格式 Linux中的文件缓存 ext4文件系统层 带缓存的写入操作 带缓存的读操作 Linux的文件...

2020-10-28 20:09:13 81 1

原创 Nginx-1.18.0主函数main思维导图(第一版)

2020-10-25 20:41:02 26 1

原创 CRC32(Cyclic Redundancy Check)循环冗余校验:推导

Table of Contents 什么是循环冗余校验和CRC-32? CRC-32输出的长度是多少? CRC-8,CRC-16,CRC-32和CRC-64有什么区别? CRC32源代码 CRC32算法详细推导 CRC算法的数学基础 CRC校验的基本过程 原始的CRC校验算法 改...

2020-10-25 18:13:44 59 0

转载 无锁队列的实现

《【共享内存】基于共享内存的无锁消息队列设计》 《DPDK无锁队列rte_ring相关代码及示例程序(rte_ring.h,rte_ring.c,main.c,makefile)》 《DPDK ring库:环形缓冲区的解剖》 《无锁队列的实现》 Table of Contents 关于C...

2020-10-25 17:49:15 28 0

原创 Linux网络报文捕获/抓包技术对比:napi、libpcap、afpacket、PF_RING、PACKET_MMAP、DPDK、XDP(eXpress Data Path)

Table of Contents 1.传统linux网络协议栈流程和性能分析 协议栈的主要问题 针对单个数据包级别的资源分配和释放 流量的串行访问 从驱动到用户态的数据拷贝 内核到用户空间的上下文切换 跨内存访问 2. 提高捕获效率的技术 预分配和重用内存资源 数据包采用并行...

2020-10-25 17:18:06 199 0

转载 DPDK内存篇(一): 基本概念

Table of Contents 引言 标准大页 将内存固定到NUMA节点 硬件、物理地址和直接内存存取(DMA) IOMMU和IOVA 内存分配和管理 结论 推荐阅读 引言 内存管理是数据面开发套件(DPDK)的一个核心部分,以此为基础,DPDK的其他部分和用户应用得以...

2020-10-25 16:09:57 54 1

转载 CPU Cache Line:CPU缓存行/缓存块

《CPU Cache Line伪共享问题的总结和分析》 以下文章来源于小林coding,作者小林coding Table of Contents CPU Cache 有多快? CPU Cache 的数据结构和读取过程是什么样的? 如何写出让 CPU 跑得更快的代码? 总结 前言 ...

2020-10-25 15:55:49 57 0

原创 什么是DevOps?人员,流程和产品的结合,过程、方法与系统的统称

《CI/CD(持续集成构建/持续交付):如何测试/集成/交付项目代码?(Jenkins,TravisCI)》 《为什么选择AWS for DevOps?》 《What is DevOps?》 Table of Contents 什么是DevOps? DevOps模型已定义 DevO...

2020-10-25 15:32:38 139 0

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