已解决问题
计算机间的通信为什么要用到MAC地址?  (进入论坛模式)
提问者:lqc0815   |  提问时间:2009-5-13 15:58
最近遇到一个想不明白的问题:计算机间的通信为什么要用到MAC地址?
显示所有答案回应     最佳答案
回答MAC
一般MAC地址在网卡中是固定的,当然也有网络高手会想办法去修改自己的MAC地址。修改自己的MAC地址有两种方法,一种是硬件修改,另外一种是软件修改。
硬件的方法就是直接对网卡进行操作,修改保存在网卡的EPROM里面的MAC地址,通过网卡生产厂家提供的修改程序可以更改存储器里的地址。那么什么叫做 EPROM呢?EPROM是电子学中一种存储器的专业术语,它是可擦写的,也就是说一张白纸你用钢笔写了一遍以后就不能再用橡皮擦去了,而EPROM这张白纸用铅笔写后可以再擦去,可以反复改变其中数据的存储器。
当然软件修改的方法就相对来说要简单得多了,在Windows中,网卡的MAC保存在注册表中,实际使用也是从注册表中提取的,所以只要修改注册表就可以改变MAC。Windows 9x中修改:打开注册表编辑器,在HKEY_LOCAL_MACHINESYSTEMCurrentControlSet
ServiceClassNet下的0000,0001,0002。

MAC用于计算机通信
因为计算机要互相通信才出现的,而计算机通信的出口是什么呢?就是网卡,MAC是唯一标示网卡的编号,全世界的每一块网卡有自己的唯一MAC编号。这样人们就想,为什么不使用类似网卡的mac编号,来标识计算机呢,出于这思想的影响,于是MAC地址就出现了,它的表现形式与网卡的MAC非常类似,网卡的 MAC可以直接作为MAC的通信地址出现。很方便,哈哈
 |  回应该答案 (1)  |  回答时间:2011-1-3 13:28
其他答案 ( 20 条 )
人为什么要有姓名
 |  回应该答案 (0)  |  回答者:杨子鹅   |  2009-5-13 16:10
:lol 更像身份证号码,如果不是人为更改的话,就是世界唯一的标识了。而通信过程中所使用的IP地址或计算机名称,则像人的姓名,不同网络中IP地址(计算机名)也可以重复使用。
 |  回应该答案 (0)  |  回答者:飞天剑   |  2009-5-13 17:00
