IPV4地址,子网掩码,子网划分
IP地址IP地址是什么?
IP是英文Internet Protocol的缩写,意思是“网络之间互连的协议”,工作在TCP/IP体系结构的网络层。IP协议是将整个因特网互联在一起的黏合剂,任何厂家生产的计算机,只要遵守IP协议就可以与因特网互连互通。
IP 地址则是按照IP 协议规定的格式,为每一个正式接入到Internet 的主机所分配的、在全世界范围内是唯一的通信地址,它是网络层及以上各层所使用的地址,是一种逻辑地址。
IP地址现有两个版本:——IPv4版本,主宰着今天的因特网——IPv6版本,刚刚部署到部分网络中,是未来的因特网。我们通常所讲的IP地址是指IPv4版本中的IP地址。
IP地址表示方式——点分十进制法
IPv4地址是一个32位的二进制编址,在机器中存放的IP地址是连续的二进制代码。为提高可读性,每8位一组,用十进制表示,并利用点号分割各部分,这种方法称为点分十进制法,其全部IP地址范围可表示为0.0.0.0到255.255.255.255。
IP地址结构
IPv4地址是一个32位的二进制编址,都由网络号net-id和主机号host-id两部分构成:IPv4地址::={,}
一个网络号在整个因特网范围内必须是惟一的,而一个主机号则是在它前面的网络号所指明的网络范围内必须是唯一的,由此一个IP地址在整个因特网范围内是唯一的。
从IP地址的结构上来看,IP地址并不仅仅指明一个主机,还指明了主机所连接的网络。如果一个主机的地理位置不变,但将其连接到另外一个网络上,那么这个主机的IP地址必须改变。
IP地址编址方案
IPv4根据网络规模,采用分类编址方法,将IP地址分为A到E五类,A、B、C类称为基本类,用于主机地址,而D类用于组播,E类则为保留不用。
ipv4地址.png
从这张图中可以看出
A类、B类、C类IP地址的网络号字段分别为1个,2个,3个字节长,同时在网络号字段的最前面有1-3位的类别位(二进制),分别为0,10,110.A类、B类、C类IP地址的主机号字段分别为3个,2个,1个字节长。D类地址的前4位为1110,用于一对多的广播通信。E类地址的前4位为1111,保留为以后使用。
为什么将IP地址分为A类、B类、C类呢? 因为各种网络的规模差异很大,有的网络拥有很多主机,如IBM公司覆盖全世界的网络,有的网络上的主机则很少,如一个小学学校的网络。
ipv4分类.png
这张表格清楚地展示了A、B、C三类地址可连接的最大网络数和主机数以及他们的适用网络规模。
A类地址的网络号字段占一个字节,只有七位可供使用,因为字段的第一位已固定为0。可指派的网络号是126个,即27-2。
为什么减二,一是,IP地址中的全0表示this,即全为0的IP地址是保留地址,意思是“本网络”;二是,网络号为127,即后7位全为1,这样的网络号是用来为本地软件环回测试本主机进程之间的通信的。
而A类地址的主机号,占3个字节,因此每个A类网络中的最大主机数是224-2。这里减2的原因:全0的主机号字段表示该IP地址是“本主机”所连接到的单个网络地址,例如一个主机的IP地址为5.6.7.8,那么该主机所在的网络地址就是5.0.0.0。而全是1则表示该网络上的所有主机。
当某个单位申请到一个IP地址时,实际上是获得了具有同样网络号的一段地址,具体的主机号则是由该单位自行分配,只要做到在单位管辖内的范围里无重复的主机号即可。
138.69.35.38这个IP地址的第一个字节138,介于128–191之间,显然它属于B类地址,那么它的网络号就是IP地址的前两个字节138.69.0.0,主机号就是剩下的两个十进制数35.38。 210.32.128.6这个IP地址的第一个字节210介于192–223之间,因此它属于C类地址,那么它的网络号就是IP地址的前三个字节210.32.128.0,主机号则是最后一个十进制数6。子网掩码 我们学校的计算机科学系为其局域网申请了一个IP地址(123.203.0.0.)供其138台主机连入因特网,一年后,电子工程系的146台网络和艺术系的156台的局域网也想连入因特网,另外再申请2个IP地址块显然很浪费,而先期计算机科学系申请的IP地址还有很多空余的地址没有用,如何将这些空余的地址使用起来呢?我们需要一种不同的地址组织方式来解决这个问题,这就是我们这节课要讲的子网划分。子网划分的概念 在一个拥有多个物理网络的单位,将一个网络块分成几个部分供多个物理网络使用,但这个单位对外仍然表现为一个网络,这就是子网划分,分割一个大型网络得到的一系列小网络就称为子网。 子网划分技术是一种IP地址复用方式,它是将IP地址中原来的主机部分,我们也称之为本地部分,进一步划分为“物理网络”部分和“主机”部分,其中“物理网络”用于标识同一IP网络地址下的不同物理网络,即我们所说的“子网”。也就是说,网络号加上子网号后才能全局唯一地标识一个网络。子网和主机
B类地址的子网划分,B类地址的主机号共16位。
如果将主机地址的高7位作为子网地址,主机地址的低9位作为每个子网的主机号,这样就形成了该B类地址的子网地址表示形式:
B类子网地址.png
假定原来的B类网络地址为128.208.0.0,那么划分子网后,10000000 11010000 0000001 0 00000000 128.208.2.0表示第1个子网;10000000 11010000 0000010 0 00000000 128.208.4.0表示第2个子网;10000000 11010000 0000011 0 00000000 128.208.6.0表示第2个子网;…… 以此类推,在这个方案中,最多就可以有27-2=126个子网,减2的原因同我们上节课讲的类似,路由协议不支持全0或全1的子网地址,因此全0和全1的网段都不能使用。每个子网最多可以有29-2=510台主机。
子网掩码
在这个实际场景中,假定一个Ip数据包已到达主路由器,那么这个路由器是如何将它转发给相应的子网的呢? 我们知道一个32位的Ip地址(10000001 11010000 00000100 00111000)是无法看出来是否包含了有关子网的信息的,需要另外想办法,这就要使用“子网掩码”。 子网掩码一个ip地址,由2部分组成,前半部分由连续的1构成,后半部分由连续的0构成,1的数量是网络号和子网号的个数,0的数量是主机号的个数。
子网分析.pngA中是ip地址为128.208.6.10的主机本来的两级Ip地址结构B中的ip地址是这个两级Ip地址的子网掩码,255.255.0.0C中是ip地址为128.208.6.10的主机的三级Ip地址结构,也就是说从原来16位-主机中拿出7位作为子网号,主机号由16位减为9位;D中是ip地址这个三级Ip地址的子网掩码255.255.254.0,由23位的一连串的1和9位的一连串0构成;E图则是路由器把这个三级Ip地址的子网掩码255.255.254.0和收到的目的地址128.208.6.10逐位进行“与”And运算后得出的要找的子网网络地址128.208.6.0与运算
为了便于计算机运算,规定如果一个网络不划分子网,那么该网络的子网掩码就用默认子网掩码来表示,默认子网掩码中1的位置和Ip地址中的网络字段对应。
默认子网掩码.png
A类地址的默认子网掩码是255.0.0.0,B类地址的默认子网掩码是255.255.0.0,C类地址的默认子网掩码为255.255.255.0。
[例]已知Ip地址是141.14.72.24,子网掩码是255.255.192.0,试求该Ip地址所在的网络地址。 子网掩码是11111111 11111111 11000000 00000000,将这两个ip地址作与运算,因为子网掩码的前两个字节全为1,所以与运算后得前两个字节为141.14,只要对后2个字节进行与运算就可以了,得到网络地址141.14. 01000000 00000000,十进制为141.14.64.0进制转换 如果将上例中的子网掩码是255.255.224.0,试求该Ip地址所在的网络地址。通过同样的方法,可以得出网络地址为141.14.64.0这个例子说明同样的Ip地址和不同的子网掩码可以得出相同的网络地址,但是不同的子网掩码的效果是不同的。在例1中子网号是2位,主机号是14位;在例2种子网号是3位,主机号是13位,他们所划分的子网数和每一个子网中的主机数是不一样的。
那么我们又是如何通过子网掩码来判断两个主机是否属于同一子网呢? [例] 202.114.80.1主机号为00000001,202.114.80.16主机号为00010000,子网掩码为255.255.255.224,那么这两个主机是否属于同一个网段呢? 通过子网掩码我们知道,这是一个C类网络,所以同上面所讲,解决这个问题的关键也是看子网掩码的最后一个字节224。224的二进制形式为11100000,这说明前三位为子网号,后五位为主机号。而该题中的两个主机的最后一个字节的前三位均是000,由此可以说明它们属于同一子网,即他们之间的信息交换可不通过路由器。假如我们把第二个主机的IP地址换为202.114.80.130,也就是它的主机号为 10000010,前三位100与000不同,说明两者属于不同的子网,要交换的信息需要通过主路由器,在他们各自的子网上的主机号各为1和2。
B类子网划分.png
子网掩码决定了一个网络的子网数目和每个子网的主机数,还以B类地址为例,这个表说明了采用固定长度子网号位数后的子网数和主机数,子网数是根据子网号N计算得到的,为2N-2个,表中子网号位数中没有0,1,15,16这四种情况,因为这没有意义。可以看出如果使用较少位数的子网号,则每一个子网上可连接的主机数就较多;反之,如果使用较多位数的子网号,则子网数较多,但是每个子网上可连接的主机数就较少。因此我们可以根据网络的具体情况(一共需要划分多少个子网,每个子网中最多有多少主机)来选择合适的子网掩码。
子网划分子网掩码作用 充分利用IP地址,减少地址空间浪费。它可将一个网络划分为多个子网,增加了灵活性,便于网络管理。 便于网络设备尽快地区分本子网地址和非本子网的地址。用来判断任意两个IP地址是否属于同一子网,这时只有在同一子网的计算机才能”直接”互通。
划分子网问题 解决该类问题的核心在于:划分子网时,子网位数不同,可划分的子网数就不同,每个子网可用子网主机数也不同。
C类子网划分.png
表中列举出来了使用固定长度子网的B类地址的子网划分选择,这是使用固定长度子网的C类地址的子网划分选择。
从C类地址子网划分表中可以看出,假设需要将一个网络划分为12个子网,这时子网号位数就应该为4位,子网掩码为255.255.255.240,可以将整个网络划分为14可用的子网。
例:有3个局域网,主机数量分别是38、46、56,均少于C类地址允许的最大主机数256。那么为这3个局域网申请3个C类IP地址显然有些浪费。假设我们只申请了一个C类地址202.207.175.0,请问如何划分子网能够满足需求。 1.从问题中知道,需要将整个网络划分成至少3个子网,这样只有将子网位数设为2时,才能够满足需求,也就是说可以有4个子网,子网掩码为255.255.255.192; 2.划分为4个子网后,因为子网号占2位,所以主机号占6位,每个子网中的可用主机数为62台,满足题目中3个子网中的主机数要求; 3.为每个子网规划网络地址。 第一个局域网的IP地址范围为202.207.175.0-202.207.175.63,子网掩码为255.255.255.192; 第二个局域网的IP地址范围为202.207.175.64-202.207.175.127,子网掩码为255.255.255.192; 第三个局域网的IP地址范围为202.207.175.128-202.207.175.191,子网掩码为255.255.255.192。
例:南京理工大学经管院被分配了一个C类网络地址,网络号为192.168.10.0,现在需要将其划分为三个子网,其中一个子网(3楼学生机房)有100台主机,其余的两个子网(机关用子网、教师用子网)各有50台主机。如何合理使用这个C类网络地址呢? 1.按照上一题的解题思路,我们会发现,当我们将子网位数设为2,子网掩码为255.255.255.192时,可以有4个子网;但是每个子网中的可用主机数为62台,能够满足机关用子网、教师用子网的主机数要求,但是不能满足学生用子网的主机数要求,也就是说,在所有子网中都使用一个子网掩码时这一问题是无法解决的。 2.当将子网位数设为1,子网掩码为255.255.255.128时,可以有2个子网,每个子网中的可用主机数为126台,能够满足学生用子网的主机数要求; 3.考虑子网划分的思路:先将整个网络分为2个子网(子网号位数设为1),一个子网分配给学生用子网用;让后再将第二个子网进一步划分成2个子网(子网号位数设为2),分配给机关用子网、教师用子网。 4.为每个子网规划网络地址: 学生用子网的IP地址范围为192.168.10.128——192.168.10.255,子网掩码为255.255.255.128; 机关用子网的IP地址范围为192.168.10.0——192.168.10.63,子网掩码为255.255.255.192; 教师用子网的IP地址范围为192.168.10.64——192.168.10.127,子网掩码为255.255.255.192。 当划分了子网后,路由器中转发分组的算法也必须要做相应的改动。
在划分子网的情况下,路由器转发分组的情况子网下的路由器分组转发.png
图中所示的有3个子网,以及路由器R1中的部分路由表。现在源主机H1项目的主机H2发送分组数据,分析R1受到H1向H2发送的分组后查找路由表的过程。
1.源主机H1向目的主机H2发送的分组的目的地址是H2的Ip地址128.30.33.138;2.源主机H1首先要进行的操作是判断:发送的这个分组,是在本子网1上直接进行交付?还是要通过本子网1上的路由器R1进行间接交付?3.源主机H1把本子网1的“子网掩码255.255.255.128”与目的主机H2的“Ip地址128.30.33.138”进行“与”运算,得出128.30.33.128,它不等于H1的网络地址128.30.33.0,这说明H2与H1不在同一个子网上。因此H1不能把分组数据直接交付给H2,而必须要交给H1所在的子网1上的默认路由器R1,由R1来转发。4.路由器R1收到这个分组后,就在其路由表中逐行寻找有无匹配的网络地址。5.先看R1路由表中的第一行,用这一行的“子网掩码255.255.255.128”和收到的分组的“目的地址128.30.33.138”进行“与”运算,得出128.30.33.128,然后和这一行给出的目的网络地址128.30.33.0进行比较,两者不一致。6.用同样的方法继续往下找第二行。用第二行的“子网掩码255.255.255.128”和收到的分组的“目的地址128.30.33.138”进行“与”运算,得出128.30.33.128,然后和这一行给出的目的网络地址128.30.33.128进行比较,两者一致,说明这个子网2就是这个分组所要寻找的目的网络。7.不再继续查找下去,R1把分组从接口1直接交付给主机H2(它们在同一个子网2上)。