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

网络工程师必学知识:2、IPv4和IPv6地址划分

网络工程师必学知识:2、IPv4和IPv6地址划分

  • 1.概述:
  • 2.IPv4:
    • 地址划分:有类划分,无类划分。
      • 一、有类划分:分为5类。ABCDE,掩码分别位8、16、24、28、27
      • 取值范围:出类别bit不变,其他bit都从0到255取值。
      • 私有地址:是不能在公网上使用的地址。
    • 特殊地址:
      • 网络地址:主机号全为0
      • 广播地址:主机号全为1
      • 组播地址:D类就是组播地址
    • 二、无类划分VLSM(Variable Length Subnet Mask,可变长度子网掩码)
    • 三、获取方式:手动和DHCP
  • 3.IPv6:
    • 三种表示方法:
    • 三种地址类型:
      • 一、单播地址:
      • 二、组播地址:数据发给这个组里面的所有被标识该组的接口。
    • 三、任意播地址:数据只发给最近的一个被标识为该组的接口。
    • 获取方式:无状态地址自动配置协议(SLAAC)和DHCPv6
  • 4.总结:

1.概述:

网络通信过程和我们邮寄快递类似,通信双方都有一个地址,在网络种这个地址就是IP(Internet Protocol Address)。
下面我就来说说这个IP地址。IP地址分为IPv4地址和IPv6地址。IPv6是IPv4的升级。IPv4的公网地址目前已经分配完毕。IPv4的分配组织叫:互联网协会(Internet Assigned Numbers Authority,简称IANA)。

2.IPv4:

地址划分:有类划分,无类划分。

有类:有类别。
无类:无类别,VLSM。

一、有类划分:分为5类。ABCDE,掩码分别位8、16、24、28、27

每个ip地址占4Byte(32bit)。格式为:x.x.x.x。x表示1Byte(8bit)。一般分为三部分:类别+网络号+主机号。类别是固定不变的。第一个主机号是网络地址,最后一个主机号是广播地址。as show below:
在这里插入图片描述

取值范围:出类别bit不变,其他bit都从0到255取值。

A: 0 0000000 00000000 00000000 00000000-0 1111111-1111111-1111111-11111111(0.0.0.0-127.255.255.255)单播
B: 10 000000 00000000 00000000 00000000-10 111111-1111111-1111111-11111111(128.0.0.0-192.255.255.255)单播
C: 110 00000 00000000 00000000 00000000-110 11111-1111111-1111111-11111111(192.0.0.0-223.255.255.255)单播
D: 1110 0000 00000000 00000000 00000000-1110 1111-1111111-1111111-11111111(224.0.0.0-239.255.255.255)组播
E: 11110 000 00000000 00000000 00000000-1111 1111-1111111-1111111-11111111(240.0.0.0-255.255.255.255)保留

私有地址:是不能在公网上使用的地址。

补充:公网可以理解为公开在全世界的网络。我们从运营商购买的宽带实际上是私网地址。经过运营商技术处理(NAT)可以实现上网。但是我们不能被公网上的地址直接访问,除非运营商使用技术处理(NAT server)。

A: 10.0.0.0-10.255.255.255
B: 172.16.0.0 -172.32.255.255
C: 192.168.0.0-192.168.255.255
D: 无
E: 无

特殊地址:

网络地址:主机号全为0

广播地址:主机号全为1

组播地址:D类就是组播地址

可以实现组播功能,可以理解为在一个组内广播。

二、无类划分VLSM(Variable Length Subnet Mask,可变长度子网掩码)

在我使用有类划分的IPv4的过程中,A类地址一个类的掩码是8位。所以主机就占24位。主机地址就有2^24个,太多了,浪费地址。
所以要用到VLSM。它可以把网络号扩大,主机号缩小,使主机地址控制在我们需要的范围,以节约ip地址。

三、获取方式:手动和DHCP

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)

3.IPv6:

不分ABCDE类。根据掩码确定范围,类似ipv4的VSLM,每个IP占44=16Byte(324=128bit),

三种表示方法:

一、冒分十六进制表示法。such as:ABCD:EF01:0000:6789:ABCD:EF01:2345:6789
二、0位压缩表示法。只压缩紧跟冒号后面的0。such as:ABCD:EF01::6789:ABCD:EF01:2345:6789
三、内嵌IPv4地址表示法。前面96Byte按照冒分十六进制和0位压缩法标识,后面32Byte按照IPv4格式表示。such as:ABCD:EF01::6789:ABCD:EF01:192.168.1.1

三种地址类型:

