Java教程

(六)网络层--IP地址

本文主要是介绍(六)网络层--IP地址,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

IP地址

从本文开始,我们进行网络层的学习。

网络层提供的服务

在计算机网络领域,网络层应该向运输层提供怎样的服务曾引起了长期的争论(面向连接还是无连接),争论的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?有些人认为,应当借助于电信网的成功经验,让网络负责可靠交付。传统电信网的主要业务是提供电话服务。电信网用面向连接的通信方式,使电信网能够向用户提供可靠传输的服务。因此他们认为,计算机网络也应使用面向连接的通信方式,当两台计算机进行通信时,先建立连接,以预留双方通信所需的一切网络资源,然后双方就沿着已建立的虚电路发送分组。这样的分组的首部不需要填写完整的目的主机地址,只需要填写这条虚电路的编号,因而减少了分组的开销。这种通信方式如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点,当然也不丢失、不重复。在通信结束后要释放建立的虚电路。

但互联网的先驱者却提出一种崭新的网络设计思路。他们认为,电信网提供的端到端可靠传输的服务对电话业务无疑是很合适的,因为电信网的终端(电话机)非常简单,没有差错处理能力。因此电信网必须负责把用户电话机产生的话音信号可靠的传送到对方的电话机。但计算机网络的端系统是有很强差错处理能力的。所以,互联网在设计上就采用了和电信网完全不同的思路。

互联网采用的设计思路是这样的:网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时,不需要先建立连接。每一个分组独立发送,与其前后的分组无关。网络层不提供服务质量的承诺,也就是说,所传送的分组可能出错、丢失、重复、失序(不按次序到达终点),当然也不保证分组交付的时限。如果主机中的进程之间的通信需要是可靠的,那么就由网络中的主机中的运输层负责(比如差错处理、流量控制等)。采用这种设计思路的好处是:网络造价大大降低,运行方式灵活,能够适应多种应用。互联网能够发展到今天,充分证明了当初采用这种设计思路的正确性。

网际协议IP

网际协议IP是TCP/IP体系中两个最主要的协议之一,也是最重要的互联网标准协议之一。与IP协议配套使用的还有三个协议:

  • 地址解析协议ARP(Address Resolution Protocol)
  • 网际控制报文协议ICMP(Internet Control Message Protocol)
  • 网际组管理协议IGMP(Internet Group Management Protocol)
    如下图所示:

在网际层中,ARP画在最下面,因为IP经常要使用这个协议。ICMP和IGMP画在这一层的上部,因为它们要使用IP协议。由于网际协议IP是用来使互连起来的许多计算机能够进行通信的,因此TCP/IP体系中的网络层常常被称为网际层或IP层。使用网际层这个名字的好处是强调这是由很多网络构成的互连网络。

虚拟互连网络

如果要在全世界范围内把数以百万计的网络都互连起来,并且能够互相通信,那么这样的任务一定非常复杂。其中会遇到许多需要解决的问题,如:

  • 不同的寻址方案
  • 不同的最大分组长度
  • 不同的网络接入机制
  • 不同的超时控制
  • 不同的差错恢复方法
  • 不同的状态报告方法
  • 不同的路由选择技术
  • 不同的用户接入控制
  • 不同的服务(面向连接服务、无连接服务)
  • 不同的管理与控制方式
  • ...

那么,能不能让大家都使用相同的网络呢?这样可使网络互连变得比较简单。答案是不行。因为用户的需求是多种多样的,没有一种单一的网络能够适应所有用户的需求,另外,网络技术是不断发展的,厂家也要推出新的网络,以求在市场中竞争,因此在市场上总是有很多种不同性能、不同网络协议的网络,供用户选用。

从一般的概念来讲,将网络互相连接起来要使用一些中间设备,根据中间设备所在的层次,分为以下四种:

  • 物理层使用的中间设备叫做转发器(repeater)
  • 数据链路层使用的中间设备叫做网桥或桥接器(bridge)
  • 网络层使用的中间设备叫做路由器(router)
  • 网络层以上使用的中间设备叫做网关(gateway)。用网关连接两个不兼容的系统需要在高层进行协议的转换。

如下图所示:

有许多计算机网络通过一些路由器进行互联,由于参加互联的计算机网络都使用相同的网际协议IP,因此可以把互连以后的计算机网络看成下图所示的样子:

互联起来的各种物理网络的异构性本来就是客观存在的,但是我们利用IP协议就可以使这些性能各异的网络在网络层看起来好像是一个统一的风格。这种使用IP协议的虚拟互连网络可简称为IP网。使用IP网的好处是:当IP网上的主机进行通信时,就好像在一个单个网络上通信一样,它们看不见互连的各网络的具体异构细节(如编址方案,路由选择协议等等)。如果在这种覆盖全球的IP网的上层使用TCP协议,那么就是现在的互联网。

IP地址

