<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[eyucham的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/eyucham</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; eyucham]]></copyright><item><title><![CDATA[网络层攻击防御]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/107158280</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/107158280</guid><author>eyucham</author><pubDate>Mon, 06 Jul 2020 14:32:27 +0800</pubDate><description><![CDATA[网络层攻击防御
网络层攻击防御主要分为以下三类：

TCP类报文攻击防御
UDP类报文攻击防御
ICMP类报文攻击防御

TCP类报文攻击防御
TCP正常的交互过程：

图：TCP正常交互过程
在TCP/IP协议中，TCP协议提供可靠的连接服务，采用三次握手建立一个连接。

第一次握手：建立连接时，客户端发送SYN包到服务器，等待服务器确认。
第二次握手：服务器收到SYN包，回应一个SYN-ACK包。
第三次握手：客户端收到服务器的SYN-ACK包，向服务器发送确认包ACK，此包发送完毕，完成三次握手。

]]></description><category></category></item><item><title><![CDATA[windows环境下C语言socket编程]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/103679424</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/103679424</guid><author>eyucham</author><pubDate>Tue, 24 Dec 2019 10:56:16 +0800</pubDate><description><![CDATA[最近由于实验需要，要求写一个c程序与java程序通信的软件，为了测试首先写了一个windows环境下c语言的socket（tcp）通信程序。

首先socket通信的步骤：


 图一 socket通信步骤（转载)


 图二 三次握手协议（转载）


 图三 三次握手协议（转载）

代码 ...]]></description><category></category></item><item><title><![CDATA[Windows下编译openssl库]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/102961667</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/102961667</guid><author>eyucham</author><pubDate>Thu, 07 Nov 2019 19:57:28 +0800</pubDate><description><![CDATA[1、概述

OpenSSL是一个开放源代码的软件库包，它实现了 SSL（Secure SocketLayer）和 TLS（Transport Layer Security）协议，所以应用程序可以使用这个包来进行安全通信，避免窃听，同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。

SSL是啥？大家知道我们访问网站的时候，以HTTPS开头的表示你和服务器之间传输的数据经过了加密，...]]></description><category></category></item><item><title><![CDATA[Gdb 调试core文件详解]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/100876848</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/100876848</guid><author>eyucham</author><pubDate>Mon, 16 Sep 2019 09:07:22 +0800</pubDate><description><![CDATA[一，什么是coredump

 我们经常听到大家说到程序core掉了，需要定位解决，这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止，并且在满足一定条件下（这里为什么说需要满足一定的条件呢？下面会分析）会产生一个叫做core的文件。

 通常情况下，core文件会包含了程序运行时的内存，寄存器状态，堆栈指针，内存管理信息还有各种函数调用堆...]]></description><category></category></item><item><title><![CDATA[linux下源码安装vsftpd-3.0.2]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/93201510</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/93201510</guid><author>eyucham</author><pubDate>Fri, 21 Jun 2019 16:09:13 +0800</pubDate><description><![CDATA[1）在http://vsftpd.beasts.org/网站中查找并下载vsftpd-3.0.2.tar.gz源码包

2)如果自己的机器上安装有yum可以用yumgrouplist|less指令查看以下开发环境，当然这一步不做也行



3）拆解源码包



4）查看源码包



5）编辑builddefs.h文件





6）编译



7）建立匿名账号



8）建立空目录
...]]></description><category></category></item><item><title><![CDATA[iptables详解和练习]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/88681944</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/88681944</guid><author>eyucham</author><pubDate>Wed, 20 Mar 2019 10:38:18 +0800</pubDate><description><![CDATA[防火墙，其实说白了讲，就是用于实现Linux下访问控制的功能的，它分为硬件的或者软件的防火墙两种。无论是在哪个网络中，防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义到底防火墙如何工作，这就是防火墙的策略，规则，以达到让它对出入网络的IP、数据进行检测。



目前市面上比较常见的有3、4层的防火墙，叫网络层的防火墙，还有7层的防火墙，其实是代理层的网关。



对于TCP/IP...]]></description><category></category></item><item><title><![CDATA[浅谈iptables防SYN Flood攻击和CC攻击]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/88681142</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/88681142</guid><author>eyucham</author><pubDate>Wed, 20 Mar 2019 10:03:44 +0800</pubDate><description><![CDATA[何为syn flood攻击：

　　SYN Flood是一种广为人知的DoS（拒绝服务攻击）是DDoS（分布式拒绝服务攻击）的方式之一，这是一种利用TCP协议缺陷，发送大量伪造的TCP连接请求，从而使得被攻击方资源耗尽（CPU满负荷或内存不足）的攻击方式（TCP协议的缺陷，所以没办法根除，除非重做TCP协议，目前不可能）。

　　正常原理是：1、TCP三次握手，客户端向服务器端发起连接的时候发送一...]]></description><category></category></item><item><title><![CDATA[libpcap讲解与API接口函数讲解]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/88599382</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/88599382</guid><author>eyucham</author><pubDate>Sat, 16 Mar 2019 15:42:42 +0800</pubDate><description><![CDATA[ibpcap（Packet Capture Library），即数据包捕获函数库，是Unix/Linux平台下的网络数据包捕获函数库。它是一个独立于系统的用户层包捕获的API接口，为底层网络监测提供了一个可移植的框架。



一、libpcap工作原理

libpcap主要由两部份组成：网络分接头(Network Tap)和数据过滤器(Packet Filter)。网络分接头从网络设备驱动程序中...]]></description><category></category></item><item><title><![CDATA[iptables：tproxy做透明代理]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/88574545</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/88574545</guid><author>eyucham</author><pubDate>Fri, 15 Mar 2019 14:54:52 +0800</pubDate><description><![CDATA[什么是透明代理

客户端向真实服务器发起连接，代理机冒充服务器与客户端建立连接，并以客户端ip与真实服务器建立连接进行代理转发。因此对于客户端与服务器来说，代理机都是透明的。
如何建立透明代理
本地socket捕获数据包
nat方式

iptables -t nat -N MY_TCP #在nat表上新建名为MY_TCP自定义链
iptables -t nat -p tcp -A MY_TCP -...]]></description><category></category></item><item><title><![CDATA[ip route / ip rule /iptables 配置策略路由]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/88574428</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/88574428</guid><author>eyucham</author><pubDate>Fri, 15 Mar 2019 14:51:11 +0800</pubDate><description><![CDATA[Linux 使用 ip route , ip rule , iptables 配置策略路由


要求192.168.0.100以内的使用 10.0.0.1 网关上网，其他IP使用 20.0.0.1 上网。



首先要在网关服务器上添加一个默认路由，当然这个指向是绝大多数的IP的出口网关。



ip route add default gw 20.0.0.1



之后通过 ip route 添...]]></description><category></category></item><item><title><![CDATA[iptables 的mangle表]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/88573086</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/88573086</guid><author>eyucham</author><pubDate>Fri, 15 Mar 2019 14:08:23 +0800</pubDate><description><![CDATA[mangle表的主要功能是根据规则修改数据包的一些标志位，以便其他规则或程序可以利用这种标志对数据包进行过滤或策略路由。

内网的客户机通过Linux主机连入Internet，而Linux主机与Internet连接时有两条线路，它们的网关如图所示。现要求对内网进行策略路由，所有通过TCP协议访问80端口的数据包都从ChinaNet线路出去，而所有访问UDP协议53号端口的数据包都从Cernet线...]]></description><category></category></item><item><title><![CDATA[线程池原理及C语言实现线程池]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/88169338</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/88169338</guid><author>eyucham</author><pubDate>Tue, 05 Mar 2019 10:03:18 +0800</pubDate><description><![CDATA[备注：该线程池源码参考自传直播客培训视频配套资料；
源码：https://pan.baidu.com/s/1zWuoE3q0KT5TUjmPKTb1lw 密码：pp42
引言：线程池是一种多线程处理形式，大多用于高并发服务器上，它能合理有效的利用高并发服务器上的线程资源；

在Unix网络编程中，线程与进程用于处理各项分支子功能，我们通常的操作是：接收消息 ==&gt; 消息分类 ==&gt; 线...]]></description><category></category></item><item><title><![CDATA[sys/queue.h分析(图片复制不过来，查看原文)]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/87179091</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/87179091</guid><author>eyucham</author><pubDate>Wed, 13 Feb 2019 14:14:25 +0800</pubDate><description><![CDATA[这两天有兴趣学习使用了下系统头文件sys/queue.h中的链表/队列的实现，感觉实现的很是优美，关键是以后再也不需要自己实现这些基本的数据结构了，哈哈！

我的系统环境是



正好需要使用队列，那么本篇就以其中的尾队列（tail queue）为例，结合实际的测试程序和示意图（亿图软件）来说明。

测试程序tailq.c如下：

#include &amp;lt;stdio.h&amp;gt;  
#inclu...]]></description><category></category></item><item><title><![CDATA[sys/queue.h]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/87178813</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/87178813</guid><author>eyucham</author><pubDate>Wed, 13 Feb 2019 14:06:09 +0800</pubDate><description><![CDATA[概述

        sys/queue.h是LINUX/UNIX系统下面的一个标准头文件，用一系列的数据结构定义了一队列。包括singly-lined list, list, simple queue(Singly-linked Tail queue), tail queue, circle queue五种。

        引用此头文件对这五种数据结构的描述：

A singly-link...]]></description><category></category></item><item><title><![CDATA[linux网络编程九：splice函数，高效的零拷贝]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/87178687</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/87178687</guid><author>eyucham</author><pubDate>Wed, 13 Feb 2019 14:03:49 +0800</pubDate><description><![CDATA[1. splice函数

    #include &amp;lt;fcntl.h&amp;gt;
    ssize_t splice(int fd_in, loff_t *off_in, int fd_out, loff_t *off_out, size_t len, unsigned int flags);


splice用于在两个文件描述符之间移动数据， 也是零拷贝。

fd_in参数是待输入描述符。如...]]></description><category></category></item><item><title><![CDATA[OPENSSL X509证书验证]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/87158001</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/87158001</guid><author>eyucham</author><pubDate>Wed, 13 Feb 2019 08:49:03 +0800</pubDate><description><![CDATA[openssl实现了标准的x509v3数字证书，其源码在crypto/x509和crypto/x509v3中。其中x509目录实现了数字证书以及证书申请相关的各种函数，包括了X509和X509_REQ结构的设置、读取、打印和比较；数字证书的验证、摘要；各种公钥的导入导出等功能。x509v3目录主要实现了数字证书扩展项相关的函数。

在进行身份认证时，首先要对发送给服务器进行认证的x509证书有效性...]]></description><category></category></item><item><title><![CDATA[彻底学会使用epoll(一)——ET模式实现分析]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/86502186</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/86502186</guid><author>eyucham</author><pubDate>Wed, 16 Jan 2019 09:30:14 +0800</pubDate><description><![CDATA[注：之前写过两篇关于epoll实现的文章，但是感觉懂得了实现原理并不一定会使用，所以又决定写这一系列文章，希望能够对epoll有比较清楚的认识。是请大家转载务必注明出处，算是对我劳动成果的一点点尊重吧。另外，文中如果有不全面或者不正确的地方还请大家指出。也可以私信或者发邮件：lvyilong316@163.com

1. ET模式实现分析

1.1 ET和LT的实现区别

    首先给出下面一张...]]></description><category></category></item><item><title><![CDATA[Linux下的I/O复用与epoll详解(ET与LT)]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/86502117</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/86502117</guid><author>eyucham</author><pubDate>Wed, 16 Jan 2019 09:25:05 +0800</pubDate><description><![CDATA[前言

      I/O多路复用有很多种实现。在linux上，2.4内核前主要是select和poll，自Linux 2.6内核正式引入epoll以来，epoll已经成为了目前实现高性能网络服务器的必备技术。尽管他们的使用方法不尽相同，但是本质上却没有什么区别。本文将重点探讨将放在EPOLL的实现与使用详解。

为什么会是EPOLL

select的缺陷

      高并发的核心解决方案是1个...]]></description><category></category></item><item><title><![CDATA[linux非阻塞的socket发送数据出现EAGAIN错误的处理方法]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/85231770</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/85231770</guid><author>eyucham</author><pubDate>Mon, 24 Dec 2018 12:45:40 +0800</pubDate><description><![CDATA[一、非阻塞socket

        非阻塞套接字是指执行此套接字的网络调用时，不管是否执行成功，都立即返回。比如调用recv()函数读取网络缓冲区中数据，不管是否读到数据都立即返回，而不会一直挂在此函数调用上。在实际Windows网络通信软件开发中，异步非阻塞套接字是用的最多的。平常所说的C/S（客户端/服务器）结构的软件就是异步非阻塞模式的。

    int32_t flags = fc...]]></description><category></category></item><item><title><![CDATA[linux下recv 、send阻塞、非阻塞区别和用法]]></title><link>https://blog.youkuaiyun.com/eyucham/article/details/85221676</link><guid>https://blog.youkuaiyun.com/eyucham/article/details/85221676</guid><author>eyucham</author><pubDate>Sun, 23 Dec 2018 12:24:50 +0800</pubDate><description><![CDATA[非阻塞IO 和阻塞IO：

       在网络编程中对于一个网络句柄会遇到阻塞IO 和非阻塞IO 的概念, 这里对于这两种socket 先做一下说明：
       基本概念：

              阻塞IO::

                     socket 的阻塞模式意味着必须要做完IO 操作（包括错误）才会返回。

              非阻塞IO::

     ...]]></description><category></category></item></channel></rss>