且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

【计算机网络】网络层 : 子网划分 ( 三级 IP 地址 | 子网划分 | 子网掩码 | 子网掩码计算示例 | 子网的分组转发 )★

更新时间:2021-09-02 12:35:51

文章目录

一、分类 IP 地址缺点

二、子网划分

三、子网掩码

四、子网掩码作用

五、子网掩码 示例1

六、子网掩码 示例2

七、子网掩码 示例3

八、子网 的 分组转发





一、分类 IP 地址缺点


IP 地址分类 :


A AA 类 : 网络号占 1 11 字节 , 第一位是 0 00 ;


B BB 类 : 网络号占 2 22 字节 , 前两位是 10 1010 ;


C CC 类 : 网络号占 3 33 字节 , 前三位是 110 110110 ;


D DD 类 : 网络号占 4 44 字节 , 前四位是 1110 11101110 , 该类地址是多播地址 ;


E EE 类 : 前四位是 1111 11111111 , 暂时没有启用 , 保留 ;



分类 IP 地址缺点 :


① IP 地址的空间利用率很低 ;


② 两级 IP 地址灵活性差 ;






二、子网划分


子网划分 :


① 二级 IP 地址 : 网络号 + 主机号 ;


② 三级 IP 地址 : 子网划分中 , 在主机号中 , 拿出一部分地址 , 作为子网号 , 那么子网划分 IP 地址组成是 : 网络号 + 子网号 + 主机号 ; 其中 子网号 + 主机号 , 相当于 二级 IP 地址中的主机号 ;




三级 IP 地址 :


① 子网划分对外透明 : 划分子网后, 对外仍然表现为一个网络 , 外部是不知道内部子网划分的详细信息的 ;


② 主机号位数 : 主机号 至少要留下 两位 , 因为如果留下 一位 , 只能取值 0 00 或 1 11 , 这两位都是不可使用的 , 一个代表网络, 一个代表广播地址 ;


③ 子网号 : 是否能够设置成全 0 00 , 或者 全 1 11 , 看前提情况 ;


④ 主机号 : 不能设置成 全 0 00 , 全 1 11 ;






三、子网掩码


两级 IP 地址 : 网络号 + 主机号 ; 如 : 145.13.3.10 145.13.3.10145.13.3.10 ; 其中 145.3 145.3145.3 是网络号 , 3.10 3.103.10 是主机号 ;


子网掩码 : 网络号对应位数全部设置成 1 11 , 主机号对应的位数 , 全部设置成 0 00 ; 上述 两级 IP 地址对应的子网掩码是 11111111 11111111 00000000 00000000 11111111 \quad 11111111 \quad 00000000 \quad 0000000011111111111111110000000000000000 , 写成点分十进制就是 255.255.0.0 255.255.0.0255.255.0.0 ;




三级 IP 地址 : 网络号 + 子网号 + 主机号 ; 如 145.13.3.10 145.13.3.10145.13.3.10 ; 其中 145.3 145.3145.3 是网络号 , 3 33 是子网号 , 10 1010 是主机号 ;


子网掩码 : 网络号 和 子网号 对应位数全部设置成 1 11 , 主机号对应的位数 , 全部设置成 0 00 ; 上述 两级 IP 地址对应的子网掩码是 11111111 11111111 11111111 00000000 11111111 \quad 11111111 \quad 11111111 \quad 0000000011111111111111111111111100000000 , 写成点分十进制就是 255.255.255.0 255.255.255.0255.255.255.0 ;






四、子网掩码作用


子网掩码作用 : 计算 目的地址 的网络地址 ;


拿到一个 目的地址 , 将目的地址 与 子网掩码 进行与运算 , 就可以得到子网网络地址 ;



常用的二进制数据 :


二进制 1000 0000 1000 \quad 000010000000 对应十进制 128 128128

二进制 1100 0000 1100 \quad 000011000000 对应十进制 192 192192

二进制 1110 0000 1110 \quad 000011100000 对应十进制 224 224224

二进制 1111 0000 1111 \quad 000011110000 对应十进制 240 240240

二进制 1111 1000 1111 \quad 100011111000 对应十进制 248 248248

二进制 1111 1100 1111 \quad 110011111100 对应十进制 252 252252

二进制 1111 1110 1111 \quad 111011111110 对应十进制 254 254254

二进制 1111 1111 1111 \quad 111111111111 对应十进制 255 255255





五、子网掩码 示例1


IP 地址 141.14.72.24 141.14.72.24141.14.72.24 , 子网掩码是 255.255.192.0 255.255.192.0255.255.192.0 , 求对应的网络地址 ?



① 子网掩码 前两位 是 255 255255 , 141.14 141.14141.14 与 255.255 255.255255.255 与运算结果是 141.14 141.14141.14 ;


