划分子网

划分子网的基本思路如下:

  • 一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网(subnet)。

    划分子网纯属一个单位内部的事情,本单位以外的网络看不见这个网络是由多少个子网组成,这个单位对外仍然表现为一个网络。

  • 划分子网的方法是从网络的主机号借用若干位作为子网号(subnet-id),当然主机号也就相应减少了同样的位数。

    于是两级 IP 地址在本单位内部就变为三级 IP 地址:网络号子网号主机号

  • 凡是从其他网络发送给本单位某台主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号找到连接在本单位网络上的路由器。但此路由器在收到 IP 数据报后,再按目的网络号和子网号找到目的子网,把 IP 数据报交付目的主机。

使用子网时分组的转发

使用子网划分后,路由表必须包含以下三项内容:目的网络地址子网掩码下一跳地址

在划分子网的情况下,路由器转发分组的算法如下:

  1. 从收到的数据报的首部提取目的 IP 地址 D 。

  2. 先判断是否为直接交付

    对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和 D 逐位相“与 ”(AND 操作),看结果是否和相应的网络地址匹配。

    • 若匹配,则把分组进行直接交付,转发任务结束。

    • 否则就是间接交付,执行 3。

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

  4. 对路由表中的每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码和 D 逐位相“与”(AND 操作),其结果为 N。

    • 若 N 与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;

    • 否则,执行 5。

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

  6. 报告转发分组出错。

当路由器收到一个待转发的数据报,在从路由表得出下一跳路由器的 IP 地址后,不是把这个地址填入 IP 数据报,而是送交数据链路层的网络接口软件。

网络接口软件负责把下一跳路由器的 IP 地址转换成硬件地址(必须使用 ARP),并将此硬件地址放在链路层的 MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。

Last updated