以下内容节选自Quora,回答者Pankaj Kedia

问题

既然每个设备的MAC地址是唯一的,那为什么我们还需要引入IP来唯一地标识网络中的一个系统呢?

回答者的答案

让我用类比的方法来简单地回答这个问题:

假设你的名字‘A’,显然世界上其他人可能和你重名,所以这不能唯一地辨识你的身份。现在我们把你父亲的名字也加上(假设你父亲的名字是B),那么可以用B-A来标识你。但显然,这也未必能唯一地标识你的身份。

但是,我们再加上你爷爷的名字、你爷爷的父亲的名字——‘A’, ‘B.A’, ‘C.B.A’, ‘D.C.B.A’, ‘E.D.C.B.A’, ‘F.E.D.C.B.A’…可以想象,只要这条链足够长,就可以唯一得标识你的身份了。

而上面讲的这条名字链就像是MAC地址,一个设备的MAC地址是不会变的,就好像一个人的族谱是不会变的。

现在你能唯一地标识你的身份了。现在假设一个人寄一个快递(就好像在计算机网络中发送一个分组),TA可以把收件人的名字(包括族谱上父亲、爷爷的名字)写在快递上。这种方式也许有效。但是想一下,邮局看到这样没有地址的包裹它会怎么分发?邮局也许需要寻找世界上每一个人看看谁是收件人。类似于邮局,计算机网络中的路由器也要承受相似的问题: 它的转发表需要非常大,以包含世界上每一个MAC。

所以,类似于寄快递需要写地址,计算机网络中的分组也需要IP地址。

PS: MAC地址确实有可能更改,就好像有些人的族谱和姓名也是可以更改的,不过这不是时常发生的。

问题记录:既然MAC能唯一标识一台设备,那为什么我们还需要IP呢?相关推荐

  1. 唯一标识一台计算机解决方法:

    首先,网上介绍最多的方法就是cpu,baseboard等硬件设备的序列号. 但是,这两种获取方法都有问题: wmic cpu get processorid获取的cpu序列号,其实只是某个系列的代号, ...

  2. [Android][获取Android设备唯一标识]

    1.落笔缘由 最近需要获取能够标志Android设备的唯一标识,但是由于Android系统版本不同或者root等诸多原因,造成有些设备标识为NULL或者标识相同的问题,在网上搜索了相关资料,总结一下各 ...

  3. Android设备唯一标识(终极方案!)

    Android设备唯一标识 背景 Android系统中并没有可靠获取所有厂商设备唯一ID的方法,各个方法都有自己的使用范围和局限性,这也是目前流行的Android系统版本过多,设备也是来自不同厂商,且 ...

  4. Android获取手机IMEI,IMSI, MAC标识和唯一标识的生成

    急的直接看这个: android 获取设备IMEI与序列号: ​ //IMEI(imei) TelephonyManager tm = (TelephonyManager) ChinaApplicat ...

  5. Vue中使用uuidv1根据时间戳和MAC地址生成唯一标识

    场景 若依前后端分离版手把手教你本地搭建环境并运行项目: 若依前后端分离版手把手教你本地搭建环境并运行项目_霸道流氓气质的博客-CSDN博客_若依前后端分离搭建 在上面搭建起来Vue项目的基础上,怎样 ...

  6. 磁盘分区形式:主启动记录(MBR)和全局唯一标识分区表(GPT)

    过年放假回家到朋友家玩耍,在与朋友交谈的时候提到了计算机,于是朋友便让我帮他重新安装系统.他电脑的系统我清楚,是WIN8的,之前就是我帮他安装了,不过用着WIN8一直不是很顺手,因此让我换成WIN7的 ...

  7. 设要为某工厂设计一个数据库,需要记录如下信息(有下划线的信息可作为唯一标识): •产品有产品名、规格; •每种产品拥有多道加工工序,每道加工工序只适用于一种产品; •每道工序需要记录相关的工序编

    题目要求 设要为某工厂设计一个数据库,需要记录如下信息(有下划线的信息可作为唯一标识): 产品有产品名.规格: 每种产品拥有多道加工工序,每道加工工序只适用于一种产品: 每道工序需要记录相关的工序编号 ...

  8. 如何生成全局唯一标识

    引出 大家都用过QQ或者微信吧, 当我们注册的时候, 会被自动分配一个QQ号, 这个号码是全局唯一且固定的, 那么, 如果是你来写的话, 如何为新注册的用户分配一个号码呢? 亦或是一个电商网站, 要为 ...

  9. 获取iOS设备唯一标识

    在开发过程中,我们经常会被要求获取每个设备的唯一标示,以便后台做相应的处理.我们来看看有哪些方法来获取设备的唯一标示,然后再分析下这些方法的利弊. 具体可以分为如下几种: 1.UUID 2.IDFA ...

最新文章

  1. Android4.0源码Launcher启动流程分析【android源码Launcher系列一】
  2. 基于FPGA的costas环同步系统仿真与分析
  3. 启动tomcat提示The Network Adapter could not establish the connection
  4. 乐高无限的服务器怎么建,乐高无限悬空房子怎么建造 建造方法介绍
  5. jquery html 片段,十条jQuery代码片段助力Web开发效率提升
  6. 以太坊Dapp项目-网页钱包开发手册
  7. php 判断下载状态,php下获取http状态的实现代码
  8. 大数据可视化的好处有哪些
  9. Google GPS在Android上的一些应用
  10. sd卡卡槽_SD卡无法读取最完整解决办法汇总
  11. webstorm 快捷键持续更新中...
  12. 圆通JAVA职级_圆通小编升职啦,快看看你的职级有没有变化
  13. 软件配合HT8691功放使用技巧
  14. 生成PDF的几种方式
  15. win10安装winmerge 启动出错
  16. 微信账号和语音文件的结构分析
  17. “三年拿下全球第一!”7年小米销量冲到全球第二,雷军做对了什么?
  18. 存在外键关联的主表truncate如何做
  19. 21年双非二战南京大学软件学院专硕经验贴
  20. 聊聊订单系统的设计?看这篇就够了!

热门文章

  1. C#如何与OPC连接
  2. 列表推导式 生成器表达式
  3. Python面向对象——继承
  4. F14-lnmp,wordpress,discuz
  5. Windows用户程序报错或软件无法删除或者卡顿,解决办法
  6. 第4次作业类测试代码+105032014065+方绎杰
  7. dgl._ffi.base.DGLError: Cannot assign node feature “n_feat“ on device cuda:0 to a graph on device
  8. 图片 + 未知宽高 + 垂直居中
  9. matlab遗传算法拟合,基于遗传算法的数据拟合在MATLAB环境中的实现
  10. 解决Linq.ToDictionary()时的键重复问题