困惑:

“I always think that IP can replace all the functions of MAC, why do I need a MAC address”

发布困惑到Reddit上面 大家的回复让我再次对网络有了深刻的学习

Reddit

问题1:

交换机对数据包的转发是建立在物理地址(MAC地址)基础之上的,对于IP网络协议来说,它是透明的,即交换机在转发数据包时,不知道也无须知道信源机和信宿机的IP地址,只需知其目的MAC地址。 怎么理解这句话

交换机的定位:

数据链路层 识别MAC地址 将MAC地址把帧发送到正确的端口

如何理解交换机对IP透明?

交换机只看以太网头的目的MAC地址 → 决定转发端口。 IP头里面的内容(源IP、目的IP)交换机不看也不关心。

问题2:

什么是电路交换?

你拨通对方号码 → 电话交换机会为你和对方专门划出一条通道, 在通话过程中,这条通道只属于你们两个人,别人不能用。 通话结束 → 线路释放。

问题3:

什么是分组交换:

数据切片:把要传输的数据切成很多小的“分组(Packet)”,每个分组里带上源地址和目的地址。 独立传输:这些分组可以走不同的路径,只要最终到达目的地。 重组:目的地再根据分组序号重组出完整数据。

问题4:TCP/IP四层模型崛起(1980s) 说明了什么? 这个模型解决了什么问题? 为什么会这么设计?

理解分层思想:

底层(链路层/物理层):光纤、双绞线、Wi-Fi、5G……负责怎么把0和1送出去。 上层(应用):HTTP、邮箱、视频通话……只管“我要发这些数据”。 中间的网络层(IP)和传输层(TCP/UDP)把两边隔离开 → 确保上层不用操心底层是光纤还是无线。

应用层做什么?

定义应用逻辑和数据格式,应用不需要关心数据被分成多大包、怎么发出去,它只需要“发数据”给另一端。(发送的是字节流)

传输层做什么?

提供端到端通信(两台计算机之间)可靠性(TCP)或快速性(UDP)不关心数据具体内容,只看它是一串字节。

跨硬件兼容性:

IP层像“通用信封”:写好源/目标IP地址后,交给下层“邮递员”(不同硬件)投递。 下层硬件像“不同运输工具”:

以太网用“卡车”(网线+MAC地址) 卫星链路用“飞机”(无线电波) 拨号Modem用“自行车”(电话线+模拟信号)

无论底层是何种硬件,只要它能封装并传输IP包,就能加入互联网。

问题5:所以当封装了WIFI帧的数据包发送给路由器时 路由器所做的流程是什么? 还有一个疑惑WIFI帧属于数据链路层根据对等传输不应该交给交换机吗? 为什么要发送给路由器呢?

接收帧: 路由器的无线接口收到 Wi-Fi 信号,解码成数字信号。 链路层解封装: 检查 Wi-Fi 帧头(目的 MAC 是否是自己)。 去掉 Wi-Fi 帧头,得到里面的 IP 包。 网络层处理: 查看 IP 包的目标地址。 如果目标 IP 在本地网段,就直接发回局域网; 如果目标 IP 在其他网络,就按照路由表选择下一跳(可能是公网出口)。 重新封装: 把这个 IP 包重新封装成新的链路层帧(可能是以太网帧、可能是运营商的某种底层格式)。 发送: 发到对应端口(WAN口/运营商)。

“Wi-Fi帧属于数据链路层,为什么不交给交换机?”

同一网段内 如果你要访问同一个局域网内的设备(例如打印机、NAS): Wi-Fi帧发送后,路由器内的交换机部分(很多家用路由器有交换机芯片)会处理它,直接转发给目标设备。 在这种情况下,路由器的路由功能几乎没参与,只是当成交换机用。

不同网段 / 上网 当你访问互联网(例如百度服务器): 你的电脑并不知道百度服务器的MAC地址(因为它不在同一个二层网段), 所以只能把包发给默认网关(路由器的MAC)。 路由器不仅是无线接入点,还是三层设备: 它能查看 IP 层信息并做路由决策,而交换机只能看 MAC 地址。

5. 梳理流程: 所以当发送一个数据包时 首先判断是否在同一个网段内使用ARP广播网段内设备判断!如果发现了则直交换机发送帧给设备,如果没有发现则需要跨网段,ARP广播则会找到路由器的MAC的地址发送帧然后解封帧头检查IP重新封装帧头?是这个流程吗 如果是的话再次封装的帧头内容是什么呢?

再次封装的帧头内容: 源MAC:路由器下一跳接口的 MAC 地址(例如它的WAN口MAC)。 目的MAC:下一跳设备的 MAC 地址(例如运营商汇聚交换机的MAC)。

为什么每一跳都要“重新封装帧头”?

链路层的地址(MAC)只在一段链路有效 MAC就是局域网内有效!

问题6:

建立连接 是 任何的端对端请求都需要的吗?

不是所有端对端通信都需要建立连接,这完全取决于使用的协议: 需要连接:TCP(如网页浏览、文件传输)。 不需要连接:UDP(如视频通话、DNS查询)、ICMP(如Ping)。 甚至不用IP:ARP(局域网MAC寻址)、Wake-on-LAN(纯二层唤醒)。