回复 1# 的帖子
MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的。MAC地址的长度为48位(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00:20代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。只要你不去更改自己的MAC地址,那么你的MAC地址在世界是惟一的。

MAC地址的作用

IP地址就如同一个职位,而MAC地址则好像是去应聘这个职位的人才,职位可以既可以让甲坐,也可以让乙坐,同样的道理一个节点的IP地址对于网卡是不做要求,基本上什么样的厂家都可以用,也就是说IP地址与MAC地址并不存在着绑定关系。本身有的计算机流动性就比较强,正如同人才可以给不同的单位干活的道理一样的,人才的流动性是比较强的。职位和人才的对应关系就有点像是IP地址与MAC地址的对应关系。比如,如果一个网卡坏了,可以被更换,而无须取得一个新的IP地址。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。当然MAC地址除了仅仅只有这个功能还是不够的,就拿人类社会与网络进行类比,通过类比,我们就可以发现其中的类似之处,更好地理解MAC地址的作用。

无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARP(Address Resolution Protocol:地址解析协议)负责将IP地址映射到MAC地址上来完成的。其实人类社会和网络也是类似的,试想在人际关系网络中,甲要捎个口信给丁,就会通过乙和丙中转一下,最后由丙 转告给丁。在网络中,这个口信就好比是一个网络中的一个数据包。数据包在传送过程中会不断询问相邻节点的MAC地址,这个过程就好比是人类社会的口信传送过程。相信通过这两个例子,我们就可以进一步理解MAC地址的作用。

与MAC地址相关的命令与软件

在人类社会社交中,我们认识一个人往往只会知道他的姓名,而身份证号码在一般的人际交往中会被忽略。同样在网络中,我们往往只会知道同事或者网友的IP地址,并不会去过多地关心对方的MAC地址。要成长为网络高手,我们可以使用一些方法去了解对方的MAC地址。在这里介绍两种常用的方法,在Windows 9x 中可用WinIPcfg获得,在Windows 2000/XP中可用IPconfig -all获得。

使用命令只能单条获得MAC地址,而且使用起来也是很麻烦的。对于网管人员,更希望有一款简单化操作的软件,我们可以利用“MAC扫描器”远程批量获取MAC地址。它是用于批量获取远程计算机网卡物理地址的一款网络管理软件。该软件运行于网络(局域网、Internet都可以)内的一台机器上,即可监控整个网络的连接情况,实时检测各用户的IP、MAC、主机名、用户名等并记录以供查询,可以由用户自己加以备注;能进行跨网段扫描,能和数据库中得IP和MAC地址进行比较,有修改IP的或使用虚假MAC地址的,都能报警。

更改MAC地址

一般MAC地址在网卡中是固定的,当然也有网络高手会想办法去修改自己的MAC地址。修改自己的MAC地址有两种方法,一种是硬件修改,另外一种是软件修改。
硬件的方法就是直接对网卡进行操作,修改保存在网卡的EPROM里面的MAC地址,通过网卡生产厂家提供的修改程序可以更改存储器里的地址。那么什么叫做EPROM呢?EPROM是电子学中一种存储器的专业术语,它是可擦写的,也就是说一张白纸你用钢笔写了一遍以后就不能再用橡皮擦去了,而EPROM这张白纸用铅笔写后可以再擦去,可以反复改变其中数据的存储器。
当然软件修改的方法就相对来说要简单得多了,在Windows中,网卡的MAC保存在注册表中,实际使用也是从注册表中提取的,所以只要修改注册表就可以改变MAC。Windows 9x中修改:打开注册表编辑器,在HKEY_LOCAL_MACHINESYSTEMCurrentControlSet
ServiceClassNet下的0000,0001,0002。

Windows 2000/XP中的修改:同样打开注册表编辑器,HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl
Class4D36E970-E325-11CE-BFC1-08002BE10318 中的0000,0001,0002中的DriverDesc,如果在0000找到,就在0000下面添加字符串变量,命名为“NetworkAddress”,值为要设置的MAC地址,例如:000102030405

完成上述操作后重启就好了。一般网卡发出的包的源MAC地址并不是网卡本身写上去的,而是应用程序提供的,只是在通常的实现中,应用程序先从网卡上得到MAC地址,每次发送的时候都用这个MAC作为源MAC而已,而注册表中的MAC地址是在Windows安装的时候从网卡中读入的,只要你的操作系统不重新安装应该问题不大。

MAC地址的应用

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

MAC地址涉及到的安全问题

从上面的介绍可以知道,这种标识方式只是MAC地址基于的,如果有人能够更改MAC地址,就可以盗用IP免费上网了,目前网上针对小区宽带的盗用MAC地址免费上网方式就是基于此这种思路。如果想盗用别人的IP地址,除了IP地址还要知道对应的MAC地址。举个例子,获得局域网内某台主机的MAC地址,比如想得到局域网内名为TARGET主机的MAC地址,先用PING命令:PING TARGET,这样在我们主机上面的ARP表的缓存中就会留下目标地址和MAC映射的记录,然后通过ARP A命令来查询ARP表,这样就得到了指定主机的MAC地址。最后用ARP -s IP 网卡MAC地址,命令把网关的IP地址和它的MAC地址映射起来就可以了。

如果要得到其它网段内的MAC地址,那么可以用工具软件来实现,我觉得Windows优化大师中自带的工具不错,点击“系统性能优化”→“系统安全优化”→“附加工具”→“集群Ping”,可以成批的扫出MAC地址并可以保存到文件。

小知识:ARP(Address Resolution Protocol)是地址解析协议,ARP是一种将IP地址转化成物理地址的协议。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。ARP协议是通过IP地址来获得MAC地址的。

ARP原理:某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后就会进行数据传输。如果未找到,则广播A一个ARP请求报文(携带主机A的IP地址Ia——物理地址Pa),请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机包括B都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。ARP表:为了回忆通信的速度,最近常用的MAC地址与IP的转换不用依靠交换机来进行,而是在本机上建立一个用来记录常用主机IP-MAC映射表,即ARP表。

如何解决MAC地址带来的安全问题

我们可以将IP地址和MAC地址捆绑起来来解决这个问题。进入“MS-DOS方式”或“命令提示符”,在命令提示符下输入命令:ARP -s 10.88.56.72 00-10-5C-AD-72-E3,即可把MAC地址和IP地址捆绑在一起。这样,就不会出现IP地址被盗用而不能正常使用网络的情况,可以有效保证小区网络的安全和用户的应用。

注意:ARP命令仅对局域网的上网代理服务器有用,而且是针对静态IP地址,如果采用Modem拨号上网或是动态IP地址就不起作用。

不过,只是简单地绑定IP和MAC地址是不能完全的解决IP盗用问题的。作为一个网络供应商,他们有责任为用户解决好这些问题之的后,才交给用户使用,而不是把安全问题交给用户来解决。不应该让用户来承担一些不必要盗用的损失。

作为网络供应商,最常用也是最有效的解决方法就是在IP、MAC绑定的基础上,再把端口绑定进去,即IP-MAC-PORT三者绑定在一起,端口(PORT)指的是交换机的端口。这就需要在布线时候做好端口定时管理工作。在布线时应该把用户墙上的接线盒和交换机的端口一一对应,并做好登记工作,然后把用户交上来的MAC地址填入对应的交换机端口,进而再和IP一起绑定,达到IP-MAC-PORT的三者绑定。这样一来,即使盗用者拥有这个IP对应的MAC地址,但是它不可能同样拥有墙上的端口,因此,从物理通道上隔离了盗用者。
 |  回应该答案 (0)  |  回答者:peak1   |  2009-5-13 17:50

同意:victory:
 |  回应该答案 (0)  |  回答者:gaoerbao   |  2009-5-13 19:05
:) 谢谢各位热心的回贴,呵呵
 |  回应该答案 (0)  |  回答者:lqc0815   |  2009-5-13 22:26
