Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1754793
  • 博文数量: 787
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5015
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-22 15:17
文章分类

全部博文(787)

文章存档

2008年(787)

我的朋友

分类:

2008-09-25 16:06:31

最近看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---------------------

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