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

网络基础 - 地址篇

一、IP 地址

  • IP 协议有两个版本,IPv4 和 IPv6
  • IP 地址(IPv4 地址)是一个 4 字节,32 位的正整数,通常使用 “点分十进制” 的字符串进行表示,例如 192.168.0.1,用点分割的每一个数字表示一个字节,范围是 0 ~ 255
  • IP 地址由 “网络标识(网络地址)” 和 “主机标识(主机地址)” 两部分组成,例如 192.168.128.10/24,其中的 “/24” 表示从第 1 位开始到多少位属于网络标识,那么,剩余位就属于主机标识了,但是,究竟从第几位开始到第几位算是网络标识,又是从第几位开始到第几位算是主机标识呢?网络基础 - 网段划分篇
    在这里插入图片描述
    每一块网卡(Network Interface Card, NIC)都得设置 IP 地址,通常一块网卡只设置一个 IP 地址,其实一块网卡也可以配置多个 IP 地址,此外,一台路由器通常都会配置两个以上的网卡,因此可以设置两个以上的 IP 地址
    在这里插入图片描述

二、MAC 地址

更新ing

三、地址的唯一性和层次性

  • 唯一性:在同一个通信网络中不允许有两个相同地址的通信主体(通信传输中,发送端和接收端可以被视为通信主体)存在
  • 层次性:当地址的总数越来越多时,便于高效地从中找出通信的目标地址
    在这里插入图片描述
    MAC 地址和 IP 地址在标识一个通信主体时虽然都具有唯一性,但是它们当中只有 IP 地址具有层次性

MAC 地址由设备的制造厂商针对每块网卡进行分别指定,人们可以通过制造商识别号、制造商内部产品编号以及产品通用编号确保 MAC 地址的唯一性,然而,人们无法确定哪家厂商的哪个网卡被用到了哪个地方,虽然 MAC 地址中的制造商识别号、产品标号以及通用编号等信息在某种程度上也具有一定的层次性,但是对于寻找地址并没有起到任何作用,所以不能算作有层次的地址,正因如此,虽然 MAC 地址是真正负责最终通信的地址,但是在实际寻址过程中,IP 地址却必不可少

那么 IP地址又是怎样实现分层的呢?IP 地址 = 网络号 + 主机号
在这里插入图片描述
网络传输中,每个节点(节点是主机和路由器的统称,主机的定义是指 “配置有 IP 地址,但是不进行路由控制的设备” ,既配有 IP 地址又具有路由控制能力的设备叫做 “路由器(或 3 层交换机)”)会根据分组数据的地址信息,来判断报文应该由哪个网卡发出去,为此,各个地址会参考一个发出接口列表,在这一点上 MAC 寻址和 IP 寻址是一样的,只不过 MAC 地址转发表中所记录的是实际的 MAC 地址本身,而路由表中记录的 IP 地址则是集中了之后的网络号
在这里插入图片描述
IP 包被转发到途中某个路由器时,正是利用目标 IP 地址的网络标识进行路由,因为即使看不见主机标识,只要一见到网络标识就能判断出是否为该网段内的主机

四、IP 与 MAC 的关系

数据链路层(网卡层)的 MAC 提供直连两个设备之间的通信功能,与之相比,作为网络层的 IP 则负责在没有直连的两个网络之间进行通信传输

那么为什么一定需要这样的两个层次呢?它们之间的区别又是什么呢?
在此,我们以旅行为例说明这个问题,有个人要去一个很远的地方旅行,并且计划先后乘坐飞机、火车到达目的地,为此,他决定先去旅行社购买机票和火车票,旅行社不仅为他预定好了旅途过程中所需要的机票和火车票,甚至为他制定了一个详细行程表,详细到几点几分需要乘坐飞机或火车都一目了然,当然,机票和火车票只有特定区间内有效
在这里插入图片描述
仔细分析一下机票和火车票,不难发现,每张票只能够在某一限定区间内移动,此处的 “区间内” 就如同通信网络上的数据链路,而这个区间内的出发地点和目的地点就如同某一个数据链路的源地址和目标地址等首部信息(出发地点好比源 MAC 地址,目标地点好比目的 MAC 地址),整个全程的行程表的作用就相当于网络层

如果我们只有行程表而没有车票,就无法搭乘交通工具到达目的地,反之,如果除了车票其他什么都没有,恐怕也很难到达目的地,因为你不知道该坐什么车,也不知道该在哪里换乘,因此,只有两者兼备,既有某个区间的车票又有整个旅行的行程表,才能保证到达目的地,与之类似,计算机网络中也需要数据链路层和网络层这个分层才能实现向最终目标地址的通信

相关文章:

网络基础 - 地址篇

一、IP 地址 IP 协议有两个版本,IPv4 和 IPv6IP 地址(IPv4 地址)是一个 4 字节,32 位的正整数,通常使用 “点分十进制” 的字符串进行表示,例如 192.168.0.1,用点分割的每一个数字表示一个字节,范围是 0 ~…...

# [Unity] 【游戏开发】Unity开发基础2-Unity脚本编程基础详解

Unity脚本编程是创建互动式游戏体验的核心技能之一。本文将详细讲解Unity脚本编程的基础知识,包括变量和数据类型、程序逻辑、方法等方面,并通过实例展示如何使用这些基本知识完成简单功能的实现。 1. 新建Unity脚本的基本结构 当在Unity中创建一个脚本时,Unity会生成如下基…...

Milvus实操

概念 Milvus 关键概念优化笔记 Milvus 是一个高性能、可扩展的开源向量数据库,专为处理海量向量数据和执行相似性搜索而设计。以下是 Milvus 中的一些核心概念及其详细解释。 1. 集合(Collection) 定义: 集合是 Milvus 中存储向…...

