2013-08-22 12:42:26


  • 3.4 子网寻址

子网编码:不是把IP地址看成由单纯的网络号和主机号组成,我们把主机号再分成子网号和主机号。这样做是因为,A、B类地址为主机号分配了太多的空间,可分别容纳的主机数为224-2和216-2(由于全0和全1的主机号都是无效的,所以我们把总数减2)。但是这么多主机肯定用不完,所以我们把这个蛋糕再切小一点。这种新的分配方法由管理员来定。

  上图是一个B类网络地址,原本16位主机号被分成了8位子网号和8位主机号,于是就有了254个子网和254台主机。但是我们并不要求一定要按字节(8 + 8)来分配,我们可以按位随意分配(但是子网号和主机号都不能少于2位)。

Q:30个C类地址,和包含30个子网的B类地址那个比较好用呢?

A:我们不说那一个好用,各有各的优点。但是相比于30个C类地址,分成子网后的B类地址,肯定会比部分之前损失一些可使用的地址(分网后主机号全0和全1的不能用了)。但子网对外部路由器来说隐蔽了内部网络组织的细节(外网不知到内网是怎么分的,因为外网的数据报是先发给网关gateway,然后网关解析子网地址,发给相应的主机),这对信息安全有一定的意义。其次,子网划分缩减了路由表的规模(在10.8小结,介绍用C类地址也可以所见路由表的技术)。例如,B类地址140.252被分成了若干子网的事实对于所有子网以外Internet路由器都是透明的。为了到达IP地址开始部分为140.252的主机,外部路由器只需要知道通往IP地址140.252.104.1(gateway)的路径。这就是说,对于网络140.252只需一个路由表目,而如果采用30个C类地址,则需要30个路由表目。

(粗线——以太网,虚线——点对点链路)

如上图所示:一份来自Internet的数据报到达gateway,它的目的地值是140.252.57.1。路由器gateway需要知道子网号是57,然后把它送到kpno。同样,kpno必须把数据报送到R55,最后由R55把它送到R57。

  • 3.5 子网掩码

Q:主机是怎么知道自己的IP地址的?

A:任何主机在开机的时候都会进行‘指定主机IP地址’的工作,大多数系统把IP地址存在一个磁盘文件里供引导时读用。在第5章中,我们会介绍对于一个没有磁盘保存这种文件的系统是如何在引导时知道自己的IP地址的。

子网掩码:除了IP地址之外,主机还需知道有多少比特用于子网号及多少比特用于主机号。这是在引导过程中通过子网掩码来确定的。子网掩码是一个32bit的值,其中值为1的比特留给网络号和子网号,为0的比特留给主机号。子网掩码经常采用十六进制来表示,特别是当界限不是一个字节时。

  给定IP地址和子网掩码后,主机就可以确定IP数据报的目的是:(1)本子网上的主机;(2)本网络中其他子网中的主机;(3)其他网路的主机。如果知道本机的IP地址,那么就知道它是否为A类、B类或C类地址(从IP地址的高位可以得知),也就知道网络号和子网号之间的分界线。而根据子网掩码就可知道子网号与主机号之间的分界线。下图为举例:

  • 3.6 特殊情况的IP地址

上图中:0表示全0,-1表示全1,netid、subnetid和hostid分别表示不为全0或全1的对应字段。子网号栏为空表示该地址没有进行子网划分。

我们把表分成3部分:头两项为特殊的源地址、中间项为环回地址、最后四项为广播地址。

源地址:网络号为0,是主机在用BOOTP协议确定本机IP地址过程中的初始地址。

广播地址:12章会讲~

  • 3.7 一个子网的例子

  这个例子是文中采用的子网,以及如何使用两个不同的子网掩码。本例中,数据报经过140.252.104.1的路由器传进来,到经过140.252.1的子网,进入我们例子中要讨论的140.252.13的子网。但是这个子网中包含两个网络——以太网和SLIP子网,这样的话原来的子网划分就无法区分这两个网络,为了不让主机跨越不同的网络就要使用不同的子网号,我们的解决方法是将子网号从8位扩充为11位,把主机号减为5位。这就叫做变长子网,我们的第二个子网掩码是255.255.255.224。

  11位子网号中的前8bit始终是13。在剩下的3bit中,我们用二进制001表示以太网,010表示点对点SLIP链路。这个变长子网掩码在140.252网络中不会给其他主机和路由器带来问题——只要目的是子网140.252.13的所有数据报都传给路由器sun(IP地址是140.252.1.29),如上图所示。如果sun知道子网13中的主机有11bit子网号,那么一切都好办了。请看下表:

  我们看到sun和bsdi都有两个IP地址,因为它们既是主机又是路由器,所以各有两个接口。这个表中的最后一行是图3-10中的广播地址140.252.13.63:它根据以太网子网号(140.252.13.32)和图3-11中的低5位置1(16+8+4+2+1=31)得来的,这个地址被称作以子网为目的的广播地址(subnet-directed broadcast address)。

