自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

chengfangang的专栏

linux c 开发 关注安全

  • 博客(49)
  • 资源 (15)
  • 收藏
  • 关注

转载 struct ethhdr、ether_header、iphdr、tcphdr、udphdr

************************eth的结构**************************************struct ethhdr {unsigned char h_dest[ETH_ALEN];unsigned char h_source[ETH_ALEN];__be16 h_proto;} __attribute__((packed));

2013-04-28 15:00:44 1088

转载 SIOCGIFFLAGS, SIOCSIFFLAGS

SIOCGIFFLAGS, SIOCSIFFLAGS读取 或 设置 设备的 活动标志字. ifr_flags 包含 下列值 的 屏蔽位:设备标志IFF_UP 接口正在运行.IFF_BROADCAST 有效的广播地址集.IFF_DEBUG 内部调试标志.IFF_LOOPBACK 这是自环接口.IFF_POINTOPOINT 这是点到点的链路接口.IFF_RUNNING 资源已分配.IFF_NOARP

2013-04-28 09:50:56 4705

转载 Linux如何在系统启动时自动加载内核模块

为搞清楚如何在系统启动时自动加载模块,搜索了好久,网上有很多人提出这个问题,但都没有正确的答案,无论是中文社区还是英文社区,大家的回答都没有讲到点子上,无非是围绕modprobe.conf、modprobe讲来讲去的,要不就是针对特定问题尝试不同的方法。有的还建议把 modprobe modulename写入rc.local,却不曾想,rc.local的执行被放在整个启动顺序的很后面,而启动ini

2013-04-28 09:28:42 1091

转载 netmap userguide

.\" Copyright (c) 2011 Matteo Landi, Luigi Rizzo, Universita` di Pisa.\" All rights reserved..\".\" Redistribution and use in source and binary forms, with or without.\" modification, are perm

2013-04-27 17:18:18 2350

转载 ethhdr、ether_header、iphdr、tcphdr、udphdr 结构介绍

http://blog.csdn.net/petershina/article/details/8573853************************eth的结构**************************************struct ethhdr {unsigned char h_dest[ETH_ALEN];unsigned char h_s

2013-04-25 14:21:25 1483

转载 ubuntu 升级内核实战

ubuntu 12.04内核是linux 3.2.0-24,其实升级到最新版本3.3.4也没什么很大意义,主要是集成了一些新的驱动和一些普通用户用不到的功能,所以基本上本文纯属折腾,但不要随便升级当班设备啊!好了,不废话了,我们开始...........首先是准备条件:①、有一台装有ubuntu 12.04的机器②、先移步到http://www.kernel.org/下载l

2013-04-24 11:55:22 980

转载 高性能网络I/O框架-netmap源码分析(3)

高性能网络I/O框架-netmap源码分析(3)作者:gfree.wind@gmail.com博客:blog.focus-linux.net linuxfocus.blog.chinaunix.net微博:weibo.com/glinuxerQQ技术群:4367710前面学习了netmap对e1000网卡驱动的修改,今天开始进入netmap的核心代码。一切从init开始

2013-04-24 11:19:09 1584

转载 高性能网络I/O框架-netmap源码分析(2)

作者:gfree.wind@gmail.com博客:blog.focus-linux.net linuxfocus.blog.chinaunix.net微博:weibo.com/glinuxerQQ技术群:4367710前面e1000_probe的分析,按照Linux驱动框架,接下来就该e1000_open。netmap并没有对e1000_open进行任何修改,而是改动了e10

2013-04-24 11:15:20 1600

转载 NAPI机制分析

http://hi.baidu.com/eli_li/item/6d698232847da4fedf2221eeNAPI 的核心在于:在一个繁忙网络,每次有网络数据包到达时,不需要都引发中断,因为高频率的中断可能会影响系统的整体效率,假象一个场景,我们此时使用标准的 100M 网卡,可能实际达到的接收速率为 80MBits/s,而此时数据包平均长度为 1500Bytes,则每秒产生的中

2013-04-23 17:29:42 1101

转载 NAPI

NAPI 是 Linux 上采用的一种提高网络处理效率的技术,它的核心概念就是不采用中断的方式读取数据,而代之以首先采用中断唤醒数据接收的服务程序,然后 POLL 的方法来轮询数据。随着网络的接收速度的增加,NIC 触发的中断能做到不断减少,目前 NAPI 技术已经在网卡驱动层和网络层得到了广泛的应用,驱动层次上已经有 E1000 系列网卡,RTL8139 系列网卡,3c50X 系列等主流的网络适

2013-04-23 17:15:23 909

转载 Linux网卡数据包的接收

