引言


本章主要介绍了:

  • 如何为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地址结构的更多相关文章

  1. 第二章 Internet 地址结构

    注意: 这个系列的博客只是为了巩固我学习的知识,参考的价值不是很大,如果需要,请转到http://www.cnblogs.com/ZCplayground/p/7764436.html Interne ...

  2. Internet地址结构

    IP地址结构及分类寻址 IP地址 = <网络号> + <主机号>            ------------IPv4(32bit)点分四组表示法: 192.168.31.1 ...

  3. 《TCP/IP 详解 卷1:协议》第 2 章:Internet 地址结构

    第二章介绍 Internet 使用的网络层地址,即熟知的 IP 地址.连接到 Internet 的设备,基于 TCP/IP 的专用网络中使用的设备都需要一个 IP 地址. 路由器(见 IP 协议 一章 ...

  4. TCP/IP 笔记 - Internet地址结构

    连接到Internet中的每台设备至少都有一个IP地址,IP地址表示了流量的来源(好比别人要找你玩,需要知道你家的地址:网络中别人需要和你通信,也需要知道IP地址),且Internet中的IP地址必须 ...

  5. <TCP/IP>Internet地址结构回顾

    本章介绍了Internet中使用的网络层地址,又称IP地址. 要想在网上冲浪,一个设备至少要有一个IP地址(PS:我用赛风FQ的时候,居然自动更换了IP地址,顿时感觉很神奇但是不知道为什么) ***成 ...

  6. 二、Internet地址结构

    IP路由器实现的转发程序使用IP地址来识别流量去向.IP地址也表示流量来源. 2.1 IP地址的表示 IPV4地址通常采用点分四组或点分十进制表示法,如192.168.1.1. 点分四组表示法由四个用 ...

  7. 第二章 STM32的结构和组成

    2.5 芯片里面有什么 STM32F103采用的是Cortex-M3内核,内核即CPU,由ARM公司设计. ARM公司并不生产芯片,而是出售其芯片技术授权. 芯片生产厂商(SOC)如ST.TI.Fre ...

  8. 交换机安全学习笔记 第二章 MAC地址泛洪攻击

    本文为书中相关知识的摘要,由于书中以思科设备为配置依据,所以笔记中补充了华为.H3C设备的相关配置.华为设备配置参考华为S2352EI 产品版本:V100R005C01文档版本:02.  H3C配置参 ...

  9. 第二章,循环结构,输入输出,clock

    计时 计时函数: clock() 返回目前为止运行的时间 注意要除以常数 CLOCKS_PER_SEC, 才能得到以秒为单位. 头文件 time.h 管道 在windows命令行下执行echo 20| ...

随机推荐

  1. LNMP web服务的安装

    第1章 安装Nginx 环境: 系统:CentOS6.5 软件:nginx-1.6.3     mysql-5.5.49    php-5.5.32 1.1 Nginx官网 http://nginx. ...

  2. MongoDB DBA 实践2-----常用语句与索引

    一.mongodb常用语句 1.数据库database 1). 查看当前选择的数据库,默认是test 2).有则使用这个数据库,没有就创建 3).查看数据库,默认有admin.local和" ...

  3. laravel5.5源码笔记(四、路由)

    今天这篇博文来探索一下laravel的路由.在第一篇讲laravel入口文件的博文里,我们就提到过laravel的路由是在application对象的初始化阶段,通过provider来加载的.这个路由 ...

  4. Tomcat优化(心得经验)

    最近用httpclient做performance testing时,发现当线程加到150时服务端就会抛出socket资源用尽的错误,根本没法再往上加,响应的速度也是相当的慢,后来经过研究,发现在se ...

  5. 树莓派3B+学习笔记:9、更改软件源

    树莓派系统安装完成后,由于默认软件源服务器访问速度慢,安装软件耗时会很长,可以通过更改软件源来加快软件的安装速度. 系统安装完成后默认软件源如下: 更改镜像源前需要自行查找镜像源,并记下网址: 1.阿 ...

  6. Typescript函数

    编程都是需要函数的,因为有了函数就能复用很多东西了.不仅仅能够复用代码,还能保持代码的简洁性和提高编程的逻辑性. 在原生的JavaScript中,函数的定义有三种, function foo() {} ...

  7. 20155229 2016-2017-2 《Java程序设计》第四周学习总结

    20155229 2016-2017-2 <Java程序设计>第四周学习总结 教材学习内容总结 第六章: extends:继承某个类,继承之后可以使用父类的方法,也可以重写父类的方法,只要 ...

  8. 20155235 2006-2007-2 《Java程序设计》第1周学习总结

    20155235 2006-2007-2 <Java程序设计>第1周学习总结 教材学习内容总结 第二章 使用的JRE不同,对JAVA的执行有什么影响 第三章 字符串的用法在JAVA和C中有 ...

  9. 20155313 实验三《Java面向对象程序设计》实验报告

    一.实验内容 XP基础 XP核心实践 相关工具 二.实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器>课程 2.完成实验.撰写实验报 ...

  10. 20155323刘威良第一次实验 Java开发环境的熟悉(Linux + IDEA)

    20155323刘威良第一次实验 Java开发环境的熟悉(Linux + IDEA) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序 ...