自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

转载 洞悉linux下的Netfilter&iptables:开发自己的hook函数【实战】(下)

从用户空间来操作内核中Netfilter框架里自定义的HOOK函数         本文承上一篇博客。主要是和大家探讨一下如何从用户空间操作我已经注册到Netfilter中的自定义hook函数。有些童鞋可能就纳闷,难道iptables不能操作到么?如果我们需要让iptables操作我们在Netfilter框架中做过的扩展,那么最有效最直接的办法就是开发一个match或者target。但我们现在

2015-04-21 11:55:39 705

转载 洞悉linux下的Netfilter&iptables:开发自己的hook函数【实战】(上)

向Netfilter中注册自己的hook函数        数据包在协议栈中传递时会经过不同的HOOK点,而每个HOOK点上又被Netfilter预先注册了一系列hook回调函数,当每个清纯的数据包到达这些点后会被这些可恶hook函数轮番调戏一番。有时候我们就在想,只让系统自带的这些恶棍来快活,我自己能不能也make一个hook出来和它们同流合污呢?答案是肯定的。       我们来回顾一

2015-04-21 11:54:41 1371

转载 洞悉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 655

转载 洞悉linux下的Netfilter&iptables:开发一个match模块【实战】

自己开发一个match模块       今天我们来写一个很简单的match来和大家分享如何为iptables开发扩展功能模块。这个模块是根据IP报文中有效载荷字段的长度来对其进行匹配,支持固定包大小,也支持一个区间范围的的数据包,在用户空间的用法是:         iptables-A FORWARD -m pktsize --size XX[:YY] -j DROP     

2015-04-21 11:53:59 399

转载 洞悉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 872

转载 洞悉linux下的Netfilter&iptables:iptables命令行工具源码解析【上】

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

2015-04-21 11:50:46 495 1

原创 coredump来调试崩溃进程

在平常开发中,经常碰到进程异常崩溃退出的情况,这时候最便捷的方法就是生成core文件,然后通过gdb在查看程序崩溃时的调用栈,一般很快就能定位出问题。 linux系统中程序异常崩溃时默认是不会自动生成core文件的,这时候我们一般需要使用以下命令将core文件生成开关打开,然后再在终端手动拉起进程,当进程再次崩溃时就会生成core文件。# 将coresize从默认的0改成无限制ulimi

2015-04-21 11:40:01 1844

转载 【百度分享】频繁分配释放内存导致的性能问题的分析 .

现象1 压力测试过程中,发现被测对象性能不够理想,具体表现为:  进程的系统态CPU消耗20,用户态CPU消耗10,系统idle大约70  2 用ps -o majflt,minflt -C program命令查看,发现majflt每秒增量为0,而minflt每秒增量大于10000。初步分析majflt代表major fault,中文名叫大错误,minflt代表minor

2015-04-21 11:36:38 453

转载 Linux启动过程综述

Bootloader在Alpha/AXP平台上引导Linux通常有两种方法,一种是由MILO及其他类似的引导程序引导,另一种是由Firmware直接引导。MILO功能与i386平台的LILO相近,但内置有基本的磁盘驱动程序(如IDE、SCSI等),以及常见的文件系统驱动程序(如ext2,iso9660等), firmware有ARC、SRM两种形式,ARC具有类BIOS界面,甚至还有多重引导的

2015-04-21 11:32:48 222

转载 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 1086

转载 DNS解析协议的C语言简单实现

仔细看了看DNS协议的相关东西,其实实际编程的时候根本用不到DNS细节的东西,要获取域名的时候经终端下用host或者nslookup指令就可以,在c里面使用gethostbyname或者getaddrinfo都能很轻松得将dns域名解析为ip地址,写这个纯粹出于个人兴趣,或者说是闲得吧。在进行域名解析的时候,解析程序向域名服务器发起请求,域名服务器也就是在操作系统网络配置的时候写进去的那个DN

2015-04-20 20:33:03 6916 2

转载 linux网络编程手记

做linux下的网络编程有一段时间了,中间遇到过很多问题,其中不少是因为自己对网络编程和网络协议的一些基本概念搞不清楚,趁着今天没心情干活就把自己在网络编程方面的理解和一些经验总结一下,Request For Comments。在诸多的网络协议中接触的最多也最紧密的无疑是TCP和UDP,SCTP之前因为项目原因也研究过,不过最终由于方案修改给抛弃了,TCP年代已经很久远,在网上的资料也非常多,

2015-04-20 20:29:46 277

转载 mips汇编指令学习

mips的32个寄存器MIPS comes with 32 general purpose registers named $0. . . $31Registers also have symbolic names reflecting their conventional8 use:$0  $zero constant 0$1  $at used by assembler$2

