TCP/IP网络层之 IP选路的实现过程

先来看看这幅图


由这幅图可知,IP可以从TCP、UDP、ICMP、IGMP接收IP数据报(这些数据报都是本地生成的数据报)并进行发送,或者从链路层接收数据报并进行转发到下一站(路由器IP层)。我们知道,IP层中存储有一个路由表,当IP从TCP、UDP、ICMP、IGMP或链路层中接收数据报并准备发送时,它得对该路由表搜索一下,选择合适的路由(就是选路的意思)。

(1)当数据报来自于链路层时,IP首先检查目的IP地址是否和本机的IP地址之一相同(某些设备不止一个IP地址)或者该目的IP地址是广播地址(如ARP请求数据帧和RARP请求数据帧封装成的数据报),如果相同,那么就接收并进行处理,否则,IP将对数据报进行转发或丢弃

(2)当数据报来自TCP、UDP、ICMP、IGMP时,那么,数据报将发送到下一站(间接路由)或目标主机

以上2个步骤具体如如图示:


那么,问题来了,主机或路由器是怎么选择路由进行发送和转发的呢?

假如目的IP地址是本机或者是同属同一个局域网(如以太网)的其他主机,那么,IP并不需要选路,直接将IP数据报发送给链路层(链路层通过发送ARP广播获取目的IP地址对应的MAC地址然后将数据报发送过去),但是如果目的IP地址的主机不是同一个以太网内,那必须得选路了

不管是主机或路由器,在选路之前,都得搜索路由表,搜索路由表有以下步骤:

1) 搜索匹配的主机地址; 

2) 搜索匹配的网络地址;

 3) 搜索默认表项(默认表项一般在路由表中被指定为一个网络表项,其网络号为 0)

路由表存在以下可能:

1) 最简单的(也是最不令人感兴趣的)情况是主机根本没有与任何网络相连。 T C P / I P协 议仍然能用于这样的主机,但是只能与自己本身通信!这种情况下的路由表只包含环回接口 一项(环回接口的IP地址一般是我们熟知的127.0.0.1)。

 2) 接下来的情况是主机连在一个局域网上,只能访问局域网上的主机。这时路由表包含 两项:一项是环回接口,另一项是局域网(如以太网)。

 3) 如果主机能够通过单个路由器访问其他网络(如 I n t e r n e t)时,那么就要进行下一步。一般情况下增加一个默认表项指向该路由器。

 4) 如果要新增其他的特定主机或网络路由,那么就要进行最后一步

  下面我们就举例子来说明一下:

例子的网络拓扑:

主机sur4的路由表


 我们根据上述I P操作的步骤使用这个路由表为主机 s v r 4(140.252.33.34)上的一些分组例子选择路由。

 1) 假定目的地址是主机 s u n,即目标IP地址为1 4 0 . 2 5 2 . 1 3 . 3 3。首先进行主机地址的匹配。路由表中的两 个主机地址表项( s l i p【140.252.13.65】和l o c a l h o s t【127.0.0.1】)均不匹配,接着进行网络地址匹配。这一次匹配成 功,找到表项1 4 0 . 2 5 2 . 1 3 . 3 2(网络号和子网号都相同),因此使用e m d 0接口。这是一个直接 路由,因此链路层地址将是目的端的地址(链路层通过发送ARP广播获取目的IP地址对应的MAC地址然后将数据报发送过去)。

 2) 假定目的地址是主机s l i p,即目标IP地址为1 4 0 . 2 5 2 . 1 3 . 6 5。首先在路由表搜索主机地址,并找到一个 匹配地址。这是一个间接路由,因此目的端的 I P地址仍然是1 4 0 . 2 5 2 . 1 3 . 6 5,但是链路层地址 必须是网关1 4 0 . 2 5 2 . 1 3 . 6 5的链路层地址,其接口名为e m d 0。

 3) 这一次我们通过I n t e r n e t给主机a w . c o m(1 9 2 . 2 0 7 . 11 7 . 2)发送一份数据报。首先在路 由表中搜索主机地址,失败后进行网络地址匹配。最后成功地找到默认表项。该路由是一个 间接路由,通过网关1 4 0 . 2 5 2 . 1 3 . 3 3,并使用接口名为e m d 0。 

这里要说明一下,路由选择的下一站,不一定就是我们需要的最终目标地址,但是我们并不需要关心,因为路由器是把下一站当做是目标地址来发送的,逐步将IP数据报发送到目标地址。就像邮局寄信一样,假如我要从广州(源地址)发送到北京(目标地址),邮局的分检处就类似IP层选路,从广州到北京,那么,分检处(IP层)会先查询分检表(类似路由表),得知先把信发送到下一站(可能是湖南),后面的发送任务让给湖南邮局负责选路发送,湖南邮局收到信,就会送到分检处,查看分检表,继续发送到下一站......以此类推,直到下一站就是北京。

哈哈哈,至此,IP选路的过程与实现就完成了!!!

但是,在这里我还是要唠叨一下,假如我们是用校园网上网,我们的IP地址并不是公网地址,是内网的保留地址,情况和上面一样,但是会涉及到NAT协议,如果想了解,那么可以看这篇博文点击打开链接,这位博主讲得很好!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值