MAC地址和IP地址的区别


介绍一下 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 位由厂商自行分配,这样的分配使得世界上任意一个拥有 48 MAC  地址的网卡都有唯一的标识。另外, 2 字节的 MAC 地址不用网卡厂商申请。

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

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

IP 地址基于逻辑,比较灵活,不受硬件限制,也容易记忆。 MAC 地址在一定程度上与硬件一致,基于物理,能够标识具体。这两种地址各有好处,使用时也因条件而采取不同的地址。

四、为什么要用到 MAC 地址

这是由组网方式决定的,如今比较流行的接入 Internet 的方式(也是未来发展的方向)是把主机通过局域网组织在一起,然后再通过交换机和  Internet 相连接。这样一来就出现了如何区分具体用户,防止盗用的问题。由于 IP 只是逻辑上标识,任何人都随意修改,因此不能用来标识用户;而  MAC 地址则不然,它是固化在网卡里面的。从理论上讲,除非盗来硬件(网卡),否则是没有办法冒名顶替的(注意:其实也可以盗用,后面将介绍)。

基于 MAC 地址的这种特点,局域网采用了用 MAC 地址来标识具体用户的方法。注意:具体实现:在交换机内部通过 的方式把 MAC 地址和 IP 地址一一对应,也就是所说的 IP MAC 绑定。

具体的通信方式:接收过程,当有发给本地局域网内一台主机的数据包时,交换机接收下来,然后把数据包中的 IP 地址按照 中的对应关系映射成 MAC 地址,转发到对应的 MAC 地址的主机上,这样一来,即使某台主机盗用了这个 IP 地址,但由于他没有这个 MAC 地址,因此也不会收到数据包。发送过程和接收过程类似,限于篇幅不叙述。

综上可知,只有 IP 而没有对应的 MAC 地址在这种局域网内是不能上网的,于是解决了 IP 盗用问题。

五、怎样获得自己的 MAC 地址

MAC 地址固化在网卡中的 BIOS 中,可以通过 DOS 命令取得。 Win9x 用户可以使用 winipcfg 命令, Win2k/XP 用户可以使用 ipconfig/all 命令,其中用 16 进制表示的 12 位数就是 MAC 地址。

六、 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 原理:郴 鰽要向主机 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 地址

MAC 地址是固化在网卡中的, MAC 地址具有唯一性,难道没有办法更改了么?不是的,我们完全不用修改 EPROM 的内容,而只通过修改存储单元的内容

你可能感兴趣的:(杂文)