2015-04-20 20:27:38 648

转载 execl 内存泄露跟踪

遇到了嵌入式linux下面系统级内存泄露问题。跟踪问题日志。平台:ARM9内核:2.6.22问题:execl造成系统内存减少,通过cat /proc/memoinfo 发现少的内存并且都移往slab中去了测试代码:#include #include #include #include #include #include #include #inc

2015-04-20 20:24:23 491

转载 netfilter 概要

扼要地介绍Linux内核中netfilter,iptable,连接跟踪,NAT功能。这个分析基于内核版本2.6.28。       请不要奢望通读本文档就能融会贯通这四个功能实现,因为连作者也没有达到那个程度~ 这只是我给自己复习代码时做些路标之用。网上列出netfilter代码的文档已经很多,所以,我只以文字说明为主。       行文难免会有错,请不吝赐教。一、netfilter。

2015-04-20 20:23:51 844

转载 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 1354

转载 网口扫盲三:以太网芯片MAC和PHY的关系

问:如何实现单片以太网微控制器?答:诀窍是将微控制器、以太网媒体接入控制器(MAC)和物理接口收发器(PHY)整合进同一芯片,这样能去掉许多外接元器件.这种方案可使MAC和PHY实现很好的匹配,同时还可减小引脚数、缩小芯片面积.单片以太网微控制器还降低了功耗,特别是在采用掉电模式的情况下.问:以太网MAC是什么?答:MAC即Media Access Control,即媒体访问控制子层协

2015-04-20 20:14:08 664

转载 网口扫盲二: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 480

转载 网口扫盲一:网卡初步认识

网络适配器又称网卡或网络接口卡(NIC),英文名Network Interface Card.它是使计算机联网的设备.平常所说的网卡就是将PC机和LAN连接的网络适配器.网卡(NIC) 插在计算机主板插槽中,负责将用户要传递的数据转换为网络上其它设备能够识别的格式,通过网络介质传输.数据在计算机总线中传输是并行方式即数据是肩并肩传输的,而在网络的物理缆线中说数据以串行的比特流方式传输的,网卡承担串

2015-04-20 20:11:55 678

原创 对话框

package computer;public class Show {   public String errBox(String str1,String str2){    String str=     "";    str=str+"";    str=str+"";    str=str+"1"+str2+"";    str=str+"";    str=str+"A";    s

2007-04-11 20:33:00 621

原创 jsp连接数据库

一、jsp连接Oracle8/8i/9i数据库(用thin模式)testoracle.jsp如下:String url="jdbc:oracle:thin:@localhost:1521:orcl";//orcl为你的数据库的SIDString user="scott";String password="tiger";Connection conn= DriverManager.getConnec

2007-04-11 20:31:00 1170

原创 对字符串操作的javabean

package computer;import java.util.regex.Matcher;import java.io.*;import java.util.regex.Pattern ;public class Str {  public String toChinese(String str){   if(str==null||str.length()    str="";   }els

2007-04-11 20:30:00 778

原创 JSP分页

教师信息查询.style1 { font-family: "华文行楷"; color: #FFFFFF;}-->.style6 { color: #000000; font-size: 24px;}.style9 {font-size: 24px}-->教师信息查询返回首页  教号  姓名  系别  专业  操作选项request.setCharacterEncoding("gb2312");

2007-04-11 20:28:00 848

原创 配置jsp

JAVA_HOME=c:/j2sdk1.4.2; classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;(.;不能少,表示当前路径) path= %JAVA_HOME%/bin; (系统里已经有了path变量,只需要在path最前面加上去即可) 然后可以写一个简单的java程序来测试J2SDK是否已安装成功: public cla

2007-04-11 20:24:00 812

原创 与Sql连接的javabean

package com.bwm.dbc;import java.sql.*;public class Conn{private static Connection con;private Statement stmt;private ResultSet rs;private static final string drivenname="com.microsoft.jdbc.sqlserver.S

2007-04-11 20:22:00 772

原创 对数据库操作的javabean

package com.bwm.db;import java.sql.*;public class Data{  private Conn con =new Conn();  private Statement stmt;  private ResultSet rs;/*获取查询的行数*/public int getRowCount(String strSql){  int intCount=0;

2007-04-11 20:20:00 626

原创 一些经验

防止浏览器缓冲区保留数据在需要清除页面缓存的文件顶端加入如下代码:response.setHeader("Cache-Control","no-store");response.setHeader("Pragma","no-store");response.setDateHeader("Expores",0);在传递参数的超链接中传递多个参数下一页String name="bwm";Sti

2007-04-11 20:18:00 529

Linux的高级路由和流量控制HOWTO中文版

Linux的高级路由和流量控制HOWTO中文版

2012-06-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除