MAC 地址
每个网卡或三层网口都有一个 MAC 地址, MAC 地址是烧录到硬件上,因此也称为硬件地址。MAC 地址作为数据链路设备的地址标识符,需要保证网络中的每个 MAC 地址都是唯一的,才能正确识别到数据链路上的设备。
MAC 地址由 6 个字节组成。前 3 个字节表示厂商识别码,每个网卡厂商都有特定唯一的识别数字。后 3 个字节由厂商给每个网卡进行分配。厂商可以保证生产出来的网卡不会有相同 MAC 地址的网卡。
现在可以通过软件修改 MAC 地址,虚拟机使用物理机网卡的 MAC 地址,并不能保证 MAC 地址是唯一的。但是只要 MAC 地址相同的设备不在同一个数据链路上就没问题。
为了查看方便, 6 个字节的 MAC 地址使用十六进制来表示。每个字节的 8 位二进制数分别用 2 个十六进制数来表示,例如我的网卡 MAC 地址是 E0-06-E6-39-86-31
。
什么是字节?什么是比特?
比特,英文名 bit ,也叫位。二进制中最小单位,一个比特的值要么是 0
要么是 1
。
字节,英文名 Byte 。一个字节由八个比特构成。
MAC 地址怎么使用?
最常用的以太网和无线局域网,都是使用 MAC 地址作为地址标识符进行通信的。
以太网
有线局域网中普遍使用以太网,以太网标准简单,传输速率高。常见的网络拓扑结构如下图。
什么是网络拓扑?
网络的连接和构成的形态称为网络拓扑。它不仅可以直观的看到网络物理连接方式,还可以表示网络的逻辑结构。
以太网数据格式
当今最常用的以太网协议标准是 ETHERNET II
标准。 ETHERNET II
标准定义的数据帧格式如下图。
- 前导码( Preamble )
前导码由 7 个字节组成,每个字节固定为 10101010
。之后的 1 个字节称为帧起始定界符,这个字节固定为 10101011
。这 8 个字节表示以太网帧的开始,也是对端网卡能够确保与其同步的标志。帧起始定界符的最后两位比特被定义为 11 ,之后就是以太网数据帧的本体。
-
目的地址( Destination Address )
目的地址由 6 个字节组成,用来标识数据帧的目的设备,类似于快递的收件人地址。
-
源地址( Source Address )
源地址由 6 个字节组成,用来标识数据帧的始发设备,类似于快递的发件人地址。
-
类型( Type )
类型字段由 2 个字节组成。类型字段是表明上一层(即网络层)的协议类型,可以让接收方使用相同的协议进行数据帧的解封装。
-
数据( Data )
帧头后就是数据。一个数据帧所能容纳的最大数据范围是 46 ~ 1500 个字节。如果数据部分不足 46 个字节,则填充这个数据帧,让它的长度可以满足最小长度的要求。
-
FCS( Frame Check Sequence )
FCS 由 4 个字节组成,位于数据帧的尾部,用来检查帧是否有所损坏。通过检查 FCS 字段的值将受到噪声干扰的错误帧丢弃。
最小的数据帧是多少字节?
数据帧的各字段加起来一共是 64
字节,其中数据是 46
字节。再加上前导码就是 72
字节。因