• 【TCP/IP】入门学习笔记 五


    专业术语

    CIDR:无类别域间路由。这种技术可以让一个网络ID块被当作一个整体。

     

    子网:对TCP/IP网络ID定义的地址空间进行逻辑划分。

     

    子网掩码:一个32位的二进制值,用于指定IP地址中的一部分作为子网ID。

     

    超网掩码:一个32位的二进制值,能够把多个连续网络ID聚合为一个整体。

     

     

    原理图解

    一、子网划分

    地址分类系统让所有的主机能够识别IP地址中的网络ID,从而把数据报发送给正确的网络。但是,根据A类、B类或C类网络ID来识别网段具有一些局限性,主要是在网络级别之下不能对地址空间进行任何逻辑细分。

    如图所示为一个A类网络。数据报到达网关,然后传输到99.0.0.0地址空间。但如果要考虑它在这个地址空间中是如何传递的,这个图示就会变得非常复杂,因为A类网络能够容纳超过1600万台主机。这个网络也许包含数百万主机,这大大超过了在一个子网上容纳的数量。

     

     

    为了在大型网络里实现更高效的数据传输,地址空间被划分为较小的网段(见图)。把网络划分为独立的物理网络能够增加网络的整体性能,也就能够让网络使用更大的地址空间。在这种情况下,在地址空间里划分网段的路由器需要适当的指示来决定把数据传输到哪里。它们不能使用网络ID,因为传输到这个网络的数据报具有相同的网络ID(99.0.0.0)。尽管可以利用主机ID来组织地址空间,但是对于能够容纳超过1600万台主机的网络来说,将会是很麻烦、非常不灵活、完全不实用的。唯一可行的解决办法是在网络标ID下对地址空间进行某种细分,让主机和路由器能够根据IP地址判断应该把数据发送到哪个网段。

     

     

    子网划分就是在网络ID之下提供了第2层逻辑组织。路由器能够把数据报发送给网络里的某个子网地址(一般对应于一个网段),而当数据报到达子网之后,就会被ARB解析为物理地址。

    那么子网地址从何而来呢,32位的IP地址不是被划分为网络ID和主机ID了吗?TCP/IP的设计者借用了主机ID里的一些位来形成子网地址。一个名为子网掩码的参数指明了地址中多少位用于子网ID、保留多少位作为实际的主机ID。

    像IP地址一样,子网掩码也是个32位的二进制值,它的形式能够说明与之相关的IP地址的子网ID。上图所示为一个IP地址/子网掩码对。子网掩码里的每一位代表IP地址中的一个位,用1表示IP地址中属于网络ID或子网ID的位,用0表示IP地址里属于主机ID的位。我们可以把子网掩码看作阅读IP地址的映射。和非子网网络上地址位的对比。

    在子网网络上,路由器和主机所使用的路由表包含了与每个IP地址相关的子网掩码信息(有关路由的信息,请见第8章)。从图5.5可以看出,数据报根据网络ID被路由到目标网络,而这个网络ID是由地址类别决定的。当数据报到达目标网络之后,它根据子网ID路由到合适的网段。在到达这个网段之后,再根据主机ID传输到正确的计算机。

    二、使用子网

    子网掩码决定了网络ID之后有多少位是作为子网ID的。子网ID的长度不是固定的,取决于子网掩码的值。子网ID越长,留给主机ID的位数越少。换句话说,如果网络有很多子网,每个子网上的主机容量就会减少;如果子网数量较少,而且子网ID占据的位数也较少,每个子网的主机容量就会增加。

    地址类别也决定了子网ID占用使用多少位。

    比如掩码11111111111111111110000000000000。 

    指定了网络ID与子网ID一共占据了19位。如果这个掩码用于一个B类地址(网络ID为16位),那么子网ID就只有3位。如果它用于A类地址(网络ID为8位),子网ID就有11位。

    下面是一个简单的示例。这里是一个B类网络,它的第3个八位组(在点分十进制IP地址中是第3个数值)被用作子网ID。在图5.6中,网络129.100.0.0被划分为4个子网。分配的子网掩码是255.255.255.0,表示网络ID和子网掩码占据了IP地址中的3个八位组。由于这个地址是个B类地址,地址中的前两个八位组是网络ID。

    因此图中的子网A具有如下参数。

    网络ID:129.100.0.0

    子网ID:0.0.128.0

    0或全1的主机ID是不能分配的,因此,图5.6所示的配置支持最多254个子网,每个子网最多容纳254台主机。在能够使用B类网络地址(已经越来越难获得了)并且任何子网不会超过254台主机时,这是一种相当明智的解决方案。

     

     

     

    例如,我们要把一个C类网络划分为5个较小的子网。这类地址给子网ID和主机ID只剩下了8位,我们使用下面这样的子网掩码让子网ID占据3位:

    11111111111111111111111111100000

    剩下的5位用于主机ID。

     

    子网ID的3位能够提供8种不同值。前面讲到,正式的子网规则排除了全1和全0的组合(虽然很多路由器支持分配全1或全0的子网ID)。无论何种情况,这种配置对于6个子网都够用了。主机ID占据的5位能够提供32种可能值,排除了全1和全0的组合之后,子网最多可以容纳30台主机。

     

    为了以点分十进制形式表示这个子网掩码,可以按照前面介绍的步骤进行。

    1.插入句点来标记八位组的边界:11111111.11111111.11111111.11100000

    2.全1的八位组对应于255,把混合八位组转化为十进制:128+64+32=224

    3.这个子网掩码的点分十进制形式是255.255.255.224。

     

    假定在这个子网网络中添加主机(见图),由于这个网络是C类网络,前3个八位组对所有的主机而言都是相同的。为了得到IP地址的第4个八位组,只需在相应位置写下二进制子网ID和主机ID。比如在图5.7中,子网C的子网ID是011,由于这个值位于八位组的最左侧,因此子网标识实际上是01100000,相应的十进制数值是96。如果主机是17(二进制10001),第4个八位组就是01110001,相应的十进制数值是113,那么这台主机的IP地址就是212.114.32.113。

     

     

    三、子网掩码十进制形式与二进制形式的对应关系

     

    中的一些掩码只是用于解释其用途,没有实用价值。比如C类网络如果使用了6位的子网ID,就只剩下2位用于主机ID了。而在这2位中,全1地址(11)保留用于广播,全0地址(00)通常是不使用的。因此这个子网只能容纳两台主机。

     

    四、CIDR无类别域间路由

    A类地址已经耗尽,B类地址也很快用完了,C类地址还有剩余,但它的地址空间比较小(最多254台主机),这对于ISP是个限制。当然,我们可以向需要包含超过254台主机的网络所有者分配多个C类地址,但是把属于同一个网络的多个C类地址分别管理只会让路由表产生不必要的混乱。

      

    地址分类系统相对而言不够灵活,需要使用子网划分系统来更细致地控制地址空间。而无类别域间路由(CIDR)在路由表中定义地址块时更容易修改,更具有灵活性。这种技术不依赖于预定义的8位、16位或24位网络ID,而是使用一个名为CIDR前缀的值指定地址中作为网络ID的位数。这个前缀有时也被称为变长子网掩码(VLSM)。这个前缀可以位于地址空间的任何位置,让管理者能够以更灵活的方式定义子网,以简便的形式指定地址中网络ID部分与主机ID部分。CIDR标记使用一个斜线(/)分隔符,后面跟一个十进制数值来表示地址中网络部分所占的位数。例如,在CIDR地址205.123.196.183/25中,/25表示地址中25位用于网络ID,相应的子网掩码就是255.255.255.128。

     

    CIDR前缀就是表明了IP地址中前面的多少位对于网络里的全部主机来说是一样的。CIDR一个强大的特性是是不仅能够对网络划分子网,还让ISP或管理员能够把多个连续C类网络聚合或组合为一个实体。这种特性极大地简化了网际路由表,从而延长了IPv4的生命。出租一系列连续C类网络的ISP只需要一个条目就可以定义全部网络。在这种情况下,CIDR前缀发挥了所谓超网掩码的作用。

     

    例如,一个ISP可以分配204.21.128.0(11001100000101011000000000000000)~204.21.255.255(11001100000101011111111111111111)的全部C类地址。

      

    这些网络地址的前17位是一样的,因此,超网掩码是11111111111111111000000000000000,相应的点分十进制形式是255.255.128.0。超网掩码中0对应的位确定了地址块的范围,因此,支持CIDR的路由表可以只使用一个CIDR条目204.21.128.0/17来引用这段地址的全部范围。该条目适用于与地址204.21.128.0的前17位匹配的所有地址。

    *个人理解:CIDR就是按区间划分网段,根据长子网掩码来划分区域,形成一个子网区间

    ----------------------------------------------------------------------

    笔记整理自《TCP/IP入门经典(第5版)》感兴趣可以购买或者下载电子书

    ----------------------------------------------------------------------

    得意时做事,失意时读书
  • 相关阅读:
    【C#】ArcFace2 视频人脸比对教程
    C#二次封装虹软arc研究
    【Linux】Face Recognition的封装
    人脸识别 ArcFace Demo [Windows]
    Python创建一个简单的区块链
    Mac更新系统后提示xcrun error
    Hyperledger Fabric开发(二):创建网络
    Hyperledger Fabric开发(一):环境配置
    mac OS和win7笔记本实现文件共享
    代码行数统计的Java和Python实现
  • 原文地址:https://www.cnblogs.com/lanse1993/p/12560602.html
Copyright © 2020-2023  润新知