3.2.1 IP地址

3.2.1 IP地址

在使用Internet之前,作为一个使用者,应该了解一些基础知识。就像人们使用电话,要知道什么是电话号码,如何拨号,听到忙音是什么意思,这些基础的知识对于人们的使用来说是必需的。

1.IP地址

就像每一部电话有唯一的号码一样,每一台联入Internet的计算机也有唯一的号码作为标识。这里称这个号码为地址,因为这个地址的格式是由IP协议(Internet Protocol)规定的,所以被称为IP地址。

IP地址是一个32位二进制数,为了表示的方便,通常采用点分十进制表示法,即以32位二进制数中的每8位为一组,用十进制表示,并将各组用点分开。例:某台机器的IP地址为11001010 01110010 01000000 00100001,写成点分十进制表示形式就是202.114.64.33。

整个Internet由很多独立的网络互联而成,每个独立的网络就是一个子网(Subnet),包含若干台计算机。因此Internet是一个二级网络结构。根据这个结构,IP地址的32个二进制位也被分为两个部分,即网络地址和主机地址,网络地址就像电话的区号,标识主机所在的子网,主机地址则在子网内部标识某台主机,如图3-7所示。

图示

图3-7 IP地址组成

(1)IP地址分类

根据什么来划分IP地址,即地址的哪一部分应该是网络地址,哪一部分应该是主机地址呢?这要根据对Internet中网络数量和单个网络中主机数量的分析来确定。网络地址占的位数多,则整个Internet中可容纳的子网数量就多,但相应的每个子网内的主机地址就减少,反之亦然。可以区别对待规模不同的网络。根据网络规模的大小,IP地址被分为主要的3类,如图3-8所示。

图示

图3-8 IP地址编码

•A类地址

A类IP地址的最高位为0,其前8位为网络地址,后24位为主机地址。由于其最高位为0,且网络地址全为0被用作标识本网络,所以点分十进制表示的A类地址的第一个数为1~127。一个A类子网最多可容纳224(约1 600万)台主机,而整个Internet上最多可有27-1=127个A类地址。

•B类地址

B类IP地址的前16位为网络地址,后16位为主机地址,且第一位为1,第二位为0。B类地址的第一个十进制整数的值在128~191之间。一个B类网络最多可容纳216即65 536台主机,最多可有21 4=16 384个B类地址。

•C类地址

C类IP地址的前24位为主机地址,最后8位为主机地址,且第一位、第二位为1,第三位为0。C类地址的第一个整数值在192~223之间。一个C类网络最多可容纳28即256台主机。共有221=2 097 152个C类地址。

以上地址的划分方式符合Internet上大网少、小网多,大网机器多、小网机器少的特点。

•D类地址

D类地址用于多点广播(Multicasting)。D类IP地址第一个字节以“1110”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicasting)中。(https://www.daowen.com)

•E类地址

E类IP地址以“1111”开始,为将来使用保留。

(2)特殊IP地址

有些IP地址具有特定的含义,不能分配给主机。主要有以下几种,见表3-1。

表3-1 特殊的IP地址

图示

(3)子网掩码

将IP地址分为A、B、C类是为了管理的方便。在软件实现时,是利用子网掩码(Subnet Mask)来区分IP地址的网络地址部分与主机地址部分的。

子网掩码也是一个32位二进制串,和IP地址相似。如果一个IP地址的前n位为网络地址,则其对应的子网掩码的前n位为1,后32-n位为0,对应IP地址中的主机地址部分。可以看出,可以根据子网掩码来判断IP地址中真正的网络地址部分和主机地址部分。

在寻址时,通过子网掩码对IP地址进行屏蔽运算,以得出IP地址中的网络号部分和主机号部分。

若子网掩码某位为1,则表示该位所对应IP地址中的一位是网络号部分的一位;若子网掩码某位为0,则表示它对应IP地址中的一位是主机号部分的一位。A、B、C类地址的子网掩码如下:

A类地址的子网掩码为255.0.0.0。

B类地址的子网掩码为255.255.0.0。

C类地址的子网掩码为255.255.255.0。

2.端口地址

在Internet上使用全局唯一的IP地址来标识参与通信的计算机。在每一台计算机上,可能有多个进程都同时在Internet上和其他计算机中的进程进行通信,TCP/IP协议使用端口地址(Port Address)来标识每一对进程间通信。

Web服务进程拥有端口地址80,而另一台计算机上的网页浏览器软件却被随机赋予一个端口。Web服务器面向整个Internet上所有的计算机提供Web服务,所以它必须拥有一个固定的端口地址并让大家都知道,这样别的计算机才能方便地访问该进程,获得它提供的服务。所有的服务器进程都应该这样。TCP/IP协议为一些重要的服务保留了端口,比如端口80就被保留给Web服务。另外,如端口25被保留给传送Email的SMTP协议。这些端口被称为周知端口(Well Known Ports),即应该是众所周知的端口。而类似于网页浏览器这样的客户端软件,则不必要这么做,每次通信的时候临时获得一个端口就可以了。