MAC地址
数据链路层
MAC地址
MAC地址:固定在网卡上。
路由器和交换机有多个网络接口,所以也会有多个MAC地址。
由6个字节表示,48bit组成,总共有2的48亿个,其中ff-ff-ff-ff-ff-ff地址为广播地址
MAC包
发送方 MAC 地址和接收方目标 MAC 地址
发送方的 MAC 地址获取就比较简单了,MAC 地址是在网卡生产时写入到 ROM 里的,只要将这个值读取出来写入到 MAC 头部就可以了。
接收方的 MAC 地址就有点复杂了,只要告诉以太网对方的 MAC 的地址,以太网就会帮我们把包发送过去,那么很显然这里应该填写对方的 MAC 地址。
ARP协议—在网络中找目标MAC地址
通过目标ip地址,找到目标MAC地址。
每个主机有ARP高速缓存表,比如linux查看
$ arp -a
LAPTOP-NO2D2JBM (172.21.176.1) at 00:15:5d:99:9b:60 [ether] on eth0
如果本地找不到目标MAC地址,则使用ARP协议,广播一个MAC帧。
源ip,源MAC地址,目标ip, 目标mac地址为ff-ff-ff-ff-ff-ff #广播帧的内容
当前网络中,所有主机都会收到这个广播帧,去验证目标ip是不是自己,如果是就会一个单播帧。
以太网交换机
具有多个接口,每个接口可以直接和一台主机或者交换机连接。
维护了一个帧交换表
MAC地址 | 交换机接口 |
---|---|
A | 1 |
交换机收到单播帧会查询交换表,然后转发到对应的接口。
虚拟局域网VLAN
防止广播风暴,只有同一个广播域的帧才能广播。
只用交换机组局域网为什么还要设IP地址?
我们看到内网主机之前通信时通过交换机实现的,交换机只有mac地址和接口,并不能识别ip,但是内网主机还是要分配ip地址,因为内网主机第一次通信时,需要经过ip地址取寻找目标mac地址。
实现网络功能,有了ip地址,能否不用mac地址了?