计算机网络笔记18 IP层转发分组的流程
路由表的简化
• 假设:有四个A 类网络通过三个路由器连接在一起。每一个网络上都可能有成千上万个主机。
• 可以想像,若按目的主机号来制作路由表,每一个路由表就有 4 万个项目,即 4 万行(每一行对应于一台主机),则所得出的路由表就会过于庞大。
• 但若按主机所在的网络地址来制作路由表,那么每一个路由器中的路由表就只包含 4 个项目(每一行对应于一个网络),这样就可使路由表大大简化。
路由表的内容
查找路由表
根据目的网络地址就能确定下一跳路由器,这样做的结果是:
• IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。
• 只有到达最后一个路由器时,才试图向目的主机进行直接交付。
特定主机路由
• 虽然互联网所有的分组转发都是基于目的主机所在的网络,但在大多数情况下都允许有这样的特例,即为特定的目的主机指明一个路由。
• 采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。
• 实现:将整个主机的IP地址作为网络号,直接添加在相关的路由器的路由表中。
默认路由
• 路由器还可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间。
• 这种转发方式在一个网络只有很少的对外连接时是很有用的。
• 如果一个主机连接在一个小网络上,而这个网络只用一个路由器和互联网连接,那么在这种情况下使用默认路由是非常合适的。
默认路由举例:
路由器分组转发算法
(1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为N。
(2) 若网络N 与此路由器直接相连,则把数据报直接交付目的主机D;否则是间接交付,执行 (3)。
(3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行 (4)。
(4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行 (5)。
(5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行 (6)。
(6) 报告转发分组出错。
关于路由表
• 路由表没有给分组指明到某个网络的完整路径。
• 路由表指出,到某个网络应当先到某个路由器(即下一跳路由器)。
• 在到达下一跳路由器后,再继续查找其路由表,知道再下一步应当到哪一个路由器。
• 这样一步一步地查找下去,直到最后到达目的网络。