路由器的三层转发原理

首先,介绍一下将要涉及的几个概念:

IP,全称互联网协议地址,是指IP地址,意思是分配给用户上网使用的网际协议的设备的数字标签。常见的IP地址分为IPv4与IPv6两大类,但是也有其他不常用的小分类。


MAC(Media Access Control,介质访问控制)地址,或称为MAC位址、硬件地址,用来定义网络设备的位置。MAC集成在网卡,由48bit的2进制的数字组成,0~23位数字叫作组织唯一标志符(organizationally unique,是识别局域网节点的标识)。24~47位是由厂家自己分配,其中第48位是组播地址标志位。网卡的物理地址通常是由网卡生产厂家写入网卡的EPROM芯片中,芯片中的数据可以通过程序进行擦写,它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。也就是说,在网络底层的物理传输过程中,数据传输是通过物理地址来识别主机的,它一定是全球唯一的。


ARP(Address Resolution Protocol)即,地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。 下面我将以下面这张图片作为例子,解释一下路由器的三层转发原理

假设现在PC1需要向PC2发送报文,那么需要经过以下这些步骤:

  • 一、 1.首先PC1会检查目的IP发现不是同一网段的,需要进行三层转发。 2.此时PC1会检查自己的ARP表,发现没有网关的MAC地址,于是PC1会通过发送ARP协议发送广播, 3.网关收到后会将PC1的MAC地址记录到自己的ARP表,并给一个回应。 4.PC1得到网关的MAC地址后。PC1会将自己的IP地址作为源IP,PC2的IP地址作为目的IP,将自己的MAC地址作为源MAC,交换机的MAC作为目的MAC,向网关发送报文。
  • 二、 1.网关在收到报文后,会先检查目的MAC是不是自己。 2.确定是自己之后,会查询自己的路由表,发现目的IP不是自己的直连网段,这个网段需要通过路由器B的E1接口才能发送过去,而路由表里有路由器B的E1接口的IP。 3.于是通过ARP广播又获得了路由器B的E1接口MAC地址。 4.路由器A将会把自己E1接口的MAC地址作为源MAC,路由器B的E1接口MAC地址作为目的MAC,源IP和目的IP不变,向路由器B发送报文。
  • 三、 1.路由器B在收到报文后也会先检查目的MAC是不是自己。 2.确认后会查询自己路由表,发现目的IP是自己的直连网段,它会查询自己的ARP表看有没有PC2的MAC地址。 3.如果没有它也需要通过ARP广播获取到PC2的MAC地址。 4.得到PC2的MAC地址后,路由器B会将自己E0接口的MAC地址作为源MAC,PC2的MAC地址作为目的MAC,源IP和目的IP不变向PC2发送报文。