1.IP地址的基本概念
Internet协议(Internet Protocol,网络之间互连的协议)即IP,是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。Internet协议是国际互联网的基础。
IP地址,共32位,也就是4个字节,通常表示为4个十进制数(0~255)的形式,并用点号隔开,例如202.194.177.86。
在二进制形式下,IP地址可以一分为二,左边部分为“网络号”,右边部分为“主机号”。判断网络号或主机号有两种方法:早期主要使用IP地址分类方法,后来发现这种方法严重浪费IP地址,于是引入了子网掩码的方法。
2.IP地址分类方法
这种方法把IP地址分为5类,每类地址对应的网络号和主机号如表6-1所示。
如何识别一个IP地址的属性呢?只需IP地址最左边第一个字节的十进制形式就可以判断。例如,1~126属A类地址,128~191属B类地址,192~223属C类地址,224~239属D类地址。除了以上四类地址外,还有E类地址,但这类地址暂时还未投入使用。
表6-1 IP地址分类表
如何确定一个IP地址的网络号和主机号呢?首先根据第一个字节的范围来确定地址类型,然后根据对应地址类型的规定来确定网络号和主机号。
例如,IP地址68.102.117.165,第一个字节的数据是68,显然属于A类地址。A类地址的网络号是IP地址的前8位,单独列出来可以在后面补0表示成IP地址的形式,即68.0.0.0,其余部分是主机号。再看IP地址202.196.64.1,第一个字节的数据是202,因此这个地址属于C类地址,C类地址的网络地址是其前24位,因此该IP地址的网络号为202.196.64.0,第四个字节数据1表示的就是主机号。
IP地址的网络号由因特网管理机构分配,主机号由各个网络的管理员统一分配。网络号的唯一性与网络内主机号的唯一性,确保了IP地址的全球唯一性。
3.子网掩码
使用IP地址分类的方法确定网络号和主机号的方法很简单,但这样的设计有问题。一般来讲,分配网络号的时候,只能将整块的IP地址类分配给一个申请者。例如,一家公司要申请IP地址,他们必须在A、B、C类地址中选一块。但是,一块A类地址中的主机数都高达1677万多个,一块B类地址中的主机数量也达到了65534个。很少有申请者实际需要这么多的IP地址,这样分配IP地址势必会造成巨大的浪费。
1992年,人们引入了子网掩码(Subnet Mask)的方法来提高IP地址使用的效率,进一步细分不同的网络。这种方法的基本思路是不再使用IP地址的分类来确定网络号和主机号。IP地址中的网络号部分需要明确地指出其长度,通常使用子网掩码或斜线方法表示。
子网掩码的长度也是32位,其表示方法与IP地址的表示方法基本一致。它的32位二进制数据分为两部分,第一部分全为“1”,第二部分全为“0”。子网掩码的作用是可以利用它来区分IP地址中的网络地址与主机地址。
子网掩码的操作过程为:将32位的IP地址与32位的子网掩码进行二进制的逻辑与运算,得到的便是网络地址。比如,IP地址为168.172.177.8,子网掩码为255.255.128.0,则该IP地址所属的网络地址为168.172.128.0。
子网掩码不能单独存在,它必须和IP地址一起使用。在二进制数据形式下,子网掩码中的1表示IP地址中对应的位表示网络号,0说明IP地址中对应的位表示主机号。网络号和主机号的长度就由掩码确定了。例如,掩码11111111 11111111 11111111 00000000(255.255.255.0),指定IP地址的3个字节为网络号,其余为主机地址。
另一种区分网络号和主机号的方法是斜线表示法,斜线后面的数字表示IP地址中前面有多少位表示网络号。例如222.204.195.0/26表明前面26位是网络号。
按照分类方法使用的IP地址对应的默认子网掩码:
A类地址:255.0.0.0,即11111111.00000000.00000000.00000000或/8。
B类地址:255.255.0.0,即11111111.11111111.00000000.00000000或/16。
C类地址:255.255.255.0,即11111111.11111111.11111111.00000000或/24。
IP地址分类和子网掩码都是为了区分IP地址中的网络号和主机号,从而进行路由选择。IP地址分类的方法已经基本被淘汰,只有在讨论IP地址数量的时候使用,目前主要使用子网掩码的方法。
4.IPv6概述
IP协议是根据ARPANET的需求设计的,最初只是为了满足美国国防部军事指挥的需要设计的,4个字节的长度应该说是足够的。谁都没有想到,正是由于IP协议设计得实在太成功,以至于发展成了Internet的基础。尽管后来人们提出了很多方法以进一步提高IP地址的利用率,但情况并没有得到根本性的改变。
在这种情况下,人们致力于下一代Internet技术的研究并开发出了IPv6。
IPv6的地址长达16个字节,采用16进制的表示方法,其基本的表示是:X:X:X:X:X:X:X:X,其中的X是一个4位十六进制数(16位二进制数),每个地址由8个X构成,共计128位二进制数。将128位分为8组,每组16位,用4个16进制数表示,各组之间用“:”分割。每组中最前面的0可以省略,但每组必须得有一个数,如:
5D3A:BC90:0431:1992:EBCA:9B8A:4567:38A0
1032:0:0:0:0:D003:279C:4A91
如果IPv6地址中有几组都是0,这些0可以简单记为“::”,这称为双冒号法,但双冒号只许用1次。例如上面的IPv6地址可以简记为:1032::D003:279C:4A91。
由于IPv6地址太长,规定它的前64位表示网络,后64位表示接口。64位的网络标识提供了充足的空间,可以给网络机构进行路由管理和划分使用。后面64位的接口部分最初设计为用网卡的MAC地址扩展,以实现局域网内的自动配置,但这种方案违背了IP地址与硬件地址的无关性,无法实现匿名。目前,Windows操作系统的IPv6协议,在安装时用随机生成的办法产生后面的64位,同时进一步提供了到期自动更换的临时IPv6地址以增加匿名性,以保护用户隐私。
IPv6地址的网络部分有64个二进制位,也采用了类似于IPv4地址的管理方法进行子网划分,但取消了子网掩码,毕竟IPv6地址太长了。人们直接使用斜线表示法,明确表示前面多少个二进制位是上级分配的网络号,64减去这个值就是本网络可以划分的子网号的二进制长度。在IPv6中,“/”后面的数字最多是64,不可能存在更小的IPv6子网了。目前,实际申请到的IPv6地址块最小是以/48为单位的,可以进一步划分为2的16次方个子网,子网和地址空间非常充裕。
从类别上来说,IPv6地址可以分为可集聚全球单播地址、本地链路地址、唯一本地地址和多播地址。可集聚全球单播地址是Internet全局唯一的,目前分配可用的部分,其二进制形式以“001”开始,因此以十六进制表示的IPv6地址必然是以2或3开始的。
本地链路地址只在本地广播域使用,有点像169.254.0.0/16中的地址,这种地址的前缀是FE80::/64。注意,本地链路地址是自动配置的,只要安装了IPv6协议,就会得到这种地址,这种地址在邻居发现等机制中发挥重大作用,是不可或缺的。
唯一本地地址则相当于局域网中的保留地址,范围是FC00::/7,这种地址用在一些虽然启用了IPv6协议,但还没有申请到IPv6地址的局域网。唯一本地地址必须在路由器上配置以后才是可用的。
IPv6地址是多穴的,就是说一个网卡可以同时拥有多个IPv6地址,比如上述的各种类型地址是可以同时存在的。这一点在IPv4中也存在,但不明显。
有些特殊地址可以和IPv4下的地址相比较,如:
0:0:0:0:0:0:0:0或::,相当于0.0.0.0,表示整个网络
0:0:0:0:0:0:0:1或::1,相当于127.0.0.1,表示本机
0:0:0:0:0:0:IPv4或::IPv4,表示IPv4兼容的IPv6地址
0:0:0:0:0:FFFF:IPv4或::FFFF:IPv4,表示IPv4映射的IPv6地址。
多播也叫组播,是指一个节点发送的数据包同时被多个目的节点收到,这有点像广播。但是广播是不可选择的,所有节点必须接收发送给广播地址的数据报文。为了防止广播泛滥乃至发生广播风暴,路由器不转发广播包。多播和广播的不同在于,节点可以主动加入或退出多播组,加入某个多播组的节点共享一个多播地址,路由器设置后可以允许某些多播报文通过。显然,多播地址只能做目的地址,并且需要网络设备支持。IPv6中的多播地址以FF开始,IPv6中的多播包含了广播。(www.daowen.com)
IPv6协议启动以后,获得本地链路地址,它利用这个地址侦听路由器公告,获得网络号,根据本地链路地址的主机部分或从DHCP服务器分配,获得完整的可集聚全球单播地址。此外,主机也可以主动给路由器发送配置请求,路由器将给予响应。不管哪种情况,IPv6地址一般来说是不需要人工配置的。管理员需要做的只是配置路由器,DHCP服务器甚至也不是必需的。IPv6的这个自动机制是采用多播技术实现的。与IPv4不同的是,IPv6协议更改网络号很方便,管理员只要修改路由器的配置就可以实现。
任播也叫泛播,它也有多个目的节点,但和多播不同的是,任播发送数据,由网络设备任意选择一个节点送达,通常这个节点是最近或最方便的节点。任播通常用于负载均衡,例如DNS根服务器。这种服务器非常繁忙,不可能只用一台设备实现,而是配置了许多一模一样的服务器,前面接入一个任播路由器。当路由器接到对服务器的访问请求时,路由器任选一个发过去,由于这个选择是随机的,就实现了负载的均衡。为保证数据来源可溯,任播地址不能做源地址。
从目前来看,IPv4网络上的资源有待进一步利用,而IPv6下的互联网设施还不完善。一种观点认为,IPv4到IPv6的过渡不可能采取全网突然切换的办法,只能逐步、局部地切换,两种网络通过IPv4-IPv6隧道互联。具体来说,刚开始,人们把IPv6数据报文作为IPv4的负载传输,底层是IPv4;接着,人们把网络底层逐步改为IPv6,把少量IPv4的数据报文作为IPv6的负载传输。经过一个相当长的阶段以后,IPv6彻底替换IPv4。
还有一种思路是同时在网络中配置IPv6和IPv4,网络中的设备有的支持IPv4,有的支持IPv6。在保证网络正常运行的情况下,逐步替换掉只支持IPv4的部分,最终全部节点都可以支持IPv6。最后彻底关闭网络中的IPv4协议。这种方法叫双栈技术。
两种技术存在的问题在于,IPv6协议和IPv4协议不仅是版本的区别,其底层实现机制和上层有些部分也需要进行替换,这就增加了过渡期间的复杂程度。
5.IP参数的配置和测试
在Windows 7操作系统中,查看本机IP地址参数,可以在命令行模式下使用“ipconfig”命令,或者在网卡的“本地连接状态”窗口中,单击“详细信息”查看。
设置IP地址参数,有两种办法,一种是DHCP服务器自动分配,另一种是手工设置。自动分配IP地址需要网络管理员在网络中开启并配置好一个DHCP服务器,手工配置首先需要从管理员获得IP地址参数。
在Windows 7系统中,可以在“本地连接”的“属性”窗口中找到“Internet协议版本4”,选中后点“属性”,可以打开如图6-4所示的窗口。
图6-4 IP地址参数设置
在这个窗口中,可以手动输入IP地址、子网掩码、默认网关和DNS服务器等参数。
计算机的本地连接显示正常,网络不通,可以在命令行模式下使用“ping”命令进行测试,方法是“ping”后面跟上一个IP地址或域名,这样可以测试本机到对方的网络连通性。如图6-5所示。
这种情况表明本机到对方机器的网络是连通的。
ping命令的原理是发送ICMP报文,然后对方同样反馈ICMP报文。这种报文是一种网络层报文,用于网络测试、路由器之间通告等,可以用来判断网络故障,是一种重要的网络测试工具,IP节点设备都应该响应ICMP报文。但是这种响应容易被黑客滥用,因此最新版本的Windows Server操作系统和许多个人防火墙默认都关闭了ICMP响应,以防止黑客窥视。
图6-5 ping测试
6.域名和域名系统
(1)域名。Internet上的计算机都有唯一的IP地址,计算机之间的通信是以IP地址来进行寻址的。在访问其他计算机时,用户需要输入访问的远程计算机的IP地址来建立访问连接,但是,随着Internet主机数量的迅速增长,用户要记住所有主机的IP地址几乎是不可能的。为了解决这个问题,人们规定了一种字符型标志,称之为域名(Domain Name)。如同每个人的姓名一样,域名是网络上互连的主机的名称,用户通过域名访问自己感兴趣的网站。
域名和IP地址存在着一一对应的关系,它的目的就是让用户更易于理解和容易记住主机地址。如国内著名搜索引擎百度的IP地址为61.135.169.105,用域名表示为www.baidu.com。
域名结构由若干分量组成,各个分量之间用点隔开:三级域名.二级域名.顶级域名。各分量代表不同级别的域名,级别最低的域名写在最左边,级别最高的顶级域名则写在最右边。完整的域名不能够超过255个字符,一个域名可以包含下级域名的数目并没有明确的规定,各级域名由各自的上一级域名管理机构管理,而最高级的顶级域名则由因特网的有关机构管理。
在这种域名地址最右边的2个或3个字母表示最高的域名范围(顶级域名),一般是地理性顶级域名或组织性顶级域名。如表6-2所示。
表6-2 地理性顶级域名及组织性顶级域名
续表
二级域名一般作为某种组织网络类型的代码,如表6-3所示。
表6-3 中国的二级域名
域名的其他部分分别表示该主机所属的层次关系,一般由四部分组成,如郑州大学图书馆某一主机的域名是lib.zzu.edu.cn。其中lib是图书馆的缩写,zzu是郑州大学的缩写,edu是教育机构的缩写,cn是中国的缩写,因此lib.zzu.edu.cn这一域名代表中国教育界郑州大学的图书馆里的某一台计算机。这种域名地址和英文邮件地址的结构是一样的,其排列是从小范围到大范围的。实际Internet主机域名的一般格式是:主机名.机构名.网络名.最高层域名。
(2)域名系统(DNS)。Internet域名系统是一个巨大的分布式系统,域名信息分布存储在各个域的DNS服务器中。我们要解析某台主机的域名就必须知道其所属域的DNS服务器。但是,Internet上有千千万万个域,我们又如何能知道所有域的DNS服务器的地址并进行查询呢?
人们习惯记忆域名,但计算机只认识IP地址,域名与IP地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的DNS服务器来完成,整个过程是自动进行的。实际上DNS服务器就是把域名翻译成IP地址,它基本上相当于一本电话簿,已知一个姓名就可以查到一个电话号码。
通常,提供Internet接入服务的服务提供商(ISP)都会给我们提供一台DNS服务器,DNS服务器会接收我们的域名解析请求,然后按照域的树状结构、按照域名的等级自顶向下访问相关域的域名服务器,并将解析的结果返回给我们,这样我们就可以访问相关的主机了。
7.统一资源定位符
统一资源定位符(Uniform Resource Locator,URL)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。URL最初是由蒂姆·伯纳斯·李发明用来作为万维网地址的。
基本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名。
模式/协议:它告诉浏览器如何处理将要打开的文件。最常用的模式是超文本传输协议(Hyper Text Transfer Protocol,缩写为HTTP),这个协议可以用来访问网络。
服务器名称:表示文件存储在网络中哪个域名或IP地址上。
路径和文件名:表示该文件存储在上述服务器中的哪个文件夹中以及文件本身叫什么名字。
如图6-6中的URL所表示的就是一个存储在服务器www.hamc.edu.cn中的图片文件。
图6-6 URL结构
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。