mac地址浅析

[编辑本段]

概述

  MAC地址(MAC Address)

  MAC(Media Access Control)地址,或称为 MAC位址、硬件位址,用来定义网络设备的位置。在OSI模型中,第三层网络层负责 IP地址,第二层资料链结层则负责 MAC位址。因此一个主机会有一个IP地址,而每个网络位置会有一个专属于它的MAC位址。

[编辑本段]

MAC地址解释

  

MACMedia Access Control, 介质访问控制)MAC地址是烧录在NetworkInterfaceCard(网卡,NIC)里的.MAC地址,也叫硬件地址,是由48比特长(6字节),16进制的数字组成.0-23位叫做组织唯一标志符(organizationally unique,是识别LAN(局域网)节点的标识.24-47位是由厂家自己分配。其中第40位是组播地址标志位。网卡的理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。

  也就是说,在网络底层的物理传输过程中,是通过物理地址来识别主机的,它一般也是全球唯一的。比如,著名的以太网卡,其物理地址是48bit(比特位)的整数,如:44-45-53-54-00-00,以机器可读的方式存入主机接口中。以太网地址管理机构(除了管这个外还管别的)IEEE)(IEEE:电气和电子工程师协会)将以太网地址,也就是48比特的不同组合,分为若干独立的连续地址组,生产以太网网卡的厂家就购买其中一组,具体生产时,逐个将唯一地址赋予以太网卡。

  形象的说,MAC地址就如同我们身份证上的身份证号码,具有全球唯一性。

[编辑本段]

MAC地址的作用

IP地址就如同一个职位,而MAC地址则好像是去应聘这个职位的人才,职位既可以让甲坐,也可以让乙坐,同样的道理一个节点的IP地址对于网卡是不做要求,基本上什么样的厂家都可以用,也就是说IP地址与MAC地址并不存在着绑定关系。本身有的计算机流动性就比较强,正如同人才可以给不同的单位干活的道理一样的,人才的流动性是比较强的。职位和人才的对应关系就有点像是IP地址与MAC地址的对应关系。比如,如果一个网卡坏了,可以被更换,而无须取得一个新的IP地址。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。当然MAC地址除了仅仅只有这个功能还是不够的,就拿人类社会与网络进行类比,通过类比,我们就可以发现其中的类似之处,更好地理解MAC地址的作用。无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARP(Address Resolution Protocol地址解析协议)负责将IP地址映射到MAC地址上来完成的。其实人类社会和网络也是类似的,试想在人际关系网络中,甲要捎个口信给丁,就会通过乙和丙中转一下,最后由丙 转告给丁。在网络中,这个口信就好比是一个网络中的一个数据包。数据包在传送过程中会不断询问相邻节点的MAC地址,这个过程就好比是人类社会的口信传送过程。相信通过这两个例子,我们就可以进一步理解MAC地址的作用。

MAC地址的应用

  平日身份证的作用并不是很大,但是到了有的关键时刻,身份证就是用来证明你的身份的。比如你要去银行提取现金,这时就要用到身份证。那么MAC地址与IP地址绑定就如同我们在日常生活中的本人携带自己的身份证去做重要事情一样的道理。有的时候,我们为了防止IP地址被盗用,就通过简单的交换机端口绑定(端口的MAC表使用静态表项),可以在每个交换机端口只连接一台主机的情况下防止修改MAC地址的盗用,如果是三层设备还可以提供:交换机端口/IP/MAC 三者的绑定,防止修改MACIP盗用。一般绑定MAC地址都是在交换机和路由器上配置的,是网管人员才能接触到的,对于一般电脑用户来说只要了解了绑定的作用就行了。比如你在校园网中把自己的笔记本电脑换到另外一个宿舍就无法上网了,这个就是因为MAC地址与IP地址(端口)绑定引起的。

什么是mac!!!

如果你是通过校园网或小区接入Internet,那么一定听说过MAC地址。什么是MAC地址

 

