传统的因特网采用分类地址。IP定义了五类IP地址:A类、B类、C类、D类和E类。如下图所示:
A、B和C是三个基本的类,分别代表不同规模的网络:
A类地址:1个字节的网络号,3个字节的主机号,用于少量的大型网络;
B类地址:2个字节的网络号,2个字节的主机号,用于中等规模的网络;
C类地址:3个字节的网络号,1个字节的主机号,用于小规模的网络。
A类地址
第一个字节的最高位固定为0,另外7比特可变的网络号可以标识128个网络(0~127),0一般不用,127用作环回地址。所以共有126个可用的A类网络。A类地址的24比特主机号可以标识1677216台主机(2^24 =1677216)。另外,主机号为全0时用于表示网络地址,主机号为全1时用于表示广播地址。这两个主机号不能用来标识主机。所以,每个A类网络最多可以容纳1 677 214台主机。A类地址的第一个字节的取值范围为0~127。
B类地址
第一个字节的最高2比特固定为10,另外14比特可变的网络号可以标识214=16384个网络。16比特主机号可以标识65 536台主机,(216=65536)。由于主机号不能为全0和全1,所以,每个B类网络最多可以容纳65534台主机。B类地址的第一个字节的取值范围为128~191。
C类地址
第一个字节的最高3比特固定为110,另外21比特可变的网络号可以标识221=2097152个网络。8比特主机号可以标识256台主机(28=256),由于主机号不能为全0和全1。所以,每个C类网络最多可以容纳254台主机。C类地址的第一个字节的取值范围为192~223。
D类地址
D类地址用于组播(multicasting),因此,D类地址又称为组播地址。D类地址的范围为224.0.0.0~239.255.255.255,每个地址对应一个组,发往某一组播地址的数据将被该组中的所有成员接收。D类地址不能分配给主机。D类地址的第一个字节的取值范围为224~239。
有些D类地址已经分配用于特殊用途:
224.0.0.0 是保留地址、224.0.0.1 是指本子网中的所有系统、224.0.0.2 是指本子网中的所有路由器、224.0.0.9 是指运行RIPv2路由协议的路由器、224.0.0.11是指移动IP中的移动代理。
另外,还有一些D类地址留给了网络会议:
224.0.1.11 用于IETF-1-AUDIO、224.0.1.12 用于IETF-1-VIDEO
E类地址
E类地址为保留地址,可以用于实验目的。E类地址的范围:240.0.0.0 ~ 255.255.255.254,E类地址的第一个字节的取值范围为240~255。
在分类地址网络中每个网络占用一个地址块。各类网络地址块的示例如下表所示:
每个网络都要占用两个IP地址,一个用于标识网络,一个用于网络广播。每个网络使用该网络地址块的起始地址作为网络地址,该地址仅作为网络的标识,主要用在网络路由中。网络地址块的结束地址被用作该网络的广播地址。
因特网地址的本质是标识主机的网络连接。
因特网地址是由中央管理机构进行分配的。一个组织加入因特网时,从因特网的网络信息中心InterNIC获得网络前缀,然后负责组织内部的地址分配。这样,既解决了全局唯一性问题,又分散了管理负担。
特殊IP地址
在IP地址中有一些并不是来标注主机的,这些地址具有特殊的意义。这些地址包括网络地址、直接广播地址、受限广播地址、本网络地址、环回地址等。
网络地址
因特网上的每个网络都有一个IP地址,其主机号部分为“0”。
网络地址的一般表达式为:
{<Network-number>,<Host-number>}={<Network-number>,0}
该地址用于标识网络,不能分配给主机,因此不能作为数据的源地址和目的地址。
A类网络的网络地址为:Network-number.0.0.0。例如,120.0.0.0;
B类网络的网络地址为:Network-number.0.0。例如,139.22.0.0;
C类网络的网络地址为:Network-number.0。例如,203.120.16.0。
直接广播地址
直接广播(Direct Broadcast Address):向某个网络上所有的主机发送报文。TCP/IP规定,主机号各位全部为“1”的IP地址用于广播,叫作广播地址。路由器在目标网络处将IP直接广播地址映射为物理网络的广播地址,以太网的广播地址为6个字节的全“1”二进制位,即:ff:ff:ff:ff:ff:ff 。
直接广播地址的一般表达式为:
{<Network-number>,<Host-number>}={<Network-number>, -1}
这里的“-1”表示全“1”。
直接广播地址只能作为目的地址。
A类网络的直接广播地址为:Network-number.255.255.255。例如,120.255.255.255;
B类网络的直接广播地址为:Network-number.255.255。例如,139.22.255.255;
C类网络的直接广播地址为:Network-number.255。例如,203.120.16.255。
受限广播地址
直接广播要求发送方必须知道信宿网络的网络号。但有些主机在启动时,往往并不知道本网络的网络号,这时候如果想要向本网络广播,只能采用受限广播地址(Limited Broadcast Address)。
受限广播地址是在本网络内部进行广播的一种广播地址。TCP/IP规定,32比特全为“1”的IP地址用于本网络内的广播。
受限广播地址的一般表达式为:
{<Network-number>,<Host-umber>}={-1, -1}
其点分十进制表示为:255.255.255.255。
受限广播地址只能作为目的地址。
路由器隔离受限广播,不对受限广播分组进行转发。也就是说因特网不支持全网络范围的广播。
本网络地址
TCP/IP协议规定,网络号各位全部为“0”时表示的是本网络。本网络地址分为两种情况:本网络特定主机地址和本网络本主机地址。
本网络特定主机地址的一般表达式为:
{<Network-number>,<Host-number>}={0, <Host-number>}
本网络特定主机地址只能作为源地址。
本网络本主机地址的一般表达式为:
{<Network-number>,<Host-number>}={0, 0}
本网络本主机地址的点分十进制表示为:0.0.0.0。
本网络本主机地址只能作为源地址。
无盘工作站启动时没有IP地址,此时采用网络号和主机号都为“0”的本网络本主机地址作为源地址。
环回地址
环回地址(Loopback Address)是用于网络软件测试以及本机进程之间通信的特殊地址。
A类网络地址127.X.X.X被用作环回地址。
环回地址的一般表达式为:
{<Network-number>,<Host-number>}={127, <any>}
习惯上采用127.0.0.1作为环回地址,命名为localhost。
当使用环回地址作为目标地址发送数据时,数据将不会被发送到网络上,而是在数据离开网络层时将其回送给本机的有关进程。
在发送IP数据时,首先要判别该数据报的目的IP地址是否为环回地址,如果是环回地址,则直接将IP数据报放入IP输入队列实现环回。对于直接以本机地址作为目的地址的IP数据包也要会送给本机。对于广播或组播数据报,则在会送给本机的同时还要向网络发送。