17.0 基本網路

Linux 提供所有必要的網路工具及功能,以整合到所有類型的網路結構。自定的 Linux 通訊協定、TCP/IP,具有各種服務與特殊功能,將會在這裏討論。使用網路卡、數據機或其他設備進行網路存取可以使用 YaST 來設定。也可使用手動方式來設定組態。本章僅討論基本機制及相關的網路組態檔案。

Linux 及其他 Unix 作業系統使用 TCP/IP 通訊協定。它不是單一網路通訊協定,而是能夠提供各種服務的網路通訊協定家族的一員。表 17-1中列示的通訊協定,提供透過 TCP/IP 在兩個機器之間交換資料的用途。由 TCP/IP、全球網路所結合而成的網路,也稱為網際網路

RFC 代表 要求建議 (Request for Comments)。RFC 是描述作業系統及其應用程式的各種網際網路通訊協定和執行程序的文件。RFC 文件描述網際網路通訊協定的設定。若要擴展您對於任何通訊協定的知識,請參閱適當的 RFC 文件。http://www.ietf.org/rfc.html 上提供了這些文件。

表 17-1 TCP/IP 通訊協定家族中的數種通訊協定

協定

描述

TCP

傳輸控制通訊協定:連線導向的安全通訊協定。傳輸的資料首先由應用程式當做資料流傳送出去,然後再由作業系統轉換為適當格式。資料送達目的地主機的相關應用程式時,使用的仍是最初傳送的原始資料流格式。TCP 判斷在傳輸期間是否遺失了資料,或者資料的順序是否混亂。只要是資料順序很重要的地方,就會執行 TCP。

UDP

使用者資料包通訊協定:無連線、不安全的通訊協定。要傳送的資料以應用程式產生的封包形式加以傳送。不會保證資料抵達接收者時的順序,而且可能會發生資料遺失的情況。UDP 適用以記錄為導向的應用程式。它的特點是延遲時間比 TCP 短。

ICMP

網際網路控制訊息通訊協定:基本上,這不是適用一般使用者的通訊協定,而是發佈錯誤報表的特殊控制通訊協定,能夠控制參與 TCP/IP 資料傳送之機器的行為。此外,它還提供特殊的回音模式,可以使用 ping 程式檢視。

IGMP

網際網路群組管理通訊協定:此通訊協定在實做 IP 多點廣播時控制機器行為。

圖 17-1 中所顯示,資料交換發生在不同層。實際的網路層是透過 IP (網際網路通訊協定,Internet Protocol) 進行不安全的資料傳輸。在 IP 的上方,TCP (傳輸控制通訊協定,Transmission Control Protocol) 可以保證資料傳輸某種程度的安全性。IP 層是由基本的硬體相依通訊協定所支援,例如乙太網路。

圖 17-1 TCP/IP 的簡化層模型

圖表提供每層的一或兩個範例。層的順序是依據抽象階層 (abstraction level)。最低層非常靠近硬體。不過,最上層對硬體而言幾乎是完全抽象的。每層都有自己的特殊功能。這些特殊功能通常隱含於其描述中。資料連結及實體層代表使用的實體網路 (如乙太網路)。

幾乎所有的硬體通訊協定都是採用封包導向模式。要傳輸的資料是裝在封包中,因為無法一次傳送它。TCP/IP 封包的大小上限約為 64 KB。封包一般而言較小,因為可能受限於網路硬體的關係。乙太網路上資料封包的最大上限約為 1500 個位元組。在乙太網路上傳送資料時,TCP/IP 封包的大小受限於此數量。如果傳送更多資料,則需要由作業系統傳送更多資料封包。

因為每層有自己指定的功能,關於每層的其他資訊必須儲存於資料封包中。這些資訊放在封包的「標頭」中。每層皆在產生的封包前端附加小的資料區塊,稱為通訊協定標頭。在乙太網路纜線上傳送的 TCP/IP 資料封包範例,可參閱在 圖 17-2 中的說明。proof sum 位於封包結尾,不在開頭處。這樣可幫助網路硬體簡化程序。

圖 17-2 TCP/IP 乙太網路封包

當應用程式在網路上傳送資料時,資料會經過每一層,除實體層外,全部在 Linux 核心執行。每層都負責準備資料使其能夠傳送到下一層。最底層最後要負責傳送資料。接收到資料時則反轉執行整個程序。就如同洋蔥的層級一般,在每層中,會從已傳輸的資料上移除通訊協定標頭。最後,傳輸層負責讓目的地端的應用程式可以使用資料。以這種方式,每層僅直接與上下兩層通訊。對於應用程式而言,無論資料是透過 100 MBit/s FDDI 網路或 56-Kbit/s 數據線進行傳輸,都沒有關係。同樣地,對於資料線而言,只要封包的格式正確,無論傳送的是哪種類型的資料也是無關的。