Linux网卡数据包的接收 一、从网卡说起这并非是一个网卡驱动分析的专门文档,只是对网卡处理数据包的流程进行一个重点的分析。这里以Intel的e100驱动为例进行分析。大多数网卡都是一个PCI设备,PCI设备都包含了一个标准的配置寄存器,寄存器中,包含了PCI设备的厂商ID、设备ID等等信息,驱动程序使用来描述这些寄存器的标识符。如下:[Copy

2013-04-23 16:29:46 2808

转载 实现了一个比nginx速度更快的HTTP服务器

http://www.cnblogs.com/clowwindy/archive/2011/09/23/a_http_server_faster_than_nginx.html首先承认这个标题标题党了:)。在上次的FreeBSD和linux的nginx静态文件性能对比测试 后,我萌发了自己动手做一个简单的Web Server来搞清楚nginx高性能背后的原理的想法。最后成功实现了一个基

2013-04-23 14:35:34 1449

转载 Linux的epoll模型

http://www.cnblogs.com/jankie/archive/2011/05/19/2050881.htmlLinux 2.6内核中提高网络I/O性能的新方法-epoll I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。1、为什么select落后首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有

2013-04-23 14:03:21 769

转载 USB装系统、装LINUX、装Ubuntu10.10全攻略!!

http://hi.baidu.com/ppaoc/item/792bf01c14d736dabf904256一种方法:通用Linux USB安装器安装1.Universal-USB-Installer-1.8.0.4.exe(安装至U盘)2.利用XP/Vista/7系统制作U盘启动器 (Win 98/2K 不可以)3.U盘应格式化为Fat324.USB计算机BIOS要

2013-04-23 10:31:56 1191

转载 有关 apache 模块的调试

有关 apache 模块的调试的一些小知识,供朋友们学习参考。在编译apache时,增加-g选项:# ./configure CFLAGS="-g" --with-included-apr --with-php --with-mysql --with-su***ec --with-mpm=prefork --enable-so --enable-cgi --enable-rewrite

2013-04-22 11:42:41 1165

转载 linux查看网卡型号、驱动版本、队列数

http://blog.chinaunix.net/uid-24830931-id-3345567.html一、如何查看网卡生产厂家和型号? lspci命令  查看基本信息 lspci, 详细信息lspci -vvv  00:00.0 Host bridge: Intel Corporation 5520 I/O Hub to ESI Port (rev 13)00:0

2013-04-18 11:48:55 4705

转载 高性能网络I/O框架-netmap源码分析(1)

作者:gfree.wind@gmail.com博客:blog.focus-linux.net linuxfocus.blog.chinaunix.net微博:weibo.com/glinuxerQQ技术群:4367710前几天听一个朋友提到这个netmap,看了它的介绍和设计,确实是个好东西。其设计思想与业界不谋而合——因为为了提高性能,几个性能瓶颈放在那里,解决方法自然也是类

2013-04-17 14:30:59 2359

转载 lwip源码分析6——tcp层

http://blog.chinaunix.net/uid-9863638-id-1996367.htmllwip源码分析6——tcp层2010-1-16TCP层:看了这么久,终于到tcp层了,用凌总的话来说就是进入主战场了,兴奋啊,哈哈。回顾一下tcp的特性,就当重温comer的第一卷:1.       滑动窗口的概念:Tcp是通过正面确认和重传技术来保证可靠性的,但

2013-04-17 14:27:16 2036

转载 lwip源码分析5——udp层

http://blog.chinaunix.net/uid-9863638-id-1996363.htmlUDP层:2010-1-15written by leeming看了这么久的网络协议代码,发现在这几层的处理大同小异,主要就是对数据包协议处理,一层层剥离、判断,分析,辨别,因为即使到了udp层依旧是不可靠的无连接的交付服务,所以在udp这一层的代码还是相对比较简单的。先说

2013-04-17 14:25:09 1370

转载 lwip源码分析4——ip层

http://blog.chinaunix.net/uid-9863638-id-1996361.htmlIP层(先主要研究ipv4)written by leeming简述:Ip层的目的有三个:a.  ip层定义了在整个tcpip互联网中使用的数据传送基本单元,其他的高级协议都是放      在ip层的数据区的。(ICMP, IGMP(这两个仍然属于ip协议的一部分)

2013-04-17 14:19:23 1234

转载 lwip源码分析3----嵌入式LwIP协议栈的内存管理

http://blog.chinaunix.net/uid-9863638-id-1996358.html摘要:在内存需求分析的基础上,阐述了LwIP TCP/IP协议栈中pbuf结构的基本原理和内存管理机制的实现。这对在嵌入式系统中实现TCP/IP协议栈,进行网络连接有重要意义。    关键词:TCP/IP协议LwIP协议栈内存管理pbuf结构     目前,在嵌入式

2013-04-17 14:17:07 1098

转载 lwip源码分析2----ARP

http://blog.chinaunix.net/uid-9863638-id-1996357.html2010-1-61.         ARP:从功能上来说,arp可以简单的分成两个部分:a.       当我要向目的ip发送一个数据包的时候,需要通过arp实现ip到物理地址(一般为mac地址)的映射------------》ethernet_output函数b.

2013-04-17 14:04:38 1041

转载 lwip源码分析1------综述及设备驱动层

http://blog.chinaunix.net/uid-9863638-id-1996356.htmlLwip学习笔记1:2010-1-4 至2010-1-8Written by leeming       leeming.cublog.cn1.tcpip一般的实现方式有:●每一层一个进程,网络接口层,ip层,tcp层,应用程序层,这个方法的好处是各层之间结构清晰明了,

2013-04-17 13:52:22 1799

转载 关于LWIP

5推荐http://blog.sina.com.cn/s/blog_a6f07d72010168mv.htmllwip是一个轻量级的TCP/IP协议栈(Lightweight TCP/IP Stack)实现,最初是瑞士计算机科学学院Adam Dunkels编写的一个应用于无操作系统的嵌入式系统中的TCP/IP协议栈,后来作为一个开源(open source)

2013-04-12 16:24:12 1263

转载 Linux内核网络协议栈2-socket从库函数到内核

一、socket()库函数到系统调用,再到内核1、Linux运行的C库是glibc;2、socket()调用如下:1) socket()->__socket():glibc-2.3.6/sysdept/generic/socket.c (weak_alias(name1, name2))2) __socket():glibc-2.3.6/sysdept/unix/sysv/linu

