当前互联网使用的主要是IPv4协议,它是第一个被广泛使用,构成现今互联网的基础的协议。但是,随着用户数量的增多,IPv4包含的IP资源在不断减少。或许你会想,不是还有IPv6吗?IPv6的容量足以应付这种情况。的确,IPv6是可以完全实现实名制的。但是,IPv6也才正在崛起中。为了解决现有的这些问题,人们提出一个非常聪明的办法:子网掩码。今天,我们就来聊聊它的二三事。

先说说子网吧。什么是子网?略去百度、wiki那详细的解释,简单来说就是主机下的网络岛。主机使用一个IP地址,但可以和路由器分出许多接口,便产生了网络岛。同一主机下,不同网络岛是可以直接进行沟通的。但如果是不同主机呢?怎么鉴别?也可以进行直接沟通吗?这里就运用到网关了。我们稍后再谈。

子网掩码,或者说是子网络掩码、网络掩码,它的主要作用,就是划分一个IP地址的网络地址和主机地址(对于子网划分后的IP地址,就是网络号+子网号+子网主机号)。网络地址,是ISP申请并用户随机获得的。也是区分不同主机的首要方式。网络号不同,代表着主机的不同。网络号确定,管理员可以安排自己的子网。简单打个比方,一个单位无权决定自己在所属城市的街道名称和门牌号,但可以自主决定本单位内部的各个办公室编号一样。管理员可以设置不同的子网,每个子网下可以多个主机。这样,对IP地址的利用就大大提高了。但只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。子网掩码也可以判别该IP地址是在局域网或是远程网上。

对于A类IP地址,子网掩码默认为255.0.0.0;对于B类IP地址,子网掩码默认为255.255.0.0;对于C类IP地址,子网掩码默认为255.255.255.0。读者可以试试将这些数字转化成二进制,会有奇妙的发现喔。(〃'▽'〃)这里就揭晓吧。子网掩码的长度是32位(IPv4的长度也是32位),左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。这样就能很轻易地算出主机数啦。但注意的是,2的主机位数次方需要减去2.(主机号全为1时,是该网络的广播地址;主机号为0,是该网络的网络号)。

那么,怎么定义子网掩码?首先先确定你要求的IP地址是哪种类型的。下来,你要确定需要的子网数。举个例子吧。比如说,你需要14个子网,可能需要16个。那么,16=2^4.所以,就在第四个字节的前四位设为1,第四节就是“11110000”。把前三个字节补上,转化成二进制就是“11111111  11111111  11111111  11110000”。十进制的形式就是255.255.255.240.所以说,很简单吧。

你可以根据子网数和主机数来计算子网掩码。我这里说说子网数的计算办法。首先,把你需要的子网数减去1(因为计算机是从0开始的),再转化成二进制。记下它的位数,后面非常有用。取得该IP地址的类子网掩码,把主机部分前N(也就是你刚才记录的位数)设为1,便得出你所需子网掩码。来个例子。你的IP地址是168.195.0.0,需要20个子网。减去1转化成二进制,是1011.好,位数是4。B类IP地址子网掩码是255.255.00。B类地址的主机位包括后两个字节,所以这里要把第三个字节的前4位设为1。即255.255.240.0。主机数同理。

判断该IP地址是否是局域网,就把两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。就这么简单随意。

关于子网掩码的详细知识,请参考百度、google、wiki。本人才疏学浅,如有错误,敬请谅解。

