《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://xiahunao.cn/news/2805491.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

nginx重新编译添加模块或去除不需要的模块

在使用nginx中&#xff0c;我们可能需要对已经安装的nginx进行添加或者删除模块 1、先查看nginx安装了哪一些模块 nginx -V2、来到nginx源码目录&#xff0c;根据如下规则&#xff0c;自行根据需求更改命令 如果要去掉nginx自带的模块&#xff0c;就是用–without做为前缀进…

SpringBoot项目实现文件上传,MINIO+OSS阿里云

MINIO 安装以及部署 官网&#xff1a;MinIO | Code and downloads to create high performance object storage 下载后是一个minio.exe的文件&#xff0c;可以先创一个文件夹来存放数据以及文件 在文件的目录下cmd进入控制台 minio.exe server data 启动成功后控制台会打印账…

[NCTF2019]True XML cookbook --不会编程的崽

题目的提示很明显了&#xff0c;就是xxe攻击&#xff0c;直接抓包。 <?xml version "1.0"?> <!DOCTYPE ANY [ <!ENTITY xxe SYSTEM "file:///etc/passwd" > ]> <user><username> &xxe; </username><passwor…

H桥逆变控制方式(单极性倍频)

单极性倍频图像 内部做了载波取反&#xff1a;正相载波和负相载波 最后都和调制载波一起比较 正相载波&#xff1a;Q7导通为高电平&#xff0c;Q15导通为低电平 负相载波&#xff1a;Q16导通为高电平&#xff0c;Q8导通为低电平 导通次序为&#xff1a;Q7Q16——Q7Q8——Q7Q…

OpenHarmony JS和TS三方组件使用指导

OpenHarmony JS和TS三方组件介绍 OpenHarmony JS和TS三方组件使用的是OpenHarmony静态共享包&#xff0c;即HAR(Harmony Archive)&#xff0c;可以包含js/ts代码、c库、资源和配置文件。通过HAR&#xff0c;可以实现多个模块或者多个工程共享ArkUI组件、资源等相关代码。HAR不…

【MATLAB】CEEMD_ MFE_SVM_LSTM 神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 CEEMD_MFE_SVM_LSTM神经网络时序预测算法是一种结合了多种先进技术的复杂预测方法&#xff0c;旨在提高时序预测的准确性和稳定性。下面是对该算法的详细介绍&#xff1a; CEEMD&#xff…

Linux进一步研究权限-----------ACL使用

一、使用情况 1.1、场景: 某个大公司&#xff0c;在一个部门&#xff0c;有一个经理和手下有两个员工&#xff0c;在操控一个Linux项目,项目又分为三期做&#xff0c;然而一期比较重要&#xff0c;经理带着员工做完了&#xff0c;公司就觉得技术难点已经做完攻克了&#xff0…

Redis可视化工具——RedisInsight

文章目录 1. 下载2. 安装3. RedisInsight 添加 Redis 数据库4. RedisInsight 使用 RedisInsight 是 Redis 官方出品的可视化管理工具&#xff0c;支持 String、Hash、Set、List、JSON 等多种数据类型的管理&#xff0c;同时集成了 RedisCli&#xff0c;可进行终端交互。 1. 下载…

npm login报错 ‘proxy‘ config is set properly. See: ‘npm help config‘

报错提示 解决办法 按照以下的顺序执行命令行 检查自己的代理 npm config get proxy npm config get npm config get https-proxy npm config get registry代理和缓存置空并且设置新镜像 npm config set proxy null npm config set https-proxy null npm config set regist…

vite+ts+vue3项目配置

如何生成用户代码片段&#xff08;快捷生成代码&#xff09; 点击用户代码片段 新建全局代码片段&#xff0c;然后起个名字 {"vue": {"prefix": "vue","body": ["<template>"," <div class\"contai…

如何使用逻辑回归处理多标签问题?

逻辑回归处理多分类 1、背景描述2、One vs One3、One VS Rest4、从Sigmoid到Softmax的推导 1、背景描述 逻辑回归本身只能用于二分类问题&#xff0c;如果实际情况是多分类的&#xff0c;那么就需要对模型进行一些改动。下面介绍三种常用的将逻辑回归用于多分类的方法 2、One …

200万上下文窗口创飞Gemini 1.5!微软来砸谷歌场子了

谷歌刚刷新大模型上下文窗口长度记录&#xff0c;发布支持100万token的Gemini 1.5&#xff0c;微软就来砸场子了。 推出大模型上下文窗口拉长新方法——LongRoPE&#xff0c;一口气将上下文拉至2048k token&#xff0c;也就是200多万&#xff01; 并且1000步微调内&#xff0c…

移动端自动化常用的元素定位工具 介绍

在移动端自动化测试和开发中&#xff0c;元素定位是非常关键的一步。以下是一些常用的工具和技术来帮助开发者或测试工程师在移动设备上定位元素&#xff1a; 1. **UiAutomator**: - **UiAutomator** 是 Android 官方提供的自动化测试框架。它可以用来编写测试脚本&…

vue3 vite 经纬度逆地址解析

在web端测试经纬度逆地址解析有2中方式&#xff0c;先准备好两个应用key 第一种&#xff0c;使用“浏览器端”应用类型 const address ref() const latitude ref() // 经度 const longitude ref() // 纬度 const ak 你的key // 浏览器端 function getAddressWeb() {// 创建…

单片机04__基本定时器__毫秒微秒延时

基本定时器__毫秒微秒延时 基本定时器介绍&#xff08;STM32F40x&#xff09; STM32F40X芯片一共包含14个定时器&#xff0c;这14个定时器分为3大类&#xff1a; 通用定时器 10个 TIM9-TIM1和TIM2-TIM5 具有基本定时器功能&#xff0c; 还具有输入捕获&#xff0c;输出比较功…

Codeforces Round 494 (Div. 3)

目录 A. Polycarps Pockets B. Binary String Constructing C. Intense Heat D. Coins and Queries E. Tree Constructing F. Abbreviation A. Polycarps Pockets 记录数量可以直接开一个桶即可然后求最大值 void solve(){cin>>n;vector<int> ton(105);int …

idea 打jar包、lib文件夹

idea目录文件 idea四层级结构 idea操作Java文件的基本单位&#xff1a;项目&#xff08;Project&#xff09;。对应四级结构 第1层级架构&#xff1a;项目&#xff08;project&#xff09; 在 IntelliJ IDEA 中Project是最顶级的结构单元&#xff0c;然后就是Module&#xf…

计算机网络面经_体系结构一文说清

编辑&#xff1a;平平无奇的羊 目录 基础 1. 计算机网络结构体系 三种模型之间的区别&#xff1a; 如何背诵&#xff1a; 进阶 OSI七层模型&#xff1a; TCP/IP四层模型&#xff1a; TCP/IP五层模型 总结 字节实习生为大家带来的是计算机网络面经系列博文&#xff0c;由浅…

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

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

Java实现毕业生追踪系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 登陆注册模块2.2 学生基本配置模块2.3 就业状况模块2.4 学历深造模块2.5 信息汇总分析模块2.6 校友论坛模块 三、系统设计3.1 用例设计3.2 实体设计 四、系统展示五、核心代码5.1 查询我的就业状况5.2 初始化就业状况5.…