天天看點

《分布式系統:概念與設計》一3.4.1 IP尋址

或許設計網際網路協定最富有挑戰之處是構造主機的命名和尋址方案以及将ip資料包路由到目的地的方案。配置設定主機網絡位址的方案和計算機連接配接到它們的方案需要滿足以下一些需求:

這必須是通用的——任何主機必須可以發送資料包給網際網路中的任何其他主機。

位址空間的使用,必須是有效的——預知網際網路的最終規模、網絡數量和所需的主機位址數量是不可能的。位址空間必須仔細地分割以確定位址不會用完。1978—1982年,當開發tcp/ip協定時,108認為提供232(即約40億,大緻等于當時全世界的人口總數)的可尋址的主機就足夠了。但這種判斷已經被證明是目光短淺的,原因如下:

—網際網路的增長速度遠遠超過了當初的預測。

—位址空間的配置設定和使用比預期的要低效得多。

尋址方案必須有助于開發靈活有效的路由方案,但位址本身并不能包括太多的用于将資料包路由到目的地的資訊。

所選的方案為網際網路中的每個主機都配置設定一個ip位址——一個32比特的數字辨別符,其中包括一個網絡辨別符(唯一辨別了網際網路中的某個子網)、一個主機辨別符(唯一辨別了到該網絡的主機連接配接)。這些位址将放在ip資料包中并被路由到目的地。

網際網路位址空間所采用的設計如圖3-15所示。一共有4類已配置設定的網際網路位址——a、b、c、d。d類位址為網際網路多點傳播通信保留,多點傳播通信僅在一些網際網路路由器中實作,其進一步的讨論見4.4.1節。e類位址包括一些未配置設定的位址,為滿足未來的需求而保留。

《分布式系統:概念與設計》一3.4.1 IP尋址

這些包含網絡辨別符和主機辨別符的32比特網際網路位址通常寫成由點分開的4個十進制數字序列。每個十進制數字表示一個位元組或ip位址的8比特組(octets)。每一類網絡位址的允許值如圖3-16所示。

《分布式系統:概念與設計》一3.4.1 IP尋址

三類位址用于滿足不同類型組織的需要。a類位址(在每個子網中能容納224台主機)是為非常大的網絡準備的,例如us nsfnet和其他全國性的廣域網。b類位址可配置設定給網絡中的計算機超過255台的組織,而c類位址則是配置設定給所有其他的網絡。

主機辨別符為0和全1(二進制)的網際網路位址将留作特殊用途。主機辨別符為0的位址代表“本機”,若主機辨別符為全1,則表示這是一個廣播消息,并将消息發送到與位址的網絡辨別符部分指定的網絡連接配接的主機上。

網絡辨別符是由網際網路編号管理局(iana)配置設定給其網絡與網際網路相連的組織。連接配接到網際網路的計算機的主機辨別符是由相關網絡的管理者來配置設定的。

既然主機的位址包括一個網絡辨別符,那麼連接配接到多個網絡的計算機必須在每個網絡中都有獨立的位址。每次計算機移到一個新的網絡,它的網際網路位址必須改變。這些需求導緻了實質性的管理開銷,在使用便攜計算機的情況下就會有這種開銷。

ip位址配置設定方案在實際中并不是很有效。主要的困難是,使用者組織中的網絡管理者不能很容易地預測出未來他們對主機位址需求的增長,一般都會過高地估計,進而選擇b類位址。到了1990年前後,按照當時的ip位址配置設定速度,到1996年前後就可能用完所有的位址。當時采取了三個步驟。第一步是開始開發新的ip協定和尋址方案,結果也就是現在的ipv6。

第二步是從根本上修改ip位址的配置設定方案。一個新的旨在更加有效地利用ip位址空間的位址配置設定和路由方案誕生了,該方案稱為無等級域間路由(cidr),我們将在3.4.3節中讨論cidr。圖3-10中的區域網路擁有多個c類位址規模的子網,從138.37.88~138.37.95,這些子網通過路由器連接配接。路由器負責将ip資料包傳送到所有的子網,同時也負責處理子網間和子網到網際網路其他部分的流量。該圖也說明了使用cidr劃分一個b類位址空間,形成若幹c類位址規模的子網。

第三步是使未注冊的計算機能通過實作了網絡位址翻譯(nat)方案的路由器間接地通路網際網路。我們在3.4.3節讨論該方案。

繼續閱讀