网络协议栈处理
aaa6695798
这个作者很懒,什么都没留下…
展开
-
sk_buff穿越链路层时的包头结构的变化
声明:写这篇可有可无的文章的起因是:我对 sk_buff 结构体的 一些 具体操作的困惑,一直到再看到 Understanding Linux Network Internals 的19章,才恍然大悟。因此记下来,本文并不代表什么,只是释惑而已。sk_buff穿越链路层时的包头结构的变化困惑:以前在看书时,一看到下面这幅图,就以为sk_buff的结构都会填充好了,对head和end指针转载 2009-07-17 13:31:00 · 609 阅读 · 0 评论 -
Linux 网络栈剖析
http://www.ibm.com/developerworks/cn/linux/l-linux-networking-stack/index.html?S_TACT=105AGX52&S_CMP=techcsdn 2007 年 7 月 16 日Linux® 操作系统的最大特性之一就是它的网络栈。它最初源于 BSD 的网络栈,具有一套非常干净的接口,组织得非常好。其接口范转载 2009-12-08 12:54:00 · 594 阅读 · 1 评论 -
sK_buffer
sk_buff结构详解struct sk_buff可能是linux网络代码中最重要的数据结构,它表示接收或发送数据包的包头信息,并包含很多成员变量供网络代码中的各子系统使用。 这个结构被网络的不同层(MAC或者其他二层链路协议,三层的IP,四层的TCP或UDP等)使用,并且其中的成员变量在结构从一层向另一层传递时改变。 L4向L3传递前会添加一个L4的头部,同样,L3转载 2009-12-08 12:45:00 · 1145 阅读 · 0 评论 -
sk_buffer 详细分析
1. 定义Packet: 通过网卡收发的报文,包括链路层、网络层、传输层的协议头和携带的数据Data Buffer:用于存储 packet 的内存空间SKB: struct sk_buffer 的简写2. 概述Struct sk_buffer 是 linux TCP/IP stack 中,用于管理Data Buffer的结构。Sk_buffer 在数据包的转载 2009-11-26 15:18:00 · 1014 阅读 · 1 评论 -
深度探索套接字缓冲区
套接字缓冲区用结构体struct sk_buff表示,它用于在网络子系统中的各层之间传递数据,处于一个核心地位,非常之重要。它包含了一组成员数据用于承载网络数据,同时,也定义了在这些数据上操作的一组函数。下面是其完整的定义: struct sk_buff { struct sk_buff *next; struct sk_buff *p转载 2009-11-26 15:56:00 · 1015 阅读 · 0 评论 -
sk_buff数据结构图
一。skbuff的结构图如下二.Basic functions for sk_buff skb_headroom(), skb_tailroom()Prototype / Descriptionint skb_headroom(const struct sk_buff *skb);bytes at buffer headint skb_tailroom(const struct s转载 2009-11-26 14:34:00 · 1455 阅读 · 0 评论 -
2.6内核基于NetFilter处理框架修改TCP数据包实现访问控制
转帖与http://hi.baidu.com/xyp86/blog/item/4e502b185ea296bd4bedbc48.html ,感谢 征战论文的途中,以前公司的人来找我说要给之前我设计的网络内容过滤产品添加一个功能,只允许使用了我们产品的用户才能访问某教育局提供的视频教育资源。相比写论文,这种工程复杂性接近于O(1)或顶多是O(t)。 有两种方法可以实现:1)在产品中添加VPN转载 2009-09-29 14:07:00 · 1576 阅读 · 1 评论 -
Linux TCP/IP 协议栈源码分析
一.linux内核网络栈代码的准备知识 1. linux内核ipv4网络部分分层结构: BSD socket层: 这一部分处理BSD socket相关操作,每个socket在内核中以struct socket结构体现。这一部分的文件 主要有:/net/socket.c /net/protocols.c etcINET socket层:BSD socket是个可以用于各种网络转载 2009-07-12 10:56:00 · 5453 阅读 · 2 评论 -
netfilter与用户空间通信二法
Linux内核态与用户态进程通信方法的提出与实现。分为 用户上下文环境、硬中断和软中断环境两种情况。3.1 用户上下文环境运行在用户上下文环境中的代码是可以阻塞的,这样,便可以使用消息队列和 UNIX 域套接字来实现内核态与用户态的通信。但这些方法的数据传输效率较低,Linux 内核提供 copy_from_user()/copy_to_user() 函数来实现内核态与用户态数据的拷贝转载 2009-07-22 09:03:00 · 719 阅读 · 0 评论 -
tcp/ip stack 中的数据包队列
http://blog.csdn.net/rstevens/archive/2006/05/08/713138.aspx(小马哥)TCP/IP 是一种存储/转发的协议,因此,在 stack 中必然存在数据包的队列(sk_buff queue)。正是这些队列,将 stack 的处理逻辑比较清晰的划分成几个部分。 数据包接收路径上的队列: 1、网络层队列:softnet_d转载 2009-12-08 19:34:00 · 564 阅读 · 0 评论