IP和子网掩码详解

作者: 来源: 发布时间:2013年01月17日 点击数:
 
我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IP

  A类IP段  0.0.0.0 到127.255.255.255

  B类IP段  128.0.0.0 到191.255.255.255

  C类IP段  192.0.0.0 到223.255.255.255

  XP默认分配的子网掩码每段只有255或0

  A类的默认子网掩码 255.0.0.0     一个子网最多可以容纳1677万多台电脑

  B类的默认子网掩码 255.255.0.0    一个子网最多可以容纳6万台电脑

  C类的默认子网掩码 255.255.255.0   一个子网最多可以容纳254台电脑

  我以前认为,要想把一些电脑搞在同一网段,只要IP的前三段一样就可以了,今天,我才知道我错了。如果照我这说的话,一个子网就只能容纳254台电脑?真是有点笑话。我们来说详细看看吧。

  要想在同一网段,只要网络标识相同就可以了,那要怎么看网络标识呢?首先要做的是把每段的IP转换为二进制。(有人说,我不会转换耶,没关系,我们用Windows自带计算器就行。打开计算器,点查看>科学型,输入十进制的数字,再点一下“二进制”这个单选点,就可以切换至二进制了。)

  把子网掩码切换至二进制,我们会发现,所有的子网掩码是由一串[red]连续[/red]的1和一串[red]连续[/red]的0组成的(一共4段,每段8位,一共32位数)。

  255.0.0.0   11111111.00000000.00000000.00000000

  255.255.0.0  11111111.11111111.00000000.00000000

  255.255.255.0 11111111.11111111.11111111.00000000

  这是A/B/C三类默认子网掩码的二进制形式,其实,还有好多种子网掩码,只要是一串连续的1和一串连续的0就可以了(每段都是8位)。如11111111.11111111.11111000.00000000,这也是一段合法的子网掩码。子网掩码决定的是一个子网的计算机数目,计算机公式是2的m次方,其中,我们可以把m看到是后面的多少颗0。如255.255.255.0转换成二进制,那就是11111111.11111111.11111111.00000000,后面有8颗0,那m就是8,255.255.255.0这个子网掩码可以容纳2的8次方(台)电脑,也就是256台,但是有两个IP是不能用的,那就是最后一段不能为0和255,减去这两台,就是254台。我们再来做一个。

  255.255.248.0这个子网掩码可以最多容纳多少台电脑?

  计算方法:

  把将其转换为二进制的四段数字(每段要是8位,如果是0,可以写成8个0,也就是00000000)

  11111111.1111111.11111000.00000000

  然后,数数后面有几颗0,一共是有11颗,那就是2的11次方,等于2048,这个子网掩码最多可以容纳2048台电脑。

  一个子网最多可以容纳多少台电脑你会算了吧,下面我们来个逆向算法的题。

  一个公司有530台电脑,组成一个对等局域网,子网掩码设多少最合适?

  首先,无疑,530台电脑用B类IP最合适(A类不用说了,太多,C类又不够,肯定是B类),但是B类默认的子网掩码是255.255.0.0,可以容纳6万台电脑,显然不太合适,那子网掩码设多少合适呢?我们先来列个公式。

  2的m次方=560

  首先,我们确定2一定是大于8次方的,因为我们知道2的8次方是256,也就是C类IP的最大容纳电脑的数目,我们从9次方一个一个试2的9次方是512,不到560,2的10次方是1024,看来2的10次方最合适了。子网掩码一共由32位组成,已确定后面10位是0了,那前面的22位就是1,最合适的子网掩码就是:11111111.11111111.11111100.00000000,转换成10进制,那就是255.255.252.0。

  分配和计算子网掩码你会了吧,下面,我们来看看IP地址的网段。

  相信好多人都和偶一样,认为IP只要前三段相同,就是在同一网段了,其实,不是这样的,同样,我样把IP的每一段转换为一个二进制数,这里就拿IP:192.168.0.1,子网掩码:255.255.255.0做实验吧。

  192.168.0.1

  11000000.10101000.00000000.00000001

  (这里说明一下,和子网掩码一样,每段8位,不足8位的,前面加0补齐。)

  IP    11000000.10101000.00000000.00000001

  子网掩码  11111111.11111111.11111111.00000000

  在这里,向大家说一下到底怎么样才算同一网段。

  要想在同一网段,必需做到网络标识相同,那网络标识怎么算呢?各类IP的网络标识算法都是不一样的。A类的,只算第一段。B类,只算第一、二段。C类,算第一、二、三段。

  算法只要把IP和子网掩码的每位数AND就可以了。

  AND方法:0和1=0 0和0=0 1和1=1

  如:And 192.168.0.1,255.255.255.0,先转换为二进制,然后AND每一位

  IP      11000000.10101000.00000000.00000001

  子网掩码    11111111.11111111.11111111.00000000

  得出AND结果  11000000.10101000.00000000.00000000

  转换为十进制192.168.0.0,这就是网络标识,

  再将子网掩码反取,也就是00000000.00000000.00000000.11111111,与IP AND

  得出结果00000000.00000000.00000000.00000001,转换为10进制,即0.0.0.1,

  这0.0.0.1就是主机标识。要想在同一网段,必需做到网络标识一样。

  我们再来看看这个改为默认子网掩码的B类IP

  如IP:188.188.0.111,188.188.5.222,子网掩码都设为255.255.254.0,在同一网段吗?

  先将这些转换成二进制

  188.188.0.111 10111100.10111100.00000000.01101111

  188.188.5.222 10111100.10111100.00000101.11011010

  255.255.254.0 11111111.11111111.11111110.00000000

  分别AND,得

  10111100.10111100.00000000.00000000

  10111100.10111100.00000100.00000000

  网络标识不一样,即不在同一网段。

  判断是不是在同一网段,你会了吧,下面,我们来点实际的。

  一个公司有530台电脑,组成一个对等局域网,子网掩码和IP设多少最合适?

  子网掩码不说了,前面算出结果来了11111111.11111111.11111100.00000000,也就是255.255.252.0

  我们现在要确定的是IP如何分配,首先,选一个B类IP段,这里就选188.188.x.x吧

  这样,IP的前两段确定的,关键是要确定第三段,只要网络标识相同就可以了。我们先来确定网络号。(我们把子网掩码中的1和IP中的?对就起来,0和*对应起来,如下:)

  255.255.252.0 11111111.11111111.11111100.00000000

  188.188.x.x  10111100.10111100.??????**.********

  网络标识   10111100.10111100.??????00.00000000

  由此可知,?处随便填(只能用0和1填,不一定全是0和1),我们就用全填0吧,*处随便,这样呢,我们的IP就是

  10111100.10111100.000000**.********,一共有530台电脑,IP的最后一段1~254可以分给254台计算机,530/254=2.086,采用进1法,得整数3,这样,我们确定了IP的第三段要分成三个不同的数字,也就是说,把000000**中的**填三次数字,只能填1和0,而且每次的数字都不一样,至于填什么,就随我们便了,如00000001,00000010,00000011,转换成二进制,分别是1,2,3,这样,第三段也确定了,这样,就可以把IP分成188.188.1.y,188.188.2.y,188.188.3.y,y处随便填,只要在1~254范围之内,并且这530台电脑每台和每台的IP不一样,就可以了。



  有人也许会说,既然算法这么麻烦,干脆用A类IP和A类默认子网掩码得了,偶要告诉你的是,由于A类IP和A类默认子网掩码的主机数目过大,这样做无疑是大海捞针,如果同时局域网访问量过频繁、过大,会影响效率的,所以,最好设置符合自己的IP和子网掩码^_^





