车载以太网之要火系列 - 第8篇:MAC、MAC地址、IP、IP地址、子网掩码,从似是而非到一次搞懂

写在开篇

路漫漫其修远兮,吾将上下而求索。

——屈原《离骚》

常听IT同事说IP地址、MAC地址啥的,也搞不明白。学车载以太网过程中发现,也绕不开这几个既熟悉又陌生的词。

说熟悉吧,天天听;说陌生吧,一问就卡。

这篇咱们就把MAC、MAC地址、IP、IP地址、子网掩码放在一起,从似是而非到一次搞懂。

路虽长,慢慢走。

一、写着写着,我突然想到一个问题

前面第六篇讲了PHY和MAC,第八篇又讲MAC地址。写着写着,我脑子里突然冒出一个问题:

网卡和PHY是一个东西吗?

说实话,我以前一直以为“网卡”就是那个插网线的口,里面有个芯片叫PHY。但学了MAC之后,我发现事情没那么简单。

我查了半天,终于搞清楚了。

网卡 ≠ PHY。网卡是“MAC + PHY + 其他元件”的完整产品。

但MAC和PHY的集成方式有三种:

第一种:MAC在MCU里,PHY在外面(车载ECU最常见)

text

┌─────────────┐     ┌─────────────┐
│    MCU      │     │   PHY芯片   │
│  ┌───────┐  │     │             │
│  │  MAC  │  │────→│  收发信号   │────→ 网口
│  └───────┘  │     │             │
└─────────────┘     └─────────────┘

MAC集成在MCU里,外面配一颗独立PHY芯片。两者合起来就是“网卡功能”。常见于车载ECU、工业控制器。

补充:车载以太网绝大多数采用这种“MAC在MCU里+外挂PHY”的方案。但近年来也出现了针对边缘节点的“MAC-PHY集成芯片”(如Microchip LAN8650),用于连接没有内置MAC的低成本MCU。

第二种:MAC和PHY集成在一起(传统独立网卡)

text

┌─────────────────────┐
│   网卡芯片          │
│  ┌───────┐ ┌─────┐  │
│  │  MAC  │ │ PHY │  │
│  └───────┘ └─────┘  │
└─────────────────────┘

MAC和PHY封装在同一颗芯片里,外面只加变压器和网口插座。这就是传统意义上的“网卡芯片”,常见于电脑主板、USB网卡。

第三种:MAC、PHY、MCU全集成(高集成度SoC)

text

┌─────────────────────────────┐
│          SoC                │
│  ┌───────┐ ┌─────┐ ┌─────┐  │
│  │  CPU  │ │ MAC │ │ PHY │  │
│  └───────┘ └─────┘ └─────┘  │
└─────────────────────────────┘

所有东西都在一颗芯片里,常见于某些低端单片机(如ESP32)。

所以:PHY是“手脚”,MAC是“脑子”,网卡是“手脚+脑子+外壳”的完整产品。只是集成方式不同,叫法略有差异。

搞清楚了这一点,再来看MAC和MAC地址,就顺多了。

二、先澄清:MAC 和 MAC地址 不是一回事

很多人把“MAC”和“MAC地址”混着说,但它们是两个东西:

