- 博客(12)
- 收藏
- 关注
转载 Linux内核网络报文简单流程
Linux内核网络报文简单流程2014-08-12 10:05:09 分类: LINUXLinux下的网卡驱动中通常会提供类似XXX_rx的接收函数 该函数处理与具体硬件相关的寄存器操作 包括中断检查,数据状态检查,错误检查等 在确认有数据抵达后读取数据或从DMA的接收环中获取数据地址 XXX_rx函数以skb为元数据结构组织报文数据 随后调用内
2015-04-30 17:12:31 1714
转载 netif_receive_skb 函数注解
//当网络设备收到网络数据包时,最终会在软件中断环境里调用此函数 //当网络设备收到网络数据包时,最终会在软件中断环境里调用此函数 [cpp] view plaincopyprint?int netif_receive_skb(struct sk_buff *skb) { //ptype_all 用于sniffer这样的程序
2015-04-30 17:07:53 757
转载 linux kernel 网络协议栈之GRO(Generic receive offload)
linux kernel 网络协议栈之GRO(Generic receive offload)2010年11月26日 Simon Liu发表评论阅读评论原创文章,转载请注明: 转载自pagefault本文链接地址: linux kernel 网络协议栈之GRO(Generic receive offload)GRO(Generic receive o
2015-04-29 12:31:37 664
转载 linux内核网络协议栈学习笔记:关于GRO/GSO/LRO/TSO等patch的分析和测试
linux内核网络协议栈学习笔记:关于GRO/GSO/LRO/TSO等patch的分析和测试分类: Linux内核 Xen 2012-09-02 21:23 10470人阅读 评论(1)收藏 举报TSO,全称是TCP Segmentation Offload,我们知道通常以太网的MTU是1500,除去TCP/IP的包头,TCP的MSS (Max Segm
2015-04-28 17:45:18 744
转载 Linux网络子系统中链路层中GRO的处理
根据上篇博文的介绍,GRO需要支持GRO的每种协议都要实现自己的报文匹配合并函数和合并完成函数。这里我们先来看看链路层上实现的自己的GRO函数。链路层的接收匹配函数__napi_gro_receive(napi, skb):该函数对报文进行匹配,并不合并报文。匹配规则(必须同时满足以下两个条件):1、两个报文的接收dev必须相同。2、两个报文的以太头必须相同。s
2015-04-27 16:15:41 839
转载 linux 协议栈学习 第八节 链路层GRO的处理
linux 协议栈学习 第八节 链路层GRO的处理链路层的接收匹配函数__napi_gro_receive(napi, skb):该函数对报文进行匹配,并不合并报文。匹配规则必须同时满足以下两个条件):1、两个报文的接收dev必须相同。2、两个报文的以太头必须相同。static int __napi_gro_receive(struct napi_str
2015-04-23 12:25:44 614
转载 linux协议栈学习 第七节 GRO的实现
linux协议栈学习 第七节 GRO的实现 GRO (generic receive offload) 概述:GRO是在协议栈接收报文时进行减负的一种处理方式,该方式在设计上考虑了多种协议报文。主要原理是在接收端通过把多个相关的报文(比如TCP分段报文)组装成一个大的报文后再传送给协议栈进行处理,因为内核协议栈对报文的处理都是对报文头部进行处理,如果相关的多个报
2015-04-22 16:00:31 1292
转载 数据包接收系列 — NAPI的原理和实现
数据包接收系列 — NAPI的原理和实现分类: Linux Kernel Network Subsystem 2014-03-27 17:14 2308人阅读 评论(0)收藏 举报NAPI数据包接收目录(?)[+]概述实现本文主要内容:简单分析NAPI的原理和实现。内核版本:2.6.37Author:zhangsk
2015-04-22 15:08:46 633
转载 iptables 规则链表以及状态检测
iptables 规则链表以及状态检测时间:2011-05-19 16:22来源:未知作者:admin 点击:次一、规则链表 当数据包到达防火墙时,如果MAC地址符合,就会由内核里相应的驱动程序接收,然后会经过一系列操作,从而决定是发送给本地的程序,还是转发给其他机子,还是其他的什么。 我们先来看一个以本地为目的的数据包,它要经过以下步骤才能到达要接收它的程序: 下文中有个词mangl
2015-04-07 10:03:53 3316
转载 整数转ip地址的实现
#include 31 __FBSDID("$FreeBSD$"); 32 33 #include 34 #include 35 36 #include 37 38 char * 39 inet_ntoa(struct in_addr ina) 40 { 41 static cha
2015-04-02 11:53:44 449
转载 内核态socket编程
内核态的socket编程分类: 嵌入式开发2013-06-17 15:32 794人阅读 评论(0) 收藏 举报记不清从哪个kernel版本开始,内核态就不能直接使用系统调用了。当然,socket的系统调用也不能用了。不过好在kernel提供了一组内核态的socket API。在net/socket.c文件中,可以看到这么几个导出符号:[cpp] view
2015-04-01 17:12:10 2766
转载 Linux 内核态 Socket 编程
Linux 内核态 Socket 编程分类: Socket2013-11-27 15:48 909人阅读 评论(0) 收藏 举报1.内核态 socket API内核态socket编程的过程和用户态下的socket编程流程一样,但是接口不同。Kernel提供了一组内核态的socket API,基本上在用户态的sockt API在内核中都有对应的API。 在net/
2015-04-01 16:18:49 6699 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人