第二章:Internet地址结构
引言
本章主要介绍了:
- 如何为Internet中的设备分配IP地址。
- 有助于理由可扩展性的地址结构分配方式。
- 特殊用途的地址。
表示IP地址
IPv4地址
- 长32位,采用点分四组或点分十进制来表示。
- 点分十进制,每个数字都是非负整数,范围是0~255.
165.195.130.107
- 大多数时候我们更关心它的二进制结构,如下转换:

IPv6地址
- 长128位,用冒号分八组十六进制表示。
- 标准化表示法:
- 一个块中的前导0必须省略。
- 全0的块可以用: :省略,但只能出现一次,用于压缩最多的0,如果数量相同,顺序靠前的将被替换。
- 在IPv6格式中嵌入IPv4地址可以采用混合符号形式,紧接着IPv4部分的地址快为ffff,其余部分为点分四组。例::( : :ffff:10.0.0.1)可表示IPv4地址(10.0.0.1)。被称为IPv4映射的IPv6地址。
IPv6例子:

基本IP地址结构
IP地址可以根据类型和大小进行分组。大多数IPv4地址快被最终细分为一个地址,用于识别连接Internet的计算机网络接口,被称为单播地址。IPv4地址中大部分是单播地址。
分类寻址
最初建立Internet地址结构时,每个地址包含:网络部分(网络号,用于识别该主机属于哪个网络),和主机地址(主机号,用于识别主机)。每个主机需要一个唯一的IP地址。
- 最初的五大类地址
- 每一类都基于网络中可容纳的主机数量,站点的网络号长,网络种类多,但是每个种类的网络可容纳的主机数就会少一些。要注意取舍。

- 其中A、B、C属于单播地址,D位组播,E位保留。
- 直观的空间划分:

- 每一类都基于网络中可容纳的主机数量,站点的网络号长,网络种类多,但是每个种类的网络可容纳的主机数就会少一些。要注意取舍。
- 可以看出网络号长,网络种类多,主机号长,可容纳的主机多。
- 一些缺陷:A类B类网络号通常浪费了太多的主机号,而C类不能提供充足的主机号。还有就是很难为新接入Internet的新网络分配新的网络号。
子网寻址
- 为了解决“很难为新接入Internet的新网络分配新的网络号”这个问题,我们可以舍弃一些主机号长度(反正也用不完),就不必再为新加入的网络分配网络号,使其成为站点,而是把它加入到已经分配的站点中。称为子网,把我们舍弃的主机号长度用来编号这些子网。剩下的主机号继续用来编号主机。

- 比如这个例子,Internet中的一个站点已经被分配了B类的网络号(就是说前16位已经固定),而后16位可以自由分配,和之前一个道理。这里例子分配了八位子网ID、八位主机ID,这个配置支持256个子网,每个子网最多包含254个地址(当前子网的第一个和最后一个地址无效!)。而且每个支持子网的站点都会有一个子网掩码,一会再说。

子网掩码
- 子网掩码用于从主机的IP地址中获取网络号和子网信息。IP子网掩码和IP地址的长度相同(IPv4:32,IPv6:128)。可以静态也可以动态,这都是我们后面要讨论的。对于IPv4来说,子网掩码也采用相同格式(点分十进制)编写。由一串的1后跟若干0组成,有时被称为前缀长度。可以简化表示成一个十进制数,表示前面有几个1。下面是例子:


- 子网掩码使用方法: 我们来看看子网掩码如何确定一个IP地址的网络信息。子网掩码中的1表示一个IP地址的对应位与一个地址的网络/子网对应位相结合。相反,子网掩码中的0表示,表示一个IP地址的对应位作为主机ID的一部分。举个例子,我们用子网掩码255.255.255.0,处理IPv4地址128.32.1.14。

- 我们将地址中的以子网掩码对应位与运算。
可变长度子网掩码
- 一个站点的子网分配不一定都是我们刚才所说的:8位子网ID8位主机ID。可能有多种样子,可以将不同的子网掩码用于相同网号的站点,虽然增加了复杂性,但是却提高了子网的灵活性。因为不同的子网可以有不同的种类,可以容纳不同数量的主机。当然站点要支持可变长度子网掩码(VLSM)。

- 解释一下这张图,三个不同的子网掩码被用于站点128.32.0.0/16:/24、/25、/26。这样每个子网可以提供不同数量的主机。
- 只有IP地址和MAC地址同时确定,才能唯一的确定一台主机。
广播地址
- 在每个IPv4地址中,一个特殊的地址被保留作为子网广播地址,将IPv4地址的网络/子网部分设置为适当值,主机部分全部设为1,向这个IP发送数据报,就会发送到这个子网的所有主机上。
- 构造方式为:对子网掩码取反,并与子网中任意计算机的地址进行按位或运算得到。例如,前缀为128.32.1.0/24的子网,的广播地址构造方式如图所示:

