您的位置:首页 > 理论基础 > 计算机网络

【TCP/IP】IP路由选择

2014-05-25 15:40 225 查看
IP层在内存中有一个路由表,当有数据要发送时,它要对该表进行一次搜索以确认转发地址。收到的数据到达IP层时,IP层会检查数据报的目的地址是否为本机IP或广播IP:

如果是,就根据IP首部协议字段的协议分发到相应的模块进行处理。
如果不是,那么:

IP层被设为路由器功能,则对此数据报进行转发。
否则,丢弃该数据被报。

路由表内容如下所示:

字段说明
目的IP地址可以是网络地址,也可以是主机地址,由下面的标志字段区分
下一跳路由器IP地址与当前网络接口直接相连的路由器或主机网络接口的IP地址,具体是哪一个由下面的标志字段区分
标志一个标志区分目的IP是网络地址还是主机地址,另一个标志区分下一跳路由器是真的路由器还是网络接口
网络接口指明对应的数据报应该从哪个网络接口发出去
IP路由选择的大致过程如下:
搜索路由表,寻找能与目的IP地址完全匹配的表目。如果找到,则发送。否则,执行下一步。
搜索路由表,寻找能与目的网络号相匹配的表目。如果找到,则发送。否则,执行下一步。
搜索路由表,寻找标为“默认”的表目。如果找到,则发送。否则,执行下一步。
发送失败,该数据不能被传送。
为一个网络指定一个路由器,也就是路由表的标志字段指明目的IP地址是一个网络地址,这使得路由表的规模不会太大。

例1:
源主机和目的主机处在同一个以太网上。源主机的IP层根据目的主机IP地址搜索路由表,找到了一个网络号匹配的表项,然后将数据发送出去。如下图所示:



以太网帧首部的目的地址是主机sun的以太网接口地址;IP数据报首部的目的地址是主机sun的IP地址。

例2:
源主机和目的主机处在不同网络中。如下图所示:



主机bsdi要发送数据到外网的服务器192.48.96.9。首先主机搜索路由表,选择默认表目发送到主机sun。因为bsdi和sun在一个以太网内,所以发送之前先用ARP协议得到sun的MAC地址。接下来,sun继续选择默认表目发送到主机netb,这里不是使用的以太网,而是SLIP协议,所以数据报不包含链路层首部。netb同样选择默认表目发送到gateway。在这之前netb通过ARP协议获得gateway的MAC地址。gateway选择默认表目以类似的方式发送到外网。注意,数据报的目的IP始终指向最终的目的IP地址。但是以太网帧首部的48bit目的地址始终指向下一站链路层地址,这个以太网地址是通过地址解析协议(ARP)来获得的。

参考:
《TCP/IP详解》 P27-P30.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: