MAC Address

1. 前言

限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。

2. MAC Address

2.1 MAC 地址格式

网络设备的 MAC 地址格式如下图:
在这里插入图片描述
MAC 共 6 个字节,前 3 个字节为制造商 ID,从 OUI 组织申请,后 3 个字节为厂商网络设备的唯一标识。

2.2 Locally Administered MAC Address

Locally Administered Address 是一类特殊的 MAC 地址,类似于 LAN IP 地址,如 10.0.0.0/8,192.168.0.0/16,172.16.0.0/16 等局域网地址。Locally Administered Address 是系统管理员自定义的网络设备 MAC,不会和各大厂商注册的 MAC 冲突,通常用于虚拟网卡(如网桥)等设备。

MAC 地址的第一个字节的第 2 位,即上图中的 U/L bit ,如果该 bit 为 0,则为 OUI 组织分配的各大厂商 MAC否则Locally Administered Address 。看下对 Locally Administered Address 的说明:

locally administered address

A locally administered MAC address is similar to a LAN IP address (10.0.0.0/8, 
172.16.0.0/12, and 192.168.0.0/16). You can make up your own locally administered 
address and can be sure that it will not collide with any hardware on your network that 
use a factory burned-in MAC address. Locally administered addresses are useful when 
creating virtual machines or virtual network interfaces.

The second bit of the first byte of a MAC address determines the type of OUI. If the bit 
is 0 then it is an OUI globally assigned by the IEEE; if the bit is 1 then it is a locally
administered MAC address.

Create a OUI by whatever scheme you like, then logically OR it with 02:00:00:00:00:00, and
then logically AND it with fe:ff:ff:ff:ff:ff, and you will have a locally administered 
address. The first OR pattern sets bit 2 of the first byte; the second AND pattern clears 
bit 1 of the first byte (unicast, not multicast).

The following MAC address pattern satisfies the OUI requirements:
4e:4f:41:48:00:00

2.3 MAC 单播 和 多播

在这里插入图片描述
上图中,MAC 的最高字节的 bit 0,如果该 bit 为 0,则是单播 MAC;否则多播 MAC。看下面的描述:

universally administered address 

The original IEEE 802 MAC address comes from the original Xerox Ethernet addressing scheme.
This 48-bit address space contains potentially 248 or 281,474,976,710,656 possible MAC 
addresses.

All three numbering systems use the same format and differ only in the length of the 
identifier. Addresses can either be "universally administered addresses" or "locally 
administered addresses".

A universally administered address is uniquely assigned to a device by its manufacturer; 
these are sometimes called "burned-in addresses" (BIA). The first three octets (in 
transmission order) identify the organization that issued the identifier and are known as 
the Organizationally Unique Identifier (OUI). The following three (MAC-48 and EUI-48) or 
five (EUI-64) octets are assigned by that organization in nearly any manner they please,
subject to the constraint of uniqueness. The IEEE expects the MAC-48 space to be 
exhausted no sooner than the year 2100; EUI-64s are not expected to run out in the 
foreseeable future.

A locally administered address is assigned to a device by a network administrator, 
overriding the burned-in address. Locally administered addresses do not contain OUIs.

Universally administered and locally administered addresses are distinguished by setting 
the second least significant bit of the most significant byte of the address. If the bit 
is 0, the address is universally administered. If it is 1, the address is locally 
administered. In the example address 06-00-00-00-00-01 the most significant byte is 
06 (hex), the binary form of which is 00000110, where the second least significant bit is 
1. Therefore, it is a locally administered address. Consequently, this bit is 0 in all 
OUIs.

If the least significant bit of the most significant octet of an address is set to 0 
(zero), the frame is meant to reach only one receiving NIC. This type of transmission 
is calledunicast . A unicast frame is transmitted to all nodes within the collision 
domain , which typically ends at the nearest network switch or router . Only the node 
with the matching hardware MAC address will accept the frame; network frames with 
non-matching MAC-addresses are ignored, unless the device is in promiscuous mode.

If the least significant bit of the most significant address octet is set to 1, the packet
will still be sent only once; however, NICs will choose to accept it based on different
criteria than a matching MAC address: for example, based on a configurable list of 
accepted multicast MAC addresses. This is called multicast addressing.

3. 参考资料

[1] Understanding MAC Addresses
[2] Identify a randomised (locally administered) MAC Address
[3] 给自己分一个 MAC地址–locally administered address
[4] MAC 地址格式
[5] Organizationally unique identifier
[6] MAC address

根据提供的引用内容,"Command 'python setup.py egg_info' failed with error code 1 in /tmp/pip-build-shwvzlo3/simplejpeg/" 是一个错误信息,它表示在执行命令 "python setup.py egg_info" 时出现了错误代码1。这通常发生在安装Python包时,其中的某个依赖项无法正确安装或编译。 解决此问题的一种方法是确保你的系统上已经安装了所需的依赖项。你可以尝试以下步骤来解决这个问题: 1. 确保你的系统上已经安装了所需的编译工具。在Linux上,你可以使用以下命令安装: ```shell sudo apt-get install build-essential ``` 2. 确保你的系统上已经安装了所需的Python开发包。在Linux上,你可以使用以下命令安装: ```shell sudo apt-get install python-dev ``` 3. 确保你的系统上已经安装了所需的库和依赖项。你可以查看项目的文档或README文件,了解所需的依赖项,并使用适当的包管理器进行安装。 4. 确保你的系统上已经安装了正确版本的Python。有些包可能只支持特定的Python版本。你可以使用以下命令检查你的Python版本: ```shell python --version ``` 5. 如果以上步骤都没有解决问题,你可以尝试使用虚拟环境来安装包。虚拟环境可以隔离不同项目的依赖项,避免冲突。你可以使用以下命令创建和激活虚拟环境: ```shell python -m venv myenv source myenv/bin/activate ``` 以上是解决"Command 'python setup.py egg_info' failed with error code 1 in /tmp/pip-build-shwvzlo3/simplejpeg/"错误的一些常见方法。如果问题仍然存在,你可以尝试搜索相关错误信息或向开发者社区寻求帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值