深入理解LVS篇:网络通信原理(二)局域网间通讯之ARP协议


上一篇文章我简单讲述了一个数据报文是如何在局域网中转发的,简单的回顾一下流程:

  • 主机封装数据报文,其中包含请求体源IP目标IP源MAC地址等信息。
  • 报文经过交换机,交换机将报文发送给路由器进行解析。
  • 路由器将报文的目标IP与路由表中的子网掩码进行逻辑与运算,得到目标网段,并根据匹配的目标网段的路由网关进行转发。

在文章的末尾我还说了,如果在交换机中已经记录了当前局域网中所有设备的映射,那么报文是不会经过路由器进行转发的,那么交换机是如何做到的呢?我们来了解一个协议–ARP协议

什么是ARP协议

首先,ARP协议是三层网络协议,也就是基于网络层的协议。在网络层协议中,数据的报文将仅关注IP地址MAC地址这些信息,LVS其实也是基于三层网络协议的(其实是伪三层,因为LVS会偷窥数据包的握手信息)。

大白话来讲,ARP协议就是用来广播统一局域网段内机器的IPMAC信息的。

ARP协议的工作流程

还是以之前的局域网络拓扑为例:
在这里插入图片描述
如果主机10想要和11进行通讯,会经历以下几个步骤:

  • 创建一个ARP协议格式的报文,报文的目标MAC地址全为F,目标IP为11。
  • 报文发送至交换机,交换机发现是一个ARP协议的报文,会将此报文通过自己记录的端口进行广播。
  • 11和12两台主机都接收到ARP报文,12发现目标IP与自己本机IP不符,将此报文丢弃;11发现与本机IP一致,将自己的MAC地址也封装成ARP协议的报文,发送给交换机。
  • 主机10收到报文,将11的MAC地址缓存到本地的ARP列表中。

这里需要说明的一点是,在第三步中,主机11将自己的MAC地址封装成ARP协议报文,其实是一个将原来的报文进行替换的过程,如下图:
在这里插入图片描述
交换机在这些报文一来二去的通讯过程中,会记录自己的端口与所连主机的映射关系:
在这里插入图片描述
比如上图的交换机连接了3台主机,对应的端口分别为1,5,7。主机第一次通过交换机发送报文的时候,交换机会把端口对应的主机的MAC地址记录下来,如此通讯多次后,交换机内部就能具备能够告知各个主机节点去路的能力。由于交换机仅记录MAC地址,所有交换机属于二层协议的设备。

下一篇文章我们将跨入互联网通讯,探明互联网中的两台主机是如何进行通讯的,并介绍NATDRTUN等知识。

发布了5 篇原创文章 · 获赞 0 · 访问量 491

猜你喜欢

转载自blog.csdn.net/TheRainManFSA/article/details/105411543
今日推荐