35 基于单片机的精确电压表DA-AD转换

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机,采用DAC0832和ADC0832检测电压,0到8.5V,设计复位电路 LED管显示实际稳压值,初始电压0 二、硬件资源 基于KEIL5编写C代码&#xff0c…...

JDBC 设置 PostgreSQL 查询中 any(?) 的参数

这段时间都纠缠于 Java 如何操作 PostgreSQL 数据库上,千方百计的为求得更好的性能。为此我们用上了 Batch, 或用 id any(?) 这种更 PostgreSQL 化的数组参数操作。其实它还有更多数组方面的花样可以玩,毕竟 PostgreSQL 数据库有一种广纳百川的胸怀&am…...

【11-20期】Java面试进阶:深入解析核心问题与实战案例

🚀 作者 :“码上有前” 🚀 文章简介 :Java 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 文章题目:Java面试进阶:深入解析11-20期核心问题与实战案例 摘要: 本篇…...

C++——内存池_2

C内存池 重载 new 和 delete 运算符C内存池使用内存池的目的逐步实现内存池 重载 new 和 delete 运算符 实际开发中,重载new和delete的主要目的是实现内存池。内存池在高性能的服务程序中很常用。点击浏览重载 new 和 delete 运算符的内容,建议先看这部…...

如何使用PHP爬虫获取店铺详情:一篇详尽指南

在数字化时代,数据的价值不言而喻。对于企业来说,获取竞争对手的店铺详情、顾客评价等信息对于市场分析和决策至关重要。PHP作为一种广泛使用的服务器端脚本语言,结合其强大的库支持,使得编写爬虫程序变得简单而高效。本文将详细介…...

HTML5和CSS3新增特性

HTML5的新特性 HTML5新增的语义化标签 HTML5 的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题,基本是 IE9 以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量…...

linux运行vue编译后的项目

如果你的 Vue 项目使用了 history 模式(而非默认的 hash 模式),在纯静态服务器中会出现类似的问题。因为 Vue Router 的 history 模式要求所有未匹配的路径都重定向到 index.html,以便 Vue 前端处理路径。 首先在本地执行npm run…...

论文阅读:A Software Platform for Manipulating theCamera Imaging Pipeline

论文代码开源链接: A Software Platform for Manipulating the Camera Imaging Pipelinehttps://karaimer.github.io/camera-pipeline/摘要:论文提出了一个Pipline软件平台,可以方便地访问相机成像Pipline的每个阶段。该软件允许修改单个模块…...

【MySQL篇】持久化和非持久化统计信息的深度剖析(第一篇,总共六篇)

💫《博主介绍》:✨又是一天没白过,我是奈斯,DBA一名✨ 💫《擅长领域》:✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux,也在扩展大数据方向的知识面✌️…...

Ubuntu下安装Qt

1.如图1所示,在Index of /archive上下载安装包; 图1 2.将图1安装包下载好之后,通过共享文件夹的方式拷贝到ubutntu,如图2所示; 图2 3.如图3所示,执行chmod x qt-creator-opensource-linux-x86_64-10.0.2.…...

丹摩征文活动 | AI创新之路,DAMODEL助你一臂之力GPU

目录 前言—— DAMODEL(丹摩智算) 算力服务 直观的感受算力提供商的强大​ 平台功能介绍​ 镜像选择 云磁盘创建 总结 前言—— 只需轻点鼠标,开发者便可拥有属于自己的AI计算王国 - 从丰富的GPU实例选择,到高性能的云磁盘,再到预配置的深度学习…...

数据库(总结自小林coding)|索引失效的场景、慢查询、原因及如何优化?undo log、redo log、binlog 作用、MySQL和Redis的区别

数据库(总结自小林coding)|索引失效的场景、慢查询、原因及如何优化?undo log、redo log、binlog 作用、MySQL和Redis的区别 说一下索引失效的场景?什么是慢查询?原因是什么?可以怎么优化?undo …...

Docker容器运行CentOS镜像,执行yum命令提示“Failed to set locale, defaulting to C.UTF-8”

最近对运维比较感兴趣,以前虽然对公司负责的项目做过运维工作,但用的都是最原始的方法,例如是在阿里云服务器上直接安装jdk,tomcat,redis ,nginx 。这种方式对不大的项目还能够支持,随着项目变大,服务增加&…...

OpenCV基本图像处理操作(六)——直方图与模版匹配

直方图 cv2.calcHist(images,channels,mask,histSize,ranges) images: 原图像图像格式为 uint8 或 float32。当传入函数时应 用中括号 [] 括来例如[img]channels: 同样用中括号括来它会告函数我们统幅图 像的直方图。如果入图像是灰度图它的值就是 [0]如果是彩色图像 的传入的…...

【LLM学习笔记】第四篇:模型压缩方法——量化、剪枝、蒸馏、分解

文章目录 1. 为什么要进行模型压缩2. 模型量化2.1 常见数据类型2.2 浮点数表示2.3 线性量化2.4 非线性量化2.5 挑战2.6 实际应用 3. 模型剪枝4. 模型蒸馏4.1 模型蒸馏的基本流程4.2 模型蒸馏的优势4.3 实际应用 5. 低秩分解(低秩近似)5.1 基本概念5.2 实…...

python3 自动更新的缓存类

这个类会在后台自动更新缓存数据,你只需要调用方法来获取数据即可。 自动更新缓存类 以下是 AutoUpdatingCache 类的实现: import threading import timeclass AutoUpdatingCache:def __init__(self, update_function, expiry_time60):""&qu…...

英语知识网站开发:Spring Boot框架应用

3系统分析 3.1可行性分析 通过对本英语知识应用网站实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本英语知识应用网站采用SSM框架,JAVA作为开发语…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...