第5章IP 地址 网络中计算机之间通信需要有地址,该地址用来标识计算机或相关设备的通信接口。 每个网卡有物理地址(MAC地址),每台计算机需要有网络层地址,使用TCP/IP通信的计 算机网络层地址就称为IP地址。 互联网协议第4版本和第6版本分别提供了IPv4和IPv6两种编址的方法。基于 IPv4,本章主要讲解IPv4地址格式、子网掩码的作用、IPv4地址分类及子网划分。基于 IPv6,本章主要讲解IPv6地址结构及类型、IPv6的一些特殊地址。 本章主要内容: (1)IP地址概念; (2)IPv4地址分类; (3)IPv4子网划分; (4)IPv4的公网地址与私网地址; (5)IPv6地址。 1 IP编址简介 5. 编址是网络层协议的重要功能, IP编址就是给每个连接在互联网上的主机或相关设备 分配一个IP地址。IP地址用来定位网络中的计算机和网络设备。IP地址能够使我们可以 在因特网上很方便地进行寻址或定位某台计算机或网络设备。IP地址现在由因特网名字 和数字分配机构(nentCroainfrAsindNamenes,负责进 ItreoprtoogesadNumbrICANN) 行分配。 5.1 理解IP地址 1. 计算机的网卡有物理层地址(MAC地址),为什么还需要IP地址呢? 如图5-1所示,网络中有三个网段,一个交换机一个网段,使用两个路由器连接这三个 图5-1 MAC地址和IP地址作用 现代计算机网络原理与技术 网段。图中MA 、MB 、MC 、MD 、ME 、MF 以及M1 、M2 、M3 和M4 分别代表计算机和路由 器接口的MAC 地址。 计算机A给计算机F发送一个数据包,计算机A在网络层给数据报文添加源地址 (2)和目的地址(2)。 10.0.0.0. 12.0. 该数据报文要想到达计算机F,首先需要经过路由器1进行转发,由路由器1再转发到 路由器2。该数据报文如何才能让交换机1转发到路由器1呢? 那就需要在数据链路层添 加MAC 地址,源MAC 地址为MA,目标MAC 地址为路由器1中M1 的端口地址。 路由器1收到该数据报文,需要将该数据报文转发到路由器2,这就要求将数据报文重 新封装成帧,帧的目标MAC 地址是M3,源MAC 地址是M2,这也要求重新计算帧校验 序列。 数据报到达路由器2,数据报需要重新封装,目标MAC 地址为MF,源MAC 地址为 M4 。交换机3将该帧转发给计算机F。 从图5-1可以看出,数据报文的目标IP 地址决定了数据报最终到达哪一台计算机,而 目标MAC 地址决定了该数据包下一跳由哪个设备接收,但不一定是终点。 5.2 IP 地址组成 1. 在讲解IP 地址之前,先看一个日常生活中的例子。如图5-2所示,住在北大街的住户 要能互相找到对方,必须各自都要有个门牌号,这个门牌号就是各家的地址,门牌号的表示 方法为:北大街+×× 号。假如1号住户要找6号住户,过程是这样的:1号在大街上喊了 一声“谁是6号,请回答”,这时北大街的住户都听到了,但只有6号做了回答,这个喊的过程 叫“广播”,北大街的所有用户就是他的广播范围。假如北大街共有20 个用户,那么广播地 址就是北大街21 号。也就是说,北大街的任何一个用户喊一声能让“广播地址减1个(”) 用户 听到。 图5-2 街道地址表示 从这个例子中可以抽出下面几个词。 街道地址:北大街,如果给该大街一个地址,则用第一个住户的地址减1,此例为:北大 街0号。 住户的号:如1号、2号等。 住户的地址:街道地址+×× 号,如北大街1号、北大街2号等。 广播地址:最后一个住户的地址+1,此例为:北大街21 号。 互联网中,每个上网的计算机都有一个像上述例子的地址,这个地址就是IP 地址,它是 第5 章 IP 地址 97 分配给网络设备的门牌号。为了让网络中的计算机能够互相访问,IP地址也由两部分组 成,一部分是网络标识,另一部分是主机标识。如图5-3所示,同一网段中的计算机网络部 分相同,路由器连接不同的网段,负责不同网段之间的数据转发,交换机连接的则是同一网 段的计算机。 图5-3 网络标识和主机标识 计算机在与其他计算机通信之前,首先要判断目标IP地址和自己的IP地址是否在同 一个网段中,这就决定了数据链路层目标MAC地址是目标计算机的还是路由器接口的。 5.2 IPv4地址 整个互联网就是一个单一的、抽象的网络。IPv4地址就是给互联网上的每一个主机 (或路由器)的每一个端口(或接口)分配一个在全世界范围的唯一的32位标识符。IP地址 的结构使人们可以在互联网上很方便地进行寻址。IP地址现在由互联网名字和数字分配 机构(InternetCorporationforAssignedNamesandNumbers,ICANN)进行分配。目前, IP地址有两个版本IPv4和IPv6,在本书中若无特别指明,默认所指的IP 地址是IPv4 地址。 IPv4地址的编址方法共经历了以下三个阶段。 (1)分类的IPv4地址。这是最基本的编址方法,在1981年通过了相应的标准协议。 (2)子网划分。这是对最基本的编址方法的改进,其标准RFC950在1985年通过。 (3)构成超网。这是比较新的无分类编址方法,1993年提出后很快得到推广应用。 5.2.1 分类的IP地址 所谓“分类的IP地址”就是将IP地址划分为若干个固定的子类,每一类地址都由两个 固定长度的字段组成,其中,第一个字段是网络号(net-id),它标识主机(或路由器)所连接 的网络,一个网络号在整个互联网范围内必须是唯一的;第二个字段是主机号(host-id),它 标识着该主机或路由器的一个接口。一个主机号在它前面的网络号所指明的网络范围内必 现代计算机网络原理与技术 须是唯一的。由此可见,一个IP 地址在整个互联网范围内是唯一的。 1.IP 地址及其表示 这种两级的IP 地址可以记为 IP 地址::={<网络号>,<主机号>} 其中,“::=”表示“定义为”。 这种IP 地址的分层方案类似于人们常用的电话号码,电话号码是全球唯一的。例如, 对于电话号码010-××××××××,前面的字段010 代表北京的区号,后面的字段代表北 京地区的一部电话。IP 地址也是一样,前面的网络号代表一个网段,后面的主机号代表这 个网段中的一台设备。 那么如何区分IP 地址的网络号和主机号呢? 最初互联网络设计者根据网络规模的大 小,把IP 地址划分为A、B、C、D、E共5类。如图5-4所示为IP 地址的分类以及各类地址中 的网络号字段和主机号字段。 图5-4 分类IP 地址类别及其格式 从图5-4中可以看出: A类、B类和C类地址的网络号字段(在图中这个字段是灰色的)分别为1B,2B 和3B 长,而在网络号字段的最前面有1~3b 的类别位用来指明哪一类地址,其数值分别规定为 0,10 和110 。相应地,A类、B类和C类地址的主机号字段分别为3B 、2B 和1B 长。 D类地址(前4位是1110)用于多播(一对多通信)。 E类地址(前4位是1111)保留为以后用。 从IP 地址结构来看,IP 地址并不仅仅指明一个主机,而且还指明了主机所连接到的 网络。 IP 地址都是32b 二进制代码。为了提高可读性, 对主机或路由器来说,通常在每8位 之间插入一个空格(但在机器中并没有这样的空格)。为了便于书写,可用其等效的十进制 数字表示,并且在这些数字之间加上一个点。这就叫作点分十进制记法。图5-5是一个B 类的IP 地址表示方法。显然,11.31 比10000000000010110000001100011111 使用 128.3. 起来要方便得多。 点分十进制这种IP 地址写法,方便了人们的书写和记忆,通常计算机配置IP 地址时就 第5 章 IP 地址 99 图5-5 采用点分十进制记法能够提高可读性 是这种写法,如图5-6所示。 图5-6 点分十进制记法 2. 常用的三种类别的IP地址 A 类地址的网络号占1B,只有7位可供使用(该字段的第一位已固定为0),但可指派的 网络号有126(即27-2)个。减2的原因是全0(即00000000)和全1(01111111,127)在地址 中有特殊用途。网络号字段为全0的IP地址是一个保留地址,意思是“本网络”;网络号字 段为127的IP地址保留作为本地软件的环回测试本主机的进程之间的通信之用。若主机 发送一个目的地址为环回地址(例如127.0.0.1)的IP数据报,则本主机中的协议软件就处 理数据报中的数据,而不会把数据报发送到任何网络。目的地址为环回地址的IP数据报永 远不会出现在任何网络上,因为网络号为127的地址根本不是一个网络。 A类地址的主机号占3B,因此每一个A类网络中的最大主机数是224-2,即16777214。 这里减2的原因是:全0的主机号字段表示该IP地址是“本主机”所连接到的单个网络地 址。例如,某主机的IP地址为5.6.7.8,则该主机所在的网络地址就是5.0.0.0。而全1表示 “所有的”,因此全1的主机号字段表示该网络上的所有主机。 B类地址的网络号字段有2B,但前两位(10)已经固定了,只剩下14位可以进行分配。 现代计算机网络原理与技术 因为网络号字段后面的14 位无论怎样取值也不可能出现使整个2B 的网络号字段成为全0 或全1,因此这里不存在网络总数减2的问题。但实际上B类网络地址128.0是不指派 0. 0. 的,而可以指派的B类最小网络地址是128.0,因此B类地址可以指派的网络数为214-1, 即16383 。B类地址的每一个网络上的最大主机数是216-2,即655534 。这里需要减2是 因为要扣除全0和全1的主机号。整个B类地址空间共约有230 个地址,占整个IP 地址空 间的25% 。 C类地址有3B 的网络号字段,最前面3位是(110), 还有21 位可以进行分配。C类网 1. 0. 络地址192.0也是不指派的,可以指派的C类最小网络地址是192.0,因此C类地址 0.0.0. 1. 可指派的网络总数是221-1,即2097151 。每一个C类地址的最大主机数是28-2,即254 。 整个C类地址空间共约有229 个地址, 5% 。 占整个IP 地址的12. 根据以上分析,可以得出如表5-1所示的IP 地址指派范围 。 表5- 1 IP 地址的指派范围 网络 类别 最大可指派 的网络数 第一个可指派 的网络数 最后一个可指派 的网络数 每个网络中的 最大主机数 A 126(272) 1 126 2242 B 16383(2141) 128.1 191.255 2162 C 2097151(2211) 192.0.1 223.255.255 282 表5-2给出了一般不使用的特殊IP 地址,这些地址只能在特殊情况下使用。 表5- 2 一般不使用的IP 地址 网络号主机号源地址使用目的地址使用含义 0 0 可以不可以本网络上本主机 0 host-id 可以不可以在本网络上某个主机的host-id 全1 全1 不可以可以只在本网络上广播(路由器不进行转发) net-id 全1 不可以可以对net-id上所有主机进行广播 127 非全0或1的任何数可以可以用作本地软件环回测试 3.IP 地址特点 (1)计算机IP 地址由两部分组成,一部分为网络标识,另一部分为主机标识,如图5-7 所示,同一网段计算机网络部分相同。路由器连接不同网段,负责不同网段之间的数据转 发,交换机连接的则是同一网段的计算机。 (2)实际上IP 地址是标识一个主机和一条链路的接口,当一个主机同时连接到两个网 络时,该主机就必须有两个相应的IP 地址,其网络号必须是不同的,这种主机称为多归属主 机。由于一个路由器至少应当连接到两个网络,因此,一个路由器至少应当有两个不同的 IP 地址。 (3)按照互联网的观点,用转发器或网桥连接起来的若干局域网仍为一个网络,因此, 这些局域网都有同样的网络号。 第5 章 IP 地址 101 图5-7 三个局域网 (4)在IP地址中,所有分配到网络号的网络都是平等的。 图5-7画出了通过路由器连接的三个局域网,我们应当注意到: . 同一局域网上主机或路由器的IP地址网络号必须是相同的。 . 路由器总是具有两个或两个以上的IP地址,即路由器的每一个接口都有一个不同 网络号的IP地址。 5.2.2 IPv4 单播、广播和组播 在IPv4数据网络中,数据通信可以以单播、广播或组播的形式发生。下面讨论这3种 通信方式。 1. 单播通信 单播是指一台主机向另一台主机发送数据报的过程。在计算机网络中,主机之间的常 规通信都使用单播通信,如图5-8所示。单播数据报使用目的设备地址作为目的地址并且 可以通过网际网络路由。 图5-8 单播通信 现代计算机网络原理与技术 在IPv4网络中,用于发送端设备的单播地址称为源IP 地址,用于终端设备的单播地址 称为目的IP 地址。发送端设备在封装IP 数据报的过程中,将源主机的IP 地址作为源地 址,目的主机的IP 地址作为目的地址。 无论目标指定的数据报是单播、广播或组播,任何数据报的源地址总是源主机的单播地 址。在本课程中,除非特别说明,否则设备之间的所有通信均指单播通信。 IPv4单播主机地址范围是0.0.~255.255 。不过,此范围中的很多地址被留 0.0223.255. 作特殊用途,这些特殊地址用途参见表5-2。 2广播通信 广播(.) 是指一台主机利用网络的广播地址向该网络中的所有主机发送数据报的过程。如 图5-9所示。源主机在发送广播报文时,数据报以主机部分全部为1的地址作为目的IP 地 址,这表示本地网络(广播域)中的所有主机都将接收和查看该数据报。当网络中其他主机 收到广播地址数据报时,主机处理该数据报的方式与处理发送到单播地址的数据报的方式 相同,即将该数据报接收下来。 图5-9 广播通信 广播地址是一种特殊的IP 地址形式,它有两种形式:一种是直接广播地址;另一种是 有限广播地址。直接广播地址包含一个有效的网络号和一个全“1”的主机号,例如 202.30.255 就是一个主机号,202 则表明该类地址是C类的IP 地址;有限广播地址 163.255, 是指32 位全为1的IP 地址,即地址为255.255 。有限广播地址用于主机配置过程 255. 255. 中IP 数据报的目的地址,此时,主机可能还不知道它所在网络的网络掩码,甚至连它的IP 地址也不知道,比如向DHCP 服务器索要地址时、PPPOE 拨号时等。在任何情况下,路由 器都不转发目的地址为有限的广播地址的数据报,这样的数据报仅出现在本地网络中。直 接广播可用于本地网络,也可以跨网段广播,比如主机192.1/30 可以发送广播包到 168. 1. 7,使主机192.5/30 也可以接收到该数据包,前提是它们之间的路由器要开 启定向广播功能。 基于广播地址传播数据报时,数据报使用网上的资源,这使得网络上的所有接收主机都 处理该数据报。因此广播通信应加以限制,以免对网络或设备的性能造成负面的影响。因 为路由器可以隔离广播域,所以可以通过细分网络消除过多的广播通信来提高网络的性能。 192.1.1. 168.168. 第5 章 IP 地址 103 3. 组播通信 组播是指从一台主机向特定的一组主机(可能在不同网络中)发送数据报的过程,如 图5-10所示。 图5-10 组播通信 IPv4将224.0.0.0~239.255.255.255 的地址保留为组播地址范围,其中,组播地址 224.0.0.0~224.0.0.255是专为本地网络的组播保留的,这些地址将用于本地网络中的组播 组。连接到本地网络的路由器识别出这些数据报的目的地址为本地网络组播组,路由器不 再把这些数据报发送到别处。 接收特定组播数据报的主机称为组播客户端。组播客户端主机使用客户端程序请求的 服务来加入组播组。每一个组播组由一个组播IP的地址来代表。当IPv4主机加入组播组 后,该主机既要处理目的地址为组播地址的数据报,也要处理发往其唯一单播地址的数 据报。 5.2.3 子网划分 IP地址由32位的二进制数组成,这些地址如果全部能分配给计算机,共计232 = 4294967296,大约40亿个可用地址,这些地址去除掉D类地址和E类地址,还有保留的私 网地址,能够在互联网上使用的公网地址就变得越发紧张。 图5-11 地址浪费的情况 另外,传统的分类IP地址还会造成地址浪费。例如,如图5-11所示,某网段有200台 计算机。如果按照IP地址传统的分类方法,分配给该网段一个C类地址,网络号为212.2.3.0, 那个么可用的地址范围为212.2.3.1~212.2.3.254。尽管没有全部用完,但这种情况下还不 现代计算机网络原理与技术 算是极大浪费。 如果一个网络中有400 台计算机,分配一个C类网络,地址就不够用了,那就分配一个 B类网络131.107.0.该B类网络可用的地址范围为131.0.~107.254, 0, 107.1131.255.一共 有56634 个地址可用,这就造成了极大浪费。 为了减轻地址耗尽,提出了两种策略,并且它们在某种程度上被实施了,那就是子网划 分和构造超网。关于构造超网部分,将在5.5节介绍。 2. 子网划分就是指从网络的主机号位中借用连续的若干位作为子网号,当然主机号也就 相应地减少了同样的位数。于是两级层次结构的IP 地址就变为三级IP 地址:网络号,子 网号和主机号。也可以用以下记法来表示: IP 地址::={<网络号>,<子网号>,<主机号>} 注意:子网划分是本单位内部的事情。本单位以外的网络看不见这个网络是由多少个 子网组成的,因为这个单位对外仍然表现为一个网络。凡是从其他网络发送给本单位某台 主机的IP 数据报,仍然是根据IP 数据报的目的网络号找到连接在本单位网络上的路由器。 但此路由器在收到IP 数据报后,再按目的网络号和子网号找到目的子网,把IP 数据报交付 给目的主机。 下面用例子说明划分子网的概念。图5-12 表示某单位拥有一个C类IP 地址,网络地 址是202.网络号是202.2)。凡目的地址为202.x的数据报都被送到这个网 11.2.0( 11.11. 2. 络上的路由器R1。 图5-12 一个C类网络 现在把图5-12 划分为三个子网,如图5-13 所示。这里假定每个子网的主机数不超 过30 个。现在以子网划分的方法为其完成IP 地址规划。由于该网络中所有子网合起来 的主机数没有一个超过C类网络所能容纳的最大主机数,将C类网络202.0从主机 11. 2. 位中借出其中的高3位作为子网号(请思考为什么不能是2位), 这样一共可得到8个子 网,每个子网的相关信息如表5-3所示。其中,第1个子网因网络号与未进行划分前的原 网络号202.0重复而不能用,第8个子网因为广播地址与未进行划分前的原广播地址 11. 2. 11.255 重复也不可用,这样可以选择6个可用子网中的任何3个为现有的3个网段 进行IP 地址分配,留下的3个可用子网为未来扩充之用。在划分子网后,整个网络对外表 现为统一的网络,其网络地址仍为202.0。但网络202.0上的路由器R1在收到数 202.2. 11.2.11. 2.