2013-04-12 11:19:52 1007

转载 向busybox中添加命令

注意: 个人使用的busybox 是1.21.0 其中 Kbuild Config.in usage.h applets.h 均是由 Kbuild.src Config.src 等gen 的,所以修改生成的文件的文件, 而不是Kbuild等。注释里有说明,其它的参考 别的命令来写。第一种方法向 BusyBox添加一个新命令非常简单,这是因为它具有良好定义的体系结构。第一个步骤是为新

2013-04-12 09:22:15 5929

转载 Linux网络协议栈学习

http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1950411最近学习linux内核网络协议栈,把数据包接收流程大致理了一下,前面也看了瀚海书香兄的总结,感觉总结的比我精炼,抓住了主干,是一目了然的那种我的这篇本来是自己看得,因此把我自己学习中一些遇到的问题写了出来,可能其他人会觉得废话比较多,呵呵另外,因为我看的书U

2013-04-12 09:11:53 1087

转载 ip_route_input() -- IP路由(输入路由)

ip_rcv_finish() --> ip_route_input()    ip_route_input()给进来的包skb查找路由,现在缓冲区的路由hash表中查找,如果没找到,在调用ip_route_input_slow()到路由表中查找。    The function ip_route_input() is invoked for each IP packet arri

2013-04-10 15:31:44 5677 3

转载 __skb_dequeue()

