【计算机网络】网络层 : 总结 ( 功能 | 数据交换 | IP 数据报 | IPv4 地址 | IPv6 地址 | 路由选择协议 | 路由算法 )★★★(二)

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介: 【计算机网络】网络层 : 总结 ( 功能 | 数据交换 | IP 数据报 | IPv4 地址 | IPv6 地址 | 路由选择协议 | 路由算法 )★★★(二)

四、 IPv4 地址 ★★


1 . IP 地址 发展 :


第一阶段 : 分类的 IP 地址


第二阶段 : 子网的划分


第三阶段 : 构成超网 , 无分类编址方法




2 . 分类 IP 地址


IP 地址 : 由 4 44 字节构成 , 表示路由器主机的接口 ;


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 , 暂时没有启用 , 保留 ;


image.png




A AA 类网络 IP 地址 :


① 最大可用的网络数 : 2 7 − 2 2^7 - 22

7

−2 , 网络号 1 11 字节 , 第一位必须是 0 00 , 可以设置 7 77 位 ; 网络号全 0 00 , 即 0.0.0.0 0.0.0.00.0.0.0 指的是本网络 ; 网络号 127 127127 是环回地址 , 也是不能使用的 ; 因此减去 2 22 个不能使用的网络号 ;


② 网络号取值 : 1 11 ~ 126 126126 ;


③ 最大主机数 : 2 24 − 2 2^{24} - 22

24

−2 , 主机号 3 33 字节 , 有 24 2424 位 ; 主机号全 0 00 表示的是本网络号 , 不能支配给主机 ; 主机号全 1 11 表示广播地址 , 不能分配给指定主机 ; 因此减去 2 22 个不能使用的主机号 ;



B BB 类网络 IP 地址 :


① 最大可用的网络数 : 2 14 − 1 2^{14} - 12

14

−1 , 网络号 2 22 字节 , 前两位必须是 10 1010 , 可以设置 16 − 2 = 14 16-2=1416−2=14 位 ; 网络号全 0 00 , 即 128.0 128.0128.0 指的是本网络 ; 因此减去 1 11 个不能使用的网络号 ;


② 网络号取值 : 128.1 128.1128.1 ~ 191.255 191.255191.255 ;


③ 最大主机数 : 2 16 − 2 2^{16} - 22

16

−2 , 主机号 2 22 字节 , 有 16 1616 位 ; 主机号全 0 00 表示的是本网络号 , 不能支配给主机 ; 主机号全 1 11 表示广播地址 , 不能分配给指定主机 ; 因此减去 2 22 个不能使用的主机号 ;



C CC 类网络 IP 地址 :


① 最大可用的网络数 : 2 21 − 1 2^{21} - 12

21

−1 , 网络号 3 33 字节 , 前两位必须是 110 110110 , 可以设置 24 − 3 = 21 24-3=2124−3=21 位 ; 网络号全 0 00 , 即 192.0.0 192.0.0192.0.0 指的是本网络 ; 因此减去 1 11 个不能使用的网络号 ;


② 网络号取值 : 192.0.1 192.0.1192.0.1 ~ 223.255.255 223.255.255223.255.255 ;


③ 最大主机数 : 2 8 − 2 2^{8} - 22

8

−2 , 主机号 1 11 字节 , 有 8 88 位 ; 主机号全 0 00 表示的是本网络号 , 不能支配给主机 ; 主机号全 1 11 表示广播地址 , 不能分配给指定主机 ; 因此减去 2 22 个不能使用的主机号 ;



参考博客 : 【计算机网络】网络层 : IPv4 地址 ( IP 地址分类 | 特殊 IP 地址 | 私有 IP 地址 | A 类、B 类、C 类 IP 地址网络号主机号数量 )★




3 . NAT 转换


私有 IP 地址 : 只适用于在内部网络中使用 , 在互联网上使用私有 IP 地址 , 路由器并不识别这些 IP 地址 ;


