IP协议详解之路由

简介

  IP协议的一个核心任务是数据报的路由,即决定发送数据报到目标机器的路径。
  路由指的就是IP数据报应该发送至哪个下一跳路由或者目标机器,以及经过哪个网卡来发送。

IP模块工作流程

IP协议详解之路由_第1张图片
  当IP模块接收到来自数据链路层的IP数据报时,它首先对该数据报的头部做CRC校验,无误后分析其头部信息。
  如果该IP数据报的头部设置了源站选路选项(就是松散源路由选择或者严格源路由选择),则IP模块调用数据报转发子模块来处理该数据报。
  如果该IP数据报的头部中目标IP地址是本机的某个IP地址或者是广播地址,即该数据报是发送给本机的,则IP模块就根据数据报的头部中的协议字段来决定将它派发给哪个上层应用(就是分用过程)。
  如果IP模块发现这个数据报不是发送给本机的,则调用数据报转发子模块来处理该数据报。
  数据转发子模块首先检测系统是否允许转发,如果不允许,IP模块就将该数据报丢弃。如果允许,就将对该数据报执行路由操作,然后将它交给IP数据报输出子模块。
  IP数据报应该发送至哪个下一跳路由或者目标机器,以及经过哪个网卡来发送,就是IP路由过程。IP模块实现数据报路由的核心数据结构是路由表。这个表按照数据包的目标IP地址分类,同一类型的IP数据报将被发往相同的下一跳路由器(或者目标机器)。
  IP输出队列中存放的是所有等待发送的IP数据报,其中除了需要转发的IP数据报外,还包括封装了本机上层数据(例如ICMP报文、TCP报文和UDP报文)的IP数据报。
IP路由政策:
  通过虚线箭头显示了路由表更新的过程。这一过程是指通过路由协议或者route命令调整路由表,使之更适应最新的网络拓扑结构。

路由机制

查看路由表://执行route命令
在这里插入图片描述
路由表内容:
IP协议详解之路由_第2张图片
  第一项目标地址是default,即所谓的默认路由项,该项的标志中有一个‘G’标志,说明路由的下一跳目标是网关,其地址是192.168.1.1.另一个路由项的目标地址是192.168.1.0,指的是本地局域网。该路由项的网关地址为*,说明数据报不需要路由中转,可以直接发送到目标机器。

IP的路由机制

  1、查找路由表中和数据报的目标IP地址完全匹配的主机IP地址,如果找到,就使用该路由项。没找到转2
  2、查找路由表中和数据报目标IP地址具有相同网路ID的网络IP地址(比如表中的第二项)。没找到转3
  3、选择默认路由项,这通常意味着数据包的下一跳路由是网关。
因此,所有发送到IP地址为192.168.1.*的机器的IP数据报都可以直接发送到目标机器(匹配路由表的第二项),而所有的访问因特网的请求都将通过网关来转发。

路由表更新

  路由表必须能够更新,以反映网络连接的变化,这样IP模块才能准确、高效地转发数据报。route命令可以修改路由表。
IP协议详解之路由_第3张图片
  第一项路由项是主机路由项,所以它被设置了‘H’标志。
  通过route命令或其他工具手工修改路由表,是静态的路由更新方式。对于大型路由器,通常通过BGP\RIP\OSPF等协议动态地、自动地更新路由表。

你可能感兴趣的:(Linux网络编程)