一个IP地址,却关联太多的知识

二进制与 8 比特

电脑中显示出来的数字是 10 进制的,键盘的每一个键都由一个 8 位的二进制编码,所以 1 字节等于 8 比特。对数字而言,1 的二进制是 00000001 ,255 的二进制 是 11111111,而256的二进制是9位。所以从8比特的概念而言,255是最大值。但是别忘记 0 这个数,从0~255 ,一共是 256 个数,2 的 8  次方是 256 。这就是 二进制与 8 比特 。IPv4 的规定是 4 组 8 比特值,那么就是4 个2的8次方之和,即2的32次方,这就是所有的IPv4个数。

ipv4 的 IP 个数表示与计算方法,举例而已

192.168.1.1/24 ,这是多少个IP呢,计算方法是  32 - 24 = 8 ,然后 2 的8 次方 = 256 ,就是256个IP地址,相当于一个C段地址

192.168.1.1/32     32-32=0 ,2 的 0次方 是1 ,表示一个 IP 地址

192.168.1.1/16     32 - 16 = 16  ,2 的16次方 个 IP地址

对 ipv6 而言,总数是128位,

fe80::216:3cff:fed6:f41e/64    表示 2 的 64 次方个

资料来源  https://www.zhihu.com/question/27050740/answer/57646373

IPV4

IPV4由4组8位二进制数组成

比如:1.1.1.1转换为二进制就是00000001.00000001.00000001.00000001

二进制是满二进一,所以每一位只有两个数0和1,那么32位二进制一共有2的32次方个不同的组合。

所以理论上IPV4一共有2的32次方个IP地址,也就是2^32=4294967296个。

IPV4一些特殊的IP地址

-127.x.x.x给本地网地址使用。

-224.x.x.x为多播地址段。

-255.255.255.255为通用的广播地址。

-10.x.x.x,172.16.x.x至172.31.x.x和192.168.x.x供本地网使用。

实际可以的IPV4地址很少,已经远远不够使用了。

说了IPV4就不得不提一下IPV6

IPv4一共有2^32=4294967296,IPv6有2^128=3.4028236692094*1038

远远超过了人类的计数范围,毫不夸张的做个比喻,IPV6可以为地球上的每一个沙粒分配一个IP地址。

关于IP地址还有很多知识,题住感兴趣可以看一下百科。

做个广告,最近我准备做一个IT技术问答社区,欢迎感兴趣的朋友访问,我们可以一起交流,网站还在功能完善阶段,地址ITwen

补充一下吧,有时间谢了一篇文章,原文地址关于IPV4和IPV6那些事

IPV4是InternetProtocolversion4的缩写,也就是互联网协议的第四个版本,下一个即将应用的版本是IPV6,有V4和V6就说明有V1,V2,V3,V5,也许由于某些原因它们都没能走出实验室。

IPV4运行在TCP/IP七层协议的网络层,是TCP/IP协议族的核心协议。目前全球因特网所使用的协议就是TCP/IP(个别实验室除外)。

IPV4的地址长度是32位(也就是4个字节),计算机中使用的是二进制,所以IPV4也就是32位二进制数组成的了,比如一个最简单的IPV4地址00000001.00000001.00000001.00000001,二进制数太长,不容易记住所以我们习惯写成十进制,上面的那一串0和1组成的IP地址换算为十进制就是1.1.1.1,还是十进制看着舒服吧。至于怎么换算大家可以自行百度一下二进制与十进制的转换方面的知识。

IPV4可以分为A,B,C,D,E5类地址

分类的原因就是为了更好地管理和应用IPV4地址,一个IPV4分为网络位和主机位。例如192.168.1.1/24,这个IP地址后面有个/24,说明前24位都是网络位,后8位是主机位,(还记得我们上面提到的二进制和十进制的转换吗?)。

IPV4的分类方法就是使用不同长度的网络位。

1.A类IP地址

一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”,地址范围1.0.0.1-126.255.255.254(二进制表示为:00000001000000000000000000000001-01111110111111111111111111111110)。可用的A类网络有126个,每个网络能容纳1677214个主机(1677214是主机位二进制换算的)。

2.B类IP地址

一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围128.1.0.1-191.255.255.254(二进制表示为:10000000000000010000000000000001-10111111111111111111111111111110)。可用的B类网络有16384个,每个网络能容纳65534主机。

