IP地址与网络号
首先我们需要看几个概念!
IP地址是IP协议(Internet Protocol )提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
Internet上的每台主机和路由器都有一个IP地址,IP地址包含网络号和主机号,并且这种组合是唯一的。原则上,Internet上的任何两台机器不会有相同的IP地址。所有的IP地址都是32位长,被用于IP分组的源地址和目的地址域。
IP地址是一种分等级的地址结构,分为A、B、C、D、E五类,描述如下:
- A类地址
- 第1字节为网络地址,其它3个字节为主机地址。第1个字节的最高位固定为0。
- A类地址范围:1.0.0.0到126.255.255.255。
- A类地址中的保留地址:127.0.0.0到127.255.255.255是保留地址,用做循环测试用的。
A类私有地址:10.0.0.0到10.255.255.255。
- B类地址
- 第1字节和第2字节为网络地址,其他2个字节为主机地址。第1个字节的前2为固定为10.
- B类地址范围:128.0.0.0到191.255.255.255。
- B类地址中的保留地址:169.254.0.0到169.254.255.255是保留地址。
B类私有地址:172.16.0.0到172.31.255.255。
- C类地址
- 前3个字节网络地址,第4个字节为主机地址。第1个字节的前三位固定为110。
- C类地址范围:192.0.0.0到223.255.255.255。
C类私有地址:192.168.0.0到192.168.255.255是私有地址。 D类地址的第1个字节前四位总是1110。 E类地址的第1个字节前五位总是11110。
子网掩码(subnet mask)是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码是在IPv4地址资源紧缺的背景下为了解决lP地址分配而产生的虚拟lP技术,通过子网掩码将A、B、C三类地址划分为若干子网,从而显著提高了IP地址的分配效率,有效解决了IP地址资源紧张的局面。
加深理解: 网络号:192.168.1.0/24(192.168.1.0-192.168.1.255/255.255.255.0) 广播号:192.168.1.255 子网掩码:用于划分网络 例如:61.166.150.2/30 与 61.166.150.3/30 并不在同一网段
可划分子网数=2^n(n为借位组中1的数量) 如:255.255.255.128 → 11111111.11111111.11111111. 10000000 结果:2 ^ 1 = 2 255.255.255.128 可将网络划分为2个网段
可容纳主机数=2^m(m为借位组中0的数量) 如:255.255.255.128 → 11111111.11111111.11111111. 10000000 结果:2 ^ 7 = 128 255.255.255.128 每个网段最多可容纳128台主机。
可用IP数=可容纳主机数-2=2^m-2
计算子网掩码
下面是根据子网数与主机数推算子网掩码的方法,其中length()表示求字符长度(位数) ———————– 根据子网数算掩码 (子网数)D→(M)B length(M)=N B类IP地址掩码:255.255.0.0→11111111.11111111.00000000.00000000 主机地址前N位置为1,即可得到子网掩码。 如:子网数6,(6)D=(110)B,length(110)=3,主机地址前3位置为1, A类:11111111.11100000.00000000.00000000→255.224.0.0 B类:11111111.11111111.11100000.00000000→255.255.224.0 C类:11111111.11111111.11111111.11100000→255.255.255.224 ———————– 根据主机数算掩码 (主机数)D→(M)B length(M)=N 主机地址全部置为1, 11111111.11111111.11111111.11111111 后N位再置为0,然后换算为10进制即得掩码。 如:主机数5000,(5000)D=(1001110001000)B,length(1001110001000)=13,后13位置为0, 11111111.11111111.11100000.00000000→255.255.224.0 ——— 快速简算法(懒人算法):仅针对C类地址 2^n≥主机数+2 256-2^n=掩码 公式翻译:子网掩码的尾数(255.255.255.X)=256-2^(掩码位数) 如:主机数80,2^6=64<80+2<2^7=128,所以n=7→256-2^7=128,即掩码为255.255.255.128 –这是针对C类地址的算法,根据此法可推出B类算法如下: 如:主机数5000,2^12=4096<5000+2<2^13=8192,n=13→256-2^(13-8)=224,即掩码为255.255.224.0
计算网络号
将IP与掩码转为2进制,然后用IP和掩码做与运算,再转换为10进制即的网络号。
如(示例中是一个CIDR格式的地址):
求21.31.233.69/26(IP=21.31.233.69,掩码=255.255.255.192)的网络号: 21.31.233.69=00010101.00011111.11101001.01000101 255.255.255.192=11111111.11111111.11111111.11000000 00010101.00011111.11101001.01000101 & 11111111.11111111.11111111.11000000 =00010101.00110001.11101001.01000000 =21.31.233.64 即21.31.233.69 & 255.255.255.192=21.31.233.64 所以该子网网络号为 21.31.233.64。
本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息: 原文出处:Yiiven https://www.yiiven.cn/ip-address-and-network-number.html
相关文章
- 15个问题自查你真的了解java编译优化吗?
- 实现服务器和客户端数据交互,Java Socket有妙招
- 世界杯专题看板丨今晚8点开战,数据先睹为快!
- Crack App | 某合伙人登录参数 apisign 逻辑分析
- Crack App | 某都市魔幻 FM 请求参数 sign 的加密分析
- Crack App | 某赢+ 二手车 App 登录参数加密逻辑分析
- RocketMQ: 技术架构与启动流程
- 目前社区关于ServiceMesh的主要方向
- k8s的架构是怎么变成现在这个样子
- Envoy的lib库拓扑关系
- 转发“Istio共享代理新模式Ambient Mesh”
- 如何设计属于你自己的秒杀系统?
- 如何把Java代码玩出花?JVM Sandbox入门教程与原理浅谈
- 删错了文件怎么办,文件快速恢复
- ChatGPT 浏览器插件实现思路解析
- 存储系统中的算法:LSM 树设计原理
- 说透游戏中常用的两种随机算法
- 我用消息队列做了一款联机小游戏
- 用算法打败算法
- CRUD 一年多,我的破局思路