
linux应用编程
文章平均质量分 92
linux应用编程
废言Pro
时间加努力
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
理解Linux高性能网络架构的那些事
通过本文你将会了解到以下内容: IO事件和IO复用 线程模型和事件驱动模型的架构 基于事件驱动的Reactor模式详解 同步IO和异步IO简介 1. IO事件和IO复用1.1 什么是IO事件IO指的是输入Input/输出Output,但是从汉语角度来说,出和入是相对的,所以我们需要个参照物。这里我们的参照物选择为程序运行时的主存储空间,外部通常包括网卡、磁盘等。有了上述的设定理解起来就方便多了,我们来一起看下:IO的本质是数据的流动,数据可以从网转载 2021-08-01 15:38:29 · 274 阅读 · 0 评论 -
FUSE简介
一、FUSE简介 FUSE(用户空间文件系统)是这样一个框架:它使得FUSE用户在用户态下编写文件系统成为可能,而不必和内核打交道。 FUSE由三个部分组成:linux内核模块、FUSE库 以及mount 工具。 用户关心的只是FUSE库和mount工具,内核模块仅仅提供kernel的接入口,给了文件系统一个框架,而文件系统本身的主要实现代示位于用户空间中。FUSE库给用户提供了编程的接口,而mount工具则用于挂在用户编写的文件系统。 FUSE起初是为了研究AVFS...原创 2021-06-17 15:46:25 · 5205 阅读 · 0 评论 -
TCP SYN洪水 (SYN Flood) 攻击原理与实现
TCP协议是 TCP/IP 协议栈中一个重要的协议,平时我们使用的浏览器,APP等大多使用 TCP 协议通讯的,可见 TCP 协议在网络中扮演的角色是多么的重要。TCP 协议是一个可靠的、面向连接的流协议,由于 TCP 协议是建立在 IP 协议这种面向无连接的协议,所以 TCP 协议必须自己来维护连接的状态。三次握手过程TCP 协议通过一种名为 三次握手 的过程来建立客户端与服务端的连接,三次握手 过程的原理如图1:(图一 三次握手过程)建立连接三次握手过程如下: 客户端需要发转载 2021-04-07 14:13:10 · 3701 阅读 · 0 评论 -
raw socket 使用 BPF 过滤报文
抓包使用 raw socket 进行网络底层抓包,想必大家都清楚(仔细想想tcpdump原理)。这里不赘述,网上许多资料。注意,网卡需要开启混杂模式、其次程序运行需要root权限。#include <stdlib.h>#include <stdio.h>#include <sys/socket.h>#include <net/if_arp.h>#include <net/if.h>#include <netinet...转载 2020-12-04 13:39:50 · 1423 阅读 · 0 评论 -
keepalived+LVS 详解(3) -- VRRP协议简介
虚拟路由冗余协议VRRP(Virtual Router Redundancy Protocol)通过把几台路由设备联合组成一台虚拟的路由设备,使用一定的机制保证当主机的下一跳路由设备出现故障时,及时将业务切换到备份路由设备,从而保持通讯的连续性和可靠性。VRRP是相关标准 定义的一种冗余容错协议,通过物理设备和逻辑设备的分离,实现在多个出口网关之间选路。如下图所示,在路由器上成功配置VRR...原创 2020-04-30 15:41:30 · 1545 阅读 · 0 评论 -
keepalived+LVS 详解(2) -- keepalived.conf解析
! Configuration File for keepalivedglobal_defs { notification_email { #通知的email,需要系统支持发送email [email protected] [email protected] [email protected] }...原创 2020-04-30 15:34:57 · 325 阅读 · 0 评论 -
Libevent源码分析-----开篇
转载请注明出处:http://blog.csdn.net/luotuo44/article/details/38300779 我所分析的Libevent版本是2.0.21版本,是目前最新的稳定版本。看这系列博文中,需要读者有Linux编程的一些基础。因为像POSIX、文件描述符、多线程等等这些概念,我并不会去解释,我默认读者已经熟悉这些概念了。如果读者读过《UN转载 2017-03-31 09:18:30 · 389 阅读 · 0 评论 -
keepalived+LVS 详解(1) -- 编译
先安装依赖包由于环境不同可能不一样,也可以在后面的执行过程中,提示缺什么,在安装什么。apt-get installlibssl-dev libpopt-dev libnl-3-dev libnl-genl-3-dev下载最新的源码,目前是2.0版本:https://www.keepalived.org/download.html解压后进入目录,执行,有兴...原创 2020-04-30 15:12:51 · 665 阅读 · 0 评论 -
深入剖析Linux IO原理和几种零拷贝机制的实现
前言零拷贝(Zero-copy)技术指在计算机执行操作时,CPU 不需要先将数据从一个内存区域复制到另一个内存区域,从而可以减少上下文切换以及 CPU 的拷贝时间。它的作用是在数据报从网络设备到用户程序空间传递的过程中,减少数据拷贝次数,减少系统调用,实现 CPU 的零参与,彻底消除 CPU 在这方面的负载。实现零拷贝用到的最主要技术是 DMA 数据传输技术和内存区域映射技术。零拷贝机制可...转载 2020-04-17 18:13:16 · 334 阅读 · 0 评论 -
epoll原理详解及epoll反应堆模型
设想一个场景:有100万用户同时与一个进程保持着TCP连接,而每一时刻只有几十个或几百个TCP连接是活跃的(接收TCP包),也就是说在每一时刻进程只需要处理这100万连接中的一小部分连接。那么,如何才能高效的处理这种场景呢?进程是否在每次询问操作系统收集有事件发生的TCP连接时,把这100万个连接告诉操作系统,然后由操作系统找出其中有事件发生的几百个连接呢?实际上,在Linux2.4版本以前,...转载 2019-10-25 22:53:30 · 487 阅读 · 0 评论 -
Epoll原理解析
从事服务端开发,少不了要接触网络编程。Epoll 作为 Linux 下高性能网络服务器的必备技术至关重要,Nginx、Redis、Skynet 和大部分游戏服务器都使用到这一多路复用技术。Epoll 很重要,但是 Epoll 与 Select 的区别是什么呢?Epoll 高效的原因是什么?网上虽然也有不少讲解 Epoll 的文章,但要么是过于浅显,或者陷入源码解析,很少能有通俗易懂的。...转载 2019-06-19 09:17:41 · 85177 阅读 · 74 评论