这个例子是本文中采用的子网,以及如何使用两个不同的子网掩码。具体安排如图3-10所示。
![](https://box.kancloud.cn/2016-04-12_570c98923c19a.png)
如果把该图与扉页前图相比,就会发现在图3-10中省略了从路由器sun到上面的以太网之间的连接细节,实际上它们之间的连接是拨号SLIP。这个细节不影响本节中讨论的子网划分问题。我们在4 . 6节讨论A R P代理时将再回头讨论这个细节。
问题是我们在子网13中有两个分离的网络:一个以太网和一个点对点链路(硬件连接的SLIP链路)(点对点链接始终会带来问题,因为它一般在两端都需要I P地址)。将来或许会有更多的主机和网络,但是为了不让主机跨越不同的网络就得使用不同的子网号。我们的解决方法是把子网号从8 bit 扩充到11 bit,把主机号从8 bit减为5 bit。这就叫作变长子网,因为140.252网络中的大多数子网都采用8 bit 子网掩码,而我们的子网却采用11 bit的子网掩码。
RFC 1009[Braden and Postel 1987]允许一个含有子网的网络使用多个子网掩码。新的路由器需求RFC[Almquist 1993]则要求支持这一功能。
但是,问题在于并不是所有的路由选择协议在交换目的网络时也交换子网掩码。
在第10章中,我们将看到RIP不支持变长子网,RIP第2版和OSPF则支持变长子网。在我们的例子中不存在这种问题,因为在我的子网中不要求使用RIP协议。
作者子网中的IP地址结构如图3-11所示,11位子网号中的前8 bit始终是13。在剩下的3 bit中,我们用二进制001表示以太网,010表示点对点SLIP链路。这个变长子网掩码在140.252网络中不会给其他主机和路由器带来问题—只要目的是子网140.252.13的所有数据报都传给路由器sun(IP地址是140.252.1.29),如图3-11所示。如果sun知道子网13中的主机有11 bit子网号,那么一切都好办了。
![](https://box.kancloud.cn/2016-04-12_570c9892526ed.png)
140.252.13子网中的所有接口的子网掩码是255.255.255.224,或0xffffffe0。这表明最右边的5 bit 留给主机号,左边的27 bit留给网络号和子网号。
图3-10中所有接口的I P地址和子网掩码的分配情况如图3-12所示。
![](https://box.kancloud.cn/2016-04-12_570c98926654e.png)
第1栏标为是“主机”,但是sun和bsdi也具有路由器的功能,因为它们是多接口的,可以把分组数据从一个接口转发到另一个接口。
这个表中的最后一行是图3-10中的广播地址140.252.13.63:它是根据以太网子网号(140.252.13.32)和图3-11中的低5位置1(16+8+4+2+1=3 1)得来的(我们在第12章中将看到,这个地址被称作以子网为目的的广播地址( subnet-directed broadcast address))。
- 第1章 概述
- 1.1 引言
- 1.2 分层
- 1.3 TCP/IP的分层
- 1.4 互联网的地址
- 1.5 域名系统
- 1.6 封装
- 1.7 分用
- 1.8 客户-服务器模型
- 1.9 端口号
- 1.10 标准化过程
- 1.11 RFC
- 1.12 标准的简单服务
- 1.13 互联网
- 1.14 实现
- 1.15 应用编程接口
- 1.16 测试网络
- 1.17 小结
- 第2章 链路层
- 2.1 引言
- 2.2 以太网和IEEE 802封装
- 2.3 尾部封装
- 2.4 SLIP:串行线路IP
- 2.5 压缩的SLIP
- 2.6 PPP:点对点协议
- 2.7 环回接口
- 2.8 最大传输单元MTU
- 2.9 路径MTU
- 2.10 串行线路吞吐量计算
- 2.11 小结
- 第3章 IP:网际协议
- 3.1 引言
- 3.2 IP首部
- 3.3 IP路由选择
- 3.4 子网寻址
- 3.5 子网掩码
- 3.6 特殊情况的IP地址
- 3.7 一个子网的例子
- 3.8 ifconfig命令
- 3.9 netstat命令
- 3.10 IP的未来
- 3.11 小结
- 第4章 ARP:地址解析协议
- 4.1 引言
- 4.2 一个例子
- 4.3 ARP高速缓存
- 4.4 ARP的分组格式
- 4.5 ARP举例
- 4.5.1 一般的例子
- 4.5.2 对不存在主机的ARP请求
- 4.5.3 ARP高速缓存超时设置
- 4.6 ARP代理
- 4.7 免费ARP
- 4.8 arp命令
- 4.9 小结
- 第5章 RARP:逆地址解析协议
- 5.1 引言
- 5.2 RARP的分组格式
- 5.3 RARP举例
- 5.4 RARP服务器的设计
- 5.4.1 作为用户进程的RARP服务器
- 5.4.2 每个网络有多个RARP服务器
- 5.5 小结
- 第6章 ICMP:Internet控制报文协议
- 6.1 引言
- 6.2 ICMP报文的类型
- 6.3 ICMP地址掩码请求与应答
- 6.4 ICMP时间戳请求与应答
- 6.4.1 举例
- 6.4.2 另一种方法
- 6.5 ICMP端口不可达差错
- 6.6 ICMP报文的4.4BSD处理
- 6.7 小结
- 第7章 Ping程序
- 7.1 引言
- 7.2 Ping程序
- 7.2.1 LAN输出
- 7.2.2 WAN输出
- 7.2.3 线路SLIP链接
- 7.2.4 拨号SLIP链路
- 7.3 IP记录路由选项
- 7.3.1 通常的例子
- 7.3.2 异常的输出
- 7.4 IP时间戳选项
- 7.5 小结
- 第8章 Traceroute程序
- 8.1 引言
- 8.2 Traceroute程序的操作
- 8.3 局域网输出
- 8.4 广域网输出
- 8.5 IP源站选路选项
- 8.5.1 宽松的源站选路的traceroute程序示例
- 8.5.2 严格的源站选路的traceroute程序示例
- 8.5.3 宽松的源站选路traceroute程序的往返路由
- 8.6 小结
- 第9章 IP选路
- 9.1 引言
- 9.2 选路的原理
- 9.2.1 简单路由表
- 9.2.2 初始化路由表
- 9.2.3 较复杂的路由表
- 9.2.4 没有到达目的地的路由
- 9.3 ICMP主机与网络不可达差错
- 9.4 转发或不转发
- 9.5 ICMP重定向差错
- 9.5.1 一个例子
- 9.5.2 更多的细节
- 9.6 ICMP路由器发现报文
- 9.6.1 路由器操作
- 9.6.2 主机操作
- 9.6.3 实现
- 9.7 小结