一、单播地址:

1)、未指定地址::,常被用做尝试验证暂定地址唯一性数据包的源地址,并且永远不会指派给某个接口或被用做目标地址。
2)、环回地址:::1 等价IPv4的127.0.0.1,可以用它来测试协议栈。
3)、链路本地地址:仅用于单个链路。1111 1110 10(FE80::/10)
4)、唯一本地地址:本地全局,类似IPv4的私网地址,组织内使用,不能被internet路由。范围限制为组织的边界。1111 110(FE00::/7)
5)、全局单播地址:除了(::、::1、1111 1110 10、1111 110、1111 1111、)

二、组播地址:数据发给这个组里面的所有被标识该组的接口。

格式为:1111 1111(FE00::/8)

三、任意播地址:数据只发给最近的一个被标识为该组的接口。

从单播地址空间中进行分配,使用单播地址的格式。最近接口定义的根据是因为路由距离最近。

获取方式:无状态地址自动配置协议(SLAAC)和DHCPv6

SLAAC(Stateless address autoconfiguration,无状态地址自动配置):
无状态地址自动配置的核心是不需要额外的DHCP服务器管理地址状态,主机可自行计算地址进行地址自动配置,包括4个基本步骤:

  1. 链路本地地址配置。主机计算本地地址。
  2. 重复地址检测,确定当前地址唯一。
  3. 全局前缀获取,主机计算全局地址。
  4. 前缀重新编址,主机改变全局地址。
    DHCPv6(Dynamic Host Configuration Protocol for IPv6,IPv6动态主机配置协议):原理同DHCPv4

4.总结:

目前使用的最多还是IPv4,但是将来IPv6一定会成主流。我个人觉得IPv6比ipv4好,因为使用0位压缩法表示,配置起来更方便,对应从ipv4学到ipv6的同学来说,需要熟虑一下。

相关文章:

网络工程师必学知识:2、IPv4和IPv6地址划分

网络工程师必学知识:2、IPv4和IPv6地址划分 1.概述:2.IPv4:地址划分:有类划分,无类划分。一、有类划分:分为5类。ABCDE,掩码分别位8、16、24、28、27取值范围:出类别bit不变&#xf…...

Rust - 变量

不管学什么语言好像都得从变量开始,不过只需要懂得大概就可以了。 但在Rust里不先把变量研究明白后面根本无法进行… 变量绑定 变量赋值❌ 变量绑定✔️ Rust中没有“赋值”一说,而是称为绑定。 int a 3; //C中的变量赋值 a 3; //python中的…...

【Linux】压缩脚本、报警脚本

一、压缩搅拌 要求: 写一个脚本,完成如下功能 传递一个参数给脚本,此参数为gzip、bzip2或者xz三者之一; (1) 如果参数1的值为gzip,则使用tar和gzip归档压缩/etc目录至/backups目录中,并命名为/backups/etc…...

用Flask打造一个大模型智能问答WEB网站

目前已经有很多类似GPT的大模型开源,可以提供类似ChatGPT的智能问答功能。我也基于这些开源模型,用Flask来建立一个智能问答网站,可以方便用户建立自己的ChatGPT系统。 这个网站需要提供用户登录功能,对已登录的用户,可以在网站上提出问题,并由大模型处理后返回答案。演…...

学习python第三天

一.数据类型 1.获取数据类型 x 10 print(type(x))""" 输出 <class int> """2.复数类型&#xff08;complex&#xff09;详解 复数&#xff08;Complex&#xff09;是 Python 的内置类型&#xff0c;直接书写即可。换句话说&#xff0c…...

(M)UNITY三段攻击制作

三段攻击逻辑 基本逻辑&#xff1a; 人物点击攻击按钮进入攻击状态&#xff08;bool isAttack&#xff09; 在攻击状态下&#xff0c; 一旦设置的触发器&#xff08;trigger attack&#xff09;被触发&#xff0c;设置的计数器&#xff08;int combo&#xff09;查看目前攻击…...

PHP的线程安全与非线程安全模式选哪个

曾经初学PHP的时候也很困惑对线程安全与非线程安全模式这块环境的选择&#xff0c;也未能理解其中意。近来无意中看到一个教程对线程安全&#xff08;饿汉式&#xff09;&#xff0c;非线程安全&#xff08;懒汉式&#xff09;的描述&#xff0c;虽然觉得现在已经能够很明了透彻…...

asdf安装不同版本的nodejs和yarn和pnpm

