IP路由选择
IP路由选择
IP的目的就是要提供一个可以包含多个物理网络的虚拟网络,并提供无连接的数据报交付服务。
当一个主机A要向另一个主机B发送数据报时,先要检查目的主机B是否与源主机A连接在同一个网络上:
如果是,就将数据报直接交付给目的主机B而不需要通过路由器;
如果不是,则应该将数据报发送给本网络上的某个路由器,由该路由器按照转发表指出的路由将数据报转发给下一个路由器,这叫做间接交付。
综上:
1、连接在同一个网络上的两台服务器(具有相同的网络地址)之间的IP数据报传输不涉及路由器,发送方把数据报封装在物理帧中,把目的IP地址和一个物理地址绑定在一起,把产生的帧直接发送到目的站。
2、间接交付比直接交付要困难一些,因为发送方必须标识数据报要发送到的一个路由器,这个路由器必须把数据报转发到它的目的网络。
下面将重点讨论间接交付,也就是IP数据报的路由选择问题。
TCP/IP互联网中的路由器形成了一个协作的互连结构,数据报从一个路由器传输到下一个路由器,直到到达某个可以直接交付数据报的路由。
下面是一个典型的路由器结构:
路由器工作在网络层,数据链路层剥去帧首部和尾部后,将数据报送到网络层的队列中排队等待处理(会产生一定的延时)
通常的IP选路算法是利用每台机器中的一个IP选路表,该表存放着有关可能的目的站以及怎样到达目的站的信息;
在进行分组投递时,路由器分两个阶段:1、如何到达目标主机的网络;2、分组到了目标网络后,由终端路由器将分组送到目标主机。
一般来说,第一个阶段是路由的实质阶段,它关系到分组穿越不同网络间的路径。所以,在网络上路由是以目标IP地址中的网络号为依据的,这样可以只关心目标网络的信息,而不用关心目标主机的信息,从而简化路由表,提高路由效率。
典型地,路由表包含许多(N,R)向量,其中N是目的网络的IP地址,R是为了到达相应目的网络要经过的下一个路由器(next hop)的IP地址。
IP选路只会修改IP报文中的ttl字段(每经过一跳,ttl减1,值为0时抛弃该分组),但不改变报文其它内容。
当路由器收到待转发的数据报,不是将下一跳路由器的IP填入IP数据报,而是送交下层的网络接口;
网络接口根据ARP负责将下一跳路由器的IP地址转换成MAC地址,并将此MAC地址放在链路层的MAC帧的首部,然后根据这个MAC地址找到下一跳路由器。