mac地址和ip地址的区别(转)

先纠正一下几个比较模糊的概念:“MAC地址表储存IP地址”,
MAC地址表是二层设备中存储“MAC地址”和“转发端口”映射关系的表,并不直接存储IP地址。
“路由器根据MAC地址来选择路由进行数据发送”,对于三层设备的三层端口来说,通常是基于报文目的IP地址,对照自身的路由表来选择转发路径,只有二层设备基于“MAC地址”进行数据帧的转发。
这个问题展开了说比较复杂,但是只考虑基本原理似乎也没有那么麻烦,一句话概括就是“二层基于MAC地址转发数据帧,三层基于IP地址转发报文 ”MAC地址”是烧录在网卡或者接口上的物理地址,具有二层意义和全球唯一性,一般不能被改变。IP地址是网络中的主机或者三层接口在网络中的逻辑地址,在同一个网络内具有唯一性。IP地址和MAC地址的关系要分在二层通信和在三层通信两个部分来说明(其实本质上是一样的)二层以下数据帧的交换一般通过交换机或其他二层设备,需要用到主机间的MAC地址,但是通常主机网卡配置的是IP地址,此时就需要借助“ARP协议”将目标主机的IP地址转换为对应主机的MAC地址才能进行通信,完整过程就是主机依靠IP-MAC的对应关系封装数据帧,二层设备在收到含有目标MAC地址的数据帧后,查看自己的“MAC地址表”,便知道这个MAC地址该从自己的哪个端口发送出去。在windows下可以使用arp -a查看这种对应关系,可以在模拟器上轻松展现整个过程。当PC0和PC1能正常通信时,在PC0上查看ARP表如下:可以看出,到目标主机的IP地址映射为对应的MAC地址了,此时PC0就可以将目标主机的IP地址转换为对应的MAC地址封装在数据帧中发给交换机。交换机有那么多端口,它怎么就知道你发送的这个数据帧的目的地址该从自己的哪个端口转发出去呢?因此,交换机自己还要维护一张“MAC地址表”,用来记录目的MAC地址-端口的映射关系,如下图现在交换机看到0004.9a2e,3ad1的MAC,就知道要从F0/2把数据帧发送出去啦O(∩_∩)O二层数据帧的通信基本原理就是这些,当然这两张表是如何生成的就不是这个话题的讨论范围了,具体可以参考ARP协议的工作过程和交换机的转发原理。二层讨论的都是同一个网络内(IP地址在同一网段)数据的交换,“IP地址和MAC地址的关系很明确”:虽然主机都配置了IP,但从上面的例子可以看出,IP地址实际并不起作用,在生成数据帧的时候就转化为MAC地址了,并不参与实际的通信过程。但是如果要通信的主机不在一个网络内,这时IP地址才真正发挥它的作用。IP数据包在三层网络中的寻址通过路由器和各种路由协议来完成,在这个过程中,IP地址和MAC地址又有什么关系呢?看下面的拓扑现在路由器的两端分别为两个网络。数据想要从PC0到PC1,实际上经历了两个过程,先从主机到路由器的F0/0,再从F1/0口到PC1,单独看每个过程,由于在同一个网段内,所以就和上一种情况是一致的,唯一不同的是此时我们必须配置网关。我们仿照刚才的过程看看PC0的ARP表是什么样的可以看出,数据想从PC0到路由器,依然必须经历从IP地址到MAC地址的转换过程,而这个网关的MAC恰好就是F0/0口的MAC,再看交换机1的MAC地址表:恰好也有对应的端口,此时交换机就知道要把数据从F0/24发送出去,到这里起作用的还是MAC地址,那IP地址到底到哪才发挥真正的作用呢?我们继续往下看,现在查看路由器的路由表:路由器收到数据包后会查看数据包的目的IP字段,我们是发送到192.168.1.1这台主机,看路由表发现正好有这个条目,到192.168.1.0/24要从F1/0这个端口发送出去。后面的过程就不再叙述了和前面基本一致了。也就是说,虽然数据包发送时包含了完整的TCP/IP四层信息,但是IP地址只在网络间寻址才起作用,在同一个网络内,IP地址在发送端被转化为MAC地址进行寻址,而这种转化和交换的对应关系,依赖于ARP协议和MAC地址表。对于上面的例子来说,在PC0到路由器的F0/0之间的网络和F1/0到PC1之间网络,都是MAC地址负责寻址,IP地址只在负责连接两个不同网段的路由器上才发挥指导作用。

作者:Windroid
链接:https://www.zhihu.com/question/49335649/answer/115639556
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449066.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows下多个JDK版本的切换方法

问题 因我之前在window中无法命令行输入,后来发现是电脑中存在多个JDK,导致设置混乱。于是,我继续深入研究了当电脑存在多个JDK的情况下,如何设置想要的JDK版本。步骤 1.更改环境变量 进入环境变量的配置界面,将JAVA_H…

哈哈哈,只有程序员才懂的黑色幽默 ... ...

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 也是机缘巧合,让我一个之前工作从未接触过程序员的人,现在成天和程序员打交道,要知道,不…

ONVIF Device Manager修改设备密码

这个onvif工具可以实时监控画面,使用起来简单方便 左侧一栏是设备信息,中间上半部分是设备配置设置,下半部分是图像预览配置设置。 修改密码可通过该工具,点击User management后选择用户类型并且修改密码。

mysql 数据库函数入门

转载于:https://www.cnblogs.com/hwgok/p/10816922.html