『TCP/IP详解——卷一:协议』读书笔记——09的更多相关文章

  1. 『TCP/IP详解——卷一:协议』读书笔记——10

    2013-08-22 22:57:17 3.8 ifconfig命令 这个命令在Linux系统下可以通过下面的指令阅读说明文档: ifconfig 由于书中作者用的系统比较早的某Unix系统,所以我的 ...

  2. 『TCP/IP详解——卷一:协议』读书笔记——01

    从今日起开始认真研读TCP/IP详解这本经典制作,一是巩固我薄弱的计算机网络知识,二来提高我的假期的时间利用率.将心得与思考记录下来,防止白看-哦耶 2013-08-14 18:47:06 第一章 概 ...

  3. 『TCP/IP详解——卷一:协议』读书笔记——18

    2013-08-27 15:44:52 第7章 Ping程序 7.1 引言 “ping”这个名字来源于声纳定为操作.Ping程序由Mike Muuss编写,目的是为了测试另一台主机是否可达.该程序发送 ...

  4. 『TCP/IP详解——卷一:协议』读书笔记——14

    2013-08-25 11:32:06 第5章 RARP:逆地址解析协议 5.1 引言 具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址.但是无盘机,如X终端或无盘工作站,则需要采用其 ...

  5. 『TCP/IP详解——卷一:协议』读书笔记——13

    2013-08-24 16:03:39 4.6 ARP代理 ARP代理(Proxy ARP):如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求.这样可 ...

  6. 『TCP/IP详解——卷一:协议』读书笔记——11

    2013-08-23 20:00:18 第4章 ARP:地址解析协议 4.1 引言 ARP(Address Resolution Protocol,地址解析协议)是获取物理地址的一个TCP/IP协议. ...

  7. 『TCP/IP详解——卷一:协议』读书笔记——07

    2013-08-20 17:51:49 第三章 IP:网际协议 3.1 引言 IP是TCP/IP协议族中最为核心的协议.所有的TCP.UDP.ICMP和IGMP数据都以IP数据报格式传输.再来看一下图 ...

  8. 『TCP/IP详解——卷一:协议』读书笔记——06

    2013-08-20 14:41:01 2.8 最大传输单元MTU MTU,最大传输单元:以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节.这个不同网络对应的传输上限 ...

  9. 『TCP/IP详解——卷一:协议』读书笔记——05

    2013-08-19 22:35:57 2.6 PPP:点对点协议 PPP点对点协议修改了SLIP协议中的所有缺陷: 1. 在串联链路上封装IP数据报的方法.PPP即支持数据为8位&无奇偶检验 ...

  10. 『TCP/IP详解——卷一:协议』读书笔记——04

    2013-08-18 16:31:17 第2章 链路层 2.1 引言 链路层主要有三个目的: 为IP模块发送和接受IP数据报 为ARP模块发送ARP请求和接受ARP应答 为RARP发送RARP请求和接 ...

随机推荐

  1. (Hibernate进阶)Hibernate基本原理(一)

    在开始学hibernate之前,一直就有人说:Hibernate并不难,无非是对JDBC进一步封装.一句不难,难道是真的不难还是眼高手低? 如果只是停留在使用的层面上,我相信什么技术都不难,看看别人怎 ...

  2. Python TCP服务器

    TCP服务器的创建也比较简单: 1.建立一个socket对象 2.绑定要监听的IP地址和端口 3.当有客户端请求时,启动多线程处理客户端连接 import socket import threadin ...

  3. EF6+MVC5之Oracleo数据库的Code First方式实现

    折腾了好几天,在办公室机器上死活找不到ODP.net的Oracle数据库连接方式(但在家中电脑上正常).后来把之前安装的VS2013和所以安装的Oracle客气端统统卸载,重新安装visual stu ...

  4. awk用法

    目前虽然有很多工具可以代替awk,但是呢我还是认为awk还是非常重要,比如有时候load数据到hive,mysql发现数据有点问题,这样可以先对比文件和库中数据是否一致,这样awk就发挥用处了,还有从 ...

  5. avalon2学习教程15指令总结

    avalon的指令在上一节已经全部介绍完毕,当然有的语焉不详,如ms-js.本节主要总结我对这方面的思考与探索. MVVM的成功很大一语分是来自于其指令,或叫绑定.让操作视图的功能交由形形式式的指令来 ...

  6. Hibernate的配置文件以及用法

    一. 三大框架 Hibernate 1.安装hibernate插件至ecilpse 2.进行配置 2.1 主配置文件 <?xml version="1.0" encoding ...

  7. 调试CS5343总结报告

    一周前接到新任务,调试CS5343,百度一下,CS5343是一款音频采集的AD芯片,CS5343驱动代码是现成的,我的工作是提高芯片的采样速率,看了一边芯片的Datesheet,辛好东西不是很多. 概 ...

  8. hdu 2896 字典树解法

    #include <iostream> #include <cstring> #include <cstdio> #include <cstdlib> ...

  9. Oracle 取随机数(转)

    1.从表中随机取记录 select * from (select * from staff order by dbms_random.random)      where rownum < 4 ...

  10. http://10.11.112.12:8000/homePage.jsp?loginMode=JS

    sdsad http://svn.paic.com.cn/svn/mis_pac/branches/MIS-PAC5.22.0