在TCP/IP体系中,IP地址是一个最基本的概念。
1、IP地址及其表示方法
整个互联网就是一个单一的,抽象的网络。IP地址就是给互联网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内唯一的32位的标识符。IP地址的结构使我们可以在互联网上很方便的进行寻址,它由ICANN进行分配。IP地址的编址方法共经过了三个历史阶段:

  • 分类的IP地址:这是最基本的编址方法,在1981年就通过了相应了标准协议。
  • 子网的划分:这是对最基本的编址方法的改进,其标准RFC 950 在1985年通过。
  • 构成超网:这是比较新的无分类编址方法。1993年提出后很快得到推广应用。
    接下来先讨论最基本的分类的IP地址。

分类的IP地址,就是将IP地址划分为若干个固定类,这里面的A类、B类、C类地址都由两个固定长度的字段组成。第一个字段是网络号,它标志主机(或路由器)所连接到的网络,一个网络号在整个互联网范围内必须是唯一的。第二个字段是主机号,它标志该主机(或路由器),一个主机号在它前面的网络号所指明的网络范围内必须是唯一的。由此可见,一个IP地址在整个互联网范围内是唯一的。如下图所示:

上图中的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地址进行路由选择,A类、B类、C类地址的区分已成为历史,但很多文献和资料还使用传统的分类的IP地址,而且从概念的演进上更清晰,所以这里还是提一下)

从IP地址的结构来看,IP地址不仅仅指明一台主机,还指明了主机所连接到的网络。当初把IP地址分为A、B、C三个类别是这样考虑的:各种网络的差异很大,有的网络拥有很多主机,而有的网络主机很少,这样的划分可以更好的满足不同用户的需求。当某个单位申请到一个IP地址时,实际上是获得了具有同样网络号的一块地址,其中具体的主机号由该单位分配,只要在该单位范围内无重复即可。

2、常用的三种类别的IP地址
A类地址的网络号占1个字节,除去前面的类别位(0),只有7位可供使用,可指派的网络号是126个(2^7 - 2),减2的原因是:第一,IP地址中的全0表示“这个”,即本网络,是个保留地址(例如IP地址为0.0.0.35,表示这个网络上主机号为35的主机)。第二,网络号为127(01111111)也是个保留地址,作为本地软件环回测试本主机的进程之间的通信之用。若主机发送一个目的地址为环回地址(比如127.0.0.1)的IP数据报,则本主机中的协议软件就处理数据报中的数据,而不会把数据报发送到任何网络。目的地址为环回地址的IP数据报永远不会出现在任何网络上,因为网络号为127的地址根本不是一个网络地址。
A类地址的主机号占3个字节,因此每一个A类网络中的最大主机数是(2^24 - 2)个,减2的原因是:第一,全0的主机号表示该IP地址是本主机所连接到的单个网络地址(例如一主机的IP地址时5.6.7.8,则该主机所在的网络地址就是5.0.0.0)。第二,全1的主机号表示该网络上的所有主机。(例如5.255.255.255,表示网络5.0.0.0上的所有主机)

B类地址的网络号占2个字节,除去前面的类别位(10),还有14位可供使用。因为网络号字段的后14位无论怎样取值,也不可能出现使整个2字节的网络号字段全0或全1,所以这里不存在减2的问题。但实际上B类网络地址128.0.0.0是不指派的,因此B类地址可指派的网络数为(2^14 - 1)。
B类地址的每一个网络上的最大主机数是(2^16 - 2),减2是因为要扣除全0和全1的主机号。

C类地址的网络号占3个字节,扣除前面的类别位(110),还有21位可供使用。C类地址192.0.0.0也是不指派的,因此C类地址可指派的网络数为(2^21 - 1)。
C类地址的每一个网络上的最大主机数是(2^8 - 2)。
下图总结了IP地址的指派范围:

IP地址具有以下一些重要特点:

  • 每一个IP地址都由网络号和主机号两部分组成
    从这个意义上来说,IP地址是一种分等级的地址结构。分两个等级的好处是:第一,IP地址管理机构在分配IP地址时只分配网络号(第一级),而剩下的主机号则由得到该网络号的单位自行分配,这样就方便了IP地址的管理;第二,路由器仅根据目的主机所连接的网络号来转发分组,这样可以使路由表中的项目数大幅度减少,从而减小路由表所占的存储空间以及查找路由表的时间。

  • IP地址是标志一台主机(或路由器)和一条链路的接口
    当一台主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号必须是不同的。这种主机称为多归属主机。

  • 一个网络是指具有相同网络号的主机的集合,因此,用转发器或网桥连接起来的若干个局域网仍为一个网络,因为这些局域网具有同样的网络号。具有不同网络号的局域网必须使用路由器进行互连。

  • 路由器总是具有两个或两个以上的IP地址,即路由器的每一个接口都有一个不同网络号的IP地址。

这篇关于(六)网络层--IP地址的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!