在互聯網中,我們可以強制sun主機從網絡上引導,而不是從本地磁盤引導。如果在主機bsdi上運行RARP服務程序和tcpdump命令,就可以得到如圖5-1那樣的輸出。用-e參數使得tcpdump命令打印出硬件地址:

RARP請求是廣播方式(第1行),而第2行的RARP應答是單播方式。第2行的輸出中atsun表示RARP應答包含主機sun的IP地址(140.252.13.33)在第3行中,我們可以看到,一旦sun收到IP地址,它就發送一個TFTP讀請求(RRQ)給文件8CFC0D21.SUN4C(TFTP表示簡單文件傳送協議。我們將在第1 5章詳細介紹)。文件名中的8個十六進制數字表求主機sun的IP地址140.252.13.33。這個IP地址在RARP應答中返回。
文件名的后綴SUN4C表示被引導系統的類型。
tcpdump在第3行中指出IP數據報的長度是65個字節,而不是一個UDP數據報(實際上是一個UDP數據報),因為我們運行tcpdump命令時帶有-e參數,以查看硬件層的地址。在圖5-1中需要指出的另一點是,第2行中的以太網數據幀長度比最小長度還要小(在4.5節中我們說過應該是60字節)。其原因是我們在發送該以太網數據幀的系統(bsdi)上運行tcpdump命令。應用程序rarpd寫42字節到BSD分組過濾設備上(其中14字節為以太網數據幀的報頭,剩下的28字節是RARP應答),這就是tcpdump收到的副本。但是以太網設備驅動程序要把這一短幀填充空白字符以達到最小傳輸長度(60)。如果我們在另一個系統上運行tcpdump命令,其長度將會是60。
從這個例子可以看出,當無盤系統從RARP應答中收到它的IP地址后,它將發送TFTP請求來讀取引導映象。在這一點上我們將不再進一步詳細討論無盤系統是如何引導的(第16章將描述無盤X終端利用RARP、BOOTP以及TFTP進行引導的過程)。
當網絡上沒有RARP服務器時,其結果如圖5-2所示。每個分組的目的地址都是以太網廣播地址。在who-后面的以太網地址是目的硬件地址,跟在tell后面的以太網地址是發送端的硬件地址。
請注意重發的頻度。第一次重發是在6.55秒以后,然后增加到42.80秒,然后又減到5.34秒和6.55秒,然后又回到42.79秒。這種不確定的情況一直繼續下去。如果計算一下兩次重發之間的時間間隔,我們發現存在一種雙倍的關系:從5.34到6.55是1.21秒,從6.55到8.97是2.42秒,從8.97到13.80是4.83秒,一直這樣繼續下去。當時間間隔達到某個閾值時(大于42.80秒),它又重新置為5.34秒。

超時間隔采用這樣的遞增方法比每次都采用相同值的方法要好。在圖6-8中,我們將看到一種錯誤的超時重發方法,以及在第21章中將看到TCP的超時重發機制。
- 第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 小結