摘要:
一、简介Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器 = 镜像 + 读写层。并且容器的定义并没有提及是否要运行容器。 一个运行态容器(running container)被定义为一个可读写的统一文件系 阅读全文
摘要:
一、简介LLDP(Link Layer Discovery Protocol,链路层发现协议):它提供了一种标准的链路层发现方式,可以将本端设备的的主要能力、管理地址、设备标识、接口标识等信息组织成不同的TLV(Type/Length/Value,类型/长度/值),并封装在LLD PDU(Link 阅读全文
摘要:
一、access函数1.函数功能:检查调用进程是否可以对指定的文件执行某种操作。2.函数原型:1)函数头文件#include <stdio.h>#include <unistd.h>int access(const char * pathname, int mode)3)形参pathname:需要检 阅读全文
摘要:
一、编译dpdk lib1、配置编译工具链make config T=x86_64-native-linuxapp-gcc2、编译cd buildmake编译错误一:/root/dpdk-18.11/lib/librte_eal/linuxapp/eal/eal_memory.c:29:18: fa 阅读全文
摘要:
一、简介DMA(Direct Memory Access,直接存储器访问)。在DMA出现之前,CPU与外设之间的数据传送方式有程序传送方式、中断传送方式。CPU是通过系统总线与其他部件连接并进行数据传输。DMA的出现就是为了解决批量数据的输入/输出问题。DMA是指外部设备不通过CPU而直接与系统内存 阅读全文
摘要:
https://www.cnblogs.com/skyfsm/p/7079458.html一、select & poll1、select API介绍:#include <sys/select.h>#include <sys/time.h>#include <sys/types.h>#include 阅读全文
摘要:
原文:https://segmentfault.com/a/1190000008836467原文讲的很好,描述了大体的流程。第一步:网卡到内存网卡需要有驱动才能工作,驱动是加载到内核中的模块,负责衔接网卡和内核的网络模块,驱动在加载的时候将自己注册进网络模块,当相应的网卡收到数据包时,网络模块会调用 阅读全文
摘要:
一、简介Netfilter是Linux 2.4.x引入的一个子系统,它作为一个通用的、抽象的框架,提供一整套的hook函数的管理机制,使得诸如数据包过滤、网络地址转换(NAT)和基于协议类型的连接跟踪成为了可能。Netfilter在内核中位置如下图所示: Netfilter在netfilter_ip 阅读全文
摘要:
一、tunl/taptun/tap设备的用处是将协议栈中的部分数据包转发给用户空间的应用程序,给用户空间的程序一个处理数据包的机会。于是比较常用的数据压缩,加密等功能就可以在应用程序B里面做进去,tun/tap设备最常用的场景是VPN,包括tunnel以及应用层的IPSec等tun和tap的区别:用 阅读全文
摘要:
1、DPDK的UIO驱动屏蔽了硬件发出中断,然后在用户态采用主动轮询的方式,这种模式被称为PMD(Poll Mode Driver)。UIO旁路了内核,主动轮询去掉硬中断,DPDK从而可以在用户态做收发包处理。带来Zero Copy、无系统调用的好处,同步处理减少上下文切换带来的Cache Miss 阅读全文
摘要:
1、每一个运行中的任务/线程,用了一组CPU寄存器,包含各种内部状态的数据,如当前正在执行的指令所在的内存地址,当前正在执行操作的操作数和/或操作结果,栈指针等等.所有的这些信息被统称为"上下文"。任何抢占式操作系统都必须具备几乎在任何时刻停止一个正在运行的任务并在将来将它恢复运行的能力。任务恢复执 阅读全文
摘要:
原文:https://www.linuxidc.com/Linux/2016-12/137936.htm一、简介1、环形队列是一种特殊的队列结构,保证了元素也是先进先出的,但与一般队列的区别是,他们是环形的,即队列头部的上个元素是队列尾部,通常是容纳元素数固定的一个闭环。采用环形缓冲区的好处为,当一 阅读全文
摘要:
一、简介1、什么是内存屏障?它是一个CPU指令。2、为什么使用内存屏障?CPU硬件设计为了提高指令的运行速度,增设了两个缓冲区(store buffer, invalidate queue)。这个两个缓冲区能够避免CPU在某些情况下进行不必要的等待,从而提快速度,可是这两个缓冲区的存在也同一时候带来 阅读全文
摘要:
原文: http://coolshell.cn/articles/17049.html一、简介Linux CGroup全称Linux Control Group,是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU、内存、磁盘输入输出等)。主要提供了如下功能:Resource 阅读全文
摘要:
原文:https://blog.csdn.net/jy1075518049/article/details/43610569两种内存管理方式:1、内存寻址--段式管理三个名词:逻辑地址、线性地址、物理地址物理地址:最容易理解的,它就是实实在在物理内存上的地址,你PC上有1G内存,那最大地址就是0x4 阅读全文
摘要:
一:简介1、术语EAL:Environment Abstraction Layer LPM:Longest Prefix Match IOVA-contiguous:VFIO:VFIO是一个可以安全的把设备I/O、中断、DMA等暴露到用户空间,从而可以在用户空间完成设备驱动的框架。NUMA:Non 阅读全文
摘要:
一、简介VPN只是IPSec的一种应用方式,IPSec其实是IP Security的简称,它的目的是为IP提供高安全性特性,VPN则是在实现这种安全特性的方式下产生的解决方案。IPSec是一个框架性架构,具体由两类协议组成:1、AH协议(Authentication Header,使用较少):可以同 阅读全文
摘要:
一、简介MPLS(Multiprotocol Label Switching,多协议标签交换)起源于IPv4,最初是为了提高转发速度而提出的。名词解释:FEC:Forwarding Equivalence Class, 转发等价类LSR:Label Switching Router,标签交换路由器L 阅读全文
摘要:
一、VPN的简介 1、VPN中的角色CE(Custom Edge):直接与服务提供商相连的用户设备。PE(Provider Edge Router):指骨干网上的边缘路由器,与CE相连,主要负责VPN业务的接入。P (Provider Router):指骨干网上的核心路由器,主要完成路由和快速转发功 阅读全文