2019独角兽企业重金招聘Python工程师标准>>>

前阵子看网络基础相关的书籍,冒过一个疑问,为什么要有MAC地址跟IP地址?两者可否合二为一?

现在的逻辑是这样子:在数据传输过程中,路由器查看这个数据包的IP地址,跟路由表中记录的“IP集合:下一跳的mac地址”做对照,确定了要往哪边扔;网卡在接收数据的时候,也会看看这个数据包中记录的目标MAC地址是不是自己,只接收自己的。

MAC地址是数据链路层使用到的,IP地址是网络层使用到的。MAC地址是硬件的物理属性,在网卡上固定不变,IP地址是逻辑属性。

所以,因为网络分层的设计,很自然的就想到要使用两个不同的“地址”。那么,这里有没有可能让两个层次使用同一个东西呢?数据链路层也可以直接采用IP就够了?这就相当于是一个可变的MAC地址,毕竟接收端可能是笔记本,会到处跑。

假设只采用IP,那么为了保证数据正确到达某台电脑,IP地址就需要跟某个接收端绑定,一旦发生变化,就需要接收端告诉网络,我是某某IP,这个还好,毕竟现在路由在转发数据包时,也是根据mac跟IP绑定来转发,有定时刷新机制。这样子路由表里头就是IP集合跟下一步要转发的目标路由IP的映射关系,这里说的IP,就不是当前网络世界的虚拟属性了,它就既有物理属性又有逻辑属性,代表了网络层的逻辑属性,又代表了物理网卡。没有mac地址跟ip地址的映射,想想是不是简化了很多?

假设只采用mac地址,由于mac地址的值跟它所处网络位置是没有关联的,不像IP地址那样前几位相同的往某个路由转发就好,所以如果只用mac地址,就需要路由器记录着的映射关系是:下一步路由mac地址:该路由内的所有接收端mac地址,路由转发时,需要遍历比较所有的接收端mac地址,确定下一步的走向。明显,会导致逻辑变得非常复杂,性能也很低下。假设处于一个小的局域网内,那么只使用mac地址,没有问题,但涉及到很广阔的网络,就不行了。

如果把IP跟MAC合二为一,那么就相当于网卡上的mac地址是一个动态变化的值,它来自运营商分配的IP。有问题吗?目前以我的理解应该可以。不知道高手怎么看?

我看到网络上的很多回答,都有预设前提的错误,譬如:有一本书介绍必须有mac时,就先预设了“主机通过mac地址标识”,而没有从根本上考虑,也许主机使用IP地址标识的,mac地址根本不存在。

以上只是胡思乱想。

也许IP+MAC组合是因为历史原因,IP可以统一所有的各种物理网络,而MAC可能只是物理网络的一种。

分层是有好处的,有句名言:计算机领域的任何难问题,都可以通过增加一个分层解决。用在这里挺合适的。

转载于:https://my.oschina.net/newchaos/blog/1552123

