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

Linux跨网络通信中IP与MAC的作用


是的,MAC地址和IP地址分别属于OSI模型的不同层次,并在数据封装过程中被添加到不同的位置:


1. MAC地址(数据链路层)

  • 作用层级:数据链路层(第二层)。
  • 封装位置:添加到数据链路层帧的头部
  • 具体形式
    • 在以太网中,帧头部包含源MAC地址目标MAC地址
    • 例如,一个以太网帧的格式为:
      | 目标MAC(6字节) | 源MAC(6字节) | 类型(2字节) | 数据(IP包) | CRC(4字节) |
      
  • 特点
    • 仅在同一局域网(LAN)内有效,用于直接通信(如设备到交换机、设备到路由器接口)。
    • 每经过一个网络设备(如路由器),MAC地址会被重写(源MAC改为当前设备接口的MAC,目标MAC改为下一跳的MAC)。

2. IP地址(网络层)

  • 作用层级:网络层(第三层)。
  • 封装位置:添加到网络层数据包的头部
  • 具体形式
    • IPv4数据包头包含源IP地址目标IP地址
    • 例如,IPv4包头格式为:
      | 版本 | 头部长度 | 服务类型 | 总长度 | 标识 | 分片信息 | TTL | 协议 | 校验和 | 源IP(4字节) | 目标IP(4字节) | 选项(可选) |
      
  • 特点
    • 全局唯一逻辑地址,用于跨网络端到端通信。
    • 在数据传输过程中,IP地址通常保持不变(除非经过NAT设备)。

3. 数据封装过程(以HTTP请求为例)

  1. 应用层:生成HTTP请求(如GET /index.html)。
  2. 传输层:添加TCP头部(包含源端口、目标端口)。
  3. 网络层:添加IP头部(包含源IP、目标IP)。
  4. 数据链路层:添加帧头部(包含源MAC、目标MAC)和尾部(CRC校验)。
  5. 物理层:转换为比特流通过物理介质传输。
示例封装结构
[ 以太网帧头部(目标MAC | 源MAC) ][ IP包头(源IP | 目标IP) ][ TCP包头(源端口 | 目标端口) ][ HTTP数据 ][ 以太网帧尾部(CRC) ]

4. 关键区别

特性MAC地址IP地址
作用范围同一局域网(LAN)内有效全局唯一,跨网络有效
封装层级数据链路层(帧头部)网络层(数据包头部)
修改频率每经过一个网络设备都可能被修改通常保持不变(除非NAT)
寻址目标下一跳设备(如交换机、路由器)最终目标设备

5. 协作示例

  • 场景:设备A(IP 192.168.1.10,MAC AA:BB:CC:DD:EE:FF)访问服务器B(IP 203.0.113.5,MAC未知)。
  • 流程
    1. 本地网络
      • 设备A发现目标IP不在本地子网,将数据帧的目标MAC设为默认网关(路由器)的MAC
      • 数据链路层封装:源MAC(AA:BB:CC:DD:EE:FF)→ 目标MAC(网关MAC,如11:22:33:44:55:66)。
    2. 路由器处理
      • 路由器剥离MAC头部,检查目标IP 203.0.113.5
      • 根据路由表,将数据包转发到下一跳(如ISP的路由器),重新封装MAC地址(源MAC改为路由器出口MAC,目标MAC改为ISP路由器的MAC)。
    3. 服务器端网络
      • 最终路由器通过ARP获取服务器B的MAC,封装帧的目标MAC为服务器B的MAC,IP地址始终不变。

总结

  • MAC地址:在数据链路层的帧头部添加,用于同一物理网络内的直接设备寻址。
  • IP地址:在网络层的数据包头添加,用于跨网络的逻辑寻址。
  • 协作:IP地址标识全局终点,MAC地址标识每一跳的下一站设备,两者通过分层封装实现端到端通信。

相关文章:

  • [Git] 初识 Git 与安装入门
  • 21. 自动化测试框架开发之Excel配置文件的测试用例改造
  • Python、Pytorch、TensorFlow、Anconda、PySide、Jupyter
  • 能碳一体化的核心功能模块
  • React Flow 数据持久化:Django 后端存储与加载的最佳实践(含详细代码解析)
  • [SpringBoot]Spring MVC(6.0)----图书管理系统(初)
  • vue3前端后端地址可配置方案
  • 程序设计实践--排序(1)
  • AI无法解决的Bug系列(一)跨时区日期过滤问题
  • JAVA EE(进阶)_HTML
  • SpringCloud+Vue实现大文件分片下载(支持开始、暂停、继续、取消)
  • 云原生攻防3(Docker常见攻击方式)
  • 2025年渗透测试面试题总结-华顺信安[实习]安全服务工程师(题目+回答)
  • 服务器数据恢复—Linux系统服务器崩溃且重装系统的数据恢复案例
  • 学习黑客数据小包的TLS冒险之旅
  • PHP、JAVA、Shiro反序列化
  • 云原生主要架构模式
  • java云原生实战之graalvm 环境安装
  • 考研系列-408真题计算机组成原理篇(2015-2019)
  • C++ QT 与 win32 窗口可以互操作
  • 北斗专访|星纪魅族郭鹏:AR眼镜正迈入行业发展“破局之年”
  • 6月底将返回中国,旅日大熊猫获颁“感谢状”
  • 国家统计局督察组:江苏有关地区仍存在干预数据上报等问题
  • 昆明一小区火灾调查报告:七旬夫妇身亡,生前拾荒存放大量可燃物
  • 零跑汽车一季度营收破百亿元:净亏收窄至1.3亿元,毛利率14.9%创新高
  • 俄美元首通话超2小时,普京称愿与乌方共同起草和平备忘录