(转)IP协议详解之子网寻址、子网掩码、构造超网
子网寻址
1. 从两级IP地址到三级IP地址
<1>. IP地址利用率有时很低。
<2>. 给每一个物理网络分配一个网络号会使路由表变得太大而使网络性能变坏。
<3>. 两级IP地址不够灵活。
为了解决上述问题,1985年起在IP地址中增加了一个“子网号字段”,使两级IP地址变为三级IP地址。这种方法叫做划分子网( subnetting ), 或子网寻址或子网路由选择。
2. 划分子网的基本思路如下:
<1>. 一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网( subnet )。划分子网纯属一个单位内部的事情。本单位以外的网络看不见这个网络是由多少个子网组成,因为这个单位对外仍然表现为一个网络。
<2>. 划分子网的方法是从网络的主机号借用若干位作为子网号 subnet-id,当然主机号也就相应减少了同样的位数。于是两级IP地址在本单位内部就变成三级IP地址:网络号、子网号和主机号。也可以用以下记法来表示:
IP地址 ::= { <网络号>, <子网号>, <主机号>}
<3>. 凡是从其他网络发送给本单位某个主机的IP数据报,仍然是根据IP数据报的目的网络号找到连接在本单位网络上的路由器。但此路由器在收到IP数据报后,再按目的网络号和子网号找到目的子网,把IP数据报交付给目的主机。
子网掩码
1. 从IP数据报的首部并不知道源主机或目的主机所连接的网络是否进行了子网划分。这是因为32位的IP地址本身以及数据报的首部都没有包含任何有关子网划分的信息。因此必须想办法,使IP数据报到达时路由器知道如何把它转发至某个子网。这就是子网掩码( subnet mask )。
子网掩码:也是32位,由一串1和跟随的一串0组成。子网掩码中的1对应于IP地址中原来的 net-id 加上 subnet-id,而子网掩码中的0对应于现在的 host-id 。
使用子网掩码的好处是:不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的“与”运算( AND ),就立即得出网络地址来。

