摘要:
4.2 数据发送流程图各层主要函数以及位置功能说明: 1)sock_write:初始化msghdr{}结构 net/socket.c 2)sock_sendmsg:net/socket.c 3)inet_sendmsg:net/ipv4/af_net.c 4)tcp_sendmsg:申请sk_buff{}结构的空间,把msghdr{}结构中的数据填入sk_buff空间。net/ipv4/tcp.c 5)tcp_send_skb:net/ipv4/tcp_output.c 6)tcp_transmit_skb:net/ipv4/tcp_output.c 7)ip_queue_xmit:net/. 阅读全文
摘要:
http://hi.baidu.com/ahtaria/blog/item/969ae4447eaa59076a63e57d.htmlLibpcap 重点使用 BPF(BSD Packet Filter)包过滤机制,BPF 于 1992 年被设计出来,其设计目的主要是解决当时已存在的过滤机制效率低下的问题。BPF的工作步骤如下:当一个数据包到达网络接口时,数据链路层的驱动会把它向系统的协议栈传送。但如果 BPF 监听接口,驱动首先调用 BPF。BPF 首先进行过滤操作,然后把数据包存放在过滤器相关的缓冲区中,最后设备驱动再次获得控制。注意到BPF是先对数据包过滤再缓冲,避免了类似 sun 的 阅读全文
摘要:
http://www.ibm.com/developerworks/cn/linux/l-ntflt/2.4.x的内核相对于2.2.x在IP协议栈部分有比较大的改动, Netfilter-iptables更是其一大特色,由于它功能强大,并且与内核完美结合,因此迅速成为Linux平台下进行网络应用扩展的主要利器,这些扩展不仅包括防火墙的实现--这只是Netfilter-iptables的基本功能--还包括各种报文处理工作(如报文加密、报文分类统计等),甚至还可以借助Netfilter-iptables机制来实现虚拟专用网(VPN)。本文将致力于深入剖析Netfilter-iptables的组织结 阅读全文
摘要:
17号linux-2.6.34内核发布,带来了一些更新,想升级的朋友可以按照以下方法第一步:准备工作打开终端获得root权限:sudo su然后安装编译内核时需要的工具:apt-get install build-essential kernel-package libncurses5-dev libqt3-headersbuild-essential (基本的编程库(gcc, make等)kernel-package (Debian 系统里生成 kernel-image 的一些配置文件和工具)libncurses5-dev (meke menuconfig要调用的)libqt3-header 阅读全文
摘要:
Linux网桥模型: Linux内核通过一个虚拟的网桥设备来实现桥接的,这个设备可以绑定若干个以太网接口设备,从而将它们桥接起来。如下图所示:网桥设备br0绑定了eth0和eth1。对于网络协议栈的上层来说,只看得到br0,因为桥接是在数据链路层实现的,上层不需要关心桥接的细节。于是协议栈上层需要发送的报文被送到br0,网桥设备的处理代码再来判断报文该被转发到eth0或是eth1,或者两者皆是;反过来,从eth0或从eth1接收到的报文被提交给网桥的处理代码,在这里会判断报文该转发、丢弃、或提交到协议栈上层。 而有时候eth0、eth1也可能会作为报文的源地址或目的地址,直接参与报文的发送.. 阅读全文
摘要:
http://blog.csdn.net/aaa6695798/article/details/4879271 套接字缓冲区用结构体struct sk_buff表示,它用于在网络子系统中的各层之间传递数据,处于一个核心地位,非常之重要。它包含了一组成员数据用于承载网络数据,同时,也定义了在这些数据上操作的一组函数。下面是其完整的定义: struct sk_buff { struct sk_buff *next; struct sk_buff *prev; struct sock *sk; struct skb_timeval tstamp; struct net_device *dev; s. 阅读全文
摘要:
记录相关网址: 1、Linux netfilter Hacking HOWTO http://www.netfilter.org/documentation/HOWTO/netfilter-hacking-HOWTO.html#toc3 2、CSDN上一篇参考博文: A example of NF_IP_PRE_ROUTING module http://blog.csdn.net/jiatingqiang/article/details/6282003 阅读全文
摘要:
http://fcns.eu/2010/02/netfilter-hooks/keyword:write new netfilter moduleNote:This article was inspired by the lack ofupdateddocumentation on how to write proper netfilter kernel modules. At the time I’m writing this article, the latest stable release was 2.6.32.8. I am also assuming you are familia 阅读全文
摘要:
安装内核源码步骤installing kernel source code in Redhat or centos, kernel headers install 2011-03-10 15:15 Both CentOS and RHEL5 includes following packages: Kernel-headers : It includes the C header files th... 阅读全文
摘要:
16.1.1 函数模板。模板定义以关键字 template 开始。后接 模板形参表,模板形参表是用尖括号括住一个或多个形参列表,形参之间以逗号分隔。模板形参可以是表示类型的 类型形参,也可以是 表示常量表达式 的非类型形参。使用函数模板。使用函数模板时,编译器会推断哪个或哪些模板实参 绑定到模板形参。一旦编译器确定了对应的模板实参,就称为:实例化了一个函数模板实例。inline 函数模板template <typename T> inline T min(const T& ,const T&);注意:inline 说明符放在模板形参之后,函数返回类型之前。16.1. 阅读全文