IP主要存在三個方面的問題。這是Internet在過去幾年快速增長所造成的結果(參見習題1.2)。
1) 超過半數的B類地址已被分配。根據估計,它們大約在1995年耗盡。
2) 32 bit的IP地址從長期的Internet增長角度來看,一般是不夠用的。
3) 當前的路由結構沒有層次結構,屬于平面型(flat)結構,每個網絡都需要一個路由表目。
隨著網絡數目的增長,一個具有多個網絡的網站就必須分配多個C類地址,而不是一個B類地址,因此路由表的規模會不斷增長。
無類別的域間路由選擇C I D R(Classless Interdomain Routing)提出了一個可以解決第三個問題的建議,對當前版本的IP(IP版本4)進行擴充,以適應21世紀Internet的發展。對此我們將在10.8節進一步詳細介紹。
對新版的IP,即下一代IP,經常稱作IPng,主要有四個方面的建議。1993年5月發行的IEEE Network(vol.7,no.3)對前三個建議進行了綜述,同時有一篇關于CIDR的論文。RFC 1454 [Dixon 1993]對前三個建議進行了比較。
1) SIP,簡單Internet協議。它針對當前的IP提出了一個最小幅度的修改建議,采用64位地址和一個不同的首部格式(首部的前4比特仍然包含協議的版本號,其值不再是4)。
2) PIP。這個建議也采用了更大的、可變長度的和有層次結構的地址,而且首部格式也不相同。
3) TUBA, 代表“ TCP and UDP with Bigger Address ”, 它基于OSI 的CLNP(Connectionless Network Protocol,無連接網絡協議),一個與IP類似的OSI協議。它提供大得多的地址空間:可變長度,可達20個字節。由于CLNP是一個現有的協議,而SIP和PIP只是建議,因此關于CLNP的文檔已經出現。RFC 1347[Callon 1992]提供了T U B A的有關細節。文獻[Perlman 1992]的第7章對IPv4和CLNP進行了比較。許多路由器已經支持CLNP,但是很少有主機也提供支持。
4) TP/IX,由RFC 1475 [Ullmann 1993]對它進行了描述。雖然SIP采用了64 bit的址址,但是它還改變了TCP和UDP的格式:兩個協議均為32 bit的端口號,64 bit的序列號,64 bit的確認號,以及TCP的32 bit窗口。
前三個建議基本上采用了相同版本的TCP和UDP作為傳輸層協議。
由于四個建議只能有一個被選為IPv4的替換者,而且在你讀到此書時可能已經做出選擇,因此我們對它們不進行過多評論。雖然CIDR即將實現以解決目前的短期問題,但是IPv4后繼者的實現則需要經過許多年。
- 第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 小結