這個例子是本文中采用的子網,以及如何使用兩個不同的子網掩碼。具體安排如圖3-10所示。

如果把該圖與扉頁前圖相比,就會發現在圖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子網號,那么一切都好辦了。

140.252.13子網中的所有接口的子網掩碼是255.255.255.224,或0xffffffe0。這表明最右邊的5 bit 留給主機號,左邊的27 bit留給網絡號和子網號。
圖3-10中所有接口的I P地址和子網掩碼的分配情況如圖3-12所示。

第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 小結