1. 线程池基本原理2. 线程池C语言实现2.1 线程池的数据结构#include <stdio.h>#include <pthread.h>#include <stdlib.h>#include <string.h>#include <signal.h>#include <errno.h>#include <unistd.h>typedef struct { void *(*function
经典多级时间轮定时器(C语言版)1. 序言最近一直在找时间轮的C语言实现代码,发现很多都是Java或者c++实现的。而我对其他语言不熟悉,看不太懂。关于C实现的,让我如沐春风的实现没找到,github上也只找打一个135星的项目,它的具体实现还没来得及看。后来经过多方搜索,找到了两个比较类似的代码,博主都称参考Linux源码中的实现,但是我没有找到对应的代码,个人感觉他们代码实现的很好,经过整理后再次分享出来供以后学习(反正我自己写不出来,我尝试写了一个简单时间轮的代码,是在不敢直视)。言归正传2
uboot下的命令行1.典型嵌入式linux系统启动过程:嵌入式系统上电后先执行uboot、然后uboot负责初始化DDR,初始化Flash,然后将OS从Flash中读取到DDR中,然后启动OS(OS启动后uboot就无用了) 2.uboot必须解决哪些问题1、自身可开机直接启动(1)一般的SoC都支持多种启动方式,譬如SD卡启动、NorFlash启动、NandFlash启动等·····uboot...
序言: 当linux系统存在多个网口时(也可以是一个网口配置两个IP),每个网口配置不同的IP地址,并且分别连接到不同的电脑上,电脑分别配置与相连的网口统一网段的IP且将电脑网关设置为linux的网口IP。 内核在默认情况下是不会转发这两个网卡间的数据的,这是为了系统的安全性采取的措施。 但是这个情况可以进行修改,从而使内核可以转发数据而实现两个不同网段的电脑...
主模式第四包:main_inI2_outR21. 序言main_inI2_outR2()函数是ISAKMP协商过程中第四包的核心处理函数的入口,同时在此处理流程中已经获取到足够的隧道信息,可以生成需要的密钥信息。这里我们主要说明main_inI2_outR2的函数调用关系、处理流程以及对源码的注释分析,关于main_inI2_outR2的上下文环境暂不叙述,留给后面的文章进行更新。ISAKMP协商报文的处理流程都比较复杂,此函数在协商的报文处理函数中比较复杂的,因此个人学习期间难免有遗漏和理解错误的地
主模式第六包:main_inI3_outR31. 序言main_inI3_outR3()函数是ISAKMP协商过程中第六包的核心处理函数的入口,第五六包主要用来验证对方的身份信息,同时此报文也是加密后的报文。这里我们主要说明main_inI3_outR3的函数调用关系、处理流程以及对源码的注释分析,关于main_inI3_outR3的上下文环境暂不叙述,留给后面的文章进行更新。ISAKMP协商报文的处理流程都比较复杂,此函数在协商的报文处理函数中比较复杂的,因此个人学习期间难免有遗漏和理解错误的地方,
Intel® QAT 加速卡之IPSec示例文章目录Intel® QAT 加速卡之IPSec示例1. QAT处理IPSec入站报文2. QAT处理IPSec出站报文3. 示例源码在IPSec的使用过程中需要频繁的加解密操作,而加解密操作会极大的消耗CPU的资源。因此很多提供IPSec服务的设备厂商尝试用多种方式来提高加解密性能,从而缓解CPU的压力,提高设备的IPSec的性能和吞吐量。其中既有软件加速方式,也有硬件加速方式。而Intel® QAT 加速卡便是之中的一款,这是Intel推出的硬件加速设备(
1. QAT的应用模式Intel® 通讯系列芯片对于每种受支持的加速服务(加密,数据压缩),都支持以下应用模式:内核模式,其中应用程序和加速服务都在内核中运行空间。用户空间直接访问在用户空间中运行的加速服务。 在此模型中,应用程序和加速服务都在用户空间中运行,并且还可以从用户空间执行对硬件的访问。上图中的Intel® QuickAssist Technology API与操作系统无关,并且在内核或用户空间中具有相同的功能签名。 SAL组件也与操作系统无关,可以编译为用户空间库或内核空间模.
Intel QAT加速卡逻辑实例1. QAT相关的名词组织关系在本手册中描述的平台上,处理器可以连接到一个或多个英特尔®通信芯片组8925至8955系列(PCH)设备。 从软件角度来看,每个PCH设备都包含一个逻辑加速器。 从物理上讲,每个设备都包含多个加速器,这些加速器被负载均衡硬件组件抽象成一个加速器, 发送到一个逻辑加速器的所有请求将在PCH设备内的各个物理加速器之间自动进行负载均衡。 对软件来说,只需要操作一个逻辑加速器即可,可以大大简化应用程序的编程方式,提高工作效率。一组32个环形存储区
QAT 的两种操作模式Intel® QAT API同时支持同步和异步两种操作模式。 为了获得最佳性能,该应用程序应能够向加速引擎提交多个未完成的请求。 提交多个未完成的请求可最大程度地减少加速引擎上的处理延迟。 这可以在应用程序中通过异步提交请求或使用多线程以同步模式提交请求来完成。开发人员可以选择最适合其应用程序和系统架构的操作模式。下面对Intel® QAT的两种操作模式进行简单说明。1. 异步操作如果使用QAT的异步处理功能,用户需要通过API接口注册一个回调函数,如图3所示。一旦请求被发送到
QAT Software for Linux1. Introduction该程序员指南提供了有关软件体系结构和使用指南的信息。 相关的英特尔®QAT软件库文档中记录了有关使用英特尔QuickAssist技术(英特尔®QAT)API的信息,这些API提供了加速服务(加密和数据压缩)的接口。1.1 术语软件包用作硬件版本1.7的英特尔®QAT软件包的通用术语加速驱动程序用作允许英特尔®QAT软件库API访问英特尔®QAT端点的通用术语Table 1. 常用术语列表TermDes
1. epoll原理原理性的知识不再另做说明,我在这里附上收藏整理的两篇经典文章:select与epoll的本质关系。select、poll、epoll之间的区别。2. epoll服务器端经典示例2.1 逻辑框架2.2 代码#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <asse.
文章目录1. 网络层处理框架(三层)1.1 PRE_ROUTING部分函数介绍1.1.1 ip_rcv()1.1.2 ip_rcv_finish()1.1.2 dst_input()1.2. LOCAL_IN部分函数介绍1.2.1 ip_local_deliver()1.2.2 ip_defrag()1.2.3 ip_local_deliver_finish()1.3. IP_FORWARD部分函数介绍1.3.1 ip_forward()1.3.2 ip_forward_finish()1.4. LOCAL
参看文章:快速理解高性能HTTP服务端的负载均衡技术原理简介几种负载均衡原理浅谈几种常用负载均衡架构一篇读懂分布式架构下的负载均衡技术:分类、原理、算法、常见方案等一、 引言负载均衡(Load Balance)是指将负载(工作任务)进行平衡、分摊到多个操作单元上运行,促使多台设备共同更快、更高效完成某一项或者多项任务。负载均衡在现有网络结构基础上,提供了一种透明并且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力,增加吞吐量、提高网络的可用性和灵活性。负载均衡包..
DPDK 无锁环形队列(Ring)此篇文章主要用来学习和记录DPDK中无锁环形队列相关内容,结合了官方文档说明和源码中的实现,供大家交流和学习。Author : ToneyEmail : vip_13031075266@163.comDate : 2020.11.8Copyright : 未经同意不得转载!!!version : dpdk-2.2.0文章目录DPDK 无锁环形队列(Ring)@[TOC]1. DPDK中的环形数据结构2. 环形队列:单生产者/单消费者模式2
容器技术:一句话来说明就是“进行了进程隔离和资源限制的进程” 一、什么是容器?首先,从现实生活上说,容器是用来省东西的,如柴米油盐酱醋茶、洗发水护发素沐浴露等都需要各式各样的容器来盛装。这是“容器”这个词给人们的第一印象。而我们这个说的“容器”(英文:Container)也是用来盛装东西的,只是这个东西比较特别,是一个软件应用。在英文中Container这个词含义更偏向于“集装箱”,这也是很多介绍容器的文章中有很多集装箱的配图,为什么老外喜欢用“集装箱...
IKEv1协商安全联盟的过程采用IKEv1协商安全联盟主要分为两个阶段:第一阶段,通信双方协商和建立IKE协议本身使用的安全通道,即建立一个IKE SA;第二阶段,利用第一阶段已通过认证和安全保护的安全通道,建立一对用于数据安全传输的IPSec安全联盟。1. IKEv1协商阶段1IKEv1协商阶段1的目的是建立IKE SA。IKE SA建立后对等体间的所有ISAKMP消息都将通过加密和验证,这条安全通道可以保证IKEv1第二阶段的协商能够安全进行。IKEv1协商阶段1支持两种协商模式
1. IKEv21.1 IKEv2简介IKEv2(Internet Key Exchange Version 2,互联网密钥交换协议第 2 版)是第 1 版本的 IKE 协议(本文简称 IKEv1)的增强版本。 IKEv2 与 IKEv1 相同,具有一套自保护机制,可以在不安全的网络上安全地进行身份认证、密钥分发、建立 IPsec SA。相对于 IKEv1, IKEv2 具有抗攻击能力和密钥交换能力更强以及报文交互数量较少等特点。1.2 IKEv2的协商过程要建立一对 IPsec SA, IKEv
IPSEC的实现方式在IPSEC通信中涉及到一个重要方面,那就是如何定义要保护的数据流(又称为感兴趣流)。这不仅涉及到IPSEC最终要保护哪部分数据,还关系到IPSEC的实现方式,因此有必要把感兴趣流的定义方式进行详细说明。1. 感兴趣流的定义方式“感兴趣流”指的是哪些数据可以进入IPsec隧道进行传输,哪些数据不能进入IPsec隧道传输。在现有的IPsec 实现过程中,最常用的实现方式有两种:“基于ACL”、“基于虚拟隧道接口”。下面我们对这两中方式进行详细的介绍。2. 基于ACL(访问控制)方式
第一章 基础知识1.1 对称算法对称算法使用一个密钥。给定一个明文和一个密钥,加密产生密文,其长度和明文大致相同。解密时,使用读密钥与加密密钥相同。对称算法主要有四种加密模式:(1) 电子密码本模式 Electronic Code Book(ECB)这种模式是最早采用和最简单的模式,它将加密的数据分成若干组,每组的大小跟加密密钥长度相同,然后每组都用相同的密钥进行加密。其缺点是:电子编码薄模式用一个密钥加密消息的所有块,如果原消息中重复明文块,则加密消息中的相应密文块也会重复,因此,
3.1 inet_aton()int inet_aton(const char *cp, struct in_addr *inp); 参数说明:cp : IPv4点分十进制字符串,例如“192.168.1.2”、“10.28.1.1”等;inp: 点分十进制转换成二进制后的结构体(网络字节序)返回值:成功返回非0;失败返回0注意: 这个函数已经将inp转换为网...
1. 根据掩码获取掩码的位数int mask2len(unsigned int mask){ /*eg: 255.255.255.0 255.0.255.255.0*/ int bit=0,len=0; while( ~mask & (1ULL<<bit)) bit++; len = 32 - bit; if(...
1. pluto中监听各个网口的500端口处理逻辑whack_handle()find_ifaces()find_raw_ifaces4()socket、setsockopt、bind、ioctl、通过ioctl(master_sock, SIOCGIFCONF, &ifconf)获取到所有的网络配置信息(网口名称和IP地址)通过ioctl(master_sock, SIOCGIFFLAGS, &auxinfo)获取网卡是否处于UP状态构建UP状态的
epoll代码实现框架:#define MAX_EVENTS 10struct epoll_event ev, events[MAX_EVENTS];int listen_sock, conn_sock, nfds, epollfd;/* Code to set up listening socket, 'listen_sock', (socket(), bind(), listen()) omitted */epollfd = epoll_create1(0);if (epollf
1. DHCP用途简介:DHCP服务应用于大型局域网络中,使网络中的主机自动获取IP地址,网关,DNS服务器等信息,能够提升IP地址的利用率。一般情况下,我们的家用、公司、公共场合使用的路由器都具有DHCP服务功能,当我们的手机或者电脑需要联网时会和DHCP服务器进行自动交互,之后服务器会给我们的终端分配一个IP地址,同时我们的终端也会保留服务器的网络信息(IP, MAC, DNS等)用于上网...
目录一、自定义数据包的封装流程1.分配skb2.初始定位(skb_reserve)3.拷贝数据(skb_push / skb_pull / skb_put / )4.设置传输层头部5.设置IP层头部6.添加以太网头二、自定义数据包的封装实例1. “纯净数据包”发送到本机的协议栈并交由上层处理:2. “完整的IP数据包”发送到本地的协议栈并交由上层处理:...
虚拟机使用scp传输文件提示“WARNING REMOTE HOST IDENTIFICATION HAS CHANGED”解决方式简单的说就是虚拟机里保存的认证密钥不正确了,需要更新。 而更新是由协议自己完成的,我们只需要将原来的密钥删除即可。解决方法很简单,按照提示打开“/root/.ssh/known_hosts”文件,然后将与对端设备对应IP行进行删除即可。...
路由器一个重要功能是隔离广播域。就是不转发广播包,而ARP请求就是个广播包===> arp 代理1) ARP交互流程:(1)目的地址和主机在同一个网段(A-C): A -----------------|---------------- B |---------------- C |---------------- D ...
1. 搜索关键字:“onerror” 然后找到如下所示代码:<div style="display:none;"> <img src="https://blog.csdn.net/u012503786/article/details/78647661" onerror="setTimeout(function(){if(!/(csdn.net|iteye.c...
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号