IP地址专题二:子网掩码入门
本来,如果网络系统中只使用A、B、C这三种主类地址,而不对这三种主类地址作子网划分或者进行主类地址的汇总,则网络设备根据IP地址的第一个字节的数值范围即可判断它属于A、B、C中的哪一个主类网,进而可确定该IP地址的网络部分和主机部分,不需要子网掩码的辅助。
但为了使系统在对A、B、C这三种主类网进行了子网的划分,或者采用无类别的域间选路技术(Classless Inter-Domain Routing,CIDR)对网段进行汇总的情况下,也能对IP地址的网络及子网部分与主机部分作正确的区分,就必须依赖于子网掩码的帮助。
子网掩码使用与IP相同的编址格式,子网掩码为1的部分对应于IP地址的网络与子网部分,子网掩码为0的部分对应于IP地址的主机部分。将子网掩码和IP地址作"与"操作后,IP地址的主机部分将被丢弃,剩余的是网络地址和子网地址。例如,一个IP分组的目的IP地址为:10.2.2.1,若子网掩码为:255.255.255.0,与之作"与"运算得:10.2.2.0,则网络设备认为该IP地址的网络号与子网号为:10.2.2.0。子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。
最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。就这么简单。
I P 地址 192.168.0.1
子网掩码 255.255.255.0
AND运算
转化为二进制进行运算:
I P 地址 11010000.10101000.00000000.00000001
子网掩码 11111111.11111111.11111111.00000000
AND运算
11000000.10101000.00000000.00000000
转化为十进制后为:
192.168.0.0
运算演示之二:
I P 地址 192.168.0.254
子网掩码 255.255.255.0
AND运算
转化为二进制进行运算:
I P 地址 11010000.10101000.00000000.11111110
子网掩码 11111111.11111111.11111111.00000000
AND运算
11000000.10101000.00000000.00000000
转化为十进制后为:
192.168.0.0
运算演示之三:
I P 地址 192.168.0.4
子网掩码 255.255.255.0
AND运算
转化为二进制进行运算:
I P 地址 11010000.10101000.00000000.00000100
子网掩码 11111111.11111111.11111111.00000000
AND运算
11000000.10101000.00000000.00000000
转化为十进制后为:
192.168.0.0
通过以上对三组计算机IP地址与子网掩码的AND运算后,我们可以看到它运算结果是一样的。均为192.168.0.0
所以计算机就会把这三台计算机视为是同一子网络,然后进行通讯的。我现在单位使用的代理服务器,内部网络就是这样规划的。
也许你又要问,这样的子网掩码究竟有多少了IP地址可以用呢?你可以这样算。
根据上面我们可以看出,局域网内部的ip地址是我们自己规定的(当然和其他的ip地址是一样的),这个是由子网掩码决定的通过对255.255.255.0的分析。可得出:
前三位IP码由分配下来的数字就只能固定为192.168.0所以就只剩下了最后的一位了,那么显而易见了,ip地址只能有(2的8次方-1),即256-1=255一般末位为0或者是255的都有其特殊的作用。
但是这样划分但浪费地址了,所以后来又引出一种叫VLSM(可变长掩码)的新算法。
如果共有50台机器,那一定是用C类地址。但是如果用C类的话每一个网段可以用到253台主机而你现在只有50台,这样的话不是要浪费200台了吗?但是如果用了VLSM就不同了请看。
如果是静态掩码的话C类地址因该是255.255.255.0
50<2的7次方,化为十进制就是64。所以VLSM就是255.255.255.64
例一:IP:192.168.0.1
SubstMask:255.255.255.64
转化为二进制11000000.10101000.00000000.00000001
11111111.11111111.00000000.1000000
AND与运算
11000000.10101000.00000000.00000000
转化为十进制192.168.0.0
例二:192.168.0.50
SubstMask:255.255.255.64
转化为二进制11000000.10101000.00000000.00110010
11111111.11111111.11111111.01000000
AND与运算
11000000.10101000.00000000.00000000
以上二个地址在同一网段
再看:
例三:IP:192.168.0.65
SubstMask:255.255.255.64
转化为二进制11000000.10101000.00000000.01000001
11000000.10101000.00000000.01000000
AND与运算
110000000.10101000.00000000.010000000
转化为十进制192.168.0.64
划开了!!就这么简单!
子网掩码的设定必须遵循一定的规则。与IP地址相同,子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示;右边是主机位,用二进制数字“0”表示。附图所示的就是IP地址为“192.168.1.1”和子网掩码为“255.255.255.0”的二进制对照。其中,“1”有24个,代表与此相对应的IP地址左边24位是网络号;“0”有8个,代表与此相对应的IP地址右边8位是主机号。这样,子网掩码就确定了一个IP地址的32位二进制数字中哪些是网络号、哪些是主机号。这对于采用TCP/IP协议的网络来说非常重要,只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。
常用的子网掩码
子网掩码有数百种,这里只介绍最常用的两种子网掩码,它们分别是“255.255.255.0”和“255.255.0.0”。
1. 子网掩码是“255.255.255.0”的网络:最后面一个数字可以在0~255范围内任意变化,因此可以提供256个IP地址。但是实际可用的IP地址数量是256-2,即254个,因为主机号不能全是“0”或全是“1”。
2. 子网掩码是“255.255.0.0”的网络:后面两个数字可以在0~255范围内任意变化,可以提供2552个IP地址。但是实际可用的IP地址数量是2552-2,即65023个。
IP地址的子网掩码设置不是任意的。如果将子网掩码设置过大,也就是说子网范围扩大,那么,根据子网寻径规则,很可能发往和本地机不在同一子网内的目的机的数据,会因为错误的判断而认为目的机是在同一子网内,那么,数据包将在本子网内循环,直到超时并抛弃,使数据不能正确到达目的机,导致网络传输错误;如果将子网掩码设置得过小,那么就会将本来属于同一子网内的机器之间的通信当做是跨子网传输,数据包都交给缺省网关处理,这样势必增加缺省网关的负担,造成网络效率下降。因此,子网掩码应该根据网络的规模进行设置。
如果一个网络的规模不超过254台电脑,采用“255.255.255.0”作为子网掩码就可以了,现在大多数局域网都不会超过这个数字,因此“255.255.255.0”是最常用的IP地址子网掩码;笔者见到的最大规模的中小学校园网具有1500多台电脑,这种规模的局域网可以使用“255.255.0.0”。
默认子网掩码
在Windows 2000 Server中,如果给一个网卡指定IP地址,系统会自动填入一个默认的子网掩码。这是Windows 2000 Server为了节省用户输入时间自动产生的子网掩码。比如,局域网最常使用的IP地址“192.168.x.x”默认的子网掩码是“255.255.255.0”。一般情况下,IP地址使用默认子网掩码就可以了。
1、将要划分的子网数目转换为2的m次方。如要分8个子网,8=23。
2、取上述要划分子网数的2的m次方的幂。如23,即m=3。
3、将上一步确定的幂m按高序占用主机地址m位后转换为十进制。如m为3 则是11100000,转换为十进制为224,即为最终确定的子网掩码。如果是C类网,则子网掩码为255.255.255.224;如果是B类网,则子网掩码为255.255.224.0;如果是C类网,则子网掩码为255.224.0.0。
在这里,子网个数与占用主机地址位数有如下等式成立:2m=n。其中,m表示占用主机地址的位数;n表示划分的子网个数。根据这些原则,将一个C类网络分成4个子网。若我们用的网络号为192.9.200,则该C类网内的主机IP地址就是192.9.200.1~192.9.200.254(因为全“0”和全“1”的主机地址有特殊含义,不作为有效的IP地址),现将网络划分为4个部分,按照以上步骤:
4=22,取22的幂,即2,则二进制为11,占用主机地址的高序位即为11000000,转换为十进制为192。这样就可确定该子网掩码为:192.9.200.192,4个子网的IP地址范围分别为:
二进制十进制
① 11000000 00001001 11001000 00000001 11000000 00001001 11001000 00111110 192.9.200.1
192.9.200.62
② 11000000 00001001 11001000 01000001 11000000 00001001 11001000 01111110 192.9.200.65
192.9.200.126
③ 11000000 00001001 11001000 10000001 11000000 00001001 11001000 10111110 192.9.200.129
192.9.200.190
④ 11000000 00001001 11001000 11000001 11000000 00001001 11001000 11111110 192.9.200.193
192.9.200.254
在此列出A、B、C三类网络子网数目与子网掩码的转换表,以供参考。
2 1255.128.0.08,388,606
4 2255.192.0.04,194,302
8 3255.224.0.02,097,150
16 4255.240.0.01,048,574
32 5255.248.0.0524,286
64 6255.252.0.0262,142
1287255.254.0.0131,070
1288255.255.0.065,534
2 1255.255.128.0 32,766
4 2255.255.192.0 16,382
8 3255.255.224.0 8,190
16 4255.255.240.0 4,094
32 5255.255.248.0 2,046
64 6255.255.252.0 1,022
1287255.255.254.0 510
2568255.255.255.0 254
2 1255.255.255.128 126
4 2255.255.255.192 62
8 3255.255.255.224 30
16 4255.255.255.240 14
32 5255.255.255.248 6
64 6255.255.255.252 2
0
分享
收藏
29篇文章,1W+人气,0粉丝
Ctrl+Enter 发布
发布
取消
推荐专栏更多
9本网络安全实战书籍精华
共23章 | simeon2005
¥51.00 828人订阅
企业级网安运维
共30章 | simeon2005
¥51.00 407人订阅
高并发架构之路
共15章 | sery
¥51.00 506人订阅
猜你喜欢
扫一扫,领取大礼包
0
whbty1985
转载于:https://blog.51cto.com/whbty1985/108390
IP地址专题二:子网掩码入门相关推荐
- IP地址段与子网掩码
IP地址段与子网掩码 子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络. 最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是 ...
- IP地址,netmask 子网掩码、gateway 默认网关,dns-nameserve域名服务器总结
IP地址,netmask 子网掩码.gateway 默认网关,dns-nameserve域名服务器总结 一.IP地址 二.netmask 子网掩码 三.gateway 默认网关 四.dns-names ...
- 虚拟机如何配置网络ip地址_木杉入门Elasticsearch(2):虚拟机IP地址配置
木杉入门 本系列的目标是在本地搭建一个Elasticsearch的服务集群,通过在阿里云服务器搭建FRP通道对外提供服务,为小规模应用提供一种高性价比的解决思路. 系列内容: 木杉入门Elastics ...
- 9000字加图文 | 带你了解IP地址划分、子网掩码的作用、实际中IP地址规划是怎么样的
作者:一天,公众号:网络之路博客(ID:NetworkBlog).让你的网络之路不在孤单,一起学习,一起成长. (1)子网掩码 之所以出现大量地址浪费,在于早期的地址分类采用的是固定的网络位与主机位的 ...
- 带你了解IP地址划分、子网掩码的作用、实际中IP地址规划是怎么样的
(1)子网掩码 之所以出现大量地址浪费,在于早期的地址分类采用的是固定的网络位与主机位的长度,不能灵活的规划,所以在后面打破了这个规则,32比特的IP还是分为网络号与主机号,但是不在采用固定的长度形式 ...
- IP地址划分与子网掩码
目录 前言 1. IP地址 1.1 IP地址的涵义 1.2 IP地址分类 1.3 特殊IP地址 2. 子网掩码 2.1 子网掩码的涵义 2.2 子网掩码的计算 2.3子网划分--子网掩码的借位划分 总 ...
- IP地址分类及子网掩码划分网段详解!!!
IP地址的组成 网络位:表示IP地址所属的网段 主机位:用来唯一标识一个网段内的某一台设备 IP地址的作用 可以实现同一网段或跨网段的通信 IP地址的分类 A类地址:0.0.0.0 -- 127.25 ...
- php获取访问者ip地址,PHP获取访问者IP地址的二种方法
本节内容: PHP获取访问者IP地址 方法一:$_SERVER['HTTP_X_FORWARDED_FOR']来获取相应的地址 复制代码 代码示例: function get_onlineip() { ...
- android 网络获取地址,android 网络地址,ip地址获取,子网掩码获取,默认网关获取...
获取eth0的ip: getIpAddrForInterfaces("eth0")java private String getIpAddrForInterfaces(String ...
最新文章
- 《AutoCAD全套园林图纸绘制自学手册》一第1章 园林设计基本概念1.1 概述
- 想写Python爬虫?看这5个教程就行了!
- Linux中xml导入数据库,XML数据库 BaseX
- [WPS笔试题]实现栈的push,pop,max且时间复杂度为O(1)
- win10如何修改IP地址
- LeetCode 85. 最大矩形(DP/单调递增栈,难)
- 靓仔落泪,性能问题定位难倒我了
- 一只青蛙跳向三个台阶_青蛙跳台阶问题的三种解法
- 2014牡丹江——Hierarchical Notation
- 原生android字体,不用Root,国产安卓手机如何把字体切换成安卓原生字体
- 不同局域网内进行网络连接的建立方法
- 北航计算机博士后,北京航空航天大学博士后待遇
- C++定义复数类(Complex)
- 闰年和平年的区别python_连续四年中一定有一个闰年吗
- 2007想飞之旅 (中)
- 计算机图片怎么截图快捷键,电脑截图快捷键四种截屏方式,笔记本电脑如何截屏截图?...
- linux ext4 img解包打包教程,安卓解包、修改、打包system.img/system.img.ext4教程
- 【笔记】Polygon mesh processing 学习笔记(10)
- mysql支持kv_阿里云推出兼容Redis的KV数据库 有三大优势
- matlab-数学运算
热门文章
- 源代码可以从应用提取码_大规模下加速源代码分析
- 塑料壳上下扣合的卡扣设计_一种塑料件卡扣结构制造技术
- linux自带的文本编辑器,linux自带文本编辑器
- 中专计算机应用完整教学计划,中职生教学计划
- java 线程内存模型_JAVA内存模型与线程
- 雅安职业技术学院工业机器人专业_2017年雅安职业技术学院开设哪些专业(高职/专科)...
- java执行python脚本并传递参数_从Java执行Python脚本存在参数传递问题
- html span 字体位置,html – 如何强制span在CSS中使用父字体系列
- phalcon执行原始SQL查询语句
- Filter过滤器输出HelloFilter