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

局域网通信原理 --- IP与MAC与ARP与交换机(更新)

在这部分能学到,今天学的比较多

  • 网络参考模型复习
    • OSI七层
    • TCP/IP模型
    • 每层负责什么
  • IP与MAC的角色区别
    • IP:网络层逻辑地址,负责定位主机
    • MAC:数据链路层物理地址,负责局域网传输
  • ARP协议
    • 为什么知道IP还需要MAC
    • ARP如何连接网络层和数据链路层
  • 二层交换机原理
    • 根据MAC地址表转发
    • 学习MAC地址
    • 不关心IP
  • 三层交换机引入
    • MAC转发 vs IP路由
    • 同网段通信 vs 跨网段通信
  • Ping实验分析
    • ICMP
    • ARP
    • Ethernet帧
    • 抓包分析

复习

首先,通过前面的 网络参考模型 知道

数据传输经过各种层

osi应用层,表示层,会话层,传输层,网络层,数据链路层,还有物理层

tcp/ip的传输层 网络层 网络层 网络接口层

引入

ip与mac与交换机

然后ip这块的话主要是用到

osi或者 tcp/ip 的网络层给数据包打上ip封装,然后传输

在实验中我发现还需要用到

osi 数据链路层 或者 tcp/的 网络接口层mac地址

实验这里用的是二层交换机工作在数据链路层,根据MAC地址转发数据的交换机,他并不关心ip是多少) 所以这里查询mac是很有必要的

拓展一下三层交换机是什么(后面不同网段的时候要用到)

三层交换机:

简单理解:

二层交换机 + 路由功能

也就是说:

它同时会:

看MAC:

二层:

MAC → 端口

也会:

看IP:

三层:

IP → 下一跳

例如:

普通二层交换机:

PC1 | SW | PC2

只能:

同网段通信。

例如:

192.168.1.10 ↓ 192.168.1.20

可以。

但是:

192.168.1.10 ↓ 192.168.2.20

不行。

因为需要路由。

三层交换机:

可以:

VLAN10 192.168.1.0 三层交换机 VLAN20 192.168.2.0

它内部有:

路由接口。

所以:

可以实现:

不同网络通信。

二层交换机和三层交换机区别

二层交换机

三层交换机

工作层

二层

二层+三层

依据

MAC

MAC+IP

主要功能

局域网交换

交换+路由

能否跨网段

不能

可以

是否有路由表

没有

典型用途

接入层

核心/汇聚层




实验开始

根据chatgpt给我的实验,来体验一下发送数据

1.拓扑(就是弄成图上这样)

使用的是s5700二层交换机

2.配置

pc1 为 192.168.1.10

pc2 为 192.168.1.20

掩码都是255.255.255.0

3. ping 然后查询mac地址

使用 ping 和arp -a 命令

现在成功找到 192.168.1.20这个目标了(网络层)

然后 也能查到他的mac地址(数据链路层、网络接口层)

由此看出 arp 是连接 网络层 和数据链路层的协议太牛逼了

交换机后台

system-view 系统视图

然后 display mac-address 来查询

可以看到 这个交换机这里

只有对应接口 的mac地址根本没有ip地址

ge0/0/1 对应 pc1 对应了 5489-98ea-4120

pc2同理

抓包看看

ping

你抓包看到:

Ethernet II 第二行 IPv4 第三行 ICMP 第四行

对应:

二层: Ethernet + MAC 三层: IP + ICMP

形成一个非常重要的网络工程思维(ai说的以后再说,嘻嘻)

以后看到问题:

二层问题:

看:

MAC ARP VLAN 交换机

例如:

  • MAC表有没有
  • VLAN是否正确
  • 端口是否UP

三层问题:

看:

IP 路由 网关

例如:

  • IP是否正确
  • 掩码是否正确
  • 路由表有没有

深入理解数据发送过程

1.pc1 进行 ping

192.168.1.20

他有两个问题: a.已经知道目标 ip 192.168.1.20

b. 不知道目标MAC 因为 二层通信必须要目标mac

2.查看是否是同网段(具体怎么判断见前一个帖子)

pc1判断 对方是否和自己是一个网段

是,同一个局域网,找mac地址

不是,需要设置网关

3. 查看arp缓存,寻找mac地址

PC1

pc1 查看自己的arp表(arp -a)

有则数据封装

没有(一次通信都没有)则开始 进入arp过程

PC1生成ARPRequest

内容:

谁是192.168.1.20? 请告诉192.168.1.10你的MAC地址

但是问题:

PC1不知道PC2 MAC。

所以二层目的MAC写:

FF-FF-FF-FF-FF-FF

也就是:

广播。

完整:

源MAC: AA-AA-AA 目的MAC: FF-FF-FF-FF-FF-FF 源IP: 192.168.1.10 目标IP: 192.168.1.20

交换机

交换机收到这个数据帧。

先学习:

看源MAC:

AA-AA-AA

来自:

GE0/0/1

于是记录:

MAC表

AA-AA-AA GE0/0/1

然后看目的MAC:

FF-FF-FF-FF-FF-FF

发现:

这是广播。

所以:

除了进入端口以外:

全部发送。

例如:

PC1 --- SW ----PC2 ----pc3 ----pc4

PC2

