《TCP/IP详解 卷一》第2章 Internet地址结构

目录

2.1 引言

2.2 表示IP地址

2.3 基本的IP地址结构

单播地址

全球单播地址:

组播地址

任播地址

2.4 CIDR和聚合

2.5 特殊用途地址

2.6 分配机构

2.7 单播地址分配

2.8 与IP地址相关的攻击

2.9 总结


2.1 引言

2.2 表示IP地址

IPv4地址:32位

IPv6地址:128位

IPv4兼容的IPv6地址:

        ::IPv4_address,允许IPv6主机与IPv4主机直接通信。

IPv4映射的IPv6地址

        ::FFFF:IPv4_address,用于过渡期或双栈。

上述两种IPv6地址方案已被淘汰,取而代之是原生IPv6地址方案。

现代IPv6网络中,更倾向于使用NAT64和DNS64来实现IPv4和IPv6之间的通信

        NAT64和DNS64通常需要同时存在。

NAT64:将IPv6数据包转换为IPv4数据包。

DNS64:用于解析IPv4地址并生成IPv6地址。

举例,IPv6 访问IPv4时:

        1. IPv6主机发送DNS查询请求到DNS64服务器,请求某域名的IPv6地址。

        2. DNS64服务器收到请求后,查询到域名对应的IPv4地址,并转换为特定的IPv6 地址。

如,IPv4 地址 192.0.2.1转换为 IPv6 地址 64:ff9b::192.0.2.1。

        3. IPv6主机发送数据包到目标IPv6 地址,即DNS64生成的特定IPv6 地址。

        4. 数据包经过NAT64网关时,NAT64网关检测到特定的前缀,并将 IPv6数据包转换为对应的IPv4数据包。

        5. 最终数据包进入IPv4网络,通信成功。

为区分IPv6中冒号和端口号前的冒号,使用[ ]包围IPv6地址,如:

        http://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:8080

2.3 基本的IP地址结构

分类寻址

IPv6没有IPv4的子网掩码,而是前缀长度,如2001:0db8:85a3:0000::/64

子网掩码:纯粹是内网内部的局部问题。外网不关心子网号,只关心网络号。

   

可变长度子网掩码 VLSM:用于分割一个网络号,使每个子网支持不同数量的主机。不同子网长度不一致。

旧的路由协议不支持VLSM,如RIP v1。

子网广播地址(定向广播):

        将 IPv4地址中主机位全为1。路由器不转发定向广播报文。

本地网络广播(有限广播):

        255.255.255.255,路由器不能转发。

为了提高地址利用率,减少网络负载,增强安全性,IPv6没有广播地址,仅使用组播地址。

IPv6不进行NAT转换,因为地址够用。

单播地址

链路本地地址:

        只用于同一链路通信,该报文不被路由器转发。

        前缀是fe80::/10

        所有IPv6接口都需要配置该类型地址。

        用于邻居发现、路由通告RA,路由请求RS,IPv6地址自动配置,局域网设备通信。

全球单播地址:

全球唯一,类似IPv4公有地址,前缀是2000::/3,格式如下:

Global Routing prefix: ISP分配。

Subnet ID: 用于划分子网,网络管理员分配。

Interface ID:在子网中不能重复,可由MAC地址生成。

唯一本地地址Unique Local Addresses (ULA):

        前缀是fc00::/7,类似IPv4私有地址(10.0.0.0/8、192.168.0.0/16)

        使用场景:内网服务器、打印机、智能家居设备。

环回地址:

        类似于127.0.0.1

未指定地址:

        地址是全0,不能分配给接口。用该地址作源地址以表示接口此时无IPv6地址,仅可用于报文的源地址。

组播地址

全球组播地址,用于多播通信,类似IPv4多播地址。前缀是ff00::/8。

标准组播地址:范围为 ff01::/16 到 ff0f::/16

使用场景:

        路由器发送路由通告和路由器通告消息的目标地址。

        邻居发现过程中的目标地址。

        DHCPv6 服务器和客户端之间的通信。

任播地址

即Anycast Address

前缀:ff00::/8

用于一对多通信。一个数据包若以任播地址为目的地址,只被路由到最近的目标节点。

作用:服务冗余,负载均衡,路由优化。

使用场景:分布式系统、CDN(内容分发网络)、云计算等。

如ff02::1,表示所有路由器的任播地址。

链路本地地址和全球地址都使用Interface ID(64位)作为低序位,

Interface ID直接有MAC地址组成成为EUI64格式,EUI拓展唯一标识符,

EUI-48地址即MAC地址。

