网络模型介绍

在计算机网络中有著名的OSI七层协议体系结构,概念清楚,理论完整,但是它既复杂又不实用。TCP/IP体系结构则不同,得到的广泛的应用。最终结合OSI和TCP/IP的优点,采用了一种只有五层协议的体系结构,本文的讲述的IP都是基于五层协议模型中的网络层。

分类的IP地址

IP地址的表示方法

IP地址就是给英特网上的每个主机(路由器)的每个接口分配一个在全世界范围内是唯一的32位的标识符。其组成第一个字段是网络号,第二个字段是主机号。一个主机号在前面的网络号所指明的网络范围内必须是唯一的,所以一个IP地址在整个网络中都是唯一的。目前分为A、B、C、D、E 五类IP地址。

  • 在A、B、C 三类地址中灰色的部分即为网络号,网络号的前三位是类别位,分别是0,10,110。也就是说我们可以凭借这个类别位置来判断网络类别。
  • 32位的总长度,由于A、B、C 三类网络号的长度的不同,导致A、B、C 类地址的主机号字段的字节数分别为3、2、1(一个字节8位)。
  • D 类地址的网络号为1110,用于多播(一对多通讯)。E 类地址的网络号为1111,保留以后使用。

因此我们一般使用的就是ABC三类网络地址,IP地址是32位的二进制代码,为了提高可读性,把32位的IP地址中的每8位用等效的十进制表示出来(点分十进制),于是我们日常生活中常见的IP地址就出现了。

例如:IP地址,128.11.3.31,转化为二进制为 100000000 00001011 00000011 00011111 ,可以看出类别位为 10,可以判断为一个B类地址。

常用IP地址的指派范围

网络号指派范围

  • A类地址网络号占用一个字节,但是由于有一位是类别位,只有7位可供使用,但是由于规定,网络字段全0是个保留字段表示本网络,而127(01111111)是另外一个保留字段,作为本地软件的环回测试。我们常见的127.0.0.1表示本机,原因也是出自这里。所以A类地址可以指派的网络号个数为(2^7-2).
  • B类网络地址网络号有两个字节,前两位为10已经固定,只剩下14位可用,由于这14位无论怎么取值都不会使得网络号为全0或者全1,单实际上规定,规定B类最小网络地址为128.1.0.0。因此B类地址可指派的网络号个数为(2^14-1).
  • C类地址有3个字节的网络字段号,前三位固定110,只有剩下21位可用,同样C类地址可指派的最小网络地址也是192.0.1.0。因此C类地址可指派的网络号个数为(2^21-1).

主机号指派范围

  • 由于主机号有规定,全0的主机号代表IP地址是“本主机”所连接到的单个网络地址(例,一主机地址为5.6.7.8,则该主机所在的网络地址为5.0.0.0),而全1则表示“所有的”,即表示该网络上的所有主机。
  • A类地址的主机号是由三个字节,24位组成,所以每一个A类网络中可分配的主机个数为(2^24-2).
  • B类地址的主机号是由两个字节,16位组成,所以每一个B类网络中可分配的主机个数为(2^16-2).
  • C类地址的主机号是由一个字节,8位组成,所以每一个C类网络中可分配的主机个数为(2^8-2).

总结IP指派范围

综上网络号和主机号的指派描述可知,IP地址空间共有232个地址。
所有A类地址共有(2^7-2)∗(2^24-2)个,大约2^31,占50%;
所有B类地址共有(2^14-1)∗(2^16-2)个,大约2^30,占25%;
所有C类地址共有(2^21-1)∗(2^8-2)个,大约2^29,占12.5%;

  • 所以可以这样来表示一个A类IP地址 n.x.y.z,若1≤n≤126,0≤x,y,z≤255,其中 x,y,z不同时为0也不能同时为255.
  • 所以可以这样来表示一个B类IP地址 n.m.x.y,若128≤n≤191,0≤m≤255,0≤x,y≤255,其中 I. 当n=128时,m≠0; II. x,y不同时为0也不能同时为255;
  • 所以可以这样来表示一个C类IP地址 n.m.k.x,若192≤n≤223,0≤m,k≤255,1≤x≤254,其中 当n=192时,k≠0.

