【网络】TCP/IP协议网络层 - 路由机制详解(含路由表详解、重定向机制)

一、IP路由

1、路由机制

1、路由表:在Linux环境下,我们可以通过 route 来查看路由表

  • Destination:表示网络或主机
  • Gateway:网关地址;
  • Genmask:网络掩码;
  • Flags:路由项标志,常见的有5种:U(活动的)、H(目标是一台主机)、G(目标是网关)、D(由重定向生成的)、M(被重定向修改过);
  • Metric:路由距离,即到达指定网络所需的中转数;
  • Ref:路由项被引用的次数(Linux中未被使用);
  • Use:该路由项被使用的次数;
  • Iface:该路由项对应的输出网卡接口;

其中路由表中的第一项是 default ,即所谓的默认路由项,该项包含一个 G 标志,说明路由的下一项就是网关 。

说明:由于历史的原因,许多有关TCP/IP的文献曾经把网络层使用的路由器称为网关,在今天很多局域网采用都是路由来接入网络,因此通常指的网关就是路由器的IP!

2、路由表的工作流程

    1、查找路由表中和数据报的目标IP地址完全匹配的主机IP地址。如果找到,就使用该路由项,如果没有找到就转到步骤2;

    2、查找路由表中和数据报的目标IP地址具有相同网路ID的网络IP地址,如果找到,就使用,没有就转到步骤3;

    3、选择默认路由项,这通常意味着数据报的下一跳路由是网关。

3、路由表的更新

路由表必须能够更新,以反映网络连接的变化,这样IP模块才能准确、高效的转发数据报。

可以通过 route 命令或者其它工具来手动修改路由表,是静态的路由更新方式。对于大型的路由器,他们通常通过BGP(编辑网关协议)、RIP(路由信息协议)、OSPF等协议来发现路径,并更新自己的路由表。

2、重定向机制

1、ICMP(因特网控制报文协议)重定向报文

ICMP报文主要分为两种:

1、差错类型报文,主要用来回应网络错误,比如目标不可达到(类型3)或者重定向(类型5)

2、查询类型报文,比如 ping 程序 就是使用 ICMP实现的(类型为8);

其中重定向的报文格式如下:

ICMP重定向报文的数据部分含义很明确,它给接收方提供了以下信息:

  • 引起重定向的IP数据报的源端IP地址;
  • 应该使用的路由器IP地址;

2、主机重定向的过程

【注】:文中图片均剪切自《图解TCP/IP(第五版)》、《Linux高性能服务器编程》

发布了79 篇原创文章 · 获赞 28 · 访问量 7780

猜你喜欢

转载自blog.csdn.net/weixin_43753894/article/details/98471621