安装asdf 安装nodejs nodejs版本 目前项目中常用的是14、16和18 安装插件 asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git asdf plugin-add yarn https://github.com/twuni/asdf-yarn.git可以查看获取所有的nodejs版本 asdf list all nodejs有很多找…...

Spring的事件监听机制

这里写自定义目录标题 1. 概述&#xff08;重点&#xff09;2. ApplicationEventMulticaster2.1 SimpleApplicationEventMulticaster2.2 AbstractApplicationEventMulticaster 3. ApplicationListener3.1 注册监听器3.2 自定义 4. SpringApplicationRunListeners 1. 概述&#…...

Zookeeper分布式命名服务实战

目录 分布式命名服务 分布式API目录 分布式节点的命名 分布式的ID生成器 分布式的ID生成器方案&#xff1a; 基于Zookeeper实现分布式ID生成器 基于Zookeeper实现SnowFlakeID算法 分布式命名服务 命名服务是为系统中的资源提供标识能力。ZooKeeper的命名服务主要是利用Z…...

DEV-C++ ege.h库 绘图教程(六)

一、前情回顾 DEV-C ege.h库 绘图教程&#xff08;一&#xff09; DEV-C ege.h库 绘图教程&#xff08;二&#xff09; DEV-C ege.h库 绘图教程&#xff08;三&#xff09; DEV-C ege.h库 绘图教程&#xff08;四&#xff09; DEV-C ege.h库 绘图教程&#xff08;五&#xff09…...

MySQL原理(一)架构组成之物理文件组成

目录 一、日志文件 1、错误日志 Error Log 1.1、作用&#xff1a; 1.2、开启关闭&#xff1a; 1.3、使用 2、二进制日志 Binary Log & Binary Log Index 2.1、作用&#xff1a; 2.2、开启关闭&#xff1a; 2.3、Binlog还有一些附加选项参数 &#xff08;1&#x…...

代码随想录算法训练营第三十七天 | 738.单调递增的数字、 968.监控二叉树

题目链接&#xff1a;738.单调递增的数字 文章讲解&#xff1a;代码随想录 738.单调递增的数字讲解 视频讲解&#xff1a;贪心算法&#xff0c;思路不难想&#xff0c;但代码不好写&#xff01;LeetCode:738.单调自增的数字 思路和解法 题目&#xff1a; 当且仅当每个相邻位…...

【Django-ninja】django-ninja的hello world

django-ninja简介 Django Ninja是一个用于使用Django和Python 3.6类型提示构建API的Web框架。 主要特点&#xff1a; 易用性&#xff1a;旨在易于使用和直观。 高性能执行&#xff1a;由于Pydantic和异步支持&#xff0c;具有非常高的性能。 编码效率高&#xff1a;类型提…...

ArrayList集合初始化长度是多少,初始化的时候分配内存空间吗

ArrayList一旦初始化&#xff0c;在内存中就会分配空间吗 是的&#xff0c;当ArrayList在Java中初始化时&#xff0c;即使它没有添加任何元素&#xff0c;也会立即分配内存空间。具体来说&#xff0c;对于默认构造函数创建的ArrayList&#xff08;即不指定初始容量&#xff09…...

C语言数组:从入门到进阶

前言&#xff1a; 在这篇博客中&#xff0c;我们将学习如何使用C语言数组的基本知识。数组是C语言中的一种重要数据结构&#xff0c;它允许我们存储一系列相同类型的数据。我们将讨论数组的定义、初始化、访问元素、遍历数组以及数组的应用场景。此外&#xff0c;我们还将通过…...

9.回文数

回文数 将整型转换为字符型反转前一半是否等于后一半将数字本身反转输入一个整数 x,如果 x是一个回文整数,返回 true;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,121 是回文,而 123 不是。 将整型转换为字符型 反转…...

一分钟在SpringBoot项目中使用EMQ

先展示最终的结果: 生产者端: RestController RequiredArgsConstructor public class TestController {private final MqttProducer mqttProducer;GetMapping("/test")public String test() {User build User.builder().age(100).sex(1).address("世界潍坊渤…...

SOME/IP 协议介绍(七)传输 CAN 和 FlexRay 帧

SOME/IP 不应仅用于传输 CAN 或 FlexRay 帧。但是&#xff0c;消息 ID 空间需要在两种用例之间进行协调。 传输 CAN/FlexRay 应使用完整的 SOME/IP 标头。 AUTOSAR Socket-Adapter 使用消息 ID 和长度来构建所需的内部 PDU&#xff0c;但不会查看其他字段。因此&#xff0c;必…...

与数组相关经典面试题

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”。…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...