现实生活中的路由表就是路牌,让你能够到达目的地。而计算机设备的数据要到达目标也需要有"路牌",在网络中这叫路由。把数据从源设备发送到下一台设备。路由就是“找路”,是IP包转发路径信息。路由表就是多条路由信息的数据表。


静态路由

静态路由:静态路由是由管理员手工配置的,简单直接,是什么就是什么。缺点是当网络拓扑发生变化或有故障发生后,静态路由不会自更正,必需由管理员手工修改。适合小型网络,在路由条目较多的环境下容易出错,需要管理员手动配置,可能会出现环路。

静态路由和动态路由的区别(静态路由和动态路由的用途与差别)(1)

有点像下面这个场景:阿呆要去打酱油了,妈妈告诉他出门直走,看到第一个路口左转,再遇到一个路口右转,在下个路由的右手边就到了。于是后来阿呆每次就这么记着并去打酱油了。直到有一天当他到了第二个路口时发现右转的那条路已经被墙堵住了,他就不知道怎么走了(丢包)。

静态路由和动态路由的区别(静态路由和动态路由的用途与差别)(2)

再举个栗子,静态路由就像公交车站牌,路线就是设计好了的,不会走偏,公交车司机早就记住了每个站点站哪,哪个在前哪个在后,往哪条路走,就算有近路也不行,老老实实的按着规定好的线路到达每一个站点,因此公交车司机的路由表是静态的。

静态路由和动态路由的区别(静态路由和动态路由的用途与差别)(3)

拿家用路由器的来说,每个普通家用路由中都有一条默认设置好的静态路由,只是一般情况下是看不到的,路由的程序(固件或者系统)里面就默认添加了一条指向wan口的默认路由(wan口就是接电信那条线的口),在家里你不管想访问哪个网站下载什么电影看什么电视,你的所有访问请求都是会被按路由默认设置好的路由条目来走,实在没有第二条路来走啊。

有时候网络拓扑结构或链路的发生变化,需要手工去修改路由表中相关的静态路由。静态路由一般适用于比较简单的网络环境,在这样的环境中,我们很清楚自己的网络需求来对应配置路由表。

动态路由

动态路由:现在当我们来到一座陌生的城市,我们就会掏出手机用地图导航一把,这其实分了两步:第一步是手机会自动下载我们周围的道路信息,第二部是地图软件根据算法计算出一条最好的路径去目的地。动态路由适合大型网络,不需要手动添加路由条目,方便管理,不会出现环路。

静态路由和动态路由的区别(静态路由和动态路由的用途与差别)(4)

上文将静态路由比喻为公交车,那动态路由就好比为出租车。出租车司机会抄近路,会看路况抄近路,因此出租车司机的路由表是动态的。还会随时更新,从同行(邻居路由器)那边拿到最近路况来进行更新自己的路由表。动态路由的最大特点是在路由器上运行路由协议,使路由器可以自动根据网络拓朴结构的变化调整路由条目。


动态路由的工作方式跟这个过程是很相似的:第一步,路由器要获得全网的拓扑,这拓扑就包含了所有的路由器和路由器之间的链路信息,拓扑就是地图;第二步,路由器在这个拓扑中计算出到达目的地(目的网络地址)的最优路径。

路由器使用路由协议从其他路由器那里获取的路由。当网络拓扑发生变化时,路由器会更新路由信息。根据路由协议自动发现路由,修改路由,无需人工维护,但是路由协议开销大,维护相对静态路由来说较复杂。