萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux TCP/IP 網路配置全攻略:從歷史到實作

TCP/IP 發展簡史

近年來,隨著「傳輸控制協議/網際協議(TCP/IP)」套件的廣泛使用,它已經成為網路通訊中事實上的標準。這絕大部分要歸功於因特網的迅猛發展,以及對在不同平台、設備和作業系統中以共同「語言」來共享資料的需求。

在 20 世紀 60 年代後期,美國國防部(DOD)意識到其內部日漸突出的通訊問題。DOD 工作人員、研究實驗室、大學以及承包商之間日益增長的電子資訊通訊量遇到了嚴重的障礙。組成 DOD 的不同實體和組織擁有來自不同計算機製造商的計算機系統,這些系統運行不同的作業系統,並使用不同的網路拓撲結構和協議。

高級研究項目局(Advanced Research Projects Agency,ARPA)被授命提出解決方案。ARPA 與各大學和計算機製造商結盟,開發了一組通訊標準。該聯盟確定並構建了 4 節點的網路,這就成為當今因特網的基礎。在 20 世紀 70 年代,該網路移植到一個新的核心協議設計中,這個協議就成為 TCP/IP 的基礎。

開放系統互連(OSI)模型

現在我們使用許多不同類型的計算機,它們有著不同的作業系統、CPU 和網路介面等。這些差異使得計算機系統間的通訊出現問題。1977 年,國際標準化組織(ISO)創建了一個小組委員會來開發資料通訊標準,以促進多供應商的互操作性。其結果就是開放系統互連(OSI)模型。

OSI 模型並未確定任何通訊標準或協議;相反,它只是提供了通訊任務應該遵循的一些指導性建議。

註:OSI 模型只是一種模型或框架,它確定了要執行的功能,理解這一點很重要。它並未詳細說明如何執行這些功能。但是,對於部分 OSI 模型,ISO 也確實接納了某些符合 OSI 標準的具體協議。例如,ISO 接受 CCITT X.25 協議,該協議作為一種實現,提供了 OSI 模型中網路層的大部分服務。

OSI 七層架構

為了簡單起見,ISO 小組委員會採用「分而治之」的方法。將複雜的通訊過程分為較小的子任務,問題就變得更容易處理,每個子任務可以分別優化。OSI 模型由 7 層組成:

  • 應用層
  • 表示層
  • 會話層
  • 傳輸層
  • 網路層
  • 資料鏈路層
  • 物理層

每一層都被分配了一組特定的功能。每一層都使用下層的服務,並為其上層提供服務。例如,網路層使用資料鏈路層的服務,並為傳輸層提供與網路相關的服務。

層級服務與封裝

利用相鄰層的服務並為其相鄰層提供服務,這種層的概念很簡單。考慮公司是如何運作的:秘書寫備忘錄來向總裁(相鄰的上一層)提供秘書服務。秘書使用信使的服務(相鄰的下一層)來發送訊息。通過將這些服務分開,秘書(應用程式)就不必知道訊息實際上是如何傳遞到接收者手中。秘書只需要求信使(網路)發送訊息即可。正如許多秘書通過使用這種標準的信使服務來發送備忘錄一樣,分層的網路可以通過將資訊包交給網路層來發送這些資訊包。

註:不要將應用層與在計算機上執行的應用程式混淆(在英文中都是同一個詞 — application)。請記住,應用層是 OSI 模型的一部分,它並未具體指定用戶和通訊路徑之間的介面是如何工作的;應用程式是這個介面的具體實現。實際的應用程式通常執行應用層、會話層和表示層的服務,而將傳輸層、網路層、資料鏈路層和物理層服務留給網路作業系統來處理。

跨層通訊與資料單元

每一層都與其它計算機中的同一層通訊。例如,一個系統中的第 3 層與另一個計算機系統的第 3 層通訊。

當資訊從一層傳到下一層時,會在資料前面加一個標頭,以指出該資訊的來源和目的地。來自某一層的由資料和標頭所組成的資訊塊,又成為下一層的資料。例如,當第 4 層將資料傳遞到第 3 層時,它會添加自己的標頭。當第 3 層將該資訊傳遞到第 2 層時,第 3 層會將來自第 4 層的標頭加資料作為它的資料,並在該資料前添加第 3 層的標頭,然後才將這個「標頭 + 資料」組合傳給下一層。

每一層資訊單元的名稱都不同:

  • 應用層 → 訊息
  • 傳輸層 → 段
  • 網路層 → 資料報
  • 資料鏈路層 → 幀(也稱做資訊包)
  • 物理層 → 位

在 OSI 模型出現前,美國國防部定義了它自己的網路模型,即 DOD 模型。DOD 模型與 TCP/IP 協議套件有緊密的聯繫,將在下一節說明。

TCP/IP 協議堆疊(傳輸層)

TCP/IP 協議堆疊表示了與 OSI 模型類似的網路體系結構。

但 TCP/IP 不像 OSI 模型那樣詳細區分協議堆疊的上面幾層。OSI 最上面的 3 層大致與 TCP/IP 的網際處理協議相當。處理協議的一些示例有 Telnet、FTP、SMTP、NFS、SNMP 和 DNS。

OSI 模型的傳輸層負責可靠資料的發送。在網際協議堆疊中,這對應於主機到主機協議。這方面的示例是 TCP 和 UDP。TCP 用來轉換來自上層協議的不定長訊息,並提供遠端系統間必要的確認和面向連接的流量控制。

