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. 解决GBK字符转UTF-8乱码问题

    通过以下方法将GBK字符转成UTF-8编码格式的byte[]数组 package test; import java.io.UnsupportedEncodingException; public c ...

  2. Spark Streaming源码解读之Receiver生成全生命周期彻底研究和思考

    本期内容 : Receiver启动的方式设想 Receiver启动源码彻底分析 多个输入源输入启动,Receiver启动失败,只要我们的集群存在就希望Receiver启动成功,运行过程中基于每个Tea ...

  3. jsp配置项目时出错Deployment failure on Tomcat 6.x. Could not copy all resources to

    转自:http://www.2cto.com/kf/201201/116853.html 今天在网上部署项目的时候出现在了问题 tomcat一直部署不上 网上查了一下 原因记下来供大家查看 Deplo ...

  4. [转] Making GTFS query more convenient

    url:http://ontrakinfo.wordpress.com/2012/10/29/making-gtfs-query-more-convenient/ 这简直说出了我的心声. I have ...

  5. 在HttpClient请求的时候,返回结果解析时出现java.io.IOException: Attempted read from closed stream. 异常,解决

    原因是EntityUtils.toString(HttpEntity)方法被使用了多次.所以每个方法内只能使用一次.

  6. MySQL大数据分页的优化思路和索引延迟关联

    之前上次在部门的分享会上,听了关于MySQL大数据的分页,即怎样使用limit offset,N来进行大数据的分页,现在做一个记录: 首先我们知道,limit offset,N的时候,MySQL的查询 ...

  7. .gitignore配置

    .gitignore文件可以配置不希望加入git的文件,例如idea的.idea 工程文件 1.配置语法 以斜杠“/”开头表示目录: 以星号“*”通配多个字符: 以问号“?”通配单个字符 以方括号“[ ...

  8. IE6,IE7上设置body{overflow:hidden;}失效Bug

    IE6,IE7下设置body{overflow:hidden;}失效Bug 最近做项目发现在IE7下设置body{overflow:hidden;}后还是会出现纵向滚动条,所以上网查查了,在这里记录一 ...

  9. 未能加载文件或程序集Microsoft.ReportViewer.WebForms, Version=10.0.0.0

    解决方案如下ASP.NET项目使用VS2010开发,部署到windows 2008环境中,出现未能加载文件或程序集“Microsoft.ReportViewer.WebForms, Version=1 ...

  10. (转载)IOS中UIScrollView的属性和委托方法

    http://www.jizhishusheng.com/?p=453   ---- 以下内容来自 UIScrollView 类负责所有基于 UIKit 的滚动操作一.创建 1. CGRect bou ...