EUI-48转换为EUI-64:

        EUI-48地址00-11-22-33-44-55转换为EUI-64地址00-11-22-FF-FE-33-44-55,然后将EUI-64的u位取反,得到Interface ID

EUI 64地址第一字节低两位:分别是u位和g位

        u:指示EUI-64地址的全球唯一性。0:是全球唯一地址,1:不是全球唯一地址。

        g:是否是组播地址。0:是单播地址,1:是组播地址。

MAC地址00:30:48:2A:19:89映射为一个IPv6地址完整流程:

        1. 转换为EU1-64形成地址00:30:48:ff:fe:2a:19:89。

        2. u位被取反,形成IID 值02:30:48:ff:fe:2a:19:89。

        3. 使用保留的链路本地前缀fe80::/10,形成完整地址fe80::230:48ff:fe2a:1989。/64是标准子网掩码长度。

windows IPv6地址fe80: :5efe:10:153:141:135%2

        其中5efe中fe表示后面嵌入的是IPv4地址,其中OUI 为( 00-00-5E)。

2.4 CIDR和聚合

CIDR(Classless Inter-Domain Routing,无类 域间 路由):消除A类、B类和C类地址以及划分子网的概念。尽量合并成一条路由,减少路由条目。

VLSM(Variable Length Subnet Mask,可变长子网掩码):

VLSM关注划分同一网络的子网大小。

CIDR更注重于整体的IP地址划分和路由表聚合。

CIDR与VLSM比较:

        CIDR掩码在全球性路由系统可见。CIDR把几个标准ABC类网络合成一个大的网络

        VLSM只在站点本地可见,VLSM可把一个标准网络分成几个子网。

聚合:合并路由表,减少路由表项。

2.5 特殊用途地址

IPv4

        0.0.0.0:未匹配路由表时,用于查询目的地址为0.0.0.0的路由表项,得到下一跳。

        169.254.0.0/16:即自动配置IP地址。没有DHCP服务器时,设备使用该地址得到一个本地链接 IP 地址。

        224.0.0.0到239.255.255.255:多播地址。

IPv6

        ff00::/8 组播地址,作为目的地址使用,具体有:

        ff02::1 链路本地所有节点

        ff02::2 所有路由器

        ff02::5 OSPFv3 路由器

        ff02::9 RIPng路由器

        fc00::/7 唯一本地单播地址:类似于IPv4私有地址,不在互联网上路由。

        fe80::/10 链路本地单播地址:用于链路上的本地通信和邻居发现。是自动配置的。

IPv4 组播地址

        ASM(Any-Source Multicast)任意源组播:

                IPv4中常用的组播模式,不关心发送者身份,存在安全和拥塞等问题。

        SSM(Source-Specific Multicast)源特定组播:

                新型组播模式,一个组的发送方只有一个,且固定。

                使用场景:视频直播。

Linux开启SSM:

        启用IGMPv3,以支持SSM

        ip maddr add <multicast_address> dev  <interface> src <source_address>

Linux开启ASM:

        ip maddr add <multicast_address> dev  <interface>

PIM(Protocol Independent Multicast):一种路由协议,用于在IP网络中支持组播传输。

基于单播前缀的组播地址:UBM

        单播地址192.0.2.0/24 对应的UBM地址 234.192.0.2 (对UBM左移8位就知道单播地址)

        作用:灵活扩展来定义组播组。

IPv6 组播地址

        ff00::/8 预留给组播地址。

任播地址anycast :

        多个设备共享相同任播地址,数据包只路由到其中最近设备。

        场景:用于DNS,内容分发网络CDN,负载均衡,NTP服务器。

        任播地址范围:224.0.0.0到239.255.255.255,FF00::/8

2.6 分配机构

单播:

        每个大洲一个IP注册结构,为国家分配地址空间,由ISP分配。

        供应商独立的地址PI:不由ISP分配,客户单独拥有,ISP单独为其路由

        whois命令:跟踪一个IP从哪里分配来。

命令whois www.baidu.com

        从WHOIS服务器得到,该域名的注册商、注册日期、到期日期以及域名联系人的信息。

命令whois 203.0.113.0

        从WHOIS服务器得到,该IP地址注册信息,包括IP分配机构、分配日期、使用情况等。

组播方式:

        ASM/SSM

        实现组播可能需网络管理员要和ISP沟通或厂商。

2.7 单播地址分配

netstat -gn:查看组播地址。

DMZ:使外网用户可以访问内网服务器(如Web, 邮件,FTP),同时限制他们访问内部其他网络。通过防火墙规则实现。

