路由器原理( 二 )


网络中的设备用它们的网络地址(TCP/IP网络中为IP地址)互相通信 。IP地址是与硬件地址无关的“逻辑”地址 。路由器只根据IP地址来转发数据 。IP地址的结构有两部分,一部分定义网络号,另一部分定义网络内的主机号 。目前,在Internet网络中采用子网掩码来确定IP地址中网络地址和主机地址 。子网掩码与IP地址一样也是32bit,并且两者是一一对应的,并规定,子网掩码中数字为“1”所对应的IP地址中的部分为网络号,为“0”所对应的则为主机号 。网络号和主机号合起来,才构成一个完整的IP地址 。同一个网络中的主机IP地址,其网络号必须是相同的,这个网络称为IP子网 。
通信只能在具有相同网络号的IP地址之间进行,要与其它IP子网的主机进行通信,则必须经过同一网络上的某个路由器或网关(gateway)出去 。不同网络号的IP地址不能直接通信,即使它们接在一起,也不能通信 。
路由器有多个端口,用于连接多个IP子网 。每个端口的IP地址的网络号要求与所连接的IP子网的网络号相同 。不同的端口为不同的网络号,对应不同的IP子网,这样才能使各子网中的主机通过自己子网的IP地址把要求出去的IP分组送到路由器上 。
2.路由原理
当IP子网中的一台主机发送IP分组给同一IP子网的另一台主机时,它将直接把IP分组送到网络上,对方就能收到 。而要送给不同IP于网上的主机时,它要选择一个能到达目的子网上的路由器,把IP分组送给该路由器,由路由器负责把IP分组送到目的地 。假如没有找到这样的路由器,主机就把IP分组送给一个称为“缺省网关(default gateway)”的路由器上 。“缺省网关”是每台主机上的一个配置参数,它是接在同一个网络上的某个路由器端口的IP地址 。
路由器转发IP分组时,只根据IP分组目的IP地址的网络号部分,选择合适的端口,把IP分组送出去 。同主机一样,路由器也要判定端口所接的是否是目的子网,假如是,就直接把分组通过端口送到网络上,否则,也要选择下一个路由器来传送分组 。路由器也有它的缺省网关,用来传送不知道往哪儿送的IP分组 。这样,通过路由器把知道如何传送的IP分组正确转发出去,不知道的IP分组送给“缺省网关”路由器,这样一级级地传送,IP分组最终将送到目的地,送不到目的地的IP分组则被网络丢弃了 。
目前TCP/IP网络,全部是通过路由器互连起来的,Internet就是成千上万个IP子网通过路由器互连起来的国际性网络 。这种网络称为以路由器为基础的网络(router based network),形成了以路由器为节点的“网间网” 。在“网间网”中,路由器不仅负责对IP分组的转发,还要负责与别的路由器进行联络,共同确定“网间网”的路由选择和维护路由表 。
路由动作包括两项基本内容:寻径和转发 。寻径即判定到达目的地的最佳路径,由路由选择算法来实现 。由于涉及到不同的路由选择协议和路由选择算法,要相对复杂一些 。为了判定最佳路径,路由选择算法必须启动并维护包含路由信息的路由表,其中路由信息依靠于所用的路由选择算法而不尽相同 。路由选择算法将收集到的不同信息填入路由表中,根据路由表可将目的网络与下一站(nexthop)的关系告诉路由器 。路由器间互通信息进行路由更新,更新维护路由表使之正确反映网络的拓扑变化,并由路由器根据量度来决定最佳路径 。这就是路由选择协议(routing protocol),例如路由信息协议(RIP)、开放式最短路径优先协议(OSPF)和边界网关协议(BGP)等 。
转发即沿寻径好的最佳路径传送信息分组 。路由器首先在路由表中查找,判明是否知道如何将分组发送到下一个站点(路由器或主机),假如路由器不知道如何发送分组,通常将该分组丢弃;否则就根据路由表的相应表项将分组发送到下一个站点,假如目的网络直接与路由器相连,路由器就把分组直接送到相应的端口上 。这就是路由转发协议(routed protocol) 。

推荐阅读