计算机网络之ip、子网掩码、网络号、主机号等概念解析

计算机网络之ip、子网掩码、网络号、主机号等概念解析在工作中谈论到计算机网络时,有几个经常出现的术语,比如:ip、子网掩码、网段等等。之前对这些概念的理解都比较模糊,只知其大概意思,随着工作中遇到的网络问题越来越多,有必要详细理解一下计算机网络的基础知识了。这篇文章就先介绍几个计算机网络领域的专业术语。IP地址ip这个词是计算机网络中出现频率最高的了,甚至只要使用过电脑的人都知道这个词。IP地址全程是互联网协议地址(英文:InternetPr…

大家好,又见面了,我是你们的朋友全栈君。

在工作中谈论到计算机网络时,有几个经常出现的术语,比如:ip、子网掩码、网段等等。之前对这些概念的理解都比较模糊,只知其大概意思,随着工作中遇到的网络问题越来越多,有必要详细理解一下计算机网络的基础知识了。这篇文章就先介绍几个计算机网络领域的专业术语。

IP地址

ip这个词是计算机网络中出现频率最高的了,甚至只要使用过电脑的人都知道这个词。IP地址全程是互联网协议地址(英文:Internet Protocol Address)。IP地址就是给网络中的每台计算机都分配了一个地址,这个IP地址就是该计算机在网络中的身份id,通过ip就可以快速地定位到需要的那台计算机。

按照规定,IP是一个32为的二进制数,为了表示方便,通常将一个ip按照每8位一组转换成十进制数,然后每组中间用符号”.”表示,这种表示方法称为“点分十进制表示法”。

  • ip地址的组成

    IP地址 = 网络地址 + 主机地址 (又称:网络号和主机号)

    或者,

    IP地址 = 网络地址 + 子网地址 + 主机地址

最初设计的时候,IP地址只是由网络地址和主机地址两部分组成,IP地址的32位中,前面一些连续位称为网络号,用于表示该设备位于哪个网络,后面的其余位称为主机地址,用于在该网络中唯一标识一台主机。

基于以上的设计,IPv4地址按照网络号和主机号的长度不同分为五大类,通过ip中的最左边几位二进制数来区分,0开头的为A类,10开头的为B类,110开头的为C类,1110开头的为D类,1111开头的为E类,如图所示:
在这里插入图片描述
所以,如果按照这种划分方式得到的IPv4地址空间为:
在这里插入图片描述
然而实际上这种分类方式的缺陷是显而易见的,例如:A类地址的网络号少主机号多,C类地址的网络号多而主机号少,这就会造成IP地址资源利用率低下的问题。于是后来就出现了“IP地址 = 网络地址 + 子网地址 + 主机地址”的划分方式,也就是在原来的基础上又将主机号分成了子网号+主机号,这种方式被称为子网寻址。

子网是从每类的网络地址的主机部分拿出一定数量的位数,用该位数标识子网号,从而将每类的IP网络进一步分成更小的网络。

在出现子网之前,通过判断一个ip是A类、B类或者C类地址就可以直接从IP中获取到网络号,但是增加了子网后,如何判断一个ip中的子网部分和主机号部分呢?这就出现了子网掩码的概念。

子网掩码

子网掩码(subnet mask)就是用来从一台主机的ip地址中获取其网络信息、子网信息和主机号的。子网掩码跟ip的长度相同。子网掩码不能单独存在,他必须结合ip地址一起使用。

子网掩码跟ip的长度相同,也是由32为二进制数组成,不同的是,**子网掩码必须是由左边连续的若干个1和右边其余若干个连续的0组成。简单说就是子网掩码的左边若干位全部是1,剩下的右边所有为都是0 **。

那么是如何通过子网掩码来获取一个ip中对应的网络号和主机号的呢?将ip地址与子网掩码按位与得到的结果就是该ip对应的网络地址/子网标识符,这个标识符就确定了一台主机位于哪个网络中。下面举个例子:

例如,已知有一个ip为:192.168.10.2,它对应的子网掩码为255.255.255.240,求该ip对应的网络号/子网号,和主机号。

将ip地址转换成二进制为:11000000.10101000.00001010.00000010,将子网掩码也转换成二进制:11111111.11111111.11111111.11110000,然后将这两个二进制数按位与运算,结果为: 11000000.10101000.00001010.00000000,将这个结果转换成十进制就是192.168.10.0,所以这个ip对应的网络地址就是192.168.10.0。

  • 子网掩码的ip表示法

    有时候将ip和子网掩码都写出来这种方法写起来太麻烦了,所以就出现了ip表示法。例如我们在修改一些网络配置时,经常看到这种写法:192.168.10.2/28。这就是ip表示法,他即表明了ip地址,也表明了该ip对应的子网掩码。其中:192.168.10.2就是指ip地址,/28 是指子网掩码的前28位为1,其余为是0,即子网掩码为:11111111.11111111.11111111.11110000。

小结一下

这里我认为最为主要的也是比较难理解的一个概念就是子网掩码,那么这里就来总结一下子网掩码到底是干什么的。本来按照最开始的设计“ip = 网络地址 + 主机号”,将ip分为五大类,我们通过给定ip的前几位就可以判断这个ip属于哪一类,进而就可以知道这个ip的哪些位是网络地址,哪些位是主机地址。例如:已知一个ip:192.168.43.247,转换成二进制:11000000.10101000.00101011.11110111,因为是110打头的所以是C类地址,我们又知道C类地址的前24为是网络号,后8为是主机号,所以该ip对应的网络号就是192.168.43.0,而主机号就是247。但是由于这种设计使用起来有缺陷,所以人们又发明了一个叫子网的东西,有了子网以后,我们就不能单单通过一个IP属于哪一类来判断哪些位是网络地址了,于是人们又发明了子网掩码,用来标识一个ip的哪些位是网络地址。具体操作就是将ip与子网掩码按位与运算的结果就是网络地址。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152560.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • painless语法入门[通俗易懂]

    painless语法painless基础结构”script”:{“lang”:”…”,”source”|”id”:”…”,”params”:{…}}lang:定义脚本使用的语言,默认painlesssource,id:脚本的主体,source后面跟着内联的脚本代码,id后面跟着脚本的id,具体代码存在于脚本id对应的代码中params:定义一些变量的值,使用params可以减少脚本的编译次数.因为如果

  • 数学之路-python计算实战(14)-机器视觉-图像增强(直方图均衡化)[通俗易懂]

    数学之路-python计算实战(14)-机器视觉-图像增强(直方图均衡化)

  • MSFCONSOLE COMMANDS「建议收藏」

    MSFCONSOLE COMMANDS「建议收藏」MSFCONSOLECORECOMMANDSTUTORIALTheMSFconsolehasmanydifferentcommandoptionstochoosefrom.ThefollowingareacoresetofMetasploitcommandswithreferencetotheiroutput.back…

  • 关于winform界面美化。

    关于winform界面美化。今天看到有好多文章写了关于界面美化的方法。有的弄的比较复杂。这里我就简单点介绍一下最方便的方法吧。首先先跟大家分享两个DLL文件。http://files.cnblogs.com/08shiyan/IrisSkin2.zip [适用于.NET2.0、破解版、来源互联网]http://files.cnblogs.com/08shiyan/IrisSkin4.zip [适用于.N

  • Antimalware Service Executable 高内存的处理办法,亲测有效

    Antimalware Service Executable 高内存的处理办法,亲测有效在反恶意软件服务的可执行过程中扮演的重要角色的WindowsDefender与Windows捆绑10服务(和,尽管相似性的名字,是完全无关的Emsisoft反恶意软件!)。但是,它消耗的内存远远超过其应有的CPU处理能力,这也是臭名昭著的,甚至可以单枪匹马地降低计算机的速度,以至于无法应付。如果您是WindowsDefender用户,并且在异常长时间内注意到CPU使用率很高,您将很高兴知道此问题可以轻松解决。在本文中,我们汇总了一些简单的步骤,您可以按照这些简单的步骤来防止Antimalw…

  • ubuntu安装opencv的正确方法

    ubuntu安装opencv的正确方法本文介绍的是如何安装ubuntu下C++接口的opencv1.安装准备:1.1安装cmakesudoapt-getinstallcmake1.2依赖环境sudoapt-getinstallbuild-essentiallibgtk2.0-devlibavcodec-devlibavformat-devlibjpeg-devlibswscale-devlib…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号