一、 linux的路由表结构:
- 一共六列,分别是:
- 目的IP地址;
- 网关;
- 标识量:包括U G H S C L R;
- 引用量;
- 使用量,应该是通过该IP地址发送的数据量;
- 发往IP地址的数据包的出口接口名称。
二、 路由表查表方法:
- 总共五个步骤:
- 路由表是一个树形结构,按照比特比较+掩码比较+回溯组成。
- 首先,从linux地址结构的包含IP地址的第一位开始,也就是比特32的地方进行比较,按照比特位为1或为0来判断是查找左子树还是右子树
- 直至比较到树叶,然后通过和树叶中的掩码进行与运算,如果能和树叶中的键值匹配,那么就查找成功,否则要进行回溯
- 回溯过程中按照每次回溯一层来进行,每次回溯到一层,就要和该层的掩码进行与操作,形成新的比较键值(如果该层有掩码的话),然后按照形成的新的键值从该层开始查找
- 如果查找的路由表项添加了克隆标识,那么在查找成功后要为该路由表项创建一个新的树叶,添加到路由表中
三、 路由表的数据结构
- 五个关键的数据结构
- 在一个全局结构rt_tables[]数组结构中,它的每一个元素都代表一种网络协议,在Internet协议元素中,会有一个指针指向路由表树的顶点。
- 路由表树的顶点是一个radix_node_head结构,该结构最重要的是有三个radix_no