网络基础-二层通信

本文介绍了二层通信的基本过程,包括IP和MAC地址的作用、ARP表与MAC表的功能以及二层通信的详细步骤。通过主机A与主机B之间的通信示例,阐述了如何通过ARP广播请求获取目的主机MAC地址,以及交换机如何学习MAC表项并转发数据包。
摘要由CSDN通过智能技术生成

读懂文本需要对IP、MAC地址有基础的认识

二层通信

首先我们需要知道,流量数据的互访都是通过收发数据包的形式进行的

那么数据包是怎么知晓自己该去往何方的呢?我们先来了解几个概念

IP地址是什么

相信192.168.1.1这种类型的地址大家经常能看到,这个就称为一个IP地址,它用于标识网络上的某个终端。

MAC地址是什么

MAC地址用于标识一个设备的物理地址,一般来说,MAC地址是唯一的。在windows上,通常标识为F4-46-33-90-EC-5C这种形式

ARP表

记录IP地址与MAC地址的映射关系,arp表项一般用来指导数据包的封装

MAC表

交换机上记录MAC地址与端口的映射关系,mac表项一般用来指导交换机如何转发数据包

二层通信的过程

注:对于本文中提到的是否同网段的判定方法,在此不做详细解释,若没有这个基础,请自行百度解决

了解了IP地址与MAC地址的基础后,我们来研究一下二层的通信过程

环境介绍:
A、B为同网段的主机,仅配置了IP地址与24位掩码(主机为何没有配置网关地址,我会在之后三层的讲解中说明),二层交换机上无任何配置

主机A ping 主机B 的详细过程逐步说明如下
在这里插入图片描述
1、在A主机上执行ping 10.1.1.2

2、A主机查看自身的ARP表项是否存在10.1.1.2的MAC,检查后发现无对应ARP表项
在这里插入图片描述

3、A主机先判定目的IP 10.1.1.2是否为自己的同网段IP,使用掩码255.255.255.0去掩10.1.1.2这个地址。得出自身地址、对端地址的网络位均为10.1.1.0,因此判定为同网段互访,也就是二层互访

4、确认为二层互访后,A开始封装数据包,当前A自己的IP、MAC地址、B的IP是已知的。但A并不知道B的MAC地址,也就无法完成封装,所以A需要发送ARP广播请求去问B的MAC地址。我们不难发现,ARP实际上就是拿IP地址去解析MAC地址

在交换机的E0/0/1口抓包,我们可以看到
ARP的广播请求包
在这里插入图片描述
三层信息:Sender IP(源IP)为A的IP,Target IP(目的IP)为B的IP

二层信息:源MAC为A、目的MAC为全F,也就是发送给任何同网段的设备,一般我们称为广播

为什么需要广播呢?因为A并不知道对方的MAC,只能发给所有同网段的设备,以找到10.1.1.2对应的设备,并让设备回复它的MAC地址给A

在交换机收到A发来的ARP广播请求包以后,它会查看ARP包中的MAC信息,发现源MAC是A,且该数据包是从E0/0/1接口接收到的
因此,交换机会在自己的MAC表中新增一条:A的MAC地址——E0/0/1
注:该条MAC表项的默认存活时间为300S
在这里插入图片描述
生成MAC表项后,交换机发现目的MAC是全F,为广播包,因此将该数据包向除接收端口(E0/0/1)的所有端口泛洪

B收到ARP请求包以后,发现该请求包目的IP是自己,便封装ARP单播回应包进行发送
ARP的单播回应包:
在这里插入图片描述
IP层信息:Sender IP(源IP)为B的IP,Target IP(目的IP)为A的IP

二层信息:源MAC为B、目的MAC为A

此处为什么回应的是单播呢?
因为在A发送ARP请求包时,里面就封装了A的MAC,因此B知晓了A的MAC,直接采用单播回复

交换机在收到B的回应包之后,同样的查看包中的源MAC,并生成一条MAC表项:B的MAC——E0/0/2
在这里插入图片描述
此处我们不难发现:交换机根据数据包中的源MAC地址学习并生成MAC表项、根据目的MAC进行转发

生成完MAC表项后,交换机会查看包的目的MAC,并在自己的MAC表项中查询该MAC对应的接口。匹配到MAC表中的:A的MAC——E0/0/1
因此,交换机将ARP回应包从E0/0/1口转发出去

A收到来自B的ARP回应

5、经过ARP解析,A已经得知了B的MAC地址,并将B的IP与MAC对应关系缓存在本地的ARP表中,为这一条目附加一个生存时间,在生存时间内再次访问B,无需发送ARP请求,直接通过表项来封装
在这里插入图片描述
6、A封装ICMP报文,其中包含源目IP、源目MAC,发送给交换机

7、交换机收到的报文如下:
在这里插入图片描述
8、交换机查看数据包中的目的MAC,并查看自身的MAC表项中是否存在对应的表项
在这里插入图片描述
交换机查询到目的MAC对应着E0/0/2端口,因此将数据包通过E0/0/2口转发出去

9、B收到数据包

10、B回复数据包的过程与A发送给B的类似,不做赘述

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值