A AA 类 私有 IP 地址 : 10.0.0.0 10.0.0.010.0.0.0 ~ 10.255.255.255.255 10.255.255.255.25510.255.255.255.255 , 有 1 11 个网段 , 即可分配 1 11 个网络号 ;

B BB 类 私有 IP 地址 : 172.16.0.0 172.16.0.0172.16.0.0 ~ 172.31.255.255 172.31.255.255172.31.255.255 , 有 16 1616 个网段 , 即可分配 16 1616 个网络号 ;

C CC 类 私有 IP 地址 : 192.168.0.0 192.168.0.0192.168.0.0 ~ 192.168.255.255 192.168.255.255192.168.255.255 , 有 256 256256 个网段 , 即可分配 256 256256 个网络号 ;


路由器 不转发 私有 IP 地址 的 目的地址 ;



NAT 转换表 : 每个 LAN 局域网 IP 地址 : 端口号 , 与 WAN 广域网 IP 地址 : 端口号 的对应关系 ;



NAT 转换表 对应示例 :


WAN 广域网地址 172.38.1.5 : 44444 172.38.1.5:44444172.38.1.5:44444 , 对应 LAN 局域网地址 192.168.0.3 : 22222 192.168.0.3:22222192.168.0.3:22222 ;

WAN 广域网地址 172.38.1.5 : 44445 172.38.1.5:44445172.38.1.5:44445 , 对应 LAN 局域网地址 192.168.0.2 : 11111 192.168.0.2:11111192.168.0.2:11111 ;


参考博客 : 【计算机网络】网络层 : NAT 网络地址转换 ( 私有 IP 地址不被路由器转发 | NAT 转换表 )




4 . 子网划分


子网划分 :


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


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




三级 IP 地址 :


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


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


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


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




5 . 子网掩码


两级 IP 地址 : 网络号 + 主机号 ; 如 : 145.13.3.10 145.13.3.10145.13.3.10 ; 其中 145.13 145.13145.13 是网络号 , 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.13 145.13145.13 是网络号 , 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 ;


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




6 . 子网掩码 计算示例


1 . 示例 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 . 示例 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 . 示例 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 地址 | 子网划分 | 子网掩码 | 子网掩码计算示例 | 子网的分组转发 )




7 . CIDR 无分类编址


1 . CIDR 发展


无分类编址 CIDR 发展 : “无分类编址” 又称为 “无分类域间路由选择” ;


① 分类 IP 地址 : 原来的 分类 IP 地址 , A 类 , B 类 , C 类 , IP 地址组成 : 网络号 + 主机号 ;


② 子网划分 IP 地址 : 在 分类 IP 地址基础上 , 划分子网 , IP 地址组成 : 网络号 + 子网号 + 主机号 ;


③ 无分类编址法 : 由 网络前缀 + 主机号 组成 ;




2 . CIDR 地址记法



无分类域间路由选择 CIDR 记法 : IP 地址后面加上 “/” , 表示网络前缀的长度 ;


如 : 128.14.35.7 / 20 128.14.35.7/20128.14.35.7/20 , 表示该 IP 地址 , 前 20 2020 位 是网络前缀 ;



CIDR 地址块 : CIDR 将 网络前缀 相同的 , 连续的 , IP 地址 , 组成一个 “CIDR 地址块” ;


CIDR 地址块相关计算 : 上述示例中 , 128.14.35.7 / 20 128.14.35.7/20128.14.35.7/20 地址 , 是某个 CIDR 地址块中的地址 , 根据该地址可以得到该 CIDR 地址块 , 以及计算出该地址块的 最大地址 和 最小地址 ;



① 先将 128.14.35.7 / 20 128.14.35.7/20128.14.35.7/20 地址转为 二进制 形式 ;


10000000 00001110 00100011 00000111 10000000 \quad 00001110 \quad 00100011 \quad 0000011110000000000011100010001100000111


前 20 2020 位是 网络前缀 , 为 :


10000000 00001110 0010 10000000 \quad 00001110 \quad 001010000000000011100010



② 地址块地址 : 二进制形式如下 :


10000000 00001110 0010 10000000 \quad 00001110 \quad 001010000000000011100010 0000 00000000 0000 \quad 00000000000000000000


转为十进制为 :


128.14.32.0 / 20 128.14.32.0/20128.14.32.0/20



③ 最小地址 : 最小地址就是 主机号 全 0 00 ; 也就是地址块地址 ;


10000000 00001110 0010 10000000 \quad 00001110 \quad 001010000000000011100010 0000 00000000 0000 \quad 00000000000000000000



④ 最大地址 : 最大地址就是 主机号 全 1 11 ;


10000000 00001110 0010 10000000 \quad 00001110 \quad 001010000000000011100010 1111 11111111 1111 \quad 11111111111111111111



⑤ 子网掩码 : 又称为 “地址掩码” , 网络前缀对应的前 20 2020 位 为 1 11 , 主机号对应的位数为 0 00 ;


11111111 11111111 1111 11111111 \quad 11111111 \quad 111111111111111111111111 0000 00000000 0000 \quad 00000000000000000000


转为十进制为 : 255.255.240.0 255.255.240.0255.255.240.0




3 . 构成超网 : 将 多个 CIDR 编址的 子网 聚合成一个较大的子网 , 又称为 “路由聚合” ;


方法 : 缩短网络前缀 ;



构成超网示例 :


子网块 1 11 : 206.1.0.0 / 17 206.1.0.0/17206.1.0.0/17 ;

子网块 2 22 : 206.1.128.0 / 17 206.1.128.0/17206.1.128.0/17 ;

上述网络前缀都是 17 1717 位 , 将网络前缀缩短 1 11 位 , 即可构成一个新的超网 , 网络前缀为 16 1616 位 ;


新的超网为 : 206.1.0.0 / 16 206.1.0.0/16206.1.0.0/16




4 . 最长前缀匹配 : 使用 CIDR 编址时 , 路由查找时 , 将可能得到的几个匹配结果 , 选择 符合 网络前缀 的 , 具有最长网络前缀 的路由 ;


原理 : 因为 前缀越长 , 主机号选择性就越小 , 越容易找到对应的主机 ;



计算示例 :


路由表如下 :


目的网络 1 11 : 132.0.0.0 / 8 132.0.0.0/8132.0.0.0/8 , 下一跳路由 R 1 R1R1 ;

目的网络 2 22 : 132.0.0.0 / 11 132.0.0.0/11132.0.0.0/11 , 下一跳路由 R 2 R2R2 ;

目的网络 3 33 : 132.19.232.0 / 22 132.19.232.0/22132.19.232.0/22 , 下一跳路由 R 3 R3R3 ;

目的网络 4 44 : 0.0.0.0 / 0 0.0.0.0/00.0.0.0/0 , 下一跳路由 R 4 R4R4 ;


分析 :


其中 目的网络 4 44 是 默认路由 , 如果上述 3 33 个都不符合 , 就选择默认路由 ;


目的网络 1 11 的 网络前缀 符合要求 , 网络前缀长度为 8 88 , 该路由选择 比 默认路由 要好 ;


目的网络 2 22 的 网络前缀 符合要求 , 网络前缀长度为 11 1111 , 该路由选择 比 目标网络 2 22 要好 ;


目的网络 3 33 的网络前缀是 132.19.236.0 132.19.236.0132.19.236.0 , 该网络前缀不符合要求 , 必须不能选择 ;


因此这里选择 目的网络 3 33 , 作为 下一跳路由 ;




5 . 计算示例


某网络 IP 地址为 192.168.5.0 / 24 192.168.5.0/24192.168.5.0/24 , 采用 定长子网划分 , 子网掩码为 255.255.255.248 255.255.255.248255.255.255.248 , 求网络中的最大子网个数 , 每个子网的最大可分配地址个数 ?



网络地址是 192.168.5.0 / 24 192.168.5.0/24192.168.5.0/24 , 前 24 2424 位 是网络前缀 ;



在 CIDR 基础之上 , 进行定长子网划分 , 后面 8 88 位 , 一部分作为 子网号 , 一部分作为主机号 ;


