本文主要是介绍IPV4理论知识2----分类编址,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
IPV4理论知识2----分类编址
前言
前面说过IPV4的理论知识,这里再说一下关于IPV4的那些没说到的知识,有同学反应我的博客排版格式绝了...我正在努力改正,正确让大家能看到一种比说书还好看的内容,比苍老师还漂亮的排版.
分类编址
IPV4的体系中有分类编址,肯定还有无分类编址,啥叫分类编址?别急,往下看.在分类编址时,IPV4地址分为A,B,C,D,E这五类.每类占用的IP比例和个数如下图
IPV4分类识别
计算机以二进制方式存储IPV4地址,在这种情况下可以很方便的写出一种算发,通过一个连续检查过程来查找出该IP地址的类别.流程图如下:
网络标识和主机标识
对于A,B,C类IP地址,都可以划分为网络和主机标识两部分.其中网络标识和主机标识的长度随地址类别的不同变化.网络标识和主机标识其实很好理解,就相当于我们使用的电信的座机号码.例如,我在山东淄博,0533-88888888,其中网络标识就相当于0533,主机标识就对应号码88888888.下图很清楚的说明了A,B,C类地址的网络标识和主机标识的长度.
地址类和地址块
分类编制中每一类地址都被划为固定数目的地址块.而每一个地址块的大小是固定的.看下图:
扩展知识
啥叫分类编址?传统上将IP地址划分为5类.
如果你仔细看了上面的图,就应该能看到上面5类地址分类识别,D类地址用于多播编址,E类地址留给未来使用.剩下的A,B,C类地址用于标识单个网络和主机的主要地址类型.
地质类别是由前导1比特的个数标识的.A类地址由另个前导1比特,B类地址有一个,C类由两个,以此类推.标识地址很重要,因为对其余比特的解释都取决于地址的类型.
A,B,C类地址的其余比特被分为两个部分.其中第一部分是网络标识,用来标识地址所指的特定网络.之后是主机标识,用来标识特定网络中的那台电脑.
类别标识符比特也被当做网络标识的一部分.因此,130.50.10.200这个IP是一个网络标识为0x8232,别问咋来的,动动脑子.上面说了.
将地址空间划分为不同的类别是为了提高地址使用灵活性,不浪费地址.例如,A类地址就适用于具有大量(最多16177214台)主机的网络.
可用的主机标识有224个或16177216个,但主机0和主机标识全1都有特殊的含义.主机ID全1是广播地址.地址为广播地址的IP数据报会被传送到网络上所有的主机,主机标识为0标识”本主机”,只有在启动阶段,主机才会将其用作源地址来发现其主机号.因此,主机的数量通常都是2n 2台,其中n是知己标识的比特数.
A类网络的网络标识为7比特,所以有128个可能的A类地址.
和主机标识一样,这些网络中有两个被保留起来.网络0标识”本网络”,想主机0一样,再启动阶段,将其作为源地址来发现网络号.网络127是主机内部网络.发送给网络127的数据报就不应该离开源端主机.这个地址通常被称为环回(loopback)地址,因为发送给它的数据都被”环回”到同一主机上去了.
另一个极端的网络类别是C类.C类网络有很多,但每个网络都只有254个可用的主机标识.A类地址用于少量拥有数百万主机的网络,而C类地址则可用于数百万个只拥有少数主机的网络.
类别 | 网络 | 主机 | 地址范围 |
A B C | 128 16284 2097152 | 16777214 65534 254 | 0,0,0,1~127.255.255.255 128.0.0.0~191.255.255.255 192.0.0.0~223.255.255.255 |
A,B,C类地址的网络数,主机数和地址范围 |
TCP/IP协议的设计者最初认为网络应该是以百计的,主机数应该是以千计的.
实际上呢,最初的设计中只有现在被称为A类地址的部分.将其划分为三类是后来为了适应网络数多于256的情况.
正如我们所知道的那样,廉价且无处不在的PC使网络和主机的数量出现了爆炸性的增长.现在因特网的规模已经远远超过了其设计者的预想.
这种增长暴露了分类编址的弱点.第一个问题是A类和B类网络中的主机的数量太大了.要知道,网络标识是用来说明一个物理网络,比如一个LAN的.但是没有谁会把65000台主机放在一个物理网络中,更不要说16 000 000台了,相反,大型网络都被划分为由路由器链接的,较小的网段了.
作为一个简单的案例,我们看看下图中显示的两个网段
如果主机H1和主机H2进行通信,他只需要用仁义驿中适用于低层网络的方法将H2的IP地址映射为它的物理地址,并将IP数据报放到”线路上”去就可以了.
现在假设主机H1和主机H3进行通信.但是即使H1知道或者能够发现H3的物理地址,H1也无法直接向H3发送IP数据报,因为H1和H3处于不同的网络----比如,不同的以太网电缆上.作为一种替代方式,H1要通过路由器R1间接的将数据报发出去.如果两个网络的网络标识不一致,H1只需要查询它的路由表以确定网段2的分组是由路由器R1处理的,然后将数据报发送给R1,并通过它转发给H3就可以了,总之一句话,路由器就是起到一个中转的作用.
除了为两个网段使用不同的网络标识,还有什么其他替代方法呢?对传统的分类编址方式来说,有两种可能的方法.一种方法是在H1的路由表中为网段2上的每台主机都包含一个条目,用来说明此主机的下一跳地址是R1.网段1的每台主机都要有相同的路由表,而网段2上的每台主机都要有一个类似的路由表对网段1的主机进行说明.很显然,对主机数量较多的情况来说,这种解决方法的扩展性不好.另外路由表需要手工维护,这是管理者不愿意看到的,因此这种方式基本不用.
另一种可能的方式被称为代理ARP,网段1把R1当做H3,H4和H5,网段2把R1当做H1,H2和R2.
代理ARP也被称为也称为混合ARP或者ARP出租.
只有当底层网络使用ARP(地址解析协议)将IP地址映射为物理地址时,才能使用这种方式.使用ARP时,要将IP地址映射为物理地址的主机会广播一条报文,请求具有期望IP地址的主机回送其物理地址.当然,网络上的所有主机都会受到ARP请求,但只有正确的IP地址的主机才会相应.
使用代理ARP时,如果H1要向H3发送一条IP数据报,但不知道其物理地址,它就会发送一条ARP请求,询问H3的物理地址.H3位于另一个网络上,所以它无法受到ARP请求,但作为其代理的R1是可以收到的,R1会用自己的地址应答.当发送给H3的数据报到达R1时,R1会将其转发给H3.对H1来说,看起来就和H3和它处于同一个网络中一样.
正如前面提到的,代理ARP只能在使用ARP的网络上工作,而且只能在箱单简单的网络拓扑中工作.比如,我们可以想像一下如果有多台路由器连接到网段1和2上,会发生什么情况.
从这里讨论的来看,对带有多个网段的网络来说,最通用的解决办法似乎是为每个网段分配一个独立的网络ID,但这种方法也有它自身的问题.首先,每个网络中都有很多潜在被浪费了的IP地址.比如,如果这段网络的每个网络都有自己的B类地址,那么与每个B类网络地址相关的大部分IP地址都会被浪费掉.要记住,每个B类网络地址中都有65534个主机地址.
第二,所有能将数据报直接传送到互联的网络上去的节点,都要在其路由表中为每个网段设置一个单独的条目.对我们举得这个小例子,这没啥问题,但是如果一个网络上包含了百个网段,并且有很多这样的网络,那么路由表就会变得很大了.
这个问题可能要比刚开始看起来更严重一点.路由器的内存通常是有限的,而且通常会将路由表放在接口板上一块特殊用途的内存中.
注意,如果只有一个网络标识是怎么消除这两个问题?需要更多主机时,总是可以通过添加网段来使用这些IP地址,这样IP地址就不会被永久浪费了.因为 只有一个网络标识,所以,只需要一个路由表条目就可以向网络中另一台主机发送数据报了.
小小的总结一下
本次主要是讲解IPV4的分类编址,内容看着多,实际上重点的东西不多,扩展的内容明白一下就可以了,那几个图都很重要,因为这些图很好懂,想我这样的屌丝都能看懂,想你肯定能看明白.
这篇关于IPV4理论知识2----分类编址的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!