计算机网络——MAC地址和IP地址
目录
前言
引入
MAC地址与IP地址
IP地址和MAC地址是什么?如何起作用的?
MAC地址如何表示与确定网卡在网络中的确定位置?
DHCP协议自动帮我们配置
操作系统是如何知道对方的MAC地址的?
前言
本博客是博主用于复习计算机网络的博客,如果疏忽出现错误,还望各位指正。
这篇博客是在B站掌芝士zzs这个UP主的视频的总结,讲的非常好。
可以先去看一篇视频,再来参考这篇笔记(或者说直接偷走)。
简单说网络1-计算机是如何通信的?IP地址与mac地址是什么?dhcp与arp又是什么?_哔哩哔哩_bilibili
引入
在家庭网络中有许多的网络设备,比如我们可以有
- 两台计算机A和B
- 一台手机
- 一台电视机
他们都连接到了路由器上,并且路由器通过运营商线路接入了因特网。
在这个网络模型中有许多的应用场景,比如
- 计算机A和计算机B之间可以互相发送文件
- 手机可以通过APP控制电视机
- 电视机访问计算机A上共享的影片
- 计算机和手机访问互联网上的网站
- 在家中通过VPN连接到公司内网进行工作
以上几种应用场景都脱离不了一件事,就是通过网络进行通信。
MAC地址与IP地址
如果我们想要跟对方进行通信,通常我们需要知道对方的IP地址。
但是在网络通信中还有一个非常重要的地址就是MAC地址。在网络通信中起到至关重要的作用。
IP地址和MAC地址是什么?如何起作用的?
在现实生活中,我们如果要给对方写信,除了信件内容以外,我们还需要填写信封,信封有两个重要信息,一个是收件地址,一个是收件人,收件地址表示这封信要寄到哪里,收件人表示信要寄给谁。
同样的道理,在网络世界中,我们要发信息给别人,也需要知道收件地址和收件人,他们就是MAC地址和IP地址,MAC地址就是收件地址,IP地址就是收件人。
我可以住在家里,也可以住在公司,也可以住在父母家……
如果你要给我写信,首先要知道我现在住在哪里。
在网络中也是这样的,如果把网络比喻为我们生活的城市,那网卡就是城市中的建筑,MAC地址就是这栋建筑的物理地址,而IP地址就是在这些建筑中的人。
与写信不同,在计算机网络中发送信息,我们只需要填写内容和对方的IP地址。
操作系统会根据目标IP自动查询ARP表,获取对方的MAC地址,补齐这封信从网卡发出。
虽然计算机、手机、电视机它们是不同类型的电子产品,但是他们的通信都是由内部的网卡设备所进行的。
所以我们统一用网卡来表示设备。每张网卡在出厂时都写入一个地址,就是MAC地址,这个地址是由六个字节构成的。
其中前三个数表示的是网络硬件厂商编号,由国际性电子技术与电子工程师协会分配。后三个字节代表的是该制造厂商所制造的网卡的序列号,所以MAC地址是全球唯一的地址。
虽然可以通过一些其他手段修改MAC地址,但不在我们的讨论范围。
MAC地址如何表示与确定网卡在网络中的确定位置?
比如我们的计算机A通过网线接入到交换机的端口1,那这个端口1就是网络中的具体位置。
就像我们的门牌号一样,交换机就知道了某个MAC地址在端口1上,从而就把MAC地址与端口进行了绑定。
我们的网卡接入网络后,如果要通信,需要给它配置另一个地址,就是IP地址。
IP地址有两种,IPV4地址和IPV6地址。
比如我们常用的192.168.1.X就是IPV4地址,由四位0到255的数字用小数点间隔构成。
目前IPV4技术可以使用的IP地址最多有42亿多个,看上去像是很难用尽,但由于早期编码和分配上的问题,很多区域的编码实际上被空出或不能使用。
随着互联网的快速成长,IPV4的42亿个地址最终于2011年2月3日用尽。
相应的科研组织已经研究出128位的IPV6的IP地址,数量最高可达3.4乘以10到38次方的。
届时每个人家具中的每件网络设备,甚至地球上每一粒沙子都可以拥有自己的IP地址。
DHCP协议自动帮我们配置
现在我们知道了网卡上需要配置好IP地址才可以工作。DHCP协议就在这时起作用。
将电脑插上网线或者手机连入到wifi操作系统,网络协议站会自动向外发送一包DHCP请求,请求为其分配IP地址。
路由器获取到DHCP请求后会为其分配该IP地址,并通过DHCP回复报文发送回去。
操作系统收到了DHCP回报后将其分配的IP地址配置到网卡上。
注意在一个局域网中,IP地址也是唯一的路由器不会分配重复的IP地址给不同的设备。
当然你也可以手动把DHCP关掉,这样你需要手动来配置一个网卡的IP地址。
但是你要保证你配置的IP地址不能与此网络中的其他地址重复,这样网卡就配置好了IP地址。
操作系统是如何知道对方的MAC地址的?
我们上面提到MAC地址是由操作系统来补齐的那操作系统是如何知道对方的MAC地址的?
实际上这一步是由ARP协议来完成的。
当计算机A想向计算机B发送消息时,操作系统并不会立即发出,查询本地缓存,如果没有对方的MAC地址,他会先发送一包ARP广播报文出去。问一下192.168.1.10的MAC地址是多少?(后面可以去看我的ARP抓包实验)
此时网络中的所有设备都收到了这一包请求报文(广播帧),除了192.168.1.10以外的设备都会丢弃这包请求报文,只有192.16 8.1点时会回复自己的MAC地址是多少。
计算机A收到了回复,知道了计算机B的MAC地址,它首先会把计算机B的MAC地址缓存起来,以便下次使用,然后把这封信补全,从网卡发送出去,交换机根据数据包中的目标MAC地址找到了计算机B所在的端口,从此端口发送出去,数据就被计算机B收到了。
相关文章:
计算机网络——MAC地址和IP地址
目录 前言 引入 MAC地址与IP地址 IP地址和MAC地址是什么?如何起作用的? MAC地址如何表示与确定网卡在网络中的确定位置? DHCP协议自动帮我们配置 操作系统是如何知道对方的MAC地址的? 前言 本博客是博主用于复习计算机网络…...

