Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >网络编程之通俗讲解,有了IP地址,为何还要用MAC地址?

网络编程之通俗讲解,有了IP地址,为何还要用MAC地址?

作者头像
大忽悠爱学习
发布于 2022-05-06 03:44:09
发布于 2022-05-06 03:44:09
1.4K0
举报
文章被收录于专栏:c++与qt学习c++与qt学习

网络编程之通俗讲解,有了IP地址,为何还要用MAC地址?

前言

标题虽然是为了解释有了 IP 地址,为什么还要用 MAC 地址,但是本文的重点在于理解为什么要有 IP 这样的东西。本文对读者的定位是知道 MAC 地址是什么,IP 地址是什么。

书上说的

基本概念:

如今的网络是分层来实现的,就像是搭积木一样,先设计某个特定功能的模块,然后把模块拼起来组成整个网络。局域网也不例外,一般来说,在组网上我们使用的是IEEE802参考模型,从下至上分为:物理层、媒体接入控制层(MAC),逻辑链路控制层(LLC)。

标识网络中的一台计算机,一般至少有三种方法,最常用的是域名地址、IP地址和MAC地址,分别对应应用层、网络层、物理层。网络管理一般就是在网络层针对IP地址进行管理,但由于一台计算机的IP地址可以由用户自行设定,管理起来相对困难,MAC地址一般不可更改,所以把IP地址同MAC地址组合到一起管理就成为常见的管理方式。

什么是MAC地址?

MAC地址就是在媒体接入层上使用的地址,也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。MAC地址与网络无关,也即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,都有相同的MAC地址,它由厂商写在网卡的BIOS里。MAC地址可采用6字节(48比特)或2字节(16比特)这两种中的任意一种。但随着局域网规模越来越大,一般都采用6字节的MAC地址。这个48比特都有其规定的意义,前24位是由生产网卡的厂商向IEEE申请的厂商地址,目前的价格是1000美元买一个地址块,后24位由厂商自行分配,这样的分配使得世界上任意一个拥有48位MAC 地址的网卡都有唯一的标识。另外,2字节的MAC地址不用网卡厂商申请。

MAC地址通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00:20代表网络硬件制造商的编号,它由IEEE分配,而后6位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。每个网络制造商必须确保它所制造的每个以太网设备都具有相同的前三字节以及不同的后三个字节。这样就可保证世界上每个以太网设备都具有唯一的MAC 地址。

什么是IP地址?

IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

为什么要用到MAC地址?

这是由组网方式决定的,如今比较流行的接入Internet的方式(也是未来发展的方向)是把主机通过局域网组织在一起,然后再通过交换机和 Internet相连接。这样一来就出现了如何区分具体用户,防止盗用的问题。由于IP只是逻辑上标识,任何人都随意修改,因此不能用来标识用户;而 MAC地址则不然,它是固化在网卡里面的。从理论上讲,除非盗来硬件(网卡),否则是没有办法冒名顶替的(注意:其实也可以盗用,后面将介绍)。

基于MAC地址的这种特点,局域网采用了用MAC地址来标识具体用户的方法。注意:具体实现:在交换机内部通过“表”的方式把MAC地址和IP地址一一对应,也就是所说的IP、MAC绑定。

具体的通信方式:接收过程,当有发给本地局域网内一台主机的数据包时,交换机接收下来,然后把数据包中的IP地址按照“表”中的对应关系映射成MAC地址,转发到对应的MAC地址的主机上,这样一来,即使某台主机盗用了这个IP地址,但由于他没有这个MAC地址,因此也不会收到数据包。发送过程和接收过程类似,限于篇幅不叙述。

综上可知,只有IP而没有对应的MAC地址在这种局域网内是不能上网的,于是解决了IP盗用问题。

IP地址与MAC地址的区别是什么?

IP地址基于逻辑,比较灵活,不受硬件限制,也容易记忆。MAC地址在一定程度上与硬件一致,基于物理,能够标识具体。这两种地址各有好处,使用时也因条件而采取不同的地址。

MAC地址涉及到的安全问题:

