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五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议 就 ...
随机推荐
- Python基础(五)-函数
函数: 1.定义与使用: def 函数名(参数): "函数_文档字符串" 函数体 ... return [表达式] ## def:表示函数的关键字 函数名:函数名称,根据函数名调用 ...
- cmake+qt+qtcreator的配置,解决Q_OBJECT的问题
1.如果在编译qt项目的时候,一般头文件里都有Q_OBJECT,但是用cmake来编译的时候,就会报错,那么怎么解决呢? 解决的办法就是要在cmake里面写好配置 命令,再编译的时候,就不会报错了,写 ...
- maven 项目 pom.xml文件中配置的jar包下载报错
[ERROR] [ERROR] Some problems were encountered while processing the POMs:[ERROR] 'dependencies.depen ...
- IIS下无法访问.ini后缀文件
环境: windows server 2003 R2.IIS6 问题: 无法访问网站下的.ini后缀的文件 解决办法: 添加ini文件的MIME映射,让IIS能下载扩展名是ini的文件 添加路径:相应 ...
- 转发一个javascript的编码规范
google出品:http://chajn.org/jsguide/javascriptguide.html
- lr_save_var() 截取任意字符串长度,以参数形式输出(参数转变量)
Action() { char * desc=(char *)malloc(10); //定义指针变量,以变量形式存放截取到的参数值 // char * aa = "jadkshfkasd ...
- 变更mysql数据库文件目录 Linux
本次需要将mysql默认的数据库文件路径/var/lib/mysql 改为新挂载的目录/data/mysql上,需要做以下修改 1.停止mysql服务 service mysqld stop 2.复制 ...
- 《JavaScript高级程序设计》读书笔记 ---Array 类型
除了Object 之外,Array 类型恐怕是ECMAScript 中最常用的类型了.而且,ECMAScript 中的数组与其他多数语言中的数组有着相当大的区别.虽然ECMAScript 数组与其他语 ...
- python学习day2
一.模块初识 python模块 模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用 ...
- js字符串函数 [http://www.cnblogs.com/qfb620/archive/2011/07/28/2119799.html]
JS自带函数concat将两个或多个字符的文本组合起来,返回一个新的字符串.var a = "hello";var b = ",world";var c = a ...