概念是什么类比
MAC数据链路层的一个功能模块(负责“什么时候发、发给谁”)“写地址、贴邮票”这个动作/岗位
MAC地址网卡的那个唯一编号(48位,如 00:1A:2B:3C:4D:5E信封上写的那个具体地址

关系:MAC(模块)用 MAC地址(编号)来做决策。

没有MAC模块,没人去管“发给谁”;没有MAC地址,MAC模块也不知道该发给谁。

三、MAC地址:设备的“身份证号”

MAC地址,就是每个网卡出厂时烧录的唯一编号

  • 长啥样:48位,写成16进制,比如 00:1A:2B:3C:4D:5E

  • 特点:全球唯一、固定不变(一般情况)

  • 谁给的:厂家烧录在芯片里,你改不了(除非用特殊手段)

  • 存在哪:烧录在网卡的EEPROM或寄存器里,MAC模块启动时读取

类比:就像你的身份证号。

  • 从出生就有,跟你一辈子

  • 全国唯一,不会重复

  • 不管你搬到北京还是上海,身份证号不变

四、IP地址:设备的“家庭住址”

IP地址,是一个网络上的定位地址

  • 长啥样:32位(IPv4),写成点分十进制,比如 192.168.1.100

  • 特点:可以变、跟网络位置有关

  • 谁给的:网络管理员手动设置,或者路由器自动分配

  • 存在哪:存在操作系统的网络配置里,不是硬件烧录的

类比:就像你的家庭住址。

  • 搬家就会变

  • 同一个城市不同小区,住址不同

  • 住址变了,人还是那个人(身份证号不变)

五、子网掩码:切IP地址的“刀”

子网掩码是一个32位的数字,和IP地址“配对”使用。它的作用是:告诉设备“IP地址里,前多少位是网络号”

子网掩码的写法也是点分十进制,比如 255.255.255.0。把它写成二进制是:

text

11111111.11111111.11111111.00000000

前24位是1(代表网络号占24位),后8位是0(代表主机号占8位)。

怎么用?

把IP地址和子网掩码做“与”运算(都是1才得1),结果就是网络号。

举个例子:IP地址 192.168.1.100,子网掩码 255.255.255.0

  • 网络号 = 192.168.1.0

  • 主机号 = 100

类比:就像“北京市朝阳区XX路XX号”——“北京市朝阳区XX路”是网络号,“XX号”是主机号。子网掩码就是告诉你“到哪里是路名,从哪里开始是门牌号”。

为什么需要子网掩码?

没有子网掩码,设备连“自己在哪个网络”都搞不清。IP地址只是一串没意义的数字,路由器也不知道该把数据包往哪发。

六、为什么IP地址是点分十进制,MAC地址是16进制?

你可能会问:为什么IP地址写成 192.168.1.100 这种点分十进制,而MAC地址写成 00:1A:2B:3C:4D:5E 这种16进制?

这是个好问题。我查了一下,原因大概是这样的:

IP地址(32位)为什么用点分十进制?

  • 32位二进制,分成4组,每组8位(一个字节)

  • 每组8位的取值范围是0-255,正好是十进制

  • 点分十进制对人友好,好记、好写、好念

  • 比如 192.168.1.100,念出来就是“192点168点1点100”

MAC地址(48位)为什么用16进制?

  • 48位二进制,分成6组,每组8位

  • 但每组8位的十进制是0-255,写成 00-255-... 太长了

  • 16进制下,每组8位正好写成2个字符(00到FF),紧凑

  • 比如 00:1A:2B:3C:4D:5E,12个字符搞定,如果写成十进制要更多字符

一句话总结:

  • IP地址用点分十进制:因为32位分成4组,每组0-255,十进制对人友好

  • MAC地址用16进制:因为48位分成6组,16进制下每组2个字符,紧凑高效

  • 两者都是给人看的:机器底层全是二进制,只是“翻译”给人看的时候选了不同的进制

类比

  • IP地址的写法像“北京市朝阳区XX路XX号”——用的是人类习惯的地名

  • MAC地址的写法像“110101001011...”——更像机器码,但16进制比二进制短得多

七、IP和MAC:一个管“在哪”,一个管“谁”

这是最核心的问题。

IP地址管的是:“我在哪”(位置)
MAC地址管的是:“我是谁”(身份)

为什么不能只用MAC地址?

因为MAC地址是固定的,但设备会移动。你的笔记本电脑从北京带到上海,MAC没变,但“网络位置”变了。

如果只用MAC地址,网络不知道你“现在在哪”,数据不知道怎么找到你。就像你只有身份证号,没有住址,快递员没法送货。

为什么不能只用IP地址?

因为IP地址是“逻辑”的,最终还是要靠物理设备(网卡)收发数据。IP地址需要“映射”到具体的MAC地址,才能把数据从线路上真正发出去。

就像你只知道“北京市朝阳区XX路XX号”这个地址,但不知道这个地址住的是“张三”还是“李四”——快递员到了小区门口,还得喊一声“张三,你的快递”。

我目前的理解是:

  • IP地址负责“跨网络找到你所在的小区”

  • MAC地址负责“进了小区,精准找到你本人”

  • MAC模块负责执行“用MAC地址找到人”这个动作

  • 子网掩码负责告诉设备“小区范围有多大”

四者配合,缺一不可。

八、一个网上的例子:你给朋友发微信

  1. 你输入“你好”,点发送

  2. 你的手机把数据打包,目标IP是你朋友的手机IP

  3. 沿途的路由器只看目标IP,决定数据往哪个方向走(IP地址干活

  4. 数据包到了你朋友家的路由器,路由器发现目标IP就在自己下面的局域网里

  5. 路由器通过ARP协议,把目标IP转换成目标设备的MAC地址

  6. 路由器用MAC地址,把数据通过Wi-Fi发到你朋友的手机上(MAC模块用MAC地址干活

  7. 你朋友的手机收到数据,解包,显示“你好”

九、一张表总结

概念是什么长啥样谁给的变不变管什么类比
PHY物理层芯片独立芯片芯片厂家不变数字信号↔物理信号装卸工(手脚)
MAC数据链路层模块集成在MCU/SoC里芯片设计厂家不变管时机、管地址、管打包写地址、贴邮票的动作
网卡PHY+MAC+其他多种集成方式网卡厂家不变完整网络接口手脚+脑子+外壳
MAC地址唯一编号48位16进制网卡厂家烧录一般不变“我是谁”(身份)身份证号
IP地址定位地址32位点分十进制管理员/路由器会变“我在哪”(位置)家庭住址
子网掩码切分规则32位点分十进制管理员/路由器会变切分IP地址告诉你“到哪里是路名”

一句话记一辈子:

PHY是手脚,MAC是脑子,网卡是手脚+脑子+外壳。IP地址找到小区,MAC地址找到人,子网掩码告诉小区边界。

十、踩的坑

最大的坑:以前我以为“网卡”就是PHY芯片。这次才知道,网卡=PHY芯片+MAC模块+其他。很多MCU里集成了MAC,外面配个PHY就能上网。

第二个坑:以前我以为“网卡”只有一种形态——就是电脑主板上那颗独立芯片(MAC+PHY集成)。后来才知道,在车载ECU和嵌入式系统里,更常见的是“MCU内嵌MAC+外挂PHY”的架构。两者都是网卡,只是集成度不同。

第三个坑:以前我以为“MAC”就是“MAC地址”。这次才知道,MAC是一个功能模块,MAC地址是它用的编号。不是一回事。

第四个坑:以前我以为“子网掩码”是个可有可无的东西。这次才知道,没有子网掩码,设备连“自己在哪个网络”都搞不清,IP地址就是一串没意义的数字。

想通的那一瞬间:是当我意识到——PHY是手脚(干活),MAC是脑子(指挥),MAC地址是身份证号(身份),IP地址是家庭住址(位置),子网掩码是地图边界(范围)。五者各司其职,缺一不可。

十一、下步目标

这几个概念搞清楚了。但光知道地址是啥还不够——这些地址在实际网络里到底怎么用?数据包从A到B,一路经过哪些设备?MAC地址和IP地址分别在什么时候登场?

下步准备尝试着努力画一张网络拓扑图,然后把一个数据包的完整旅程走一遍:从你的电脑到百度服务器,或者从车载摄像头到显示屏。用流程图把每一步画出来,看看MAC和IP到底是怎么配合的。

画得不好别笑,主要是帮自己理解,顺便普渡众生,哈哈。

下期预告:网络拓扑 + 数据包的一次完整旅程。光讲概念不行,咱们画图走一遍。

十二、写在最后

这次最大的收获,是终于把PHY、MAC、网卡、MAC地址、IP地址、子网掩码这一堆东西一次搞明白了

以前觉得它们绕来绕去,现在知道:各司其职,缺一不可。

谈天说地:这几个概念,你之前是不是也经常搞混?现在清楚了吗?留言告诉我,咱们一起理清楚。

坚持不懈,努力到感动自己,嘿嘿。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想成为优秀工程师的爸爸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值