下一代互联网协议(IPv6)的概念及原理

1 IPv6诞生的发展背景



Internet协议的第4版(IPv4)为TCR/IP族和Internet提供了基本的通信机制。IP技术已经广泛应用了10多年,互联网的影响已经渗透到社会的各个方面,同时,互联网的发展也成为国家信息化和现代化建设的重要部分,并产生了重大的经济效益和社会效益。随着Internet的指数增长,互联网的体系结构由NSFNET核心网络演变为由ISP(Internet Service,Provider互联网络提供商)运营的分散的体系结构。当前互联网面临的一个严峻问题是地址消耗严重,即没有足够的地址来满足全球的需要。IPv4的问题逐渐显露出来,32位的IP地址空间枯竭、路由表急剧膨胀、路由选择效率不高、对网络安全和多媒体应用的支持不够,配置复杂,对移动性支持不好,很难开展端到端的业务等,这些问题已经成为制约互联网发展的重要障碍,而IETF开发的IPv6下一代网络彻底、有效地解决了目前IPv4所存在的上述问题。



2 IPv6的新特性



(1)巨大的地址空间



IPv6的源地址和目标地址都是128位的(16字节),几乎可以不受限制地提供IP地址。128位可以表达超过3.4×1038种可能的组合,也就是说整个地球的每平方米面积上可以分配6.65×1023个IP地址,设计这种巨大的地址空间的目的是为了能更好的把路由器域名划分出层次结构,并更好地反映出现代Internet的拓扑结构,使寻址和路由层次的设计更具灵活性,允许使用多级的子网划分和地址分配,涵盖范围从Internet骨干直到机构组织内部的各个子网,这些正是基于IPv4的Internet所缺乏的。即便是算上目前已为主机分配的所有IP地址,IPv6仍然还有充足的地址可供今后使用。由于有绝对更多地可用地址,就不再需要一些节约地址的技术,比如NAT转换,这样就可以全面建立端到端的连接了。



