目录
1. 什么是Mac Address?
MAC 地址是计算机的唯一48位硬件编码,嵌入到网卡中。
MAC地址也称为网络设备的物理地址,在IEEE 802中规定,数据链路层分为 逻辑链路控制(LLC)子层 和 媒体控制访问(MAC)子层。
MAC地址由数据链路层的媒体访问控制(MAC)子层使用,MAC地址在全球范围内唯一。
MAC地址也是一个12位的十六进制数,前6位为制造商唯一标识(OUI),最右边六位代表 Network Interface Controller,由制造商分配。
2. 如何查找MAC地址?
# UNIX/Linux
> ifconfig -a ip link list ip address show
# Windows
> ipconfig /all
3. 二层数据交换
如图,假如有3个机器 C1、C2、C3,他们分别有Mac Address嵌入到各自的网卡(NIC)中 。
他们之间通过一个network switch 连接,switch 内部维护一张表,这张表有2个参数,Mac Address 和 出口Port。
这个Switch即为二层交换机,可以识别数据包中的MAC地址,根据MAC进行转发,并将这些MAC地址与对应的端口记录在自己内部的地址表中,交换机接收的数据包会包括 目的MAC,源MAC。
当C1想向C2发送数据包时:
- 当交换机从某个端口收到一个数据包,它会先读取包头中的源MAC地址,这样就知道源MAC地址机器是连在哪个端口
- 再去读包头中的目的地址,并在地址表中查找端口
- 如果有,则直接把数据包复制到这个端口
- 如果没有,则把数据包广播到所有端口,当目的机器回应时,就可以学校目的MAC地址与哪个端口对应。