UDP 與 TCP 相似,但它不是面向連接的,而且不對資料接收進行確認。UDP 僅接收訊息並將其傳遞給上層協議。因為 UDP 沒有與 TCP 有關的那些開銷,所以它為如遠端磁碟服務等操作提供更高效的介面。

TCP/IP 協議堆疊(網路層)

網際協議(IP)負責系統間無連接方式的通訊。它相當於 OSI 模型中網路層的一部分,負責網路間的資訊移動。通過檢查網路層地址來完成這種通訊,該地址確定了發送訊息的系統和路徑。

IP 提供與網路層相同的功能,並幫助獲取系統間的訊息,但它不保證這些訊息能夠成功傳送。IP 還可以將這些訊息分成多個段,然後在目的地重組這些段。另外,每一段可以採用不同的網路路徑在系統間傳送。如果這些段到達時亂了次序,IP 則會在目的地將這些資訊包重組成正確的序列。

IP 位址

網際協議要求為網路上的每個設備分配一個地址。這個地址就是 IP 位址,它由 4 個八位元組成。這些八位元每個都定義唯一的地址,這個地址的一部分表示網路(有時也可以表示子網),而另一部分則表示網路上特定的節點。

在 TCP/IP 網路中有幾個地址具有特殊含義:

  • 以零開頭的地址表示當前網路中的本地節點。例如,0.0.0.23 指當前網路中的 23 號工作站。地址 0.0.0.0 指當前工作站。
  • 在進行故障排除和網路診斷時,以 127 開頭的地址非常重要。形式上將網路地址塊 127.x.x.x 定義為 A 類地址,保留了該地址塊用於內部回送(loopback)。
  • 將地址上所有位全置為 1(也就是值 255)代表「所有」地址。所以,192.18.255.255 意味著將訊息發送給 192.18. 網路上的所有節點;類似的,255.255.255.255 意味著將訊息發送給因特網上的每個節點。這些地址用於多點廣播訊息和服務公告。

注意:給系統分配節點號時,不要使用 0 或 255,它們都是保留數字,具有特殊含義。

IP 位址分類

將 IP 位址按一定範圍分配,稱為將 IP 位址分類,這取決於應用和組織的規模。三種最常見的類型地址是 A 類地址、B 類地址和 C 類地址。這三種分類表示了可為本地網路分配的 IP 位址中位的數目。

A 類地址用於非常大的網路或相關網路的集合。B 類地址用於超過 256 個節點(但少於 65536 個節點)的大型網路。而大多數組織採用 C 類地址。一個組織採用幾個 C 類地址的做法是一個好主意,因為 B 類地址的數量是有限的。D 類地址被保留用於網路上訊息的多點廣播,E 類地址則被保留用於實驗和開發。

類別地址範圍
A從 0.x.x.x 到 126.x.x.x
B從 128.0.x.x 到 191.255.x.x
C從 192.0.0.x 到 223.255.255.x
D從 224.0.0.1 到 239.255.255.255
E從 240.x.x.x 到 255.255.255.255

「專用」IP 位址

如果您的網路沒有連接到因特網,而且最近也不會連接的話,則可以自由選擇任何合法的網路地址。只需要確保您內部網路資訊包不會跑到實際的因特網中即可。要確保即便資訊包確實跑出也不會有任何危害,應該使用為專用而保留的那些網路地址的某個號碼。因特網賦號管理局(Internet Assigned Numbers Authority,IANA)已經在 A、B 和 C 類地址中保留了一些網路號,您無需註冊就可以使用這些地址。這些地址只有在專用網路中才有效,而且(理論上)不會路由到實際的因特網站點中。

A 類:10.0.0.0
B 類:172.16.0.0 – 172.31.0.0
C 類:192.168.0.0 – 192.168.255.0

請注意第二塊和第三塊分別包含 16 個和 256 個網路。

從這些網路號碼中選擇一個地址,對於那些完全沒有連接到因特網的網路是十分有用的。通過將單個主機用做網關,仍然可以實現訪問另一個網路(如因特網)。對於本地網路而言,可以通過內部專用 IP 位址來訪問該網關,而外部世界則通過正式註冊的地址(由頻寬供應商分配)知道該網關。

子網與子網遮罩

劃分子網是將大型的、實際的網路分成較小的邏輯網路的過程。劃分網路的原因有以下幾點:聯網技術的電氣(物理層)限制;為便於管理,希望在建築物的每一層(或每個部門或針對每個應用)放置一個獨立的網路而劃分網路;減少網路段負載;或需要用高速線路連接遠端位置。

劃分網段的結果是使整個網路變成由一些小型子網塊組成的網路,從而易於管理。這些較小的子網之間的通訊通過網關和路由器進行。同樣,一個組織可以有幾個物理上在同一個網路中的子網,以便將網路功能邏輯地分成多個工作組。

單獨的子網是整個網路的分支。假使將一個 B 類網路分成 64 個單獨的子網。要完成這種子網劃分,需要將 IP 位址視為兩部分:網路和主機。網路部分由所分配的 IP 位址和子網資訊位組成。實際上,這些位是借用主機的地址部分。分配給 B 類網路來表示網路部分的位數是 16,再加上子網部分的 6 位,共有 22 位來區分子網。這種劃分的結果是有 64 個網路,每個網路 1024 個節點。IP 位址中的網路部分可大可小,這取決於所希望的網路數目或每個網路的節點數。

子網遮罩的設定

設置子網遮罩實際上就是確定網路地址在何處結束以及主機地址在何處開始。

copyright © 萬盛學電腦網 all rights reserved