天天看点

【TCP/IP】IP路由选择

IP层在内存中有一个路由表,当有数据要发送时,它要对该表进行一次搜索以确认转发地址。收到的数据到达IP层时。IP层会检查数据报的目的地址是否为本机IP或广播IP:

  • 假设是,就依据IP首部协议字段的协议分发到对应的模块进行处理。
  • 假设不是,那么:
    • IP层被设为路由器功能,则对此数据报进行转发。
    • 否则,丢弃该数据被报。

路由表内容例如以下所看到的:

字段 说明
目的IP地址 能够是网络地址。也能够是主机地址。由以下的标志字段区分
下一跳路由器IP地址 与当前网络接口直接相连的路由器或主机网络接口的IP地址。详细是哪一个由以下的标志字段区分
标志 一个标志区分目的IP是网络地址还是主机地址。还有一个标志区分下一跳路由器是真的路由器还是网络接口
网络接口 指明相应的数据报应该从哪个网络接口发出去

IP路由选择的大致步骤例如以下:

  • 搜索路由表,寻找能与目的IP地址全然匹配的表目。

    假设找到,则发送。

    否则,运行下一步。

  • 搜索路由表,寻找能与目的网络号相匹配的表目。假设找到,则发送。
  • 搜索路由表,寻找标为“默认”的表目。

    假设找到。则发送。

    否则。运行下一步。

  • 发送失败,该数据不能被传送。

为一个网络指定一个路由器,也就是路由表的标志字段指明目的IP地址是一个网络地址。这使得路由表的规模不会太大。

例1:

源主机和目的主机处在同一个以太网上。源主机的IP层依据目的主机IP地址搜索路由表,找到了一个网络号匹配的表项。然后将数据发送出去。

例如以下图所看到的:

【TCP/IP】IP路由选择

以太网帧首部的目的地址是主机sun的以太网接口地址;IP数据报首部的目的地址是主机sun的IP地址。

例2:

源主机和目的主机处在不同网络中。

【TCP/IP】IP路由选择

主机bsdi要发送数据到外网的server192.48.96.9。首先主机搜索路由表,选择默认表目发送到主机sun。

參考:

《TCP/IP具体解释》 P27-P30.