TCP/IP 子网掩码浅析
定义
是一种用来指明一个IP地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码是由32bit的二进制数字序列, 对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255. 255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。
说明:子网掩码是“255.255.255.0”的网络:最后面一个数字可以在0~255范围内任意变化,因此可以提供256个IP地址。但是实际可用的IP地址数量是256-2,即254个,因为主机号不能全是“0”或全是“1”。(因为主机号全为1时表示该网络广播地址,全为0时表示该网络的网络号,这是两个特殊地址)。
如何通过子网掩码获得网络地址(或者子网地址)和主机地址?
例如:有一个C类地址为:192.9.200.13,按其IP地址类型,它的缺省子网掩码为:255.255.255.0。(自己设置的掩码方法相同)
step1.将IP地址192.9.200.13转换为二进制11000000 00001001 11001000 00001101。
step2.将子网掩码255.255.255.0转换为二进制11111111 11111111 11111111 00000000。
step3.将以上两个二进制数逻辑进行与(AND)运算,得出的结果即为网络部分。“11000000 00001001 11001000 00001101”与“11111111 11111111 11111111 00000000”进行“与”运算后得到“11000000 00001001 11001000 00000000”,即“192.9.200.0”,这就是这个IP地址的网络号,或者称“网络地址”。
step4.将子网掩码的二进制值取反后,再与IP地址进行与(AND)运算,得到的结果即为主机部分。如将“00000000 00000000 00000000 11111111(子网掩码的取值)反”与“11000000 00001001 11001000 00001101”进行与运算后得到“00000000 00000000 00000000 00001101”,即“0.0.0.13”,这就是这个IP地址主机号(可简化为“13”)。
如何计算子网掩码?
利用子网数来计算
以上子网掩码是缺省掩码,那么在某些情况下,为了更充分利用IP资源,我们需要更合理划分子网,而此时我们需要确定子网掩码。
step1:确定物理网段的数量,并将其转换为二进制数,并确定位数n。如:你需要6个子网,6的二进制值为110,共3位,即n=3。
step2:将子网掩码中与主机号的前n位对应的位置置1,其余位置置0。若n=3且为
C类地址:则得到子网掩码为11111111.11111111.11111111.11100000化为十进制得到255.255.255.224
B类地址:则得到子网掩码为11111111.11111111.11100000.00000000化为十进制得到255.255.224.0
A类地址:则得到子网掩码为11111111.11100000.00000000.00000000化为十进制得到255.224.0.0。
利用主机数来计算
如要将一B类IP地址为168.195.0.0的网络划分成若干子网,要求每个子网内有主机数为700台,则该子网掩码的计算方法如下(也是对应以上各基本步骤):
step1,首先将子网中要求容纳的主机数“700”转换成二进制,得到1010111100。
step2,计算出该二进制的位数为10位,即n = 10 。
step3,将255.255.255.255从后向前的10位全部置“0”,得到的二进制数为“11111111.11111111.11111100.00000000”,转换成十进制后即为255.255.252.0,这就是该要划分成主机数为700的B类IP地址 168.195.0.0的子网掩码。
如何划分子网?
举个例子,若我们用的网络号为192.9.200,则该C类网内的主机IP地址就是192.9.200.1~192.9.200.254,现将网络划分为4个子网,按照以上步骤:
4=2^2,则表示要占用主机地址的2个高序位,即为11000000,转换为十进制为192。这样就可确定该子网掩码为:192.9.200.192。4个IP范围为:
(1)第1个子网的IP地址是从“11000000 00001001 11001000 00000001”到“11000000 00001001 11001000 00111110”(对应的十进制IP地址范围为192.9.200.1~192.9.200.62),注意它们的最后8位中被网络号占住的两位都为“00”,因为主机号不能全为“0”和“1”,所以没有11000000 00001001 11001000 00000000和11000000 00001001 11001000 00111111这两个IP地址(下同)。注意实际上此时的主机号只有最后面的6位。而这个子网的网络地为 11000000 00001001 11001000 00000000,为192.9.200.0。
(2)第2个子网的IP地址是从“11000000 00001001 11001000 01000001”到“11000000 00001001 11001000 01111110” ,注意此时被网络号所占住的2位主机号为“01”。对应的十进制IP地址范围为192.9.200.65~192.9.200.126。对应这个子网的子网掩码(或网络地址)为 11000000 00001001 11001000 01000000,为192.9.200.64。
(3)第3个子网的IP地址是从“11000000 00001001 11001000 10000001”到“11000000 00001001 11001000 10111110” ,注意此时被网络号所占住的2位主机号为“10”。对应的十进制IP地址范围为192.9.200.129~192.9.200.190。对应这个子网的子网掩码(或网络地址)为 11000000 00001001 11001000 10000000,为192.9.200.128。
(4)第4个子网的IP地址是从“11000000 00001001 11001000 11000001”到“11000000 00001001 11001000 11111110” ,注意此时被网络号所占住的2位主机号为“11”。对应的十进制IP地址范围为192.9.200.193~192.9.200.254。对应这个子网的子网掩码(或网络地址)为 11000000 00001001 11001000 11000000,为192.9.200.192。
如何确定是否在同一个子网?
知道"子网掩码",我们就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。
比如,已知IP地址172.16.254.1和172.16.254.233的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?两者与子网掩码分别进行AND运算,结果都是172.16.254.0,因此它们在同一个子网络。
参考:http://diybbs.zol.com.cn/12/86_118559.html
TCP/IP 子网掩码浅析的更多相关文章
- 计算机网络通信TCP/IP协议浅析 网络发展简介(二)
本文对计算机网络通信的原理进行简单的介绍 首先从网络协议分层的概念进行介绍,然后对TCP.IP协议族进行了概念讲解,然后对操作系统关于通信抽象模型进行了简单介绍,最后简单描述了socket 分层的 ...
- TCP/IP原理浅析
TCP/IP概述 TCP/IP起源于1969年美国国防部(DOD:The United States Department Of Defense)高级研究项目管理局(APRA:AdvancedRese ...
- TCP/IP理解
目录 1.概述 2.TCP/IP寻址及其协议族 3.TCP/IP 邮件 1.概述 介绍:什么是TCP/IP? TCP/IP协议是对计算机必须遵守的规则的描述,遵守了规则才能通信. 应用: 浏览器与服务 ...
- CCNA第三章子网划分,变长子网掩码(VLSM)和TCP/IP排错考试要点学习笔记
1. 子网划分的好处 缩减网络流量; 优化网络性能; 简化管理; 可以更为灵活地形成大覆盖范围的网络. 2. 如何创建子网的步骤 首先,确认所需要的网络ID数; 其次,确认每个子网中所 ...
- TCP/IP——内外网IP+子网掩码作用+PING(网络总结)
目录: 1.如何区分内网IP和外网IP? 保留字段 2.子网掩码是起什么作用的? 将DNS和IP异或,表示哪段起作用 3.ping到底起什么作用? ping本地.ping远程 下面针对上面三个问题分别 ...
- TCP/IP学习笔记13--IP地址的构成,广播地址,IP多播,子网掩码
现在,我是蔚蓝的 :在此岸或彼岸,我都是蔚蓝的. ---李瑾 IP对应的是OSI模型中的网络层,TCP对应的是传输层.每一个参与通信的主机都会有一个IP地址. IP地址(IPv4地址)含4个字节,每 ...
- 网络TCP/IP分层、子网掩码等基本概念
一.TCP/IP分层: OSI七层网络模型 TCP/IP四层概念模型 对应网络协议 应用层(Application) 应用层 HTTP.TFTP, FTP, NFS, WAIS.SMTP 表示层(Pr ...
- 浅析TCP/IP协议
浅析TCP/IP协议 0x00 什么是TCP/IP协议? 想一想人与人之间交流需要什么?我们是不是要掌握一种我们都能体会到对方意思的语言.那么计算机与网络设备之间进行通信,是不是不同设备之间是不是 ...
- CCNA 第五章 变长子网掩码、汇总和TCP/IP故障排除
1:VLSM:即变长子网掩码,使用长度不同的子网掩码将大型网络划分为众多子网,以满足不同类型的网络设计. 2:运行老式的路由器和例如:RIP V1协议的网络不能使用VLSM,因为它使用分类路由器选择. ...
随机推荐
- 如何把由js生成的内容水平居中?
一.问题来源 如右侧的微博关注组件,直接用div的align居中没效果,我就开始百度了.即在<div> <script>.....</script> </d ...
- Kafka操作
http://blog.csdn.net/xiao_jun_0820/article/details/46831203 http://blog.csdn.net/xcockroach/article/ ...
- Codeigniter开发技巧:连接多个数据库(可实现DB读写分离)
在开发中,我们有时候会遇到在同一程序中链接多个数据库的需求,这对Codeigniter框架来说是很简单的,我们只需要在 database.php文件中配置少许参数即可. 默认情况下,CI配置的是链接一 ...
- hdu 1907 John
很简单的博弈论问题!!(注意全是1时是特殊情况) 代码如下: #include<stdio.h> #include<iostream> using namespace std; ...
- android webview网页控件
一个WebView的简单例子 .在开发过程中应该注意几点: 1.AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则 ...
- 全选与反选(dom与jquery比较)
<html> <head> <title>全选或反选(dom)</title> <meta http-equiv="Content-Ty ...
- 我见过的 Objective-C, 讲的最通俗易懂的入门教程....
http://www.cnblogs.com/mjios/category/454764.html ---- 给力...
- [itint5]下一个排列
http://www.itint5.com/oj/#6 首先,试验的时候要拿5个来试,3,4个都太少了.好久没做所以方法也忘了,是先从后往前找到第一个不合顺序的,然后在后面找到比这个大的最小的来交换, ...
- PHP-CGI, FastCGI, PHP-FPM的关系和区别
Web server(apache, nginx) 接受到一个php请求后要解析php文件, 怎么解析呢, web server是C语言写的, 所以需要一个协议, 一个php解释器, 也就是CGI. ...
- oracle connect by 和start with
网上找了个例子 测试了一下 貌似明白了create table t2(root_id number,id number,name varchar(5),description varchar(10)) ...