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 地址了?