引子: linux路由命令的格式如下,有些参数被我省略了。 route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] 例如 route add -net 113.20.0.0 netmask 255.255.0.0 gw 100.150.0.125 eth2 目标为113.20.0.0/16的数据包都将利用eth2这个NIC设备,发送到ip 地址为100.150.0.125的gateway上。 所以一条路由命令,基本包括目标网络,目标网络的网络掩码,下一跳地址,出口设备。 那么linux 是如何保存这些数据呢,最简单的就是把以上一条路由项以一跳数据形势保存起来。 当路由项很多时,执行效率就会很低下了。因为路由查找会很慢的。 而linux 是把以上路由拆分,分别保存起来。这样路由项就可以共享一些数据了。 路由表 路由在网络栈中处于核心地位以及路由表的容量可能很大,因而设计出高效的路由表来 加快各种操作,特别是路由查找操作就很重要。下面介绍Linux是如何来组织路由表, 如何利用各种hash表来访问路由表里的各个数据结构,每一种hash表都是为了用不同方式, 不同条件的查找而专门设计的。 路由表的整体关系图如下 int tb_default; ----------- 作者:GTT |
不良信息举报Q:2000617|Archiver|ROS软路由论坛 ROSABC.com 网络方案网络工程交流
GMT+8, 2025-11-14 10:08 , Processed in 0.031189 second(s), 15 queries .
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.