Unity构建详解(7)——AssetBundle格式解析
【文件格式】 文件可以分为文本文件、图片文件、音频文件、视频文件等等,我们常见的这些文件都有行业内的标准格式,其意味着按照一定的规则和规范去保存读取文件,可以获取我们想要的数据。 有些软件会有自己的文件格式,会按照其…...

前端对接fastGPT流式数据+打字机效果
首先在对接api时 参数要设置stream: true, const data {chatId: abc,stream: true,//这里true返回流式数据detail: false,variables: {uid: sfdsdf,name: zhaoyunyao,},messages: [{ content: text, role: user }]}; 不要用axios发请求 不然处理不了流式数据 我这里使用fetch …...

避免使用第三方工具完成电脑环境检测
0. 简介 在之前配置各种深度学习环境的时候经常需要先检测一下电脑的软硬件环境,其实整个过程比较重复和固定,所以我们是否有可能一键检测Python版本、PIP版本、Conda版本、CUDA版本、电脑系统、CPU核数、CPU频率、内存、硬盘等内容这是很多Deepper苦恼…...
vue 中 mixin 的应用场景,原理和合并规则
应用场景 多个组件的相同逻辑可以提出去来一个公共的 mixin 原理 Mixin 的工作原理是将 Mixin 中的选项合并到组件的选项中 合并规则 优先处理 mixinsprops 、method、inject、computed 同名的使用组件内的,不使用mixin 的data 进行合并生命周期和watch 先执行…...

点击按钮(文字)调起elementUI大图预览
时隔一年,我又回来了 ~ 最近在做后台,遇到一个需求,就是点击“查看详情”按钮,调起elementUI的大图预览功能,预览多张图片,如下图: 首先想到的是使用element-ui的el-image组件,但它是…...

全面学习SpringCloud框架指南
要深入学习Spring Cloud框架,你需要系统地掌握其核心组件和概念,并了解如何在实际项目中应用这些知识。以下是一些关键的学习点和相应的学习内容: 一共分为10个模块包括: 1、微服务架构基础: 理解微服务架构的概念和优势。 学习单体架构向微服务架构演进的过程。 掌握…...

5G智慧水利数字孪生可视化平台,推进水利行业数字化转型
5G智慧水利数字孪生可视化平台,推进水利行业数字化转型。随着5G技术的快速发展,越来越多的行业开始探索数字化转型的道路。水利行业作为国民经济的重要支柱,也面临着数字化转型的迫切需求。5G智慧水利数字孪生可视化平台作为水利行业数字化转…...

新手入门:大语言模型训练指南
在这个信息爆炸的时代,人工智能技术正以前所未有的速度渗透到我们生活的方方面面。从智能手机上的语音助手到自动驾驶汽车,AI的应用无处不在。而在这些令人惊叹的技术背后,大语言模型(LLM)扮演着至关重要的角色。它们不…...

Win11 WSL2 install Ubuntu20.04 and Seismic Unix
Win11系统,先启用或关闭Windows功能,勾选“适用于Linux的Windows子系统”和“虚拟机平台”两项 设置wsl默认版本为wsl2,并更新 wsl --list --verbose # 查看安装版本及内容 wsl --set-default-version 2 # 设置wsl默认版本为wsl2 # 已安装…...

rust使用print控制台打印输出五颜六色的彩色红色字体
想要在控制台打印输出彩色的字体,可以使用一些已经封装好的依赖库,比如ansi_term这个依赖库,官方依赖库地址:https://crates.io/crates/ansi_term 安装依赖: cargo add ansi_term 或者在Cargo.toml文件中加入&#…...

贪心算法|435.无重叠区间
力扣题目链接 class Solution { public:// 按照区间右边界排序static bool cmp (const vector<int>& a, const vector<int>& b) {return a[1] < b[1];}int eraseOverlapIntervals(vector<vector<int>>& intervals) {if (intervals.siz…...

C++的并发世界(七)——互斥锁
0.死锁的由来 假设有两个线程T1和T2,它们需要对两个互斥量mtx1和mtx2进行访问。而且需要按照以下顺序获取互斥量的所有权: -T1先获取mte1的所有权,再获取mt2的所有权。 -T2先获取 mtx2的所有权。再铁取 mtx1的所有权。 如果两个线程同时执行,…...

NI-LabView的DAQ缺少或丢失的解决办法(亲测有效)
DAQmx在Labview中不显示或缺失 问题:在NI Packasge Manager安装完DAQ后在labview中不显示控件解决办法 问题:在NI Packasge Manager安装完DAQ后在labview中不显示控件 在打开测量I/O时,见不到 DAQmx,或者在Express中见不到DAQ助手…...
cesium 调整3dtiles的位置 世界坐标下 相对坐标下 平移矩阵
cesium调整3dtiles的位置用到的是平移矩阵,原理是在世界坐标系中用偏移点减去原始点得到一个平移向量,再根据这个向量得到平移矩阵。 原始点:一般是模型的中心点位置,可通过模型的包围盒得到偏移点:可分为两种情况&…...

flutter跑通腾讯云直播Demo
运行示例 前提条件 要求java jdk 11版本 并且配置到了环境变量 重要 要求flutter 版本 2.8.0 并且配置到了环境变量 重要 要求dart-sdk版本2.15 并且配置到了环境变量 重要 您已 注册腾讯云 账号,并完成 实名认证。 申请 SDKAPPID 和 SECRETKEY 登录实时音视频控…...
飞机降落蓝桥杯[2023蓝桥省赛B组]
2023蓝桥省赛B组 B题 飞机降落 题解 标准深搜板子题,难度不大 #include<bits/stdc.h> using namespace std; #define MAX 10 struct node{int t,d,l;//t:飞机到达时间 d:飞机最大盘旋时间 l:飞机降落所需时间bool v;//标记此架飞机是否被搜索过 用于剪枝 };…...

如何动态渲染HTML内容?用v-html!
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

EFcore 6 连接oracle19 WinForm vs2022
用EFcore访问Oracle,终于不需要Oracle的什么安装包了,直接在VS2022中就可以轻松搞定。在csdn上看到一哥们的帖子,测试了一下,发现很方便。使用的场景是:VS2022中EFcore6。经过测试,同 Navicat Premium 16比…...
(delphi11最新学习资料) Object Pascal 学习笔记---第9章第2节(finally代码块)
9.2 finally 代码块 还有第四个用于异常处理的关键字,我已经提到过,但到目前为止还没有使用过,那就是 finally。finally块用于执行一些应始终执行的操作(通常是清理操作)。事实上,无论是否发生异常&…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...

python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...