2013年8月28日

module_init宏解析

摘要: 在init.h中我们看到#define module_init(x) __initcall(x);还看到#define __initcall(fn) device_initcall(fn)还有#define __define_initcall(level,fn) \ static initcall_t __initcall_##fn __attribute_used__ \__attribute__((__section__(".initcall" level ".init"))) = fn__define_initcall 作用宏定义__define_ 阅读全文

posted @ 2013-08-28 11:11 SuperKing 阅读(742) 评论(0) 推荐(0) 编辑

IP隧道基础研究

摘要: static char banner[] __initdata = KERN_INFO "IPv4 over IPv4 tunneling driver\n";static struct xfrm_tunnel ipip_handler = { .handler = ipip_rcv, //看下面接收处理函数实现 .err_handler = ipip_err, .priority = 1,};static int __init ipip_init(void) // net/ipv4/ipip.c{ i... 阅读全文

posted @ 2013-08-28 11:07 SuperKing 阅读(1000) 评论(0) 推荐(1) 编辑

IPV6介绍

摘要: IPV6介绍下面这个介绍肯定是我从哪里看来的,然后做了些修改,具体从哪看来的真记不住了,所以我无法写出引用自哪的,非常抱歉。看ipv6实现前一定要先看此篇内容,ipv6的原理介绍。定义 IPv6是Internet Protocol Version 6的缩写,其中Internet Protocol译为“互联网协议”。 IPv6是IETF(互联网工程任务组,Internet Engineering Task Force)设计的用于替代现行版本IP协议(IPv4)的下一代IP协议。 目前的全球因特网所采用的协议族是TCP/IP协议族。IP是TCP/IP协议族中网络层的协议,是... 阅读全文

posted @ 2013-08-28 11:00 SuperKing 阅读(2611) 评论(0) 推荐(0) 编辑

IPV6 实现

摘要: 看代码实现前,请先保证了解ipv6的概念,可以先看ipv6介绍一文。code extract from 2.6.24.在文件 net/ipv6/af_inet6.c 中包含了ipv6协议初始化的主函数。static int __init inet6_init(void){ struct sk_buff *dummy_skb; struct list_head *r; int err; //inet6_skb_parm必须小于等于skb中的cb BUILD_BUG_ON(sizeof(struct inet6_skb_parm) > sizeof(dummy_skb... 阅读全文

posted @ 2013-08-28 10:45 SuperKing 阅读(4015) 评论(0) 推荐(0) 编辑

ICMP 实现

摘要: 以下代码取自 kernel-2.6.24 .[数据结构]struct icmp_control { void (*handler)(struct sk_buff *skb); //icmp处理函数,根据icmp的类型字段 short error; /* This ICMP is classed as an error message */};static const struct icmp_control icmp_pointers[NR_ICMP_TYPES+1]; //每个icmp类型有一个项[/数据结构][初始化]文件net/ipv4/af_inet.c... 阅读全文

posted @ 2013-08-28 10:30 SuperKing 阅读(2711) 评论(0) 推荐(0) 编辑

Bridge实现

摘要: 网桥原理:传统的中继器,如HUB,是一个单纯的物理层设备,它将每一个收到的数据包,在其所有的端口上广播,由接收主机来判断这个数据包是否是给自己的。这样,网络资源被极大的浪费掉了。网桥之所以不同于中继器,主要在于其除了有中继的作用外,还有一个更重要的作用,就是学习MAC地址,然后根据每个数据包的目的MAC与自身端口的对应,从关联端口发送数据,而不完全地在整个网段中进行广播。所以,网桥的实现中,有两个关键点:1、 学习MAC地址,起初,网桥是没有任何地址与端口的对应关系的,它发送数据,还是得想HUB一样,但是每发送一个数据,它都会关心数据包的来源MAC是从自己的哪个端口来的,由于学习,建立地址-端 阅读全文

posted @ 2013-08-28 10:14 SuperKing 阅读(3381) 评论(0) 推荐(0) 编辑

导航