IP层转发分组的流程
1. 根据目的网络地址来确定下一跳路由器,这样做的结果如下:
1.1 IP数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。
1.2 只有到达最后一个路由器时,才试图向目的主机进行直接交付。
注:在互联网上转发分组时,是从一个路由器转发到下一个路由器。总之,在路由表中,对每一条路由最主要的是以下两个信息:(目的网络地址,下一跳地址)。
2. 特定主机路由
-
虽然因特网所有的分组转发都是基于目的主机所在的网络,但在大多数情况下都允许有这样的特例,即
对特定的目的主机指明的一个路由。,这种路由叫做特定主机路由。
-
采用特定主机路由的好处:
(1)可使网络管理人员能够更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。
(2)在对网络的连接或路由表进行排错时,指明到某一主机的特定路由就十分有用。
注:特定主机路由是要到某一台机器的路由。特定网络路由是你到某一个子网的路由。特定主机路由也可视为特定网络路由的一个特例,即Mask为255.255.255.255的特定网络路由。
3. 默认路由
-
默认路由是一种特殊的静态路由,指的是当路由表中与包的目的地址之间没有匹配的表项时路由器能够做出的选择。
-
如果没有默认路由,那么目的地址在路由表中没有匹配表项的包将被丢弃。
-
默认路由在某些时候非常有效,当存在末梢网络时,默认路由会大大简化路由器的配置,减轻管理员的工作负担,提高网络性能。
-
主机里的默认路由通常被称作默认网关,默认网关通常会是一个有过滤功能的设备,如防火墙和代理服务器。
-
默认路由和静态路由的命令格式一样,只是把目的地ip和子网掩码改成0.0.0.0和0.0.0.0,默认路由只能存在末梢网络中。
4. 分组转发算法
注:当发送一连串的数据报时,上述的这种查找路由表、计算硬件地址、写入MAC帧的首部等过程,将不断地重复进行,造成了一定的开销。尽管如此,也不能在路由表中直接使用硬件地址,因为使用抽象的IP地址,就是为了屏蔽各种底层网络的复杂性而便于分析和研究问题,这样就不可避免地多了一些开销。
–
(1)从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N。
–
(2)若N就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据报交付给目的主机(这里包括把目的主机地址D转换为具体的硬件地址,把数据报封装为MAC帧,再发送此帧);否则就要执行(3)进行间接交付。
–
(3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行(4)。
–
(4)若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行(5)。
–
(5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行(6)。
–
(6)报告转发分组出错。
参考文献:
[1]《计算机网络(第5版)》谢希仁——第四章 4.2
[2] 百度搜索关键字:特定主机路由、默认路由、分组转发算法