【计算机网络】网络层 : 总结 ( 功能 | 数据交换 | 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 相关计算 | 构成超网 | 最长前缀匹配 | 计算示例 )★



目录
相关文章
|
2月前
|
运维 网络协议 网络架构
网络技术基础(6)——IP路由基础
【2月更文挑战第10天】网络基础笔记(加班了几天,中途耽搁了,预计推迟6天)
|
3月前
|
缓存 网络协议 安全
【网络工程师】<软考中级>解析协议ARP&路由协议RIP/OSPF/BGP
【1月更文挑战第27天】【网络工程师】<软考中级>解析协议ARP&路由协议RIP/OSPF/BGP
|
4月前
|
网络协议
地址重叠时,用户如何通过NAT访问对端IP网络?
地址重叠时,用户如何通过NAT访问对端IP网络?
|
3天前
|
Ubuntu 网络协议 Linux
Linux(20) Ubuntu 20.04 网络接口自动切换路由配置
Linux(20) Ubuntu 20.04 网络接口自动切换路由配置
26 0
|
1月前
|
网络协议 Linux C++
Linux C/C++ 网络编程中地址格式转换(inet_pton和inet_ntop函数)
Linux C/C++ 网络编程中地址格式转换(inet_pton和inet_ntop函数)
26 0
|
1月前
|
域名解析 缓存 网络协议
探索Qt 网络编程:网络地址与服务类全解析
探索Qt 网络编程:网络地址与服务类全解析
56 0
|
2月前
|
网络协议 网络架构
计算机网络:思科实验【5-IPv4地址——分类地址与划分子网】
计算机网络:思科实验【5-IPv4地址——分类地址与划分子网】
|
2月前
|
安全 网络协议 测试技术
网络地址 0.0.0.0 与回环地址 127.0.0.1 的区别
网络地址 0.0.0.0 与回环地址 127.0.0.1 的区别
43 0
|
2月前
|
网络协议 Linux 网络架构
【Cisco Packet Tracer】验证聚合了不存在的网络导致的路由环路问题
【Cisco Packet Tracer】验证聚合了不存在的网络导致的路由环路问题
33 0
|
3月前
|
网络协议 网络安全 网络架构
网络路由之静态路由学习资料整理
静态路由是由网络管理员手动配置的固定路由表项,不受动态路由协议的影响,用于指定网络目标及其下一跳,提供网络控制和管理的手动路由选择。
46 0