一、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地址,通过中间节点传送,从而最终到达目的网络)。

转载于:https://www.cnblogs.com/Akagi201/archive/2012/03/26/2418484.html

解析IP地址与MAC地址相关推荐

  1. IP地址和MAC地址, 路由器, 交换机和集线器

    1. 什么是 IP 地址 IP 地址: 就是给因特网上的每台计算机和其他设备规定的一种地址, 它是一种虚拟地址. 正是因为有了 IP 地址, 才保证了用户在联网的计算机上操作时, 能够高效且方便的从千 ...

  2. cisco 交换机 获取 转发表_思科交换机端口号、终端IP地址和MAC地址的互查

    很多时候,在排查和定位网络故障或者梳理网络架构情况时,你可以直接获取的信息有限,比如你只知道用户的IP或MAC而不知道它连到了交换机哪个端口,或者你知道故障点在交换机某个端口上,但不知道这个端口连到了 ...

  3. Python # 扫描端口功能 # 获取网卡的Mac地址 # 局域网扫描器IP地址和MAC地址,获取网卡名称和其ip地址

    #!/usr/bin/env python # -*- coding: utf-8 -*- # 开发人员: # time: 2021-09-07 20:37 # 开发工具: PyCharm # Ver ...

  4. 网络基础——IP地址子网掩码MAC地址DNS(详解)

     目录 一.DNS和IP地址关系: 二.IP地址和MAC地址的区别: 三.IP地址 (internet protocol Address) (1)概念及特点: (2)网络设备获取IP地址的方式 (3) ...

  5. java获取IP地址和MAC地址方式

    java获取IP地址和MAC地址方式 前端和后台都可以获取 ip获取方式比较简单,就不做分析了,主要说mac的获取 前端获取的方式与局限性:尝试好几种方式,这种是最易实现.最简单的方式,确实能获取该浏 ...

  6. 获取当前局域网下所有连接设备的ip地址和mac地址

    大家好,我是小小明. 今天我们使用python调用几个网络操作相关的命令,并基于此做出些小玩具. 学习计划: 通过ipconfig /all 命令获取局域网所在的网段 通过arp -d *命令清空当前 ...

  7. IP地址,MAC地址与域名地址

    在互联网中有着数以万计的计算机,比如说计算机A打算给计算机B发一份邮件,那么A怎么才能在这堆计算机中找到B呢? 标识网络中的一台计算机,最常用的方法是域名地址.IP地址和MAC地址 IP地址 先说说网 ...

  8. 域名解析过程以及IP地址和MAC地址

    其实之前在准备腾讯的面试的时候有看过这样的问题,但是昨天室友突然问的时候又一时想不起来每个过程(有点尴尬),其实这也反映出了我计算机网络很不扎实.今天趁着有时间总结一下: 浏览器通过域名(例如:www ...

  9. python获取本机 ip地址、mac地址(物理地址)、计算机名、硬盘序列号、CPU序列号、主板序列号、bios序列号、bios uuid号

    文章目录 python获取本机IP地址.mac地址(物理地址).计算机名 物理地址 计算机名.ip地址 硬盘序列号 CPU序列号 主板序列号 bios序列号 bios uuid号 python获取本机 ...

最新文章

  1. Annual Review:人与微生物组
  2. 无法创建t的通用数组_创建通用数组的问题
  3. Max retries exceeded with url
  4. Java:选择排序法
  5. IDEA创建Scala
  6. 面试项目亮点_程序员面试时这样介绍自己的项目经验,等于成功了一大半
  7. cvpr2020 人脸检测与识别_CVPR2020 论文分类下载 「人脸识别+目标检测」
  8. 【CCCC】L3-012 水果忍者 (30分),,枚举斜率
  9. 很简单的源码剖析-SpringBoot内嵌Tomcat原理
  10. JavaWeb框架学习文章索引
  11. ofdm导频信道估计matlab,OFDM导频信道估计
  12. 【CMake】CMakeList编写整理
  13. A Game of Thrones(58)
  14. java log 断点_断点续传JAVA实现
  15. 辰皇怎么过鸿蒙,最新版 鸿蒙副本快速通关和爆神符攻略
  16. Can‘t get JDBC type for struct<date:int,day:int,hours:int,minutes:int,month:int,seconds:int,time:big
  17. 不等式解集怎么取_不等式的解集怎么求
  18. win7下安装ps出现错误码16解决办法
  19. 初步认识数据库:数据、数据库、数据库管理系统、数据库系统分别是什么?
  20. python(八)装饰器

热门文章

  1. [react] 组件卸载前,加在DOM元素的监听事件和定时器要不要手动清除?为什么?
  2. 前端学习(3251):dom的diff算法2
  3. 前端学习(3018):vue+element今日头条管理--反馈
  4. 前端学习(1747):前端调试值之console用处
  5. 前端学习(1580):初始react
  6. 前端学习(1300)报错:无法加载文件 D:\nodejs\node_global\webpack.ps1,因为在此系统上禁止运行脚本...
  7. html+css+js+jquery之常见的的本地存储实现一个简单的todoList项目
  8. java编程思想学习(2):对象
  9. 第九期: 阿里巴巴程序员常用的15款开发者工具
  10. html:(34):下划线和删除线