[IPv6]常用的几种IPv4和IPv6地址格式

记录一下常用的IPv4和IPv6地址格式

IPv4

IPv4地址是32位的,通常表示为“192.168.1.12”这样点分成4段的形式。
一个IP地址可以分为两部分,网络ID和主机ID。如何区分哪些位是网络ID,哪些位是主机ID,就需要子网掩码。

子网掩码

子网掩码使用来区分网段的,不同网段之间是不能直接通信的。
子网掩码的计算:
ip地址与子网掩码

广播地址

主机位全为1就是该子网的广播地址。例如:
192,168.1.255/24,就是 192.168.1.0网段的广播地址。
子网广播地址是可以被路由转发的,但是如"255.255.255.255"这个受限广播地址是不会被路由转发的。
参考:101-指向子网的广播

本地回环地址

127.0.0.1,数据不会经过网卡,用于本地测试

任意地址

任意地址,就是在socket编程的时候使用的 INADDR_ANY。
INADDR_ANY 实际上值得是 0.0.0.0,它的意思是不指定具体的网卡。

IPv6

IPv6地址是128位的,用:分为8个16进制的段。
ABCD:EF01:2345:6789:ABCD:EF01:2345:6789

子网掩码

与IPv4的子网掩码类似

多播地址

IPv6没有广播,只有多播。
前缀为FF00::/8的都是组播地址。
比如:FF02::1,它会发给本地链路内的所有节点,我认为他是个只能在本网段不能经过路由转发的广播。
在windows中,可以用netsh interface ipv6 show joins命令,查看机器是哪些多播组的成员
在这里插入图片描述

本地回环地址

::1/128,用于本地测试

任意地址

任意地址,就是在socket编程的时候使用的 in6addr_any。
in6addr_any实际上值得是 0:0:0:0:0:0:0:0(即::),它的意思是不指定具体的网卡。
关于in6addr_any,发现了一篇文章,有机会验证一下:
IPv6 socket侦听in6addr_any的问题

全球单播地址和链路本地地址

IPv6的地址常用的有global 、link。
在linux中ifconfig会明确告诉,IPv6地址属于那种,例如:

		  inet6 addr: 2001:f80:888::159/64 Scope:Globalinet6 addr: fe80::1fc3:1699:fe33:b227/64 Scope:Link

link地址(本地链路地址),前缀是FE80::/10 ,用于本地链路的直连通信,不能进行路由转发。
global地址,(全球唯一地址),前缀是2000::/3,用于向外通信。

->参考连接

链路本地地址和 Scope id(网卡索引)

在C++ 的socket编程中,sockaddr_in6有一个成员sin6_scope_id。

struct sockaddr_in6 {short sin6_family;u_short sin6_port;u_long sin6_flowinfo;struct in6_addr sin6_addr;__C89_NAMELESS union {u_long sin6_scope_id;SCOPE_ID sin6_scope_struct;};
};

sin6_scope_id(ULONG类型)实际上是本地网卡的索引号码。
它默认是0,相当于没有指定网卡,此时使用链路本地地址是无法进行通信的。
必须指定一个scope_id才行。
也就是下面索引这一列中的号码。
在这里插入图片描述
或者我们用ipconfig命令,查看到的网卡地址中,本地连接IPv6地址后面跟了个“%20”这里就是他的网卡索引是20。
在这里插入图片描述

我把怎么获取Scope_id记录在本专栏的:
《[IPv6] Linux 和 Windows中如何获取sockaddr_in6的sin6_scope_id》

为什么在使用链路本地地址的时候必须要指定scope_id,而全球单播地址不需要呢?
这是因为全世界的本地链路地址都是FE80::网段的,路由没法根据网段做出区分。所以需要指定连接使用的scope id,路由才会找到目标。
参考:闲谈IPv6-IPv6地址的scope到底是什么?

参考文章

闲谈IPv6-IPv6地址的scope到底是什么?
ping通ipv6地址
IPv6 socket侦听in6addr_any的问题
ip地址与子网掩码
101-指向子网的广播
IPv6地址、单播、多播/组播介绍
第四十七讲:IPv6基础知识
IPv6 技术精要–第7章 IPv6多播地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/639072.shtml

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

相关文章

pip install flagai时出现Collecting PyYAML==5.4.1 (from flagai)等错误信息的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

HCIA——22DNS:DNS层次域名空间、域名服务器、域名解析的原理

学习目标: 计算机网络 1.掌握计算机网络的基本概念、基本原理和基本方法。 2.掌握计算机网络的体系结构和典型网络协议,了解典型网络设备的组成和特点,理解典型网络设备的工作原理。 3.能够运用计算机网络的基本概念、基本原理和基本方法进行…

CVE重要通用漏洞复现java phpCVE-2021-44228

在进行漏洞复现之前我们需要在linux虚拟机上进行docker的安装 我不喜欢win上安因为不知道为什么总是和我的vmware冲突 然后我的kali内核版本太低 我需要重新安装一个新的linux 并且配置网络 我相信这会话费我不少时间 查看版本 uname -a 需要5.5或以上的版本 看错了浪…

Rocky Linux 9. 3安装图解

风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任,图解仅供参考,请悉知!本次安装图解是在一个全新的演示环境下进行的,演示环境中没有任何有价值的数据,但这并不代表摆在你面前的环境也是如此。生产环境…

计算机网络-分层结构,协议,接口,服务

文章目录 总览为什么要分层怎样分层正式认识分层概念小结 总览 为什么要分层 发送文件前要做的准备工作很多 把这个准备工作分层小问题解决,也就分层解决 怎样分层 每层相互独立,每层做的工作不同 界面自然清晰,层与层之间的接口能够体现…