CIDR与聚合
- 前缀
- 把IP地址的前几位固定,用来表示网络号,后几位自然用来表示主机号。

第二章:Internet地址结构的更多相关文章
- 第二章 Internet 地址结构
注意: 这个系列的博客只是为了巩固我学习的知识,参考的价值不是很大,如果需要,请转到http://www.cnblogs.com/ZCplayground/p/7764436.html Interne ...
- Internet地址结构
IP地址结构及分类寻址 IP地址 = <网络号> + <主机号> ------------IPv4(32bit)点分四组表示法: 192.168.31.1 ...
- 《TCP/IP 详解 卷1:协议》第 2 章:Internet 地址结构
第二章介绍 Internet 使用的网络层地址,即熟知的 IP 地址.连接到 Internet 的设备,基于 TCP/IP 的专用网络中使用的设备都需要一个 IP 地址. 路由器(见 IP 协议 一章 ...
- TCP/IP 笔记 - Internet地址结构
连接到Internet中的每台设备至少都有一个IP地址,IP地址表示了流量的来源(好比别人要找你玩,需要知道你家的地址:网络中别人需要和你通信,也需要知道IP地址),且Internet中的IP地址必须 ...
- <TCP/IP>Internet地址结构回顾
本章介绍了Internet中使用的网络层地址,又称IP地址. 要想在网上冲浪,一个设备至少要有一个IP地址(PS:我用赛风FQ的时候,居然自动更换了IP地址,顿时感觉很神奇但是不知道为什么) ***成 ...
- 二、Internet地址结构
IP路由器实现的转发程序使用IP地址来识别流量去向.IP地址也表示流量来源. 2.1 IP地址的表示 IPV4地址通常采用点分四组或点分十进制表示法,如192.168.1.1. 点分四组表示法由四个用 ...
- 第二章 STM32的结构和组成
2.5 芯片里面有什么 STM32F103采用的是Cortex-M3内核,内核即CPU,由ARM公司设计. ARM公司并不生产芯片,而是出售其芯片技术授权. 芯片生产厂商(SOC)如ST.TI.Fre ...
- 交换机安全学习笔记 第二章 MAC地址泛洪攻击
本文为书中相关知识的摘要,由于书中以思科设备为配置依据,所以笔记中补充了华为.H3C设备的相关配置.华为设备配置参考华为S2352EI 产品版本:V100R005C01文档版本:02. H3C配置参 ...
- 第二章,循环结构,输入输出,clock
计时 计时函数: clock() 返回目前为止运行的时间 注意要除以常数 CLOCKS_PER_SEC, 才能得到以秒为单位. 头文件 time.h 管道 在windows命令行下执行echo 20| ...
随机推荐
- angular1.x todolist 实现
将要计划完成事的列表存在localStroage ,实现本地同步删除,同步增加. <!DOCTYPE html> <html lang="zh" ng-app=& ...
- 树莓派安装DNSMASQ服务
功能: DNSMASQ是一款高性能的.小型的DNS服务器软件. * 缓存域名.IP地址,本地缓存解析的地址. * DHCP服务 1.安装 sudo apt-get update sudo apt-ge ...
- Home Assistant系列 -- 设置界面语言与地理位置
Home Assistant 安装的时候会自动根据你的系统语言设置默认语言,安装完成以后也可以根据需要自己设置选择语言.启动 Home Assistant ,浏览器打开web 界面,点击左上角的用户图 ...
- Bugku Crack it
知识点:kali john工具 不知道hashcat怎么样 一. 用winhex打开 发现右边有root:等信息,想到了linux系统,看了别人的wp,kali中有一个工具john可以破解密码 二. ...
- 最近最少使用算法(LRU)——页面置换
原创 上一篇博客写了先进先出算法(FIFO)——页面置换:http://www.cnblogs.com/chiweiming/p/9058438.html 此篇介绍最近最少使用算法(LRU)——页面置 ...
- express函数参数之next
关于next主要从三点来进行说明: next的作用是什么? 我们应该在何时使用next? next的内部实现机制是什么? 1.Next的作用 我们在定义express中间件函数的时候都 ...
- Noip 2016 Day 1 & Day 2
Day 1 >>> T1 >> 水题直接模拟AC: 考察三个知识点:1.你能不能编程 2.你会不会取模 3.你脑子抽不抽 然而第一次评测还是90,因为当模运算时 “ en ...
- SVG中嵌入HTML元素
<?xml version="1.0" standalone="yes"?> <style> .clsfont{ border:1px ...
- c语言实现shell
shell的编写 命令行传参数 每个C语言程序都必须有一个称为main()的函数,作为程序启动的起点.当执行程序时,命令行参数(command-line argument)(由shell逐一解析)通过 ...
- 20155302 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
20155302 <Java程序设计>实验一(Java开发环境的熟悉)实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Jav ...