从上面的介绍可以知道,这种标识方式只是MAC地址基于的,如果有人能够更改MAC地址,就可以盗用IP免费上网了,目前网上针对小区宽带的盗用MAC地址免费上网方式就是基于此这种思路。如果想盗用别人的IP地址,除了IP地址还要知道对应的MAC地址。举个例子,获得局域网内某台主机的MAC地址,比如想得到局域网内名为TARGET主机的MAC地址,先用PING命令:PING TARGET,这样在我们主机上面的ARP表的缓存中就会留下目标地址和MAC映射的记录,然后通过ARP A命令来查询ARP表,这样就得到了指定主机的MAC地址。最后用ARP -s IP 网卡MAC地址,命令把网关的IP地址和它的MAC地址映射起来就可以了。

如果要得到其它网段内的MAC地址,那么可以用工具软件来实现,我觉得Windows优化大师中自带的工具不错,点击“系统性能优化”→“系统安全优化”→“附加工具”→“集群Ping”,可以成批的扫出MAC地址并可以保存到文件。

小知识:

ARP(Address Resolution Protocol)是地址解析协议,ARP是一种将IP地址转化成物理地址的协议。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP 具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。ARP协议是通过IP地址来获得MAC地址的。

ARP原理:

要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后就会进行数据传输。如果未找到,则广播A一个 ARP请求报文(携带主机A的IP地址Ia——物理地址Pa),请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机包括B都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。

因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。ARP表:为了回忆通信的速度,最近常用的MAC地址与IP的转换不用依靠交换机来进行,而是在本机上建立一个用来记录常用主机IP-MAC映射表,即ARP表。

最通俗的解释

看完上一节中各种书籍里对IP地址、MAC地址的理解介绍和说明,还是很蒙逼,那么请继续看完本节吧。

网络洪荒时代

一开始时,网络中的机器并不多。大家都连到同一个集线器就可以了,就可以实现互通。这时,机器 A 发消息到机器 B ,消息头里附上机器 B 的MAC,集线器收到消息后就广播给所有连到集线器的机器。

机器 C 收到消息,发现消息里的 MAC 地址和自己的不一样,就丢弃。机器B发现消息里的 MAC 地址和自己一样,就收到下并解析。

这样机制带来问题很明显:首先每次广播,给所在网络带来不必要的浪费。所以,就出现了交换机。它能识别消息里的目标 MAC 地址后,直接就消息丢到机器 B 所连接的端口中。另一个角度,交换机必须记住所有的 MAC 地址和端口之间的关系。

这样的机制在网络规规模小的时候是高效的。但是当网络规模扩大到全球的时候,不可能让一台交换机记录下全球这么多的网络设备,也不可能让全球的机器连接到一台交换机上。

如果是多台交换机呢?

想像一下,你是斯坦福的学生,你的电脑 x 的网络直连的是学校的交换机,而学校的交换机又连美国国家网络交换机。而美国国家网络交换机又直接的是中国国家网络交换机,中国服务器 y 直连的是中国国家交换机。

你想访问中国的服务器 y 中的资源。你了解到服务器 y 的 MAC 地址是00:0C:29:01:00:12,所以你在消息里附上这个 MAC 地址。

学校交换机收到消息后,拿到 MAC 地址后就愣了,这是要发给谁啊?因为中国服务器 y 并不是直连学校交换机的。这时,学校交换机有一个选择,就是收到不明的 MAC 地址时,一律转发给默认端口。斯坦福交换机就将消息转给美国国家交换机。

美国国家交换机同样发愣了,因为没有这条 MAC 地址对应的端口。它又直接向默认端口:中国国家网络交换机。

中国国家网络交换机收到消息,发现自己记录了 MAC 地址 对应的是服务器 y。就直接将你这位斯坦福学生的消息转发到服务器 y 所连接的端口。

最终,我们的服务器 y 终于收到来自美国斯坦福学生的资源访问请求。

那么,我们的服务器 y 如何将相应的资源返回给学生呢?将消息中的源MAC 地址作为响应消息的目标 MAC 地址发送给中国国家交换机不就可以了?同样的机制,只不过是把源地址和目标地址反一下。

这下,我们是不是完美实现使用交换机组建美国网络和中国网络的互通?