PC2收到ARP请求

PC2看到:

目标IP:

192.168.1.20

是自己。

于是回复。

生成:

ARPReply

内容:

192.168.1.20的MAC是BB-BB-BB

这个回复不是广播

因为:

PC2已经知道PC1 MAC

所以:

单播回去给pc1:

源MAC: BB-BB-BB 目标MAC: AA-AA-AA

回复

交换机转发ARP Reply

交换机收到:

源MAC:

BB-BB-BB

学习:

BB-BB-BB 对应GE0/0/2

目的:

AA-AA-AA

查MAC表:

发现:

AA-AA-AA GE0/0/1

于是:

直接发送。


PC1更新ARP表

PC1现在知道:

192.168.1.20 对应 BB-BB-BB

保存:

ARP缓存:

192.168.1.20 | | BB-BB-BB

现在终于可以发送ping。

4.真正的开始发送ping了

Ping使用:

ICMP协议

PC1生成:

ICMP Echo Request。

然后开始封装。


加IP头

增加:

源IP: 192.168.1.10 目的IP: 192.168.1.20

变成:

IP数据包

加MAC头

增加:

源MAC: AA-AA-AA 目的MAC: BB-BB-BB

形成:

Ethernet帧

最终:

+----------------+ | 目的MAC BB | | 源MAC AA | +----------------+ | 目的IP .20 | | 源IP .10 | +----------------+ | ICMP Echo | +----------------+

交换机转发Ping

交换机收到。

查看:

目的MAC:

BB-BB-BB

查询MAC表:

BB-BB-BB GE0/0/2

所以:

只发送给PC2。

注意:

这一次:

不是广播。

不是泛洪

是:

单播。


PC2收到Ping

PC2发现:

目的IP:

192.168.1.20

是自己。

交给操作系统。

ICMP模块处理。

发现:

有人ping我。

于是生成:

ICMP Echo Reply。


回复过程

反方向:

PC2:

IP: 192.168.1.20 MAC: BB-BB-BB

发送:

交换机

PC1

最后:

PC1收到:

Reply from 192.168.1.20

到此已经 ,理解完一次通信的过程了

中间提到了一个名词泛洪到底是什么?

其实就是 中间交换机把目标mac地址发送给全部端口的过程,前面提到过

泛洪又有两种情况:

第一:

pc 给的mac广播地址,(不是ip的广播地址)

目标MAC是:

FF-FF-FF-FF-FF-FF(这个地址算一个特殊的目标为全部人的地址)

叫:

广播泛洪。

例如:

ARP Request。


第二:

目标MAC 不是广播,但是:

MAC表没有。

叫:

未知单播泛洪。

例如:

pc1 这次不发 ffffff这个地址了,他知道并且直接让交换机找 bb-bb-bb-bb,但是交换机里没有pc2 的这个bb记录,所以继续泛洪

局域网通信流程图总结

http://www.jsqmd.com/news/1265656/

相关文章:

  • 专科生论文写作神器:智能工具全解析
  • 实时光照校正技术:提升恶劣环境图像质量
  • AI助手如何撰写合规技术博客指南
  • 智能水位识别系统:基于YOLOv5与U-Net的水尺图像解析技术
  • HarmonyOS ArkTS API 24+ 实战:构建、安装并验证 M1 首个可运行版本
  • 视频字幕提取终极指南:3分钟学会本地OCR字幕生成SRT文件
  • Nginx PID文件缺失问题解析与解决方案
  • 2026 年新发布:宜宾热门的路易保罗瓷砖订制厂家选哪家,别再踩雷!这套瓷砖如何让你的厨房焕然一新? - 实业推荐官【官方】
  • ScrapeGraphAI:自然语言驱动的智能爬虫开发实践
  • VeADK Agent容器化部署实战指南
  • Ubuntu 18.04安全升级Python 3.12:5分钟搞定PPA安装与虚拟环境配置
  • AI原生应用开发:思维框架与工程实践指南
  • 全球唯一最高阶的 AI 底层治理模型
  • 口碑好靠谱的边墙风机公司品牌推荐
  • OpenClaw AI助手飞书集成指南与实战
  • 大模型RAG架构实战:从API调用到企业级应用优化
  • Windows邮槽通信:原理、实现与应用场景
  • 技术团队激励体系设计:从代码质量到架构健康的工程实践
  • Unity异步加载框架:Addressables与UniTask的工程实践
  • Docker镜像操作指南:从基础命令到生产实践
  • AI文献综述助手:智能检索与自动写作实践指南
  • 2026年南阳交通事故律师怎么挑?5个判断标准选对律师不踩雷 - 本地品牌推荐
  • ARM Cortex-M4异常处理与μDMA控制器实战解析
  • 终极Windows 11优化指南:Win11Debloat一键清理与性能提升完整教程
  • Langchain简单快速上手教程(二)——聊天模型之模型定义
  • C++模板数组类封装:从原理到实践,掌握泛型编程与内存管理
  • 2024年C/C++面试全攻略:从基础项目到高薪Offer
  • 自编码器在工业振动异常检测中的实践与优化
  • 影刀RPA 采集结果自动发送邮件报告:数据采集推送一条龙
  • Claude中转站流式输出:聊天产品要看首字体验而不是总耗时