IP地址和硬件地址

从层次角度来看,硬件地址是数据链路层和物理层使用的地址(常称作MAC地址),而IP地址是网络层和以上各层使用的地址,是一种逻辑地址。在网络层我们进行数据报文从IP1传输到IP2,无论我们中间经过多少次转发,从网络层来看,源地址始终是IP1,目的地址始终是IP2。但是从数据链路层来看,显然就不是这样了,这些是物理地址,很有可能从源节点经过多次中间节点的物理地址的转变才能到达目的节点。

而IP地址和物理地址的之间的转化则需要依靠两个重要的协议ARP(地址解析协议),RARP(逆地址解析协议)。IP地址通过ARP转化成物理地址,物理地址可以通过RARP转化成相应的IP地址。

子网和超网

现在假设这样一个场景,一个数据报起目的地址是145.13.3.10(在子网 145.13.3.0中),已经到达路由器R1(145.13.0.0),那么这个路由器怎么将它转发到145.13.3.0呢?
我们并不知道目的地址是否进行了子网的划分。
这就引出了子网掩码的概念了,子网掩码也是32位,由一串1和0组成,子网掩码中的1对应于IP地址中的网络号位置+子网网络号位置,子网掩码中的0对应与IP地址中现在的主机号位置。
我们只要将IP地址和子网掩码进行“与”运算,如果进行子网的划分,就立刻得出要找的子网的网络地址,如果没有进行子网划分(有默认的子网掩码),则直接能够得出该IP地址的网络地址出来。

  • A类地址的默认子网掩码是255.0.0.0
  • B类地址的默认子网掩码是255.255.0.0
  • C类地址的默认子网掩码是255.255.255.0

超网

无分类编址CIDR,使用变长的子网掩码,可以进一步提高IP地址的资源利用率。有两个特点
第一,消除了传统的ABC类地址及划分子网的概念,CIRD把32位的IP地址划分成为两个部分,网络前缀和剩下的部分,表示方法为,在IP地址后面加上“/”,然后写上网络前缀所占位数。
第二,把网络前缀相同的IP地址组成一个CIDR地址块,例如,IP地址 128.14.35.7/20 用二进制表示 100000000 00001110 00100011 00000111,所以我们很容易可以得出这块地址中最小地址为128.14.32.0,即 100000000 00001110 00100000 00000000,最大地址为128.14.47.255,即 100000000 00001110 00101111 11111111.

为了更加方便进行路由选择,CIDR使用32位的地址掩码,1的个数就是网络前缀的长度,如上面所举例中的/20的地址块的地址掩码是 11111111 11111111 11110000 00000000

因此可以看出,网络前缀越短,其地址块所包含的地址就越多,这样可以根据实际情况更加有效的分配IPv4的地址空间。而由很多个CIDR地址快构成的庞大的网络就就被称为“超网”。

