网络通信基础
本文最后更新于 2025年8月11日 晚上
从MAC说起
MAC地址的全名是Media Access Control ,即媒体接入控制,它通常被我们理解为一个网络设备的网络身份标识,用来标识该设备在网络中的唯一身份。它由一个48位(6字节)的二进制标识符构成,通常以十六进制格式表示,用冒号或连字符分隔:
1 | |
一些特殊的MAC地址提到不同的转发识别功能 :
广播地址
1 | |
用于向全端口发送数据
组播地址
1 | |
通过特殊的地址位标记,之后由组播协议进行识别
单播地址
1 | |
发送给特定设备的网络数据帧
通过以上几种MAC地址的分类和构成,我们可以总结出MAC地址的实际作用
- 通过特殊字段设置提供特定的控制信息
- 通过字段的匹配度来完成控制策略
对于设备来说就是
- 路由交换设备可以根据数据帧的MAC头来判断其描述的协议信息/或者完成端口的转发
- 主机设备根据MAC头来判断是否是转发给它的数据帧,如果是则交给内核层的网络协议栈处理
处理流程
一个简单的二层数据传输过程

在这个过程中,我们需要理解的重点是数据帧是否会被处理是由接收端进行控制的。发送端的任务只是将源主机构造的数据包封装链路层数据头,并转换为电信号沿物理介质发送。这意味着,MAC地址是否与目的地址一致,只是一个目的报文会被处理的充分条件,而不是必要条件。
转发
冲突域

当更多的设备需要接入网络,设备间想要相互通信,就不能只靠网线直连进行数据传递。这时出现了网桥设备。网桥设备提供了多个端口,所有接入到网桥中设备都会监听到其他设备发送到网桥中的电信号信息,之后识别目的Mac来判断自己是否是目标主机。
但此时如果多个设备同时需要向外发出信息时,就会有设备因为网络一直繁忙导致消息阻塞,这样的组网方式被称为所有的设备都处于同一个”冲突域“。
广播域

为了解决设备间数据收发的冲突问题,出现了交换机设备。当交换设备接收到来自某一端口的数据帧信息,会创建一个端口-MAC地址映射条目,放入MAC地址表中,当其他设备请求某一个目的MAC时。交换设备通过查询地址与端口的映射,将数据帧转发到目的端口。最终发送到目标主机。通过映射-转发的模式将一个多主机的冲突域拆分为多个交换机与设备之间的单一冲突域,解决了多设备间通信的冲突问题。
同时我们需要注意到,这里恰好证明了数据帧的处理是由接收端控制的。交换设备接受所有设备的MAC信息,并完成了转发处理。并不需要考虑是否与自己的端口MAC一致。
在解决了冲突域问题后,为了进一步提高传输速率。就需要过滤不需要的帧信息。我们知道目的MAC标记为广播地址的数据帧会向所有端口进行转发,但是在我们对不同设备的通信对象存在划分的情况下,就可以将广播域进行分割,使得广播信息可以得到更高效的传输。
VLAN与转发策略

vlan 是一种分割广播域的重要手段。它的原理是创建一个虚拟的局域网络,将需要被组合到一起的设备所连接的端口,加入到同一个虚拟网络中。这样当某个网络中的设备发起请求时,会匹配在对应vlan的mac地址表中查询/转发,这样就完成了分割不同广播域的效果。
转发策略 当设备间通信需要进行跨多个交换设备的二层转发时,可以使用端口策略模配置来控制数据的转发行为
1 | |

以图示为例 :
1 | |
路由
虽然我们现在可以通过vlan这种帧扩展形式完成数据帧的跨设备转发过程。但是我们依然只能按照预先设置好的转发路径与目标主机通信。因为对于MAC地址通信来说,只能依赖于目的地址来完成转发过程。
IP
这时我们就需要使用IP层的路由查询。IP层是承载于数据链路层之上的一种控制结构。在二层转发中,目的MAC是目标主机唯一的识别标识,只有确认了MAC地址,才能使目的主机接收处理该数据帧。这就导致这个通信过程中该目的MAC地址需要被正确保留。也就只能通过转发途径完成数据的传输。而通过使用IP 我们就可以在源/目两端更加灵活的处理通信过程。
路由

因为IP层是承载于链路层之上的,所以每一个网关实体都必然是具备MAC地址的。因为它需要先做“目的MAC“是否是”自身MAC” 的判断,才能进行进一步的解析。以静态路由为例。一般的数据通信架构由多个交换机最终连接到路由器的端口上,这个端口被称为网关。所有受它管理的主机都要通过它完成数据的转发。
当 一个主机发起请求时,由协议栈组装具有目的IP源IP的数据包。之后
- 查询本地路由,向最合适的路由网关转发(没有合适的就发往默认网关)。
1 | |
- 网关收到数据包后检查MAC地址,与自身MAC地址一致,则检查目的IP信息,与本地的路由表进行匹配,选择最合适的路由表项进行路由
1 | |
- 最终数据包被路由到目标网段的网关,目标网段网关查询ARP表项,获取目的IP与目的主机的MAC映射,构造数据帧发送给目的主机
1 | |
从这里我们可以看出来当数据包离开自身网段时,数据帧中就不再持有源主机的MAC地址。而是通过匹配网关持有的路由表信息,来完成路由过程,因为路由过程是一个拆/封装数据包的过程,所以不能直接通过硬件转发,而是需要使用软件解析目的MAC,并替换源/目MAC 来完成的二层网络传输,以达到持有“目标网段”的下一跳设备上。最终完成的数据传输过程
NAT(网络地址转换)技术介绍
NAT的作用与价值
IPv4地址资源有限(32位地址空间约43亿个地址),无法满足全球设备联网需求。NAT技术通过地址复用和转换,有效缓解了IP地址短缺问题,同时为内网用户提供了安全隐私保护。
主要优势:
-地址复用:多个内网设备共享少量公网IP地址
-安全隐私:隐藏内网拓扑结构和真实IP地址
-成本节约:减少公网IP地址的购买和维护成本
NAT工作原理
NAT本质上是一个地址和端口的映射转换过程:
出站流量处理
1 | |
入站流量处理
1 | |
NAT转换表示例
1 | |
NAT的三种主要实现方式
1. 静态NAT(Static NAT)
特点:一对一固定映射关系
1 | |
2. 动态NAT(Dynamic NAT)
特点:从公网IP地址池中动态分配
1 | |
适用场景:拥有多个公网IP,需要为内网提供临时外网访问
3. PAT(端口地址转换)/NAPT
特点:单个公网IP + 不同端口号实现多用户共享
1 | |