Macross的专栏

最美的不是下雨天,是曾与你躲过雨的屋檐

内核构造skb数据包的实现总结

一、IPv4、TCP和UDP的校验和计算校验和是网络协议用来识别传输错误的冗余域。有些校验和不但能检测错误,还能自动修正某些类型的错误。校验和的想法很简单。在传输一个数据 包之前,发送方计算出一个很小的、固定长度的域 (校验和)包含数据的某种散列。如果在传输过程中某几位数据被改变,很可能损坏的数据...

2010-03-31 17:46:00

阅读数:9869

评论数:1

oracle的故事

一个名叫Sid的男人,狂热地爱好拍摄、保存和整理照片。Sid的妻子名叫Debbie,他们有三个儿子Logan、Archie和Chuck。他有一所很大的房子,同住的有男管家Simon和女仆Pam。我将介绍他的家庭、他的房子和他的爱好:拍摄、收集和炫耀他的照片。 现在,Sid快乐地生活着—家庭、朋友和...

2010-03-24 09:16:00

阅读数:770

评论数:0

makefile的语法及写法

转自:http://topic.csdn.net/u/20070720/09/79922fb0-bbd6-403c-bba3-3c9bc8c71368.html 0 Makefile概述 -------------------------------------------------------...

2010-03-22 09:43:00

阅读数:546

评论数:0

Linux 网络系统学习 IPv6 的初始化(详细而全面)

转自:http://blog.csdn.net/rstevens/archive/2007/04/10/1559289.aspx  1.   网络子系统1.1.                    网络子系统概述 Linux 内核中,与网络相关的代码是一个相对独立的子系统,称为网络子系统。网络

2010-03-16 09:34:00

阅读数:1813

评论数:0

linux内核模块常用命令

一、什么是 modules?  modules 的字面意思就是模块,在此指的是 kernel modules;简单来说, 一个模块提供了一个功能,如 isofs、minix、nfs、lp 等等。传统来讲,模块化有两个方法解决: 设计者可以把各项功能分离到单独的叫做线程的处理中去,或者是将内核以包含...

2010-03-15 20:05:00

阅读数:5491

评论数:0

几个宏的区别

最看内核网络相关的资料,有几个宏总是混在一起,NF_IP_PRE_ROUTING(或NF_IP6_PRE_ROUTING)、NF_IP_PRE_ROUTING,另外还有《linux网络体系结构》ipv6那部分中提到的IP_PRE_ROUTING,这个结构在我的2.6.28内核中没有搜到,估计是这本...

2010-03-09 21:33:00

阅读数:1380

评论数:0

IPv6实现--转发包的处理流程(2)

进入第一个钩子NF_HOOK(PF_INET6, NF_INET_PRE_ROUTING, skb, dev, NULL,ip6_rcv_finish)后,ip6_rcv_finish()将调用下列3个函数之一:ip6_input()、ip6_mc_input()、ip6_forward()。当I...

2010-03-09 16:36:00

阅读数:3683

评论数:0

IPv6实现--传入包的处理流程(1)

IPv6中数据包的接收处理流程在一个IPSEC包进入到网络层调用~/net/ipv6/ip6_input.c中的ipv6_rcv()函数,然后进入第一个钩子NF_HOOK(PF_INET6, NF_INET_PRE_ROUTING, skb, dev, NULL,ip6_rcv_finish);对...

2010-03-09 15:41:00

阅读数:3110

评论数:5

skbuff.h文件中NET_SKBUFF_DATA_USES_OFFSET宏的含义

找到NET_SKBUFF_DATA_USES_OFFSET定义的地方,文件include/linux/skbuff.h#if BITS_PER_LONG > 32#define NET_SKBUFF_DATA_USES_OFFSET 1#endif出现使用NET_SKBUFF_DATA_US...

2010-03-09 11:25:00

阅读数:2778

评论数:0

内核中的likely和unlikely宏的使用

在内核代码中经常会看到unlikely和likely的踪影。他们实际上是定义在 linux/compiler.h 中的两个宏。  #define likely(x) __builtin_expect(!!(x), 1)  #define unlikely(x) __builtin_expect(!...

2010-03-08 12:40:00

阅读数:635

评论数:0

内核中修饰的函数的__init的含义

例子如:void __init xfrm_state_init(void)其实最常见的莫过于linux内核中用于模块初始化的函数,如用于SCTP模块初始化的函数:SCTP_STATIC __init int sctp_init(void)__init的定义:#define __init      ...

2010-03-08 10:22:00

阅读数:1255

评论数:0

内核中的spin_lock

    我们知道现在 Linux 已经有支持 SMP,也就是可以使用多颗 CPU来加快系统的速度,如果当我们在修改重要的资料结构时,将执行修改工作的 CPU 中断 disable 掉的话,只有目前的这个 CPU的执行不会被中断,在 SMP 环境下,还有别的 CPU 正同时运作,如果别的 CPU 也...

2010-03-07 20:17:00

阅读数:640

评论数:0

内核IPSec代码中xfrm_input.c中关于kmem_cache_alloc的使用分析

基本知识:在内核编程中,可能经常会有一些数据结构需要反复使用和释放,按照通常的思路,可能是使用kmalloc和kfree来实现。但是这种方式效率不高,Linux为我们提供了更加高效的方法——Slab高速缓存管理器。动态创建固定大小的内存对象,虽然kmalloc的时间复杂度并不大,但是联系到空间复杂...

2010-03-07 10:31:00

阅读数:1140

评论数:0

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