前阵子看网络基础相关的书籍,冒过一个疑问,为什么要有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可能只是物理网络的一种。
分层是有好处的,有句名言:计算机领域的任何难问题,都可以通过增加一个分层解决。用在这里挺合适的。
 

如果重新设计网络,有没有可能合并IP地址跟MAC地址?的更多相关文章

  1. 网络协议 2 - IP 地址和 MAC 地址

    了解完网络协议,我们会发现,网络通信的五层模型里,有两个很重要的概念:IP 地址和 MAC 地址. 那么 IP 地址是怎么来的,又是怎么没的?MAC 地址与 IP 地址又有什么区别? 这回答上面问题前 ...

  2. 计算机网络之IP地址与MAC地址

    IP地址 IP地址(Internet Protocol Address): 缩写为IP Adress,是一种在Internet上的给主机统一编址的地址格式,也称为网络协议(IP协议)地址. 它为互联网 ...

  3. (转载)详解网络传输中的三张表,MAC地址表、ARP缓存表以及路由表

    郑重声明:原文转载于http://dengqi.blog.51cto.com/5685776/1223132 向好文章致敬!!! 一:MAC地址表详解 说到MAC地址表,就不得不说一下交换机的工作原理 ...

  4. 为什么同时需要IP地址和MAC地址

    每个以太网设备在出厂时都有一个唯一的MAC地址,为什么还需要为每台主机再分配一个IP地址?或者说每台主机都分配唯一的IP地址,为什么还要在网络设备(如网卡,集线器,路由器等)生产时内嵌一个唯一的MAC ...

  5. 网络传输中的三张表,MAC地址表、ARP缓存表以及路由表

    一:MAC地址表详解 说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的.在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据 ...

  6. IP,IP地址,mac地址

    IP地址与IP是两个不同的概念.单独讲IP,是指IP协议 IP地址分为三类:单播地址(目的为单个主机):多播地址(目的端为同一组的所有主机):广播地址(目的端为网络上所有给定的主机) ip地址由网络和 ...

  7. 详解网络传输中的三张表,MAC地址表、ARP缓存表以及路由表

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dengqi.blog.51cto.com/5685776/1223132 一:M ...

  8. IP地址、MAC地址及端口

    概述: IP 是地址,有定位功能(网与网的通讯)     (在逻辑上唯一标识一台电脑)(网络层) MAC 是身份证,无定位功能(在子网干活)(在物理上唯一标识一台电脑) (链路层) 首先是如何查看ip ...

  9. 关于IP地址与MAC地址(网卡硬件地址)的区别小谈

    IP地址是指Internet协议使用的地址,而MAC地址是Ethernet协议使用的地址. IP地址与MAC地址之间并没有什么必然的联系,MAC地址是Ethernet NIC(网卡)上带的地址,为48 ...

  10. IP地址和MAC地址绑定的必要性

    计算机网络是一个共通的网络,世界上任何计算机都可以互相访问. 实现的原理基于网络通讯的互联网交互五层模型. 计算机网络的历史发展 当计算机网络技术初始利用的时代,几台计算机通过集线器连接,就可以实现网 ...

随机推荐

  1. Struts(七):action配置文件之通配符映射

    通配符映射:一个Web应用可能有成百上千个action声明,可以使用struts提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系. 通配符映射规则: 若找到多个匹配,没有通配符的那个将胜 ...

  2. stl中的push_back

    v_data.push_back(pdata);这句只是把指针pdata拷贝到 vector当中的一个指针p1当中 注意是拷贝也就是说当前pdata和p1指向同一个东西,p1在vector中.并不是将 ...

  3. paper 101:图像融合算法及视觉艺术应用

    1:基于泊松方程的图像融合方法,利用偏微分方程实现了不同图像上区域的无缝融合.比较经典的文章: P. Pérez, M. Gangnet, A. Blake. Poisson image editin ...

  4. 使用plsql执行计划进行sql调优(转载)

    一段SQL代码写好以后,可以通过查看SQL的执行计划,初步预测该SQL在运行时的性能好坏,尤其是在发现某个SQL语句的效率较差时,我们可以通过查看执行计划,分析出该SQL代码的问题所在. 那么,作为开 ...

  5. js方式找出数组中重复数最多的那个数,并返回该数以及重复次数

    function findNum(a){ var result = [0,0]; for (var i = 0; i < a.length; i++) { for (var j = 0,coun ...

  6. js asp.net获取时间戳

    方法1: var timestamp = (new Date()).valueOf(); 结果:1280977330748 方法2: var timestamp=new Date().getTime( ...

  7. 在学Go语言

    首发:个人博客,更新&纠错&回复 开始学点儿Go语言,这语言据说在国内比在国外火,社区上褒贬不一,不过“小马过河”嘛,总要先自己试试再来下结论. 环境准备: 1.在Golang中国下载 ...

  8. sublime设置备份

    Settings-user { "font_face": "Consolas", "font_size": 13, "line_p ...

  9. python 笔记

    第一周2016/9/11   Python 2.0和3.0的区别 3.0 的模块名改了和之前的2.0 不一样 #!/usr/bin/env python # -*- coding:utf-8 -*- ...

  10. 我对于MSP的理解,供参考

                                   本人在项目管理圈儿也算是摸爬滚打了几载,近几年真是各种压力大,看同行们各种参加培训.认证......我也不能懈怠啊,赶紧上网搜搜相关的培训 ...