![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
net
乐乐园
.........
展开
-
linux网络编程手记
做linux下的网络编程有一段时间了,中间遇到过很多问题,其中不少是因为自己对网络编程和网络协议的一些基本概念搞不清楚,趁着今天没心情干活就把自己在网络编程方面的理解和一些经验总结一下,Request For Comments。在诸多的网络协议中接触的最多也最紧密的无疑是TCP和UDP,SCTP之前因为项目原因也研究过,不过最终由于方案修改给抛弃了,TCP年代已经很久远,在网上的资料也非常多,转载 2015-04-20 20:29:46 · 283 阅读 · 0 评论 -
洞悉linux下的Netfilter&iptables:开发自己的hook函数【实战】(下)
从用户空间来操作内核中Netfilter框架里自定义的HOOK函数 本文承上一篇博客。主要是和大家探讨一下如何从用户空间操作我已经注册到Netfilter中的自定义hook函数。有些童鞋可能就纳闷,难道iptables不能操作到么?如果我们需要让iptables操作我们在Netfilter框架中做过的扩展,那么最有效最直接的办法就是开发一个match或者target。但我们现在转载 2015-04-21 11:55:39 · 718 阅读 · 0 评论 -
洞悉linux下的Netfilter&iptables:开发一个match模块【实战】
自己开发一个match模块 今天我们来写一个很简单的match来和大家分享如何为iptables开发扩展功能模块。这个模块是根据IP报文中有效载荷字段的长度来对其进行匹配,支持固定包大小,也支持一个区间范围的的数据包,在用户空间的用法是: iptables-A FORWARD -m pktsize --size XX[:YY] -j DROP转载 2015-04-21 11:53:59 · 413 阅读 · 0 评论 -
洞悉linux下的Netfilter&iptables:iptables命令行工具源码解析【上】
预备知识:part1: 初见getopt_long() 在分析iptables源码时,作为命令解析的核心函数getopt_long()不得不提。随便百度或google搜索关于该函数的介绍有很多例子和解释,这里我只举一例,目的是让大家了解传递给iptables命令的每个参数是如何被正确识别并处理的。getopt_long(int argc,char * constargv[],转载 2015-04-21 11:50:46 · 514 阅读 · 1 评论 -
洞悉linux下的Netfilter&iptables:为防火墙增添功能模块【实战】
为netfilter/iptables增添新功能模块:ipp2p 一个防火墙功能模块包含两部分:内核空间的ko模块和用户空间的so模块。如下: 而且文件的命令都非常有讲究。例如我们有个模块名叫AAA,那么内核中该模块的文件名一般为ipt_AAA.c和ipt_AAA.h;对应的用户空间模块叫libipt_AAA.c。今天我通过简单的向防火墙添加ipp2p扩展功能模块的例子,向转载 2015-04-21 11:54:05 · 669 阅读 · 0 评论 -
洞悉linux下的Netfilter&iptables:iptables命令行工具源码解析【下】
iptables用户空间和内核空间的交互iptables目前已经支持IPv4和IPv6两个版本了,因此它在实现上也需要同时兼容这两个版本。iptables-1.4.0在这方面做了很好的设计,主要是由libiptc库来实现。libiptc是iptables control library的简称,是Netfilter的一个编程接口,通常被用来显示、操作(查询、修改、添加和删除)netfilter的转载 2015-04-21 11:53:11 · 902 阅读 · 0 评论 -
State of Peer-to-Peer Communication across NAT(rfc5128中文)
翻译了一下RFC5128,并为我拙劣的英语水准和汉语言表达技巧感到汗颜,如果有人不幸搜到这篇文章,英语不是太差的话就不要看了。英文原版地址:http://tools.ietf.org/html/rfc51281.Introduction and Scope当前的Internet已经普遍布署了网络地址转换器(NATs).存在各种各样的NAT设备和各种各样使用NAT设备布署的网络拓扑。转载 2015-04-20 20:33:05 · 1115 阅读 · 0 评论 -
netfilter 概要
扼要地介绍Linux内核中netfilter,iptable,连接跟踪,NAT功能。这个分析基于内核版本2.6.28。 请不要奢望通读本文档就能融会贯通这四个功能实现,因为连作者也没有达到那个程度~ 这只是我给自己复习代码时做些路标之用。网上列出netfilter代码的文档已经很多,所以,我只以文字说明为主。 行文难免会有错,请不吝赐教。一、netfilter。转载 2015-04-20 20:23:51 · 858 阅读 · 0 评论 -
网口扫盲二:Mac与Phy组成原理的简单分析
1. general下图是网口结构简图.网口由CPU、MAC和PHY三部分组成.DMA控制器通常属于CPU的一部分,用虚线放在这里是为了表示DMA控制器可能会参与到网口数据传输中.对于上述的三部分,并不一定都是独立的芯片,根据组合形式,可分为下列几种类型:CPU集成MAC与PHY;CPU集成MAC,PHY采用独立芯片;CPU不集成MAC与PHY,MAC与PHY采用集成芯片;转载 2015-04-20 20:13:26 · 497 阅读 · 0 评论 -
网口扫盲一:网卡初步认识
网络适配器又称网卡或网络接口卡(NIC),英文名Network Interface Card.它是使计算机联网的设备.平常所说的网卡就是将PC机和LAN连接的网络适配器.网卡(NIC) 插在计算机主板插槽中,负责将用户要传递的数据转换为网络上其它设备能够识别的格式,通过网络介质传输.数据在计算机总线中传输是并行方式即数据是肩并肩传输的,而在网络的物理缆线中说数据以串行的比特流方式传输的,网卡承担串转载 2015-04-20 20:11:55 · 707 阅读 · 0 评论 -
UPnP 事件触发 Eventing
Eventing is Step 4 in UPnP™ networking. Eventing comes afteraddressing (Step 0) where devices get a network address, afterdiscovery (Step 1) where control points find interesting device(s),and after d转载 2015-04-20 20:20:51 · 1475 阅读 · 0 评论 -
网口扫盲三:以太网芯片MAC和PHY的关系
问:如何实现单片以太网微控制器?答:诀窍是将微控制器、以太网媒体接入控制器(MAC)和物理接口收发器(PHY)整合进同一芯片,这样能去掉许多外接元器件.这种方案可使MAC和PHY实现很好的匹配,同时还可减小引脚数、缩小芯片面积.单片以太网微控制器还降低了功耗,特别是在采用掉电模式的情况下.问:以太网MAC是什么?答:MAC即Media Access Control,即媒体访问控制子层协转载 2015-04-20 20:14:08 · 686 阅读 · 0 评论 -
DNS解析协议的C语言简单实现
仔细看了看DNS协议的相关东西,其实实际编程的时候根本用不到DNS细节的东西,要获取域名的时候经终端下用host或者nslookup指令就可以,在c里面使用gethostbyname或者getaddrinfo都能很轻松得将dns域名解析为ip地址,写这个纯粹出于个人兴趣,或者说是闲得吧。在进行域名解析的时候,解析程序向域名服务器发起请求,域名服务器也就是在操作系统网络配置的时候写进去的那个DN转载 2015-04-20 20:33:03 · 7013 阅读 · 2 评论 -
洞悉linux下的Netfilter&iptables:开发自己的hook函数【实战】(上)
向Netfilter中注册自己的hook函数 数据包在协议栈中传递时会经过不同的HOOK点,而每个HOOK点上又被Netfilter预先注册了一系列hook回调函数,当每个清纯的数据包到达这些点后会被这些可恶hook函数轮番调戏一番。有时候我们就在想,只让系统自带的这些恶棍来快活,我自己能不能也make一个hook出来和它们同流合污呢?答案是肯定的。 我们来回顾一转载 2015-04-21 11:54:41 · 1382 阅读 · 0 评论