IP层转发分组的流程

之前我们已经了解了ARP,主机之间的通信寻址最终还是需要依靠链路层的MAC地址。
但互联在一起的网络硬件地址体系各不相同,所以IP层将互联网抽象,可以屏蔽下层复杂的细节,这样,我们就可以更好地在IP层研究主机和主机或路由器之间的通信。

1.那么主机之间在IP层是如何交付数据报的呢?

直接交付或间接交付!

2.什么是直接交付?什么是间接交付?

  • 直接交付:在同一网络的主机之间直接通信。(不经由“第三方”)

  • 间接交付:不同网络的主机之间通信借助路由器进行转发。


2.直接交付和间接交付的主体是谁?

源主机或路由器!


3.主机或路由器如何选用直接交付还是间接交付?

查找主机或路由器内的路由表


4.什么是路由表?

路由表存储着指向特定网络地址的路径,简单来说,类似于地图,用于寻路!


5.路由表中主要也是必须的三项内容:

目的网络地址、子网掩码和下一跳地址。

IP层转发分组的流程


下一跳:下一个的意思


6.源主机查找路由表原理

将IP数据报的目的地址与本网络的子网掩码“与”运算,判断结果是否与本网络的网络地址一致

1)一致,则表示目的主机与本主机在同一个网络,IP数据报直接交付即可。

2)不一致,就把IP数据报交给本网络上的默认路由器,任务就变成了默认路由器寻址。

IP层转发分组的流程


注:

1.默认路由器,即指定的路由器。一个他人找不到路咱就收留解决找路问题的路由器

2.这里通信的最终完成还是需要地址转换,MAC寻址等一系列操作,但本章主要讨论的是IP数据报在IP层的转发过程,故应将重点放在IP层,忽略底层的细节。


7.路由器查路由表原理  (重点)

1)提取收到的IP数据报的目的地址字段

2)目的地址与路由表上每一行(目的网络地址,子网掩码,下一跳地址)的子网掩码进行“与”运算,与该行的目的网络地址进行比较。若该项目的目的网络地址是路由器直接相连的网络,进行直接交付;否则,就是间接交付,执行(3)

3)若路由表中有目的地址的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4

4)传送给该行指明的下一跳路由器;否则,执行(5

5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6

6)报告转发分组出错


IP层转发分组的流程


注:路由表查找结果只是指明了下一步往哪里走,并没有给出到达目的地的完整路径,所以对数据报是“边走边查”。



最长前缀匹配(超级重点)

前情提要:

使用CIDR时,采用了网络前缀记法,即IP地址/网络前缀所占的位数

IP地址结构:IP地址=网络前缀 + 主机号

  • 网络前缀:指明网络

  • 主机号:指明主机


这时,路由表中的项目有了相应的改变,这时,每个项目由“网络前缀”和“下一跳地址”组成。


IP层转发分组的流程


但是在查找路由表时肯会得到不止一个匹配结,那么应当选择哪一个呢?

选择具有最长网络前缀的路由,即选择匹配的地址中更具体的一个。

选择具有最长网络前缀的路由,即选择匹配的地址中更具体的一个。

选择具有最长网络前缀的路由,即选择匹配的地址中更具体的一个。


IP层转发分组的流程


练习题:

收到一个分组,其目的地址D=11.1.2.5。要查找的路由表中有这样三项:

  • 路由到达网络11.0.0.0/8

  • 路由到达网络11.1.0.0/16

  • 路由到达网络11.1.2.0/24

试问在转发这个分组时应当选择哪一个路由?


解析:

  • 当查找路由1时,目的网络的掩码是81240,即255.0.0.0,和目的地址D进行“与”操作时,得到11.0.0.0。结果是匹配的。

  • 当查找路由2时,目的网络的掩码是161160,即255.255.0.0,和目的地址D进行“与”操作时,得到11.1.0.0。结果是匹配的。

  • 当查找路由3时,目的网络的掩码是24180,即255.255.255.0,和目的地址D进行“与”操作时,得到11.1.2.0。结果是匹配的。


根据最长前缀匹配准则,应当选择路由3。因为路由3的目的网络前缀为24,是三个都匹配的结果中前缀最长的一个



END

原文始发于微信公众号(计算机408):IP层转发分组的流程

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/261200.html

(0)
码上实战的头像码上实战

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!