Hadoop localhost: frankxulei@localhost: Permission denied (publickey,password)

Hadoop启动HDFS进程的时候报错,提示权限不够,具体信息如图所示:localhost: frankxuleilocalhost: Permission denied (publickey,password). frankxuleiubuntu:/usr/local/hadoop$ sbin/start-all.shWARNING: Attempting to start all Apache…

几个sql案例

第一题 select Case When t.flag>0 Then "T" Else "F" End from (SELECT instr(TableA.col1,TableA.col2) as flag from TableA) t第三题 select s.* from student s ,(SELECT name,MAX(score) m from student GROUP BY name) t where s.name t.n…

京东购物在微信等场景下的算法应用实践

本文根据京东微信手Q业务部马老师在京东\u0026amp;DataFun Talk算法架构系列活动中所分享的《京东购物在微信等场景下的算法应用实践》编辑整理而成,在未改变原意的基础上稍做修改。此次分享的是以WQ(微信手Q)购物智能推荐系统介绍智能推荐算…

docker save 与 docker export 的区别

缘起 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 docker save和docker export都能导出镜像包,咋看起来区别似乎不大。本文就针对这个问题,试图搞清楚docker…

PS图片后期之超简易造光调色方法

技法是死的,而人是活的,说的简单一点就是我们要学会开拓一下思维,调色的方法并不是只有【可选颜色】而已。 在修片之前,我们先要学会分析,在拍摄这一组照片时我希望有一种夕阳的光穿透晒在脸庞的感觉,而左边…

在 idea 中为类和方法自动生成注释

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 项目规范中有一项常见的要求,在类级和方法级注释里写上创建者和创建时间,在方法级注释里写上创建者和维护者&…

2进制 , 8进制 , 10进制 , 16进制 , 介绍 及 相互转换 及 快速转换

为什么要使用进制数 数据在计算机中的表示&#xff0c;最终以二进制的形式存在 , 就是各种 <黑客帝国>电影中那些 0101010… 的数字 ; 我们操作计算机 , 实际 就是 使用 程序 和 软件 在 计算机上 各种读写数据, 如果我们直接操作二进制的话 , 面对这么长的数进行思考或…

python脚本调用外部程序的若干种方式以及利弊

脚本执行外部程序的常用几种方式&#xff1a; # os.popen(path)# subprocess.run(cmd,shellTrue)# subprocess.check_call(cmd,shell True)# os.system(command)# win32api.ShellExecute(0, open, path, , , 0) os.popen(path) 和 os.system(command) 这两种执行的效果是差不多…

藏经阁计划发布一年,阿里知识引擎有哪些技术突破?

为什么80%的码农都做不了架构师&#xff1f;>>> 阿里妹导读&#xff1a;2018年4月阿里巴巴业务平台事业部——知识图谱团队联合清华大学、浙江大学、中科院自动化所、中科院软件所、苏州大学等五家机构&#xff0c;联合发布藏经阁&#xff08;知识引擎&#xff09;…

Linux操作系统load average过高,kworker占用较多cpu

Linux操作系统load average过高&#xff0c;kworker占用较多cpu 今天巡检发现&#xff0c;mc1的K8S服务器集群有些异常&#xff0c;负载不太均衡。其中10.2.75.32-34&#xff0c;49的load average值都在40以上&#xff0c;虽然机器的cpu核数都是40或48核不算严重&#xff0c;但…

Linux 上 docker 安装 oracle-xe-11g

环境&#xff1a; 2G 内存&#xff0c;60G 硬盘阿里云一台&#xff08;带宽 1M&#xff09;, 配置如下图&#xff1a; 软件&#xff1a;docker Docker version 1.6.2, build 7c8fca2 相关 link docker 镜像站&#xff1a;https://store.docker.com 视频教程&#xff1a;ht…

《 Docker 技术入门与实战 》读书笔记 ( CentOS 安装 Docker )

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 PS &#xff1a;个人所有读书笔记只记录个人想要的内容&#xff0c;很可能原书大量内容没有纳入笔记中... ... 以下全文内容出自书目&…

解决 linux 下安装 node 报: command not found

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 注意&#xff1a;有时安装成功后,需要关闭xshell&#xff0c;重新启动。nvm才会生效。 1. 在 linux 下安装 node 提示 -bash: node: com…

阿里云官方网站免费套餐怎么抢

阿里云推出包含云服务器 ECS、负载均衡、云数据库 RDS、云数据库 Redis 版、云数据库 Mongodb 版、弹性公网 IP、CDN、对象存储 OSS、文件存储 NAS等40核心云产品&#xff0c;6个月免费使用何为免费套餐&#xff0c;其实就是让你先体验&#xff0c;觉得好用&#xff0c;易用&am…

elasticsearch全局analyzer声明

2019独角兽企业重金招聘Python工程师标准>>> 问题 elasticsearch从2.4升级到5.6&#xff0c;elasticsearch.yml配置中有一些analyzer配置拷贝到新版本&#xff0c;启动报错 index :analysis :analyzer :lowercase_whitespace :type : customtokenizer : myTokenizer…

Parallels Desktop虚拟机无法关机提示“虚拟机处理器已被操作系统重置”

如果你在使用PD的时候遇到了这样子的弹窗&#xff0c;恭喜你篇博文可以帮助你&#xff0c;因为我刚刚也遇到了这个问题。如果有帮助可以点一下推荐按钮。 针对Windows电脑 启动虚拟机创建快照使用管理员权限运行命令提示符执行powercfg -h off重启试试成功了再删除快照即可修改…