wjlkoorey258

2016年7月24日

(十三)洞悉linux下的Netfilter&iptables:为防火墙增添功能模块【实战】

摘要: 为netfilter/iptables增添新功能模块:ipp2p 一个防火墙功能模块包含两部分:内核空间的ko模块和用户空间的so模块。如下: 而且文件的命令都非常有讲究。例如我们有个模块名叫AAA,那么内核中该模块的文件名一般为ipt_AAA.c和ipt_AAA.h;对应的用户空间模... 阅读全文

posted @ 2016-07-24 10:58 wjlkoorey258 阅读(528) 评论(0) 推荐(0)

(十二)洞悉linux下的Netfilter&iptables:iptables命令行工具源码解析【下】

摘要: iptables用户空间和内核空间的交互 iptables目前已经支持IPv4和IPv6两个版本了,因此它在实现上也需要同时兼容这两个版本。iptables-1.4.0在这方面做了很好的设计,主要是由libiptc库来实现。libiptc是iptables control library的简称,... 阅读全文

posted @ 2016-07-24 10:58 wjlkoorey258 阅读(1341) 评论(0) 推荐(0)

(十一)洞悉linux下的Netfilter&iptables:iptables命令行工具源码解析【上】

摘要: 预备知识:part1: 初见getopt_long() 在分析iptables源码时,作为命令解析的核心函数getopt_long()不得不提。随便百度或google搜索关于该函数的介绍有很多例子和解释,这里我只举一例,目的是让大家了解传递给iptables命令的每个参数是如何被正确识别并... 阅读全文

posted @ 2016-07-24 10:58 wjlkoorey258 阅读(956) 评论(0) 推荐(0)

(十)洞悉linux下的Netfilter&iptables:网络地址转换原理之SNAT

摘要: 源地址转换:SNAT SNAT主要应用于下列场景: 这种情况下,我们只有一个公网地址A,而又有三台主机需要同时上网,这时就需要SNAT了。它的主要作用是将那些由私网发来的数据包skb的源地址改成防火墙的公网地址A,这是因为目的主机在响应源地址为私网地址的数据包时,私网地址不能在网络... 阅读全文

posted @ 2016-07-24 10:58 wjlkoorey258 阅读(408) 评论(0) 推荐(0)

Linux网络编程:原始套接字的魔力【下】

摘要: 可以接收链路层MAC帧的原始套接字 前面我们介绍过了通过原始套接字socket(AF_INET, SOCK_RAW, protocol)我们可以直接实现自行构造整个IP报文,然后对其收发。提醒一点,在用这种方式构造原始IP报文时,第三个参数protocol不能用IPPROTO_IP... 阅读全文

posted @ 2016-07-24 10:58 wjlkoorey258 阅读(1530) 评论(0) 推荐(0)

Linux网络编程:原始套接字的魔力【续】

摘要: 如何从链路层直接发送数据帧 本来以为这部分都弄完了,结果有朋友反映说看了半天还是没看到如何从链路层直接发送数据。因为上一篇里面提到的是从链路层“收发”数据,结果只“收”完,忘了“发”,实在抱歉,所以就有这篇续出来了。 上一节我们主要研究了如何从链路层直接接收数据帧,可以通过... 阅读全文

posted @ 2016-07-24 10:58 wjlkoorey258 阅读(294) 评论(0) 推荐(0)

揭开网络编程常见API的面纱【上】

摘要: Linux网络编程API函数初步剖析 今天我们来分析一下前几篇博文中提到的网络编程中几个核心的API,探究一下当我们调用每个API时,内核中具体做了哪些准备和初始化工作。 1、socket(family,type,protocol) 当我们在开发网络应用... 阅读全文

posted @ 2016-07-24 10:58 wjlkoorey258 阅读(127) 评论(0) 推荐(0)

揭开网络编程常见API的面纱【下】

摘要: Linux网络编程数据收发的API流程分析 只要把数据在协议栈中的流动线路和脉络弄清楚了,关于协议栈的实现部分,理解起来就轻松多了。在网络编程章节的数据接收过程中,我们主要介绍过read()、recv()、recvfrom()还有一个recvmsg()没介绍到,今天我们就来看一下这几个... 阅读全文

posted @ 2016-07-24 10:58 wjlkoorey258 阅读(115) 评论(0) 推荐(0)

如何看待操作系统的用户空间和内核空间?

摘要: 作为中央核心处理单元的CPU,除了生产工艺的不断革新进步外,在处理数据和响应速度方面也需要有权衡。稍有微机原理基础的人都知道Intel X86体系的CPU提供了四种特权模式ring0~ring3,其中ring0特权最高,ring3的特权最低,之所以要做这样的区分一个主要目的是保护资源,通俗... 阅读全文

posted @ 2016-07-24 10:58 wjlkoorey258 阅读(1229) 评论(0) 推荐(0)

用户空间和内核空间通讯之【系统调用】

摘要: 现在,越来越多的应用程序需要编写内核和用户级代码的程序来一起协作完成具体的任务,而用户与空间和内核空间的通讯也就是一个不可回避的话题了。针对于需要和内核空间通信的具体应用而言,其开发模式和套路相对来说比较固定,主要概括起来有两大步骤: 第一步,编写内核服务程序利用内核空间提供的权限和服务来接收、... 阅读全文

posted @ 2016-07-24 10:58 wjlkoorey258 阅读(1900) 评论(0) 推荐(0)

导航