MAC地址在这种局域网环境中究竟起到什么作用?下面就来介绍一下MAC地址的知识

 

MAC地址和IP地址的区别以及MAC地址在实际应用中所涉及到的安全问题。

 

  一、基础知识

 

  如今的网络是分层来实现的,就像是搭积木一样,先设计某个特定功能的模块,

 

然后把模块拼起来组成整个网络。局域网也不例外,一般来说,在组网上我们使用的

 

IEEE802参考模型,从下至上分为:物理层、媒体接入控制层(MAC),逻辑链路控

 

制层(LLC)。

 

  标识网络中的一台计算机,一般至少有三种方法,最常用的是域名地址、IP地址

 

MAC地址,分别对应应用层、网络层、物理层。网络管理一般就是在网络层针对IP

 

地址进行管理,但由于一台计算机的IP地址可以由用户自行设定,管理起来相对困难

 

MAC地址一般不可更改,所以把IP地址同MAC地址组合到一起管理就成为常见的管理

 

方式。

 

  二、什么是MAC地址

 

  MAC地址就是在媒体接入层上使用的地址,也叫物理地址、硬件地址或链路地址

 

,由网络设备制造商生产时写在硬件内部。MAC地址与网络无关,也即无论将带有这

 

个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,都有相同的MAC

 

址,它由厂商写在网卡的BIOS里。MAC地址可采用6字节(48比特)或2字节(16比特

 

)这两种中的任意一种。但随着局域网规模越来越大,一般都采用6字节的MAC地址。

 

这个48比特都有其规定的意义,前24位是由生产网卡的厂商向IEEE申请的厂商地址,

 

目前的价格是1000美元买一个地址块,后24位由厂商自行分配,这样的分配使得世界

 

上任意一个拥有48MAC地址的网卡都有唯一的标识。另外,2字节的MAC地址不用网

 

卡厂商申请。

 

  MAC地址通常表示为1216进制数,每216进制数之间用冒号隔开,如:

 

08:00:20:0A:8C:6D就是一个MAC地址,其中前616进制数08:00:20代表网络硬件制

 

造商的编号,它由IEEE分配,而后316进制数0A:8C:6D代表该制造商所制造的某个

 

网络产品(如网卡)的系列号。每个网络制造商必须确保它所制造的每个以太网设备

 

都具有相同的前三字节以及不同的后三个字节。这样就可保证世界上每个以太网设备

 

都具有唯一的MAC地址。

 

  三、IP地址与MAC地址的区别

 

  IP地址基于逻辑,比较灵活,不受硬件限制,也容易记忆。MAC地址在一定程度

 

上与硬件一致,基于物理,能够标识具体。这两种地址各有好处,使用时也因条件而

 

采取不同的地址。

 

MAC是英文Media Access Control的缩写,中文释义:媒体访问控制子层协议。该协

 

议位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介

 

质。在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将

 

给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在

 

接收数据的时候,MAC协议首先判断输入的信息并是否发生传输错误,如果没有错误

 

,则去掉控制信息发送至LLC层。

 

 

MAC地址是网卡的物理地址,它由48位二进制数表示。其中前面24位表示网络厂商标

 

识符,后24位表示序号。每个不同的网络厂商会有不同的厂商标识符,而每个厂商所

 

生产出来的网卡都是依序号不断变化的,所以每块网卡的MAC地址是世界上独一无二

 

的(特殊情况除外:如要通过修改MAC地址来通过认证时)。一般我们采用六个十六

 

进制数来表示一个完整的MAC地址,如00:e0:4c:01:02:85。在win98/2000下均可以通

 

过在MS-DOS方式下执行IPCONFIG/ALL命令得到相应的网卡的MAC地址。

 

/***************/

如何获得别人的Mac

 

其实上面已经涉及到了,如果是2000/XP用户可以用 nbtstat -A IP地址(还可以获

 

得别的东东啊,可别学坏啊)。另外同一局域网内的,你可以用ping IP 或者ping

 

