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

news2024/11/28 23:52:26

解释

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

在这里插入图片描述
交换机内部有一张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.coloradmin.cn/o/1174800.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ConcurrentHashMap是如何实现线程安全的

目录 原理: 初始化数据结构时的线程安全 put 操作时的线程安全 原理: 多段锁cassynchronize 初始化数据结构时的线程安全 在 JDK 1.8 中,初始化 ConcurrentHashMap 的时候这个 Node[] 数组是还未初始化的,会等到第一次 put() 方…

常见面试题-MySQL专栏(三)MVCC、BufferPool

typora-copy-images-to: imgs 了解 MVCC 吗? 答: MVCC(Multi-Version Concurrency Control) 是用来保证 MySQL 的事务隔离性的,对一行数据的读和写两个操作默认是不会通过加锁互斥来保证隔离性,避免了频…

【Mybatis小白从0到90%精讲】07:Mybatis 传递参数方式详解

文章目录 前言一、序号传参二、@Param注解传参三、对象传参单个参数多个参数四、万能Map传参单个参数多个参数总结前言 Mybatis传递参数的方式,或者说 获取参数的方式,非常灵活,支持多种方式,所以为了彻底搞懂,今天我们来总结一下Mybatis传参方式! 一、序号传参 Mapper接…

老电脑升级内存、固态硬盘、重新装机过程记录

基础环境: 电脑型号:联想XiaoXin700-15ISK系统版本:Windows10 家庭中文版 版本22H2内存:硬盘: 升级想法: 内存升级,固态硬盘升级,系统重装(干净一点) 升级内存…

c++类和对象(八) static成员 友元

1.1 概念 声明为static的类成员称为类的静态成员,用static修饰的成员变量,称之为静态成员变量;用static修饰的成员函数,称之为静态成员函数。静态成员变量一定要在类外进行初始化。 面试题:实现一个类,计算…

Leetcode—187.重复的DNA序列【中等】

2023每日刷题&#xff08;二十&#xff09; Leetcode—187.重复的DNA序列 实现代码 class Solution { public:const int L 10;vector<string> findRepeatedDnaSequences(string s) {unordered_map<string, int> str;vector<string> ans;int len s.size()…

第 370 场 LeetCode 周赛题解

A 找到冠军 I 枚举求强于其他所有队的队 class Solution { public:int findChampion(vector<vector<int>> &grid) {int n grid.size();int res 0;for (int i 0; i < n; i) {int t 0;for (int j 0; j < n; j)if (j ! i)t grid[i][j];if (t n - 1) …

Linux环境基础开发工具使用(二)

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、Linux项目自动化构建工具-make/Makefile1、背景2、实例代码3、依赖关系4、依赖方法5、原理…

精品基于Python的图书借阅归还管控系统

《[含文档PPT源码等]精品基于Python的图书管控系统》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;python 使用框架&#xff1a;Django 前端技术&#xff1a;Ja…

从NetSuite Payment Link杂谈财务自动化、数字化转型

最近在进行信息化的理论学习&#xff0c;让我有机会跳开软件功能&#xff0c;用更加宏大的视野&#xff0c;来审视我们在哪里&#xff0c;我们要到哪去。 在过去20多年&#xff0c;我们的财务软件经历了电算化、网络化、目前处于自动化、智能化阶段。从NetSuite这几年的功能发…

理解 fopen的 rwa r+w+a+ 参数含义

tags: C categories: C 理解 一图胜千言 我愿称之为最强 c - Difference between r and w in fopen() - Stack Overflow; 需要注意里面的a和 a, 区别在于 a 不可以读而 a可以读. c - Difference between r and w in fopen() - Stack Overflow; ModeReadWriteCreate New Fil…

【Java基础】内部类

一、什么是内部类 在一个类的里面&#xff0c;再定义一个类。&#xff08;在一个类的内部定义的类&#xff0c;称为内部类&#xff09; 举例:在A类的内部定义B类&#xff0c;B类就被称为内部类 二、内部类的访问特点 1.内部类可以直接访问外部类的成员&#xff0c;包括…

数据处理中的中心化

数据处理中的中心化&#xff0c;就是将原数据减去平均值&#xff0c;得到新的数据&#xff0c;新的数据的平均值为0。 假设原数据是x&#xff08;x可以是多维的&#xff09;&#xff0c;其平均值是&#xff0c;新的数据&#xff0c;那么新数据的平均值是为0的。下面证明下&…

[LeetCode] 2.两数相加

一、题目描述 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个…

网络编程 - HTTP协议

目录 HTTP协议格式 一&#xff0c;请求格式 1.1 URL的基本格式 1.2 方法(method) 1.3 请求头header 二&#xff0c;响应格式 2.1 状态码 HTTP协议格式 HTTP协议与之前讲的TCP/IP协议不同&#xff0c;HTTP协议要分为两个部分——请求和响应&#xff0c;也就是一种"一…

过了面试,后面的在线测评还会刷人吗?

过了面试&#xff0c;后面的在线测评还会刷人吗&#xff1f;完全有可能刷&#xff0c;如果不是为了刷&#xff0c;何必要给你做线上测评&#xff0c;我说的有道理不&#xff1f; 好吧&#xff0c;说到为什么在线测评要刷人&#xff0c;怎么刷&#xff1f; 怎么才能确保不被刷&…

教你快速阅读java简单字节码

我们举例代码 public class Read {public static void main(String[] args) {int a20;int b30;a1;b15;System.out.println((ab)/2);}}我们将他进行运行&#xff0c;我们就会在target 里面出现.class文件&#xff0c;我们需要进入 执行这个代码 javap -c Read.class就会出现…

【ICN综述】信息中心网络隐私安全

ICN基本原理&#xff1a; 信息中心网络也是需要实现在不可信环境下可靠的信息交换和身份认证 信息中心网络采用以数据内容为中心的传输方式代替现有IP 网络中以主机为中心的通信方式&#xff0c;淡化信息数据物理或逻辑位置的重要性&#xff0c;以内容标识为代表实现数据的查找…

基于java+springboot+vue城市轨道交通线路查询系统-公交车线路查询

项目介绍 本系统是针对目前交通管理的实际需求&#xff0c;从实际工作出发&#xff0c;对过去的市轨道交通线路查询系统存在的问题进行分析&#xff0c;完善用户的使用体会。采用计算机系统来管理信息&#xff0c;取代人工管理模式&#xff0c;查询便利&#xff0c;信息准确率…

webgoat-(A1)injection

SQL Injection (intro) SQL 命令主要分为三类&#xff1a; 数据操作语言 &#xff08;DML&#xff09;DML 语句可用于请求记录 &#xff08;SELECT&#xff09;、添加记录 &#xff08;INSERT&#xff09;、删除记录 &#xff08;DELETE&#xff09; 和修改现有记录 &#xff…