子网掩码为 255.255.255.248 255.255.255.248255.255.255.248 , 转为二进制是 :


11111111 11111111 1111 11111111 \quad 11111111 \quad 111111111111111111111111 0000 00000000 11111000 \quad 1111100011111000


由上面的子网掩码可得 , 子网号 占 5 55 位 , 主机号 占 3 33 位 ;



最大子网个数是 2 5 = 32 2^5 = 322

5

=32 个 , 在 CIDR 子网中 , 子网号可以全 0 00 , 全 1 11 ;


每个子网的最大主机个数是 : 2 3 − 2 = 6 2^3-2 = 62

3

−2=6 , 要减去 全 0 00 和 全 1 11 两种情况 ;




参考博客 : 【计算机网络】网络层 : 无分类编址 CIDR ( 编址发展 | CIDR 优点 | CIDR 相关计算 | 构成超网 | 最长前缀匹配 | 计算示例 )★



相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
16天前
|
存储 编解码 负载均衡
数据分片算法
【10月更文挑战第25天】不同的数据分片算法适用于不同的应用场景和数据特点,在实际应用中,需要根据具体的业务需求、数据分布情况、系统性能要求等因素综合考虑,选择合适的数据分片算法,以实现数据的高效存储、查询和处理。
|
16天前
|
存储 缓存 算法
分布式缓存有哪些常用的数据分片算法?
【10月更文挑战第25天】在实际应用中,需要根据具体的业务需求、数据特征以及系统的可扩展性要求等因素综合考虑,选择合适的数据分片算法,以实现分布式缓存的高效运行和数据的合理分布。
|
28天前
|
机器学习/深度学习 人工智能 算法
"拥抱AI规模化浪潮:从数据到算法,解锁未来无限可能,你准备好迎接这场技术革命了吗?"
【10月更文挑战第14天】本文探讨了AI规模化的重要性和挑战,涵盖数据、算法、算力和应用场景等方面。通过使用Python和TensorFlow的示例代码,展示了如何训练并应用一个基本的AI模型进行图像分类,强调了AI规模化在各行业的广泛应用前景。
29 5
|
20天前
|
存储 JSON 算法
TDengine 检测数据最佳压缩算法工具,助你一键找出最优压缩方案
在使用 TDengine 存储时序数据时,压缩数据以节省磁盘空间是至关重要的。TDengine 支持用户根据自身数据特性灵活指定压缩算法,从而实现更高效的存储。然而,如何选择最合适的压缩算法,才能最大限度地降低存储开销?为了解决这一问题,我们特别推出了一个实用工具,帮助用户快速判断并选择最适合其数据特征的压缩算法。
28 0
|
30天前
|
人工智能 算法 前端开发
无界批发零售定义及无界AI算法,打破传统壁垒,累积数据流量
“无界批发与零售”是一种结合了批发与零售的商业模式,通过后端逻辑、数据库设计和前端用户界面实现。该模式支持用户注册、登录、商品管理、订单处理、批发与零售功能,并根据用户行为计算信用等级,确保交易安全与高效。
|
24天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
9天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
|
10天前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。
|
11天前
|
存储 算法 决策智能
基于免疫算法的TSP问题求解matlab仿真
旅行商问题(TSP)是一个经典的组合优化问题,目标是寻找经过每个城市恰好一次并返回起点的最短回路。本文介绍了一种基于免疫算法(IA)的解决方案,该算法模拟生物免疫系统的运作机制,通过克隆选择、变异和免疫记忆等步骤,有效解决了TSP问题。程序使用MATLAB 2022a版本运行,展示了良好的优化效果。
|
10天前
|
机器学习/深度学习 算法 芯片
基于GSP工具箱的NILM算法matlab仿真
基于GSP工具箱的NILM算法Matlab仿真,利用图信号处理技术解析家庭或建筑内各电器的独立功耗。GSPBox通过图的节点、边和权重矩阵表示电气系统,实现对未知数据的有效分类。系统使用MATLAB2022a版本,通过滤波或分解技术从全局能耗信号中提取子设备的功耗信息。