IP协议——网段划分

删除吗

大家好,又见面了,我是你们的朋友全栈君。

 IP地址

        在根据TCP/IP协议进行通信时,要用IP地址来标识主机或路由器。在IPv4中,IP地址是一个32位的整数。所以最多可以表示的数字IP地址是:2^32(大约是43亿)。

        IP地址由网络号和主机号两部分来标识。处于不同网段内的主机必须有不同的网络标识。而处于同一网段内的主机的网络号表示相同,但主机号标识必须不同。所以,在某网段内新增一台主机后,该主机的网络号与该网段的网络号相同,但是主机号不能与该网段里的其他主机的主机号相同。

        通过合理设置网络号和主机号,就可以保证在相互连接的网络中,每台主机的IP地址都是唯一的。

        有一种DHCP技术,可以自动为网段内新增结点主机分配IP地址。一般的路由器都带有DHCP功能,因此路由器可以看做一个DHCP服务器。

         通过将IP地址划分为网络号和主机号来标识,可以有如下特点:

(1)IP地址管理机构在分配IP地址时只分配网络号。剩下的主机号由得到该网络号的单位自行分配,这样就方便了管理就够的管理;

(2)路由器在寻找目的主机的IP地址时,只需找到目的主机所在的局域网,再在该局域网内寻找目的主机。

(3)具有不同网络号的局域网必须有路由器进行连接,所以路由器总是有两个或两个以上网络号不同的IP地址

        那么该如何划分网络号和主机号呢?

IP地址分类

        IP地址可以分为五类:A~E类。各类别的网络号和主机号分别对应如下:

IP协议------网段划分

        各类地址的表示范围是:

A类:0.0.0.0~127.255.255.255

B类:128.0.0.0~191.255.255.255

C类:192.0.0.0~223.255.255.255

D类:224.0.0.0~239.255.255.255

E类:240.0.0.0~247.255.255.255

        A类地址的网络号占1个字节,只有7位可以使用。可以指派的A类网络号为126(2^7-2)个。A类IP地址中网络字段全0表示的是“本网络(A类网络)”的意思,不用于分配给具体的主机。IP地址中网络号全1表示的是本地环回地址,用于测试本主机的进程之间的通信,即网络号为127的IP地址。A类地址的主机号占3个字节,所以一个A类网络中可以连接的最大主机数为:2^24-2。主机号全0表示该主机连接的单个网络地址(某个A类网络),主机号全1表示该网络中的所有主机。

        B类地址的网络号占2个字节,只有14位可以使用。可以指派的B类网络号为2^14-1(128.0.0.0)不用,最小的网络号为:128.1.0.0。每一个B类网路可以连接的最大主机数为:2^16-2=65534。(扣除主机号全0和全1的IP地址)。

        C类地址的网络号占3个字节,只有21位可以使用。可以指派的C类网络号为2^21(192.0.0.0不用),最小的网络号为:192.0.1.0。每一个C类主机可以连接的最大主机数为:2^8-2=254(扣除主机号为全0和全1的IP地址)。

        在上述的分类中,存在以下问题:

(1)IP地址空间的利用率降低:一个B类网络中最多可以表示的IP地址为65534个,而某些种类网络由于链路的特点能够连接的结点个数有限,所以就会造成大量的IP地址浪费;由于C类网络能连接的结点个数有限。所以,单位会申请B类网络,但一般又用不了这么多的IP地址,所以会造成IP地址的浪费。同理,A类网络的IP地址也会造成大量的浪费;

(2)如果给每一个物理网络都分配一个网络号,就会导致路由表过大。此时就会造成路由表的管理成本增加,同时查询的效率也会增加。

(3)当一个单位申请了一个网络号。他想将该网络能表示的IP地址再分给它下属的几个小单位时。如果在申请新的网络就会造成浪费。

        为了解决上述的问题,引入子网划分的概念。

子网划分和子网掩码

