我们把整个因特网看成是一个单一的,抽象的网络。IP地址就是给因特网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围是唯一的32位的标识符。IP地址的编址方法共经历了分类、改进分类、无分类三个历史阶段,本文将介绍基础的分类编址方式,以辅助后面第四、第五篇笔记介绍改进分类(子网划分)及无分类(超网构成)
以前人们打座机电话前面都要加几位区号,你一拨前面的区号,电话交换机才知道转到哪去。回到上图,假设现在有一个数据包的目的地址是192.168.1.0,路由器收到数据包,只要看到192.168.1,就往第一个网段发送了。路由器根本不管到某一台计算机怎么走,他只关心到某一个网段怎么走。这就是将IP地址分成网络ID和主机ID的意义。
所谓的“分类的IP地址”就是将IP地址划分为若干类,每一类地址都由两个固定长度的字段组成,其中第一个字段是网络号(net-id),它标志主机(或路由器)所连接到的网络。一个网络号在整个因特网范围内是唯一的。第二个字段是主机号(host-id),它标志该主机(或路由器)。一个主机号在它前面的网络号所指明的网络范围内是唯一的。由此可见,一个IP地址在整个网络范围内是唯一的
这种两级的IP地址可以记为:IP 地址 ::= { <网络号>, <主机号>},图1给出了各种IP地址的网络号字段和主机号字段,这里A类、B类和C类地址都是单播地址,是最常用的 由上图可以得到以下信息:
A类、B类和C类地址的网络号字段,分别是8、16和24位,而在网络号字段的最前面有1~3位的类别号,其数值分别规定为0、10和110A类、B类和C类地址的主机号字段分别为24、16和8个字节长D类地址(前4位1110)用于多播(一对多通信)E类地址(前四位1111)保留为以后用从IP地址的结构来看,IP地址并不仅仅指明一个主机,而且还指明了主机所连接到的网络
把IP地址划分为A、B、C三个类别,当初是这样考虑的,各种网络的差异很大,有的网络拥有很多主机,有的网络上主机则很少。把IP地址划分为A类、B类、C类是为了更好满足不同用户的要求。当一个单位申请到一个IP地址时,实际上是获得了同样网络号的一块地址。其中具体的各个主机号则由该单位自行分配,只要做到单位管辖的范围内无重复的主机号即可
要想记住每类IP地址的范围非常简单,首先画出0~255,取一半就是128,所以[0,127]就是A类地址;再将128~255取一半就是192,所以[12,191]就是B类地址;再将192~255取一半就是224,所以[192,223]就是C类地址。以此类推
A类地址的网络号字段有8位,只有7位可供使用(该字段第一位固定为0),但可指派的网络号是126个(即128-2)。减2的原因是:第一,网络号字段为全0的IP地址是个保留地址,意思是“本网络”。第二,网络号为127即(01111111)保留作为本地软件环回测试本主机的进程之间通信之用
若主机发送一个目的地址为环回地址(如127.x.x.x)的IP数据报,则本主机中的协议软件就处理数据报中的数据,不会把数据报发送到任何网络。目的地址为环回地址的IP数据报永远不会出现在任何网络上,因为网络号为127的地址根本不是一个网络地址
A类地址的主机号占24位,因此每一个A类网络中的最大主机号为 2 24 − 2 2^{24}-2 224−2,即16777214。这里减2的原因是:全0的主机号字段表示该IP地址是“本主机”所连接到的单个网络地址(例如一主机IP地址为5.6.7.8,则该主机所在的网络地址就是5.0.0.0)。全1表示所有的(all),因此全1的主机号字段表示该网络上的所有主机
IP地址空间共有 2 32 2^{32} 232即4294976296个地址。整个A类地址空间共有 2 31 2^{31} 231个地址,占有整个地址空间的50%
B类地址的网络号字段有16位,但前面两位(10)已经固定了,只剩下14位可以进行分配。因为网络号字段后面的14位无论怎样取值也不可能出现使整个2字节网络号字段称为全0或者全1,因此这里不存在网络总数减2的问题。但实际上B类网络地址128.0.0.0是不指派的,可以指派的B类最小地址为128.1.0.0.因此B类地址可指派的网络数为 2 14 − 1 2^{14}-1 214−1,即16383。B类地址的每一个网络上最大主机数是 2 16 − 2 2^{16}-2 216−2,即65534,减去的是全0和全1的主机号。整个B类地址空间共约有 2 30 2^{30} 230个地址,占整个IP地址空间的25%
C类地址有24位网络号字段,最前面的3位是(110),还有21位可以进行分配。C类网络地址192.0.0.0也是不指派的,可以指派的C类地址最小是192.0.1.0,因此C类地址可指派的网络总数是 2 21 − 1 2^{21}-1 221−1,即2097151.每一个C类地址最大主机数是 2 8 − 2 2^8-2 28−2,即254。整个C类地址空间共约有229个地址,占整个IP地址的12.5%
当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多归属主机(multihomed host) 由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址
按照因特网的定义,一个网络是指具有相同网络号net-id的主机的集合,因此用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id在IP地址中,所有分配到网络号 net-id 的网络,不论是范围很小的局域网,还是覆盖很大地理范围的广域网,都是平等的图中画出了三个局域网LAN1、LAN2、LAN3。这三个局域网通过三个路由器(R1、R2、R3)互连起来构成了一个互联网(用虚线圆角方框表示)。其中局域网LAN2是通过网桥B互连的。图中圆圈表示需要一个IP地址
结合上面内容及IP地址特点,我们应该注意到:
在**同一个局域网上的主机或路由器的IP 地址中的网络号必须是一样的。**图中的网络号就是 IP 地址中的 网络号字段的值**路由器总是具有两个或两个以上的 IP 地址。**路由器的每一个接口都有一个不同网络号的 IP 地址两个路由器直接相连的接口处,可指明也可不指明 IP 地址。如指明IP地址,则这一段连线就构成了一种只包含一段线路的特殊“网络”(如图中N1、N2、N3)。之所以称之为网络,因为他们有IP地址、但为了节省IP地址,对于这种仅由一段连线构成的特殊“网络”,现在常不指明 IP 地址。称为无编号网络或者无名网络用网桥(它只在数据链路层工作)互连的网段仍然是一个局域网,只能有一个网络号**备注:**实际可以分配的IP数量 = 可指派的网络号数量*单个网络最大主机数,以A类地址为例,(27 - 2) *(224-2),可以粗略记为 2 31 2^{31} 231