在以太网中,每台计算机的适配器都会赋予本站一个名字,这个名字成为这台计算机在以太网中的唯一标识。在计算机网络体系的标识系统里,人们习惯用地址这个称呼来描述这个名字。事实上,名字和地址是两个不同的概念,名字告诉我们的是某台计算机的代号,而地址则是告诉我们这台计算机在网络中所处的位置。在计算机网络的世界里,认识某台计算机,或者说知道某台计算机的名字,等同于知道这台计算机所在的位置,因此,人们习惯性的用地址来代替名字。
一台计算机可能有多种不同类型的地址,适配器赋予计算机的地址称为硬件地址,也称为物理地址或MAC地址。适配器的生产商在制造适配器时,直接将这个地址固定在了适配器的只读存储器(ROM)中。IEEE802标准规定,物理地址可以用6 Byte(48 bit)或者2 Byte(16 bit)来表示。在网络发展初期,人们认为应当尽量选用较短的地址以减少不必要的开销,当时联网的计算机数量较少,因此2 Byte(16 bit)的地址就够用了。在网络发展的后期,由于互联网的快速发展,联网计算机数量增长迅猛,2 Byte的地址很明显已不够用,于是改为使用6 Byte地址。目前,这已经成为MAC地址的通用标准。计算机的MAC地址有如下特点:
(1)若计算机的物理位置没有发生变化,但是更换了新的适配器,则计算机的MAC地址发生了变化。
(2)若计算机的物理位置发生了变化(如把计算机从哈尔滨携带至北京),但是适配器没有进行更换,则计算机的MAC地址不会发生变化。
(3)如果一台计算机没有配备适配器,那么这台计算机就没有MAC地址。同样,如果一台计算机配备了多个适配器,那么它就会同时拥有多个MAC地址。
由此可见,计算机的MAC地址并不能告诉我们计算机所处的具体位置,但却可以为网络交换设备进行路由寻址时提供依据。
2.MAC地址的组成
目前采用的MAC地址共由6 Byte(48 bit)组成,其中前3 Byte(24 bit)由IEEE的注册管理机构即局域网全球地址法定管理机构(Registration Authority,RA)负责分配。世界上所有适配器的生产商都必须向IEEE购买由MAC地址前3个字节组成的地址块,这个地址块被称为组织唯一标识符(Organizationally Unique Identifier,OUI)或者公司标识符(Com⁃pany-ID)。MAC地址的后3 Byte(24 bit)由适配器的生产商自行分配,称为扩展标识符(Extended Identifier,EI)。所以,生产商每购买一个组织唯一标识符(地址块),就可以自行分配产生224个不同的MAC地址。用这种方法得到的48 bit地址称为EUI-48,其中EUI代表扩展的唯一标识符(Extended Unique Identifier,EUI)。有一点需要注意的是:适配器的生产商和OUI并非是一一对应的关系,一家生产商可以同时购买多个OUI。同样,也可能有多家生产商联合购买一个OUI。当用户将某块适配器插入一台计算机后,该适配器的标识符EUI-48就成为这台计算机的MAC地址。
1)MAC地址的I/G位
IEEE规定MAC地址字段的第一字节的最低位为“I/G”位。其中“I”代表Individual,“G”代表Group。当I/G位为0时,地址字段表示一个单个站地址。当I/G位为1时,表示组地址,组地址主要用来分配给参与组播或多播的计算机。当I/G位分别为0和1时,各可以生成223个单地址和组地址。
2)MAC地址的G/L位
IEEE还考虑到可能有人并不愿意向IEEE的RA购买OUI,所以,IEEE把MAC地址字段第一字节的最低第二位规定为“G/L”位。其中“G”代表Global,“L”代表Local。当G/L位置0时,表示MAC地址为全球管理,即保证在全球范围内没有重复的MAC地址;当G/L位置1时,表示MAC地址为本地管理。此时,用户可以任意分配网络上的地址。
3)适配器的MAC地址(www.xing528.com)
当路由器通过适配器连接到局域网时,适配器上的硬件地址就是用来标志路由器的某个接口。所以,如果路由器同时连接到两个网络上,那么这个路由器就需要两个适配器,并且拥有两个MAC地址。当路由器的适配器从网络上接收到一个MAC帧时,利用硬件检查该MAC帧中的目的地址,如果该帧是发往本站的,就将其接收,否则就将其丢弃。以太网上的适配器能够收到的帧主要有3种:
(1)单播帧,即一对一的帧,说明收到的帧的MAC地址与本站的MAC地址相同。
(2)广播帧,即一对全体的帧,说明收到的帧是发送给本局域网上所有站点的帧。
(3)多播帧,即一对多的帧,说明收到的帧是发送给本局域网上部分站点的帧。
以太网要求所有的适配器都必须能够识别单播帧和广播帧。对于多播帧,通常来说能够被多播组内的适配器所识别。
另外,以太网适配器可以设置为工作在一种特殊模式下,称为“混杂方式”。工作在混杂方式下的适配器能够自行记录所有通过的帧,无论这个帧要发往哪里,都像是在“窃听”一样。有时,一些网络攻击者会利用这种方法来窃取局域网上的通信信息,如用户名、用户密码等敏感信息。另外,网络维护人员也经常会利用这一方式来对网络上的数据流量进行监听,从而分析当前的网络运行状况及提高网络性能的方法。所以,混杂方式是一把双刃剑,既可以用于信息窃取,也可以用于网络管理。
3.MAC帧格式
目前,常用的以太网MAC帧主要有两种格式,一种是DIX Ethernet V2标准(即以太网V2标准),另一种是IEEE的802.3标准。本书只对使用较多的以太网V2标准的MAC帧格式进行介绍。假设网络层使用的是IP(事实上,如果网络层使用了其他协议,对数据链路层的MAC地址格式并没有影响,只是封装的数据报类型发生了变化而已),如图3-13所示。
图3-13 以太网V2标准的MAC帧格式
以太网V2标准的MAC帧格式比较简单,共由5个字段组成:第一个字段为目的地址,长度为6 Byte;第二个字段为源地址,长度也是6 Byte;第三个字段为协议类型,长度为2 Byte,主要用于标识上一层使用的协议类型,以方便接收方将收到的MAC帧的数据递交给上一层的对应协议;第四个字段是数据部分,其长度为46~1 500 Byte(MAC帧最小长度要求为64 Byte,去掉18 Byte的首部和尾部,因此数据部分要求最小为46 Byte);第五个字段是帧检验序列FCS(当且仅当使用循环冗余检验进行差错控制时),长度为4 Byte。这里有一点需要注意,那就是MAC帧的首部中并没有指出数据字段的具体长度是多少,当数据字段不足46 Byte时,系统会在数据字段后面添加一个整数字节的填充字段,在这种情况下,接收方的数据链路层会把收到的帧去掉首部和尾部后,将数据字段和填充字段一起交给网络层,而接下来的问题是:接收方的网络层如何能够确定填充字段的长度呢?为了解决这个问题,网络层的IP数据报首部中添加了一个总长度字段(假定网络层使用的是IP协议),接收方的网络层就是根据这个字段来辨别MAC帧的数据字段长度的。
从图3-14所示中可知,在实际的数据传送中,还要在MAC帧的前端(左部)添加8个字节,其中7个字节为同步码,1个字节为帧定界符。之所以需要添加同步码,是因为当一个站点在刚开始接收MAC帧时,由于适配器的时钟尚未与到达的比特流达成同步,因此MAC帧的最前面的若干位就无法接收,结果使整个的MAC帧成为无用帧,而同步码的作用就是使接收端的适配器在接收MAC帧时能够迅速调整其时钟频率,使它和发送端的时钟同步,也就是实现“位同步”。此时,帧开始定界符采用10101011的字符序列。这个序列前6位的作用和前同步码一样,最后的两个连续的1就是告诉接收端适配器:MAC帧的信息马上就要来了,请注意查收。
此外,由于在以太网上传输数据时以帧为单位,各帧之间需留有一定的间隙,因此接收端只需找到帧开始的定界符即可,因为后面连续的比特流都属于同一个帧,所以,以太网不需要帧结束定界符,也不需要采用特殊手段来保障MAC帧的透明传输。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。