3.C类IP地址

一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围192.0.1.1-223.255.255.254(二进制表示为:11000000000000000000000100000001-11011111111111111111111011111110)。C类网络可达2097152个,每个网络能容纳254个主机。

4.D类地址用于多点广播(Multicast)。

D类IP地址第一个字节以“1110”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。

地址范围224.0.0.1-239.255.255.254

5.E类IP地址

以“1111”开始,为将来使用保留。

E类地址保留,仅作实验和开发用。

全零(“0.0.0.0”)地址指任意网络。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。

IPV4一共有多少个IP地址呢?上面我们介绍过IPV4是32位二进制组成的,这也就意味着IPV4一共有32位,每位都可以有2个不同的数字0和1,所以IPV4理论上一共有2的32次方个地址,大概是4294967296这么多吧,乍一看还挺多的是吧,其实不然,还有一些保留的IP地址是不被在公网上使用的。

例如:

-127.x.x.x给本地网地址使用

-224.x.x.x为多播地址段

-255.255.255.255为通用的广播地址

-10.x.x.x,172.16.x.x至172.31.x.x和192.168.x.x供本地网使用

所以说,去掉保留的IP地址,实际可用的IP地址就更少了。实际的地址数本来就不多,再加上IPV4的分配不均匀我们可以使用的IPV4就更少了,由于IP地址是在美国产生的,所以美国拥有全球大多数的A类地址,要知道A类网络一共就有126个,每个网络能容纳1677214个主机,还有一些美国的大公司,比如微软,戴尔,,,记不清了,它们一个公司就有好多个A类地址,具体是多少记不清了。大概就是美国的IPV4地址数是中国的40倍左右。

虽然应用NAT,PAT技术能够暂时缓解一些IPV4地址不足带来的问题,但是物联网的时代已经到来,IPV4已经将近枯竭,以后我们们的自行车,手表,电视都需要IP地址,所以IPV6就顺理成章的被推出。

IPV6相对IPV4最大的变化就是,地址数多了,地址数多了,地址数多了重要的东西说三遍。IPV6由128位二进制组成,也就是说IPV6一共有2^128=340282366920940000000000000000000000000个地址(不知道我可漏0吗?)你猜一下这个数字有多大,,,可以为地球上的每一个沙粒分配一个IP地址,这次用不完了吧。

但是与IPv4一样,IPv6一样会造成大量的IP地址浪费。准确的说,使用IPv6的网络并没有2^128个能充分利用的地址。首先,要实现IP地址的自动配置,局域网所使用的子网的前缀必须等于64,但是很少有一个局域网能容纳2^64个网络终端;其次,由于IPv6的地址分配必须遵循聚类的原则,地址的浪费在所难免。

下面从百度百科复制(借鉴)一些IPV6的特性

(1)IPV6地址长度为128位,地址空间增加了2^128-2^32个。

(2)灵活的IP报文头部格式。使用一系列固定格式的扩展头部取代了IPV4中可变长度的选项字段。IPV6中选项部分的出现方式也有所变化,使路由器可以简单路过选项而不做任何处理,加快了报文处理速度;

(3)IPV6简化了报文头部格式,字段只有8个,加快报文转发,提高了吞吐量;

(4)提高安全性。身份认证和隐私权是IPV6的关键特性;

(5)支持更多的服务类型;

(6)允许协议继续演变,增加新的功能,使之适应未来技术的发展;

好了,先介绍到这,由于能力有限有些地方说的可能不够准确,关于IP地址的知识还有很多很多,写几本书都不算多,大家感兴趣可以自行Google或百度,欢迎转载记得留下来处。

