文档章节

3.IPv4地址

alon龙武
 alon龙武
发布于 2014/11/14 22:24
字数 2058
阅读 255
收藏 16
点赞 0
评论 0

TCP/IP协议簇中,用于在IP层识别每一个连接到因特网设备的标识符称为IP地址。IPv4地址是一个32为的地址,唯一地且全球地定义一台主机或路由器与因特网之间的一个连接。IPv4的地址空间是232 4294967296


1.分类编址

1.1 分类

分类编址时,IP地址空间被分为A~E五类,每一类地址空间占用情况:

网络标识和主机标识

对于A类地址,前一个字节用于定义网络标识;对于B类地址,前两个字节用于定义网络标识;对于C类地址,前三个字节用于定义网络标识


1.2 地址类和地址块

A类地址,一个字节定义网络标识,而且最左一位始终为0,剩下7位可变。所以,A类地址共有27=128个地址块,每个地址块包含16777216个地址,存在大量的地址浪费

B类地址,两个字节定义网络标识,而且最左两位始终为10,剩下14可变。所以,B类地址共有214=16384个地址块,每个地址块包含65536个地址,存在很多地址浪费

C类地址,三个字节定义网络标识,而且最左三位始终为110,剩下21可变。所以,C类地址共有221=2097152个地址块,每个地址块有256个地址,对于大多数机构来说不够用

D类地址用来进行多播,只有一个地址块。E类地址只有一个地址块,设计为保留地址


1.3 两级编址

分类编址时,同一个网络中的所有地址都属于同一个地址块,且每个地址都包含两部分:网络标识和主机标识。网络标识指明了网络,主机标识指明了连接到网络上的一台特定的主机

提取一个地址块中的信息:一个地址块就是一段地址。给定地址块中的任意一个地址,获取地址块的三个信息:地址数、首地址和末地址:

  • 地址块的地址数N可以用N=232-n求取

  • 要求出首地址,保持最左边的n位不变,并将右边的32-n位全部置0

  • 要求出末地址,保持最左边的n位不变,并将右边的32-n位全部置1

网络地址

给定任意一个地址可以求出有关该地址的所有信息。其中首地址就是网络地址,用来为分组选择路由,使其能够到达目的地址。假设一个互联网由m个网络组成,且一个路由器有m个接口。当来自任意源主机的一个分组到达路由器,路由器根据分组首部包含的目的地址找出网络地址之后,咨询路由表找出响应的接口转发分组。网络地址实际上就是网络的标识,所有网络都要通过网络地址来识别

网络掩码

因特网上的路由器通常用一种算法从分组的目的地址提取网络地址。要做到这一点,需要一个网络掩码。分类地址的网络掩码或默认掩码是一个32位的数,左边n位全部置1,右边32-n位全部置0:


1.4 三级编址:子网划分

IP地址最初的设计为两级编址,要想抵达因特网的一台主机,首先必须抵达其网络,然后才能找到主机。然而,两级编址不够,原因有两点:首先,一个被授权使用A类或B类地址的组织,处于安全性和管理方便考虑,有必要将自己的大网络进一步划分为若干个子网。其次,因为A类和B类地址几近耗尽,而C类地址又太小,无法满足大多数组织的需要,所以已经拥有A类或B类地址使用权的组织可以将地址块进一步划分为多个较小的子地址块,并与其他组织一起分享一个地址块分割为若干较小地址块的思想称为子网划分。一个网络被划分为若干个较小的子网络,每个子网都有自己的子网地址。网络地址中出现的/16表示的是网络标识的长度

子网掩码

当一个网络没有子网划分时,使用的是网络掩码。而当一个网络划分为若干子网后,需要为每个子网建立一个子网掩码。一个子网又子网标识和主机标识两部分组成。子网划分增加了网络标识的长度,同时减少了主机标识的长度。当一个网络划分为s个子网且每个子网的主机数相同时,计算每个子网的子网标识:Nsub=N+log2S。N是网络标识的长度,Nsub是各子网标识的长度,而S是子网的数目,它必须是2的乘方

例如:一个B类网络划分为四个子网,因此N的值为16,而N1=N2=N3=N4=16+log24=18。意味着子网掩码有18个1和14个0组成,即子网掩码是255.255.192.0,不同于B类的网络掩码255.255.0.0

子网地址

当一个网络划分子网后,子网的首地址就是它的子网标识符,也是路由器为分组选择路由到达正确子网时要用到的。给定某个子网的一个任意地址,路由器可以找出其子网掩码。用子网掩码与给定的地址做与运算,可以求出子网地址。例如一个B类网络划分为四个子网,已知子网2的一个地址为141.14.120.77,可以求出子网掩码为255.255.192.0,进而算出子网地址为141.14.64.0


2. 特殊地址

2.1 特殊地址块

0地址:地址块0.0.0.0/32仅含有一个地址,被保留用于某主机需要发送一个IPv4分组,但不知道自己地址的情况下。通常用于主机正在启动,主机为了获取自己的地址,向引导DHCP服务器发送一个IPv4分组,以全0的地址作为源地址,受限广播地址作为目的地址

1地址:受限广播地址

地址块255.255.255.255/32仅含有一个地址,被保留用于当前网络的受限广播地址。如果某主机想把报文发送给网络中其它所有主机,可用这个地址作为IPv4分组的目的地址。但是,路由器会把这种类型地址的分组阻挡住,所以广播只能局限在本地网络

环回地址