_skb_dequeue() -- 将sk_buff链表的第一个节点从队列中摘除,并返回该节点process_backlog() --> __skb_dequeue() /usr/src/linux-2.6.19/include/linux/skbuff.hstatic inline struct sk_buff *__skb_dequeue(struct sk_buf

2013-04-10 15:28:59 3071

转载 net_rx_action() -- 软中断处理函数

/usr/src/linux-2.6.19/net/core/dev.cstatic void net_rx_action(struct softirq_action *h){    struct softnet_data *queue = &__get_cpu_var(softnet_data);    unsigned long start_time = jiffies

2013-04-10 15:27:29 3932

转载 process_backlog() -- 处理从网卡上读取的sk_buff队列

net_rx_action() --> process_backlog() 前面已经说过,软中断处理函数net_rx_action调用设备的poll方法(默认为process_backlog),而process_backlog函数将进一步调用netif_receive_skb()将数据包传上协议栈,如果设备自身注册了poll函数,也将调用netif_receive_skb()函

2013-04-10 15:26:48 2963

转载 netif_receive_skb()

process_backlog() --> netif_receive_skb()/usr/src/linux-2.6.19/net/core/dev.cint netif_receive_skb(struct sk_buff *skb){    struct packet_type *ptype, *pt_prev;    struct net_device

2013-04-10 15:26:18 1840

转载 ip_rcv() -- IP层接收sk_buff

netif_receive_skb() --> ip_rcv()    当一个IP包被接收到网卡中时,函数ip_rcv被底层的函数netif_receive_skb()调用。    First, the function rejects packets not addressed to the local computer. For example, the promiscuo

2013-04-10 15:25:45 2643

转载 ip_rcv_finish

ip_rcv() --> ip_rcv_finish()     ip_rcv_finish()在完成包接收后进行路由处理    The function ip_route_input() is invoked within ip_rcv_finish(skb) to determine the route of a packet. The skb->dst pointer of th

2013-04-10 15:25:07 1802 1

转载 ebtables之BROUTING和PREROUTING的redirect的区别

http://blog.csdn.net/dog250/article/details/7269212ebtables和iptables实用工具都使用了Netfilter框架,这是它们一致的一方面,然而对于这两者还真有一些需要联动的地方。很多人不明白ebtales的broute表的redirect和nat表PREROUTING的redirect的区别,其实只要记住两点即可,那就是对于相同点

2013-04-10 14:10:53 1782

转载 linux内核的一些预定义

http://article.phpfans.net/?do=Show&id=Mjc3NTkx所有的内核代码,基本都包含了linux\compile.h这个文件,所以它是基础,打算先分析这个文件里的代码看看,有空再分析分析其它的代码。首先印入眼帘的是对__ASSEMBLY__这个宏的判断,这个变量实际是在编译汇编代码的时候,由编译器使用-D这样的参数加进去 的,AFLAGS这个变量也定

2013-04-10 13:46:12 673

转载 ubuntu 2.6 编译内核

声明:本文是个人参考网上有关资料,编译2.6.25内核的总结,如按本文步骤编译内核造成的责任和本文作者无关。 本文放在本人的blog上面:http://hi.baidu.com/ffbp89/ 本文还有姊妹篇《老笔记本编译2.6.20内核指导》 如果有修改,也在blog上。 欢迎转载本文,但是请不要取消本声明。 写这篇东西主要是教学目的,学生可以结合编译内核复习shell的有关

2013-04-10 12:01:20 1097

转载 Linux设备驱动中的并发控制总结

http://www.cnblogs.com/yangzd/archive/2010/10/16/1852975.html并发(concurrency)指的是多个执行单元同时、并行被执行。而并发的执行单元对共享资源(硬件资源和软件上的全局、静态变量)的访问则容易导致竞态(race conditions)。   SMP是一种紧耦合、共享存储的系统模型,它的特点是多个CPU使用共同的系

2013-04-10 11:38:38 666

转载 Linux 2.6内核中新的锁机制--RCU

一、 引言https://www.ibm.com/developerworks/cn/linux/l-rcu/众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了广泛的使用。但是随着计算机硬件的快速发展,获得这种锁的开销相对于CPU的速度在成倍

2013-04-10 11:17:52 844

转载 netfilter与用户空间通信二法

http://blog.csdn.net/wangxing1018/article/details/4295536netfilter与用户空间通信二法声明:此文章只是 陈鑫在Linux 系统内核空间与用户空间通信的实现与分析 的笔记,结合自己在一些开源项目看到的体会,仅此而已。原理性的东西都在 陈鑫 的文章中有详尽的说明和解释。如果侵犯了作者的权利,请通知我,我会及时删除。

2013-04-10 11:08:33 1218

uthash hash string

Any C structure can be stored in a hash table using uthash. Just add a UT_hash_handle to the structure and choose one or more fields in your structure to act as the key. Then use these macros to store, retrieve or delete items from the hash table

2013-09-04

cJSON解析json数据

Description An ultra-lightweight, portable, single-file, simple-as-can-be ANSI-C compliant JSON parser, under MIT license.

2013-09-04

SecureCRSecureFXPortable打开就能用

秒杀 SecureCRSecureFXPortable打开就能用,其他的弱爆了

2013-08-21

vim+windows 文件

vim+windows 文件

2013-07-27

Burp_Suite使用说明

Burp_Suite使用说明

2013-02-19

Linux系统中vim设置tab键的宽度

Linux系统中vim设置tab键的 宽度

2012-11-26

apache2 简单介绍

apache2 简单介绍

2012-11-26

apt.tar.bz2

apt.tar.bz2

2012-10-30

apt mirror

apt mirrorapt

2012-10-30

openssh_6.0p1.orig.tar

openssh_6.0p1.orig.tar

2012-10-30

Burp Suite教程.pdf

Burp Suite教程.pdf

2012-10-25

Netfilter简介.ppt

Netfilter简介.ppt

2012-03-06

gun 编程规范

编程规范 英文

2012-03-05

空空如也

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

TA关注的人

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