ip地址个数的计算的更多相关文章

  1. IP地址个数的计算原理

    IP注释: IP地址(Internet Protocol Address),缩写为IP Adress,是一种在Internet上的给主机统一编址的地址格式,也称为网络协议(IP协议)地址. 它为互联网 ...

  2. 通过IP地址和子网掩码计算主机数

    知道ip地址和子网掩码后可以算出: 1. 网络地址 2. 广播地址 3. 地址范围 4. 本网有几台主机 例1:下面例子IP地址为192·168·100·5 子网掩码是255·255·255·0.算出 ...

  3. C#根据IP地址和子网掩码计算广播地址

    using System.Net; /// <summary> /// 获得广播地址 /// </summary> /// <param name="ipAdd ...

  4. IP地址及子网掩码计算

    主机号全0表示网络号,主机号全1表示广播地址 我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IP A类IP段 0.0.0.0 到127.255.255.255 B类IP段 128. ...

  5. TCP/IP协议原理与应用笔记03:IP地址分类

    1. 事实上,每个IP地址都包含两部分,即网络号和主机号. 例如:202.112.81.34指的 就是202.112.81这个网络的第34号机. 网络号:用于识别主机所在的网络: 主机号:用于识别该网 ...

  6. IP地址处理模块IPy

    IP地址规划是网络设计中非常重要的一个环节,规划的好坏会直接影响路由协议算法的效率,包括网络性能.可扩展性等方面. 在这个过程中,免不了要计算大量的IP地址,包括网段.网络掩码.广播地址.子网数.IP ...

  7. 重学计算机网络(二) - 曾记否,查IP地址

    先献上几个梗 1.1.1.1 不是测试用的,原来一直没分配,现在被用来做一个DNS了,宣传是比谷歌等公司的dns服务 更保护用户隐私. IP地址255.255.255.255,代表有限广播,它的目标是 ...

  8. IP地址分类及私网IP

    5类IP地址: IP地址共有32位字节,其中A~C类IP地址由类标识号.网络地址和主机地址组成,A类标识最高位为0,网络地址为1字节,主机地址为3字节, B类标识最高位为10,网络地址为2字节,主机地 ...

  9. ip地址扫描

    自己写的一个ip地址扫描脚本,功能是输入ip地址和掩码,通过ping检测整个网段的ip地址,输出ping的结果. 主要的几个函数如下: 1.ip地址转化为数值,方便计算 ip2num() { ip=$ ...

随机推荐

  1. ArcGIS api for javascript——显示多个查询结果

    描述 本例展示了在重叠的多边形处理查询的一种方式.单击一个石油和天然气的字段来查看地图上的高亮显示.如果仅仅点击一个要素,能够在单击一次来查看包含一些属性的InfoWindow.如果偶然单击到重叠的要 ...

  2. hdu 思维风暴

    点击打开链接 偶然在杭电上看到的题目,数学题.好像是一道六年级奥赛题目,反正我是没有想出来,也知道往那上面想.就是找不到规律啊.学习了网上的方法, 这道题须要求出来多添加的点,就是与之前每条边添加的点 ...

  3. cf B. Black Square

    B. Black Square time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  4. Ubuntu16.04安装官方Firefox 火狐浏览器 延长支持版(Extended Support Release, 简称“ESR”)

    Ubuntu16.04安装官方Firefox 火狐浏览器 延长支持版(Extended Support Release, 简称“ESR”) 延长支持版本(Extended Support Releas ...

  5. caioj 1065 动态规划入门(一维一边推3:合唱队形)

    就是最长上升子序列,但是要用n^2的算法. #include<cstdio> #include<algorithm> #define REP(i, a, b) for(int ...

  6. 详解如何在vue项目中引入饿了么elementUI组件

    在开发的过程之中,我们也经常会使用到很多组件库:vue 常用ui组件库:https://blog.csdn.net/qq_36538012/article/details/82146649 今天具体说 ...

  7. 【Codeforces Round #459 (Div. 2) C】The Monster

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 左括号看成1 右括号看成-1 设置l,r表示前i个数的和的上下界 遇到 左括号 l和r同时加1 遇到右括号 同时减1 遇到问号 因为 ...

  8. Activiti工作流框架学习(二)——使用Activiti提供的API完成流程操作

    可以在项目中加入log4j,将logj4.properties文件拷入到src目录下,这样框架执行的sql就可以输出到到控制台,log4j提供的日志级别有以下几种: Fatal  error  war ...

  9. Top 22 Free Responsive HTML5 Admin & Dashboard Templates 2018

    Top 22 Free Responsive HTML5 Admin & Dashboard Templates 2018 May 18, 2018 Alex Ivanovs Website ...

  10. class-dump 和 iOSOpenDev 的使用

    class-dump 官网地址:这里 我这里下载的是 class-dump-3.5.dmg 版本号的. 双击.dmg 文件,将  拉倒 /usr / local / bin 文件夹下,这样就能够在终端 ...