Internet地址又称IP地址。它能唯一确定因特网上每台计算机、每个用户的位置。IP地址为连接在因特网上的主机分配一个全世界唯一的32bit的标识符。让我们可方便地在因特网上寻找因特网IP地址。
IP地址由因特网名字与号码指派公司进行分配。我国用户可向亚太网络信息中心(AsiaPa-cific Network Information Center,APNIC)申请IP地址。
1.IP地址的结构与分类
在TCP/IP协议中,规定分配给每台主机一个32bit地址作为该主机的IP地址。在因特网上发送的每个数据报都包含有一个32bit的发送方地址(源地址)和一个32bit的接收方地址(目的地址)。每个IP地址又有两部分组成:网络标识Netid和主机标识Hostid。网络标识确定了该台主机所在的物理网络;主机标识确定了在某物理网络上的主机,如图3-76所示。
IP地址具有两个重要特性:
1)每台主机分配了一个唯一的地址。
2)网络标识号的分配必须全球统一。但主机号可由本地分配,不需全球统一。
图3-76 IP地址中的网络字段和主机字段
由于因特网上的各个网络规模大小有很大区别,有的网络拥有很多主机,另一些网络上主机则很少。为更好地满足不同用户的要求,把IP地址划分成A、B、C三类。
A类地址分配给少数规模很大的网络,这些网络有数以百计的主机。在32bit的地址域中,网络标识号占有1B,它第1位为“0”时,表示是A类地址。后面的7bit可提供126个(27-2)网络号。括号中减去2的原因是Netid字段中的全0为IP地址的保留地址,意为“本网络”。Netid字段的127(即01111111)作为本地软件环路的返回测试(Loopback test),为本机使用。A类地址中的其他24bit是主机标识号Hostid。因此,A类地址的每个网路上可设置(224-2)=16777214个主机号。这里减2的原因是全“0”的Hostid字段表示该IP地址是“本主机”所连接到单个网络的地址。全“1”的Hostid字段表示该网络上所有的主机。
整个A类地址的空间共有231(2147483648)个地址。占全部IP地址空间232(4294967296)个地址的50%。A类地址的特点是:网络号数不多,主机号数极多。现在只能申请到B类和C类的IP地址了。
B类地址的Netid网络标识号占有2B(16bit)。前面2bit(“10”)已固定作为表示B类地址的标识。后面14bit作为B类地址的网络编号,共有214=16348个网络号数。B类地址的每个网络上的最大主机数量是(216-2)=65534个。这里减2的原因是要扣除全“0”和全“1”的主机号。
整个B类的地址空间共有230=1073741824个地址,占整个IP地址空间的25%。
C类地址的Netid网络标识号占有3B(24bit)。最前面的3bit是“110”,表示是C类地址。后面21bit为C类地址的网络号数221=2097152。C类地址的每个网络上的最大主机数为(28-2)=254个。整个C类的地址空间共有229=536870912个地址,占整个IP地址的12.5%。图3-77是上述三种IP地址的空间分布。
图3-77 三种类型IP地址的空间分布
除上述三类IP地址外,还有两类很少使用的IP地址,即D类和E类。D类是多播地址,留给因特网体系结构研究委员会IAB使用。E类地址为保留使用地址。
2.IP地址的点分十进制记法
在主机和路由器中存放的IP地址都是32bit的二进制代码,用户很难读数和输入。为提高可读性,采用一种点分十进制记法(Dotted decimal notation)来表示。将32bit中的每8bit分为一组,用“·”分开,并以8bit的等值十进制数字表示。一组内的最小值为0(即8bit全为0),最大值为255(即8bit全为1),因此,32bit用点分十进制记法表示的地址范围为0.0.0.0到255.255.255.255。表3-14是三种IP地址的使用范围。
图3-78是一个B类IP地址,显然128.11.3.31比10000000000010110000001100011111读起来要方便得多。
表3-14 三种IP地址的使用范围
图3-78 采用点分十进制记法的IP地址
3.IP地址的重要特点
(1)IP地址是一种分等级的地址结构。分两个等级的好处是:
①IP地址管理机构在分配IP地址时只分配网络号(第一级),剩下的主机号(第二级)则由得到该网络号的单位自行分配。这样方便了IP地址的管理。②路由器只根据目的主机所连接的网络号来转发分组,而不必考虑目的主机号,减少了路由表占用的存储空间。
(2)IP地址的这种结构和电话号码的等级结构有相似之处,但并不完全一样。固定电话机的地区号和电话机局的编号按该电话机的地理位置去定。但IP地址与主机的地理位置没有这种对应关系。
(3)当一个主机同时连接到两个网络上时,该主机必须同时具有两个相应的IP地址,其网络号Netid也是不同的。这种主机称为多接口主机。
(4)用转发器或网桥连接起来的若干局域网仍为一个网络,因此这些局域网具有同样的网络号Netid。
在IP地址中,所有分配到网络号Netid的网络都是平等的。图3-79是三个局域网(LAN1、LAN2和LAN3)通过三个路由器(R1、R2和R3)互联构成的一个互联网。其中LAN2局域网由两个网段通过网桥B互联。请注意图中各结点的IP地址有以下特点:
图3-79 互联网中的IP地址
1)同一局域网上的主机或路由器的IP地址中的网络号必须是相同的。
2)用网桥互联的网段仍是同一个局域网,只能有一个网络号。
3)路由器(R1、R2和R3)总是具有两个或两个以上的IP地址。
4)两个路由器直接相连时,在连接线路两端的接口处可指明IP地址。
4.IP地址与网卡硬件地址的区别
在局域网中,硬件地址已固化在网卡上的只读存储器(Read Only Memory,ROM)中,因此通常把硬件地址称为物理地址。局域网的媒体访问控制(MAC)帧中的源地址和目的地址都是硬件地址,因此硬件地址又称为MAC地址。硬件地址、物理地址和MAC地址常作为同义词。
图3-80说明了IP地址与硬件地址的区别。IP地址是IP数据报的地址,放在数据报的首部。从层次角度看,IP地址是网络层及其以上各层使用的地址。
发送数据时,数据从高层向下传送到低层,然后再到通信链路上传输。IP数据报一旦交给了数据链路层,就被封装成MAC帧。MAC帧在传送时使用的源地址和目的地址都是硬件地址。
图3-80 IP地址与硬件地址的区别
通信设备(主机或路由器)是根据媒体访问控制(MAC)帧首部的硬件地址接收的。在剥去MAC帧首部和尾部后再将MAC层的数据交给上面的网络层(此时MAC层的数据变成了IP数据报)。网络层才能在IP数据的首部找到源IP地址和目的IP地址。
总之,放在IP数据报首部的IP地址是网络层及以上使用的IP地址。放在MAC帧首部的硬件地址是数据链路层及以下使用的硬件地址。因此在数据链路层是看不见数据报IP地址的。
图3-81a是用两个路由器R1和R2连接三个局域网构成的互联网。主机H1要与H2通信。这两个主机的IP地址分别是IP1和IP2,它们的硬件地址分别为HA1和HA2,这里HA表示Hardware Address(硬件地址)。它们的通信路径是:H1→经R1转发→再经R2转发→H2。
图3-81 从不同层面上看IP地址和硬件地址
a)网络配置 b)不同层次、不同区间的源地址和目的地址
路由器R1因为同时连接到两个局域网上,因此有两个硬件地址,即HA3和HA4。同理,路由器R2也有两个硬件地址HA5和HA6。图3-81b特别表明了IP地址和硬件地址的区别。
5.子网划分和掩码
(1)划分子网。为便于寻找互联网络中的相关网络和连接在该网络上的主机,32bit长度的IP地址分为网络标识地址Netid和主机或路由标识地址Hostid两部分。在传送数据时,首先利用第一部分网络标识Netid找到互联网络中对应的网络,然后再根据第二部分主机标识地址Hostid找到该网络上的目的主机。也就是说,A、B、C三类的地址结构都是两级层次结构,如图3-82所示。
图3-82 两级地址结构的网络
现在看来,IP地址的两级层次结构设计确实还有不够合理之处,例如:
①IP地址空间的利用率有时很低。
每个A类地址网络可连接的主机数超过1000万。每个B类地址网络可连接的主机数也可超过6万。然后有些网络对连接在网络上的计算机数目有限制,不可能达到如此大的数量。如10Base-T以太网规定其最大结点数只有1024个,使用B类地址时,就会浪费6万多个IP地址,地址空间的利用率还不到2%,造成IP地址的浪费,使IP地址资源更早地被用光。
②如果将大量主机安装在同一个网络上往往会影响网络的性能,就有可能会发生网络拥塞。
③每一个物理网络分配一个网络号会使路由表变得太大,使网络性能变坏。
④无法随时增加本单位的网络,因为本单位必须事先到因特网管理机构中去申请并获得批准后,才能连接到因特网上工作。
为此,从1985年起,把两级层次的IP地址网络变成为三级层次的IP地址网络。这种做法叫做划分子网(Subneting)或子网寻址或子网路由选择,并已成为因特网的标准协议。
子网划分是将一个网络进一步划分成若干个子网络(Subnet)。划分子网纯属单位内部的事情,与本单位以外的网络无关,对外仍然表现为一个大网络。子网划分的方法是从网络的主机号中借用若干比特作为子网号Subnetid,而主机号也就相应减少了若干比特。于是两级的IP地址在本单位内部的网络中变成三级的IP地址,即网络号Netid、子网号Subnetid和主机号Hostid。凡从其他网络发送给本单位网络中某个主机的数据报,仍然是根据IP数据报的目的网络号Netid找到连接在本单位网络上的路由器,此路由器在收到IP数据报后,再按目的网络号Netid和子网号Subnetid找到目的子网,将IP数据报交付给目的主机。(www.daowen.com)
图3-83是将一个网络划分成3个子网的例子。IP数据报的目的主机地址是B类地址:144.14.2.21,因特网仍将该数据报送到路由器R1,路由器R1将该目的地址进行解释,知道144.14这个网络在物理上已分成3个子网。根据IP地址中的后两个字节分别确定子网标识Subnetid为2和主机标识Hostid为21。这样就将IP地址改变为3级层次结构,第1级是网路标识144.14,确定网络;第2级是子网标识2,确定子网;第3级是主机标识21,确定在该子网上的主机。
图3-83 具有3级层次结构的网络
图3-84 是上面例子中二级地址(无子网)和三级地址(有子网)的网络地址分配的情况。
图3-84 网络IP地址的层次结构
a)无子网情况 b)有子网情况
(2)子网掩码。当没有划分子网时,IP地址是两级结构,网络号字段是IP地址的“因特网部分”,主机号字段是IP地址的“本地部分”,如图3-85a所示。
划分子网后就成了三级IP地址结构,子网只是将IP地址的本地部分进行再划分,而不改变IP地址的因特网部分,如图3-85b所示。
但是如何能让计算机知道有无子网划分呢?这就是使用另一个长度也是32bit的子网掩码(Maskcode)来解决这个问题。
图3-85 IP地址的各字段和子网掩码
a)两级IP地址 b)三级IP地址 c)子网掩码 d)划分子网时的网络地址 e)不划分子网的网络地址
子网掩码和IP地址一样长,都是32bit,它由一串“1”和跟随的一串“0”组成。
子网掩码中的“1”表示与IP地址中的网络号和子网相对应的部分。子网掩码中的“0”表示与IP地址中的主机号相对应的部分,如图3-85c所示。
在IP地址划分子网的情况下,把子网掩码和划分子网的IP地址进行逐个比特相“与”(AND),便可得出主机号为全“0”的划分子网的网络地址,即<Netid>+<Subnetid>+全“0”的<Hostid>,如图3-85d所示。
如果IP数据报地址为不划分子网的地址,那么子网掩码和不划分子网的IP地址进行逐个比特相“与”(AND)的结果为如图3-85e所示的网络地址,即<Netid>+全“0”的<Hostid>。
这种不管有无子网都适用的子网掩码称为默认的子网掩码。显然:
A类地址的默认子网掩码是255.0.0.0,或0xFF000000。
B类地址的默认子网掩码是255.255.0.0,或0xFFFF0000。
C类地址的默认子网掩码是255.255.255.0,或0xFFFFFF00。
表3-15是B类地址的子网划分选择。可以看出,若适用较少比特数的子网号,则每个子网上可连接的主机数量较大。反之,使用较多比特数的子网号,则子网的数据可以较多,但每个子网上可连接的主机数量较少。可根据网络的具体情况来选择合适的子网掩码。
表3-15 B类地址的子网划分选择(使用固定长度子网)
6.IP多播的基本概念
IP多播(Multicast)又称组播,即一对多的通信,现已成为因特网的一个热门课题,广泛用于交互式会议、软件升级和信息交付(如新闻、股市等)。
图3-86 采用多播路由器的多播系统
局域网的多播是用硬件实现的。在因特网上向多个站发送同样的数据报可以有两种方法:一种是采用单播方式,每次向一个目的站发送数据报,然后连续向各目的站进行多次发送。另一种是采用图3-86中的路由器进行复制转发。主机X在进行多播时只要发送一个数据报,到了路由器R2才进行数据报复制,然后到了R6再复制一次。也就是说,多播数据报仅在传送路径分岔时才将数据报复制后继续转发。能够运行多播协议的路由器称为多播路由器(Multi-cast router)。
在因特网上进行多播称为IP多播。最常用的两种IP多播方式为:
(1)使用组地址多播。IP使用的D类地址支持多播。D类IP地址的前缀是1110,因此地址的范围是224.0.0.0到239.255.255.255。每个D类地址标识一组主机。D类地址可用来标识有28bit的各个主机组(Host group),因此可标识228个多播组(超过2亿5千万个多播组)。显然,多播地址只能用于目的地址,而不能用于源地址。
(2)使用硬件进行多播。因特网是由许多网络互联起来的,其中有些是以太网,这些以太网本身就具有硬件多播能力,因此当多播数据报传送到这些以太网时,以太网就利用硬件进行多播,交付给属于该组成员的主机。以太网硬件地址字段中的第一个字节为0x01时则为多播地址。
因特网号码指派管理局IANA拥有的以太网地址块的最高位为24bit(0x00005E),也就是说,整个以太网硬件的地址范围为0x00005E000000~0x00005E FFFFFF。IANA用其中的一半作为多播地址,因此,以太网多播地址的范围是0x00005E000000~0x00005E 7FFFFF。这样,以太网中只有23bit可用作多播地址。而D类IP地址可供分配的有28bit,可见在这28bit的前5个bit不能用来构成以太网硬件地址,如图3-87所示。
图3-87 D类IP地址与以太网地址的映射关系
7.因特网的域名系统
用户与因特网上某主机通信时,很难记忆和使用长达32bit二进制的主机地址。即使是点分十进制IP地址也并不容易记忆。大家都希望能使用某种容易记忆和便于操作的主机名字。这就是域名系统(Domain Name System,DNS)。
因特网的域名系统(Domain Name System,DNS)采用联机的客户服务器方式组成一个分布式联机的数据库系统。用域名服务器把主机域名和IP地址一一对应。连接在因特网上的任何一个主机或路由器,都有一个唯一的层次结构的名字,即域名(Domain name)。当用户要和因特网上某台计算机交换信息时,只需使用域名,网络会自动转换成IP地址,找到该台计算机。
每台计算机的域名由一系列的字母和数字组成。例如,清华大学计算机科学与技术系的域名为cs.tsinghua.edu.cn,其中cn代表中国,edu表示教育部门,tsinghua表示清华大学,cs表示计算机科学与技术系。由此可见,域名是有层次的,域名中的最末部分通常都表示国家,最左部分代表该台计算机的名字。域名是一个逻辑概念,它不必与物理地址相一致。
下面是对域名的分级以及域名和IP地址的映射的具体介绍。
(1)域名的分级。早期的因特网使用的是非等级的名字空间来描述域名,其优点是名字简短,缺点是不能推广到具有大量计算机的网络。由于名字取自单一的标识字符集,随着网点数量的增加,潜在的冲突也随之增多。为此,因特网国际特别委员会(Internet International Ad Hoc Committee,IAHC)决定不采用集中命名的机制,而是采用分布的名字空间管理机构,使名字和地址的映射任务分布执行。
域名的结构由若干分量组成,各分量之间用点隔开,这些分量分为顶级域名、二级域名、三级域名……每一级由英文字母和数字组成(最多不超过63个字符,字母不分大小写)。级别最低的域名写在最左边,级别最高的顶级域名写在最右边。完整的域名不超过255个字符。域名系统不规定一个域名需包含多少个下级域名,也不规定每一级的域名代表什么意思。各级域名由其上一级的域名管理机构管理,最高的顶级域名由因特网有关机构管理。用这种方法可使每一个名字都是唯一的,并且容易查找域名。
顶级域名有3类:
1)国家顶级域名:如cn表示中国、us表示美国和uk表示英国。
2)国际顶级域名:采用int。
3)通用顶级域名:com表示公司企业、net表示网络服务机构、org表示非盈利性组织、edu表示教育机构、gov表示政府部门、mil表示军事部门、firm表示公司企业、shop表示销售公司和企业、web表示万维网活动单位、arts表示文化娱乐单位、info表示信息服务单位和nom表示个人。
二级域名均由各国自行确定,我国把二级域名划分为“类别域名”和“行政区域名”两类。类别域名为:ac表示科研机构,com表示工、商和金融企业,edu表示教育机构,gov表示政府部门,net表示互联网络,NIC表示接入网络的信息中心和运行中心(NOC),org表示各种非盈利性组织。“行政区域名”共34个,适用于我国各省、自治区、直辖市。如bj为北京市、sh为上海市和js为江苏省等。
二级域名下面的三级域名可向中国互联网网络中心CNNIC申请。
(2)域名和IP地址的映射。域名方案应包括一个高效、可靠、通用的分布系统,实现名字与IP地址的映射,特点是
1)系统应是分布的。由分布在多个网点的一组服务器协同操作解决映射问题。
2)系统应是高效的。大多数名字映射在本地操作,只有少数名字映射需要在互联网上通信。
3)系统应是可靠的。单台计算机故障不会影响系统正确运行。
4)系统应是通用的。它不仅限于使用机器名。
图3-88是一个树形结构的域名服务器的概念布局。树的根是识别顶层域名的服务器。它是一个能解析每个域名的服务器,并为该名字选择一个正确的服务器,然后逐级往下搜索,最后将结果返回。
每一个域名服务器不但能够进行一些域名到IP地址的转换,而且还必须具有连向其他域名服务器的信息。当自己不能进行域名到IP地址的转换时,就能够知道到什么地方去找其他的域名服务器。
图3-88 域名服务器的树形概念布局
因特网上的域名服务器系统是按照域名的层次来安排的。每一个域名服务器都只对域名系统中的一部分进行管辖。现在共有3种不同类型的域名服务器。
(1)本地域名服务器。每个因特网接入服务商(Internet Service Provider,ISP)、一个大学或大学里一个系,都可拥有一个本地域名服务器(Local name server),有时也称默认域名服务器。本地域名服务器离用户较近,一般不超过几个路由器的距离。如果需要查询的主机也属于同一个本地ISP时,则本地域名服务器立即就能将查询的主机名转换为它的IP地址,而不需要去询问其他的域名服务器。
(2)根域名服务器。当本地域名服务器不能立即回答某主机的查询时,该本地域名服务器就以DNS域名系统客户的身份向某一个根域名服务器(Root name server)查询。如果根域名服务器具有被查询主机的信息,就把DNS回答的报文发送给本地域名服务器,然后本地域名服务器再回答发起查询的主机。如果根域名服务器没有被查询主机的信息时,它就一定知道某个保存被查询主机各自映射的授权域名服务器的IP地址。
根域名服务器通常用来管辖顶级域(如.com)的域名转换,而不直接对顶级域下面所属的域名进行转换,它能够找到下面所有的二级域名服务器。
(3)授权域名服务器。每个主机都必须在授权域名服务器(Authoritative name server)处注册登记。通常一个主机的授权域名服务器就是它的本地的因特网接入服务商ISP的一个域名服务器。为了更加可靠的工作,一个主机最好至少有两个以上的授权服务器。许多域名服务器同时充当本地域名服务器和授权域名服务器。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。