如果重新设计网络,有没有可能合并IP地址跟MAC地址?相关推荐

  1. 【网络篇】第二篇——IP协议与MAC地址详解

    IP协议 理解源IP地址和目的IP地址 网段划分 IP地址的数量限制 私有IP地址和公网IP地址 路由 NAT(网络地址转换) ​编辑NAT IP转换过程 NAPT MAC地址 理解源MAC地址和目的 ...

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

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

  3. ip地址和mac地址的区别以及tpc/ip四层网络协议

    IP地址划分时基于地理区域,换了不同地方,即便是同一台硬件设备,IP地址一定不一样,可以理解为和地理位置有关:而MAC地址不依赖于地理区域,换了不同地方,只要还是同一台硬件设备,MAC地址就不会变,它 ...

  4. 编程获取ip地址与mac地址的对应关系_[读书笔记]CSAPP:25[VB]网络编程1

    视频地址: [精校中英字幕]2015 CMU 15-213 CSAPP 深入理解计算机系统 课程视频_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com 课件地址: ...

  5. 【网络】IP地址和MAC地址

    一.IP地址和MAC地址 1.MAC地址 MAC(Media Access Control,介质访问控制)地址,或称为物理地址,也叫硬件地址,用来定义网络设备的位置,MAC地址是网卡出厂时(每个厂提前 ...

  6. TCP/IP协议专栏——MAC地址详解——网络入门和工程维护必看

    以太帧格式 前导同步符:共8字节,由7个字节的前同步信号和一个分界符开始字节构成. DA/SA:共6个字节,前3个字节代表供应商代码,后3个字节代表厂商序列号. TPID:标记协议标识符,2个字节,值 ...

  7. 网络原理——IP地址与mac地址

    目录 IP地址 IP地址 IP地址的组成 子网掩码 mac地址 冲突域与广播域 数据传输流程 IP地址 IP地址 互联网协议地址.每一个联网的主机都会分配一个IP地址.为32位二进制数,用4个'.'均 ...

  8. 网络基础知识—IP地址、MAC地址、PORT端口

    网络中的地址管理 IP地址 IP地址是在IP协议中用于标识网络中不同主机的地址,在本地局域网上是唯一的: IP协议的两个版本:IPV4和IPV6 IPV4:IP地址是一个4字节,32位的整数(uint ...

  9. 24c04硬件地址位_一文读懂IP地址和MAC地址有什么区别和联系

    IP地址和MAC地址虽然都叫地址,然而实际上却没有什么联系.先来看看什么是IP地址.MAC地址,在来谈谈他们之前的区别. 定义 一.MAC地址 MAC(Media Access Control或者Me ...

  10. 计算机网络——IP地址与MAC地址

    1.1.1 认识IP地址 IP地址用于在TCP/IP通信协议中标记每台计算机的地址,通常使用十进制来表示,但在计算机内部,IP地址是一个32位的二进制数值. IP地址 网络号 表示其所属的网络段编号. ...

最新文章

  1. 从Android访问PC端的port (reverse port forwarding)
  2. mysql存储过程number类型_MySQL存储过程的基本函数(三)
  3. Linux-Learning
  4. Java 中静态代码块 static的作用及用法
  5. k8s service服务发现详解:ipvs代理模式、服务类型
  6. C++判断是否为素数、求一个数的因数、质因数分解
  7. 三宝机器人怎么充电_巨人通力导致吉祥三宝+36号故障怪现象的又一因素
  8. Java将对象保存到文件中/从文件中读取对象
  9. jso java_Javaweb学习之JSON使用
  10. 用 Vue 做一个简单的购物app
  11. 【026】国务院督查组莅临翼辉信息参观调研
  12. 机器学习方向上还有没有创新点呢?
  13. luogu1725 琪露诺
  14. 描述十二个异性追求者的拓展
  15. java 调停者模式_[Java教程]《JAVA与模式》之调停者模式
  16. Human Pose Estimation姿态估计调研
  17. 制作一个货币汇率转换器
  18. java 限制输入两位数_Java 控制数字输入、控制输入长度的方法 | 学步园
  19. CSharp + OpenCvSharp实现医学图像拼接
  20. 计算机应用基础试题库,2017年计算机应用基础模拟试题「题库」

热门文章

  1. 基于stm32的c语言程序设计,基于stm32的电子密码锁设计 main.c 代码奉上,做课设的直接用...
  2. oracle输出对齐方式,sql*plus 中输出格式控制技巧
  3. java查找一个数等于一组数中哪些数字相加的和_快速入门二分查找
  4. php 中英文截取 php,PHP 中英文截取无乱码
  5. rhel7 mysql无法运行_redhat7下mysql5.7.12重启电脑后起不来问题
  6. Linux字符串转码utf8,Linux C/C++ 字符集转换,UTF-8,GB2312
  7. java类作为多层级的数据实体_API json多层数据实体类封装(利用泛型技术)
  8. 将10个成绩排序java程序_快速排序——成绩排序
  9. linux 挂载raid_linux初学者-磁盘阵列篇
  10. 新职业英语计算机unit5,新职业英语2Unit5.ppt