MAC地址和IP地址的区别与联系(计算机网络篇)

最近参加一个考试,总是遇到mac地址的相关问题,于是在网上做一个知识整理,记得这些知识还是大二的时候学的,已经基本还回给黄沛杰老师了,不过很感谢他耐心又负责地教导我们计算机组成原理的知识,起码还是记得他曾经给我们带来很多美好的大学记忆。

MAC地址和IP地址的区别与联系

简单地说:ip地址是服务商给你的,mac地址是你的网卡物理地址。

  一、IP地址

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

  二、MAC地址

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

  三、MAC地址的长度、表示方法、分配方法及其唯一性

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

  四、IP地址与MAC地址在互连网中的作用

  既然每个以太网设备在出厂时都有一个唯一的MAC地址了,那为什么还需要为每台主机再分配一个IP地址呢?或者说为什么每台主机都分配唯一的IP地址了,为什么还要在网络设备(如网卡,集线器,路由器等)生产时内嵌一个唯一的MAC地址呢?主要原因有以下几点:(1)IP地址的分配是根据网络的拓朴结构,而不是根据谁制造了网络设置。若将高效的路由选择方案建立在设备制造商的基础上而不是网络所处的拓朴位置基础上,这种方案是不可行的。(2)当存在一个附加层的地址寻址时,设备更易于移动和维修。例如,如果一个以太网卡坏了,可以被更换,而无须取得一个新的IP地址。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。(3)无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARP(Address Resolution Protocol:地址解析协议)负责将IP地址映射到MAC地址上来完成的。下面我们来通过一个例子看看IP地址和MAC地址是怎样结合来传送数据包的。

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

  综合上面所述,我们可以归纳出IP地址和MAC地址相同点是它们都唯一,不同的特点主要有:

  1. 对于网络上的某一设备,如一台计算机或一台路由器,其IP地址可变(但必须唯一),而MAC地址不可变。我们可以根据需要给一台主机指定任意的IP地址,如我们可以给局域网上的某台计算机分配IP地址为192.168.0.112 ,也可以将它改成192.168.0.200。而任一网络设备(如网卡,路由器)一旦生产出来以后,其MAC地址永远唯一且不能由用户改变。

  2. 长度不同。IP地址为32位,MAC地址为48位。

  3. 分配依据不同。IP地址的分配是基于网络拓朴,MAC地址的分配是基于制造商。

  4. 寻址协议层不同。IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)。

mac地址和ip地址有什么区别

IP地址是指Internet协议使用的地址,而MAC地址是Ethernet协议使用的地址。IP地址与MAC地址之间并没有什么必然的联系,MAC地址是Ethernet网卡上带的地址,长度为48位。
每个Ethernet网卡生产厂家必须向IEEE组织申请一组MAC地址,在生产网卡时在网卡的串行EEPROM中写入一个唯一的MAC地址。任何两个Ethernet网卡的MAC地址,不管是哪一个厂家生产的都不应相同。Ethernet芯片厂家不必负责MAC地址的申请,MAC地址存在于每一个Ethernet包中,是Ethernet包头的组成部分,Ethernet交换机根据Ethernet包头中的MAC源地址和MAC目的地址实现包的交换和传递。

IP地址是Internet协议地址,每个Internet包必须带有IP地址,每个Internet服务提供商(ISP)必须向有关组织申请一组IP地址,然后一般是动态分配给其用户。IP地址现是32位长,正在扩充到128位。IP地址与MAC地址无关,因为Ethernet的用户,仍然可通过Modem连接Internet,取得一个动态的IP地址,这个地址每次可以不一致。IP地址通常工作于广域网,路由器处理的就是IP地址。 MAC地址工作于局域网,局域网之间的互连一般通过现有的公用网或专用线路,需要进行网间协议转换。可以在Ethernet上传送IP信息,此时IP地址只是Ethernet信息包数据域的一部分,Ethernet交换机或处理器看不见IP地址,只是将其作为普通数据处理。
时间: 2024-11-12 08:55:21

MAC地址和IP地址的区别与联系(计算机网络篇)的相关文章

iphone开发之获取网卡的MAC地址和IP地址

本文转载至 http://blog.csdn.net/arthurchenjs/article/details/6358489 这是获取网卡的硬件地址的代码,如果无法编译通过,记得把下面的这几个头文件加上把. #include <sys/socket.h> // Per msqr#include <sys/sysctl.h>#include <net/if.h>#include <net/if_dl.h> #pragma mark MAC addy// Re

mac地址和ip地址要同时存在么?

