当前位置: 首页 > web >正文

计算机网络学习(八)——MAC

一、MAC

在计算机网络中,MAC(Media Access Control,媒体访问控制)地址数据链路层的重要概念,它用于唯一标识网络中的设备,并且在局域网(如以太网)中发挥关键作用。

MAC 是硬件地址,也称为物理地址或链路地址,用于在同一链路层中唯一标识网络接口(如网卡)。

  • 是网卡出厂时烧录的一个唯一标识;
  • 用于局域网中设备的识别与通信;
  • 与 IP 地址不同,MAC 地址与设备硬件绑定,不能跨网络路由

二、MAC 地址的结构

MAC 地址是 48 位(6 字节),常以十六进制表示,
由两部分构成:

字节位置字节数名称说明
前 3 字节24 位OUI(组织唯一标识符)由 IEEE 分配给制造商(如 Intel、Cisco)
后 3 字节24 位NIC-specific(设备序列号)由厂商自定义,唯一标识该设备

示例:

00:1A:2B:3C:4D:5E
└──┬──┘ └───┬───┘OUI    设备序列号
  • 00:1A:2B 是某个厂商分配的 OUI(如 Intel);
  • 3C:4D:5E 是该厂商生成的设备唯一编号。

三、MAC 地址的分类

类型说明
单播地址(Unicast)表示发送给某一个设备
广播地址(Broadcast)FF:FF:FF:FF:FF:FF,表示发送给所有设备
多播地址(Multicast)表示发送给一组设备,首字节的最低位为 1
本地管理地址可以由用户或软件自定义,区别于全球唯一地址(由IEEE分配)

四、MAC vs IP

比较项MAC 地址IP 地址
层级数据链路层(第二层)网络层(第三层)
范围仅在本地网络有效可跨网络传输
分配方式由设备厂家出厂时指定通常由网络管理员或 DHCP 分配
是否唯一全球唯一(OUI + 序列号)网络内唯一(可变动)

在以太网通信中,IP 是逻辑地址,而 MAC 是物理地址,设备实际是通过 MAC 通信的。

五、ARP 协议:桥梁作用

ARP(Address Resolution Protocol,地址解析协议) 是 TCP/IP 协议族中的一个核心协议,工作在 数据链路层与网络层之间,用于将 IP 地址解析为对应的 MAC 地址,是局域网通信中不可缺少的协议。

举例:
主机 A 想向 192.168.1.5 发送数据,但不知道它的 MAC 地址 → 使用 ARP 请求来获取。

ARP 工作流程(请求-响应机制):

  1. 发送请求(ARP Request):

    • 主机 A 构造一个广播帧,询问“谁是 192.168.1.5?”;
    • MAC 目标地址:FF:FF:FF:FF:FF:FF(广播);
    • 包含发送方的 IP 和 MAC 地址。
  2. 接收响应(ARP Reply):

    • 目标主机 B 收到请求,发现目标 IP 是自己 → 回复包含自身 MAC 地址的应答帧(单播给 A)。
  3. 更新缓存

    • A 收到响应后,将 B 的 IP 与 MAC 的映射关系缓存到 ARP 缓存表(ARP Cache)

六、MAC 地址与交换机

  • 交换机是工作在数据链路层的设备;
  • 它通过学习 MAC 地址表(MAC → 端口)转发数据;
  • 当接收到一个帧时,交换机会查找目标 MAC 所在端口,仅将数据转发到该端口(而非广播);
  • 若未知地址,则广播该帧。

七、MAC 伪装与安全问题

虽然 MAC 地址理论上是固定的,但它可以被修改(伪装):

行为说明
MAC 伪装修改本机 MAC 地址,使其看起来像另一个设备
ARP 欺骗伪造 ARP 响应,冒充网关等设备,实现中间人攻击
防范手段静态 ARP 表、防ARP欺骗软件、网络访问控制(NAC)
http://www.xdnf.cn/news/9013.html

相关文章:

  • 3560. 木材运输的最小成本
  • 时序模型上——ARIMA/MA/AR
  • GaussDB资源冻结与解冻:精细化资源管理的实践与策略
  • Webpack和Vite构建工具有什么区别?各自的优缺点是什么
  • 华为OD机试真题——虚拟理财游戏(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • 华为OD机试真题——数据分类(2025B卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
  • 162. 寻找峰值
  • 【芯片设计中的跨时钟域信号处理:攻克亚稳态的终极指南】
  • Rust 1.0 发布十周年,梦想再度扬帆起航!
  • Class ‘AlibabaCloud\Tea\Utils\Utils\RuntimeOptions‘ not found
  • 人脸识别备案快速高效服务
  • 有效的字母异位符--LeetCode
  • 2025年5月架构真题回忆
  • SQL连接字符串的差异造成远程服务器不能正常连接
  • 数据库入门教程:以商品订单系统为例
  • 篇章四 数据结构——顺序表
  • 代码随想录算法训练营第60期第四十八天打卡
  • 010501上传下载_反弹shell-渗透命令-基础入门-网络安全
  • 《棒球百科》国家一级运动员和二级运动员的区别·棒球1号位
  • 【bug排查记录】由Redission配置引发的Satoken血案
  • Nginx 核心功能深度解析:负载均衡、缓存加速与安全防护
  • Structure-Revealing Low-Light Image Enhancement Via Robust Retinex Model论文阅读
  • 如何最简单、通俗地理解Pytorch?神经网络中的“梯度”是怎么自动求出来的?PyTorch的动态计算图是如何实现即时执行的?
  • 重构开发范式!飞算JavaAI革新Spring Cloud分布式系统开发
  • 图像分割技术的实现与比较分析
  • Windows计算机管理:定时调用指定的可执行程序(.exe)
  • DHCPig:使用 scapy 网络库的 DHCP 耗尽脚本!全参数详细教程!Kali Linux教程!
  • 数据治理进阶:数据治理基础概念解释【附全文阅读】
  • sqli-labs第二十六关——Trick with commentspace
  • Python-numpy中常用的统计函数及转换函数