IoTShare

三层转发基本原理

1.网络层定义

网络层位于OSI模型的第三层,介于运输层与数据链路层之间,提供发信端到目标端之间的信息传输服务。网络层的数据以IP数据报的形式传输。
二层转发.png

2.IP协议

IP提供了不可靠,无连接的数据报传送服务。它定义了在互联网上传输数据的具体格式。IP实现两个基本功能:寻址及分片。
IP地址由网络号和主机号两部分组成,网络号标识互联网中的一个特定网络,主机号标识在该网络中的一台特定主机,最常用的地址表示方法是点分十进制法。如:192.168.10.1关于IP协议的具体讲解见《TCP/IP 基础学习》。

3.ARP协议

ARP,即地址解析协议,实现通过IP地址到物理地址的映射。

在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址,而在TCP/IP协议栈中网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。(关于ARP的具体知识,见《TCP/IP 基础学习》)

4.基本转发的概念

在数据通信网络中,设备之间的通信基本上是根据TCP/IP协议,在IP网络中运行的特定功能的设备,都可以称之为端系统,PC是一种最常见的端系统,网络中路由器、交换机就是用来互联不同的端系统,让它们进行透明的通信。

之前我们学习了二层转发,知道二层转发是一种基于OSI中的数据链路层的数据帧的存储转发技术,二层交换是依靠MAC地址和VID号来确定转发方向的。那么,三层转发和二层转发有什么区别呢?

1.数据转发依靠的关键字不同,二层转发主要依靠MAC地址,而三层转发主要依靠IP地址。

2.数据交换的范围不同,二层交换指在同一网段内的通信,三层交换指跨网段的通信。

3.在三层转发的过程中,还要进行二层的封装。也就是说,在转发过程中二层帧头中的(源、目的)MAC地址是要改变的。但是IP数据报中的源IP和目的IP地址是不会改变的

5.IP路由表

路由是IP层转发的依据,路由包括:

  • 目的网络/前缀长度
  • 下一跳地址IP路由表
  • 出接口
  • ……

路根据路由产生的方式分为:

  1. 直连路由–本地接口IP网段对应的路由,优先级最高
  2. 静态路由-手工配置的路由,优先级较高
  3. 动态路由-各种路由协议产生的路由优先级有高有低由匹配

匹配原则--最长路径匹配原则

6.三层转发举例

PC1准备向PC2发送数据包

(1)PC1检查报文的目的IP地址,发现和自己不在同一网段,则需要进行三层转发,通过网关转发报文信息;
请输入图片描述

(2)PC1检查自己的ARP表,发现网关的MAC地址不在自己的ARP表里;
请输入图片描述

(3)PC1——>Router(网关)发出ARP请求报文;
请输入图片描述

(4)Router将PC1的MAC地址学习到自己的ARP表,
请输入图片描述

(5)Router(网关)——>PC1发出ARP应答报文;

(6) PC1学习到Router(网关)的mac地址,发出报文,此时源ip、目的ip不变,目的mac为Router(网关)的mac;
请输入图片描述

(7)PC1——> Router(网关)发出报文;

(8)Router(网关)收到报文,发现是三层报文(原因是报文的目的mac是自己的mac);
请输入图片描述

(9)Router(网关)检查自己的路由表(FIB),发现目的ip在自己的直连网段;

(10)Router检查自己的arp表,如果发现有与目的ip对应的mac地址则直接封装报文(目的ip、源ip不变,目的mac为查arp表所得mac)发送给PC2;

(11)如果查ARP表没有得到与目的ip对应MAC,则重复(3)发arp请求;
请输入图片描述

(12)PC2收到ARP广播报文,发现目的IP是自己的IP,于是给Router发送ARP应答报文。报文中会附上自己的mac地址;
请输入图片描述

(13)Router收到应答报文后,目的mac改为PC2的mac,然后向PC2发送数据帧;

(14)PC2向Router发送报文;
请输入图片描述

(15)Router收到报文后,向PC1转发报文;
请输入图片描述

7.参考文章

(1)https://blog.csdn.net/baidu_24553027/article/details/54928580

本原创文章未经允许不得转载 | 当前页面:IoTShare » 三层转发基本原理

评论