(2)新的协议头格式



IPv6的协议头采用一种新的格式,可最大程度地减少协议头开销。IPv6的报头有一个基本包头和多个扩展包头构成,基本包头具有40字节的固定长度,放置所有路由器都需要处理的信息。由于Internet上的绝大部分包都只是被路由器简单地转发,因此固定的包头长度有助于加快路由速度。为实现这个目标,IPv6包头中字段的数量从IPv4中的12(包括选项)个,降到了8个;中间路由器必须处理的字段从6个降到了4个,这样网络中的中间路由器在处理这种简化的IPv6协议头时,效率就更高;很少使用的字段,如支持拆分的字段,以及IPv4包头中的选项,被移到了IPv6包头的扩展包头中。IPv6定义了多种扩展包头,能提供对多种应用的强力支持,同时又为以后支持新的应用提供了可能。IPv4头和IPv6头不具有互操作性。IPv6从功能上说,并不是IPv4的超集,也就是说它并不向下兼容IPv4。因此每台主机或路由器都必须既实现IPv4,又实现IPv6协议,以便识别和处理两种不同的协议头。虽然新IPv6中的地址位数是IPv4地址位数的4倍,但是,新IPv6协议头的长度仅是IPv4协议头的2倍。



(3)有效地、分级的寻址和路由结构



与IPv4地址空间的划分准则相似,IPv6地址空间也是基于地址中高位的值来进行划分的。高位和它们的固定值称为格式前缀(FP)。根据格式前缀位的多少划分IPv6地址空间,目前已分配的有为网络服务接入点(NSAP)、可集聚全球单播地址、链路本地单播地址、站点本地单播地址和多播地址,当前可被IPv6节点使用的单播地址集合由可集聚全球单播地址、链路本地单播地址和站点本地地址组成。IPv6中的全球地址中的字段创建了一个3层的拓扑结构。



IPv6使用全球地址的设计意图是创建一个有效地、分层次的并且可以概括的路由结构,这种路由结构是基于当前存在的多级ISP体系而设计的。公共拓扑是提供接人服务的大大小小的ISP的集合。站点拓扑是一个机构站点的内部子网的集合。接口标识符惟一地标识了一个机构站点的内部子网上的一个接口。在采用IPv6的Internet中,骨干路由器具有更小的路由表,这种路由表对应着全球ISP的路由结构。



(4)有状态和无状态的地址配置



为简化主机配置,IPv6既支持有状态的地址配置(例如,在有DHCPv6服务器时的地址配置),也支持无状态的地址配置(例如,在没有DHCPv6服务器)。在无状态的地址配置中,链路上的主机会自动地为自己配置适合于这条链路的IPv6地址(称为链路本地地址),或者适合于IPv4和IPv6共存的IP地址,或者由本地路由器加上了前缀的IP地址。甚至在没有路由器的情况下,同一链路上的所有主机,也可以自动配置它们的链路本地地址,这样不用手工配置也可以进行通信。链路本地地址在一秒钟之内就能自动配置完成,因此同一链路上的节点的通信几乎是立即进行的。相比之下,一个使用DHCP的IPv4主机则要等上整整1分钟:先放弃DHCP的配置,然后自己配置一个IPv4地址。