三、Flask学习之BootSrap

三、Flask学习之BootSrap Bootstrap 是一款由Twitter团队开发的开源前端框架,它以响应式设计、移动端友好和丰富的组件为特色,为开发者提供了快速构建现代化网站和Web应用的工具。借助其灵活的栅格系统、丰富的UI组件和可定制的样式,Bootstr…

使用Dockerfile来构建服务的镜像,并部署在容器中

构建服务镜像和容器化部署 一、构建服务镜像1、编写Dockerfile2、构建脚本3、启动脚本 二、问题及解决办法1、no main manifest attribute, in /chatgpt-api-1.0-SNAPSHOT.jar2、如果是SpringBoot项目,应该这么做: 一、构建服务镜像 1、编写Dockerfile …

【web 编程技术】基于 B/S 架构的电商平台(java web)

基于 B/S 架构的电商平台(java web) 课程设计实验目的课程设计实验环境课程设计功能概述课程设计需求分析三层架构图功能列表系统用例图系统活动图-用户端需求分析 课程设计详细设计实现过程数据库BaseServlet 的实现商品显示模块-分页显示所有商品、查看…

Ranger概述及安装配置

一、前序 希望拥有一个框架,可以管理大多数框架的授权,包括: hdfs的目录读写权限各种大数据框架中的标的权限,列级(字段)权限,甚至行级权限,函数权限(UDF)等相关资源的权限是否能帮忙做书库脱敏Ranger框架应运而生。 二、Ranger 2.1、什么是ranger Apache Ranger…

适合初学者的 机器学习 资料合集(可快速下载)

AI时代已经来临,机器学习成为了当今的热潮。但是,很多人在面对机器学习时却不知道如何开始学习。 今天,我为大家推荐几个适合初学者的机器学习开源项目,帮助大家更好地了解和掌握机器学习的知识。这些项目都是开源的,…

压缩数据处理的艺术:Go语言compress库完全指南

压缩数据处理的艺术:Go语言compress库完全指南 引言compress库概览gzip的使用与示例bzip2的使用与示例flate的使用与示例lzw的使用与示例zlib的使用与示例结语引言 在当今数据驱动的世界里,有效的数据处理变得至关重要。特别是在互联网通信和数据存储领域,数据压缩技术发挥…

Mysql-全局锁、表锁、行锁

本文已收录于专栏 《数据库》 目录 全局锁概述说明开启方式应用场景 表锁概念说明实现方式意向锁 开启方式 行锁概念说明实现方式记录锁:间隙锁临键锁 总结提升 全局锁 概述说明 全局锁是是对整个数据库实例加锁,加锁后整个实例就处于只读状态&#xff…

立体视觉几何 (二)

1.视差 2.立体匹配 立体匹配的基本概念: 匹配目标: 在立体匹配中,主要目标是确定左图像中像素的右图像中的对应像素。这个对应像素通常位于相同的行。视差(Disparity): 视差 d 是右图像中对应像素 xr 和左图像中像素 xl 之间的水平位置差。视…

对MODNet 主干网络 MobileNetV2的剪枝探索

目录 1 引言 1.1 MODNet 原理 1.2 MODNet 模型分析 2 MobileNetV2 剪枝 2.1 剪枝过程 2.2 剪枝结果 2.2.1 网络结构 2.2.2 推理时延 2.3 实验结论 3 模型嵌入 3.1 模型保存与加载 法一:保存整个模型 法二:仅保存模型的参数 小试牛刀 小结…

MSPM0L1306例程学习-UART部分(2)

MSPM0L1306例程学习系列 1.背景介绍 写在前边的话: 这个系列比较简单,主要是围绕TI官网给出的SDK例程进行讲解和注释。并没有针对模块的具体使用方法进行描述。所有的例程均来自MSPM0 SDK的安装包,具体可到官网下载并安装: https://www.ti…

YOLOv8改进 | 主干篇 | 低照度图像增强网络SCINet改进黑暗目标检测(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是低照度图像增强网络SCINet,SCINet(自校正照明网络)是一种专为低光照图像增强设计的框架。它通过级联照明学习过程和权重共享机制来处理图像,优化了照明部分以提升图像质量。我将该网络集成在YOLOv8的主干上针对于图像的输入进行增…

【QT+QGIS跨平台编译】之三:【OpenSSL+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、OpenSSL介绍二、OpenSSL配置三、Window环境下配置四、Linux环境下配置五、Mac环境下配置 一、OpenSSL介绍 OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这…

vectorCast手动添加测试用例配置输入参数和期望值

1.选中函数,点击右键选择插入测试用例。这里所选择的插入测试用例区别于之前的测试用例的地方在于,这里插入测试用例是手动配置的,之前的是自动生成的。手动配置可以自定义选择输入参数和期望值。 2.添加测试用例后,点击测试用例&…

Mybatis 动态SQL删除操作

实现动态删除多个数据,这里我们需要用到 foreach 标签,这个标签还可以运用到批量插入,反正需要对集合进行遍历时就可以使用该标签,标签有如下属性 : 新建了一个 userInfo2Mapper 接口,然后写下如下代码,声明 batchDelete 方法 package com.example.mybatisdemo.mapper; import…

城市道路智慧养护顶层设计建议书

项目通过对国家在推动智慧交通领域的健康发展上发布的如:《交通强国建设纲要》、《推进综合交通运输大数据发展行动纲要(2020-2025年)》、《数字交通发展规划纲要》等相关政策的深入理解与研究,结合“互联网”、“智能化”、“智慧化”等理念,对国家提出…