Internet地址结构
IP地址结构及分类寻址
IPv4地址空间划分
| 类 | 地址范围 | 高位前缀(掩码) | 网络数量 | 主机数量 | 百分占比 |
| A | 0.0.0.0 ~ 127.255.255.255 | 0 (255.0.0.0) | 2^7) | 2^24 | 1/2 |
| B | 128.0.0.0 ~ 191.255.255.255 | 10 (255.255.0.0) | 2^14 | 2^16 | 1/4 |
| C | 192.0.0.0 ~ 223.255.255.255 | 110 (255.255.255.0) | 2^21 | 2^8 | 1/8 |
| D | 224.0.0.0 ~ 239.255.255.255 | 1110 (N/A) | N/A | N/A | 1/16 |
| E | 240.0.0.0 ~ 255.255.255.255 | 1111 (N/A) | N/A | N/A | 1/16 |
注意:上表部分数据是不严谨的,一般地址的首位地址和末位地址是不使用的
高位前缀与UTF-8的首字节高位很类似(类如:ASCII:0xxxxxxx 常用中文字符:1110xxxx 10xxxxxx 10xxxxxx)
D、E类IP地址组成不区分网络号和主机号,所以没有子网掩码一说
D类地址是一种组播地址,主要是留给Internet体系结构委员会IAB(Internet Architecture Board)使用 ;
E类地址:网络地址的最高位必须为“11110”,第一个八位位组值的范围从240-255。可用的地址范围从240.0.0.0 到255.255.255.254,为将来使用保留。
子网寻址
下面来以一个B类地址来作子网寻址的例子:

上图是一个B类地址被划分子网的例子,假设Internet中的一个站点已被分配一个B类网络号(IP地址与255.255.0.0逐位相与得到),该站点的前16bit固定,这是由于这些位已被分配给核心机构。后16位(仅用于在无子网的B类网络中创建主机号)现在可以由站点网络管理员按需分配。在这个例子中,7位被选为子网号,剩下9位为主机号。这一特殊分配可以使得该站点支持2^7个子网, 每一个子网包含(2^9-2)台主机。注意,只有划分子网的网络中的主机和路由器知道子网结构。换句话说,子网寻址纯粹是站点内部的问题。

注意:上图中站点内子网掩码为255.255.255.0
某一个站点被分配一个典型B类网络号128.32。网络管理员决定用于站点范围内的子网掩码为255.255.255.0, 由于B类地址固定掩码为255.255.0.0,则该站点能够支配的子网ID的位数为8位,即能够分配256个子网。每一个子网能够容纳254台主机地址。图中左侧局域网段内主机的IPv4地址开始于128.32.1, 右侧局域网段内的IPv4开始于128.32.2。
该虚拟站点使用了一个边界路由器连接Internet和两个局域网。该站点与Internet的数据交互通过一个边界路由器连接。
子网掩码
例如当子网掩码为255.255.255.0时,如何处理IPv4地址128.32.1.14
分析: 128.32.1.14为一个B类网络,固定网络号为高16bit, 固定掩码为255.255.0.0,在当前站点(网络号为128.32)下,可以看出该站点网络管理员拿出主机位的高8bit作为子网号,尾8bit作为主机号。

从上图可以看出128.32.1.14属于子网128.32.1.0/24
再次强调,Internet其余部分不需要子网掩码的知识,因为站点之外的路由器做出决策只是基于地址的网络号部分(例如A类的网络号为高8bit,B类的网络号为高16bit,C类的网络号为高24bit),并不需要网络/子网或主机部分。因此子网掩码纯粹是站点内部的问题。
可变长度子网掩码(VLSM)
目前为止,我们已经讨论了如何讲一个分配给站点的网络号进一步细分为多个可分配的大小相同的子网,并根据该站点网络管理员的合理要求使得每一个子网能支持相同数量的主机。
下面以一个网络拓扑结构例子,来了解VLSM

从上图中可以看出,该站点分配了一个128.32的B类网络号,站点管理员在此基础上进行子网划分,固定掩码为是高16bit不变(即B类掩码255.255.0.0),一共划分了四个子网,128.32.1.0/24、128.32.2.0/24(包含128.32.2.128/25)、128.32.230.129/26。
对于128.32.230.{128-191}局域网(子网)而言,其网络前缀为(128.32.230.128/26),用于为什么呢?该子网与边界路由器137.164.23.30/32的路由器的IP为128.32.230.129/26,得知该局域网的子网掩码为11111111 11111111 11111111 11000000(即255.255.255.192.0/26),与126.32.230.129/26逐位相与操作得到10000000 00100000 11100110 10000000(即128.32.230.128),
网络前缀有什么作用?当Internet中一台主机A要发送给B(128.32.2.134)数据要经历下述几个阶段:
1. 查找本地或者其所在链路(局域网)上的路由器中的ARP缓存表,得到B的MAC地址,并根据路由算法找到该站点的边界路由器。
2. 在边界路由器中取出数据报的目的IP(即128.32.2.134)和子网掩码(255.255.255.128),将两者相与,得到网络前缀128.32.2.128。
3. 确定了B属于子网128.32.2.128,最后由内部路由器转发数据报至目的主机B。
VLSM用于分割一个网络号,使得每一个子网支持不同数量的主机。在子网内每一个路由器和主机除了IP地址还需要配置一个子网掩码。
广播地址
在每一个IPv4子网中,一个特殊地址被保留作为子网的广播地址。
如何计算一个IP所在子网的广播地址呢?这里使用128.32.1.14举例
在上图中, 我们知道128.32.1.14在站点内的子网掩码是255.255.255.0.
第一步:子网掩码(255.255.255.0)取反得到A(0.0.0.255)
第二步:A与IP地址进行或运算得到该子网广播地址(128.32.1.255)
CIDR和聚合
通过取消分类结构的IP地址,能分配各种尺寸的IP地址块。但是,对路由器而言,这样做还是没能解决路由表条目数。
路由聚合

