avatar

目录
子网划分和子网掩码计算方法

子网划分

子网划分 是通过借用IP地址中若干位主机地址来充当子网的网络地址,从而将原网络划分为若干子网。

为什么划分子网

  • IP地址空间的利用率有时候不高

举个例子:在A类IP地址中,每个A类网络可能有16777214台主机,它们处于同一广播域。在同一广播域中有这么多主机是不可能的,网络会因为广播通信而饱和,因此要划分子网减少不必要的网络流量 (优化网络性能)

  • 两级IP地址不够灵活

IP地址资源越来越少,WAN链路比LAN链路的速度慢得多,且更昂贵;如果纯粹用大跨度的大型网络,进行流量数据交互,利用率不高。
因此为实现更小的广播域 (提高系统效率),就需要进一步分成更小的网络。划分子网后,通过使用掩码,把子网隐藏起来,使得从外部看网络没有变化,这就是子网掩码。

当某个单位划分子网后,对外仍然 表现为一个网络 ,除本单位之外的网络看不见本单位的子网划分。

子网分类

划分子网时,随着子网地址借用主机位数的增多,子网的数目随之增加,但每个子网中的可用主机数逐渐减少。
C类地址,原有8位主机位,$2^8$-2即254个主机地址,默认子网掩码255.255.255.0。(全0或全1不可用)
借用1位主机位,产生$2^1$=2个子网,每个子网有$2^7$个主机地址;
借用2位主机位,产生$2^2$=4个子网,每个子网有$2^6$个主机地址;

具体如下图
test

明确子网划分的需求

  • 确定需要的网络ID数:

    • 每个LAN子网一个;
    • 每条广域网连接一个。
  • 确定每个子网所需的主机数:

    • 每个TCP/IP主机一个;
    • 每个路由器接口一个。
  • 需要一个用于整个网络的子网掩码;

    • 每个物理网段的唯一子网ID;
    • 每个子网的主机范围。

子网掩码

概述及作用

  1. 子网掩码是一个应用于TCP/IP网络的32位二进制值,每节8位,必须结合IP地址对应使用。
  2. 子网掩码32位都与IP地址32位对应,如果某位是网络地址,则子网掩码为1,否则为0。
  3. 子网掩码可以通过与 IP地址"与"计算,分离出IP地址中的网络地址和主机地址,用于判断该IP地址是在局域网上,还是在广域网上。
  4. 子网掩码一般用于将网络进一步划分为若干子网,以避免主机过多而拥堵或过少而IP浪费。(上面也提到了)

test

为什么要使用子网掩码

子网掩码可以分离出IP地址中的网络地址和主机地址,那为什么要分离呢?因为两台计算机要通讯,首先要判断是否处于同一个广播域内,即网络地址是否相同。如果网络地址相同,表明接受方在本网络上,那么可以把数据包直接发送到目标主机,否则就需要路由网关将数据包转发送到目的地。


子网掩码的分类

缺省子网掩码:

(未划分子网)
子网掩码32位与IP地址32位对应,如果某位是网络地址,则子网掩码为1,否则为0。
例如A类IP地址,第一节为网络地址,其余三节为主机地址
故掩码为11111111.00000000.00000000.00000000

A类网络 缺省子网掩码:255.0.0.0
B类网络 缺省子网掩码:255.255.0.0
C类网络 缺省子网掩码:255.255.255.0

自定义子网掩码:

将一个网络划分为若干子网,希望每个子网拥有不同的网络地址或子网地址。因为IP是有限的,实际上我们是将主机地址分为两个部分:子网网络地址、子网主机地址。形式如下:
未做子网划分的ip地址:网络地址+主机地址
做子网划分后的ip地址:网络地址+(子网网络地址+子网主机地址)

子网掩码和ip地址的关系

设IP地址为192.168.10.2,子网掩码为255.255.255.240,那么子网掩码是怎样来区分网络地址和主机地址的呢。

主机地址为:0.0.0.2(将掩码取反,然后与IP地址进行与运算)

与运算:对应位全是 1 结果为 1 ,否则为 0
或运算:对应位全是 0 结果为 0, 否则为 1


子网掩码习题

例 1

已知IP地址是 141.14.72.24, 子网掩码是 255.255.192.0 求网络地址

解答

首先通过子网掩码和IP地址进行与运算,可以推断网络地址为 141.14.xx.0

然后只需要知道 72192 的二进制
首先 72 = 0100 1000
然后 192= 1100 0000
进行与运算可以得到 0100 0000 = 64

同时可以知道 1100 0000 子网号占了 2 个位,剩下14(6+8)位为主机号,即有 $2^{14}$ 个主机

主机号全 0 表示这个网络段本身称之为: 网络号
主机号全 1 的地址称之为: 广播地址

然后写个表,用来记一下常规数据的二进制
|二进制|十进制|
|:—-:|—:|
|1000 0000|128|
|1100 0000|192|
|1110 0000|224|
|1111 0000|240|
|1111 1000|248|
|1111 1100|252|
|1111 1110|254|
|1111 1111|255|


例题2

某主机的 IP地址180.80.77.55,子网掩码为 255.255.252.0。若该主机向其所在的子网发送广播分组,则目的地址可以为

A. 180.80.76.0
B. 180.80.76.255
C. 180.80.77.255
D. 180.80.79.255

解答

首先值得注意是向子网发送 广播分组
广播分组 即为 广播地址 也就是主机号全 1

因此可以首先排除A选项,然后可以关注到子网掩码的第三个位置是 252
由上面的表可以知道二进制编码为 1111 1100
也就是说前面共有 8+8+6=22 位为 网络号+子网号 后面的 10位 为主机号
然后看 IP地址 180.80.77.55
77 = 0100 1101
可以判断主机所在的子网号为 180.80.76.xxx
然后因为要找的是目的地址,所以所有的主机号都要为 1,所以第三位ip应该变成 0100 1111 即为 76+3=79,所以答案选 D


路由器转发分组的算法

提取目的IP地址

从分组的首部提取目的IP地址 D

是否直接交付

先用与该路由器直接相连的网络的子网掩码与IP地址 D 进行与运算,看结果是否与相应的网络,地址相匹配。若匹配,则进行直接交付。否则就是间接交付,马上执行下一步

特定主机路由

若路由表中有一条到目的主机 D 的特定路由,则将分组转发给其指明的下一跳路由器。否则执行下一步

检测路由表中有无路径

对路由表中每一行的子网掩码和D进行与运算,若结果与该行的目的网络地址匹配,则将分组传给该行指明的下一跳路由器。否则执行下一步

默认路由 0.0.0.0

若路由表中有一个默认路由,则将分组传给路由表中指明的默认路由器。
否则执行最后一步

丢弃

报告转发分组出错

文章作者: 晓黑
文章链接: https://www.suk1.top/2020/03/06/ip%E5%AD%90%E7%BD%91%E5%88%92%E5%88%86/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Manayakko - 微笑才是王道
打赏
  • 微信
    微信