网际协议(IP)是TCP/IP体系中两个最主要的协议之一,也是最重要的因特网标准协议之一。与IP协议配套使用的还有四个协议。
IP协议经常使用ARP和RARP这两个协议,ICMP和IGMP这两个协议则要使用IP协议。由于网际协议IP是用来使互连起来的许多计算机网咯能够进行通信,因此TCP/IP体系中的网络层常常称为网际层或IP层。
没有一种单一的网络能够适应所有用户需求,将网络互相连接起来要使用一些中间设备。根据中间设备所在的层次,可以有以下四种不同的中间设备。
TCP/IP体系在网络互连上采用的做法是在网络层(即IP层)采用了标准化协议,但相互连接的网络则可以是异构的。许多计算机网络通过一些路由器进行互连,由于参与互连的计算机网络都使用相同的网际协议(IP),因此可以把互连之后的计算机网络看成一个虚拟互连网络。所谓虚拟互连网路也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用了IP协议就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。
当很多异构网络通过路由器互连起来时,如果所有的网络都是用相同的IP,那么网络层变得简单得多了。例如:
在互联网中源主机H1要把一个IP数据报发送给目的主机H2,主机H1先要查看自己的路由表,看目的主机就在本网络上。如果是,则不需要经过任何路由器而是直接交付。如果不是,则必须把IP数据报发送给某个路由器R1,R1查找自己的路由表后,知道要把IP数据报转发给R2进行间接交付。这样一直转发下去,最后由路由器Rn知道自己与目的主机H2连接在同一个网络上,不需要再使用路由器进行转发。于是就是把IP数据报直接交付给目的主机H2。
总之,互联网可以由多种异构网络互连组成。
整个因特网就是一个单一的逻辑网络。IP地址就是给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围是唯一的32位标识符。IP地址的结构使我们可以在因特网上很方便地进行寻址。
为了提高可读性,我们常常把32位的IP地址中的每8位用其等效的十进制数字表示,并且在这些数字之间加上一个点。这就叫做点分十进制记法。例如:128.11.3.31等价于10000000 00001011 00000011 00011111。
IP地址的编址方式分为三个阶段:
1.分类编址
分类编址方法将IP地址划分为若干个固定类,每一个类地址都有两个固定长度的字段组成,其中第一个字段是网络号(Net-id),它标志主机(或路由器)所连接到的网络。一个网络号在整个因特网范围内必须是唯一的。第二个字段是主机号(Host-id),它标志该主机(或路由器)。一个主机号在它前面的网络号所指明的网络范围内必须是唯一的。一个IP地址在整个因特网范围内是唯一的。
这种两级的IP地址可以记为:
IP地址 ::={<网络号>,<主机号>}
::=表示“定义为”。
这种两级编址方式的好处是:IP地址管理机构在分配IP地址时只分配网络号,而剩下的主机号则由得到该网络号的单位执行分配。这样就方便了IP地址的管理。其次,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间及查找路由表的时间。
分类编址方式设计了适用于不同规模网络的编址方案,给出了A类,B类,C类,D类和E类地址,其中A类、B类和C类地址都是单播地址(一对一通信)。
A类、B类和C类地址的网络号字段分别为1,2,3字节长,而在网络号字段的最前面有1-3位的类别位,其数值分别规定为0,10和110.
A类、B类和C类地址的主机号字段分别为3个、2个、1个字节长。
D类地址(前4位是1110)用于多播(一对多通信)。
E类地址(前4位是1111)保留为以后使用。
由于主机IP地址中的网络号由所连接的网络决定,因此IP地址实际上标志的是一个主机(或路由器)和一条链路的接口。当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号必须是不同。这种主机称为多归属主机。由于一个路由器至少应当连接到两个网络,因此一个路由器至少应当有两个不同的IP地址。
2.划分子网
分类编址方式表面上看起来非常合理,但在实际应用中,随着中小规模网络的迅速增长暴露出了明显的问题。一个C类地址空间仅能容纳254台主机(有两个地址用于特殊目的),对于许多组织的网络来说太小了。因此,很多组织申请B类地址,然而B类地址空间有太大了,可容纳65534台主机,导致大量的地址空间被浪费。例如,对于一个拥有1000台主机的组织,其申请了B类地址之后,会导致64000多个地址不能被其他组织使用。
为了解决上述问题,划分子网是从网络的主机号中借用不定长的若干位作为子网号(subnet-id),当然主机号也就相应减少同样的位数。于是二级IP地址就变为了三级IP地址:网络号、子网号和主机号。
IP地址 ::={<网络号>,<子网号>,<主机号>}
划分子网的编址方法大大减少了对A、B类地址空间的浪费,因为可以将大的A、B类地址空间划分给多个组织使用。
3.无分类编址
无分类域间路由选择(Classless Inter-Domain Routing,CIDR)把32位的IP地址划分为两部分。前面的部分是不定长的“网络前缀”,代替分类编址中的“网络号”来指明网络,后面的部分则用来指明主机。因此CIDR使IP地址从三级编址(划分子网)又回到了两集编址,当这已是无分类的二级编址。它的记法为:
IP地址 ::={<网络前缀>,<主机号>}
CIDR采用了与IP地址配合使用的32位地址掩码。地址掩码是由前面连续的一串1和后面连续的一串0组成,而1的个数就是网络前缀的长度。最初,地址掩码被用于划分子网,用来表示可变长子网号部分的长度,被称为子网掩码。
对应分类IP地址中A类地址的默认地址掩码是255.0.0.0,B类地址的默认地址掩码是255.255.0.0,C类地址的默认掩码地址是255.255.255.0。
有路由器互连起来的每个网络有一个唯一的网络前缀(即网络号),并用主机号为全0的IP地址表示该网络的网络地址。使用子网掩码的好处就是计算机能非常方便地利用子网掩码计算一个IP地址所在网络的网络地址:只要把子网掩码和IP地址进行逐位的与运算,就立即得出其网络地址。