2.8 与IP地址相关的攻击

2.9 总结

相邻的地址前缀可被聚合

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

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

相关文章

MyBatis 一文从入门到精通

目 录 一.MyBatis 是什么&#xff1f;二.为什么要学习 MyBatis&#xff1f;三.怎么学MyBatis&#xff1f;四.第⼀个MyBatis查询1.创建数据库和表2.添加MyBatis框架支持配置数据库的连接信息&#xff08;连接哪台数据库)配置 mybatis XML文件存放位置和命名规则 3.添加业务代码使…

software framwork

software framwork软件架构 软件架构&#xff0c;之前图没找到&#xff0c;随手画了一个啦&#xff0c;了解架构细分职能和工作任务&#xff1a; 下图&#xff0c;第一是客户端架构包项目&#xff0c;第二是服务端架构包项目 -----------------------------------------------…

JavaSE-05笔记【面向对象02】

文章目录 1. 类之间的关系2. is-a、is-like-a、has-a2.1 is-a2.2 is-like-a2.3 has-a 3. Object类3.1 toString()3.2 finalize()&#xff08;了解即可&#xff09;3.3 与 equals 方法 4. package 和 import4.1 package4.2 import4.3 JDK 常用开发包 5. 访问权限控制5.1 privat…

C#_扩展方法

简述&#xff1a; 扩展方法所属类必需是静态类&#xff08;类名依据规范通常为XXXExtension&#xff0c;XXX为被扩展类&#xff09;扩展方法必需是公有的静态方法扩展方法的首个参数由this修饰&#xff0c;参数类型为被扩展类型 示例&#xff1a; static class DoubleExtens…

C# (WebApi)整合 Swagger

SpringBoot-整合Swagger_jboot整合swagger-CSDN博客 C# webapi 也可以整合Swagger webapi运行其实有个自带的HELP页面 但是如果觉得UI不好看&#xff0c;且没办法显示方法注释等不方便的操作&#xff0c;我们也可以整合Swagger 一、使用NuGet控制台安装Swagger 在菜单中选择…

XUbuntu22.04之解决:systemd-journald占用cpu过高问题(二百一十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

循环利用再实践 | 保利经典款展厅上海闵行极速搬运至昆山陆家

2023年8月8日 由优积出品的 昆山陆家-明玥逸庭营销中心 唯美亮相&#xff0c;举城共鉴&#xff0c;不负一城期待 盛大开放&#xff01; 优积科技可拆装售楼部 上海闵行极速搬运至昆山陆家 昆山保利明玥逸庭售楼处是从上海闵行元江路搬运而来。这套售楼部在上海闵行元江路保利光…

Vue模板引用之ref特殊属性

1. 使用实例 <template><input ref"input" name"我是input的name" /><br /><ul><li v-for"arr in array" :key"arr" id"111" ref"itemRefs">{{arr}}</li></ul> </…

[C/C++] -- 访问Linux环境MySQL数据库

1.C编程访问MySQL 查询MySQL是否安装成功 dpkg -l | grep libmysqlclient # 查看系统中是否安装了与 MySQL 客户端库相关的软件包。这个命令会列出所有包含 libmysqlclient 字样的软件包&#xff0c;以便确认是否已安装相关库。ldconfig -p | grep mysqlclient # 查看系统中…

Opencv实战(2)绘图与图像操作

Opencv实战(2)绘图与图像操作 指路前文&#xff1a;Opencv实战(1)读取与像素操作 三、基本绘图 文章目录 Opencv实战(2)绘图与图像操作三、基本绘图(1).line(2).rectangle(3).circle 四、图像处理(1).颜色空间1.意义2.cvtColor()3.inRange()4.适应光线 (2).形态操作1.腐蚀2.膨…

C++的deque容器->基本概念、构造函数、赋值操作、大小操作、插入和删除、数据存取、排序

#include<iostream> using namespace std; #include <deque> //deque构造函数 void printDeque(const deque<int>& d) { for (deque<int>::const_iterator it d.begin(); it ! d.end(); it) { //*it 100; 容器中的数据不可以修…

深入探索Linux:ACL权限、特殊位与隐藏属性的奥秘

前言&#xff1a; 在Linux系统中&#xff0c;文件和目录的权限管理是一项至关重要的任务。它决定了哪些用户或用户组可以对文件或目录执行读、写或执行等操作。传统的Linux权限模型基于用户、组和其他的概念&#xff0c;但随着时间的推移&#xff0c;这种模型在某些情况下显得…