Internet地址结构的更多相关文章
- 第二章:Internet地址结构
引言 本章主要介绍了: 如何为Internet中的设备分配IP地址. 有助于理由可扩展性的地址结构分配方式. 特殊用途的地址. 表示IP地址 IPv4地址 长32位,采用点分四组或点分十进制来表示. ...
- 第二章 Internet 地址结构
注意: 这个系列的博客只是为了巩固我学习的知识,参考的价值不是很大,如果需要,请转到http://www.cnblogs.com/ZCplayground/p/7764436.html Interne ...
- TCP/IP 笔记 - Internet地址结构
连接到Internet中的每台设备至少都有一个IP地址,IP地址表示了流量的来源(好比别人要找你玩,需要知道你家的地址:网络中别人需要和你通信,也需要知道IP地址),且Internet中的IP地址必须 ...
- 《TCP/IP 详解 卷1:协议》第 2 章:Internet 地址结构
第二章介绍 Internet 使用的网络层地址,即熟知的 IP 地址.连接到 Internet 的设备,基于 TCP/IP 的专用网络中使用的设备都需要一个 IP 地址. 路由器(见 IP 协议 一章 ...
- <TCP/IP>Internet地址结构回顾
本章介绍了Internet中使用的网络层地址,又称IP地址. 要想在网上冲浪,一个设备至少要有一个IP地址(PS:我用赛风FQ的时候,居然自动更换了IP地址,顿时感觉很神奇但是不知道为什么) ***成 ...
- 二、Internet地址结构
IP路由器实现的转发程序使用IP地址来识别流量去向.IP地址也表示流量来源. 2.1 IP地址的表示 IPV4地址通常采用点分四组或点分十进制表示法,如192.168.1.1. 点分四组表示法由四个用 ...
- IP地址结构(转载)
分类寻址(网络号+主机号) 在最初定义Internet地址结构时,每个单播IP地址都有一个网络部分,用于识别接口使用的IP地址在哪个网络中可被发现:以及一个主机地址,用于识别由网络部分给出的网络中的特 ...
- 套接字编程相关函数(1:套接字地址结构、字节序转换、IP地址转换)
1. 套接字地址结构 1.1 IPv4套接字地址结构 IPv4套接字地址结构通常也称为“网际套接字地址结构”,它以sockaddr_in命名,定义在<netinet/in.h>头文件中.下 ...
- Java实现Internet地址获取
Java实现Internet地址获取 代码内容 输入域名输出IPV4地址 输入IP地址输出域名 支持命令行输入 支持交互式输入 代码实现 /* nslookup.java */ import java ...
随机推荐
- Scrapy框架中的xpath选择
不同于我们普通爬虫获取xpath,scrapy获得xpath对象获取他的值语法 一.xpath对象获取值 xpath对象..extract() 二.Scrapy框架独有的xpath取值方式 利用hre ...
- spark内存管理器--MemoryManager源码解析
MemoryManager内存管理器 内存管理器可以说是spark内核中最重要的基础模块之一,shuffle时的排序,rdd缓存,展开内存,广播变量,Task运行结果的存储等等,凡是需要使用内存的地方 ...
- HTML中marquee标签的使用
HTML5之前,marquee作为滚动标签被经常使用,具体用法如下: <marquee>默认向左滚动</marquee> 选项: 1.behavior 滚动的方式 altern ...
- Xcode11 Developer Tool中没了Application Loader
升级Xcode11之后不少人发现在Open Developer Tool中没了Application Loader. 那么如果我们还想用该怎么办呢? 先这样 找个老版的Xcode–>Conten ...
- IT之快速提高效率的方法与思考
前言 文章也没什么很高深的问题,大概花个5分钟能看完.是一些大家都知道的道理,作为提醒与总结. 关于提高方面的内容,一般都有个人的方法,但大致都一致.可分为几个步骤. 框架.工具使用相关 使用框架.工 ...
- vue项目的各个文件作用
vue项目的各个文件作用: build:放置的是webpack配置文件,一般不动,修改了必须重启服务器才能生效 config:放置针对开发环境和线上环境的配置文件,一般不动 修改后需重启 node_m ...
- Swaks绕过SPF验证进行邮件伪造
0x00 swaks简介 Swaks是一个功能强大,灵活,可编写脚本,面向事务的SMTP测试工具,由John Jetmore编写和维护. 目前Swaks托管在私有svn存储库中.官方项目页面是http ...
- Linux下 svn相关操作
Linux下 svn相关操作 一.首先看看svn安装的位置: 命令: find / -name svn /var/svn :表示安装目录 /user/bin/svn :表示命令目录 可以看到的是svn ...
- 分布式限流组件-基于Redis的注解支持的Ratelimiter
原文:https://juejin.im/entry/5bd491c85188255ac2629bef?utm_source=coffeephp.com 在分布式领域,我们难免会遇到并发量突增,对后端 ...
- 【使用DIV+CSS重写网站首页案例】CSS盒子模型
CSS盒子模型 取值问题: 默认情况,padding.border.margin都为0: 设定区域内容的width和height,是区域内容框的尺寸: 如果设定padding/border/margi ...