Ip 讲解
IP地址分类以及C类IP地址的子网划分
国际规定:把所有的IP地址划分为 A,B,C,D,E
A类地址:范围从0-127,0是保留的并且表示所有IP地址,而127也是保留的地址,并且是用于测试环回用的。因此A类地址的范围其实是从1-126之间。
如:10.0.0.1,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。转换为2进制来说,一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是"0", 地址范围从0.0.0.1 到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机(2的24次方的主机数目)。
以子网掩码来进行区别:255.0.0.0.
B类地址:范围从128-191,如172.168.1.1,第一和第二段号码为网络号码,剩下的2段号码为本地计算机的号码。转换为2进制来说,一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是"10",地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。
以子网掩码来进行区别:255.255.0.0
C类地址:范围从192-223,如192.168.1.1,第一,第二,第三段号码为网络号码,剩下的最后一段号码为本地计算机的号码。转换为2进制来说,一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是"110"。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。
以子网掩码来进行区别: 255.255.255.0
D类地址:范围从224-239,D类IP地址第一个字节以"1110"开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
E类地址:范围从240-254,以"11110"开始,为将来使用保留。 全零("0.0.0.0")地址对应于当前主机。全"1"的IP地址("255.255.255.255")是当前子网的广播地址。
在日常网络环境中,基本是都在使用B,C两大类地址,而ADE这3类地址都不打可能被使用到。
从上述描述中,就可以看到有很多朋友会犯的一个错误,就是把192开头的IP地址设置成B类地址,虽然说在局域网中的网络通讯并不会受到影响,但事实上是不规范的一种划分行为。
子网掩码的简单叙述:子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。
以上述IP地址为例来说明一下,比如一个C类IP 地址 192.168.0.1,子网掩码为255.255.255.0(转换2进制,255在2进制表示8个1,也就是全部占满).这杨的写法表示,这个C类IP地址的网络号码为192.168.0 而起主机地址为1.
在这么多网络IP中,国际规定有一部分IP地址是用于我们的局域网使用,也就是属于私网IP,不在公网中使用的,他们的范围是:
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
接下来,我们再讨论一下,子网划分的问题。
假如给你一个C类的IP地址段:192.168.0.1-192.168.0.254,其中192.168.0 这个属于网络号码,而1-254表示这个网段中最大能容纳254台电脑主机。我们现在要做的就是把这254台主机再次划分一下,将它们区分开来。
192.168.0.1-192.168.0.254默认使用的子网掩码为255.255.255.0,其中的0在2进制中表示,8个0.因此有8个位置没有被网络号码给占用,2的8次方就是表示有256个地址,去掉一个头(网络地址)和一个尾(主机地址),表示有254个电脑主机地址,因此我们想要对这254来划分的话,就是占用最后8个0中的某几位。
假如占用第一个0.那么2进制表示的子网掩码为11111111.11111111.11111111.10000000.转换为10进制就为255.255.255.128,那么这时电脑主机应该为多少?其实很简单,就是2的7次方了(不再是原来的2的8次方了),2的7次方=128,因此假如子网掩码为255.255.255.128的话,这个C类地址可以被区分为2个网络,每个网络中最多有128台主机。 192.168.0.1-192.168.0.127为一个,192.168.0.128-192.168.0.255为第二个。
再举个例子,假如还是C类地址,其IP范围为192.168.0.1-192.168.0.254,假如子网掩码255.255.255.192(也就是最后8为主机位,被占用了2位,2进制表示为11111111.11111111.11111111.11000000),那么这个网段的电脑主机数目就是2的6次方=64台,总共有2的2次方=4个网段。第一个网段为192.168.0.1-192.168.0.63,第二个网段为192.168.0.64-192.168.0.127,第三个网段为192.168.0.127-192.168.0.191,第四个网段为192.168.0.192-192.168.0.254。
从这2个例子中,我们可以总结出一个规律,就是主机被占用了N位数,那么就有2的N次方个网络,也就有2 的8-N次方的主机数目了。
最后来简单叙述一下B类地址的子网划分方法
假如有一个B类地址网段,172.16.0.0-172.168.255.255 子网掩码为255.255.0.0,现在需要将这个网段进行子网划分。
不划分子网,那么就只有一个网络,这个网络里面包含2的16次方,也就有6万多个主机
因此,假如需要子网划分,网络地址就需要向主机地址借位。
例子一 第一步先把 172.16.0.0 255.255.0.0 转换为二进制来看,
10101100 00010000 00000000 00000000 128+32+8+4=172 16
11111111 11111111 00000000 00000000 255.255.0.0
假如网络地址问主机地址借了2位的话,那么子网掩码就是
11111111 11111111 11000000 00000000
255.255.192.0
因为借了2位,所以就有2的2次方,就划分了4个网络,每个网络就有2的14次方的主机地址
172.16.0.1 -172.16.63.254
172.16.64.1-172.16.127.254
172.16.128.1-172.16.191.254
172.16.192.1-172.16.254.254
例子二
假如B类地址172.16.0.0-172.16.255.255 255.255.0.0 需要划分更小的子网的,网络地址向主机地址总共借用10位数的话,从二进制来看
十进制 172.16.0.0 255.255.0.0
二进制 10101100 00010000 00000000 00000000 128+32+8+4=172 16
11111111 11111111 00000000 00000000
借用10位数后
用二进制表示的子网掩码就为 11111111.11111111.11111111.11000000
用十进制表示的话就为 255.255.255.192
那么 总共有 2的10次方个网络数目,每个网络中有2的6次方个地址,
用十进制来表示这么多地址的话,应该如下(因为有2的10次方,太多了,没法一个一个的写出来)
前面6个, 172.16.0.1-172.16.0.63
172.16.0.64-172.16.0.127
172.16.0.128-172.16.0.191
172.16.0.192-172.16.0.254
172.16.1.1---172.16.1.63
172.16.1.64-172.16.1.127
最后6个,
172.16.254.128-172.16.254.191
172.16.254.192-172.16.254.255
172.16.255.1---172.16.255.63
172.16.255.64-172.16.255.127
172.16.255.128-172.16.255.191
172.16.255.192-172.16.255.255
从这2个例子中可以看出,划分B类子网地址,其实和划分C类子网地址是一样的,只不过划分C类的时候,是将第四段地址划分,而划分B类的时候,可以划分第三段,也可以划分第四段而已。
Ip 讲解的更多相关文章
- 网络知识学习2---(IP地址、子网掩码)(学习还不深入,待完善)
紧接着:网络知识学习1 1.IP地址 IP包头的结构如图 A.B.C网络类别的IP地址范围(图表) A.B.C不同的分配网络数和主机的方式(A是前8个IP地址代表网络,后24个代表主机:B是16 ...
- 我推荐的一些iOS开发书单
文/叶孤城___(简书作者)原文链接:http://www.jianshu.com/p/2fa080673842著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 上次发了一下比较不错的i ...
- 汲取营养的blog专栏
网路上博客专栏是学习提升.思考深化的好途径,目前发现的博客价值高的平台: (1)EETOP www.eetop.cn (2)CSND www.csdn.net (3)cnblog www.cnblog ...
- ZooKeeper分布式专题与Dubbo微服务入门
第1章 分布式系统概念与ZooKeeper简介对分布式系统以及ZooKeeper进行简介,使得大家对其有大致的了解1-1 zookeeper简介1-2 什么是分布式系统1-3 分布式系统的瓶颈以及zk ...
- 基于tcpdump实例讲解TCP/IP协议
前言 虽然网络编程的socket大家很多都会操作,但是很多还是不熟悉socket编程中,底层TCP/IP协议的交互过程,本文会一个简单的客户端程序和服务端程序的交互过程,使用tcpdump抓包,实例讲 ...
- 网络编程懒人入门(九):通俗讲解,有了IP地址,为何还要用MAC地址?
1.前言 标题虽然是为了解释有了 IP 地址,为什么还要用 MAC 地址,但是本文的重点在于理解为什么要有 IP 这样的东西.本文对读者的定位是知道 MAC 地址是什么,IP 地址是什么. (本文同步 ...
- 第三百二十九节,web爬虫讲解2—urllib库爬虫—ip代理—用户代理和ip代理结合应用
第三百二十九节,web爬虫讲解2—urllib库爬虫—ip代理 使用IP代理 ProxyHandler()格式化IP,第一个参数,请求目标可能是http或者https,对应设置build_opener ...
- 18 网络编程-TCP/IP各层介绍(5层模型讲解)
1.TCP/IP五层协议讲解 物理层--数据链路层--网络层--传输层--应用层 我们将应用层,表示层,会话层并作应用层,从tcp/ip五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议 就 ...
- 网络编程-TCP/IP各层介绍(5层模型讲解)
1.TCP/IP五层协议讲解 物理层--数据链路层--网络层--传输层--应用层 我们将应用层,表示层,会话层并作应用层,从tcp/ip五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议 就 ...
随机推荐
- Docker 总结
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] Docker总结 简单介绍 1 Docker 架构 安装和环境配置 1 mac 11 brew安装 11 dmg文件安装 1 ...
- XML的xPath格式
XML的xPath格式(C#) xPath是XML提供的一种格式,用来查询XML的节点. <?xml version="1.0" encoding="ISO-885 ...
- 安装CocoaPods流程及常见问题(Xcode->homebrew->RVM->Ruby->CocoaPods)
一.HomeBrew 1.(转)HomeBrew的安装和简单使用 http://blog.csdn.net/maojudong/article/details/7918291 2.homebrew的简 ...
- git中添加多个SSH公钥,以及不同系统之间的差别
git学习已经也有一段时间了,基本的操作,口令会了一点点,但是还没有git团队开发的实践,这个有待加强~ git是在windows下面模拟Linux环境的,linux自带的ssh服务,可以通过该服务远 ...
- android app 集成 信鸽推送
推送其实挺中意小米推送的,并经用户群占比还是比较大的,奈何拗不过php后端哥们的选型,就只好用信鸽推送了,期间接入过程中也是遇到不少问题,所以记录下来,以后如果还是用信鸽推送的话,估计看看以前的博客, ...
- KMP详解之二
KMP算法详解 如果机房马上要关门了,或者你急着要和MM约会,请直接跳到第六个自然段. 我们这里说的KMP不是拿来放电影的(虽然我很喜欢这个软件),而是一种算法.KMP算法是拿来处理字符串匹配的.换句 ...
- iOS通过URL Scheme启动app(收集了常用的app的URL Scheme)
URL Scheme不仅可以打开其他的app,当然你也能为自己的app设置URL Scheme 1.如何设置给app设置URL Scheme 添加URL types字段数组 设置URL identif ...
- hitTest和pointInside和CGRectContainsPoint
很多app中TabBar中间会有个凸起超出部分,为了点击超出父视图但是还想让按钮响应 //重写hitTest方法,去监听发布按钮的点击,目的是为了让凸出的部分点击也有反应- (UIView *)hit ...
- js--javascript中字符串常用操作总结、JS字符串操作大全
字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用操作做个整理,一者加深印象,二者方便今后温 ...
- magento删除数据
1.删除一条数据: $delete = Mage::getSingleton("core/resource")->getConnection("core_wr ...