刚再整理笔记的时候,突然想到了一个问题,网络中为什么要同时存在mac地址和ip地址呢?那现在就来随便扯扯吧. 这个问题其实是可以分成两个问题的:Q1:如果只有mac地址,没有ip地址可以么? 众所周知,根据mac可以唯一确定一个主机,那么按照这个的逻辑,mac就相当于人们的身份证号,是可以唯一标识的.那为什么还有有ip呢?我觉得可能是这样的. 1.mac地址是不分层次的,如果网络过于庞大的话,不分层次的管理是不切实际且十分繁琐的.(这个是管理层面的,类似于手机号于人的关系) 2.只有mac地址的

网络-数据包在路由转发过程中MAC地址和IP地址,变与不变

关于MAC地址和IP地址在传输过程中变与不变的问题: 结论:MAC地址在同一个广播域传输过程中是不变的,在跨越广播域的时候会发生改变的:而IP地址在传输过程中是不会改变的(除NAT的时候),总结为 路由转发MAC不变,IP变. 我们知道的几个概念: 首先我们要知道,MAC地址是用于同意物理或逻辑第2层网络上的设备间进行通信的: 而第三层地址(IP地址)是可以在多个网络设备之间通信的. 下面我们来分析一下: MAC地址是在同一个广播域有效的,那么去了另外一个广播域(网段)MAC地址肯定要改变的:

MAC地址和IP地址的关系

MAC地址和IP地址的关系 简单地说:ip地址是服务商给你的,mac地址是你的网卡物理地址. 一.IP地址 对于IP地址,相信大家都很熟悉,即指使用TCP/IP协议指定给主机的32位地址.IP地址由用点分隔开的4个8八位组构成,如192.168.0.1就是一个IP地址,这种写法叫点分十进制格式.IP地址由网络地址和主机地址两部分组成,分配给这两部分的位数随地址类(A类.B类.C类等)的不同而不同.网络地址用于路由选择,而主机地址用于在网络或子网内部寻找一个单独的主机.一个IP地址使得将来自源地址

mac地址和ip地址、子网掩码和默认网关

MAC地址 MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控制,或称为物理地址.硬件地址,用来定义网络设备的位置.在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC地址.因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址.[1] MAC地址是网卡决定的,是固定的. ip是虚拟地址 mac是网卡地址全世界只有一种没重复的 一.IP地址 对于IP地址,相信大家都很熟悉,即指使用TCP/

网络编程学习笔记-MAC地址和IP地址的关系

简单地说:ip地址是服务商给你的,mac地址是你的网卡物理地址. 一.IP地址 对于IP地址,相信大家都很熟悉,即指使用TCP/IP协议指定给主机的32位地址.IP地址由用点分隔开的4个8八位组构成,如192.168.0.1就是一个IP地址,这种写法叫点分十进制格式.IP地址由网络地址和主机地址两部分组成,分配给这两部分的位数随地址类(A类.B类.C类等)的不同而不同.网络地址用于路由选择,而主机地址用于在网络或子网内部寻找一个单独的主机.一个IP地址使得将来自源地址的数据通过路由而传送到目的地

js获取本机mac地址,IP地址,计算机名

<!DOCTYPE HTML> <html> <head> <title>js获取本机mac地址,IP地址,计算机名</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta content="MSHTML 6.00.2800.1106" name="

c#中如何获取本机用户名、MAC地址、IP地址、硬盘ID、CPU序列号、系统名称、物理内存

我们在利用C#开发桌面程序(Winform)程序的时候, 经常需要获取一些跟系统相关的信息, 以下这些代码获取能有些用处. c#中如何获取本机用户名.MAC地址.IP地址.硬盘ID.CPU序列号.系统名称.物理内存. 首先需要引入命名空间: using System.Management; /// 操作系统的登录用户名: string GetUserName() { try { string st = ""; ManagementClass mc = new ManagementCla

mac地址、IP地址和端口号

看了很多遍,才整理出来我对整个通信过程的理解,大致如下,后期会不断学习补充更正: 在利用TCP/IP协议族进行通信的时候,有三个比较关键的确认身份的信息:mac地址.IP地址和端口号. mac地址是在数据链路层包裹在以太网头部中的,它主要用来识别同一个链路中的不同计算机.Mac地址即网卡号,每块网卡出厂的时候,都有一个全世界独一无二的 MAC 地址,长度是 48 个二进制位,通常用 12 个十六进制数表示. IP地址是在网络层的IP头部里,用于识别网络中互联的主机和路由器,其实主要是确认子网,通