但是美国和中国并不能代表全世界。其他国家也需要加入这个大网络。当日本国家交换机也接入美国国家交换机后,斯坦福学生的消息从学校到达美国国家交换机后就需要进行广播所有直连自己的端口了,因为这时,它没有对外的所谓默认端口了。这里有点烧脑,容各位同学一点时间思考。

小结

也就是说,当两个网络互接时,MAC 地址 + 交换机还能解决问题广播问题,但是两个以上的网络互连时,MAC 地址 + 交换机就没有办法解决广播问题了。

这时,我们面临的问题就是无法使用现有的技术—— MAC 地址 + 交换机——解决多网络互连的问题了。所以,需要发明一种新的技术。

而 IP 协议就是就是解决此问题的一项技术。

事实上,IP协议的产生并不只是为解决上述的“广播问题”。还解决了很多其他网络传输过程会遇到的问题,比如一次传输的消息过大时,如何对消息进行分组等问题。

写在最后

由于历史原因,MAC 地址及相关技术先出现,但是后来发现它并不能解决所有(已知)的问题,所以,先驱们发明了 IP 地址及相关技术来解决。

另一个角度,个人认为,由于 MAC 地址没有办法表达网络中的子网的概念,而 IP 地址可以。如果网络互换设备(比如路由器)能从目标 MAC 地址中分析出目标网络,而不是只是目标主机,IP 地址还会出现吗?