子网划分

        子网划分实际是在将原A类,B类,C类网络中的主机号的部分作为子网号,将原来的ABC类网络细化的过程,将原来的一个网络分为多个网络,但是在对外表现上,还是表现为原来的一个网络。

        所以,此时,IP地址组成为:网络号+子网号+主机号。

        在数据进行通信的过程中,首先根据目的IP地址找到目标主机所在的网络(路由器),再根据目的IP地址的子网号找到目标主机所在的子网,最后找到目标主机。

        比如,一个B类IP地址为:192.168.0.0。先将该网络划分多个子网,假定子网号占用了8位。由于原B类网络中主机号一共占用了16位,子网络拿走8位之后,一个子网中的主机号所占的位数就变成了8位。假定其中一个子网为192.168.5.0。在数据通信时,目的主机为该子网中的IP地址为192.168.5.8的主机。因此,在数据传输过程中,首先会根据目的IP地址找到该主机所在的网络192.168.0.0(其实是找到该网络上的路由器),再通过IP地址找到目的主机所在的子网192.168.5.0。最后在该子网内找到目的主机。

        此时,可以将网络号和子网号统一为网络标识。

子网掩码

        当数据报到达目的主机所在网络的路由器时,如何将它转发到子网上呢?

        为了使目的主机所在网路的路由器能够很方便的找到目的子网,引入“子网掩码”的概念。子网掩码也是一个32位的整数,它是由一串1和一串0构成,1对应于目的主机所在的网络号和子网号,0对应于目的主机所在的主机号。对于没有划分子网的网络号,也有子网掩码,此时子网掩码中的1对应于网络号,0对应于主机号。将网络号和子网号统称为网络号后,子网掩码中的1就对应于网络号,0对应于主机号。

        将目的主机的IP地址与子网掩码进行按位与操作,便可以确定目的主机所在的网络号

        如下图:

IP协议------网段划分

        此时,将目的主机IP与子网掩码按位与之后得到就是该目的主机所在的网络地址IP。在本例中,该子网的主机IP的表示范围是:145.13.3.0~145.13.3.255。能够连接的主机个数为254台(去除主机号为全0和全1的IP地址)。

        上述中,子网掩码与主机IP按位与之后得到网络地址,然后主机号由全0到全1即表示该子网的地址范围。

        子网掩码除了上述的表示方法外,还有一种表示方法:在每个IP地址之后追加网络地址的位数。如上例中:

145.13.3.10/24。表示的是IP地址为145.13.3.10的主机IP,子网掩码的高24位为全1。因此网络地址的高24位与该IP地址相同即145.13.3.0。

        所以,在路由表中既要有目的网络地址,也要有该网络的子网掩码。才能判断目的IP是否与目的网络地址对应。

特殊的IP地址

        与上述的ABC类相同,主机号为全0的表示“该网络”,主机号为全1的表示“所有主机”即广播地址。127.开头的为本机环回测试,一般为127.0.0.1。

CIDR

        由于A类的所能派发的网络号有限,而C类网络能连接的主机个数有相对较少,所以一般的单位在申请网络时,都会申请B类网络,这就导致了B类网络的严重缺乏。

        所以,开始放弃IP地址的分类,采用任意长度分割IP地址的网络标识和主机标识,它与ABC类的划分没有任何关系。称为CIDR。它可以不受IP地址分类的限制,自由进行分配。

        此时的IP地址可以表示为:网络号+主机号(这个网络号可以是任意长度的)。

        当申请到一个任意长度的网络号之后,也可以在网络内进行子网划分。所以对于任一个子网也对应一个子网掩码。使用方法与上述相同。

        CIDR更有效的利用了当前的IPv4地址,同时也减轻了路由器的负担。它可以将多个连续C类地址合并为一个网络(和你宝贵的个数以2,4,8,…呈现)。例如:将两个C类网络:192.168.224.0和192.168.225.0合并为一个网络。此时合并后的网络中可以连接的主机数增加到2^9-2=510台。在未合并之前,需要在路由表中占用两行来表示两个C类网络,合并后只需用一行就可以表示。




       







版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/124749.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号