Chinaunix首页 | 论坛 | 博客
  • 博客访问: 751660
  • 博文数量: 741
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 4825
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-18 11:18
文章分类

全部博文(741)

文章存档

2011年(1)

2008年(740)

我的朋友

分类:

2008-09-18 11:31:39

最近看linux源代码的IP路由部分,遇到一些疑惑:
      
      路由转发过程中先用ip_route_input()查路由缓存,不中了再在ip_route_input_slow()中调用fib_lookup()查询路由表(FIB),路由规则、路由表和路由缓存相关的一些数据结构和函数都看了大概,比较复杂,但发现对路由的查询都以套接字缓冲区指针、源和目的地址、TOS值以及net_device指针为参数。

      在linux下route -C,发现路由缓存格式为Source  Destination  Gateway  Flags  Metric  Ref  Use Iface,与参数基本一致,但路由表格式为Destination  Gateway  Genmask  Flags  Metric  Ref  Use  Iface,两者有些差别,难道时将在路由表中查到的条目与源地址一起组成了路由缓存?这是由数据结构决定的么,以前我觉得源地址是没用的,后来才知到需要用来做逆向路径过滤,即源地址检验,不知我的理解是否有偏差,敬请指教!

      谢谢!

[ 本帖最后由 njngypp 于 2008-4-24 07:57 编辑 ]

--------------------next---------------------

阅读(770) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~