Internet地址结构
一.IP地址的表示
1.IPv4地址的表示
点分四组或点分十进制表示法,例如127.0.0.1
点分四组表示 二进制表示
-------- | -----
0.0.0.0 00000000 00000000 00000000 00000000
1.2.3.4 00000001 00000010 00000011 00000100
255.255.255.255 11111111 11111111 11111111 11111111
2.IPv6地址表示
传统表示方法:采用块或字段的四个十六进制数,用冒号分隔,例如:240c:c02f:0000:e078:3418:1ab:75cf:4ea1
[RFC4291]
(1)前导零可以省略,如240c:c02f:0:e078:3418:1ab:75cf:4ea1
(2)全零的块可以省略,如0:0:0:0:0:0:0:1可以写为::1。同样2001:0bd8:0:0:0:0:0:2可以简写为2001:db8::2。为了避免歧义一般情况下::只用一次
(3)IPv6中嵌入IPv4地址可使用混合符号形式,紧接着IPv4部分的地址块的值为ffff,其余部分使用点分四组格式。如IPv6地址::ffff:10.0.0.1表示IPv4地址10.0.0.1。它被称为IPv4映射的IPv6地址
(4)IPv6地址的低32位通常采用点分四组表示法。因此IPv6地址
::0102:f001相当于地址::1.2.240.1。他被称为IPv4兼容的IPv6地址
(5)注意:Pv4兼容地址与IPv4映射地址不同;它们只是在能用IPv4地址的方式书写或由软件处理方面给人兼容的感觉。现在已经不需要[RFC4291]
http://[240c:c02f:0:e078:3418:1ab:75cf:4ea1]:443/
表示IPv6主机240c:c02f:0:e078:3418:1ab:75cf:4ea1的端口号443使用HTTP,TCP和IPv6协议
[RFC5952]
(1)前导零必须压缩
(2)::只能用于影响最大的地方(压缩最多的零)如果有多个就压缩顺序靠前的
(3)a到f的十六进制数应该用小写
3.IPv4与IPv6区别
IPv4 IPv6
地址长度 32位 128位
分隔符号 点号 冒号
表示方法 点分四组或点分十进制表示法 采用块或字段的四个十六进制数,用冒号分隔
地址 广播地址可用于IPv4 IPv6没有广播地址,而IPv6仅使用组播地址
二.基本的IP地址结构
1.分类寻址
(1)基本概念
a. 网络号:每个单播IP地址都有一个网络部分,用于识别接口使用的IP地址在哪个网络中可以被发现
b.主机号:用于识别网络部分给出的网络中的特定主机
c.每台主机都有一个唯一的IP地址
(2)地址空间的划分(五大类)
类 高序位 网络号 主机号 地址范围 百分比 网络数 主机数
A 0 8位,7位自由 24 0.0.0.0-127.255.255.255 1/2 128 16777216
B 10 16位,14位自由 16 128.0.0.0-191.255.255.255 1/4 16384 65536
C 110 24位,21位自由 8 192.0.0.0-223.255.255.255 1/8 2097152 256
D 1110 32位,28位自由(组播地址) 0 224.0.0.0-239.255.255.255 1/16 N/A N/A
E 1111 32位,28位自由(保留) 0 240.0.0.0-255.255.255.255 1/16 N/A N/A
A,B,C用于为单播地址中的接口分配地址,以及其他一些特殊情况下使用。类由地址头几位确定,这些数字是不准确的,一般情况下地址块的第一个和最后一个地址不使用
2.子网寻址
(1)子网寻址提供额外灵活性的代价就是增加成本
(2)子网字段和主机字段由站点决定,不是由网络号分类决定的
(3)子网寻址例子
类 集中分配 站点本地管理
B 网络号(16位,14位自由) 子网ID(8位) 主机ID(8位)
它使用8位作为子网ID,提供256个子网和每个子网中的254台主机,这种划分可以由网络管理员改变。
前16位固定为特定号码,后16位可以由管理员按需分配。
注意:只有划分子网的网络中的主机和路由器知道子网结构。在进行子网寻址之前,Internet的其他部分仍将它看做站点相关的地址看待
3.子网掩码
(1)子网掩码是由一台主机或路由器使用的分配位,以确定如何从一台主机对应的IP地址中得到网络和子网信息
(2)IP的子网掩码与对应的IP地址长度相同–>路由器静态配置或DHCP动态配置
(3)当前子网掩码(掩码)由一些1后跟一些0组成,有时候也被称为前缀长度(与掩码关系:同一个东西的不同格式)
(4)IPv4的例子
点分十进制表示 容易记的格式(前缀长度) 二进制表示
128.0.0.0 /1 10000000 00000000 00000000 00000000
255.0.0.0 /8 11111111 00000000 00000000 00000000
255.193.0.0 /10 11111111 11000000 00000000 00000000
255.255.0.0 /16 11111111 11111111 00000000 00000000
255.255.254.0 /23 11111111 11111111 11111110 00000000
255.255.255.192 /27 11111111 11111111 11111111 11100000
255.255.255.255 /32 11111111 11111111 11111111 11111111
(5)IPv6例子
十六进制表示 前缀长度 二进制表示
ffff:ffff:ffff:ffff:: /64 1111111111111111 1111111111111111 1111111111111111 1111111111111111 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
ff00:: /8 1111111100000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
(6)如何根据IPv4地址和子网掩码得到网络和子网ID(按位与操作)
地址 1000 0000 0010 0000 0000 0001 0000 1110 128.32.1.14
掩码 1111 1111 1111 1111 1111 1111 0000 0000 255.255.255.0 (/24)
结果 1000 0000 0010 0000 0000 0001 0000 0000 128.32.1.0
注意:上述表格是边界路由器需要的信息,以确定IP对应的子网,Internet路由系统其他部分不需要子网掩码,因为站点之外的路由做出决策只基于地址的网络号部分,因此子网掩码纯粹是因为站点内部的局部问题。
4.可变长度子网掩码
(1)现在大多数主机,路由器和路由协议支持VLSM(可变长度子网掩码)
(2)具体实例参照《TCP/IP详解 卷一:协议》(第2版)P27
5.广播地址
(1)每个IPv4子网中有一个特殊的地址被保留作为广播地址
(2)广播地址由网络/子网部分取合适值,主机部分所有位为1。
(3)广播地址构建方式:对子网掩码取反,并与子网中任意计算机地址(或者等值的网络/子网前缀)进行按位或运算
(4)例子
地址 1000 0000 0010 0000 0000 0001 0000 1110 128.32.1.14
掩码取反 0000 0000 0000 0000 0000 0000 1111 1111 0.0.0.255
或的结果 1000 0000 0010 0000 0000 0001 1111 1111 128.32.1.255
其中128.32.1.255又称为定向广播地址
(4)本地网络广播地址(有限广播地址):255.255.255.255,它不会被路由器转发
(5)IPv6没有广播地址;广播地址可用于IPv4,而IPv6仅使用组播地址
6.IPv6地址和接口标识符
(1)基本概念
a.地址范围:IPv6中的一个特殊前缀,一个地址范围指它可用的网络规模
b.例子:
名称 作用
节点本地 只用于同一计算机中通信
链路本地 只用于同一网络链路或IPv6前缀中的节点
全球性 Internet范围
IPv4也使用但是不常见
c.另外一个范围层次为站点本地,使用fec0::/10
(2)接口标识符(IID):作为单播IPv6分配的基础
a.IID在所有情况下都作为一个IPv6地址的低序位
b.IID长度通常为64位,并直接由一个网络接口相关的链路层MAC地址形成,该地址使用修改的EUI-64格式或其他进程随机提供的值形成,以提供可防范地址跟踪的某种程度的隐私保护
c.IEEE标准中,EUI表示拓展唯一标识符。EUI-64标识符开始于一个24位的组织唯一标识符(OUI),接着是由组织分配的40位拓展标识符d.OUI由IEEE注册权威机构(IEEERA)来维护和分配
e.EUI-48与EUI-64之间的转换
OUI占据EUI-48与EUI-64的前三个字节,且第一个字节的第7,第8字节分别为u位,g位。
当u位被设置时,表示该地址为本地管理。当g位被设置时表示该地址是一组或组播类型的地址
(3)EUI-48与EUI-64的转换
OUI的24位复制到EUI-64的前24位,并将EUI-64的第4第5字节替换为1111111111111110(FFFE),其余不变。
如EUI-48地址位:00-11-22-33-44-55在EUI-64中为00-11-22-FF-FE-33-44-55。但修改的EUI-64用于形成IPv56的IID,需要对u位取反
ifconfig eh0 使用前查看有无eth0
ipconfig /all
分别查看Linux与Windows系统的相关信息
三.CIDR和聚合
1.前缀
(1)基本概念
a.无类别域间路由(CIDR)是一个用于给用户分配IP地址以及在互联网上有效地路由IP数据包的对IP地址进行归类的方法。
b.CIDR掩码:类似于子网掩码的掩码,全球可见,不局限于某一站点
c.网络前缀
(2)子网划分、子网掩码、可变子网掩码(VLSM)和CIDR
2.聚合
分层路由
路由聚合
四.特殊用途的地址
1.特殊用途地址
2.IPv4与IPv6的转换
嵌入IPv4的IPv6地址:IPv6的前缀长度必须为下列数值之一:32,40,48,56,64,96.
下表显示了可用格式
前缀长度 IPv6前缀 IPv4地址 u位 IPv4地址 后缀
32 32位 32位 u ---- 56位
40 40位 前24位 u 后8位 48位
48 48位 前16位 u 后16位 40位
56 56位 前8位 u 后24位 32位
64 64位 0 u 32位 24位
96 96位 0 ---- 32位 0
前缀既可以是众所周知的前缀也可以是组织为转换器分配的唯一前缀。
3.组播地址
IPv4与IPv6都支持组播地址。
组播地址(组或者组地址)标识一组主机接口,而不是单个接口
一个组可以跨越整个Internet,一个组所覆盖的网络部分为组的范围。
站点管理员可以将路由器配置为管理范围边界,即相关组的组播流量不会被路由器转发。
站点本地和管理范围只在使用组播地址时有效
任意源组播(ASM):在这种模型下,任何发送方可以发送给任何组
源特定组播(SSM):在每个组只使用一个发送方,当一台主机加入一个组后,它会被指定一个信道地址。其中包括一个组地址和一个源IP地址
SSM避免了ASM部署的复杂性
4.IPv4组播地址
D类空间已被保留支持组播
GLOP:一部分地址空间的名称
会话目录工具(SDR)
会话通告协议(SAP)
会话描述协议(SDP)
自洽系统(AS)
基于单播前缀的组播寻址(UBM)
5.IPv6组播地址
ff00::/8已被预留给组播地址
一般格式
11111111 0 R P T 范围(4位) 组ID(112位)
范围字段表示到某些组播地址的数据报的分配限制
可变范围或相对范围
两种可选方法:基于单播前缀的IPv6组播地址分配和链路范围的IPv6组播
会合点(RP)
6.任播地址
单播、组播、广播和任播有什么区别?
五.分配
1.单播
2.组播
六.单播地址分配
1.单个供应商/无网络/单个地址
2.单个供应商/单个网络/单个地址
3.单个供应商/多个网络/多个地址
4.多个供应商/多个网络/多个地址(多宿主)