主机名,然后用arp -a 来获得。

 

如何修改自己的Mac地址

 

Mac地址是保存在网卡的EPROM里面,通过网卡生产厂家提供的修改程序可以更改存储

 

器里的地址,即使网卡没有这样的设置我们也可以通过间接的方法修改,一般网卡发

 

出的包的源Mac地址并不是网卡本身写上去的,而是应用程序提供的,只是在通常的

 

实现中,应用程序先从网卡上得到Mac地址,每次发送的时候都用这个Mac做为源Mac

 

而已,Windows中,网卡的Mac保存在注册表中,实际使用也是从注册表中提取的,所

 

以只要修改注册表就可以简单的改变Mac

 

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/eshime/archive/2008/02/13/2090660.aspx

 

 

MAC地址通常表示为1216进制数,每216进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前616进制数08:00:20代表网络硬件制造商的编号,它由IEEE分配,而后316进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。每个网络制造商必须确保它所制造的每个以太网设备都具有相同的前三字节以及不同的后三个字节。这样就可保证世界上每个以太网设备都具有唯一的MAC地址。

    我们需要注意的是以太网地址的第32位是组播地址的标志位:

            4733      制造厂商标识
               32              
组播标识位
               31
24       制造厂商标识
               23
0        系列号

    当组播标识位为1时表示该MAC地址是一个组播地址。对于网卡MAC,这一位必须是0,表示一个单播MAC地址。以下:

    X0:XX:XX:XX:XX:XX
    X2:XX:XX:XX:XX:XX
    X4:XX:XX:XX:XX:XX
    X6:XX:XX:XX:XX:XX
    X8:XX:XX:XX:XX:XX
    XA:XX:XX:XX:XX:XX
    XC:XX:XX:XX:XX:XX
    XE:XX:XX:XX:XX:XX

   
为合法的以太网网卡地址。上面的X代表0F中的任一个。如果你不是购买网卡,而是自己购买芯片制造,那么地址怎么办?可以自己使用一个还没有被ieee分配的厂商编号就可以了。就算是使用已经分配的厂商编号也没有不可,只要你能保证在你使用的局域网内,任何两个网卡的地址不一样就可以了。地址FF:FF:FF:FF:FF:FF为广播地址,只能用在目的地址段,不能作为源地址段。目的地址为广播地址的数据包,可以被一个局域网内的所有网卡接收到。

    地址:

    X1:XX:XX:XX:XX:XX
    X3:XX:XX:XX:XX:XX
    X5:XX:XX:XX:XX:XX
    X7:XX:XX:XX:XX:XX
    X9:XX:XX:XX:XX:XX
    XB:XX:XX:XX:XX:XX
    XD:XX:XX:XX:XX:XX
    XF:XX:XX:XX:XX:XX

    为组播地址,只能作为目的地址,不能作为源地址。组播地址可以被支持该组播地址的一组网卡接收到。组播地址主要用在视频广播,远程唤醒(通过发一个特殊的数据包使网卡产生一个中断信号,启动电脑),游戏(多个人在局域网里联机打游戏)里等。下面是一些具体的组播地址,其他组播地址跟TCP/IP无关,不做介绍:

    地址                                                             范围
    01:00:5E:00:00:00
01:00:5E:7F:FF:FF 用于ip地址的组播

    网卡可以接收以下3种地址的数据包:
     1
目的地址跟自己的网卡地址是一样的数据包
     2
目的地址为FF:FF:FF:FF:FF:FF广播地址的数据包
     3
目的地址为跟自己的组播地址范围相同的数据包

    那么在以太网的应用当中,如果你希望你的数据包只发给一个网卡,目的地址用对方的网卡地址;如果你想把数据包发给所有的网卡,目的地址用广播地址;如果你想把数据包发给一组网卡,目的地址用组播地址。