地址块127.0.0.0/8被用作环回地址,用来测试机器上的软件。使用这个地址,分组没有离开主机,只是简单地由协议软件返回。例如客户进程可以用环回地址向本机的服务器进程发送一个报文。应当注意,环回地址在IPv4分组只能用于目的地址

专用地址

有些地址被指派为专用地址,它们不会再全球被识别

多播地址

地址块224.0.0.0/4为多播通信保留

 

2.2 每个地址块中的特殊地址

网络地址:一个地址块的首地址定义为网络地址。实际上,这个地址指的是网络本身,而不是网络哪一台主机。当然,子网络中的首地址称为子网络地址

直接广播地址

一个地址的末地址可用作直接广播地址。通常,路由器会用这个地址把一个分组发送给某个特定网络上的所有主机。注意这个地址只能被用作目的地址



© 著作权归作者所有

共有 人打赏支持
alon龙武
粉丝 2
博文 14
码字总数 20481
作品 0
深圳
程序员
51CTO为您精心推荐:挨踢攻城师必备的路由交换技术视频课程

亲爱的学员们: 您好!51CTO学院为梦想增值,诚邀您的关注!51CTO学院致力于让专家分享技术并让技术变现,让广大技术爱好者便捷、实惠的获取优质学习资源。 为了方便大家的学习,我们特别整理...

视频课程 ⋅ 2014/04/10 ⋅ 0

Wireshark分析器分析数据流过程

Wireshark分析器分析数据流过程 分析包是Wireshark最强大的功能之一。分析数据流过程就是将数据转换为可以理解的请求、应答、拒绝和重发等。帧包括了从捕获引擎或监听库到核心引擎的信息。W...

大学霸 ⋅ 2015/01/21 ⋅ 0

关于IPv4协议的一点看法-地址空间,分段标识,LinuxNAT

IPv4实际上是一个被设计的很勉强的协议,远远没有TCP等传输层协议设计的好。对于它的升级版,IPv6,实际上我也一样不看好,虽然它解决了很多问题,扩展了地址空间,增加了协议堆栈化的支持....

晨曦之光 ⋅ 2012/04/10 ⋅ 0

顶尖程序员是如何炼成的----Java学习(创世纪篇)

写程序就像发现哥伦布发现新大陆,越深入越有趣,介绍Java学习。 一、 网络参考模型 1、OSI参考模型和TCP/IP 参考模型 七层描述: (1). 物理层:主要定义物理设备标准,如网线的接口类型、光...

crossmix ⋅ 2015/11/17 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多
vim介绍、vim颜色显示和移动光标、vim一般模式下移动光标、一般模式下复制粘贴剪切

VIM Vim 是 UNIX 文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff),语法高亮,全面的帮助系统,本地脚本(Vimscript),和便于选择的...

蛋黄Yolks ⋅ 16分钟前 ⋅ 0

springboot+mockito测试controller层遇到的问题

使用MockitoJUnitRunner测试的一个例子,原来报错无法找到bean, 类似的异常如下:createBeanError..... 原因:是因为@Runwith使用了SpringRunner,应该修改为MockitoJUnitRunner 代码如下: ...

writeademo ⋅ 27分钟前 ⋅ 0

关于“幂等”操作

一个幂等(idempotent)操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同. 开发中, 我们经常考虑幂等操作的场景有“接口调用”、“MQ消费”、“自动任务”等 接口调用, 可能出现...

零二一七 ⋅ 35分钟前 ⋅ 0

Dubbo服务服务暴露之ProxyFactory Invoker

Dubbo服务暴露过程中有涉及到调用ProxyFactory 中方法获取Invoker对象的过程,现在我们来深究下源码,来看下这个过程是在做些什么,返回的Invoker 对象是什么,我们来看一下代码的切入点: ...

哲别0 ⋅ 50分钟前 ⋅ 0

GP两种连接方式性能测试

GP两种连接方式性能测试 Pivotal import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class GPQueryStrin......

仔仔1993 ⋅ 54分钟前 ⋅ 0

jsonrpc-4j代码解析

解析文件 AutoJsonRpcServiceImplExporter JsonServiceExporter AutoJsonRpcServiceImplExporter 路径:com.googlecode.jsonrpc4j.spring.AutoJsonRpcServiceImplExporter AutoJsonRpcServi......

郭恩洲_OSC博客 ⋅ 今天 ⋅ 0

百度搜索

from selenium import webdriver import time brower=webdriver.Firefox() brower.get('http://www.baidu.com') input=brower.find_element_by_id('kw') input.send_keys('中南大学') time.s......

南桥北木 ⋅ 今天 ⋅ 0

tomcat 日志记录器

1、日志记录器是记录消息的组件 日志记录器需要与某个servlet 容器相关联 2、Logger 接口 共定义了5种日志级别:FATAL、ERROR、WARNING、INFORMATION、DEBUGGER setVerbosity 设置级别 setC...

职业搬砖20年 ⋅ 今天 ⋅ 0

Thrift RPC实战(三) Thrift序列化机制

1.Thrift基础架构 Thrift是一个客户端和服务端的架构体系,数据通过socket传输; 具有自己内部定义的传输协议规范(TProtocol)和传输数据标准(TTransports); 通过IDL脚本对传输数据的数据结构...

lemonLove ⋅ 今天 ⋅ 0

网站建设就要像2018世界杯的俄罗斯队大杀四方[图]

今天心情不错,因为昨天晚上观看了世界杯比赛,尤其是对俄罗斯队的大杀四方感到十分霸气侧漏啊,因此我联想到了自己的博客网站,我的博客是去年年底上线的,一直想建设一个关于读书和读后感作...

原创小博客 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部