1.那么主机之间在IP层是如何交付数据报的呢?
直接交付或间接交付!
2.什么是直接交付?什么是间接交付?
-
直接交付:在同一网络的主机之间直接通信。(不经由“第三方”)
-
间接交付:不同网络的主机之间通信借助路由器进行转发。
2.直接交付和间接交付的主体是谁?
源主机或路由器!
3.主机或路由器如何选用直接交付还是间接交付?
查找主机或路由器内的路由表!
4.什么是路由表?
路由表存储着指向特定网络地址的路径,简单来说,类似于地图,用于寻路!
5.路由表中主要也是必须的三项内容:
目的网络地址、子网掩码和下一跳地址。
下一跳:下一个的意思
6.源主机查找路由表原理
将IP数据报的目的地址与本网络的子网掩码“与”运算,判断结果是否与本网络的网络地址一致
(1)一致,则表示目的主机与本主机在同一个网络,IP数据报直接交付即可。
(2)不一致,就把IP数据报交给本网络上的默认路由器,任务就变成了默认路由器寻址。
注:
1.默认路由器,即指定的路由器。一个他人找不到路咱就收留解决找路问题的路由器
2.这里通信的最终完成还是需要地址转换,MAC寻址等一系列操作,但本章主要讨论的是IP数据报在IP层的转发过程,故应将重点放在IP层,忽略底层的细节。
7.路由器查路由表原理 (重点)
(1)提取收到的IP数据报的目的地址字段
(2)目的地址与路由表上每一行(目的网络地址,子网掩码,下一跳地址)的子网掩码进行“与”运算,与该行的目的网络地址进行比较。若该项目的目的网络地址是路由器直接相连的网络,进行直接交付;否则,就是间接交付,执行(3)
(3)若路由表中有目的地址的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)
(4)传送给该行指明的下一跳路由器;否则,执行(5)
(5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)
(6)报告转发分组出错
注:路由表查找结果只是指明了下一步往哪里走,并没有给出到达目的地的完整路径,所以对数据报是“边走边查”。
最长前缀匹配(超级重点)
前情提要:
使用CIDR时,采用了网络前缀记法,即IP地址/网络前缀所占的位数
IP地址结构:IP地址=网络前缀 + 主机号
-
网络前缀:指明网络
-
主机号:指明主机
这时,路由表中的项目有了相应的改变,这时,每个项目由“网络前缀”和“下一跳地址”组成。
但是在查找路由表时肯会得到不止一个匹配结果,那么应当选择哪一个呢?
选择具有最长网络前缀的路由,即选择匹配的地址中更具体的一个。
选择具有最长网络前缀的路由,即选择匹配的地址中更具体的一个。
选择具有最长网络前缀的路由,即选择匹配的地址中更具体的一个。
练习题:
收到一个分组,其目的地址D=11.1.2.5。要查找的路由表中有这样三项:
-
路由1 到达网络11.0.0.0/8
-
路由2 到达网络11.1.0.0/16
-
路由3 到达网络11.1.2.0/24
试问在转发这个分组时应当选择哪一个路由?
解析:
-
当查找路由1时,目的网络的掩码是8个1和24个0,即255.0.0.0,和目的地址D进行“与”操作时,得到11.0.0.0。结果是匹配的。
-
当查找路由2时,目的网络的掩码是16个1和16个0,即255.255.0.0,和目的地址D进行“与”操作时,得到11.1.0.0。结果是匹配的。
-
当查找路由3时,目的网络的掩码是24个1和8个0,即255.255.255.0,和目的地址D进行“与”操作时,得到11.1.2.0。结果是匹配的。
根据最长前缀匹配准则,应当选择路由3。因为路由3的目的网络前缀为24,是三个都匹配的结果中前缀最长的一个。
END
原文始发于微信公众号(计算机408):IP层转发分组的流程
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/261200.html