(5)内置的安全性



IPv6协议支持IPSec,这就为网络安全性提供了一种基于标准的解决方案,并且提高了不同IPv6实现方案之间的互操作性。IPSec由两种不同类型的扩展头和一个用于处理安全设置的协议所组成。验证头(AH)为整个IPv6数据包(除了在传输过程中IPv6头必须改变的字段)提供了数据完整性、数据验证和重放保护。封装安全报文(ESP)的头和尾也为ESP封装报文提供了数据完整性、数据验证、数据机密性和重放保护。在单播通信中用于处理IPSec的安全设置的协议通常是Internet密钥交换协议(IKE)。



(6)更好的支持Qos



在多媒体应用日益广泛的今天,因特网提供对多媒体的支持将有重大意义。多媒体的一般特点是带宽要求高、持续时间长。为此引人流的概念简化因特网对多媒体的处理。流是特定源和目的地间的报文序列,源要求中间路由器对这些报文进行特殊处理。一般来说,路由器收到流中报文后,根据流标识符查找路由器中保存的流上下文,对流中的报文进行同样的处理,加快了报文处理速度。IPv4补充了对流的处理,例如使用资源预留协议(RSVP)预留资源进行因特网上的音频、视频传播。但是IPv4对流的处理有天生的缺陷,因为在IPv4定义之初就没有流的概念。IPv4定义的流包括源和目的IP地址、传输控制协议(TCP)或用户数据报协议(UDP)的端口号,路由器为了判断一个报文是否属于一个流,不但要看IP头中的IP地址,还要分析TCP头就UDP头中的端口号,这不但违背了网络分层的原则,而且加大了路由器的处理工作量。IPv6在设计之初就考虑了对流的支持。IP头的格式里,有专门的20bit流标签域。主机发送报文时,如果需要把报文放到流中传输,只需在流标签里填人相应的流编号,否则在流标签里填零就作为一般的报文处理。路由器收到流的第一个报文时,以流编号为索引建立处理上下文,流中的后续报文都按上下文处理。由于通信流是在IPv6协议头中标识的,因此,即使数据包有效载荷已经用IPSec和ESP进行了加密,仍然可以实现对Qos的支持。



(7)用新协议处理邻节点的交互



IPv6中的邻节点发现(Neighbor Discovery)协议是一系列的IPv6网络控制报文协议(ICMPv6)报文,用来管理相邻节点(在同一链路上的节点)的交互。邻节点发现协议用更加有效地多播和单播邻节点发现报文,取代了地址解析协议(ARP)(基于广播的)、ICMPv4路由器发现,以及ICMPv4重定向报文。

(8)可扩展性

IPv6可以很方便地实现功能地扩展,这主要通过在IPv6协议头之后添加新的扩展协议头方式来实现。IPv4协议头中的选项最多可以支持40个字节的选项,而IPv6扩展协议头的长度只受到IPv6数据包长度的限制。

3 IPv6的地址空间

IPv6最明显的特征是它使用更大的地址。IPv6使用128位地址,IPv4使用32位地址。32位地址空间允许4,294,967,296个可能的地址。128位地址空间允许340,282,366,920,938,463,463, 374,607,431, 768, 211, 456(3.4×1038)个可能的地址。

值得注意的是,使IPv6地址在长度上达到128位并不是说地球的每平方米能有6.5×1023个地址。更确切地说,将IPv6地址设计成较大尺寸,旨在进一步细分成反映现代Internet拓扑结构的分层路由域。使用128位地址空间,在设计分层寻址和路由时能提供多个等级的层次和灵活性,而这一点恰恰是目前基于IPv4的Internet所缺乏的。

4 IPv6的地址格式

IPv6的地址由全局路由前缀、子网ID、接口ID三部分组成。其中全局路由前缀用于指定某一站点,子网lD用于指定该站点内的一条链路,接口ID用于指定链路上的某一接口。

5 IPv6地址表示方法

(1)冒号十六进制形式