组播IP与组播MAC的映射

    二层组播MAC定义为:01:00:5e:xx:xx:xx,其中 xx由三层的IP组播组确定。组播地址:组播流使用的 IPDIP地址(二进制1110开始),从224.0.0.0239.255.255.255。由于组播MAC 地址是一个虚拟的地址,并不是真实网卡的MAC地址,那么网卡在发送报文时二层MAC 地址怎么确定呢?答案是采用地址映射的方法将三层IP地址映射到MAC地址。映射关系如下:

    从上面的映射关系可以看出IP地址的五个bit 无法映射到MAC层,因为MAC层的这五个bit 已经确定。也就是说有32 IP组播组会被映射为同一个MAC地址。

 

 

« 上一篇: P2PUDP穿透NAT的原理与实现(附源代码)

下一篇: Sniffer原理 »

MAC地址介绍

Jason @ 2008-02-03 10:23

 

Mac地址就是在媒体接入层上使用的地址,通俗点说就是网卡的物理地址,现在的Mac地址一般都采用6字节48bit(在
早期还有2字节16bitMac地址)。 
对于MAC地址,由于我们不直接和它接触,所以大家不一定很熟悉。在OSIOpen System Interconnection,开放系统互
连)7层网络协议(物理层,数据链路层,网络层,传输层,会话层,表示层,应用层)参考模型中,第二层为数据链路
层(Data Link)。它包含两个子层,上一层是逻辑链路控制(LLCLogical Link Control),下一层即是我们前面所提到
MACMedia Access Control)层,即介质访问控制层。所谓介质(Media),是指传输信号所通过的多种物理环境。常
用网络介质包括电缆(如:双绞线,同轴电缆,光纤),还有微波、激光、红外线等,有时也称介质为物理介质。MAC
地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。这个地址与网络无关,也即无论将
带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,它都有相同的MAC地址,MAC地址一般不可改
变,不能由用户自己设定。
MAC
地址前24位是由生产厂家向IEEE申请的厂商地址。后24位就由生产厂家自行定拟了。(早期的2字节的却不用申请

一:IP地址和Mac地址有什么联系和区别 
对于IP地址,相信大家都很熟悉,即指使用TCP/IP协议指定给主机的32位地址。IP地址由用点分隔开的48八位组构
成,如192.168.0.1就是一个IP地址,这种写法叫点分十进制格式。IP地址由网络地址和主机地址两部分组成,分配给这两
部分的位数随地址类(A类、B类、C类等)的不同而不同。网络地址用于路由选择,而主机地址用于在网络或子网内部
寻找一个单独的主机。一个IP地址使得将来自源地址的数据通过路由而传送到目的地址变为可能。 

现在有很多计算机都是通过先组建局域网,然后通过交换机和Internet连接的。然后给每个用户分配固定的IP地址,由管
理中心统一管理,这样为了管理方便就需要使用Mac地址来标志用户,防止发生混乱,明确责任(比如网络犯罪)。另外
IP
地址和Mac地址是有区别的,虽然他们在局域网中是一一对应的关系。IP地址是跟据现在的IPv4标准指定的,不受硬件
限制比较容易记忆的地址,而Mac地址却是用网卡的物理地址,多少与硬件有关系,比较难于记忆。 

MAC
地址的长度为48位(6个字节),通常表示为1216进制数,每216进制数之间用冒号隔开,如:08:00:20:0A: 
8C:6D
就是一个MAC地址,其中前616进制数08:00:20代表网络硬件制造商的编号,它由IEEEIstitute of Electrical and 
Electronics Engineers
,电气与电子工程师协会)分配,而后316进制数0A:8C:6D代表该制造商所制造的某个网络产品
(如网卡)的系列号。每个网络制造商必须确保它所制造的每个以太网设备都具有相同的前三个字节以及不同的后三个
字节。这样就可保证世界上每个以太网设备都具有唯一的MAC地址。
既然每个以太网设备在出厂时都有一个唯一的MAC地址了,那为什么还需要为每台主机再分配一个IP地址呢?或者说为
什么每台主机都分配唯一的IP地址了,为什么还要在网络设备(如网卡,集线器,路由器等)生产时内嵌一个唯一的
MAC
地址呢?主要原因有以下几点:(1IP地址的分配是根据网络的拓朴结构,而不是根据谁制造了网络设置。若将高
效的路由选择方案建立在设备制造商的基础上而不是网络所处的拓朴位置基础上,这种方案是不可行的。(2)当存在一
个附加层的地址寻址时,设备更易于移动和维修。例如,如果一个以太网卡坏了,可以被更换,而无须取得一个新的IP
地址。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。(3)无论是局
域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传
递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARPAddress Resolution Protocol:地址
解析协议)负责将IP地址映射到MAC地址上来完成的。下面我们来通过一个例子看看IP地址和MAC地址是怎样结合来传送
数据包的。 