同意:handshake :handshake
 |  回应该答案 (0)  |  回答者:linlong0575   |  2009-5-14 21:59


好像不是这样的。

1.物理地址并不是世界唯一的,认为是唯一的这个概念是从网卡上套出来的。但是网卡并不是唯一的一种物理地址,比如大型机就不使用网卡的。关键是物理地址的格式在各种设备中并不相同,所以必须有一个统一的格式,这就是IP地址的由来。

2.IP地址是全世界唯一的,不能重复使用,我这里说的是公网地址。飞天剑的理解不够准确,可以重复使用的是私网地址,由于使用的是保留地址,当然可以在不同的网络中重复使用,但是对互联网来说,重要的是公网,所以说IP地址是全世界唯一的。

3.IP地址不能进行通信,要进行通信的设备必须要有MAC地址,所以必须进行IP——MAC地址的转换。
 |  回应该答案 (0)  |  回答者:shenhqi   |  2009-5-15 10:10
IP只能让你找到对方所在的网络,MAC才能找到特定的机器
 |  回应该答案 (0)  |  回答者:codeseg   |  2009-5-15 10:14


对于大灰熊版主的第2个观点我不太赞同,楼主的问题是计算机间的通信,并没有说明是互联网。而对于TCP/IP协议来说,互联网只能是一个网络,在同一个网络内IP地址是唯一的,但不同的网络可以自由分配了,比如大型企业的办公网络。

[[i] 本帖最后由 飞天剑 于 2009-5-15 10:26 编辑 [/i]]
 |  回应该答案 (0)  |  回答者:飞天剑   |  2009-5-15 10:24


顺便请教一下,大型机不使用网卡用什么通信的?网卡也就是网络接口卡吧,一般要跟网络通信,都应该有的,只是所使用的传输媒介和组网方式不同罢了。
 |  回应该答案 (0)  |  回答者:飞天剑   |  2009-5-15 10:30
首先,网络的概念是因为计算机要互相通信才出现的,而计算机通信的出口是什么呢?就是网卡,MAC是唯一标示网卡的编号,全世界的每一块网卡有自己的唯一MAC编号。这样人们就想,为什么不使用类似网卡的mac编号,来标识计算机呢,出于这思想的影响,于是MAC地址就出现了,它的表现形式与网卡的MAC非常类似,网卡的MAC可以直接作为MAC的通信地址出现。很方便,哈哈
 |  回应该答案 (0)  |  回答者:tly_0309   |  2009-5-15 10:44
回复飞天剑
1.大型计算机使用的设备叫通信前置处理机,其MAC地址是可以自行设置的。

2.大型企业的办公网,如果IP地址可以重复使用,必然是保留地址,也就是私网地址。请详细了解一下互联网与自治系统的关系,以及公网和私网的差别。
 |  回应该答案 (0)  |  回答者:shenhqi   |  2009-5-15 10:48


1、普通电脑的MAC地址也可以自行设置。
2、我了解的移动、电信的IP地址都是135等开头的,也许这只是甘肃省用的吧。但135开头的好像不是保留地址。
 |  回应该答案 (0)  |  回答者:飞天剑   |  2009-5-15 10:53


如果你说的大型企业网用了135开头的IP地址,那一般来说是公网地址(除非这个企业成心不使用保留地址作私网地址,那样做会有很多意想不到的后果)。这个地址绝对是全世界唯一的不可能重复使用。
 |  回应该答案 (0)  |  回答者:shenhqi   |  2009-5-15 10:58
弱弱的说一下;好像有点跑题了吧
 |  回应该答案 (0)  |  回答者:我是冷山   |  2009-5-15 11:00
讨论的还挺激烈
 |  回应该答案 (0)  |  回答者:liuwm   |  2009-5-15 11:04
通过大家的讨论,我更深刻的理解了MAC
 |  回应该答案 (0)  |  回答者:网优小草   |  2009-5-15 11:52
:lol 的确跑题了,以后会注意哦!
 |  回应该答案 (0)  |  回答者:飞天剑   |  2009-5-15 18:14
这个是协议决定的吧,路由寻址,目的MAC地址+下一跳IP地址;
因为互联网有公网和内网概念,内网IP地址在公网路由时不显示,只显示MAC地址;
简单说,单位内网某台机器要访问外网,为安全其内网IP地址别人是看不到的,只能看到单位统一的公网IP+这台机器的MAC地址,这样即保证了安全性还方便通信。

另:普通网卡的MAC地址可改;
 |  回应该答案 (0)  |  回答者:limefish   |  2009-5-16 06:41
真理越辩越明啊 不错学习受教了!!
 |  回应该答案 (0)  |  回答者:jiasenzl   |  2011-1-12 10:19
热点问题