荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: jjk (UNIX+C+XML+?? 傻了?), 信区: Linux
标 题: 一张内核路由部分的草图 :) (zz)
发信站: 荔园晨风BBS站 (Mon Apr 22 19:45:31 2002), 转信
【 以下文字转载自 jjk 的信箱 】
【 原文由 jjk.bbs@apue.dhs.org 所发表 】
发信人: ysqcn (ysq.cn), 信区: UKP
标 题: 一张内核路由部分的草图 :) (zz)
发信站: UNIX编程 (Tue Mar 26 17:45:28 2002) , 转信
发信人: shiabc (star), 信区: KernelTech
标 题: 一张内核路由部分的草图 :)
发信站: BBS 水木清华站 (Tue Mar 26 17:50:55 2002)
(struct fib_table *)
fib_tables
+---------------+
|RT_TABLE_UNSPEC|
+---------------+
| 1 |
+---------------+ +------>...
|...user def... | |
+---------------+ |
| 252 | |
+---------------+ |
|RT_TABLE_DEFAULT--+ struct fib_table
+---------------+ +----------+
|RT_TABLE_MAIN -|------>| |
+---------------+ | |
|RT_TABLE_LOCAL | | |
+---------------+ | |
256 elements in all | |
| |
| |
+-------------------+----------+
| |tb_data[0]|
+---|-------------------+----------+
| |
| |
| |
| | struct fn_hash (at most 33 nodes, 255.255.255.255---0.0.0.0)
| +---+---------------+--
| | fn_zones[0] -|-------+
| +---------------+ |
| | fn_zones[1] | |
| +---------------+ |
| | ........... | |
| +---------------+ |
| | ........... -|-------|-------+
| +---------------+ | |
| | fn_zones[31] | | |
| +---------------+ | |
| | fn_zones[32] -|-------|-------|---------------+
| --+---------------+-- | | |
| | fn_zone_list -|---+ | | |
+-------+---------------+ | | | |
| | | |
| | | |
| | | |
+---------------------------+ | | |
| | | |
| +-----------------------+ | |
| | | |
| | +-------+ |
| | | |
| | | |
| V V V
| struct fn_zone struct fn_zone struct fn_zone
+------>+---------+ +---------+ +---------+
| fz_next-|------------>| fz_next-|--- ....---->| fz_next-|----->NULL
+---------+ +---------+ +---------+
| fz_hash-|-----+ | fz_hash-|---+ | fz_hash-|---+
+---------+ | +---------+ +---------+
| | | | | | |
| | | | | | |
+---------+ | +---------+ +---------+
0.0.0.0 or /0 | ....... 255.255.255.255 or /32
route dst 's mask |
|
|
|
+-----------------------+
|
|
|
| // A hash table(size = fn_zone's fz_divisor)
|
+------>+-------+
| |
+-------+ (struct fib_node)
| |
+-------+ +-------+ +-------+
| --+-------------->|fn_next|------>|fn_next|------->
+-------+ |-------| |-------|
| | |fn_info|---+ |fn_info|-------+
+-------+ |-------| | |-------| |
| | | | V | | V
+-------+ +-------+ +-------+
| |
+-------+
| |
+-------+ +-------+ +-------+
| --+-------------->|fn_next|------>|fn_next|------->
+-------+ |-------| |-------|
| | |fn_info|---+ |fn_info|-------+
+-------+ |-------| | |-------| |
| | | | V | | |
+-------+ +-------+ +-------+ |
| | |
+-------+ |
|
+-------------------------------+
|
|
|
(struct fib_info *) |
fib_info_list |
| V
| (struct fib_info)
+-->+----------+ +----------+ +----------+
+------>|-fib_next-|----------->|-fib_next-|----------->|-fib_next-|-->-+
| +-<---| fib_prev-|<-----------| fib_prev-|<-----------| fib_prev-|<---|-+
| | +----------+ +----------+ +----------+ | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | +----------+ +----------+ +----------+ | |
| | | |
+-|---------------------------------------------------------------------+ |
+-----------------------------------------------------------------------+
--
--
※ 来源:.UNIX编程WWW apue.dhs.org. [FROM: 202.114.2.11]
--
※ 转寄:·UNIX编程 apue.dhs.org·[FROM: 210.39.3.50]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店