摘要: 今天分析linux内核的路由过程。 发送路由从ip_route_output()开始,其过程是先查找路由缓存,如果路由缓存里面有,则直接取出,如果没有,调用ip_route_output_slow()意思是慢查找,查找fib表,如果都没有查到,则数据发送过程无法成功完成。 同样的,接收路由从ip_route_input()开始,先查找路由缓存,如果没有找到,调用ip_route_input_slo... 阅读全文
posted @ 2010-03-30 01:23 wudanzy 阅读(427) 评论(0) 推荐(0)
摘要:         在FIB中保存的是路由规则,在系统中一般先查找路由缓存,如果查到,则直接抽出,如果不能查到,则根据FIB中的规则换算出来,并且加到路由缓存里面去。 在系统中一般有两张表,local_table和main_table,都是fib_table{}结构的。Fib_table{}结构里面定了以一堆用于操作的函数指针,而且... 阅读全文
posted @ 2010-03-29 00:22 wudanzy 阅读(1375) 评论(0) 推荐(0)
摘要: 接着昨天的继续看,今天看的是路由部分。 在linux路由系统里面保存了三种与路由相关的数据,第一是物理上和本机相连的主机地址信息表,称作相邻表,用neigh_table{}数据结构的链表表示,以neighbour{}结构作为节点;第二种是保存了在网络访问中判断一个网络应该走什么路由的数据表,用fib_table{}数据结构的链表表示;第三种是最新使用过的查询路由地址的缓存地址数据表,称作rtcac... 阅读全文
posted @ 2010-03-27 23:57 wudanzy 阅读(288) 评论(0) 推荐(0)
摘要: 今天看了linux内核2.4网络实现,看了之后很有启发。 首先讲解了数据包的结构,分别是msghdr和sk_buff结构,其中msghdr主要使用在BSD Socket层里边使用,而sk_buff结构在INET Socket层一下都使用。msghdr没怎么看,主要是看了看sk_buff,这两天看这个看得比较多,里面涵盖的东西比较多,它是由一个链表连接起来的,包含了INET Socket以下各层的信... 阅读全文
posted @ 2010-03-26 23:32 wudanzy 阅读(357) 评论(0) 推荐(0)
摘要:         晚上看了看昨天没有看完的ip_gre.c,在看这个之前看过那个对ip_gre.c的分析的论文,看了之后对于阅读很有好处。         在发送的时候,从ipgre_tunnel_xmit()开始,调用它的应该是ip层的发送函数,然后ipgr... 阅读全文
posted @ 2010-03-26 00:05 wudanzy 阅读(751) 评论(0) 推荐(0)
摘要: make的功能很强大,定义了很多种类的规则。主要有:显示规则,模式规则,隐含规则和静态模式规则。 显示规则就是在规则中写清楚了目标文件和它的依赖文件。 模式规则就是使用通配符,通配符主要有:*代表任意个字符;?代表一个字符;[…]表示括号中的字符;[^..]表示除开括号中的字符,另外,~代表当前用户的主目录。 另外,在make中,经常使用假目标。假目标指不代表任何文件的目标,它只是一个符号,一般来... 阅读全文
posted @ 2010-03-25 17:14 wudanzy 阅读(251) 评论(0) 推荐(0)
摘要: makefile文件用于在编写程序的时候自动地编译,它有两个好处,一个是文件本身就叙述了需要生成的文件之间的依赖关系,在生成目标文件的时候,make程序会读取makefile文件的内容,然后对文件之间的依赖进行分析,然后在生成总的文件的时候严格遵循makefile文件所描述的文件依赖关系。 makefile文件里面的一条规则的格式如下: target : prereq1 prereq2 comma... 阅读全文
posted @ 2010-03-25 15:31 wudanzy 阅读(598) 评论(0) 推荐(0)
摘要:         最近几天都在看关于网络驱动方面的东西,今天继续看,顺便记录下来。         每一个接口由一个net_device结构体来描述。<linux/netdevice.h>里面定义。     ... 阅读全文
posted @ 2010-03-24 23:34 wudanzy 阅读(194) 评论(0) 推荐(0)
摘要:         今天没有干些什么,应该说是干了一堆很杂的东西,这个看了看,那个看了看,但是都是很粗略地看了看,但是今天的日志是需要写的。         今天了解了一下tun/tap,上次看到这个东西很奇怪,今天google了一下,发现是一个linux下面的... 阅读全文
posted @ 2010-03-23 23:39 wudanzy 阅读(153) 评论(0) 推荐(0)
摘要:         今天好好看了一看周师兄的代码,看懂了一些。         首先看的是那个mct的文件夹,整个文件夹是一个模块,主要处理的是和组播表,我对组播不熟悉,也不知道组播表是什么东西。这个组播模块主要的数据结构为:一个链表mct_sg_link,每一... 阅读全文
posted @ 2010-03-22 17:27 wudanzy 阅读(205) 评论(0) 推荐(0)