很长的一段时间里,我对于转发表和路由表之间的区别都很模糊,知道路由表由目的地址,掩码,下一跳网络,接口,metrics值组成,而感觉只要有路由表,那么数据包就可以从中查询到下一跳转发的接口,为什么还要有转发表呢?
这次在《图解网络硬件》一书中看到了一个路由器内部结构的示意图,明确的将路由器内部的功能按照逻辑划分成转发区和路由区,两者的区别和联系一目了然。对于一个数据包而言,首先查找转发表,如果能够找到相关的记录,则直接转发;否则将数据包的头部地址交给路由引擎。路由引擎再依照选用的路由算法更新路由表,然后路由表将相关的条目发给转发表。
两者的区别是:
- 路由表是由路由算法生成的,转发表是由路由表生成的;
- 路由表一般由软件实现,转发表由硬件实现,速度更快。
- 路由表的目的是找到到达目的地址的路径,转发表的目的是将数据包转发给下一个接口