1. 1Pv6地址
随着互联网用户激增,App 也迅速繁荣发展,1Pv4 地址被快速消耗,可用的公网地址接近枯竭,为此引入1Pv6。为了支持更大的地址空间,1Pv6长度从 1Pv4的 32位增长到 128位。
1Pv6的地址长度为 128位,以 16位为一组,每组以冒号“.“隔开,可以分为 8组,每组以 4位十六进制数表示。
1Pv6计划作为未来互联网扩展的基础,其目标是取代 1Pv4,虽然 1Pv6在 1994年就已被 IETF指定为 1Pv4的下一代标准,但由于早期的路由器、防火墙、企业的资源计划系 统及相关应用程序皆须改写,因此在世界范围内 使用 1Pv6部署的公网 与 1Pv4相比还少很多。技术上仍以双架构并存居多,预计在 2025年前 1Pv4仍会被支持,以便给 1Pv6的修正留下足够的时间。
1Pv6与 1Pv4不同之处在千定义了新的分组格式,目的是最小化路由器 处理的消息标头。由于 1Pv4消息和1Pv6消息标头 有很大不同,因此这两 种协议无法平滑 升级。但是在大多数情况下,1Pv6仅仅是对 1Pv4做了保守扩展,因此除了嵌入互 联网地址的那些应用协议(如FTP、NTPv3),大多数传输 层协议和应用层协议几乎不怎么 需要修改就可 以在1Pv6上运行。同时,1Pv6包含以下三类地址。
· 单播地址 ( UnicastAddress)。它指定网络的地址 ,常用千点对点通信,类似1Pv4地址,包含如下的子类 。
► 本地链路地址 ( Local-Use1Pv6UnicastAddresses, LUA) 。前缀是 “ feS0::/10" 的
地址,用于本地网络。当网 络包 的目标地址包含 1Pv6的 LUA时,路由器不转 发
该网络包 ,所 以1Pv6的 LUA在某 种程度上可 理解为 1Pv4的专有网络地址 。
► 全局地址 ( GlobalUnicastAddresses, GUA) 。前缀以二进制数 001开头的地址,
可在任何网 络上使用 。某种程度上,可理解为 1Pv4互联网地址。
► 未指定地址 ( UnspecifiedAddress) 。地址 “ 0:0:0:0:0:0:0:0"就是未指定地址,表
示没有地址且决不会将它分配给主机使用 。例如,在主机学习自己地址时,就会
发送源地址为“未指定地址”的网络包 。
► 回送地址 ( LoopbackAddress )。地址 “ 0:0:0:0:0:0:0:1" 就是回送地址 ,也可以缩
写为 " .:l"'节点使用该回送地址向其自身发送信息包。
· 多播地址 ( MulticastAddress)。如果单播地址 是点对点 的机器通信,多播地址则 是单个地址对应多个机器,实现一对多的通信。多播地址 的前缀是 “ ff" , 如果向多播地址发送数据包,就会向该组的每个 成员都传递该数据的副本。
· 广播地址(AnyeastAddress)。介千单 播地址和多播地址 之间 ,结合CIDR的子网前缀,将数据包 发送给子网内的所有地址的机器,如图3-3所示,广播将发给 2128- "个地址的机器。
图 3-3广播的子网 前缀
1. MAC地址
MAC地址,也称为局域网地址 ( LANAddress)、以太网地址 ( EthernetAddress) 或物理地址 ( PhysicalAddress),用来确认网络设备位置 的地址。在 OSI模型中 ,第三层网络层负责IP地址,第二层数据链 接层则负责 MAC地址。MAC地址用于在网络中 唯一标示网卡,一台设备若有多个网 卡,则每个网卡都会有唯一的 MAC地址。
假设某 路由器 有 1个 WAN端口和4个 LAN端口,那么 WAN端口会有 1个如 61.61.61.61的 IP地址,也会有 1个如 00:0A:02:0B:03:0C 的 MAC地址。它的 4个 LAN端口各自会分配到典型如 192.168.1.0/24的 IP 地址(共 4 个地址),4个 LAN端口各自会有不同的 MAC地址。
MAC地址共 48位 ( 6字节),通常以十六进制表示 。第 1位控制地址类 型,为 0表示单播地址 ( Unicast) ,为 1表示多 播地址 ( Multicast);第 2位控制用途,为 0表示全局地址( Globally) ,为 1表示本地地址 ( Locally)。前 3~24位由 IEEE决定如何分配 给每一家制造商,且不重复,后24位由实际生产 该网络设备 的厂商自行指定且不重复 。MAC地址格式如图 3-4所示。
图 3-4MAC地址格式
例如,“ ff:ff:ff:ff:ff:ff" 是 MAC的广播地址,“ 01:xx:xx:xx:xx:xx" 是 MAC的多播地址。
1. UUID
通用唯一标识符 ( UniversallyUniqueIdentifier,UUID) 是在计算机体系中用千标记信息的 128位标识符,也叫作全局 唯一标识符 ( GloballyUniqueIdentifier,GUID)。它在单机内就可以生成,并且多台机器生成的 UUID冲突率接近为 零。
UUID由 16字节的数组成 ,理论上总数为 2128。 按照 UUID基千时间生成的原理,即使每纳秒 ( ns) 产生 1万亿个 UUID, 也要花 100亿年才会将所有 UUID用完。UUID的标准格式 ,包含 32个十六进制数,以连字号分为 5段,形式为 8-4-4-4-12的32个字符。UUID格式如图 3-5所示。
图3-5 UUID格式
UUID包含time_low、time_mid、time_hi_an—d和 node字段,具体描述 如表 3-4所示。version、clock_seq_hi_and_resclock_seq_low
表 3-4UUID格式字段描述
3.1.2命名分类
系统时间值整数的低位 (32位)系统时间值整数的中间位 ( 16位)
前 4位是版本(图 3-5中的 M),后 12位是系统时间值整数的高位
前 3位是变体(图 3-5中的N) ,后 13位是时钟序列 48位的节点 ID
基千前面 的命名介绍,可以从技术上将命名分为三类:平坦命名 ( FlatNaming)、结构化命名 ( StructuredNaming) 和基千属性命名,它们各自有特色。
1. . 平坦命名
平坦命名也叫作非结构化命名 ( UnstructuredNaming),该命名方式下名字本身就是一串字符串,没有包含额外 的信息。例如, IP地址、MAC地址、UUID就采用了平坦命名策略。
对于平坦命名的实 体,典型的寻址方式有两类。
· 按字节比对寻址。该方法就是根据实 体的名字 ,逐字节比较寻址。
按哈希计算 寻址 。该方法通过计算实体名字得到哈希 值,然后利用类似一致性哈希(DistributedHashTable, DHT)寻址,如图3-6所示。将名字通过哈希函数( Hash Function)计算得到寻址键 ( Key) 。在点对点的( Peer-to-Peer, P2P) 分布式网络中,Key存放数据
· 计算得到寻址键 ( Key) 。在点对点的( Peer-to-Peer, P2P)分布式网络中,Key存放数据的机器节点( NodeID) 直接通过Hash( Key) 得到,从而实现快速地 寻址。
图 3-6 一致性哈希 CDHT) 寻址
2. 结构化命名
平坦命名的名字简单,不包含太多意义,非常适合机器使用 ,但是人为管理则不太容易用,也不容易读懂。例如,IP地址本身就不包含太多意义,对人来说就是一串数字 。为了 让人类可读易记,结构化命名被提出 。此时名字可以用图的方式表示,特别是用 树的分层结构表示。例如,文件系统的绝对路径和 相对路径就 是树形结构的命名,而互联网URL中的主机名 ( hostname) 也是类似树形结构的命名。如图 3-7所示,将域名划分为各个子域,子域还可以继续划分为子域的子域,从而形成顶级域名、主域名、子域名等。
图 3-7中,“ com" 是顶级域名 ;“ aliyun.com"是主域名(也可称托管一级域名),主要指企业名;“ example.aliyun.com"是子域 名(也可称为托管二级域名),它位千 " .com"顶级域名之下;“ www.example.aliyun.com"是子域名的子域(也可称为托管三级域名)。
1. 基于属性命 名
平坦命名和结构化命名从某种程度看都是单维度 的名字信息,但是在分布式系 统中,希望每个实体包含更多的信息,因此常常需要为实 体关联一组属性(通常采用“ 属性、值”来表示),并从多个维度来描述实体。例如,业界常用 的轻型目录访问协议( LightweightDirectoryAccessProtocol, LDAP),其单条记录 就包含如图 3-8所示的多维度属性 。
图3-8 LDAP多维度属性