另外,不划分子网时,使用子网掩码可以更便于查找路由表。
如果一个网络不划分子网,则使用默认子网掩码。
A类地址的默认子网掩码是255.0.0.0, 或 0xFF000000。
B类地址的默认子网掩码是255.255.0.0, 或 0xFFFF000。
C类地址的默认子网掩码是255.255.255.0, 或 0xFFFFFF00。
划分子网增加了灵活性,但却减少了能够连接在网络上的主机数。
同样的IP地址和不同的子网掩码可以得出相同的网络地址,但是,不同的子网掩码的效果是不同的。
2. 使用子网时分组的转发
使用子网划分时,路由表必须包含以下三项内容:目的网络地址、子网掩码和下一跳地址。
在划分子网的情况下,路由表转发分组的算法如下:
<1>. 从收到的数据报的首部提取目的IP地址 D 。
<2>. 先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和 D 逐位相“与”(AND操作),看结果是否和相应的网络地址匹配。若匹配,则把分组进行直接交付(当然还要把 D 转换成物理地址,把数据报封装成帧再发送出去),转发任务结束。否则就是间接交付,执行<3>。
<3>. 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行<4>。
<4>. 对路由表中的每一行(目的网络地址、子网掩码、下一跳地址),用其中的子网掩码和 D逐位相“与”(AND操作),其结果为 N 。若 N 与该行的目的网络地址匹配,则数据报传送给指明的下一跳路由器;否则,执行<5>。
<5>. 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行<6>。
<6>. 报告转发分组出错。
无分类编址CIDR(构造超网)
1. 在一个划分子网的网络中可同时使用几个不同的子网掩码。使用变长子网掩码VLSM ( Variable Length Subnet Mask ) 可进一步提高IP地址资源的利用率。在VLSM的基础上又进一步研究出无分类编址方法,它的正式名字是无分类域间路由选择CIDR ( Classless Inter-Domain Routing )。
CIDR两个主要特点:
<1>. 消除了传统的A类、B类和C类地址以及划分子网的概念。
CIDR把32位的IP地址划分为两个部分。前面的部分是“网络前缀”用来指明网络,后面的部分则用来指明主机。因此CIDR使IP地址从三级编址又回到了两级编址,但这已是无分类的两级编址。它的记法是:
IP地址 ::= {<网络前缀>, <主机号>}
CIDR还使用“斜线记法”,或称为CIDR记法,即在IP地址后面加上斜线“/”,然后写上网络前缀所占的位数。
128.14.35.7/20 = 10000000 00001110 00100011 00000111
<2>. CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”。我们只要知道CIDR地址块中的任何一个地址,就可以知道这个地址块的起始地址(即最小地址)和最大地址,以及地址块中的地址数。
最小地址 128.14.32.0 10000000 00001110 00100000 00000000
最大地址 128.14.47.255 10000000 00001110 00101111 11111111
这个地址块共有 2^12-2 个地址,我们可使用地址块中的最小地址和网络地址块的位数指明这个地址块。例如,上面的地址块可记为 128.14.32.0/20,也可简称为“ /20 地址块 ”。
CIDR使用32位的地址掩码,由一串1和一串0组成,而1的个数是网络前缀的长度。例如,/20 地址块的地址掩码是: 11111111 11111111 11110000 00000000。斜线记法中,斜线后面的数字就是地址掩码中1的个数。
由于一个CIDR地址块中有很多地址,所以在路由表中就利用CIDR地址块来查找目的网络。这种地址的聚合常称为路由聚合( route aggregation ),它使得路由表中的一个项目可以表示原来传统分类地址的很多个路由。路由聚合也称为构成超网。
CIDR记法有很多形式。
10.0.0.0/10 可简写为 10/10。
00001010 00* (意思是*号前是网络前缀,*表示主机号,可以任意值)
CIDR可更加有效地分配IPv4的地址空间。
(转)IP协议详解之子网寻址、子网掩码、构造超网的更多相关文章
- 【转】IP协议详解之子网寻址、子网掩码、构造超网
子网寻址 1. 从两级IP地址到三级IP地址 <1>. IP地址利用率有时很低. <2>. 给每一个物理网络分配一个网络号会使路由表变得太大而使网络性能变坏. <3> ...
- TCP/IP协议详解概述
TCP/IP协议详解卷1--第一章概述--读书笔记 作者:vpoet 日期:2015/06/25 注:本系列的文章只是作者对TCP/IP协议的理解,难免会出现纰漏或者不完整,当然也有可能很肤浅,希望大 ...
- 【转载】TCP /IP协议详解
首先,TCP/IP不是一个协议,而是一个协议族的统称. 里面包括了IP协议,IMCP协议,TCP协议,以及http.ftp.pop3协议等等. TCP/IP协议分层 提到协议分层,我们很容易联想到IS ...
- TCP /IP协议详解【转】
转自:https://www.jianshu.com/p/0cf648510bce?utm_campaign=maleskine&utm_content=note&utm_medium ...
- IP协议详解(转)
本文转载自博文协议森林05 我尽力 (IP协议详解).这篇博文写的很有趣味,特转载! IPv4与IPv6头部的对比 我们已经在IP接力中介绍过,一个IP包分为头部(header)和数据(payload ...
- TCP/IP协议详解---概述
工作之后,才发现以前在学校里学的东西忘得太快太干净了,现在需要一点点地捡起来了,要不然写几行程序会闹很多笑话会出现很多bug的.从今天开始,翻一翻<TCP/IP协议详解 卷1>这本 ...
- 第二章 IP协议详解
第二章 IP协议详解 2.1 IP服务的特点 它为上层协议提供了无状态,无连接,不可靠的服务 名称 简介 优点 缺点 对付缺点的方法 无状态 IP通信双方不同步传输数据的状态信息 无须为保持通信的状态 ...
- linux高性能服务器编程 (二) --IP协议详解
第二章 IP协议详解 什么是IP协议:IP 协议是TCP/IP协议族的动力,它为上层提供了无状态.无连接.不可靠的服务. IP 头部信息:头部信息会出现在每一个IP数据报上,便于记录IP通信的源端IP ...
- (转)协议森林05 我尽力 (IP协议详解)
协议森林05 我尽力 (IP协议详解) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! IPv4与IPv6头部的对比 我们已经在I ...
随机推荐
- 四:SpringBoot-定时任务和异步任务的使用方式
SpringBoot-定时任务和异步任务的使用方式 1.定时任务 2.同步和异步 3.定时器的使用 3.1 定时器执行规则注解 3.2 定义时间打印定时器 3.3 启动类开启定时器注解 4.异步任务 ...
- Spring Cloud,Docker书籍资源、优秀博文等记录
Spring Cloud,Docker书籍资源.优秀博文等记录 Spring Cloud,Docker书籍资源.优秀博文等记录 一.书籍 二.博文地址 三.思维导图Or图片 3.1一张图总结 Dock ...
- 设计模式c++(2)——策略模式
策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客体. 书上的例子是鸭子,参考blog的例子是缓存算法.参考blog见:https://blog.csdn ...
- centos6.5升级gcc 4.4.7为最新版4.9.1
==================本方法切实可行===桌面版不建议用.centos============================== 1.下载源码包 我的下载 gcc-4.9.1.tar ...
- Apache Cocoon XML注入 [CVE-2020-11991]
受影响版本: Apache Cocoon <= 2.1.x 程序使用了StreamGenerator这个方法时,解析从外部请求的xml数据包未做相关的限制,恶意用户就可以构造任意的xml表达式, ...
- JVM调优之垃圾定位、垃圾回收算法、垃圾处理器对比
谈垃圾回收器之前,要先讲讲垃圾回收算法,以及JVM对垃圾的认定策略,JVM垃圾回收器是垃圾回收算法的具体实现,了解了前面的前置知识,有利于对垃圾回收器的理解. 什么是垃圾? 垃圾,主要是指堆上的对象, ...
- jvm系列三垃圾回收
三.垃圾回收 1.如何判断对象可以回收 引用计数法 弊端:循环引用时,两个对象的计数都为1,导致两个对象都无法被释放 可达性分析算法 JVM中的垃圾回收器通过可达性分析来探索所有存活的对象 扫描堆中的 ...
- 爬虫入门到放弃系列02:html网页如何解析
前言 上一篇文章讲了爬虫的概念,本篇文章主要来讲述一下如何来解析爬虫请求的网页内容. 一个简单的爬虫程序主要分为两个部分,请求部分和解析部分.请求部分基本一行代码就可以搞定,所以主要来讲述一下解析部分 ...
- Inceptor查询语句
-- MySQL中的语句都能用,不再一一描述,只记录一些不同 详情见Inceptor 6.0文档 3.4.4查询语句这节 -- 查询语句 SELECT开头,可以通过添加多种从句从Inceptor中的表 ...
- CentOS环境下搭建青岛大学OJ
1.安装必要的依赖sudo yum updatesudo yum -y install epel-releasesudo yum -y install python-pipsudo yum clean ...