这是首选形式n:n:n:n:n:n:n:n。每个n都表示八个16位地址元素之一的十六进制值。例如:

3FFE:FFFF:7654:FEDA:1245:BA98:3210:4562.

(2)压缩形式

由于地址长度要求,地址包含由零组成的长字符串的情况十分常见。为了简化对这些地址的写人,可以使用压缩形式,在这一压缩形式中,多个0块的单个连续序列由双冒号符号(::)表示。此符号只能在地址中出现一次。例如,多路广播地址FFED:0:0:0:0:BA98:3210:4562的压缩形式为FFED::BA98:3210:4562。单播地址3FFE:FFFF:0:0:8:800:20C4:0的压缩形式3FFE:FFFF: :8: 800:20C4:0。环回地址0:0:0:0:0:0:0:1的压缩形式为:∷1。未指定的地址0:0:0:0:0:0:0:0的压缩形式为∷。

(3)混合形式

此形式组合IPv4和IPv6地址。在此情况下,地址格式为n:n:n:n:n:n:d.d.d.d,其中每个n都表示六个IPv6高序位16位地址元素之一的十六进制值,每个都表示IPv4地址的十进制值。

6 IPv6地址类型

(1)单播地址

用于单个接口的标识符。发送到此地址的数据包被传递给标识的接口。通过高序位八位字节的值来将单播地址与多路广播地址区分开来。多路广播地址的高序列八位字节具有十六进制值FF。此八位字节的任何其他值都标识单播地址。

发送到单播地址的数据包被传输到这个地址识别出的接口。

(2)多播地址

一组接口的标识符(通常属于不同的节点)。发送到此地址的数据包被传递给该地址标识的所有接口。多路广播地址类型代替IPv4广播地址。

发送到组播地址的数据包被传输到这个地址识别出的所有接口。



(3)IPv6不带有广播地址

IPv6使用“所有节点”组播。

7 IPv6单播地址类型

(1)链路--本地(link local)



这些地址用于单个链路并且具有以下形式:FE80::InterfaceID。链路--本地地址用在链路上的各节点之间,用于自动地址配置、邻居发现或未提供路由器的情况。链路--本地地址主要用于启动时以及系统尚未获取较大范围的地址之时。

带有链路--本地源或目的地址的数据包不转发到其它链路

(2)站点--本地(site local)

这些地址用于单个站点并具有以下格式:FECO::SuhnetID:InterfaceID。站点-本地地址用于不需要全局前缀的站点内的寻址。

带有站点--本地源或目的地址的数据包不转发到其它站点

(3)全球IPv6单播地址

这些地址可用在Internet上并具有以下格式:010(FP,3位)TLA ID(13位) Reserved(8位)NLA ID(24位)SLA ID(16位)InterfaceID(64位)。



带有全球地址的数据包可被转发到全球网络的任何部分。

8 从iPv4到IPv6的过渡

(1)双协议栈技术

双协议栈技术是一个节点,既有IPv4栈又有IPv6栈,这种运行双协议栈的节点就是IPv6/IPv4节点。

当这种节点和IPv6节点进行通信时,它就像一个纯IPv6节点,而当它与一个IPv4节点或者兼容IPv4的IPv6节点通信时,它就像一个纯IPv4节点。

(2)隧道技术



随着IPv6网络的发展,将会出现许多局部的IPv6网络,但是这些IPv6网络要通过IPv4骨干网相连。要将这些孤立的IPv6局部网络相互连通,就需要使用隧道技术。隧道技术是指用IPv4报文来封装IPv6数据包,以使IPv6数据包可以穿越IPv4的网络。

9 IPv6在国土资源部的具体应用

中科院IPv6网络专线已经接人国土资源部信息中心机房,并已经安装支持IPv6的路由器。

下一步需按照相应的IP地址规划完善网络,开发不同的网络应用,如:网站、DNS等服务。在丰富应用的基础上做好网络管理及安全管理工作。

10 结语

IPv6技术的发展已经比较成熟,但由于IPv4的不断改进以及NAT技术的应用,缓和了IPv4地址匮乏及安全性差等问题。另外,IPv6在美国应用已经比 较广泛,相信在国内的实际应用也会进一步增加。