TCP/IP的那些事--子网掩码的更多相关文章

  1. CCNA第三章子网划分,变长子网掩码(VLSM)和TCP/IP排错考试要点学习笔记

    1. 子网划分的好处      缩减网络流量; 优化网络性能; 简化管理; 可以更为灵活地形成大覆盖范围的网络.    2. 如何创建子网的步骤 首先,确认所需要的网络ID数; 其次,确认每个子网中所 ...

  2. TCP/IP——内外网IP+子网掩码作用+PING(网络总结)

    目录: 1.如何区分内网IP和外网IP? 保留字段 2.子网掩码是起什么作用的? 将DNS和IP异或,表示哪段起作用 3.ping到底起什么作用? ping本地.ping远程 下面针对上面三个问题分别 ...

  3. TCP/IP学习笔记13--IP地址的构成,广播地址,IP多播,子网掩码

    现在,我是蔚蓝的 :在此岸或彼岸,我都是蔚蓝的.  ---李瑾 IP对应的是OSI模型中的网络层,TCP对应的是传输层.每一个参与通信的主机都会有一个IP地址. IP地址(IPv4地址)含4个字节,每 ...

  4. 网络TCP/IP分层、子网掩码等基本概念

    一.TCP/IP分层: OSI七层网络模型 TCP/IP四层概念模型 对应网络协议 应用层(Application) 应用层 HTTP.TFTP, FTP, NFS, WAIS.SMTP 表示层(Pr ...

  5. CCNA 第五章 变长子网掩码、汇总和TCP/IP故障排除

    1:VLSM:即变长子网掩码,使用长度不同的子网掩码将大型网络划分为众多子网,以满足不同类型的网络设计. 2:运行老式的路由器和例如:RIP V1协议的网络不能使用VLSM,因为它使用分类路由器选择. ...

  6. 子网划分、变长子网掩码和TCP/IP排错__IP寻址排错

    1.Cisco推荐使用的排错四步曲: ping环回地址:ping NIC:ping默认网关和ping远端设备. 1. 打开DOS窗口并ping127.0.0.1.这是一个诊断或环回地址,如果你得到一个 ...

  7. TCP/IP协议栈概述

    TCP/IP协议栈概述 这篇文章虽然只是很粗浅的介绍了ISO/OSI 网络模型,但确实把握住了关键点,某种意义上,简单回顾一下就可以加深对TCP/IP协议栈的理解. 原作者:阮一峰 链接: http: ...

  8. 计算机网络及TCP/IP知识点(全面,慢慢看)

    TCP/IP网络知识点总结 一.总述 1.定义:计算机网络是一些互相连接的.自治的计算机的集合.因特网是网络的网络. 2.分类: 根据作用范围分类: 广域网 WAN (Wide Area Networ ...

  9. TCP/IP网络知识点总结

    学完了计算机网络是时候整理一篇总结了,温故知新.注意:这篇博客很长长长(2.5万字+50图). TCP/IP网络知识点总结 一.总述 1.定义:计算机网络是一些互相连接的.自治的计算机的集合.因特网是 ...

随机推荐

  1. django之第二天

    今天学习目标: 一,路由系统 1,默认处理函数 2,动态URL 3,分级匹配 4,反射实现动态路由 二.中间件 三.Model(重点) 1,创建表 2,操作表数据 四.Form (重点) 1,用户提交 ...

  2. 系统学习DOM事件机制

    本文将从以下几个方面介绍DOM事件: 基本概念:DOM事件的级别 DOM事件模型,事件流 描述DOM事件捕获的具体流程 Event对象的常见应用 自定义事件 DOM事件的级别 //DOM0 eleme ...

  3. JVM菜鸟进阶高手之路十四:分析篇

    转载请注明原创出处,谢谢! 题目回顾 JVM菜鸟进阶高手之路十三,问题现象就是相同的代码,jvm参数不一样,表现的现象不一样. private static final int _1MB = 1024 ...

  4. 安卓Html标签,创意工具类

    之前开发项目中,遇到了在Textview中使用Html标签的情形,由于在代码中使用字符串,Android Studio上一堆的黄色警告,而且对于过时的Html.fromHtml,拿它一点办法也没有. ...

  5. 2810:完美立方-poj

    2810:完美立方 总时间限制:  1000ms 内存限制:  65536kB 描述 形如a3= b3 + c3 + d3的等式被称为完美立方等式.例如123= 63 + 83 + 103 .编写一个 ...

  6. 报Cannot change version of project facet Dynamic web module to 2.5 错误

    maven项目老是报这个错误,上网找了很多方法,把Dynamic Web Module的Version改成了2.5,结果还是报错. 后来找到一个方法说在web.xml中,将version改为3.0,就 ...

  7. Oracle11g静默安装dbca,netca报错处理--直接跟换操作系统

    最近给一个客户安装oracle 11gr2 概述: 操作系统:linux 32位操作系统 [oracle@nbsrfx response]$ uname -aLinux nbsrfx 2.6.32-5 ...

  8. python并发编程之多进程二

    一,multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程.P ...

  9. 【转】如何使用Git上传本地项目到github?(mac版)

    原文链接:http://www.cnblogs.com/lijiayi/p/pushtogithub.html 在此假设你已经在 github 上创建好了一个项目,像这样: 并且你已经完成了自己的项目 ...

  10. Makefile中的变量和shell变量

    我们在写makefile时 多多少少会用到shell脚本, 对于变量的在shell中的使用有一些要注意的细节.让我们从一个简单的makefile来看看. 注意makefile中一定要有一个目标,且一定 ...