有另一个有趣的问题如果历史反过来,一开始就使用的是 IP 地址,而不是 MAC 地址,我们现在的网络世界会怎么样?

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
AI实时对话的通信基础,WebRTC技术综合指南
在通过您的网络浏览器进行音频和视频通话、屏幕共享或实时数据传输时,您可能并不常思考其背后的技术。推动这些功能的核心力量之一就是WebRTC。2011年由谷歌发布的这个开源项目,如今已发展成为一个高度全面且不断扩展的生态系统。尤其是在AI技术大幅突破的当下,WebRTC在AI实时对话方面的紧密联系,更进一步提升了它的重要性。
腾讯云音视频
2025/05/12
3800
如何在远程会议的时候静音吃薯片?微软团队用AI去除视频噪声
上个月,Microsoft宣布,其与Slack,Facebook Workplace以及Google的Hangouts Chat的竞争对手Teams的每日活跃用户已超过4400万。这一里程碑却掩盖了其“稍后”发布的一些新功能。大部分功能都很简单明了:举手功能表明你有话要说;离线和低带宽支持,即使在网络连接不畅或没有网络情况下,也能阅读聊天消息并回复;以及将聊天弹出到一个单独窗口。其中还有一项实时噪声抑制功能吸引了大家眼球 - Microsoft演示AI如何在通话过程中减少让人分心的背景噪声。
大数据文摘
2020/04/28
1.2K0
如何在远程会议的时候静音吃薯片?微软团队用AI去除视频噪声
RTC @scale 2024 | 提升实时通信的视频质量
我(SHYAM SADHWANI)是meta的一名软件工程师,我和亿万用户一样使用视频通话app与家人朋友保持联系,音视频质量在这一场景中非常重要。我有一段时间非常好奇,这种视频质量为什么不如Netflix流,在我使用相同的设备和网络的情况下,我在Netflix中获得了非常高质量的流,但是在TRC通话中我认为质量应该更好。非常幸运的是我找到了视频通话app的工作,我们探索了很多该领域的挑战,并且在接下来的演讲中我将分析我们在这一过程中学到的和所做的。
用户1324186
2024/04/12
3200
RTC @scale 2024 | 提升实时通信的视频质量
想要用WebRTC玩转物联网,看完这篇会给你一些启示
内容来源:由anRTC(ID:Dync-boyuan)投稿,专注于音视频通讯与智能机器人领域,提供从SDK到成熟App的全方位整合服务。
IT大咖说
2018/10/23
1.9K0
想要用WebRTC玩转物联网,看完这篇会给你一些启示
【HarmonyOS之旅】HarmonyOS概述(一)
鸿蒙操作系统(HarmonyOS)是华为开发的全场景分布式操作系统,旨在为多种终端设备提供无缝协同体验。鸿蒙系统的设计理念是“面向未来、面向全场景”,支持多种设备类型,包括智能手机、平板电脑、智能穿戴设备、智慧屏等。
枫叶丹
2024/12/13
3140
【HarmonyOS之旅】HarmonyOS概述(一)
从通信到AI FreeSWITCH与WebRTC
大家好,我是杜金房,此次分享和双向通讯服务器FreeSWITCH以及WebRTC有关。首先我会为大家简单介绍FreeSWITCH,鉴于FreeSWITCH主要用于通信领域,我也会介绍WebRTC并阐述FreeSWITCH与WebRTC的关系,同时结合FreeSWITCH的其他功能和使用场景与其功能以及所使用的多媒体库,进一步探索AI技术加持下FreeSWITCH的未来发展。
LiveVideoStack
2019/07/01
5K1
从通信到AI FreeSWITCH与WebRTC
计算机网络——多媒体网络
我的计算机网络专栏,是自己在计算机网络学习过程中的学习笔记与心得,在参考相关教材,网络搜素的前提下,结合自己过去一段时间笔记整理,而推出的该专栏,整体架构是根据计算机网络自顶向下方法而整理的,包括各大高校教学都是以此顺序进行的。 面向群体:在学计网的在校大学生,工作后想要提升的各位伙伴,
学编程的小程
2024/05/26
1570
计算机网络——多媒体网络
LDR6028:一款让智能设备“边充边用”的PD芯片
随着科技的飞速发展,智能设备已成为我们日常生活中不可或缺的一部分。从智能手机到平板电脑,再到笔记本电脑,这些设备不仅极大地丰富了我们的生活方式,也对充电与数据传输技术提出了更高要求。在这一背景下,Type-C PD(Power Delivery)芯片以其卓越的性能和广泛的应用前景,正引领着充电与数据传输技术的新潮流。其中,LDR6028作为一款专为Type-C标准设计的USB PD通信芯片,凭借其出色的OTG(On-The-Go)功能,实现了边充电边数据传输的革新应用,为用户带来了前所未有的便捷体验。
legendary_163
2024/09/09
2300
Scale 2023 | 元宇宙中的实时通话
在当今快速发展的技术环境中,虚拟交流已经成为新的常态。虚拟现实(VR)和增强现实(AR)的出现彻底改变了用户会面和聚集的方式。随着视频会议(VC)软件的广泛采用,远程通信变得比以往任何时候都更加简便和易于访问。AR和VR环境提供了更沉浸式的体验,使用户可以在虚拟世界中感受到身临其境的感觉。这带来了更加引人入胜和有意义的体验,有助于更好地协作和构思。此外,AR/VR环境为用户提供了更高级别的环境控制,允许用户根据自己的需求自定义周围环境。在VR中,与朋友一起看电影、玩游戏、共同设计规格、在相隔数百英里的情况下在白板上协作,这都是真实的可能性。彼此之间的互动从未如此轻松。
用户1324186
2023/09/09
3020
Scale 2023 | 元宇宙中的实时通话
一文详解WebRTC、RTSP、RTMP、SRT
好多开发者,希望对WebRTC、RTSP、RTMP、SRT有个初步的了解,知道什么场景该做怎样的方案选择,本文就四者区别做个大概的介绍。
音视频牛哥
2024/09/27
4.5K0
一文详解WebRTC、RTSP、RTMP、SRT
腾讯会议突围背后:端到端实时语音技术是如何保障交流通畅的?
说到腾讯会议背后的实时语音端到端解决方案,大家可能第一时间就想到了PSTN电话,从贝尔实验室创造模拟电话开始,经过一百多年的发展,整个语音通信、语音电话系统经历了很大一部分变化。尤其是最近三十年来,语音通话由模拟信号变为数字信号,从固定电话变为移动电话,从电路交换到现在的分组交换。
腾讯云开发者
2020/03/25
6.5K0
实时互动点燃创新增长新引擎(内附报告下载)
导语  上周,实时互动产业发展和生态合作论坛在线上举办,来自腾讯云音视频的薛笛及刘连响两位老师分别做了致辞和演讲。腾讯云基于过往20多年在实时音视频领域的技术积累,以及在金融、医疗、工业等产业互联网的深耕经验,希望通过开箱即用的实时互动应用开发工具,助力各行各业实现场景创新。(文末附《实时互动产业发展研究报告》下载) 在论坛上,来自腾讯云音视频的专家工程师刘连响老师,为我们分享了主题为——实时互动助力行业场景创新的精彩演讲。 首先刘老师简单介绍了WebRTC。提到实时通信大家一定会想到WebRTC。Web
腾讯云音视频
2022/06/20
1.6K0
实时互动点燃创新增长新引擎(内附报告下载)
云计算服务提供商将逐步提供哪些免费服务?
一些主要云计算提供商正在为全球各地的组织提供免费的精选服务,并在冠状病毒疫情期间支持研究和协作。
静一
2020/05/25
3K0
[AI Microsoft] Copilot+ PC 的介绍
我们5月20日活动的即时录音已经可以获取。 https://www.microsoft.com/event
从零开始学AI
2024/05/23
4700
[AI Microsoft] Copilot+ PC 的介绍
腾讯实时音视频TRTC百万级用户并发解决方案
今年我们经历了一个特殊时期,导致大家必须很长的时间段内在家中,大量的企业也选择让员工在家中远程办公、学校选择让老师和学生在通过远程教学的方式进行学习。
shixin
2020/02/11
2.1K0
RTC风向标:11月最值得关注的26个热点!
近年来,实时音视频快速发展,WebRTC作为实时音视频的标准也快速发展,从直播到通讯,其应用场景也在不断丰富。如果您关注实时音视频方向的技术产品应用与创新,本系列文章就将会为您分享音视频方向的技术产品动态,助您第一时间获取业界信息。本文将为你快速解析近期值得关注的技术、产品与行业热点。 一、腾讯会议发布3.0版本 11月4日,2021腾讯数字生态大会上发布了腾讯会议3.0版本,下面就分享几个小点。 (一)降低人们达成共识的成本是腾讯会议的定位,产品设计围绕产品定位 这个点深有感触,人们往往会说小团
腾讯云开发者
2021/11/26
2.1K0
干货 | 携程呼叫中心移动坐席解决方案
作者简介 本文作者为携程基础业务研发部呼叫中心团队,其在传统呼叫中心基础上,结合软交换、智能分配、自动语音语义处理等技术,为携程用户提供人性化、人机互动、便捷的电话语音服务。 一、前言 智能手机早已成为日常生活中不可或缺的一部分,随着移动互联网的快速发展,人们的生活习惯与工作方式也在不断发生改变。从移动通信、移动支付,再到移动办公,“移动化”已渗透至各行各业,并逐步成为企业业务发展的趋势。 携程呼叫中心研发团队根据业务的需求,研发完成了一套完整的呼叫中心移动坐席解决方案,使业务坐席不再受制于工作时间、办公地
携程技术
2018/03/16
3.7K0
干货 | 携程呼叫中心移动坐席解决方案
技术战“疫”:人工智能、5G、实时音视频、大数据的技术阅兵式
2003年面对“SARS(非典)”时,移动通信还处于2G时代、网上冲浪还在用ADSL拨号,短信、电话是SARS期间人们沟通以及信息传达的最重要的工具,人们被迫由线下转到线上交易也帮助电子商务走上了快车道。
shixin
2020/02/22
1.6K0
亮眼云发布混合架构音视频SDK:支持所有平台,音视频唇音同步等
亮眼云的音视频SDK从客户业务角度以及技术应用维度提供了更好的跨平台的场景化解决方案,真正解决了目前市面上大部分实时通讯产品与方案中存在的问题。 2018新年伊始,亮眼云技术团队依托在音视频处理和实时
BestSDK
2018/04/19
1.8K0
亮眼云发布混合架构音视频SDK:支持所有平台,音视频唇音同步等
思科Webex与下一代视频会议
视频会议在人们的日常生活中使用愈发频繁,尤其是在新冠肺炎疫情的影响下视频会议市场急剧增长,由此引发了思科网讯视频技术的不断更新。本次分享,我们邀请到了思科协作技术事业部的首席工程师Thomas Davies先生,他向我们分享了AV1的发展历程,开发AV1时所受到的挑战,以及AV2的发展前景及其在实时通信中的作用。
LiveVideoStack
2021/07/12
4680
思科Webex与下一代视频会议
推荐阅读
相关推荐
AI实时对话的通信基础,WebRTC技术综合指南
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档