假设网络上要将一个数据包(名为PAC)由临沭的一台主机(名称为AIP地址为IP_AMAC地址为MAC_A)发送到北京
的一台主机(名称为BIP地址为IP_BMAC地址为MAC_B)。这两台主机之间不可能是直接连接起来的,因而数据包在
传递时必然要经过许多中间节点(如路由器,服务器等等),我们假定在传输过程中要经过C1C2C3(其MAC地址分
别为M1M2M3)三个节点。A在将PAC发出之前,先发送一个 ARP请求,找到其要到达IP_B所必须经历的第一个中间
节点C1MAC地址M1,然后在其数据包中封装(Encapsulation)这些地址: IP_AIP_BMAC_AM1。当PAC传到C1
后,再由ARP根据其目的IP地址IP_B,找到其要经历的第二个中间节点C2MAC地址 M2,然后再将带有M2的数据包传
送到C2。如此类推,直到最后找到带有IP地址为IP_BB主机的地址MAC_B,最终传送给主机B。在传输过程中,
 IP_A
IP_BMAC_A不变,而中间节点的MAC地址通过ARP在不断改变(M1M2M3),直至目的地址MAC_B 

二:如何知道自己的Mac地址 
方法比较多,也比较简单,在这里介绍两种常用的方法,在Win9x 可用:WinIPcfg获得,在2000XP可用IPconfig -all
得。如果你已经给自己的网卡分配了IP,还可以用 nbtstat -A 自己的IP,后者只能在2000/XP下使用。 
Windows 98/Me中,依次单击开始运行输入“winipcfg”回车。 
Windows 2000/XP中,依次单击开始运行输入“CMD”回车输入“ipconfig /all”回车。
也可以用 nbtstat -A IP地址(还可以获得别的东东,可别学坏啊)。另外同一局域网内的,你可以用ping IP 或者ping
机名,然后用arp -a 来获得。
三:为什么要修改MAC地址
为什么要修改MAC地址,到底有什么实际意义呢?简单的说,MAC地址相当于你的网络标识,在局域网里,管理人员常
常将网络端口与客户机的MAC地址绑定,方便管理,万一你的网卡坏掉了,换一张网卡必须向管理人员申请更改绑定的
MAC
地址,比较麻烦。如果这时我们又急于使用MAC以便上网。这时候,我们直接在操作系统里更改一下MAC,就可以
跳过重新申请这一步,减少了很多麻烦。
另外,当你使用黑客软件对别人的机器进行攻击时,别人的防火墙获取到你的IP地址,就可以通过“Nbtstat -A ip地址
命令获取你的MAC,如果你改一下,呵呵,查到的MAC就不是你的了。(可别说我教你学坏啊!)
四:如何修改自己的Mac地址
Mac
地址是保存在网卡的EPROM里面,通过网卡生产厂家提供的修改程序可以更改存储器里的地址,即使网卡没有这样
的设置我们也可以通过间接的方法修改,一般网卡发出的包的源Mac地址并不是网卡本身写上去的,而是应用程序提供
的,只是在通常的实现中,应用程序先从网卡上得到Mac地址,每次发送的时候都用这个Mac做为源Mac而已,Windows
中,网卡的Mac保存在注册表中,实际使用也是从注册表中提取的,所以只要修改注册表就可以简单的改变Mac
Win9x
中修改:
打开注册表编辑器,在HKEY_LOCAL_MacHINE/SYSTEM/CurrentControlSet/Service/Class/Net/下的000000010002 
Win2000/XP
中的修改:同样打开注册表编辑器,HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/ 
ClassD36E970-E325-11CE-BFC1-08002BE10318
中的0000,0001,0002中的DriverDesc,如果在0000找到,就在0000下面
添加字符串变量,命名为 NetworkAddress,值为要设置的Mac地址,例如:000102030405。完成上述操作后重启就好
了。
Linux
下的修改:
必须关闭网卡设备,否则会报告系统忙,无法更改。
命令是:/sbin/ifconfig eth0 down.修改Mac地址,这一步较Windows中的修改要简单。命令是:/sbin/ifconfig eth0 hw 
ether 00 AA
BB CC DD EE;重新启用网卡,/sbin/ifconfig eth0 up网卡的Mac地址更改就完成了。
如果你要经常改换地址的话在注册表里改来改去的方法就实在是太繁琐了。不用担心,用下面的方法可以使你的修改更
方便,更简单。
现以Windows 2000/XP为例来简要说明一下:第一步,单击开始运行输入“Regedit”,打开注册表编辑
器,按Ctrl+F打开查找窗,输入“DriverDesc”单击确定。
双击找到的内容,即为你要修改的网卡的信息描述,左边数形列表显示当前主键(比如0000)。第二步,在相应的0000
新建一串值,命名为 NetworkAddress,键值设为你要的MAC地址,注意要连续写,如112233445566。第三步,重新启
动计算机,你就会发现网卡MAC地址已经改变为你所设置的地址。第四步,在相应的0000下的Ndi/Params中加一项,主
键名为NetworkAddress,然后在该主键下添加名为default的串值,其值设为你要设的MAC地址,同样也要连续地写。第
五步,在NetworkAddress主键下继续添加名为ParamDesc 的字符串,其值可设为“MAC Address”
全部设置完成了,关闭注册表,重新启动计算机,打开网络邻居的属性,选择相应的网卡,单击属性选择
选项卡,属性中会多出MAC Address的选项,也就是在上面第二步在注册表中添加的NetworkAddress项,以后只要在
此处的设置值中修改MAC地址就可以了。
五:如何捆绑MAC地址和IP地址 
进入“MS-DOS方式命令提示符,在命令提示符下输入命令:ARP - s 10.88.56.72 00-10-5C-AD-72-E3,即可把
MAC
地址和IP地址捆绑在一起。
对于自行修改MAC地址入网,网管员还是有办法侦测出来的。因此,换网卡后别忘记跟网管打个招呼,重新绑定啊。


以上文字是我从网上摘抄的,下面我想补充一些我对MAC地址的理解:
MAC
就是Media Access Control,直接位于物理层之上
一个电子信号进行解码之后转化为01的二进制信号后,直接由硬件判断MAC地址的目标地址是否与自己的相符,如果相符就接受下来,如果不符则忽略。继而把IP层的数据像操作系统的上层传递。
同样,在HUB中,可以认为所有的机器是连接在一条总线上的,同一个物理信号势必要覆盖整条总线,那么只有MAC地址相符的机器才会接受信号。打个比方,就好比听收音机广播,信号都覆盖在我们周围,那么MAC地址就好比频率,不同的MAC地址可以接收到不同的信道,而忽略其他信道的信号。
那么一些嗅探软件,譬如Ethereal是不是如果接收到网络上其他的数据包呢?
这个问题我会进一步研究。

 

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