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

为什么有了MAC地址,还需要IP地址?

解释

搞懂这个问题,首先需要了解交换机的功能

在这里插入图片描述
交换机内部有一张MAC地址映射表,记录着MAC地址和端口的对应关系。
在这里插入图片描述
如果A要给B发送一个数据包,构造如下格式的数据结构:
在这里插入图片描述
到达交换机时,交换机内部通过自己维护的 MAC 地址表,发现目标 B 的 MAC 地址 bb-bb-bb-bb-bb-bb 映射到了端口 1 上,于是把数据从 1 号端口发给了 B。

但随着机器数量的增多,交换机的端口不够,此时只要将多个交换机连接起来,这个问题就轻而易举搞定。

在这里插入图片描述此时,两个交换机将分别记录 A ~ H 所有机器的映射记录。

左边的交换机:
在这里插入图片描述
右边的交换机:
在这里插入图片描述
此时如果A 要发数据给 F(ff-ff-ff-ff-ff-ff),数据包首先到达左边的交换机,在左边的交换机上发现F的MAC地址映射到端口6上,然后数据通过端口6到达右边的交换机,在右边的交换机上发现F的MAC地址映射到端口3上,于是把数据从端口3发给了F。

然而,机器的数量骤增,交换机记录的映射表规模太大。

此时,找到一个设备(路由器)把两个交换机连接起来

在这里插入图片描述

左边的交换机只需要多一条路由器MAC地址和交换机端口号的映射关系即可。它只管发到路由器,剩下路由器怎么转发,左边的交换机不用管。
在这里插入图片描述

注意:路由器的每一个端口,都有独立的 MAC 地址;并且路由器至少有两个端口

这样的话,交换机就不用维护那么大的映射表了。

此时,想到两个问题:

  • 如何知道哪些数据需要发给路由器?
    这时候就要看主机IP地址,如果在一个子网内,那么数据将只经过交换机达到目的主机;如果不在一个子网内,就交给路由器去处理。

  • 主机怎么知道哪个是路由器?
    在主机上要设置默认网关。当检测到目的主机和自己不在一个网关时,就发给这个IP地址(路由器)

参考

有了 IP 地址,为什么还要用 MAC 地址? - 无聊的闪客的回答 - 知乎

http://www.lryc.cn/news/219844.html

相关文章:

  • Eclipse开发环境的安装与配置
  • 《006.Springboot+vue之旅游信息推荐系统》【有文档】
  • LangChain+LLM实战---使用知识图谱和大模型来实现多跳问答
  • 【实践篇】一次Paas化热部署实践分享 | 京东云技术团队
  • 蓝桥杯官网填空题(算式问题)
  • Verilog HDL语言基础知识
  • 11.1~11.2数电实验一些点+11.4~11.5报错复盘
  • 从电脑的角度,探究被强制删除的文件的去向和恢复方法!
  • 淘宝、天猫电商平台商品详情最低价skuid爬取、各类sku信息调取
  • C/S架构学习之组播
  • vue package.json Script配置讲解
  • wagtail的使用
  • 【JavaScript】零碎知识点总结_2
  • P1182 数列分段 Section II 题解
  • vscode1.83远程连接失败
  • Leetcode-141 环形链表
  • 深入了解汽车级功率MOSFET NVMFS2D3P04M8LT1G P沟道数据表
  • C 作用域规则
  • Go中第一类函数
  • Linux内核分析(五)--IO机制原理与系统总线
  • oracle-sql语句执行过程
  • 京东数据分析:2023年9月京东打印机行业品牌销售排行榜
  • Flutter 自签名证书
  • 观察者模式——解决解耦的钥匙
  • MATLAB和西门子SMART PLC UDP通信
  • 打造高效运营底座,极智嘉一体化软件系统彰显科技威能
  • sqlsugar查询数据库下的所有表,批量修改表名字
  • 如何用 GPT-4 全模式(All Tools)帮你高效学习和工作?
  • Cesium 展示——移动拖拽实体
  • javaSE学习笔记-未完