② 子网掩码最后一位是 0 00 , 因此 24 2424 与 0 00 相与后 , 结果是 0 00 ;


③ 只需要计算第三位 72 7272 与 192 192192 相与的结果 :


( 0100 1000 ) & ( 1100 0000 ) = 0100 0000 (0100 \quad 1000 ) \quad \& \quad (1100 \quad 0000) = 0100 \quad 0000(01001000)&(11000000)=01000000


转为十进制后为 64 6464 ;



网络地址为 : 141.14.64.0 141.14.64.0141.14.64.0 ;






六、子网掩码 示例2


IP 地址 141.14.72.24 141.14.72.24141.14.72.24 , 子网掩码是 255.255.224.0 255.255.224.0255.255.224.0 , 求对应的网络地址 ?



① 子网掩码 前两位 是 255 255255 , 141.14 141.14141.14 与 255.255 255.255255.255 与运算结果是 141.14 141.14141.14 ;


② 子网掩码最后一位是 0 00 , 因此 24 2424 与 0 00 相与后 , 结果是 0 00 ;


③ 只需要计算第三位 72 7272 与 224 224224 相与的结果 :


( 0100 1000 ) & ( 1110 0000 ) = 0100 0000 (0100 \quad 1000 ) \quad \& \quad (1110 \quad 0000) = 0100 \quad 0000(01001000)&(11100000)=01000000


转为十进制后为 64 6464 ;



网络地址为 : 141.14.64.0 141.14.64.0141.14.64.0 ;




255.255.224.0 255.255.224.0255.255.224.0 子网掩码 与 255.255.192.0 255.255.192.0255.255.192.0 子网掩码对比 :


255.255.192.0 255.255.192.0255.255.192.0 子网掩码中 , 192 192192 对应的二进制数为 1100 0000 1100 \quad 000011000000 , 其中有 6 66 位是主机号 , 加上剩余的最后 1 11 字节 , 主机号共有 14 1414 位 ;

255.255.224.0 255.255.224.0255.255.224.0 子网掩码中 , 224 224224 对应的二进制数为 1110 0000 1110 \quad 000011100000 , 其中有 5 55 位是主机号 , 加上剩余的最后 1 11 字节 , 主机号共有 13 1313 位 ;





七、子网掩码 示例3


主机 IP 地址是 180.80.77.55 180.80.77.55180.80.77.55 , 其子网掩码是 255.255.252.0 255.255.252.0255.255.252.0 , 写出该主机所在的子网的广播地址 ;



广播地址 , 网络号正常 , 主机号都是 1 11 ;


先求出其网络号 , 然后设置全 1 11 的主机号 ;



主机地址 180.80.77.55 180.80.77.55180.80.77.55 与 子网掩码 255.255.252.0 255.255.252.0255.255.252.0 进行与运算 , 就可以得到其子网号 ;


77 & 252 = 0100   1101 & 1111   1100 = 0100   1100 77 \& 252 = 0100 \ 1101 \& 1111 \ 1100 =0100 \ 110077&252=0100 1101&1111 1100=0100 1100


将 0100   1100 0100 \ 11000100 1100 转为十进制是 76 7676 ;



网络号是 : 180.80.76.0 180.80.76.0180.80.76.0


广播地址 : 将主机号都设置为 1 11 , 即可得到 广播地址是 : 180.80.79.255 180.80.79.255180.80.79.255






八、子网 的 分组转发


路由表 : 每个路由器中都有一个路由表 , 如果划分了子网 , 那么每个路由表都包含以下内容 :


① 目的网络地址 ;


② 目的网络 子网掩码 ;


③ 下一跳地址 : 下一跳的路由器地址 , 接口 ;




路由器 转发分组 算法 :


① 提取 IP 地址 : 从 IP 分组中 , 提取 目的 IP 地址 ;


② 查看是否可以直接交付 : 直接交付就是直接将分组交给连接该路由器的主机 ; 间接交付 是 路由器是子网的子网 , 需要经过多个路由器才能交付 ;


③ 特定主机路由 : 路由表中 , 定了该目的 IP 地址的路由路径 , 直接按照该路径交付分组 ;


④ 检测路由表中有无路径 : 路由器所连接的所有的子网 , 使用 目的 IP 地址 与 子网掩码 与运算 , 检查该 目的 IP 地址属于哪个子网 ;


⑤ 默认路由 : 0.0.0.0 0.0.0.00.0.0.0 , 前面的步骤都没有找到目的主机 , 此时就交给默认路由 , 默认路由就会发给另外的路由器, 继续循环执行上面步骤 , 如果分组在生存时间内没有交付 , 就会报告出错 ;