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

计算机网络——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&#xff0c;它们需要对两个互斥量mtx1和mtx2进行访问。而且需要按照以下顺序获取互斥量的所有权&#xff1a; -T1先获取mte1的所有权,再获取mt2的所有权。 -T2先获取 mtx2的所有权。再铁取 mtx1的所有权。 如果两个线程同时执行&#xff0c…...

NI-LabView的DAQ缺少或丢失的解决办法(亲测有效)

DAQmx在Labview中不显示或缺失 问题&#xff1a;在NI Packasge Manager安装完DAQ后在labview中不显示控件解决办法 问题&#xff1a;在NI Packasge Manager安装完DAQ后在labview中不显示控件 在打开测量I/O时&#xff0c;见不到 DAQmx&#xff0c;或者在Express中见不到DAQ助手…...

cesium 调整3dtiles的位置 世界坐标下 相对坐标下 平移矩阵

cesium调整3dtiles的位置用到的是平移矩阵&#xff0c;原理是在世界坐标系中用偏移点减去原始点得到一个平移向量&#xff0c;再根据这个向量得到平移矩阵。 原始点&#xff1a;一般是模型的中心点位置&#xff0c;可通过模型的包围盒得到偏移点&#xff1a;可分为两种情况&…...

flutter跑通腾讯云直播Demo

运行示例 前提条件 要求java jdk 11版本 并且配置到了环境变量 重要 要求flutter 版本 2.8.0 并且配置到了环境变量 重要 要求dart-sdk版本2.15 并且配置到了环境变量 重要 您已 注册腾讯云 账号&#xff0c;并完成 实名认证。 申请 SDKAPPID 和 SECRETKEY 登录实时音视频控…...

飞机降落蓝桥杯[2023蓝桥省赛B组]

2023蓝桥省赛B组 B题 飞机降落 题解 标准深搜板子题&#xff0c;难度不大 #include<bits/stdc.h> using namespace std; #define MAX 10 struct node{int t,d,l;//t:飞机到达时间 d:飞机最大盘旋时间 l:飞机降落所需时间bool v;//标记此架飞机是否被搜索过 用于剪枝 };…...

如何动态渲染HTML内容?用v-html!

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

EFcore 6 连接oracle19 WinForm vs2022

用EFcore访问Oracle&#xff0c;终于不需要Oracle的什么安装包了&#xff0c;直接在VS2022中就可以轻松搞定。在csdn上看到一哥们的帖子&#xff0c;测试了一下&#xff0c;发现很方便。使用的场景是&#xff1a;VS2022中EFcore6。经过测试&#xff0c;同 Navicat Premium 16比…...

(delphi11最新学习资料) Object Pascal 学习笔记---第9章第2节(finally代码块)

9.2 finally 代码块 ​ 还有第四个用于异常处理的关键字&#xff0c;我已经提到过&#xff0c;但到目前为止还没有使用过&#xff0c;那就是 finally。finally块用于执行一些应始终执行的操作&#xff08;通常是清理操作&#xff09;。事实上&#xff0c;无论是否发生异常&…...

C++并发编程实战:std::atomic的exchange与compare_exchange操作到底怎么选?

C并发编程实战&#xff1a;std::atomic的exchange与compare_exchange操作到底怎么选&#xff1f; 在构建高性能并发系统时&#xff0c;开发者常面临一个关键抉择&#xff1a;当需要原子更新共享数据时&#xff0c;究竟该选择exchange、compare_exchange_weak还是compare_exchan…...

从赛道到产线:智能车竞赛如何为《美国工厂》精神谱写青春代码

1. 智能车竞赛&#xff1a;制造业的青春实验室 当《美国工厂》纪录片中那些机械臂精准运作的画面还在脑海中挥之不去时&#xff0c;我站在全国大学生智能车竞赛的现场&#xff0c;突然意识到这两者之间存在着某种奇妙的联系。智能车竞赛就像是一个微缩版的制造业实验室&#xf…...

软考:团队管理与绩效域50大实战难题破解清单,写进论文直接加分!

对于软考高项&#xff08;信息系统项目管理师&#xff09;的考生来说&#xff0c;论文是决定成败的关键。而一篇高分论文的核心&#xff0c;在于能否用真实、具体的项目实践&#xff0c;去论证你对项目管理知识体系的深刻理解。项目团队管理和项目绩效域是论文中最常考、也最容…...

南京邮电大学《数学实验》模块三(线性映射的迭代)实战解析与代码实现

1. 线性映射迭代&#xff1a;从理论到实战的桥梁 第一次接触线性映射迭代这个概念时&#xff0c;我和大多数同学一样感到困惑——这些抽象的矩阵运算到底能解决什么实际问题&#xff1f;直到在南京邮电大学《数学实验》课程中亲手实现了几个案例&#xff0c;才真正体会到它的魅…...

高效图像浏览:解锁90+格式的轻量级解决方案

高效图像浏览&#xff1a;解锁90格式的轻量级解决方案 【免费下载链接】ImageGlass &#x1f3de; A lightweight, versatile image viewer 项目地址: https://gitcode.com/gh_mirrors/im/ImageGlass 在数字时代&#xff0c;我们每天都要与各种图像格式打交道&#xff0…...

手把手教你用CH32V208开发板实现蓝牙BLE5.3通信(附完整工程源码)

基于CH32V208开发板的蓝牙BLE5.3实战开发指南 在物联网设备爆发式增长的今天&#xff0c;低功耗蓝牙&#xff08;BLE&#xff09;技术因其低功耗、低成本的优势&#xff0c;成为短距离无线通信的首选方案之一。作为一款集成了BLE5.3模块的RISC-V微控制器&#xff0c;CH32V208为…...

深入解析亚马逊SP-API Reports模块:如何高效处理大规模数据报告

亚马逊SP-API Reports模块实战指南&#xff1a;从数据洪流中提炼商业价值 在跨境电商的竞技场中&#xff0c;数据就是新型石油。每天有超过250万卖家通过亚马逊平台产生海量交易数据&#xff0c;而SP-API Reports模块正是开采这座数据金矿的专属钻机。不同于基础的数据导出工具…...

SolidWorks参数化建模实战:从规则定义到智能装配

1. 参数化设计的核心思想与实战价值 我第一次接触SolidWorks参数化建模是在设计一个多规格管道连接件时。当时客户要求在24小时内提供5种不同口径的变型设计&#xff0c;传统建模方法让我不得不复制粘贴并逐个修改尺寸&#xff0c;结果在第三次修改时漏掉了一个关键孔位&#x…...

百考通:AI全流程智能化赋能答辩PPT,让学术展示更高效从容

毕业季、开题季&#xff0c;一份专业出彩的PPT是顺利通过答辩的关键。但从论文中提炼核心观点、规划答辩逻辑、设计美观版式&#xff0c;往往让学生们焦头烂额。百考通&#xff08;https://www.baikaotongai.com&#xff09; 凭借AI技术深度赋能&#xff0c;打造出一站式答辩PP…...

CanCanCan控制器助手终极指南:load_and_authorize_resource深度解析与最佳实践

CanCanCan控制器助手终极指南&#xff1a;load_and_authorize_resource深度解析与最佳实践 【免费下载链接】cancancan The authorization Gem for Ruby on Rails. 项目地址: https://gitcode.com/gh_mirrors/ca/cancancan CanCanCan是Ruby on Rails最强大的授权gem&…...