(转)IP地址分配原理的更多相关文章

  1. TCP/IP协议原理与应用笔记18:构成子网和超网

    1. 引言: (1)类别IP编址(Classful IP)的缺陷 • 固定的3种IP网络规模      C类地址:少于255台主机的网络      B类地址:介于255~65535台主机的网络     ...

  2. TCP/IP协议原理与应用笔记17:IP编址(重点)

    1. IP地址(通用标识符) 对于同一个网络设备(主机或路由器)的不同网络连接,需要不同的IP地址进行标识 2. 主机标识符 主要有下面三种方式的主机标识方式: (1)Name:是什么,可读性强(了解 ...

  3. TCP/IP协议原理学习笔记

    昨天学习了杨宁老师的TCP/IP协议原理第一讲和第二讲,主要介绍了OSI模型,整理如下: OSI是open system innerconnection的简称,即开放式系统互联参考模型,它把网络协议从 ...

  4. 【网络】IP地址分配、端口号、分层

    3.网络分层 OSI的七层网络结构图和TCP/IP的五层结构图 OSI七层模型OSI中的层            功能                                          ...

  5. IP路由原理

    IP路由原理 一.什么是路由 路由是指导IP报文发送的路径信息. 二.路由表的构成 路由表是路由器转发报文的判断依据 三.路由器单跳操作 四.路由表查找规则 1.选择度量值小的进行转发 2.永远将下一 ...

  6. IP地址分配机构

    IP地址分配机构 全球ip地址分配机构 互联网编号分配机构(IANA,Internet Assigned Numbers Authority)负责分配和规划IP地址,以及对TCP/UDP公共服务的端口 ...

  7. [转]Oracle 11g RAC SCAN ip的原理及配置

    原文地址:http://tiany.blog.51cto.com/513694/1421917/ Oracle 11g RAC SCAN ip的原理及配置   Oracle 11g RAC网格即插即用 ...

  8. TCP/IP协议原理【转载】

    前述        各种L2数据网具有不同的通信协议与帧结构,其网络节点设备可以是各种类型的数据交换机(X.25.FR.Ethernet和ATM等分组交换机):而L3数据网(IP网或internet) ...

  9. 使用Nginx后如何在web应用中获取用户ip及原理解释

    当nginx作为反向代理功能时,转发请求到后端服务器 通常需要使用如下命令为转发的请求增加请求头 X-Forwarded-For proxy_set_header X-Forwarded-For &q ...

随机推荐

  1. CentOS安装QQ2012

    QQ想必大家都会用,在windows系统下一般都是使用客户端软件,但是在linxu系统下就没有想windows那样的客户端了.下面就次啊用wine在CentOS中安装腾讯QQ2012.

  2. 获取cookie信息

    随着网络安全(例如:登录安全等)要求的不断提升,越来越多的登录应用在登录时添加了验证码登录,而验证码生成算法也在不断的进化,因而对含登录态的自动化测试脚本运行造成了一定程度的困扰,目前解决此种问题的方 ...

  3. Scope_Pre_Post

    @Scope , 设置bean的生命周期,示例:   @Scope(value="prototype")//设置生存范围,一般用 singleton或prototype 14.@P ...

  4. 一个简单的 HTML 文档,带有最基本的必需的元素

    <html> <head> <title>文档的标题</title> </head> <body> 文档的内容... ... & ...

  5. Python数组使用

    python数组的使用 2010-07-28 17:17 1.Python的数组分三种类型: (1) list 普通的链表,初始化后可以通过特定方法动态增加元素. 定义方式:arr = [元素] (2 ...

  6. Selenium2学习(三)-- 八种元素元素定位(Firebug和firepath)

    前言 自动化只要掌握四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇主要讲如何用firefox辅助工具进行元素定位.元素定位在这四个环节中是至关 ...

  7. Linux 配置 ss

    Linux 配置 Shadowsocks 标签(空格分隔): ss VPS 1.首先安装 sudo pip install shadowsocks 2.然后在指定位置新建shadowsocks.jso ...

  8. 再学UML-UML用例建模解析(一)

    UML(统一建模语言)是当前软件开发中使用最为广泛的建模技术之一,通过使用UML可以构造软件系统的需求模型(用例模型).静态模型.动态模型和架构模型.UML通过图形和文字符号来描述一个系统,它是绘制软 ...

  9. Windows XP和Wndows7误删除了注册表下.exe文件夹之修复办法

    在桌面空白处鼠标右击选择“新建-文本文档”,然后将下面的代码复制粘贴进去;如图所示: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\. ...

  10. SpringMVC学习记录六——异常定义和上传图片

    19       异常处理 19.1      异常处理思路 系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试 ...